diff options
author | Gokul Soumya | 2021-12-18 03:03:15 +0000 |
---|---|---|
committer | Gokul Soumya | 2021-12-18 03:03:15 +0000 |
commit | d4fb1d06333315a3c6e9dc7f0ad8055d91551e3a (patch) | |
tree | f43da59eec8b897359b84390b1c7d5b69f3bb169 /helix-term/src/application.rs | |
parent | 016640f4fb6f620df13a2cab15e749d623197a51 (diff) | |
parent | 3ef115d4203fab93f7efe4f65d8dd63cc4535b91 (diff) |
Merge branch 'master' into cursor-shape-new
Diffstat (limited to 'helix-term/src/application.rs')
-rw-r--r-- | helix-term/src/application.rs | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index a795a56e..3e0b6d59 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -76,17 +76,27 @@ impl Application { None => Ok(def_lang_conf), }; - let theme = if let Some(theme) = &config.theme { - match theme_loader.load(theme) { - Ok(theme) => theme, - Err(e) => { - log::warn!("failed to load theme `{}` - {}", theme, e); + let true_color = config.editor.true_color || crate::true_color(); + let theme = config + .theme + .as_ref() + .and_then(|theme| { + theme_loader + .load(theme) + .map_err(|e| { + log::warn!("failed to load theme `{}` - {}", theme, e); + e + }) + .ok() + .filter(|theme| (true_color || theme.is_16_color())) + }) + .unwrap_or_else(|| { + if true_color { theme_loader.default() + } else { + theme_loader.base16_default() } - } - } else { - theme_loader.default() - }; + }); let syn_loader_conf: helix_core::syntax::Configuration = lang_conf .and_then(|conf| conf.try_into()) @@ -265,7 +275,7 @@ impl Application { use crate::commands::{insert::idle_completion, Context}; use helix_view::document::Mode; - if doc_mut!(self.editor).mode != Mode::Insert || !self.config.editor.auto_completion { + if doc!(self.editor).mode != Mode::Insert || !self.config.editor.auto_completion { return; } let editor_view = self |