From 5651c2d96727749f8b19df4fda332bd8a2e6d823 Mon Sep 17 00:00:00 2001 From: khyperia <953151+khyperia@users.noreply.github.com> Date: Sun, 22 Mar 2026 12:31:55 +0100 Subject: [PATCH] Optimize shape_until_scroll with large line count --- src/buffer.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/buffer.rs b/src/buffer.rs index d5f3540..14684f7 100644 --- a/src/buffer.rs +++ b/src/buffer.rs @@ -597,14 +597,13 @@ impl Buffer { let scroll_start = self.scroll.vertical; let scroll_end = scroll_start + self.height_opt.unwrap_or(f32::INFINITY); - let mut total_height = 0.0; - for line_i in 0..self.lines.len() { - if line_i < self.scroll.line { - if prune { - self.lines[line_i].reset_shaping(); - } - continue; + if prune { + for line_i in 0..self.scroll.line { + self.lines[line_i].reset_shaping(); } + } + let mut total_height = 0.0; + for line_i in self.scroll.line..self.lines.len() { if total_height > scroll_end { if prune { self.lines[line_i].reset_shaping();