aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
authorA-Walrus2022-08-06 15:46:23 +0000
committerGitHub2022-08-06 15:46:23 +0000
commitfdd8bbf16bdbc19d2e814c463c1c327ee941eba9 (patch)
treeac349e3872ecbf781a0fe33587eaa3fbd812c435 /helix-term/src/ui
parent4dd35777f4b15c8f8ef18102767e9984df51e07c (diff)
Fix indent guide styling (#3324)
* Fix incorrect indent guide styling Before the indent guides on top of whitespace inherited the theme from them. Now they do not. * Fix dark_plus theme indent_guides * Use whitespace style as fallback for indent-guide * Fix dark_plus theme indent_guides * Move indent_guide style patching out of loop
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r--helix-term/src/ui/editor.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index d99f1a4e..94ad8aea 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -414,7 +414,13 @@ impl EditorView {
let mut is_in_indent_area = true;
let mut last_line_indent_level = 0;
- let indent_style = theme.get("ui.virtual.indent-guide");
+
+ // use whitespace style as fallback for indent-guide
+ let indent_guide_style = text_style.patch(
+ theme
+ .try_get("ui.virtual.indent-guide")
+ .unwrap_or_else(|| theme.get("ui.virtual.whitespace")),
+ );
let draw_indent_guides = |indent_level, line, surface: &mut Surface| {
if !config.indent_guides.render {
@@ -430,7 +436,7 @@ impl EditorView {
viewport.x + (i * tab_width as u16) - offset.col as u16,
viewport.y + line,
&indent_guide_char,
- indent_style,
+ indent_guide_style,
);
}
};
@@ -487,14 +493,7 @@ impl EditorView {
);
}
- // This is an empty line; draw indent guides at previous line's
- // indent level to avoid breaking the guides on blank lines.
- if visual_x == 0 {
- draw_indent_guides(last_line_indent_level, line, surface);
- } else if is_in_indent_area {
- // A line with whitespace only
- draw_indent_guides(visual_x, line, surface);
- }
+ draw_indent_guides(last_line_indent_level, line, surface);
visual_x = 0;
line += 1;