History

language: Fix `HighlightedText::first_line_preview` creating incorrect highlight ranges (#39705)

Fixes ZED-1XW Release Notes: - N/A *or* Added/Fixed/Improved ...

Lukas Wirth committed 1 year ago

Commit 642643d1 parent 391e3041 file · +3 −2Browse files

Unified · Split

crates/language/src/buffer.rs+3−2
@@ -581,7 +581,7 @@ pub struct HighlightedText { · 580 unmodified lines
581#[derive(Default, Debug)]581#[derive(Default, Debug)]
582struct HighlightedTextBuilder {582struct HighlightedTextBuilder {
583 pub text: String,583 pub text: String,
584 pub highlights: Vec<(Range<usize>, HighlightStyle)>,584 highlights: Vec<(Range<usize>, HighlightStyle)>,
585}585}
586 586
587impl HighlightedText {587impl HighlightedText {
@@ -624,10 +624,11 @@ impl HighlightedText { · 36 unmodified lines
624 let preview_highlights = self624 let preview_highlights = self
625 .highlights625 .highlights
626 .into_iter()626 .into_iter()
627 .skip_while(|(range, _)| range.end <= preview_start_ix)
627 .take_while(|(range, _)| range.start < newline_ix)628 .take_while(|(range, _)| range.start < newline_ix)
628 .filter_map(|(mut range, highlight)| {629 .filter_map(|(mut range, highlight)| {
629 range.start = range.start.saturating_sub(preview_start_ix);630 range.start = range.start.saturating_sub(preview_start_ix);
630 range.end = range.end.saturating_sub(preview_start_ix).min(newline_ix);631 range.end = range.end.min(newline_ix).saturating_sub(preview_start_ix);
631 if range.is_empty() {632 if range.is_empty() {
632 None633 None
633 } else {634 } else {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t