diff options
author | A-Walrus | 2022-10-08 18:28:42 +0000 |
---|---|---|
committer | GitHub | 2022-10-08 18:28:42 +0000 |
commit | c15f1ea274d300feb23208324aa5b27d7274bebd (patch) | |
tree | f606f8a30b0e9061c35f9af83b791771a5931946 /helix-view | |
parent | 18cfe864f44e9d97f11335b7db14e28c804ea794 (diff) |
Add cursorcolumn (#4084)
* Implement cursorcolumn
* Add documentation
* Separate column style from line with fallback
* Fallback to cursorcolumn first
* Switch to non-fallback try_get_exact
Add new function `try_get_exact`, which doesn't perform fallback,
and use that instead because the fallback behaviour is being handled
manually.
Diffstat (limited to 'helix-view')
-rw-r--r-- | helix-view/src/editor.rs | 3 | ||||
-rw-r--r-- | helix-view/src/theme.rs | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index d09d0ac3..60b3880c 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -124,6 +124,8 @@ pub struct Config { pub line_number: LineNumber, /// Highlight the lines cursors are currently on. Defaults to false. pub cursorline: bool, + /// Highlight the columns cursors are currently on. Defaults to false. + pub cursorcolumn: bool, /// Gutters. Default ["diagnostics", "line-numbers"] pub gutters: Vec<GutterType>, /// Middle click paste support. Defaults to true. @@ -582,6 +584,7 @@ impl Default for Config { }, line_number: LineNumber::Absolute, cursorline: false, + cursorcolumn: false, gutters: vec![GutterType::Diagnostics, GutterType::LineNumbers], middle_click_paste: true, auto_pairs: AutoPairConfig::default(), diff --git a/helix-view/src/theme.rs b/helix-view/src/theme.rs index 85f5cc13..8a1f8b7e 100644 --- a/helix-view/src/theme.rs +++ b/helix-view/src/theme.rs @@ -277,6 +277,13 @@ impl Theme { .find_map(|s| self.styles.get(s).copied()) } + /// Get the style of a scope, without falling back to dot separated broader + /// scopes. For example if `ui.text.focus` is not defined in the theme, it + /// will return `None`, even if `ui.text` is. + pub fn try_get_exact(&self, scope: &str) -> Option<Style> { + self.styles.get(scope).copied() + } + #[inline] pub fn scopes(&self) -> &[String] { &self.scopes |