diff --git a/.gitmodules b/.gitmodules index 0e015658940f..aba8084c8363 100644 --- a/.gitmodules +++ b/.gitmodules @@ -102,6 +102,10 @@ path = helix-syntax/languages/tree-sitter-protobuf url = https://github.com/yusdacra/tree-sitter-protobuf.git shallow = true +[submodule "helix-syntax/languages/tree-sitter-yaml"] + path = helix-syntax/languages/tree-sitter-yaml + url = https://github.com/ikatyang/tree-sitter-yaml + shallow = true [submodule "helix-syntax/languages/tree-sitter-zig"] path = helix-syntax/languages/tree-sitter-zig url = https://github.com/maxxnino/tree-sitter-zig diff --git a/helix-syntax/languages/tree-sitter-yaml b/helix-syntax/languages/tree-sitter-yaml new file mode 160000 index 000000000000..0e36bed17176 --- /dev/null +++ b/helix-syntax/languages/tree-sitter-yaml @@ -0,0 +1 @@ +Subproject commit 0e36bed171768908f331ff7dff9d956bae016efb diff --git a/languages.toml b/languages.toml index 1ca40377df7e..7a2ea24d1da8 100644 --- a/languages.toml +++ b/languages.toml @@ -224,6 +224,14 @@ roots = [] comment-token = ";" indent = { tab-width = 4, unit = " " } +[[language]] +name = "yaml" +scope = "source.yaml" +file-types = ["yml", "yaml"] +roots = [] +comment-token = "#" +indent = { tab-width = 2, unit = " " } + # [[language]] # name = "haskell" # scope = "source.haskell" diff --git a/runtime/queries/yaml/highlights.scm b/runtime/queries/yaml/highlights.scm new file mode 100644 index 000000000000..4ebb4440a7e3 --- /dev/null +++ b/runtime/queries/yaml/highlights.scm @@ -0,0 +1,33 @@ +(block_mapping_pair key: (_) @property) +(flow_mapping (_ key: (_) @property)) +(boolean_scalar) @boolean +(null_scalar) @constant.builtin +(double_quote_scalar) @string +(single_quote_scalar) @string +(escape_sequence) @string.escape +(integer_scalar) @number +(float_scalar) @number +(comment) @comment +(anchor_name) @type +(alias_name) @type +(tag) @type +(yaml_directive) @keyword +(ERROR) @error + +[ +"," +"-" +":" +">" +"?" +"|" +] @punctuation.delimiter + +[ +"[" +"]" +"{" +"}" +] @punctuation.bracket + +["*" "&"] @punctuation.special diff --git a/runtime/queries/yaml/indents.toml b/runtime/queries/yaml/indents.toml new file mode 100644 index 000000000000..ddc3578b1420 --- /dev/null +++ b/runtime/queries/yaml/indents.toml @@ -0,0 +1,3 @@ +indent = [ + "block_mapping_pair", +]