mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-16 15:11:25 +00:00
Clean up theme loading
This commit is contained in:
parent
312f3d2ab9
commit
0d903f4d0d
2 changed files with 9 additions and 6 deletions
|
@ -51,7 +51,7 @@ fn main() {
|
|||
let story_selector = args.story.clone();
|
||||
|
||||
let theme_name = args.theme.unwrap_or("One Dark".to_string());
|
||||
let theme = themes::load_theme(theme_name);
|
||||
let theme = themes::load_theme(theme_name).unwrap();
|
||||
|
||||
let asset_source = Arc::new(Assets);
|
||||
gpui3::App::production(asset_source).run(move |cx| {
|
||||
|
|
|
@ -2,6 +2,7 @@ mod rose_pine;
|
|||
|
||||
pub use rose_pine::*;
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
use gpui3::serde_json;
|
||||
use serde::Deserialize;
|
||||
use ui::Theme;
|
||||
|
@ -14,14 +15,16 @@ struct LegacyTheme {
|
|||
}
|
||||
|
||||
/// Loads the [`Theme`] with the given name.
|
||||
pub fn load_theme(name: String) -> Theme {
|
||||
pub fn load_theme(name: String) -> Result<Theme> {
|
||||
let theme_contents = Assets::get(&format!("themes/{name}.json"))
|
||||
.unwrap_or_else(|| panic!("failed to load theme: {name}.json"));
|
||||
.with_context(|| format!("theme file not found: '{name}'"))?;
|
||||
|
||||
let legacy_theme: LegacyTheme =
|
||||
serde_json::from_str(std::str::from_utf8(&theme_contents.data).unwrap()).unwrap();
|
||||
serde_json::from_str(std::str::from_utf8(&theme_contents.data)?)
|
||||
.context("failed to parse legacy theme")?;
|
||||
|
||||
let theme: Theme = serde_json::from_value(legacy_theme.base_theme.clone()).unwrap();
|
||||
let theme: Theme = serde_json::from_value(legacy_theme.base_theme.clone())
|
||||
.context("failed to parse `base_theme`")?;
|
||||
|
||||
theme
|
||||
Ok(theme)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue