diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs index d99f1a4e6..94ad8aea7 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; diff --git a/runtime/themes/dark_plus.toml b/runtime/themes/dark_plus.toml index 1512a6509..451c28b5d 100644 --- a/runtime/themes/dark_plus.toml +++ b/runtime/themes/dark_plus.toml @@ -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" }