@@ -330,16 +330,7 @@ impl EditorView {
330 // document or not. We only draw it if it's not an empty line.
330 // document or not. We only draw it if it's not an empty line.
331 let draw_last = text.line_to_byte(last_line) < text.len_bytes();
331 let draw_last = text.line_to_byte(last_line) < text.len_bytes();
333− // This is a little confuding: We can't use the `last_line` variable for
333+ for (i, line) in (view.first_line..(last_line + 1)).enumerate() {
334− // our iteration below, because there's a mismatch between the
335− // inclusive/exclusiveness of the screen-based last line and the
336− // text-based last line. So we compute what we actually need specially here.
337− let last_line_number = std::cmp::min(
338− view.first_line + view.area.height.saturating_sub(1) as usize,
339− doc.text().len_lines(),
342− for (i, line) in (view.first_line..last_line_number).enumerate() {
343 use helix_core::diagnostic::Severity;
334 use helix_core::diagnostic::Severity;
344 if let Some(diagnostic) = doc.diagnostics().iter().find(|d| d.line == line) {
335 if let Some(diagnostic) = doc.diagnostics().iter().find(|d| d.line == line) {
345 surface.set_stringn(
336 surface.set_stringn(