Add overrides for all languages
Co-authored-by: Julia Risley <julia@zed.dev>
This commit is contained in:
parent
2967b46a17
commit
2aa7a9e95b
31 changed files with 269 additions and 13 deletions
|
@ -830,15 +830,24 @@ impl Language {
|
|||
let mut values = HashMap::default();
|
||||
for (ix, name) in query.capture_names().iter().enumerate() {
|
||||
if let Some(override_name) = name.strip_prefix("override.") {
|
||||
let value = self
|
||||
.config
|
||||
.overrides
|
||||
.remove(override_name)
|
||||
.ok_or_else(|| anyhow!("no such override {override_name}"))?;
|
||||
let value = self.config.overrides.remove(override_name).ok_or_else(|| {
|
||||
anyhow!(
|
||||
"language {:?} has override in query but not in config: {override_name:?}",
|
||||
self.config.name
|
||||
)
|
||||
})?;
|
||||
values.insert(ix as u32, value);
|
||||
}
|
||||
}
|
||||
|
||||
if !self.config.overrides.is_empty() {
|
||||
let keys = self.config.overrides.keys().collect::<Vec<_>>();
|
||||
Err(anyhow!(
|
||||
"language {:?} has overrides in config not in query: {keys:?}",
|
||||
self.config.name
|
||||
))?;
|
||||
}
|
||||
|
||||
self.grammar_mut().override_config = Some(OverrideConfig { query, values });
|
||||
Ok(self)
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
use anyhow::Context;
|
||||
use gpui::executor::Background;
|
||||
pub use language::*;
|
||||
use lazy_static::lazy_static;
|
||||
|
@ -145,7 +146,9 @@ pub(crate) fn language(
|
|||
.unwrap()
|
||||
.data,
|
||||
)
|
||||
.with_context(|| format!("failed to load config.toml for language {name:?}"))
|
||||
.unwrap();
|
||||
|
||||
let mut language = Language::new(config, Some(grammar));
|
||||
|
||||
if let Some(query) = load_query(name, "/highlights") {
|
||||
|
|
|
@ -7,5 +7,20 @@ brackets = [
|
|||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
{ start = "/*", end = " */", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/c/overrides.scm
Normal file
2
crates/zed/src/languages/c/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string_literal) @override.string
|
|
@ -7,5 +7,20 @@ brackets = [
|
|||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
{ start = "/*", end = " */", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/cpp/overrides.scm
Normal file
2
crates/zed/src/languages/cpp/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string_literal) @override.string
|
|
@ -5,5 +5,20 @@ brackets = [
|
|||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false }
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/css/overrides.scm
Normal file
2
crates/zed/src/languages/css/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string_value) @override.string
|
|
@ -6,5 +6,20 @@ brackets = [
|
|||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false }
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/elixir/overrides.scm
Normal file
2
crates/zed/src/languages/elixir/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
[(string) (charlist)] @override.string
|
|
@ -4,5 +4,4 @@ autoclose_before = ">})"
|
|||
brackets = [
|
||||
{ start = "<", end = ">", close = true, newline = true },
|
||||
]
|
||||
|
||||
block_comment = ["<%#", "%>"]
|
||||
block_comment = ["<%#", "%>"]
|
||||
|
|
|
@ -7,5 +7,20 @@ brackets = [
|
|||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
{ start = "/*", end = " */", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
6
crates/zed/src/languages/go/overrides.scm
Normal file
6
crates/zed/src/languages/go/overrides.scm
Normal file
|
@ -0,0 +1,6 @@
|
|||
(comment) @override.comment
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
(rune_literal)
|
||||
] @override.string
|
|
@ -9,4 +9,18 @@ brackets = [
|
|||
{ start = "!--", end = " --", close = true, newline = false },
|
||||
]
|
||||
|
||||
block_comment = ["<!-- ", " -->"]
|
||||
block_comment = ["<!-- ", " -->"]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/html/overrides.scm
Normal file
2
crates/zed/src/languages/html/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(quoted_attribute_value) @override.string
|
|
@ -12,3 +12,21 @@ brackets = [
|
|||
{ start = "`", end = "`", close = true, newline = false },
|
||||
{ start = "/*", end = " */", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.element]
|
||||
line_comment = { remove = true }
|
||||
block_comment = ["{/* ", " */}"]
|
||||
|
|
9
crates/zed/src/languages/javascript/overrides.scm
Normal file
9
crates/zed/src/languages/javascript/overrides.scm
Normal file
|
@ -0,0 +1,9 @@
|
|||
(comment) @override.comment
|
||||
(string) @override.string
|
||||
|
||||
[
|
||||
(jsx_element)
|
||||
(jsx_fragment)
|
||||
(jsx_self_closing_element)
|
||||
(jsx_expression)
|
||||
] @override.element
|
|
@ -7,3 +7,9 @@ brackets = [
|
|||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/json/overrides.scm
Normal file
2
crates/zed/src/languages/json/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @comment
|
||||
(string) @override.string
|
|
@ -12,4 +12,18 @@ brackets = [
|
|||
|
||||
auto_indent_using_last_non_empty_line = false
|
||||
increase_indent_pattern = ":$"
|
||||
decrease_indent_pattern = "^\\s*(else|elif|except|finally)\\b.*:"
|
||||
decrease_indent_pattern = "^\\s*(else|elif|except|finally)\\b.*:"
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/python/overrides.scm
Normal file
2
crates/zed/src/languages/python/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string) @override.string
|
|
@ -7,5 +7,19 @@ brackets = [
|
|||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = false, newline = false },
|
||||
]
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/ruby/overrides.scm
Normal file
2
crates/zed/src/languages/ruby/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string) @override.string
|
|
@ -11,3 +11,19 @@ brackets = [
|
|||
{ start = "'", end = "'", close = false, newline = false },
|
||||
{ start = "/*", end = " */", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "<", end = ">", close = false, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "<", end = ">", close = false, newline = true },
|
||||
]
|
||||
|
|
8
crates/zed/src/languages/rust/overrides.scm
Normal file
8
crates/zed/src/languages/rust/overrides.scm
Normal file
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
(string_literal)
|
||||
(raw_string_literal)
|
||||
] @override.string
|
||||
[
|
||||
(line_comment)
|
||||
(block_comment)
|
||||
] @override.comment
|
|
@ -7,3 +7,15 @@ brackets = [
|
|||
{ start = "(", end = ")", close = true, newline = false },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
]
|
||||
|
|
6
crates/zed/src/languages/scheme/overrides.scm
Normal file
6
crates/zed/src/languages/scheme/overrides.scm
Normal file
|
@ -0,0 +1,6 @@
|
|||
[
|
||||
(comment)
|
||||
(block_comment)
|
||||
(directive)
|
||||
] @override.comment
|
||||
(string) @override.string
|
|
@ -6,4 +6,17 @@ brackets = [
|
|||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false },
|
||||
{ start = "'", end = "'", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/toml/overrides.scm
Normal file
2
crates/zed/src/languages/toml/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string) @override.string
|
|
@ -12,3 +12,17 @@ brackets = [
|
|||
{ start = "`", end = "`", close = true, newline = false },
|
||||
{ start = "/*", end = " */", close = true, newline = false },
|
||||
]
|
||||
|
||||
[overrides.comment]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
||||
[overrides.string]
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
]
|
||||
|
|
2
crates/zed/src/languages/typescript/overrides.scm
Normal file
2
crates/zed/src/languages/typescript/overrides.scm
Normal file
|
@ -0,0 +1,2 @@
|
|||
(comment) @override.comment
|
||||
(string) @override.string
|
Loading…
Add table
Add a link
Reference in a new issue