diff options
author | JJ | 2023-11-01 01:19:02 +0000 |
---|---|---|
committer | JJ | 2023-11-01 04:08:47 +0000 |
commit | 7260812a720336111dc4643c9852e34820745338 (patch) | |
tree | d8398e3779b4aaad3c6cc749673a1b55ef44df7f /helix-term/src/config.rs | |
parent | 368995b51f2b0b8574a87ebe04749cb556b4c538 (diff) |
Add unbind-default-keys config option
ref: https://github.com/helix-editor/helix/issues/2720
ref: https://github.com/helix-editor/helix/pull/2733
Co-authored-by: Linden Krouse <ztaticnull@gmail.com>
Diffstat (limited to 'helix-term/src/config.rs')
-rw-r--r-- | helix-term/src/config.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/helix-term/src/config.rs b/helix-term/src/config.rs index bcba8d8e..ace10821 100644 --- a/helix-term/src/config.rs +++ b/helix-term/src/config.rs @@ -20,6 +20,8 @@ pub struct Config { #[serde(deny_unknown_fields)] pub struct ConfigRaw { pub theme: Option<String>, + #[serde(default)] + pub unbind_default_keys: bool, pub keys: Option<HashMap<Mode, KeyTrie>>, pub editor: Option<toml::Value>, } @@ -66,7 +68,10 @@ impl Config { local.and_then(|file| toml::from_str(&file).map_err(ConfigLoadError::BadConfig)); let res = match (global_config, local_config) { (Ok(global), Ok(local)) => { - let mut keys = keymap::default(); + let mut keys = match local.unbind_default_keys { + true => HashMap::default(), + false => keymap::default(), + }; if let Some(global_keys) = global.keys { merge_keys(&mut keys, global_keys) } @@ -96,7 +101,10 @@ impl Config { return Err(ConfigLoadError::BadConfig(err)) } (Ok(config), Err(_)) | (Err(_), Ok(config)) => { - let mut keys = keymap::default(); + let mut keys = match config.unbind_default_keys { + true => HashMap::default(), + false => keymap::default(), + }; if let Some(keymap) = config.keys { merge_keys(&mut keys, keymap); } |