diff options
Diffstat (limited to 'src/config/mod.rs')
| -rw-r--r-- | src/config/mod.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs index 4f8ad7d..cc4154c 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -1,8 +1,9 @@ use std::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}; +use lazy_static::lazy_static; use mlua::{UserData, UserDataFields}; -use self::theme::Theme; +use self::{keymap::KeyMap, theme::Theme}; pub mod constants; pub mod theme; @@ -11,15 +12,20 @@ pub mod keymap; #[derive(Debug, Default)] pub struct GlobalConfig { pub theme: Theme, + pub keymap: KeyMap, +} + +lazy_static! { + static ref GLOBAL_CONFIG: RwLock<GlobalConfig> = RwLock::new(GlobalConfig::new()); } -static GLOBAL_CONFIG: RwLock<GlobalConfig> = RwLock::new(GlobalConfig::new()); const DUMMY_CONFIG: GlobalConfig = GlobalConfig::new(); impl GlobalConfig { const fn new() -> Self { Self { theme: Theme::new(), + keymap: KeyMap::new(), } } @@ -34,6 +40,7 @@ impl GlobalConfig { impl UserData for GlobalConfig { fn add_fields<'lua, F: UserDataFields<'lua, Self>>(fields: &mut F) { - fields.add_field_function_get("theme", |_, _| Ok(DUMMY_CONFIG.theme)) + fields.add_field_function_get("theme", |_, _| Ok(DUMMY_CONFIG.theme)); + fields.add_field_function_get("keymap", |_, _| Ok(DUMMY_CONFIG.keymap)); } } |