@@ -348,6 +348,61 @@ where
);
}
+ #[gpui::test]
+ async fn test_bracket_colorization_after_language_swap(cx: &mut gpui::TestAppContext) {
+ init_test(cx, |language_settings| {
+ language_settings.defaults.colorize_brackets = Some(true);
+ });
+
+ let language_registry = Arc::new(language::LanguageRegistry::test(cx.executor()));
+ language_registry.add(markdown_lang());
+ language_registry.add(rust_lang());
+
+ let mut cx = EditorTestContext::new(cx).await;
+ cx.update_buffer(|buffer, cx| {
+ buffer.set_language_registry(language_registry.clone());
+ buffer.set_language(Some(markdown_lang()), cx);
+ });
+
+ cx.set_state(indoc! {r#"
+ fn main() {
+ let v: Vec<Stringˇ> = vec![];
+ }
+ "#});
+ cx.executor().advance_clock(Duration::from_millis(100));
+ cx.executor().run_until_parked();
+
+ assert_eq!(
+ r#"fn main«1()1» «1{
+ let v: Vec<String> = vec!«2[]2»;
+}1»
+
+1 hsla(207.80, 16.20%, 69.19%, 1.00)
+2 hsla(29.00, 54.00%, 65.88%, 1.00)
+"#,
+ &bracket_colors_markup(&mut cx),
+ "Markdown does not colorize <> brackets"
+ );
+
+ cx.update_buffer(|buffer, cx| {
+ buffer.set_language(Some(rust_lang()), cx);
+ });
+ cx.executor().advance_clock(Duration::from_millis(100));
+ cx.executor().run_until_parked();
+
+ assert_eq!(
+ r#"fn main«1()1» «1{
+ let v: Vec«2<String>2» = vec!«2[]2»;
+}1»
+
+1 hsla(207.80, 16.20%, 69.19%, 1.00)
+2 hsla(29.00, 54.00%, 65.88%, 1.00)
+"#,
+ &bracket_colors_markup(&mut cx),
+ "After switching to Rust, <> brackets are now colorized"
+ );
+ }
+
#[gpui::test]
async fn test_bracket_colorization_when_editing(cx: &mut gpui::TestAppContext) {
init_test(cx, |language_settings| {