diff options
author | SoraTenshi | 2024-05-01 22:58:30 +0000 |
---|---|---|
committer | JJ | 2024-05-01 23:54:41 +0000 |
commit | 27cc594d8fb5fb9e28888e20bae14db6ac2bef83 (patch) | |
tree | ba698e290f0751403f599a97baa2071e71dad274 /helix-view | |
parent | 9a3f23b0661f7a37a0dab885fe5eb844b615a22b (diff) |
Add rainbow indentation guides
ref: https://github.com/helix-editor/helix/issues/4010
ref: https://github.com/helix-editor/helix/pull/4493
Diffstat (limited to 'helix-view')
-rw-r--r-- | helix-view/src/editor.rs | 10 | ||||
-rw-r--r-- | helix-view/src/theme.rs | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index 4987c073..bd9ac0ab 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -818,11 +818,20 @@ impl Default for WhitespaceCharacters { } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] +pub enum RainbowIndentOptions { + None, + Dim, + Normal, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(default, rename_all = "kebab-case")] pub struct IndentGuidesConfig { pub render: bool, pub character: char, pub skip_levels: u8, + pub rainbow_option: RainbowIndentOptions, } impl Default for IndentGuidesConfig { @@ -831,6 +840,7 @@ impl Default for IndentGuidesConfig { skip_levels: 0, render: false, character: '│', + rainbow_option: RainbowIndentOptions::None, } } } diff --git a/helix-view/src/theme.rs b/helix-view/src/theme.rs index 16da247f..8236d370 100644 --- a/helix-view/src/theme.rs +++ b/helix-view/src/theme.rs @@ -383,6 +383,10 @@ impl Theme { pub fn rainbow_length(&self) -> usize { self.rainbow_length } + + pub fn get_rainbow(&self, index: usize) -> Style { + self.highlights[index % self.rainbow_length] + } } fn default_rainbow() -> Vec<Style> { |