diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index 82b879861886982016b80b94ced9e5907a7e7d16..1605eea051b660f7285481223b0b3b9f97aef732 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -581,7 +581,7 @@ pub struct HighlightedText { #[derive(Default, Debug)] struct HighlightedTextBuilder { pub text: String, - pub highlights: Vec<(Range, HighlightStyle)>, + highlights: Vec<(Range, HighlightStyle)>, } impl HighlightedText { @@ -624,10 +624,11 @@ impl HighlightedText { let preview_highlights = self .highlights .into_iter() + .skip_while(|(range, _)| range.end <= preview_start_ix) .take_while(|(range, _)| range.start < newline_ix) .filter_map(|(mut range, highlight)| { range.start = range.start.saturating_sub(preview_start_ix); - range.end = range.end.saturating_sub(preview_start_ix).min(newline_ix); + range.end = range.end.min(newline_ix).saturating_sub(preview_start_ix); if range.is_empty() { None } else {