From 759484940cab09c774b3bc99bc16ce8fed111283 Mon Sep 17 00:00:00 2001 From: MrSubidubi Date: Mon, 10 Nov 2025 13:30:17 +0100 Subject: [PATCH] Add failing test --- crates/editor/src/bracket_colorization.rs | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/crates/editor/src/bracket_colorization.rs b/crates/editor/src/bracket_colorization.rs index 10a8ff5c9d4fae000c01e383353a64ebc135393a..cba48402be0c81650a2a1e12af6fbbbbb744f2c4 100644 --- a/crates/editor/src/bracket_colorization.rs +++ b/crates/editor/src/bracket_colorization.rs @@ -111,6 +111,7 @@ mod tests { use super::*; use crate::{ + DisplayPoint, display_map::{DisplayRow, ToDisplayPoint}, editor_tests::init_test, test::{ @@ -122,6 +123,7 @@ mod tests { use language::{BracketPair, BracketPairConfig, Language, LanguageConfig, LanguageMatcher}; use multi_buffer::AnchorRangeExt as _; use rope::Point; + use text::OffsetRangeExt; #[gpui::test] async fn test_rainbow_bracket_highlights(cx: &mut gpui::TestAppContext) { @@ -489,6 +491,42 @@ mod tests { "Should not lose highlights while scrolling in the visible range!" ); } + + let buffer_snapshot = snapshot.buffer().as_singleton().unwrap().2; + for (start, end) in snapshot + .bracket_ranges( + DisplayPoint::new(visible_range.start, Default::default()).to_point(&snapshot) + ..DisplayPoint::new( + visible_range.end, + snapshot.line_len(visible_range.end), + ) + .to_point(&snapshot), + ) + .into_iter() + .flatten() + { + let start_bracket = colored_brackets + .iter() + .find(|(_, range)| range.to_offset(buffer_snapshot) == start); + assert!( + start_bracket.is_some(), + "Existing bracket start in the visible range should be highlighted" + ); + + let end_bracket = colored_brackets + .iter() + .find(|(_, range)| range.to_offset(buffer_snapshot) == end); + assert!( + end_bracket.is_some(), + "Existing bracket end in the visible range should be highlighted" + ); + + assert_eq!( + start_bracket.unwrap().0, + end_bracket.unwrap().0, + "Bracket pair should be highlighted the same color!" + ) + } } // todo! more tests, check no brackets missing in range, settings toggle