wip yaml highlighting

Kay Simmons created

Change summary

Cargo.lock                                   | 10 +++++
crates/zed/Cargo.toml                        |  1 
crates/zed/src/languages.rs                  |  5 ++
crates/zed/src/languages/yaml/brackets.scm   |  3 +
crates/zed/src/languages/yaml/config.toml    | 15 ++++++++
crates/zed/src/languages/yaml/highlights.scm | 37 ++++++++++++++++++++++
6 files changed, 71 insertions(+)

Detailed changes

Cargo.lock 🔗

@@ -7191,6 +7191,15 @@ dependencies = [
  "tree-sitter",
 ]
 
+[[package]]
+name = "tree-sitter-yaml"
+version = "0.0.1"
+source = "git+https://github.com/zed-industries/tree-sitter-yaml?rev=36a64faf81931d3aaa8580a329344ac80ac0fb79#36a64faf81931d3aaa8580a329344ac80ac0fb79"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
 [[package]]
 name = "try-lock"
 version = "0.2.3"
@@ -8430,6 +8439,7 @@ dependencies = [
  "tree-sitter-scheme",
  "tree-sitter-toml",
  "tree-sitter-typescript",
+ "tree-sitter-yaml",
  "unindent",
  "url",
  "urlencoding",

crates/zed/Cargo.toml 🔗

@@ -110,6 +110,7 @@ tree-sitter-ruby = "0.20.0"
 tree-sitter-html = "0.19.0"
 tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"}
 tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a"}
+tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "36a64faf81931d3aaa8580a329344ac80ac0fb79"}
 tree-sitter-lua = "0.0.14"
 url = "2.2"
 urlencoding = "2.1.2"

crates/zed/src/languages.rs 🔗

@@ -128,6 +128,11 @@ pub fn init(languages: Arc<LanguageRegistry>) {
             tree_sitter_lua::language(),
             Some(Box::new(lua::LuaLspAdapter)),
         ),
+        (
+            "yaml",
+            tree_sitter_yaml::language(),
+            None, //
+        )
     ] {
         languages.register(name, load_config(name), grammar, lsp_adapter, load_queries);
     }

crates/zed/src/languages/yaml/config.toml 🔗

@@ -0,0 +1,15 @@
+name = "YAML"
+path_suffixes = ["yml", "yaml"]
+line_comment = "# "
+autoclose_before = ",]}"
+brackets = [
+{ start = "{", end = "}", close = true, newline = true },
+{ 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 },
+]

crates/zed/src/languages/yaml/highlights.scm 🔗

@@ -0,0 +1,37 @@
+(boolean_scalar) @boolean
+(null_scalar) @constant.builtin
+(double_quote_scalar) @string
+(single_quote_scalar) @string
+((block_scalar) @string (#set! "priority" 99))
+(string_scalar) @string
+(escape_sequence) @string.escape
+(integer_scalar) @number
+(float_scalar) @number
+(comment) @comment
+(anchor_name) @type
+(alias_name) @type
+(tag) @type
+(ERROR) @error
+
+[
+ ","
+ "-"
+ ":"
+ ">"
+ "?"
+ "|"
+] @punctuation.delimiter
+
+[
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ "*"
+ "&"
+ "---"
+ "..."
+] @punctuation.special