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
This commit is contained in:
A-Walrus 2022-08-06 18:46:23 +03:00 committed by GitHub
parent 4dd35777f4
commit fdd8bbf16b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 11 deletions

View File

@ -414,7 +414,13 @@ pub fn render_text_highlights<H: Iterator<Item = HighlightEvent>>(
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 @@ pub fn render_text_highlights<H: Iterator<Item = HighlightEvent>>(
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 @@ pub fn render_text_highlights<H: Iterator<Item = HighlightEvent>>(
);
}
// 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;

View File

@ -81,7 +81,7 @@
"ui.virtual.whitespace" = { fg = "dark_gray" }
"ui.virtual.ruler" = { bg = "borders" }
"ui.virtual.indent-guide" = { bg = "dark_gray4" }
"ui.virtual.indent-guide" = { fg = "dark_gray4" }
"warning" = { fg = "gold2" }
"error" = { fg = "red" }