diff options
Diffstat (limited to 'helix-term/src')
-rw-r--r-- | helix-term/src/application.rs | 8 | ||||
-rw-r--r-- | helix-term/src/config.rs | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index b2b49be5..aa2ce884 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -39,6 +39,7 @@ pub struct Application { callbacks: LspCallbacks, lsp_progress: LspProgressMap, + lsp_progress_enabled: bool, } impl Application { @@ -77,6 +78,7 @@ impl Application { callbacks: FuturesUnordered::new(), lsp_progress: LspProgressMap::new(), + lsp_progress_enabled: config.global.lsp_progress, }; Ok(app) @@ -310,8 +312,10 @@ impl Application { self.lsp_progress.update(server_id, token, work); } - self.editor.set_status(status); - self.render(); + if self.lsp_progress_enabled { + self.editor.set_status(status); + self.render(); + } } _ => unreachable!(), } diff --git a/helix-term/src/config.rs b/helix-term/src/config.rs index bd84e0b1..2b8b475b 100644 --- a/helix-term/src/config.rs +++ b/helix-term/src/config.rs @@ -6,12 +6,19 @@ use serde::{de::Error as SerdeError, Deserialize, Serialize}; use crate::keymap::{parse_keymaps, Keymaps}; #[derive(Default)] +pub struct GlobalConfig { + pub lsp_progress: bool, +} + +#[derive(Default)] pub struct Config { + pub global: GlobalConfig, pub keymaps: Keymaps, } #[derive(Serialize, Deserialize)] struct TomlConfig { + lsp_progress: Option<bool>, keys: Option<HashMap<String, HashMap<String, String>>>, } @@ -22,6 +29,9 @@ impl<'de> Deserialize<'de> for Config { { let config = TomlConfig::deserialize(deserializer)?; Ok(Self { + global: GlobalConfig { + lsp_progress: config.lsp_progress.unwrap_or(true), + }, keymaps: config .keys .map(|r| parse_keymaps(&r)) |