From a526ea333e226f6257ed690a31f00c89f028d603 Mon Sep 17 00:00:00 2001 From: Jake Everhart Date: Sun, 23 Mar 2025 18:08:43 -0500 Subject: [PATCH] Enables gutter rendering for viewport rows beyond EOF --- helix-term/src/ui/document.rs | 8 ++++++++ helix-view/src/gutter.rs | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/helix-term/src/ui/document.rs b/helix-term/src/ui/document.rs index 8423ae8e4..5e7c47397 100644 --- a/helix-term/src/ui/document.rs +++ b/helix-term/src/ui/document.rs @@ -247,6 +247,14 @@ pub fn render_text( last_line_end = grapheme.visual_pos.col + grapheme_width; } + let remaining_viewport_lines = + last_line_pos.visual_line..renderer.viewport.height.saturating_sub(1); + for _ in remaining_viewport_lines { + last_line_pos.doc_line += 1; + last_line_pos.visual_line += 1; + decorations.decorate_line(renderer, last_line_pos); + } + renderer.draw_indent_guides(last_line_indent_level, last_line_pos.visual_line); decorations.render_virtual_lines(renderer, last_line_pos, last_line_end) } diff --git a/helix-view/src/gutter.rs b/helix-view/src/gutter.rs index 3f5eb26c9..156b918cc 100644 --- a/helix-view/src/gutter.rs +++ b/helix-view/src/gutter.rs @@ -207,7 +207,9 @@ pub fn line_numbers<'doc>( Box::new( move |line: usize, selected: bool, first_visual_line: bool, out: &mut String| { - if line == last_line_in_view && !draw_last { + if line > last_line_in_view { + None + } else if line == last_line_in_view && !draw_last { write!(out, "{:>1$}", '~', width).unwrap(); Some(linenr) } else {