mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 17:36:19 +04:00
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:
parent
4dd35777f4
commit
fdd8bbf16b
@ -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;
|
||||
|
@ -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" }
|
||||
|
Loading…
Reference in New Issue
Block a user