From 1a4b7ce76a3cff9c186735657be776c76da032d6 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Fri, 4 Jul 2025 12:46:59 +0800 Subject: [PATCH] highlighter: Fix some case update will get incorrect syntax highlight. (#1041) --- crates/ui/src/highlighter/highlighter.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/ui/src/highlighter/highlighter.rs b/crates/ui/src/highlighter/highlighter.rs index ba174589..c966bb62 100644 --- a/crates/ui/src/highlighter/highlighter.rs +++ b/crates/ui/src/highlighter/highlighter.rs @@ -272,15 +272,19 @@ impl SyntaxHighlighter { // Incremental parsing to only update changed ranges. if let Some(changed_ranges) = changed_ranges { - let mut total_range = 0..0; + let mut total_range = (None, None); for change_range in changed_ranges { - if total_range.start == 0 { - total_range.start = change_range.start_byte; + // dbg!(change_range); + if total_range.0.is_none() { + total_range.0 = Some(change_range.start_byte); } - if total_range.end == 0 { - total_range.end = change_range.end_byte; + if total_range.1.is_none() { + total_range.1 = Some(change_range.end_byte); } } + let total_range = total_range.0.unwrap_or(0)..total_range.1.unwrap_or(0); + + // println!("------- total_range: {:?}", total_range); if total_range.len() == 0 { return;