From 5acd288063a9de412ac0c92b738bb8c07f30df44 Mon Sep 17 00:00:00 2001 From: hunterliao29 Date: Mon, 19 Dec 2022 15:43:40 -0500 Subject: [PATCH] theme inherent for default theme --- helix-view/src/theme.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/helix-view/src/theme.rs b/helix-view/src/theme.rs index b2c8a79f76aaa..f6c00ab267fb2 100644 --- a/helix-view/src/theme.rs +++ b/helix-view/src/theme.rs @@ -14,15 +14,18 @@ use toml::{map::Map, Value}; use crate::graphics::UnderlineStyle; pub use crate::graphics::{Color, Modifier, Style}; +// store default theme in to byte array. +const DEFAULT_THEME_DATA: &[u8] = include_bytes!("../../theme.toml"); +const BASE16_DEFAULT_THEME_DATA: &[u8] = include_bytes!("../../base16_theme.toml"); + pub static DEFAULT_THEME: Lazy = Lazy::new(|| Theme { name: "default".into(), - ..toml::from_slice(include_bytes!("../../theme.toml")).expect("Failed to parse default theme") + ..toml::from_slice(DEFAULT_THEME_DATA).expect("Failed to parse default theme") }); pub static BASE16_DEFAULT_THEME: Lazy = Lazy::new(|| Theme { name: "base16_theme".into(), - ..toml::from_slice(include_bytes!("../../base16_theme.toml")) - .expect("Failed to parse base 16 default theme") + ..toml::from_slice(BASE16_DEFAULT_THEME_DATA).expect("Failed to parse base 16 default theme") }); #[derive(Clone, Debug)] @@ -78,11 +81,16 @@ impl Loader { ) })?; - let parent_theme_toml = self.load_theme( - parent_theme_name, - base_them_name, - base_them_name == parent_theme_name, - )?; + let parent_theme_toml = match parent_theme_name { + // load default themes's toml from const. + "Default" => toml::from_slice(DEFAULT_THEME_DATA)?, + "base16_default" => toml::from_slice(BASE16_DEFAULT_THEME_DATA)?, + _ => self.load_theme( + parent_theme_name, + base_them_name, + base_them_name == parent_theme_name, + )?, + }; self.merge_themes(parent_theme_toml, theme_toml) } else {