From 219c560c7c0ad9e3960298ec125d4e64637fe84b Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Fri, 2 Aug 2024 20:41:29 +0200 Subject: add editor theme and state lua bindings --- src/config/theme/editor/bar.rs | 8 ++++++++ src/config/theme/editor/mod.rs | 22 ++++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 src/config/theme/editor/bar.rs (limited to 'src/config/theme/editor') diff --git a/src/config/theme/editor/bar.rs b/src/config/theme/editor/bar.rs new file mode 100644 index 0000000..62be7b0 --- /dev/null +++ b/src/config/theme/editor/bar.rs @@ -0,0 +1,8 @@ +use crate::config::{theme::bar::BarTheme, GlobalConfig}; + +BarTheme!( + EditorBarTheme, + (), + GlobalConfig::instance().theme.editor.bar, + GlobalConfig::instance_mut().theme.editor.bar +); diff --git a/src/config/theme/editor/mod.rs b/src/config/theme/editor/mod.rs index d9e2b16..662dacc 100644 --- a/src/config/theme/editor/mod.rs +++ b/src/config/theme/editor/mod.rs @@ -1,11 +1,16 @@ use mlua::UserData; +use crate::config::DUMMY_CONFIG; use crate::lua::evalsto::EvalTo; use crate::widgets::luaeditor::theme::HighlightTheme; +use self::bar::EditorBarTheme; + use super::super::GlobalConfig; use super::style::Style; +pub mod bar; + #[derive(Clone, Debug, Default)] pub struct EditorTheme { pub background: EvalTo, @@ -13,6 +18,7 @@ pub struct EditorTheme { pub cursor_line: EvalTo, pub line_number: EvalTo, pub active_line_number: EvalTo, + pub bar: EditorBarTheme, } impl EditorTheme { @@ -23,6 +29,7 @@ impl EditorTheme { cursor_line: EvalTo::Value(Style::new()), line_number: EvalTo::Value(Style::new()), active_line_number: EvalTo::Value(Style::new()), + bar: EditorBarTheme::new(), } } } @@ -65,10 +72,17 @@ impl UserData for EditorTheme { Ok(()) }); - fields.add_field_function_get("active_line_number", |_, _| Ok(cfg!().active_line_number.clone())); - fields.add_field_function_set("active_line_number", |_, _, active_line_number: EvalTo| { - cfg_mut!().active_line_number = active_line_number; - Ok(()) + fields.add_field_function_get("active_line_number", |_, _| { + Ok(cfg!().active_line_number.clone()) }); + fields.add_field_function_set( + "active_line_number", + |_, _, active_line_number: EvalTo| { + cfg_mut!().active_line_number = active_line_number; + Ok(()) + }, + ); + + fields.add_field_method_get("bar", |_, _| Ok(DUMMY_CONFIG.theme.editor.bar)) } } -- cgit v1.2.3-70-g09d2