aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin2022-10-03 15:07:04 +0000
committerGitHub2022-10-03 15:07:04 +0000
commit6764744ce9912a1f48502bf5ee025283e12fded5 (patch)
tree50734dcc05722d3170caa51444459ad9b3702d71
parentdbec057363201d6c4aa2e7258cac928e5ebb6a28 (diff)
Add option to skip the first indent guide (#3819)
* Add option to skip the first indent guide * reorder skip_first option * change indent-guides.skip_first to a number * rename skip -> skip_levels * add skip_levels to the book * Update book/src/configuration.md Co-authored-by: A-Walrus <58790821+A-Walrus@users.noreply.github.com> * Update helix-term/src/ui/editor.rs Co-authored-by: Michael Davis <mcarsondavis@gmail.com> Co-authored-by: Robin <robinvandijk@klippa.com> Co-authored-by: A-Walrus <58790821+A-Walrus@users.noreply.github.com> Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
-rw-r--r--book/src/configuration.md10
-rw-r--r--helix-term/src/ui/editor.rs3
-rw-r--r--helix-view/src/editor.rs4
3 files changed, 11 insertions, 6 deletions
diff --git a/book/src/configuration.md b/book/src/configuration.md
index 039d181c..276bd7d4 100644
--- a/book/src/configuration.md
+++ b/book/src/configuration.md
@@ -233,10 +233,11 @@ tabpad = "·" # Tabs will look like "→···" (depending on tab width)
Options for rendering vertical indent guides.
-| Key | Description | Default |
-| --- | --- | --- |
-| `render` | Whether to render indent guides. | `false` |
-| `character` | Literal character to use for rendering the indent guide | `│` |
+| Key | Description | Default |
+| --- | --- | --- |
+| `render` | Whether to render indent guides. | `false` |
+| `character` | Literal character to use for rendering the indent guide | `│` |
+| `skip-levels` | Number of indent levels to skip | `0` |
Example:
@@ -244,4 +245,5 @@ Example:
[editor.indent-guides]
render = true
character = "╎"
+skip-levels = 1
```
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 0269d804..e5dc3c95 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -436,7 +436,8 @@ impl EditorView {
return;
}
- let starting_indent = (offset.col / tab_width) as u16;
+ let starting_indent =
+ (offset.col / tab_width) as u16 + config.indent_guides.skip_levels;
// TODO: limit to a max indent level too. It doesn't cause visual artifacts but it would avoid some
// extra loops if the code is deeply nested.
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index e144a830..f21244a9 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -552,15 +552,17 @@ impl Default for WhitespaceCharacters {
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(default)]
+#[serde(default, rename_all = "kebab-case")]
pub struct IndentGuidesConfig {
pub render: bool,
pub character: char,
+ pub skip_levels: u16,
}
impl Default for IndentGuidesConfig {
fn default() -> Self {
Self {
+ skip_levels: 0,
render: false,
character: '│',
}