From e9edad1d51c6c575348662be8405e79935900802 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 25 Jan 2024 19:25:21 +0100 Subject: [PATCH] language: Accept multiple values in line_comment language knob. (#6713) This opens up a possibility of supporting multiple comment continuation flavours in editor, e.g. doc comments for Rust (which we seize as well in this commit). Only the first `line_comment` value is used for Editor::ToggleComments Fixes: https://github.com/zed-industries/zed/issues/6692 Release Notes: - Added support for doc-comment continuations in Rust language. --- crates/editor/src/editor.rs | 62 +++++++++++-------- crates/editor/src/editor_tests.rs | 8 +-- crates/language/src/buffer_tests.rs | 34 ++++++---- crates/language/src/language.rs | 14 +++-- crates/zed/src/languages/bash/config.toml | 2 +- crates/zed/src/languages/c/config.toml | 2 +- crates/zed/src/languages/cpp/config.toml | 2 +- crates/zed/src/languages/elixir/config.toml | 2 +- crates/zed/src/languages/elm/config.toml | 2 +- crates/zed/src/languages/glsl/config.toml | 2 +- crates/zed/src/languages/go/config.toml | 2 +- .../zed/src/languages/javascript/config.toml | 4 +- crates/zed/src/languages/json/config.toml | 2 +- crates/zed/src/languages/lua/config.toml | 2 +- crates/zed/src/languages/nix/config.toml | 2 +- crates/zed/src/languages/nu/config.toml | 2 +- crates/zed/src/languages/php/config.toml | 2 +- crates/zed/src/languages/python/config.toml | 2 +- crates/zed/src/languages/racket/config.toml | 2 +- crates/zed/src/languages/ruby/config.toml | 2 +- crates/zed/src/languages/rust/config.toml | 2 +- crates/zed/src/languages/scheme/config.toml | 2 +- crates/zed/src/languages/toml/config.toml | 2 +- crates/zed/src/languages/tsx/config.toml | 4 +- .../zed/src/languages/typescript/config.toml | 2 +- crates/zed/src/languages/uiua/config.toml | 2 +- crates/zed/src/languages/yaml/config.toml | 2 +- 27 files changed, 95 insertions(+), 73 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index d15c2591b3e258a0fb6aad8b58c53726e14f7427..a572729e76a46e7cab3799153eef46c27f910ef1 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -2502,34 +2502,43 @@ impl Editor { ) }); // Comment extension on newline is allowed only for cursor selections - let comment_delimiter = language.line_comment_prefix().filter(|_| { + let comment_delimiter = language.line_comment_prefixes().filter(|_| { let is_comment_extension_enabled = multi_buffer.settings_at(0, cx).extend_comment_on_newline; is_cursor && is_comment_extension_enabled }); - let comment_delimiter = if let Some(delimiter) = comment_delimiter { - buffer - .buffer_line_for_row(start_point.row) - .is_some_and(|(snapshot, range)| { - let mut index_of_first_non_whitespace = 0; - let line_starts_with_comment = snapshot - .chars_for_range(range) - .skip_while(|c| { - let should_skip = c.is_whitespace(); - if should_skip { - index_of_first_non_whitespace += 1; - } - should_skip - }) - .take(delimiter.len()) - .eq(delimiter.chars()); - let cursor_is_placed_after_comment_marker = - index_of_first_non_whitespace + delimiter.len() - <= start_point.column as usize; - line_starts_with_comment - && cursor_is_placed_after_comment_marker + let get_comment_delimiter = |delimiters: &[Arc]| { + let max_len_of_delimiter = + delimiters.iter().map(|delimiter| delimiter.len()).max()?; + let (snapshot, range) = + buffer.buffer_line_for_row(start_point.row)?; + + let mut index_of_first_non_whitespace = 0; + let comment_candidate = snapshot + .chars_for_range(range) + .skip_while(|c| { + let should_skip = c.is_whitespace(); + if should_skip { + index_of_first_non_whitespace += 1; + } + should_skip }) - .then(|| delimiter.clone()) + .take(max_len_of_delimiter) + .collect::(); + let comment_prefix = delimiters.iter().find(|comment_prefix| { + comment_candidate.starts_with(comment_prefix.as_ref()) + })?; + let cursor_is_placed_after_comment_marker = + index_of_first_non_whitespace + comment_prefix.len() + <= start_point.column as usize; + if cursor_is_placed_after_comment_marker { + Some(comment_prefix.clone()) + } else { + None + } + }; + let comment_delimiter = if let Some(delimiters) = comment_delimiter { + get_comment_delimiter(delimiters) } else { None }; @@ -6561,7 +6570,10 @@ impl Editor { } // If the language has line comments, toggle those. - if let Some(full_comment_prefix) = language.line_comment_prefix() { + if let Some(full_comment_prefix) = language + .line_comment_prefixes() + .and_then(|prefixes| prefixes.first()) + { // Split the comment prefix's trailing whitespace into a separate string, // as that portion won't be used for detecting if a line is a comment. let comment_prefix = full_comment_prefix.trim_end_matches(' '); @@ -6569,7 +6581,7 @@ impl Editor { let mut all_selection_lines_are_comments = true; for row in start_row..=end_row { - if snapshot.is_line_blank(row) && start_row < end_row { + if start_row < end_row && snapshot.is_line_blank(row) { continue; } diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 03a601db997aaafabcc07a1b48bb66eb57fa0241..8c31a2bcdf40fd88ecf0bf4b0b2382aacd958def 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -1942,7 +1942,7 @@ async fn test_newline_comments(cx: &mut gpui::TestAppContext) { let language = Arc::new(Language::new( LanguageConfig { - line_comment: Some("//".into()), + line_comments: vec!["//".into()], ..LanguageConfig::default() }, None, @@ -5736,7 +5736,7 @@ async fn test_toggle_comment(cx: &mut gpui::TestAppContext) { let mut cx = EditorTestContext::new(cx).await; let language = Arc::new(Language::new( LanguageConfig { - line_comment: Some("// ".into()), + line_comments: vec!["// ".into()], ..Default::default() }, Some(tree_sitter_rust::language()), @@ -5838,7 +5838,7 @@ async fn test_advance_downward_on_toggle_comment(cx: &mut gpui::TestAppContext) let language = Arc::new(Language::new( LanguageConfig { - line_comment: Some("// ".into()), + line_comments: vec!["// ".into()], ..Default::default() }, Some(tree_sitter_rust::language()), @@ -5993,7 +5993,7 @@ async fn test_toggle_block_comment(cx: &mut gpui::TestAppContext) { let javascript_language = Arc::new(Language::new( LanguageConfig { name: "JavaScript".into(), - line_comment: Some("// ".into()), + line_comments: vec!["// ".into()], ..Default::default() }, Some(tree_sitter_typescript::language_tsx()), diff --git a/crates/language/src/buffer_tests.rs b/crates/language/src/buffer_tests.rs index 6ad345d4e324d96dbe13333d0729db3cc6406671..6079f1de93c6c0fecb3b6c2d662fada71df7168c 100644 --- a/crates/language/src/buffer_tests.rs +++ b/crates/language/src/buffer_tests.rs @@ -1657,7 +1657,7 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { let language = Language::new( LanguageConfig { name: "JavaScript".into(), - line_comment: Some("// ".into()), + line_comments: vec!["// ".into()], brackets: BracketPairConfig { pairs: vec![ BracketPair { @@ -1681,7 +1681,7 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { overrides: [( "element".into(), LanguageConfigOverride { - line_comment: Override::Remove { remove: true }, + line_comments: Override::Remove { remove: true }, block_comment: Override::Set(("{/*".into(), "*/}".into())), ..Default::default() }, @@ -1718,7 +1718,7 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { let snapshot = buffer.snapshot(); let config = snapshot.language_scope_at(0).unwrap(); - assert_eq!(config.line_comment_prefix().unwrap().as_ref(), "// "); + assert_eq!(config.line_comment_prefixes().unwrap(), &[Arc::from("// ")]); // Both bracket pairs are enabled assert_eq!( config.brackets().map(|e| e.1).collect::>(), @@ -1728,7 +1728,10 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { let string_config = snapshot .language_scope_at(text.find("b\"").unwrap()) .unwrap(); - assert_eq!(string_config.line_comment_prefix().unwrap().as_ref(), "// "); + assert_eq!( + string_config.line_comment_prefixes().unwrap(), + &[Arc::from("// ")] + ); // Second bracket pair is disabled assert_eq!( string_config.brackets().map(|e| e.1).collect::>(), @@ -1739,7 +1742,7 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { let element_config = snapshot .language_scope_at(text.find("").unwrap()) .unwrap(); - assert_eq!(element_config.line_comment_prefix(), None); + assert_eq!(element_config.line_comment_prefixes(), None); assert_eq!( element_config.block_comment_delimiters(), Some((&"{/*".into(), &"*/}".into())) @@ -1753,7 +1756,10 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { let tag_config = snapshot .language_scope_at(text.find(" d=").unwrap() + 1) .unwrap(); - assert_eq!(tag_config.line_comment_prefix().unwrap().as_ref(), "// "); + assert_eq!( + tag_config.line_comment_prefixes().unwrap(), + &[Arc::from("// ")] + ); assert_eq!( tag_config.brackets().map(|e| e.1).collect::>(), &[true, true] @@ -1765,10 +1771,9 @@ fn test_language_scope_at_with_javascript(cx: &mut AppContext) { .unwrap(); assert_eq!( expression_in_element_config - .line_comment_prefix() - .unwrap() - .as_ref(), - "// " + .line_comment_prefixes() + .unwrap(), + &[Arc::from("// ")] ); assert_eq!( expression_in_element_config @@ -1884,14 +1889,17 @@ fn test_language_scope_at_with_combined_injections(cx: &mut AppContext) { let snapshot = buffer.snapshot(); let html_config = snapshot.language_scope_at(Point::new(2, 4)).unwrap(); - assert_eq!(html_config.line_comment_prefix(), None); + assert_eq!(html_config.line_comment_prefixes(), Some(&vec![])); assert_eq!( html_config.block_comment_delimiters(), Some((&"".into())) ); let ruby_config = snapshot.language_scope_at(Point::new(3, 12)).unwrap(); - assert_eq!(ruby_config.line_comment_prefix().unwrap().as_ref(), "# "); + assert_eq!( + ruby_config.line_comment_prefixes().unwrap(), + &[Arc::from("# ")] + ); assert_eq!(ruby_config.block_comment_delimiters(), None); buffer @@ -2293,7 +2301,7 @@ fn ruby_lang() -> Language { LanguageConfig { name: "Ruby".into(), path_suffixes: vec!["rb".to_string()], - line_comment: Some("# ".into()), + line_comments: vec!["# ".into()], ..Default::default() }, Some(tree_sitter_ruby::language()), diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index 1add9c7c25ae6561ec25461066c87a8b83c1d662..125c8c67f5611cba30ed73c6b758dd5ab51f4ece 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -416,8 +416,10 @@ pub struct LanguageConfig { #[serde(default)] pub collapsed_placeholder: String, /// A line comment string that is inserted in e.g. `toggle comments` action. + /// A language can have multiple flavours of line comments. All of the provided line comments are + /// used for comment continuations on the next line, but only the first one is used for Editor::ToggleComments. #[serde(default)] - pub line_comment: Option>, + pub line_comments: Vec>, /// Starting and closing characters of a block comment. #[serde(default)] pub block_comment: Option<(Arc, Arc)>, @@ -460,7 +462,7 @@ pub struct LanguageScope { #[derive(Clone, Deserialize, Default, Debug)] pub struct LanguageConfigOverride { #[serde(default)] - pub line_comment: Override>, + pub line_comments: Override>>, #[serde(default)] pub block_comment: Override<(Arc, Arc)>, #[serde(skip_deserializing)] @@ -506,7 +508,7 @@ impl Default for LanguageConfig { increase_indent_pattern: Default::default(), decrease_indent_pattern: Default::default(), autoclose_before: Default::default(), - line_comment: Default::default(), + line_comments: Default::default(), block_comment: Default::default(), scope_opt_in_language_servers: Default::default(), overrides: Default::default(), @@ -1710,10 +1712,10 @@ impl LanguageScope { /// Returns line prefix that is inserted in e.g. line continuations or /// in `toggle comments` action. - pub fn line_comment_prefix(&self) -> Option<&Arc> { + pub fn line_comment_prefixes(&self) -> Option<&Vec>> { Override::as_option( - self.config_override().map(|o| &o.line_comment), - self.language.config.line_comment.as_ref(), + self.config_override().map(|o| &o.line_comments), + Some(&self.language.config.line_comments), ) } diff --git a/crates/zed/src/languages/bash/config.toml b/crates/zed/src/languages/bash/config.toml index 8c4513b2509fced29f2680186993343b4d0ac414..cbf186fd3d413469bf374765980d6a55d449269f 100644 --- a/crates/zed/src/languages/bash/config.toml +++ b/crates/zed/src/languages/bash/config.toml @@ -1,6 +1,6 @@ name = "Shell Script" path_suffixes = ["sh", "bash", "bashrc", "bash_profile", "bash_aliases", "bash_logout", "profile", "zsh", "zshrc", "zshenv", "zsh_profile", "zsh_aliases", "zsh_histfile", "zlogin", "zprofile"] -line_comment = "# " +line_comments = ["# "] first_line_pattern = "^#!.*\\b(?:ba|z)?sh\\b" brackets = [ { start = "[", end = "]", close = true, newline = false }, diff --git a/crates/zed/src/languages/c/config.toml b/crates/zed/src/languages/c/config.toml index f986f4b834b09e81274467cc6b30c8ea7075838e..f99c0416cd90c81142e5af8e611dca27ebf4c70c 100644 --- a/crates/zed/src/languages/c/config.toml +++ b/crates/zed/src/languages/c/config.toml @@ -1,6 +1,6 @@ name = "C" path_suffixes = ["c"] -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/cpp/config.toml b/crates/zed/src/languages/cpp/config.toml index d9b38bca06f17ff8d5e8a3d00ea68b1bcaaf1894..7630f1dd79cb31ad9cde6c868c5da667ebea1b4c 100644 --- a/crates/zed/src/languages/cpp/config.toml +++ b/crates/zed/src/languages/cpp/config.toml @@ -1,6 +1,6 @@ name = "C++" path_suffixes = ["cc", "cpp", "h", "hpp", "cxx", "hxx", "inl"] -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/elixir/config.toml b/crates/zed/src/languages/elixir/config.toml index 8983c0e49b465c07ca3c0dd37a326c2244f52795..a3aab0ee8ae30b40d465ab70e8eb39f1ba7ee56e 100644 --- a/crates/zed/src/languages/elixir/config.toml +++ b/crates/zed/src/languages/elixir/config.toml @@ -1,6 +1,6 @@ name = "Elixir" path_suffixes = ["ex", "exs"] -line_comment = "# " +line_comments = ["# "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/elm/config.toml b/crates/zed/src/languages/elm/config.toml index 5051427a93df4be56d86ac0b3a8f26a88f2cdde6..b95c85d444333a8b6fd813b14eec22da067bcc77 100644 --- a/crates/zed/src/languages/elm/config.toml +++ b/crates/zed/src/languages/elm/config.toml @@ -1,6 +1,6 @@ name = "Elm" path_suffixes = ["elm"] -line_comment = "-- " +line_comments = ["-- "] block_comment = ["{- ", " -}"] brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/glsl/config.toml b/crates/zed/src/languages/glsl/config.toml index 4081a6381f6409260c558937c9321c8fdbad8f94..9b60179662919849835b2ae5216217fa98441c88 100644 --- a/crates/zed/src/languages/glsl/config.toml +++ b/crates/zed/src/languages/glsl/config.toml @@ -1,6 +1,6 @@ name = "GLSL" path_suffixes = ["vert", "frag", "tesc", "tese", "geom", "comp"] -line_comment = "// " +line_comments = ["// "] block_comment = ["/* ", " */"] brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/go/config.toml b/crates/zed/src/languages/go/config.toml index 1951e193f0fcae77c23c4b915f030d0d960e020a..d07c46731a4891e4275c1401a77803fe23de12ae 100644 --- a/crates/zed/src/languages/go/config.toml +++ b/crates/zed/src/languages/go/config.toml @@ -1,6 +1,6 @@ name = "Go" path_suffixes = ["go"] -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/javascript/config.toml b/crates/zed/src/languages/javascript/config.toml index 3b8862e3588caeb6587f37ee006fc0b1589675fe..a19d2588edbc66ab769d1769faec0854d133f6ba 100644 --- a/crates/zed/src/languages/javascript/config.toml +++ b/crates/zed/src/languages/javascript/config.toml @@ -1,7 +1,7 @@ name = "JavaScript" path_suffixes = ["js", "jsx", "mjs", "cjs"] first_line_pattern = '^#!.*\bnode\b' -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, @@ -18,7 +18,7 @@ scope_opt_in_language_servers = ["tailwindcss-language-server"] prettier_parser_name = "babel" [overrides.element] -line_comment = { remove = true } +line_comments = { remove = true } block_comment = ["{/* ", " */}"] [overrides.string] diff --git a/crates/zed/src/languages/json/config.toml b/crates/zed/src/languages/json/config.toml index 37a6d3a54cc744de519c29148e9e961c8e8c208a..eed86826d5ca0e6b2883dd9e7f2aa713ff408abd 100644 --- a/crates/zed/src/languages/json/config.toml +++ b/crates/zed/src/languages/json/config.toml @@ -1,6 +1,6 @@ name = "JSON" path_suffixes = ["json"] -line_comment = "// " +line_comments = ["// "] autoclose_before = ",]}" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/lua/config.toml b/crates/zed/src/languages/lua/config.toml index d3e44edfe97b6aa07481d0bf0f0fffae072950b7..31946f46e9ca8edbf71d06ad71c73b764b491e6f 100644 --- a/crates/zed/src/languages/lua/config.toml +++ b/crates/zed/src/languages/lua/config.toml @@ -1,6 +1,6 @@ name = "Lua" path_suffixes = ["lua"] -line_comment = "-- " +line_comments = ["-- "] autoclose_before = ",]}" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/nix/config.toml b/crates/zed/src/languages/nix/config.toml index 778f0a6f050a72eb231d374eeff09bff3591cbdd..20b3921271fbffa3b1f95a5d34ab18667fefb770 100644 --- a/crates/zed/src/languages/nix/config.toml +++ b/crates/zed/src/languages/nix/config.toml @@ -1,6 +1,6 @@ name = "Nix" path_suffixes = ["nix"] -line_comment = "# " +line_comments = ["# "] block_comment = ["/* ", " */"] autoclose_before = ";:.,=}])>` \n\t\"" brackets = [ diff --git a/crates/zed/src/languages/nu/config.toml b/crates/zed/src/languages/nu/config.toml index d382b0705aa32cf54624f4a38ad348e3a9502ad3..63f5a615918b970f0c22f002c5722e923357e977 100644 --- a/crates/zed/src/languages/nu/config.toml +++ b/crates/zed/src/languages/nu/config.toml @@ -1,6 +1,6 @@ name = "Nu" path_suffixes = ["nu"] -line_comment = "# " +line_comments = ["# "] autoclose_before = ";:.,=}])>` \n\t\"" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/php/config.toml b/crates/zed/src/languages/php/config.toml index f5ad67c12d2a0722f4033861d96fcecc955c4cd5..8a143da372297c2336bae4bdfe89dde9b7dbeafc 100644 --- a/crates/zed/src/languages/php/config.toml +++ b/crates/zed/src/languages/php/config.toml @@ -1,7 +1,7 @@ name = "PHP" path_suffixes = ["php"] first_line_pattern = '^#!.*php' -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/python/config.toml b/crates/zed/src/languages/python/config.toml index 6777f6e60d6a39bb4278039271c5071d3ccbc015..3496f845dcac235f6d572327affaa95a1b5476cb 100644 --- a/crates/zed/src/languages/python/config.toml +++ b/crates/zed/src/languages/python/config.toml @@ -1,7 +1,7 @@ name = "Python" path_suffixes = ["py", "pyi", "mpy"] first_line_pattern = '^#!.*\bpython[0-9.]*\b' -line_comment = "# " +line_comments = ["# "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/racket/config.toml b/crates/zed/src/languages/racket/config.toml index 0177e6ef6da5e73cd969007bf5de3d73a961aecf..aea5ec5fce85e59f93e0e166a689d2c62f31fa60 100644 --- a/crates/zed/src/languages/racket/config.toml +++ b/crates/zed/src/languages/racket/config.toml @@ -1,6 +1,6 @@ name = "Racket" path_suffixes = ["rkt"] -line_comment = "; " +line_comments = ["; "] autoclose_before = "])" brackets = [ { start = "[", end = "]", close = true, newline = false }, diff --git a/crates/zed/src/languages/ruby/config.toml b/crates/zed/src/languages/ruby/config.toml index 6c8c61501556c88dac13d890bd1ddcc758134cc8..32e43c7cb183ad25a6f309d891ab93d72c1aca7f 100644 --- a/crates/zed/src/languages/ruby/config.toml +++ b/crates/zed/src/languages/ruby/config.toml @@ -1,7 +1,7 @@ name = "Ruby" path_suffixes = ["rb", "Gemfile"] first_line_pattern = '^#!.*\bruby\b' -line_comment = "# " +line_comments = ["# "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/rust/config.toml b/crates/zed/src/languages/rust/config.toml index 8216ba0a74a90a16f2e29be77021f56530649c52..9382c9d78b279261039a101272ac416244789af7 100644 --- a/crates/zed/src/languages/rust/config.toml +++ b/crates/zed/src/languages/rust/config.toml @@ -1,6 +1,6 @@ name = "Rust" path_suffixes = ["rs"] -line_comment = "// " +line_comments = ["// ", "/// ", "//! "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/scheme/config.toml b/crates/zed/src/languages/scheme/config.toml index 7b47698833ebecd304fa2773fdc89691ab3806a8..c080f6d2ee06f4df569e96caea14b5b9622202d3 100644 --- a/crates/zed/src/languages/scheme/config.toml +++ b/crates/zed/src/languages/scheme/config.toml @@ -1,6 +1,6 @@ name = "Scheme" path_suffixes = ["scm", "ss"] -line_comment = "; " +line_comments = ["; "] autoclose_before = "])" brackets = [ { start = "[", end = "]", close = true, newline = false }, diff --git a/crates/zed/src/languages/toml/config.toml b/crates/zed/src/languages/toml/config.toml index 188239a8e0d2b518c99b9b6f69a14632bae37926..701dbbd65a400ed57639ac088327ede527ed4b12 100644 --- a/crates/zed/src/languages/toml/config.toml +++ b/crates/zed/src/languages/toml/config.toml @@ -1,6 +1,6 @@ name = "TOML" path_suffixes = ["Cargo.lock", "toml"] -line_comment = "# " +line_comments = ["# "] autoclose_before = ",]}" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/tsx/config.toml b/crates/zed/src/languages/tsx/config.toml index 0dae25d7795fb484e5e02a436b3ac841756e3225..6806924d4a57f0383a2cf7bfb540a8bd9e1d0510 100644 --- a/crates/zed/src/languages/tsx/config.toml +++ b/crates/zed/src/languages/tsx/config.toml @@ -1,6 +1,6 @@ name = "TSX" path_suffixes = ["tsx"] -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, @@ -17,7 +17,7 @@ scope_opt_in_language_servers = ["tailwindcss-language-server"] prettier_parser_name = "typescript" [overrides.element] -line_comment = { remove = true } +line_comments = { remove = true } block_comment = ["{/* ", " */}"] [overrides.string] diff --git a/crates/zed/src/languages/typescript/config.toml b/crates/zed/src/languages/typescript/config.toml index d1ebffc559a96c55035f9f71c82141c16417f9ff..4d51a740985a398a6c1627cf760ecb954a8a0e5e 100644 --- a/crates/zed/src/languages/typescript/config.toml +++ b/crates/zed/src/languages/typescript/config.toml @@ -1,6 +1,6 @@ name = "TypeScript" path_suffixes = ["ts", "cts", "d.cts", "d.mts", "mts"] -line_comment = "// " +line_comments = ["// "] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/zed/src/languages/uiua/config.toml b/crates/zed/src/languages/uiua/config.toml index 72fdc910408222e7a6c6e9aa1b48c45b0d7176d6..88cd8c7ad0ec94721c6f9ed18f6494ab55b02245 100644 --- a/crates/zed/src/languages/uiua/config.toml +++ b/crates/zed/src/languages/uiua/config.toml @@ -1,6 +1,6 @@ name = "Uiua" path_suffixes = ["ua"] -line_comment = "# " +line_comments = ["# "] autoclose_before = ")]}\"" brackets = [ { start = "{", end = "}", close = true, newline = false}, diff --git a/crates/zed/src/languages/yaml/config.toml b/crates/zed/src/languages/yaml/config.toml index 4e91dd348bda85648a05ed12e2075b7ed876d505..dce8d68d6684d4bac5008a09245cf645a383e755 100644 --- a/crates/zed/src/languages/yaml/config.toml +++ b/crates/zed/src/languages/yaml/config.toml @@ -1,6 +1,6 @@ name = "YAML" path_suffixes = ["yml", "yaml"] -line_comment = "# " +line_comments = ["# "] autoclose_before = ",]}" brackets = [ { start = "{", end = "}", close = true, newline = true },