aboutsummaryrefslogtreecommitdiff
path: root/helix-22.03-x86_64-windows/runtime/queries
diff options
context:
space:
mode:
Diffstat (limited to 'helix-22.03-x86_64-windows/runtime/queries')
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/bash/highlights.scm54
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/bash/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/c-sharp/highlights.scm336
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/c-sharp/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/c/highlights.scm87
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/c/indents.toml16
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/c/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/c/textobjects.scm17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cmake/highlights.scm97
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cmake/indents.toml12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cmake/injections.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cmake/textobjects.scm12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/comment/highlights.scm30
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cpp/highlights.scm67
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cpp/indents.toml17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cpp/injections.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/cpp/textobjects.scm7
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/css/highlights.scm64
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/css/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/dart/highlights.scm237
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/dart/indents.toml20
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/dart/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/dart/locals.scm20
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/dockerfile/highlights.scm51
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/dockerfile/injections.scm6
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/elixir/highlights.scm221
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/elixir/injections.scm9
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/elm/highlights.scm83
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/elm/injections.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/elm/locals.scm14
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/elm/tags.scm19
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/erlang/highlights.scm118
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/erlang/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/fish/highlights.scm156
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/fish/indents.toml12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/fish/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/fish/textobjects.scm5
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/git-commit/highlights.scm14
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/git-commit/injections.scm8
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/git-config/highlights.scm27
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/git-diff/highlights.scm6
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/git-rebase/highlights.scm11
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/git-rebase/injections.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/glsl/folds.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/glsl/highlights.scm37
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/glsl/indents.toml19
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/glsl/injections.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/glsl/locals.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/go/highlights.scm152
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/go/indents.toml30
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/go/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/go/locals.scm30
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/go/tags.scm30
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/go/textobjects.scm25
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/graphql/highlights.scm163
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/haskell/highlights.scm125
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/haskell/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/haskell/locals.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/hcl/folds.scm6
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/hcl/highlights.scm100
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/hcl/indents.toml13
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/hcl/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/html/highlights.scm12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/html/injections.scm10
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/iex/highlights.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/iex/injections.scm6
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/java/highlights.scm130
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/java/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-jsx.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-params.scm12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/highlights.scm205
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/indents.toml28
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/injections.scm28
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/locals.scm23
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/javascript/tags.scm88
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/json/highlights.scm20
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/json/indents.toml9
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/julia/folds.scm11
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/julia/highlights.scm184
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/julia/injections.scm5
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/julia/locals.scm59
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/kotlin/folds.scm17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/kotlin/highlights.scm295
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/kotlin/injections.scm36
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/latex/folds.scm12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/latex/highlights.scm410
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/latex/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lean/folds.scm15
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lean/highlights.scm217
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lean/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lean/locals.scm5
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ledger/highlights.scm38
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ledger/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/highlights.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/indents.toml3
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/injections.scm9
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir/highlights.scm136
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir/indents.toml7
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm-mir/textobjects.scm12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm/highlights.scm158
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm/indents.toml8
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm/locals.scm14
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/llvm/textobjects.scm20
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lua/highlights.scm166
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lua/indents.toml24
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/lua/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/make/highlights.scm170
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/make/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/markdown/highlights.scm46
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/markdown/injections.scm9
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/nix/highlights.scm90
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/nix/indents.toml18
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/highlights.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ocaml/highlights.scm160
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ocaml/indents.toml13
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ocaml/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ocaml/locals.scm24
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/org/highlights.scm24
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/org/injections.scm4
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/perl/highlights.scm181
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/perl/indents.toml17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/perl/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/perl/textobjects.scm17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/php/highlights.scm118
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/php/indents.toml17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/php/injections.scm6
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/php/tags.scm26
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/php/textobjects.scm34
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/protobuf/highlights.scm58
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/protobuf/indents.toml12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/protobuf/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/python/highlights.scm121
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/python/indents.toml39
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/python/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/python/tags.scm12
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/python/textobjects.scm18
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/regex/highlights.scm53
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rescript/highlights.scm178
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rescript/injections.scm8
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rescript/textobjects.scm16
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ruby/highlights.scm146
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ruby/indents.toml25
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ruby/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ruby/locals.scm27
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/ruby/tags.scm64
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rust/highlights.scm356
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rust/indents.toml28
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rust/injections.scm26
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rust/locals.scm17
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/rust/textobjects.scm35
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/scala/highlights.scm203
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/scala/indents.toml23
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/scala/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/solidity/highlights.scm189
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/svelte/highlights.scm68
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/svelte/indents.toml18
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/svelte/injections.scm30
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tablegen/highlights.scm90
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tablegen/indents.toml7
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tablegen/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tablegen/textobjects.scm16
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/toml/highlights.scm33
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/toml/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tsq/highlights.scm46
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tsq/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tsx/highlights.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/tsx/injections.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/twig/highlights.scm16
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/twig/injections.scm3
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/typescript/highlights.scm36
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/typescript/indents.toml28
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/typescript/injections.scm1
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/typescript/locals.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/typescript/tags.scm23
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/vue/highlights.scm21
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/vue/injections.scm20
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/wgsl/highlights.scm102
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/wgsl/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/yaml/highlights.scm43
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/yaml/indents.toml3
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/yaml/injections.scm2
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/zig/highlights.scm234
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/zig/indents.toml16
-rw-r--r--helix-22.03-x86_64-windows/runtime/queries/zig/injections.scm2
187 files changed, 8593 insertions, 0 deletions
diff --git a/helix-22.03-x86_64-windows/runtime/queries/bash/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/bash/highlights.scm
new file mode 100644
index 0000000..57898f2
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/bash/highlights.scm
@@ -0,0 +1,54 @@
+[
+ (string)
+ (raw_string)
+ (heredoc_body)
+ (heredoc_start)
+] @string
+
+(command_name) @function
+
+(variable_name) @variable.other.member
+
+[
+ "case"
+ "do"
+ "done"
+ "elif"
+ "else"
+ "esac"
+ "export"
+ "fi"
+ "for"
+ "function"
+ "if"
+ "in"
+ "unset"
+ "while"
+ "then"
+] @keyword
+
+(comment) @comment
+
+(function_definition name: (word) @function)
+
+(file_descriptor) @constant.numeric.integer
+
+[
+ (command_substitution)
+ (process_substitution)
+ (expansion)
+]@embedded
+
+[
+ "$"
+ "&&"
+ ">"
+ ">>"
+ "<"
+ "|"
+] @operator
+
+(
+ (command (_) @constant)
+ (#match? @constant "^-")
+)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/bash/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/bash/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/bash/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/c-sharp/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/c-sharp/highlights.scm
new file mode 100644
index 0000000..6b94dd8
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/c-sharp/highlights.scm
@@ -0,0 +1,336 @@
+;; Methods
+(method_declaration
+ name: (identifier) @function)
+
+(method_declaration
+ type: [(identifier) (qualified_name)] @type)
+
+(invocation_expression
+ (member_access_expression
+ name: (identifier) @function))
+
+(invocation_expression
+ (member_access_expression
+ expression: (identifier) @variable))
+
+(invocation_expression
+ function: (conditional_access_expression
+ (member_binding_expression
+ name: (identifier) @function)))
+
+(invocation_expression
+ [(identifier) (qualified_name)] @function)
+
+; Generic Method invocation with generic type
+(invocation_expression
+ function: (generic_name
+ . (identifier) @function))
+
+;; Namespaces
+
+(namespace_declaration
+ name: [(identifier) (qualified_name)] @namespace)
+
+;; Types
+(interface_declaration name: (identifier) @type)
+(class_declaration name: (identifier) @type)
+(enum_declaration name: (identifier) @type)
+(struct_declaration (identifier) @type)
+(record_declaration (identifier) @type)
+(namespace_declaration name: (identifier) @type)
+(using_directive (_) @namespace)
+(constructor_declaration name: (identifier) @type)
+(object_creation_expression [(identifier) (qualified_name)] @type)
+(type_parameter_list (type_parameter) @type)
+
+[
+ (implicit_type)
+ (nullable_type)
+ (pointer_type)
+ (function_pointer_type)
+ (predefined_type)
+] @type.builtin
+
+;; Generic Types
+(type_of_expression
+ (generic_name
+ (identifier) @type))
+
+(base_list
+ (generic_name
+ (identifier) @type))
+
+(type_constraint
+ (generic_name
+ (identifier) @type))
+
+(object_creation_expression
+ (generic_name
+ (identifier) @type))
+
+(property_declaration
+ (generic_name
+ (identifier) @type))
+
+(_
+ type: (generic_name
+ (identifier) @type))
+
+;; Enum
+(enum_member_declaration (identifier) @variable.other.member)
+
+;; Literals
+[
+ (real_literal)
+ (integer_literal)
+] @constant.numeric.integer
+
+(character_literal) @constant.character
+[
+ (string_literal)
+ (verbatim_string_literal)
+ (interpolated_string_text)
+ (interpolated_verbatim_string_text)
+ "\""
+ "$\""
+ "@$\""
+ "$@\""
+ ] @string
+
+(boolean_literal) @constant.builtin.boolean
+[
+ (null_literal)
+ (void_keyword)
+] @constant.builtin
+
+;; Comments
+(comment) @comment
+
+;; Tokens
+[
+ ";"
+ "."
+ ","
+] @punctuation.delimiter
+
+[
+ "--"
+ "-"
+ "-="
+ "&"
+ "&&"
+ "+"
+ "++"
+ "+="
+ "<"
+ "<="
+ "<<"
+ "<<="
+ "="
+ "=="
+ "!"
+ "!="
+ "=>"
+ ">"
+ ">="
+ ">>"
+ ">>="
+ "|"
+ "||"
+ "|="
+ "?"
+ "??"
+ "^"
+ "^="
+ "~"
+ "*"
+ "*="
+ "/"
+ "/="
+ "%"
+ "%="
+ ":"
+ ".."
+ "&="
+ "->"
+ "??="
+] @operator
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+;; Keywords
+(modifier) @keyword
+(this_expression) @keyword
+(escape_sequence) @constant.character.escape
+
+[
+ "as"
+ "base"
+ "break"
+ "case"
+ "catch"
+ "checked"
+ "class"
+ "continue"
+ "default"
+ "delegate"
+ "do"
+ "else"
+ "enum"
+ "event"
+ "explicit"
+ "finally"
+ "for"
+ "foreach"
+ "goto"
+ "if"
+ "implicit"
+ "interface"
+ "is"
+ "lock"
+ "namespace"
+ "operator"
+ "params"
+ "return"
+ "sizeof"
+ "stackalloc"
+ "static"
+ "struct"
+ "switch"
+ "throw"
+ "try"
+ "typeof"
+ "unchecked"
+ "using"
+ "while"
+ "new"
+ "await"
+ "in"
+ "yield"
+ "get"
+ "set"
+ "when"
+ "out"
+ "ref"
+ "from"
+ "where"
+ "select"
+ "record"
+ "init"
+ "with"
+ "let"
+] @keyword
+
+(preprocessor_call) @keyword.directive
+(preprocessor_call (_) @keyword.directive)
+
+;; Linq
+(from_clause (identifier) @variable)
+(group_clause)
+(order_by_clause)
+(select_clause (identifier) @variable)
+(query_continuation (identifier) @variable) @keyword
+
+;; Record
+(with_expression
+ (with_initializer_expression
+ (simple_assignment_expression
+ (identifier) @variable)))
+
+;; Exprs
+(binary_expression [(identifier) (qualified_name)] @variable [(identifier) (qualified_name)] @variable)
+(binary_expression [(identifier) (qualified_name)]* @variable)
+(conditional_expression [(identifier) (qualified_name)] @variable)
+(prefix_unary_expression [(identifier) (qualified_name)] @variable)
+(postfix_unary_expression [(identifier) (qualified_name)]* @variable)
+(assignment_expression [(identifier) (qualified_name)] @variable)
+(cast_expression [(identifier) (qualified_name)] @type [(identifier) (qualified_name)] @variable)
+
+;; Class
+(base_list (identifier) @type)
+(property_declaration (generic_name))
+(property_declaration
+ type: (nullable_type) @type
+ name: (identifier) @variable)
+(property_declaration
+ type: (predefined_type) @type
+ name: (identifier) @variable)
+(property_declaration
+ type: (identifier) @type
+ name: (identifier) @variable)
+
+;; Delegate
+
+(delegate_declaration (identifier) @type)
+
+;; Lambda
+(lambda_expression) @variable
+
+;; Attribute
+(attribute) @type
+
+;; Parameter
+(parameter
+ type: (identifier) @type
+ name: (identifier) @variable.parameter)
+(parameter (identifier) @variable.parameter)
+(parameter_modifier) @keyword
+
+(parameter_list
+ (parameter
+ name: (identifier) @parameter))
+
+(parameter_list
+ (parameter
+ type: [(identifier) (qualified_name)] @type))
+
+;; Typeof
+(type_of_expression [(identifier) (qualified_name)] @type)
+
+;; Variable
+(variable_declaration [(identifier) (qualified_name)] @type)
+(variable_declarator [(identifier) (qualified_name)] @variable)
+
+;; Return
+(return_statement (identifier) @variable)
+(yield_statement (identifier) @variable)
+
+;; Type
+(generic_name (identifier) @type)
+(type_parameter [(identifier) (qualified_name)] @variable.parameter)
+(type_argument_list [(identifier) (qualified_name)] @type)
+
+;; Type constraints
+(type_parameter_constraints_clause (identifier) @variable.parameter)
+(type_constraint (identifier) @type)
+
+;; Exception
+(catch_declaration (identifier) @type (identifier) @variable)
+(catch_declaration (identifier) @type)
+
+;; Switch
+(switch_statement (identifier) @variable)
+(switch_expression (identifier) @variable)
+
+;; Lock statement
+(lock_statement (identifier) @variable)
+
+;; Rest
+(member_access_expression) @variable
+(element_access_expression (identifier) @variable)
+(argument (identifier) @variable)
+(for_statement (identifier) @variable)
+(for_each_statement (identifier) @variable)
+(expression_statement (identifier) @variable)
+(member_access_expression expression: (identifier) @variable)
+(member_access_expression name: (identifier) @variable)
+(conditional_access_expression [(identifier) (qualified_name)] @variable)
+((identifier) @comment.unused
+ (#eq? @comment.unused "_"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/c-sharp/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/c-sharp/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/c-sharp/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/c/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/c/highlights.scm
new file mode 100644
index 0000000..918f3f6
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/c/highlights.scm
@@ -0,0 +1,87 @@
+"goto" @keyword
+"register" @keyword
+"break" @keyword
+"case" @keyword
+"const" @keyword
+"continue" @keyword
+"default" @keyword
+"do" @keyword
+"else" @keyword
+"enum" @keyword
+"extern" @keyword
+"for" @keyword
+"if" @keyword
+"inline" @keyword
+"return" @keyword
+"sizeof" @keyword
+"static" @keyword
+"struct" @keyword
+"switch" @keyword
+"typedef" @keyword
+"union" @keyword
+"volatile" @keyword
+"while" @keyword
+
+[
+ "#define"
+ "#elif"
+ "#else"
+ "#endif"
+ "#if"
+ "#ifdef"
+ "#ifndef"
+ "#include"
+ (preproc_directive)
+] @keyword.directive
+
+"--" @operator
+"-" @operator
+"-=" @operator
+"->" @operator
+"=" @operator
+"!=" @operator
+"*" @operator
+"&" @operator
+"&&" @operator
+"+" @operator
+"++" @operator
+"+=" @operator
+"<" @operator
+"==" @operator
+">" @operator
+"||" @operator
+
+"." @punctuation.delimiter
+";" @punctuation.delimiter
+
+(enumerator) @type.enum.variant
+
+(string_literal) @string
+(system_lib_string) @string
+
+(null) @constant
+(number_literal) @constant.numeric.integer
+(char_literal) @constant.character
+
+(call_expression
+ function: (identifier) @function)
+(call_expression
+ function: (field_expression
+ field: (field_identifier) @function))
+(function_declarator
+ declarator: (identifier) @function)
+(preproc_function_def
+ name: (identifier) @function.special)
+
+(field_identifier) @variable.other.member
+(statement_identifier) @label
+(type_identifier) @type
+(primitive_type) @type
+(sized_type_specifier) @type
+
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z\\d_]*$"))
+
+(identifier) @variable
+
+(comment) @comment
diff --git a/helix-22.03-x86_64-windows/runtime/queries/c/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/c/indents.toml
new file mode 100644
index 0000000..f4076e1
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/c/indents.toml
@@ -0,0 +1,16 @@
+indent = [
+ "compound_statement",
+ "field_declaration_list",
+ "enumerator_list",
+ "parameter_list",
+ "init_declarator",
+ "case_statement",
+ "condition_clause",
+ "expression_statement",
+]
+
+outdent = [
+ "case",
+ "}",
+ "]",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/c/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/c/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/c/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/c/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/c/textobjects.scm
new file mode 100644
index 0000000..45f554e
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/c/textobjects.scm
@@ -0,0 +1,17 @@
+(function_definition
+ body: (_) @function.inside) @function.around
+
+(struct_specifier
+ body: (_) @class.inside) @class.around
+
+(enum_specifier
+ body: (_) @class.inside) @class.around
+
+(union_specifier
+ body: (_) @class.inside) @class.around
+
+(parameter_declaration) @parameter.inside
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cmake/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/cmake/highlights.scm
new file mode 100644
index 0000000..71e9b5d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cmake/highlights.scm
@@ -0,0 +1,97 @@
+[
+ (quoted_argument)
+ (bracket_argument)
+ ] @string
+
+(variable) @variable
+
+[
+ (bracket_comment)
+ (line_comment)
+ ] @comment
+
+(normal_command (identifier) @function)
+
+["ENV" "CACHE"] @string.special.symbol
+["$" "{" "}" "<" ">"] @punctuation
+["(" ")"] @punctuation.bracket
+
+[
+ (function)
+ (endfunction)
+ (macro)
+ (endmacro)
+ ] @keyword.function
+
+[
+ (if)
+ (elseif)
+ (else)
+ (endif)
+ ] @keyword.control.conditional
+
+[
+ (foreach)
+ (endforeach)
+ (while)
+ (endwhile)
+ ] @keyword.control.repeat
+
+(function_command
+ (function)
+ . (argument) @function
+ (argument)* @variable.parameter
+ )
+
+(macro_command
+ (macro)
+ . (argument) @function.macro
+ (argument)* @variable.parameter
+ )
+
+(normal_command
+ (identifier) @function.builtin
+ . (argument) @variable
+ (#match? @function.builtin "^(?i)(set)$"))
+
+(normal_command
+ (identifier) @function.builtin
+ . (argument)
+ (argument) @constant
+ (#match? @constant "^(?:PARENT_SCOPE|CACHE)$")
+ (#match? @function.builtin "^(?i)(unset)$"))
+
+(normal_command
+ (identifier) @function.builtin
+ . (argument)
+ . (argument)
+ (argument) @constant
+ (#match? @constant "^(?:PARENT_SCOPE|CACHE|FORCE)$")
+ (#match? @function.builtin "^(?i)(set)$")
+ )
+
+((argument) @constant.builtin.boolean
+ (#match? @constant.builtin.boolean "^(?i)(?:1|on|yes|true|y|0|off|no|false|n|ignore|notfound|.*-notfound)$")
+ )
+
+(if_command
+ (if)
+ (argument) @operator
+ (#match? @operator "^(?:NOT|AND|OR|COMMAND|POLICY|TARGET|TEST|DEFINED|IN_LIST|EXISTS|IS_NEWER_THAN|IS_DIRECTORY|IS_SYMLINK|IS_ABSOLUTE|MATCHES|LESS|GREATER|EQUAL|LESS_EQUAL|GREATER_EQUAL|STRLESS|STRGREATER|STREQUAL|STRLESS_EQUAL|STRGREATER_EQUAL|VERSION_LESS|VERSION_GREATER|VERSION_EQUAL|VERSION_LESS_EQUAL|VERSION_GREATER_EQUAL)$")
+)
+
+(normal_command
+ (identifier) @function.builtin
+ . (argument)
+ (argument) @constant
+ (#match? @constant "^(?:ALL|COMMAND|DEPENDS|BYPRODUCTS|WORKING_DIRECTORY|COMMENT|JOB_POOL|VERBATIM|USES_TERMINAL|COMMAND_EXPAND_LISTS|SOURCES)$")
+ (#match? @function.builtin "^(?i)(add_custom_target)$")
+ )
+
+(normal_command
+ (identifier) @function.builtin
+ (argument) @constant
+ (#match? @constant "^(?:OUTPUT|COMMAND|MAIN_DEPENDENCY|DEPENDS|BYPRODUCTS|IMPLICIT_DEPENDS|WORKING_DIRECTORY|COMMENT|DEPFILE|JOB_POOL|VERBATIM|APPEND|USES_TERMINAL|COMMAND_EXPAND_LISTS)$")
+ (#match? @function.builtin "^(?i)(add_custom_command)$")
+ )
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cmake/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/cmake/indents.toml
new file mode 100644
index 0000000..8b886a4
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cmake/indents.toml
@@ -0,0 +1,12 @@
+indent = [
+ "if_condition",
+ "foreach_loop",
+ "while_loop",
+ "function_def",
+ "macro_def",
+ "normal_command",
+]
+
+outdent = [
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cmake/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/cmake/injections.scm
new file mode 100644
index 0000000..6cb6c25
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cmake/injections.scm
@@ -0,0 +1,4 @@
+((line_comment) @injection.content
+ (#set! injection.language "comment"))
+((bracket_comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cmake/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/cmake/textobjects.scm
new file mode 100644
index 0000000..1fa9ded
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cmake/textobjects.scm
@@ -0,0 +1,12 @@
+(macro_def) @function.around
+
+(argument) @parameter.inside
+
+[
+ (bracket_comment)
+ (line_comment)
+] @comment.inside
+
+(line_comment)+ @comment.around
+
+(bracket_comment) @comment.around \ No newline at end of file
diff --git a/helix-22.03-x86_64-windows/runtime/queries/comment/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/comment/highlights.scm
new file mode 100644
index 0000000..88685d5
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/comment/highlights.scm
@@ -0,0 +1,30 @@
+[
+ "("
+ ")"
+] @punctuation.bracket
+
+":" @punctuation.delimiter
+
+((tag (name) @warning)
+ (#match? @warning "^(TODO|HACK|WARNING)$"))
+
+("text" @warning
+ (#match? @warning "^(TODO|HACK|WARNING)$"))
+
+((tag (name) @error)
+ (match? @error "^(FIXME|XXX|BUG)$"))
+
+("text" @error
+ (match? @error "^(FIXME|XXX|BUG)$"))
+
+(tag
+ (name) @ui.text
+ (user)? @constant)
+
+; Issue number (#123)
+("text" @constant.numeric
+ (#match? @constant.numeric "^#[0-9]+$"))
+
+; User mention (@user)
+("text" @tag
+ (#match? @tag "^[@][a-zA-Z0-9_-]+$"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cpp/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/cpp/highlights.scm
new file mode 100644
index 0000000..3348ef3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cpp/highlights.scm
@@ -0,0 +1,67 @@
+; inherits: c
+
+; Functions
+
+(call_expression
+ function: (qualified_identifier
+ name: (identifier) @function))
+
+(template_function
+ name: (identifier) @function)
+
+(template_method
+ name: (field_identifier) @function)
+
+(template_function
+ name: (identifier) @function)
+
+(function_declarator
+ declarator: (qualified_identifier
+ name: (identifier) @function))
+
+(function_declarator
+ declarator: (qualified_identifier
+ name: (identifier) @function))
+
+(function_declarator
+ declarator: (field_identifier) @function)
+
+; Types
+
+((namespace_identifier) @type
+ (#match? @type "^[A-Z]"))
+
+(auto) @type
+
+; Constants
+
+(this) @variable.builtin
+(nullptr) @constant
+
+; Keywords
+
+"catch" @keyword
+"class" @keyword
+"constexpr" @keyword
+"delete" @keyword
+"explicit" @keyword
+"final" @keyword
+"friend" @keyword
+"mutable" @keyword
+"namespace" @keyword
+"noexcept" @keyword
+"new" @keyword
+"override" @keyword
+"private" @keyword
+"protected" @keyword
+"public" @keyword
+"template" @keyword
+"throw" @keyword
+"try" @keyword
+"typename" @keyword
+"using" @keyword
+"virtual" @keyword
+
+; Strings
+
+(raw_string_literal) @string
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cpp/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/cpp/indents.toml
new file mode 100644
index 0000000..0ca2ed8
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cpp/indents.toml
@@ -0,0 +1,17 @@
+indent = [
+ "compound_statement",
+ "field_declaration_list",
+ "enumerator_list",
+ "parameter_list",
+ "init_declarator",
+ "case_statement",
+ "condition_clause",
+ "expression_statement",
+]
+
+outdent = [
+ "case",
+ "access_specifier",
+ "}",
+ "]",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cpp/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/cpp/injections.scm
new file mode 100644
index 0000000..a5a5208
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cpp/injections.scm
@@ -0,0 +1 @@
+; inherits: c
diff --git a/helix-22.03-x86_64-windows/runtime/queries/cpp/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/cpp/textobjects.scm
new file mode 100644
index 0000000..6e3de1a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/cpp/textobjects.scm
@@ -0,0 +1,7 @@
+; inherits: c
+
+(lambda_expression
+ body: (_) @function.inside) @function.around
+
+(class_specifier
+ body: (_) @class.inside) @class.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/css/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/css/highlights.scm
new file mode 100644
index 0000000..4dfc0c6
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/css/highlights.scm
@@ -0,0 +1,64 @@
+(comment) @comment
+
+(tag_name) @tag
+(nesting_selector) @tag
+(universal_selector) @tag
+
+"~" @operator
+">" @operator
+"+" @operator
+"-" @operator
+"*" @operator
+"/" @operator
+"=" @operator
+"^=" @operator
+"|=" @operator
+"~=" @operator
+"$=" @operator
+"*=" @operator
+
+"and" @operator
+"or" @operator
+"not" @operator
+"only" @operator
+
+(attribute_selector (plain_value) @string)
+(pseudo_element_selector (tag_name) @attribute)
+(pseudo_class_selector (class_name) @attribute)
+
+(class_name) @variable.other.member
+(id_name) @variable.other.member
+(namespace_name) @variable.other.member
+(property_name) @variable.other.member
+(feature_name) @variable.other.member
+
+(attribute_name) @attribute
+
+(function_name) @function
+
+((property_name) @variable
+ (#match? @variable "^--"))
+((plain_value) @variable
+ (#match? @variable "^--"))
+
+"@media" @keyword
+"@import" @keyword
+"@charset" @keyword
+"@namespace" @keyword
+"@supports" @keyword
+"@keyframes" @keyword
+(at_keyword) @keyword
+(to) @keyword
+(from) @keyword
+(important) @keyword
+
+(string_value) @string
+(color_value) @string.special
+
+(integer_value) @constant.numeric.integer
+(float_value) @constant.numeric.float
+(unit) @type
+
+"#" @punctuation.delimiter
+"," @punctuation.delimiter
+":" @punctuation.delimiter
diff --git a/helix-22.03-x86_64-windows/runtime/queries/css/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/css/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/css/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/dart/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/dart/highlights.scm
new file mode 100644
index 0000000..9f667d6
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/dart/highlights.scm
@@ -0,0 +1,237 @@
+(dotted_identifier_list) @string
+
+; Methods
+; --------------------
+(super) @function.builtin
+
+(function_expression_body (identifier) @function.method)
+((identifier)(selector (argument_part)) @function.method)
+
+; Annotations
+; --------------------
+(annotation
+ name: (identifier) @attribute)
+(marker_annotation
+ name: (identifier) @attribute)
+
+; Types
+; --------------------
+(class_definition
+ name: (identifier) @type)
+
+(constructor_signature
+ name: (identifier) @function.method)
+
+(function_signature
+ name: (identifier) @function.method)
+
+(getter_signature
+ (identifier) @function.builtin)
+
+(setter_signature
+ name: (identifier) @function.builtin)
+
+(enum_declaration
+ name: (identifier) @type)
+
+(enum_constant
+ name: (identifier) @type.builtin)
+
+(void_type) @type.builtin
+
+((scoped_identifier
+ scope: (identifier) @type)
+ (#match? @type "^[a-zA-Z]"))
+
+((scoped_identifier
+ scope: (identifier) @type
+ name: (identifier) @type)
+ (#match? @type "^[a-zA-Z]"))
+
+; the DisabledDrawerButtons in : const DisabledDrawerButtons(history: true),
+(type_identifier) @type.builtin
+
+; Variables
+; --------------------
+; the "File" in var file = File();
+((identifier) @namespace
+ (#match? @namespace "^_?[A-Z].*[a-z]")) ; catch Classes or IClasses not CLASSES
+
+("Function" @type.builtin)
+(inferred_type) @type.builtin
+
+; properties
+(unconditional_assignable_selector
+ (identifier) @variable.other.member)
+
+(conditional_assignable_selector
+ (identifier) @variable.other.member)
+
+; assignments
+; --------------------
+; the "strings" in : strings = "some string"
+(assignment_expression
+ left: (assignable_expression) @variable)
+
+(this) @variable.builtin
+
+; Parameters
+; --------------------
+(formal_parameter
+ name: (identifier) @variable)
+
+(named_argument
+ (label (identifier) @variable))
+
+; Literals
+; --------------------
+[
+ (hex_integer_literal)
+ (decimal_integer_literal)
+ (decimal_floating_point_literal)
+ ;(octal_integer_literal)
+ ;(hex_floating_point_literal)
+] @constant.numeric.integer
+
+(symbol_literal) @string.special.symbol
+(string_literal) @string
+
+[
+ (const_builtin)
+ (final_builtin)
+] @variable.builtin
+
+[
+ (true)
+ (false)
+] @constant.builtin.boolean
+
+(null_literal) @constant.builtin
+
+(comment) @comment.line
+(documentation_comment) @comment.block.documentation
+
+; Tokens
+; --------------------
+(template_substitution
+ "$" @punctuation.special
+ "{" @punctuation.special
+ "}" @punctuation.special
+) @embedded
+
+(template_substitution
+ "$" @punctuation.special
+ (identifier_dollar_escaped) @variable
+) @embedded
+
+(escape_sequence) @constant.character.escape
+
+; Punctuation
+;---------------------
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ ";"
+ "."
+ ","
+ ":"
+] @punctuation.delimiter
+
+; Operators
+;---------------------
+[
+ "@"
+ "?"
+ "=>"
+ ".."
+ "=="
+ "&&"
+ "%"
+ "<"
+ ">"
+ "="
+ ">="
+ "<="
+ "||"
+ (multiplicative_operator)
+ (increment_operator)
+ (is_operator)
+ (prefix_operator)
+ (equality_operator)
+ (additive_operator)
+] @operator
+
+; Keywords
+; --------------------
+["import" "library" "export"] @keyword.control.import
+["do" "while" "continue" "for"] @keyword.control.repeat
+["return" "yield"] @keyword.control.return
+["as" "in" "is"] @keyword.operator
+
+[
+ "?."
+ "??"
+ "if"
+ "else"
+ "switch"
+ "default"
+ "late"
+] @keyword.control.conditional
+
+[
+ "try"
+ "throw"
+ "catch"
+ "finally"
+ (break_statement)
+] @keyword.control.exception
+
+; Reserved words (cannot be used as identifiers)
+[
+ (case_builtin)
+ "abstract"
+ "async"
+ "async*"
+ "await"
+ "class"
+ "covariant"
+ "deferred"
+ "dynamic"
+ "enum"
+ "extends"
+ "extension"
+ "external"
+ "factory"
+ "Function"
+ "get"
+ "implements"
+ "interface"
+ "mixin"
+ "new"
+ "on"
+ "operator"
+ "part"
+ "required"
+ "set"
+ "show"
+ "static"
+ "super"
+ "sync*"
+ "typedef"
+ "with"
+] @keyword
+
+; when used as an identifier:
+((identifier) @variable.builtin
+ (#match? @variable.builtin "^(abstract|as|covariant|deferred|dynamic|export|external|factory|Function|get|implements|import|interface|library|operator|mixin|part|set|static|typedef)$"))
+
+; Error
+(ERROR) @error
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/dart/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/dart/indents.toml
new file mode 100644
index 0000000..5c11e05
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/dart/indents.toml
@@ -0,0 +1,20 @@
+indent = [
+ "class_body",
+ "function_body",
+ "function_expression_body",
+ "declaration",
+ "initializers",
+ "switch_block",
+ "if_statement",
+ "formal_parameter_list",
+ "formal_parameter",
+ "list_literal",
+ "return_statement",
+ "arguments"
+]
+
+outdent = [
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/dart/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/dart/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/dart/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/dart/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/dart/locals.scm
new file mode 100644
index 0000000..629838e
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/dart/locals.scm
@@ -0,0 +1,20 @@
+; Scopes
+;-------
+
+[
+ (block)
+ (try_statement)
+ (catch_clause)
+ (finally_clause)
+] @local.scope
+
+; Definitions
+;------------
+
+(class_definition
+ body: (_) @local.definition)
+
+; References
+;------------
+
+(identifier) @local.reference
diff --git a/helix-22.03-x86_64-windows/runtime/queries/dockerfile/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/dockerfile/highlights.scm
new file mode 100644
index 0000000..5a945fb
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/dockerfile/highlights.scm
@@ -0,0 +1,51 @@
+[
+ "FROM"
+ "AS"
+ "RUN"
+ "CMD"
+ "LABEL"
+ "EXPOSE"
+ "ENV"
+ "ADD"
+ "COPY"
+ "ENTRYPOINT"
+ "VOLUME"
+ "USER"
+ "WORKDIR"
+ "ARG"
+ "ONBUILD"
+ "STOPSIGNAL"
+ "HEALTHCHECK"
+ "SHELL"
+ "MAINTAINER"
+ "CROSS_BUILD"
+] @keyword
+
+[
+ ":"
+ "@"
+] @operator
+
+(comment) @comment
+
+
+(image_spec
+ (image_tag
+ ":" @punctuation.special)
+ (image_digest
+ "@" @punctuation.special))
+
+(double_quoted_string) @string
+
+(expansion
+ [
+ "$"
+ "{"
+ "}"
+ ] @punctuation.special
+) @none
+
+((variable) @constant
+ (#match? @constant "^[A-Z][A-Z_0-9]*$"))
+
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/dockerfile/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/dockerfile/injections.scm
new file mode 100644
index 0000000..20396f1
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/dockerfile/injections.scm
@@ -0,0 +1,6 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+([(shell_command) (shell_fragment)] @injection.content
+ (#set! injection.language "bash"))
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/elixir/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/elixir/highlights.scm
new file mode 100644
index 0000000..76fd2af
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/elixir/highlights.scm
@@ -0,0 +1,221 @@
+; The following code originates mostly from
+; https://github.com/elixir-lang/tree-sitter-elixir, with minor edits to
+; align the captures with helix. The following should be considered
+; Copyright 2021 The Elixir Team
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+; https://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+; Reserved keywords
+
+["when" "and" "or" "not" "in" "not in" "fn" "do" "end" "catch" "rescue" "after" "else"] @keyword
+
+; Operators
+
+; * doc string
+(unary_operator
+ operator: "@" @comment.block.documentation
+ operand: (call
+ target: (identifier) @comment.block.documentation.__attribute__
+ (arguments
+ [
+ (string) @comment.block.documentation
+ (charlist) @comment.block.documentation
+ (sigil
+ quoted_start: _ @comment.block.documentation
+ quoted_end: _ @comment.block.documentation) @comment.block.documentation
+ (boolean) @comment.block.documentation
+ ]))
+ (#match? @comment.block.documentation.__attribute__ "^(moduledoc|typedoc|doc)$"))
+
+; * module attribute
+(unary_operator
+ operator: "@" @variable.other.member
+ operand: [
+ (identifier) @variable.other.member
+ (call
+ target: (identifier) @variable.other.member)
+ (boolean) @variable.other.member
+ (nil) @variable.other.member
+ ])
+
+; * capture operator
+(unary_operator
+ operator: "&"
+ operand: [
+ (integer) @operator
+ (binary_operator
+ left: [
+ (call target: (dot left: (_) right: (identifier) @function))
+ (identifier) @function
+ ] operator: "/" right: (integer) @operator)
+ ])
+
+(operator_identifier) @operator
+
+(unary_operator
+ operator: _ @operator)
+
+(binary_operator
+ operator: _ @operator)
+
+(dot
+ operator: _ @operator)
+
+(stab_clause
+ operator: _ @operator)
+
+; Literals
+
+(nil) @constant.builtin
+
+(boolean) @constant.builtin.boolean
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+
+(alias) @type
+
+(call
+ target: (dot
+ left: (atom) @type))
+
+(char) @constant.character
+
+; Quoted content
+
+(interpolation "#{" @punctuation.special "}" @punctuation.special) @embedded
+
+(escape_sequence) @constant.character.escape
+
+[
+ (atom)
+ (quoted_atom)
+ (keyword)
+ (quoted_keyword)
+] @string.special.symbol
+
+[
+ (string)
+ (charlist)
+] @string
+
+; Note that we explicitly target sigil quoted start/end, so they are not overridden by delimiters
+
+(sigil
+ (sigil_name) @__name__
+ quoted_start: _ @string
+ quoted_end: _ @string
+ (#match? @__name__ "^[sS]$")) @string
+
+(sigil
+ (sigil_name) @__name__
+ quoted_start: _ @string.regexp
+ quoted_end: _ @string.regexp
+ (#match? @__name__ "^[rR]$")) @string.regexp
+
+(sigil
+ (sigil_name) @__name__
+ quoted_start: _ @string.special
+ quoted_end: _ @string.special) @string.special
+
+; Calls
+
+; * definition keyword
+(call
+ target: (identifier) @keyword
+ (#match? @keyword "^(def|defdelegate|defexception|defguard|defguardp|defimpl|defmacro|defmacrop|defmodule|defn|defnp|defoverridable|defp|defprotocol|defstruct)$"))
+
+; * kernel or special forms keyword
+(call
+ target: (identifier) @keyword
+ (#match? @keyword "^(alias|case|cond|else|for|if|import|quote|raise|receive|require|reraise|super|throw|try|unless|unquote|unquote_splicing|use|with)$"))
+
+; * function call
+(call
+ target: [
+ ; local
+ (identifier) @function
+ ; remote
+ (dot
+ right: (identifier) @function)
+ ])
+
+; * just identifier in function definition
+(call
+ target: (identifier) @keyword
+ (arguments
+ [
+ (identifier) @function
+ (binary_operator
+ left: (identifier) @function
+ operator: "when")
+ ])
+ (#match? @keyword "^(def|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp|defp)$"))
+
+; * pipe into identifier (definition)
+(call
+ target: (identifier) @keyword
+ (arguments
+ (binary_operator
+ operator: "|>"
+ right: (identifier) @variable))
+ (#match? @keyword "^(def|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp|defp)$"))
+
+; * pipe into identifier (function call)
+(binary_operator
+ operator: "|>"
+ right: (identifier) @function)
+
+; Identifiers
+
+; * special
+(
+ (identifier) @constant.builtin
+ (#match? @constant.builtin "^(__MODULE__|__DIR__|__ENV__|__CALLER__|__STACKTRACE__)$")
+)
+
+; * unused
+(
+ (identifier) @comment
+ (#match? @comment "^_")
+)
+
+; * regular
+(identifier) @variable
+
+; Comment
+
+(comment) @comment
+
+; Punctuation
+
+[
+ "%"
+] @punctuation
+
+[
+ ","
+ ";"
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+ "<<"
+ ">>"
+] @punctuation.bracket
+
+(ERROR) @warning
diff --git a/helix-22.03-x86_64-windows/runtime/queries/elixir/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/elixir/injections.scm
new file mode 100644
index 0000000..8370a0d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/elixir/injections.scm
@@ -0,0 +1,9 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((sigil
+ (sigil_name) @_sigil_name
+ (quoted_content) @injection.content)
+ (#match? @_sigil_name "^(r|R)$")
+ (#set! injection.language "regex")
+ (#set! injection.combined))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/elm/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/elm/highlights.scm
new file mode 100644
index 0000000..3c8fd12
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/elm/highlights.scm
@@ -0,0 +1,83 @@
+; Keywords
+[
+ "if"
+ "then"
+ "else"
+ "let"
+ "in"
+ ] @keyword.control
+(case) @keyword.control
+(of) @keyword.control
+
+(colon) @keyword.operator
+(backslash) @keyword
+(as) @keyword
+(port) @keyword
+(exposing) @keyword
+(alias) @keyword
+(infix) @keyword
+
+(arrow) @keyword.operator
+(dot) @keyword.operator
+
+(port) @keyword
+
+(type_annotation(lower_case_identifier) @function)
+(port_annotation(lower_case_identifier) @function)
+(file (value_declaration (function_declaration_left(lower_case_identifier) @function)))
+
+(field name: (lower_case_identifier) @attribute)
+(field_access_expr(lower_case_identifier) @attribute)
+
+(operator_identifier) @keyword.operator
+(eq) @keyword.operator.assignment
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+"|" @keyword
+"," @punctuation.delimiter
+
+[
+ "|>"
+] @keyword
+
+
+(import) @keyword.contol.import
+(module) @keyword.other
+
+(number_constant_expr) @constant.numeric
+
+(type) @type
+
+(type_declaration(upper_case_identifier) @type)
+(type_ref) @type
+(type_alias_declaration name: (upper_case_identifier) @type)
+
+(union_pattern constructor: (upper_case_qid (upper_case_identifier) @label (dot) (upper_case_identifier) @variable.other.member))
+(union_pattern constructor: (upper_case_qid (upper_case_identifier) @variable.other.member))
+
+(union_variant(upper_case_identifier) @variable.other.member)
+(value_expr name: (value_qid (upper_case_identifier) @label))
+(value_expr (upper_case_qid (upper_case_identifier) @label (dot) (upper_case_identifier) @variable.other.member))
+(value_expr(upper_case_qid(upper_case_identifier)) @variable.other.member)
+
+; comments
+(line_comment) @comment
+(block_comment) @comment
+
+; strings
+(string_escape) @constant.character.escape
+
+(open_quote) @string
+(close_quote) @string
+(regular_string_part) @string
+
+(open_char) @constant.character
+(close_char) @constant.character
diff --git a/helix-22.03-x86_64-windows/runtime/queries/elm/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/elm/injections.scm
new file mode 100644
index 0000000..83f8245
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/elm/injections.scm
@@ -0,0 +1,4 @@
+; Parse glsl where defined
+
+((glsl_content) @injection.content
+ (#set! injection.language "glsl"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/elm/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/elm/locals.scm
new file mode 100644
index 0000000..ab10311
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/elm/locals.scm
@@ -0,0 +1,14 @@
+(value_declaration) @local.scope
+(type_alias_declaration) @local.scope
+(type_declaration) @local.scope
+(type_annotation) @local.scope
+(port_annotation) @local.scope
+(infix_declaration) @local.scope
+(let_in_expr) @local.scope
+
+(function_declaration_left (lower_pattern (lower_case_identifier)) @local.definition)
+(function_declaration_left (lower_case_identifier) @local.definition)
+
+(value_expr(value_qid(upper_case_identifier)) @local.reference)
+(value_expr(value_qid(lower_case_identifier)) @local.reference)
+(type_ref (upper_case_qid) @local.reference)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/elm/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/elm/tags.scm
new file mode 100644
index 0000000..03999fb
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/elm/tags.scm
@@ -0,0 +1,19 @@
+(value_declaration (function_declaration_left (lower_case_identifier) @name)) @definition.function
+
+(function_call_expr (value_expr (value_qid) @name)) @reference.function
+(exposed_value (lower_case_identifier) @name) @reference.function
+(type_annotation ((lower_case_identifier) @name) (colon)) @reference.function
+
+(type_declaration ((upper_case_identifier) @name) ) @definition.type
+
+(type_ref (upper_case_qid (upper_case_identifier) @name)) @reference.type
+(exposed_type (upper_case_identifier) @name) @reference.type
+
+(type_declaration (union_variant (upper_case_identifier) @name)) @definition.union
+
+(value_expr (upper_case_qid (upper_case_identifier) @name)) @reference.union
+
+
+(module_declaration
+ (upper_case_qid (upper_case_identifier)) @name
+) @definition.module
diff --git a/helix-22.03-x86_64-windows/runtime/queries/erlang/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/erlang/highlights.scm
new file mode 100644
index 0000000..fc742f3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/erlang/highlights.scm
@@ -0,0 +1,118 @@
+; Attributes
+; module declaration
+(attribute
+ name: (atom) @keyword
+ (arguments (atom) @module)
+ (#eq? @keyword "module"))
+
+(attribute
+ name: (atom) @keyword
+ (arguments
+ .
+ (atom) @module)
+ (#eq? @keyword "import"))
+
+(attribute
+ name: (atom) @keyword
+ (arguments
+ .
+ (atom) @type
+ [
+ (tuple (atom) @variable.other.member)
+ (tuple
+ (binary_operator
+ left: (atom) @variable.other.member
+ operator: "="))
+ (tuple
+ (binary_operator
+ left:
+ (binary_operator
+ left: (atom) @variable.other.member
+ operator: "=")
+ operator: "::"))
+ ])
+ (#eq? @keyword "record"))
+
+(attribute
+ name: (atom) @keyword
+ (arguments
+ .
+ [
+ (atom) @keyword.directive
+ (variable) @keyword.directive
+ (call
+ function:
+ [(variable) (atom)] @keyword.directive)
+ ])
+ (#eq? @keyword "define"))
+
+(attribute
+ name: (atom) @keyword
+ module: (atom) @module
+ (#eq? @keyword "spec"))
+
+; Functions
+(function name: (atom) @function)
+(call module: (atom) @module)
+(call function: (atom) @function)
+(stab_clause name: (atom) @function)
+(function_capture module: (atom) @module)
+(function_capture function: (atom) @function)
+
+; Records
+(record_content
+ (binary_operator
+ left: (atom) @variable.other.member
+ operator: "="))
+
+(record field: (atom) @variable.other.member)
+(record name: (atom) @type)
+
+; Keywords
+((attribute name: (atom) @keyword)
+ (#match?
+ @keyword
+ "^(define|export|export_type|include|include_lib|ifdef|ifndef|if|elif|else|endif|vsn|on_load|behaviour|record|file|type|opaque|spec)$"))
+
+["case" "fun" "if" "of" "when" "end" "receive" "try" "catch" "after"] @keyword
+
+; Operators
+(binary_operator
+ left: (atom) @function
+ operator: "/"
+ right: (integer) @constant.numeric.integer)
+
+(binary_operator operator: _ @operator)
+(unary_operator operator: _ @operator)
+["/" ":" "#" "->"] @operator
+
+; Comments
+((variable) @comment.discard
+ (#match? @comment.discard "^_"))
+
+(tripledot) @comment.discard
+
+(comment) @comment
+
+; Macros
+(macro
+ "?"+ @keyword.directive
+ name: (_) @keyword.directive)
+
+; Basic types
+(variable) @variable
+[
+ (atom)
+ (quoted_atom)
+] @string.special.symbol
+(string) @string
+(character) @constant.character
+
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+
+; Punctuation
+["," "." "-" ";"] @punctuation.delimiter
+["(" ")" "{" "}" "[" "]" "<<" ">>"] @punctuation.bracket
+
+; (ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/erlang/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/erlang/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/erlang/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/fish/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/fish/highlights.scm
new file mode 100644
index 0000000..def5393
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/fish/highlights.scm
@@ -0,0 +1,156 @@
+;; Operators
+
+[
+ "&&"
+ "||"
+ "|"
+ "&"
+ "="
+ "!="
+ ".."
+ "!"
+ (direction)
+ (stream_redirect)
+ (test_option)
+] @operator
+
+[
+ "not"
+ "and"
+ "or"
+] @keyword.operator
+
+;; Conditionals
+
+(if_statement
+[
+ "if"
+ "end"
+] @keyword.control.conditional)
+
+(switch_statement
+[
+ "switch"
+ "end"
+] @keyword.control.conditional)
+
+(case_clause
+[
+ "case"
+] @keyword.control.conditional)
+
+(else_clause
+[
+ "else"
+] @keyword.control.conditional)
+
+(else_if_clause
+[
+ "else"
+ "if"
+] @keyword.control.conditional)
+
+;; Loops/Blocks
+
+(while_statement
+[
+ "while"
+ "end"
+] @keyword.control.repeat)
+
+(for_statement
+[
+ "for"
+ "end"
+] @keyword.control.repeat)
+
+(begin_statement
+[
+ "begin"
+ "end"
+] @keyword.control.repeat)
+
+;; Keywords
+
+[
+ "in"
+ (break)
+ (continue)
+] @keyword
+
+"return" @keyword.control.return
+
+;; Punctuation
+
+[
+ "["
+ "]"
+ "{"
+ "}"
+ "("
+ ")"
+] @punctuation.bracket
+
+"," @punctuation.delimiter
+
+;; Commands
+
+(command
+ argument: [
+ (word) @variable.parameter (#match? @variable.parameter "^-")
+ ]
+)
+
+; non-bultin command names
+(command name: (word) @function)
+
+; derived from builtin -n (fish 3.2.2)
+(command
+ name: [
+ (word) @function.builtin
+ (#match? @function.builtin "^(\.|:|_|alias|argparse|bg|bind|block|breakpoint|builtin|cd|command|commandline|complete|contains|count|disown|echo|emit|eval|exec|exit|fg|functions|history|isatty|jobs|math|printf|pwd|random|read|realpath|set|set_color|source|status|string|test|time|type|ulimit|wait)$")
+ ]
+)
+
+(test_command "test" @function.builtin)
+
+;; Functions
+
+(function_definition ["function" "end"] @keyword.function)
+
+(function_definition
+ name: [
+ (word) (concatenation)
+ ]
+@function)
+
+(function_definition
+ option: [
+ (word)
+ (concatenation (word))
+ ] @variable.parameter (#match? @variable.parameter "^-")
+)
+
+;; Strings
+
+[(double_quote_string) (single_quote_string)] @string
+(escape_sequence) @constant.character.escape
+
+;; Variables
+
+(variable_name) @variable
+(variable_expansion) @constant
+
+;; Nodes
+
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+(comment) @comment
+(test_option) @string
+
+((word) @constant.builtin.boolean
+(#match? @constant.builtin.boolean "^(true|false)$"))
+
+;; Error
+
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/fish/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/fish/indents.toml
new file mode 100644
index 0000000..6f1e563
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/fish/indents.toml
@@ -0,0 +1,12 @@
+indent = [
+ "function_definition",
+ "while_statement",
+ "for_statement",
+ "if_statement",
+ "begin_statement",
+ "switch_statement",
+]
+
+outdent = [
+ "end"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/fish/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/fish/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/fish/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/fish/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/fish/textobjects.scm
new file mode 100644
index 0000000..de8caa9
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/fish/textobjects.scm
@@ -0,0 +1,5 @@
+(function_definition) @function.around
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/git-commit/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/git-commit/highlights.scm
new file mode 100644
index 0000000..0b50d41
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/git-commit/highlights.scm
@@ -0,0 +1,14 @@
+(subject) @markup.heading
+(path) @string.special.path
+(branch) @string.special.symbol
+(commit) @constant
+(item) @markup.link.url
+(header) @tag
+
+(change kind: "new file" @diff.plus)
+(change kind: "deleted" @diff.minus)
+(change kind: "modified" @diff.delta)
+(change kind: "renamed" @diff.delta.moved)
+
+[":" "->"] @punctuation.delimeter
+(comment) @comment
diff --git a/helix-22.03-x86_64-windows/runtime/queries/git-commit/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/git-commit/injections.scm
new file mode 100644
index 0000000..79f7691
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/git-commit/injections.scm
@@ -0,0 +1,8 @@
+(((scissors)
+ (message) @injection.content)
+ (#set! injection.include-children)
+ (#set! injection.language "diff"))
+
+((rebase_command) @injection.content
+ (#set! injection.include-children)
+ (#set! injection.language "git-rebase"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/git-config/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/git-config/highlights.scm
new file mode 100644
index 0000000..84767ed
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/git-config/highlights.scm
@@ -0,0 +1,27 @@
+((section_name) @keyword.directive
+ (#eq? @keyword.directive "include"))
+
+((section_header
+ (section_name) @keyword.directive
+ (subsection_name))
+ (#eq? @keyword.directive "includeIf"))
+
+(section_name) @markup.heading
+(variable (name) @variable.other.member)
+[(true) (false)] @constant.builtin.boolean
+(integer) @constant.numeric.integer
+
+((string) @string.special.path
+ (#match? @string.special.path "^(~|./|/)"))
+
+[(string) (subsection_name)] @string
+
+[
+ "["
+ "]"
+ "\""
+] @punctuation.bracket
+
+"=" @punctuation.delimiter
+
+(comment) @comment
diff --git a/helix-22.03-x86_64-windows/runtime/queries/git-diff/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/git-diff/highlights.scm
new file mode 100644
index 0000000..1c1a882
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/git-diff/highlights.scm
@@ -0,0 +1,6 @@
+[(addition) (new_file)] @diff.plus
+[(deletion) (old_file)] @diff.minus
+
+(commit) @constant
+(location) @attribute
+(command) @markup.bold
diff --git a/helix-22.03-x86_64-windows/runtime/queries/git-rebase/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/git-rebase/highlights.scm
new file mode 100644
index 0000000..4f00703
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/git-rebase/highlights.scm
@@ -0,0 +1,11 @@
+(operation operator: ["p" "pick" "r" "reword" "e" "edit" "s" "squash" "m" "merge" "d" "drop" "b" "break" "x" "exec"] @keyword)
+(operation operator: ["l" "label" "t" "reset"] @function)
+(operation operator: ["f" "fixup"] @function.special)
+
+(option) @operator
+(label) @string.special.symbol
+(commit) @constant
+"#" @punctuation.delimiter
+(comment) @comment
+
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/git-rebase/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/git-rebase/injections.scm
new file mode 100644
index 0000000..070129b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/git-rebase/injections.scm
@@ -0,0 +1,4 @@
+((operation
+ operator: ["x" "exec"]
+ (command) @injection.content)
+ (#set! injection.language "bash"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/glsl/folds.scm b/helix-22.03-x86_64-windows/runtime/queries/glsl/folds.scm
new file mode 100644
index 0000000..a5a5208
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/glsl/folds.scm
@@ -0,0 +1 @@
+; inherits: c
diff --git a/helix-22.03-x86_64-windows/runtime/queries/glsl/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/glsl/highlights.scm
new file mode 100644
index 0000000..af2a049
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/glsl/highlights.scm
@@ -0,0 +1,37 @@
+; inherits: c
+
+[
+ "in"
+ "out"
+ "inout"
+ "uniform"
+ "shared"
+ "layout"
+ "attribute"
+ "varying"
+ "buffer"
+ "coherent"
+ "readonly"
+ "writeonly"
+ "precision"
+ "highp"
+ "mediump"
+ "lowp"
+ "centroid"
+ "sample"
+ "patch"
+ "smooth"
+ "flat"
+ "noperspective"
+ "invariant"
+ "precise"
+] @keyword
+
+"subroutine" @keyword.function
+
+(extension_storage_class) @attribute
+
+(
+ (identifier) @variable.builtin
+ (#match? @variable.builtin "^gl_")
+)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/glsl/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/glsl/indents.toml
new file mode 100644
index 0000000..a7fd499
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/glsl/indents.toml
@@ -0,0 +1,19 @@
+indent = [
+ "init_declarator",
+ "compound_statement",
+ "preproc_arg",
+ "field_declaration_list",
+ "case_statement",
+ "conditional_expression",
+ "enumerator_list",
+ "struct_specifier",
+ "compound_literal_expression"
+]
+
+outdent = [
+ "#define",
+ "#ifdef",
+ "#endif",
+ "{",
+ "}"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/glsl/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/glsl/injections.scm
new file mode 100644
index 0000000..6330ea3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/glsl/injections.scm
@@ -0,0 +1,4 @@
+; inherits: c
+
+((preproc_arg) @injection.content
+ (#set! injection.language "glsl"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/glsl/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/glsl/locals.scm
new file mode 100644
index 0000000..a5a5208
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/glsl/locals.scm
@@ -0,0 +1 @@
+; inherits: c
diff --git a/helix-22.03-x86_64-windows/runtime/queries/go/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/go/highlights.scm
new file mode 100644
index 0000000..4ff8675
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/go/highlights.scm
@@ -0,0 +1,152 @@
+; Function calls
+
+(call_expression
+ function: (identifier) @function)
+
+(call_expression
+ function: (selector_expression
+ field: (field_identifier) @function.method))
+
+; Function definitions
+
+(function_declaration
+ name: (identifier) @function)
+
+(method_declaration
+ name: (field_identifier) @function.method)
+
+; Identifiers
+
+((identifier) @constant (match? @constant "^[A-Z][A-Z\\d_]+$"))
+(const_spec
+ name: (identifier) @constant)
+
+(parameter_declaration (identifier) @variable.parameter)
+(variadic_parameter_declaration (identifier) @variable.parameter)
+
+(type_identifier) @type
+(field_identifier) @variable.other.member
+(identifier) @variable
+(package_identifier) @variable
+
+
+; Operators
+
+[
+ "--"
+ "-"
+ "-="
+ ":="
+ "!"
+ "!="
+ "..."
+ "*"
+ "*"
+ "*="
+ "/"
+ "/="
+ "&"
+ "&&"
+ "&="
+ "%"
+ "%="
+ "^"
+ "^="
+ "+"
+ "++"
+ "+="
+ "<-"
+ "<"
+ "<<"
+ "<<="
+ "<="
+ "="
+ "=="
+ ">"
+ ">="
+ ">>"
+ ">>="
+ "|"
+ "|="
+ "||"
+ "~"
+] @operator
+
+; Keywords
+
+[
+ "break"
+ "case"
+ "chan"
+ "const"
+ "continue"
+ "default"
+ "defer"
+ "else"
+ "fallthrough"
+ "for"
+ "func"
+ "go"
+ "goto"
+ "if"
+ "interface"
+ "map"
+ "range"
+ "return"
+ "select"
+ "struct"
+ "switch"
+ "type"
+ "var"
+] @keyword
+
+[
+ "import"
+ "package"
+] @keyword.control.import
+
+; Delimiters
+
+[
+ ":"
+ "."
+ ","
+ ";"
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+; Literals
+
+[
+ (interpreted_string_literal)
+ (raw_string_literal)
+ (rune_literal)
+] @string
+
+(escape_sequence) @constant.character.escape
+
+[
+ (int_literal)
+ (float_literal)
+ (imaginary_literal)
+] @constant.numeric.integer
+
+[
+ (true)
+ (false)
+] @constant.builtin.boolean
+
+[
+ (nil)
+ (iota)
+] @constant.builtin
+
+(comment) @comment
diff --git a/helix-22.03-x86_64-windows/runtime/queries/go/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/go/indents.toml
new file mode 100644
index 0000000..7929ff5
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/go/indents.toml
@@ -0,0 +1,30 @@
+indent = [
+ "import_declaration",
+ "const_declaration",
+ #"var_declaration",
+ #"short_var_declaration",
+ "type_declaration",
+ "type_spec",
+ # simply block should be enough
+ # "function_declaration",
+ # "method_declaration",
+ # "composite_literal",
+ "func_literal",
+ "literal_value",
+ "element",
+ "keyed_element",
+ "expression_case",
+ "default_case",
+ "type_case",
+ "communication_case",
+ "argument_list",
+ "field_declaration_list",
+ "block",
+]
+
+outdent = [
+ "case",
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/go/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/go/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/go/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/go/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/go/locals.scm
new file mode 100644
index 0000000..d240e2b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/go/locals.scm
@@ -0,0 +1,30 @@
+; Scopes
+
+(block) @local.scope
+
+; Definitions
+
+(parameter_declaration (identifier) @local.definition)
+(variadic_parameter_declaration (identifier) @local.definition)
+
+(short_var_declaration
+ left: (expression_list
+ (identifier) @local.definition))
+
+(var_spec
+ name: (identifier) @local.definition)
+
+(for_statement
+ (range_clause
+ left: (expression_list
+ (identifier) @local.definition)))
+
+(const_declaration
+ (const_spec
+ name: (identifier) @local.definition))
+
+; References
+
+(identifier) @local.reference
+(field_identifier) @local.reference
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/go/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/go/tags.scm
new file mode 100644
index 0000000..d87008a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/go/tags.scm
@@ -0,0 +1,30 @@
+(
+ (comment)* @doc
+ .
+ (function_declaration
+ name: (identifier) @name) @definition.function
+ (#strip! @doc "^//\\s*")
+ (#set-adjacent! @doc @definition.function)
+)
+
+(
+ (comment)* @doc
+ .
+ (method_declaration
+ name: (field_identifier) @name) @definition.method
+ (#strip! @doc "^//\\s*")
+ (#set-adjacent! @doc @definition.method)
+)
+
+(call_expression
+ function: [
+ (identifier) @name
+ (parenthesized_expression (identifier) @name)
+ (selector_expression field: (field_identifier) @name)
+ (parenthesized_expression (selector_expression field: (field_identifier) @name))
+ ]) @reference.call
+
+(type_spec
+ name: (type_identifier) @name) @definition.type
+
+(type_identifier) @name @reference.type
diff --git a/helix-22.03-x86_64-windows/runtime/queries/go/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/go/textobjects.scm
new file mode 100644
index 0000000..d77e14b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/go/textobjects.scm
@@ -0,0 +1,25 @@
+(function_declaration
+ body: (block)? @function.inside) @function.around
+
+(func_literal
+ (_)? @function.inside) @function.around
+
+(method_declaration
+ body: (block)? @function.inside) @function.around
+
+;; struct and interface declaration as class textobject?
+(type_declaration
+ (type_spec (type_identifier) (struct_type (field_declaration_list (_)?) @class.inside))) @class.around
+
+(type_declaration
+ (type_spec (type_identifier) (interface_type (method_spec_list (_)?) @class.inside))) @class.around
+
+(parameter_list
+ (_) @parameter.inside)
+
+(argument_list
+ (_) @parameter.inside)
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/graphql/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/graphql/highlights.scm
new file mode 100644
index 0000000..9fab405
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/graphql/highlights.scm
@@ -0,0 +1,163 @@
+; Types
+;------
+
+(scalar_type_definition
+ (name) @type)
+
+(object_type_definition
+ (name) @type)
+
+(interface_type_definition
+ (name) @type)
+
+(union_type_definition
+ (name) @type)
+
+(enum_type_definition
+ (name) @type)
+
+(input_object_type_definition
+ (name) @type)
+
+(directive_definition
+ (name) @type)
+
+(directive_definition
+ "@" @type)
+
+(scalar_type_extension
+ (name) @type)
+
+(object_type_extension
+ (name) @type)
+
+(interface_type_extension
+ (name) @type)
+
+(union_type_extension
+ (name) @type)
+
+(enum_type_extension
+ (name) @type)
+
+(input_object_type_extension
+ (name) @type)
+
+(named_type
+ (name) @type)
+
+(directive) @type
+
+; Properties
+;-----------
+
+(field
+ (name) @variable.other.member)
+
+(field
+ (alias
+ (name) @variable.other.member))
+
+(field_definition
+ (name) @variable.other.member)
+
+(object_value
+ (object_field
+ (name) @variable.other.member))
+
+(enum_value
+ (name) @variable.other.member)
+
+; Variable Definitions and Arguments
+;-----------------------------------
+
+(operation_definition
+ (name) @variable)
+
+(fragment_name
+ (name) @variable)
+
+(input_fields_definition
+ (input_value_definition
+ (name) @variable.parameter))
+
+(argument
+ (name) @variable.parameter)
+
+(arguments_definition
+ (input_value_definition
+ (name) @variable.parameter))
+
+(variable_definition
+ (variable) @variable.parameter)
+
+(argument
+ (value
+ (variable) @variable))
+
+; Constants
+;----------
+
+(string_value) @string
+
+(int_value) @constants.numeric.integer
+
+(float_value) @constants.numeric.float
+
+(boolean_value) @constants.builtin.boolean
+
+; Literals
+;---------
+
+(description) @comment
+
+(comment) @comment
+
+(directive_location
+ (executable_directive_location) @type.builtin)
+
+(directive_location
+ (type_system_directive_location) @type.builtin)
+
+; Keywords
+;----------
+
+[
+ "query"
+ "mutation"
+ "subscription"
+ "fragment"
+ "scalar"
+ "type"
+ "interface"
+ "union"
+ "enum"
+ "input"
+ "extend"
+ "directive"
+ "schema"
+ "on"
+ "repeatable"
+ "implements"
+] @keyword
+
+; Punctuation
+;------------
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+"=" @operator
+
+"|" @punctuation.delimiter
+"&" @punctuation.delimiter
+":" @punctuation.delimiter
+
+"..." @punctuation.special
+"!" @punctuation.special
diff --git a/helix-22.03-x86_64-windows/runtime/queries/haskell/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/haskell/highlights.scm
new file mode 100644
index 0000000..5009f3b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/haskell/highlights.scm
@@ -0,0 +1,125 @@
+;; ----------------------------------------------------------------------------
+;; Literals and comments
+
+(integer) @constant.numeric.integer
+(exp_negation) @constant.numeric.integer
+(exp_literal (float)) @constant.numeric.float
+(char) @constant.character
+(string) @string
+
+(con_unit) @constant.builtin ; unit, as in ()
+
+(comment) @comment
+
+
+;; ----------------------------------------------------------------------------
+;; Punctuation
+
+[
+ "("
+ ")"
+ "{"
+ "}"
+ "["
+ "]"
+] @punctuation.bracket
+
+[
+ (comma)
+ ";"
+] @punctuation.delimiter
+
+
+;; ----------------------------------------------------------------------------
+;; Keywords, operators, includes
+
+(pragma) @constant.macro
+
+[
+ "if"
+ "then"
+ "else"
+ "case"
+ "of"
+] @keyword.control.conditional
+
+[
+ "import"
+ "qualified"
+ "module"
+] @keyword.control.import
+
+[
+ (operator)
+ (constructor_operator)
+ (type_operator)
+ (tycon_arrow)
+ (qualified_module) ; grabs the `.` (dot), ex: import System.IO
+ (all_names)
+ (wildcard)
+ "="
+ "|"
+ "::"
+ "=>"
+ "->"
+ "<-"
+ "\\"
+ "`"
+ "@"
+] @operator
+
+(qualified_module (module) @constructor)
+(qualified_type (module) @namespace)
+(qualified_variable (module) @namespace)
+(import (module) @namespace)
+
+[
+ (where)
+ "let"
+ "in"
+ "class"
+ "instance"
+ "data"
+ "newtype"
+ "family"
+ "type"
+ "as"
+ "hiding"
+ "deriving"
+ "via"
+ "stock"
+ "anyclass"
+ "do"
+ "mdo"
+ "rec"
+ "forall"
+ "∀"
+ "infix"
+ "infixl"
+ "infixr"
+] @keyword
+
+
+;; ----------------------------------------------------------------------------
+;; Functions and variables
+
+(signature name: (variable) @type)
+(function name: (variable) @function)
+
+(variable) @variable
+"_" @variable.builtin
+
+(exp_infix (variable) @operator) ; consider infix functions as operators
+
+("@" @namespace) ; "as" pattern operator, e.g. x@Constructor
+
+
+;; ----------------------------------------------------------------------------
+;; Types
+
+(type) @type
+
+(constructor) @constructor
+
+; True or False
+((constructor) @_bool (#match? @_bool "(True|False)")) @constant.builtin.boolean
diff --git a/helix-22.03-x86_64-windows/runtime/queries/haskell/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/haskell/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/haskell/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/haskell/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/haskell/locals.scm
new file mode 100644
index 0000000..ad67fe4
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/haskell/locals.scm
@@ -0,0 +1,4 @@
+(signature name: (variable)) @local.definition
+(function name: (variable)) @local.definition
+(pat_name (variable)) @local.definition
+(exp_name (variable)) @local.reference
diff --git a/helix-22.03-x86_64-windows/runtime/queries/hcl/folds.scm b/helix-22.03-x86_64-windows/runtime/queries/hcl/folds.scm
new file mode 100644
index 0000000..cb20b2a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/hcl/folds.scm
@@ -0,0 +1,6 @@
+[
+ (comment)
+ (block)
+ (heredoc_template)
+ (object)
+] @fold
diff --git a/helix-22.03-x86_64-windows/runtime/queries/hcl/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/hcl/highlights.scm
new file mode 100644
index 0000000..03b3e52
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/hcl/highlights.scm
@@ -0,0 +1,100 @@
+(ERROR) @error
+
+; { key: val }
+
+(object_elem val: (expression
+ (variable_expr
+ (identifier) @type.builtin (#match? @type.builtin "^(bool|string|number|object|tuple|list|map|set|any)$"))))
+
+(get_attr (identifier) @variable.builtin (#match? @variable.builtin "^(root|cwd|module)$"))
+(variable_expr (identifier) @variable.builtin (#match? @variable.builtin "^(var|local|path)$"))
+((identifier) @type.builtin (#match? @type.builtin "^(bool|string|number|object|tuple|list|map|set|any)$"))
+((identifier) @keyword (#match? @keyword "^(module|root|cwd|resource|variable|data|locals|terraform|provider|output)$"))
+
+; highlight identifier keys as though they were block attributes
+(object_elem key: (expression (variable_expr (identifier) @variable.other.member)))
+
+(attribute (identifier) @variable.other.member)
+(function_call (identifier) @function.method)
+(block (identifier) @type.builtin)
+
+(identifier) @variable
+(comment) @comment
+(null_lit) @constant.builtin
+(numeric_lit) @constant.number
+(bool_lit) @constant.builtin.boolean
+
+[
+ (template_interpolation_start) ; ${
+ (template_interpolation_end) ; }
+ (template_directive_start) ; %{
+ (template_directive_end) ; }
+ (strip_marker) ; ~
+] @punctuation.special
+
+[
+ (heredoc_identifier) ; <<END
+ (heredoc_start) ; END
+] @punctuation.delimiter
+
+[
+ (quoted_template_start) ; "
+ (quoted_template_end); "
+ (template_literal) ; non-interpolation/directive content
+] @string
+
+[
+ "if"
+ "else"
+ "endif"
+] @keyword.control.conditional
+
+[
+ "for"
+ "endfor"
+ "in"
+] @keyword.control.repeat
+
+[
+ ":"
+ "="
+] @none
+
+[
+ (ellipsis)
+ "\?"
+ "=>"
+] @punctuation.special
+
+[
+ "."
+ ".*"
+ ","
+ "[*]"
+] @punctuation.delimiter
+
+[
+ "{"
+ "}"
+ "["
+ "]"
+ "("
+ ")"
+] @punctuation.bracket
+
+[
+ "!"
+ "\*"
+ "/"
+ "%"
+ "\+"
+ "-"
+ ">"
+ ">="
+ "<"
+ "<="
+ "=="
+ "!="
+ "&&"
+ "||"
+] @operator
diff --git a/helix-22.03-x86_64-windows/runtime/queries/hcl/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/hcl/indents.toml
new file mode 100644
index 0000000..b0d4a3f
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/hcl/indents.toml
@@ -0,0 +1,13 @@
+indent = [
+ "object",
+ "block",
+ "tuple",
+ "for_tuple_expr",
+ "for_object_expr"
+]
+
+outdent = [
+ "object_end",
+ "block_end",
+ "tuple_end"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/hcl/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/hcl/injections.scm
new file mode 100644
index 0000000..fd69161
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/hcl/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/html/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/html/highlights.scm
new file mode 100644
index 0000000..2c70a9c
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/html/highlights.scm
@@ -0,0 +1,12 @@
+(tag_name) @tag
+(erroneous_end_tag_name) @tag.error
+(doctype) @constant
+(attribute_name) @attribute
+(attribute_value) @string
+(comment) @comment
+
+[
+ "<"
+ ">"
+ "</"
+] @punctuation.bracket
diff --git a/helix-22.03-x86_64-windows/runtime/queries/html/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/html/injections.scm
new file mode 100644
index 0000000..ef58f41
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/html/injections.scm
@@ -0,0 +1,10 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((script_element
+ (raw_text) @injection.content)
+ (#set! injection.language "javascript"))
+
+((style_element
+ (raw_text) @injection.content)
+ (#set! injection.language "css"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/iex/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/iex/highlights.scm
new file mode 100644
index 0000000..2847fbf
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/iex/highlights.scm
@@ -0,0 +1 @@
+(prompt) @comment
diff --git a/helix-22.03-x86_64-windows/runtime/queries/iex/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/iex/injections.scm
new file mode 100644
index 0000000..48863d9
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/iex/injections.scm
@@ -0,0 +1,6 @@
+((evaluation_block (prompt_line (expression) @injection.content))
+ (#set! injection.language "elixir")
+ (#set! injection.combined))
+
+((result) @injection.content
+ (#set! injection.language "elixir"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/java/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/java/highlights.scm
new file mode 100644
index 0000000..77902fc
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/java/highlights.scm
@@ -0,0 +1,130 @@
+; Methods
+
+(method_declaration
+ name: (identifier) @function.method)
+(method_invocation
+ name: (identifier) @function.method)
+(super) @function.builtin
+
+; Annotations
+
+(annotation
+ name: (identifier) @attribute)
+(marker_annotation
+ name: (identifier) @attribute)
+
+"@" @operator
+
+; Types
+
+(interface_declaration
+ name: (identifier) @type)
+(class_declaration
+ name: (identifier) @type)
+(enum_declaration
+ name: (identifier) @type)
+
+((field_access
+ object: (identifier) @type)
+ (#match? @type "^[A-Z]"))
+((scoped_identifier
+ scope: (identifier) @type)
+ (#match? @type "^[A-Z]"))
+
+(constructor_declaration
+ name: (identifier) @type)
+
+(type_identifier) @type
+
+[
+ (boolean_type)
+ (integral_type)
+ (floating_point_type)
+ (floating_point_type)
+ (void_type)
+] @type.builtin
+
+; Variables
+
+((identifier) @constant
+ (#match? @constant "^_*[A-Z][A-Z\\d_]+$"))
+
+(identifier) @variable
+
+(this) @variable.builtin
+
+; Literals
+
+[
+ (hex_integer_literal)
+ (decimal_integer_literal)
+ (octal_integer_literal)
+] @constant.numeric.integer
+
+[
+ (decimal_floating_point_literal)
+ (hex_floating_point_literal)
+] @constant.numeric.float
+
+(character_literal) @constant.character
+(string_literal) @string
+
+[
+ (true)
+ (false)
+ (null_literal)
+] @constant.builtin
+
+(comment) @comment
+
+; Keywords
+
+[
+ "abstract"
+ "assert"
+ "break"
+ "case"
+ "catch"
+ "class"
+ "continue"
+ "default"
+ "do"
+ "else"
+ "enum"
+ "exports"
+ "extends"
+ "final"
+ "finally"
+ "for"
+ "if"
+ "implements"
+ "import"
+ "instanceof"
+ "interface"
+ "module"
+ "native"
+ "new"
+ "open"
+ "opens"
+ "package"
+ "private"
+ "protected"
+ "provides"
+ "public"
+ "requires"
+ "return"
+ "static"
+ "strictfp"
+ "switch"
+ "synchronized"
+ "throw"
+ "throws"
+ "to"
+ "transient"
+ "transitive"
+ "try"
+ "uses"
+ "volatile"
+ "while"
+ "with"
+] @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/java/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/java/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/java/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-jsx.scm b/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-jsx.scm
new file mode 100644
index 0000000..751da08
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-jsx.scm
@@ -0,0 +1,4 @@
+(jsx_opening_element (identifier) @tag)
+(jsx_closing_element (identifier) @tag)
+(jsx_self_closing_element (identifier) @tag)
+(jsx_attribute (property_identifier) @attribute)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-params.scm b/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-params.scm
new file mode 100644
index 0000000..95ffc72
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights-params.scm
@@ -0,0 +1,12 @@
+(formal_parameters
+ [
+ (identifier) @variable.parameter
+ (array_pattern
+ (identifier) @variable.parameter)
+ (object_pattern
+ [
+ (pair_pattern value: (identifier) @variable.parameter)
+ (shorthand_property_identifier_pattern) @variable.parameter
+ ])
+ ]
+)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights.scm
new file mode 100644
index 0000000..6163b68
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/highlights.scm
@@ -0,0 +1,205 @@
+; Special identifiers
+;--------------------
+
+([
+ (identifier)
+ (shorthand_property_identifier)
+ (shorthand_property_identifier_pattern)
+ ] @constant
+ (#match? @constant "^[A-Z_][A-Z\\d_]+$"))
+
+
+((identifier) @constructor
+ (#match? @constructor "^[A-Z]"))
+
+((identifier) @variable.builtin
+ (#match? @variable.builtin "^(arguments|module|console|window|document)$")
+ (#is-not? local))
+
+((identifier) @function.builtin
+ (#eq? @function.builtin "require")
+ (#is-not? local))
+
+; Function and method definitions
+;--------------------------------
+
+(function
+ name: (identifier) @function)
+(function_declaration
+ name: (identifier) @function)
+(method_definition
+ name: (property_identifier) @function.method)
+
+(pair
+ key: (property_identifier) @function.method
+ value: [(function) (arrow_function)])
+
+(assignment_expression
+ left: (member_expression
+ property: (property_identifier) @function.method)
+ right: [(function) (arrow_function)])
+
+(variable_declarator
+ name: (identifier) @function
+ value: [(function) (arrow_function)])
+
+(assignment_expression
+ left: (identifier) @function
+ right: [(function) (arrow_function)])
+
+; Function and method calls
+;--------------------------
+
+(call_expression
+ function: (identifier) @function)
+
+(call_expression
+ function: (member_expression
+ property: (property_identifier) @function.method))
+
+; Variables
+;----------
+
+(identifier) @variable
+
+; Properties
+;-----------
+
+(property_identifier) @variable.other.member
+
+; Literals
+;---------
+
+(this) @variable.builtin
+(super) @variable.builtin
+
+[
+ (true)
+ (false)
+ (null)
+ (undefined)
+] @constant.builtin
+
+(comment) @comment
+
+[
+ (string)
+ (template_string)
+] @string
+
+(regex) @string.regexp
+(number) @constant.numeric.integer
+
+; Tokens
+;-------
+
+(template_substitution
+ "${" @punctuation.special
+ "}" @punctuation.special) @embedded
+
+[
+ ";"
+ "?."
+ "."
+ ","
+] @punctuation.delimiter
+
+[
+ "-"
+ "--"
+ "-="
+ "+"
+ "++"
+ "+="
+ "*"
+ "*="
+ "**"
+ "**="
+ "/"
+ "/="
+ "%"
+ "%="
+ "<"
+ "<="
+ "<<"
+ "<<="
+ "="
+ "=="
+ "==="
+ "!"
+ "!="
+ "!=="
+ "=>"
+ ">"
+ ">="
+ ">>"
+ ">>="
+ ">>>"
+ ">>>="
+ "~"
+ "^"
+ "&"
+ "|"
+ "^="
+ "&="
+ "|="
+ "&&"
+ "||"
+ "??"
+ "&&="
+ "||="
+ "??="
+] @operator
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ "as"
+ "async"
+ "await"
+ "break"
+ "case"
+ "catch"
+ "class"
+ "const"
+ "continue"
+ "debugger"
+ "default"
+ "delete"
+ "do"
+ "else"
+ "export"
+ "extends"
+ "finally"
+ "for"
+ "from"
+ "function"
+ "get"
+ "if"
+ "import"
+ "in"
+ "instanceof"
+ "let"
+ "new"
+ "of"
+ "return"
+ "set"
+ "static"
+ "switch"
+ "target"
+ "throw"
+ "try"
+ "typeof"
+ "var"
+ "void"
+ "while"
+ "with"
+ "yield"
+] @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/javascript/indents.toml
new file mode 100644
index 0000000..9d711ab
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/indents.toml
@@ -0,0 +1,28 @@
+indent = [
+ "array",
+ "object",
+ "arguments",
+ "formal_parameters",
+
+ "statement_block",
+ "object_pattern",
+ "class_body",
+ "named_imports",
+
+ "binary_expression",
+ "return_statement",
+ "template_substitution",
+ # (expression_statement (call_expression))
+ "export_clause",
+
+ # typescript
+ "enum_declaration",
+ "interface_declaration",
+ "object_type",
+]
+
+outdent = [
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/javascript/injections.scm
new file mode 100644
index 0000000..e842911
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/injections.scm
@@ -0,0 +1,28 @@
+; Parse the contents of tagged template literals using
+; a language inferred from the tag.
+
+(call_expression
+ function: [
+ (identifier) @injection.language
+ (member_expression
+ property: (property_identifier) @injection.language)
+ ]
+ arguments: (template_string) @injection.content)
+
+; Parse the contents of gql template literals
+
+((call_expression
+ function: (identifier) @_template_function_name
+ arguments: (template_string) @injection.content)
+ (#eq? @_template_function_name "gql")
+ (#set! injection.language "graphql"))
+
+; Parse regex syntax within regex literals
+
+((regex_pattern) @injection.content
+ (#set! injection.language "regex"))
+
+ ; Parse JSDoc annotations in comments
+
+((comment) @injection.content
+ (#set! injection.language "jsdoc"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/javascript/locals.scm
new file mode 100644
index 0000000..5d680ac
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/locals.scm
@@ -0,0 +1,23 @@
+; Scopes
+;-------
+
+[
+ (statement_block)
+ (function)
+ (arrow_function)
+ (function_declaration)
+ (method_definition)
+] @local.scope
+
+; Definitions
+;------------
+
+(pattern/identifier)@local.definition
+
+(variable_declarator
+ name: (identifier) @local.definition)
+
+; References
+;------------
+
+(identifier) @local.reference
diff --git a/helix-22.03-x86_64-windows/runtime/queries/javascript/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/javascript/tags.scm
new file mode 100644
index 0000000..a7bbd31
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/javascript/tags.scm
@@ -0,0 +1,88 @@
+(
+ (comment)* @doc
+ .
+ (method_definition
+ name: (property_identifier) @name) @definition.method
+ (#not-eq? @name "constructor")
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
+ (#select-adjacent! @doc @definition.method)
+)
+
+(
+ (comment)* @doc
+ .
+ [
+ (class
+ name: (_) @name)
+ (class_declaration
+ name: (_) @name)
+ ] @definition.class
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
+ (#select-adjacent! @doc @definition.class)
+)
+
+(
+ (comment)* @doc
+ .
+ [
+ (function
+ name: (identifier) @name)
+ (function_declaration
+ name: (identifier) @name)
+ (generator_function
+ name: (identifier) @name)
+ (generator_function_declaration
+ name: (identifier) @name)
+ ] @definition.function
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
+ (#select-adjacent! @doc @definition.function)
+)
+
+(
+ (comment)* @doc
+ .
+ (lexical_declaration
+ (variable_declarator
+ name: (identifier) @name
+ value: [(arrow_function) (function)]) @definition.function)
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
+ (#select-adjacent! @doc @definition.function)
+)
+
+(
+ (comment)* @doc
+ .
+ (variable_declaration
+ (variable_declarator
+ name: (identifier) @name
+ value: [(arrow_function) (function)]) @definition.function)
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
+ (#select-adjacent! @doc @definition.function)
+)
+
+(assignment_expression
+ left: [
+ (identifier) @name
+ (member_expression
+ property: (property_identifier) @name)
+ ]
+ right: [(arrow_function) (function)]
+) @definition.function
+
+(pair
+ key: (property_identifier) @name
+ value: [(arrow_function) (function)]) @definition.function
+
+(
+ (call_expression
+ function: (identifier) @name) @reference.call
+ (#not-match? @name "^(require)$")
+)
+
+(call_expression
+ function: (member_expression
+ property: (property_identifier) @name)
+ arguments: (_) @reference.call)
+
+(new_expression
+ constructor: (_) @name) @reference.class
diff --git a/helix-22.03-x86_64-windows/runtime/queries/json/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/json/highlights.scm
new file mode 100644
index 0000000..6df6c9e
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/json/highlights.scm
@@ -0,0 +1,20 @@
+[
+ (true)
+ (false)
+] @constant.builtin.boolean
+(null) @constant.builtin
+(number) @constant.numeric
+(pair
+ key: (_) @keyword)
+
+(string) @string
+(escape_sequence) @constant.character.escape
+(ERROR) @error
+
+"," @punctuation.delimiter
+[
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
diff --git a/helix-22.03-x86_64-windows/runtime/queries/json/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/json/indents.toml
new file mode 100644
index 0000000..64a8d17
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/json/indents.toml
@@ -0,0 +1,9 @@
+indent = [
+ "object",
+ "array"
+]
+
+outdent = [
+ "]",
+ "}"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/julia/folds.scm b/helix-22.03-x86_64-windows/runtime/queries/julia/folds.scm
new file mode 100644
index 0000000..91eede5
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/julia/folds.scm
@@ -0,0 +1,11 @@
+[
+ (module_definition)
+ (struct_definition)
+ (macro_definition)
+ (function_definition)
+ (compound_expression) ; begin blocks
+ (let_statement)
+ (if_statement)
+ (for_statement)
+ (while_statement)
+] @fold
diff --git a/helix-22.03-x86_64-windows/runtime/queries/julia/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/julia/highlights.scm
new file mode 100644
index 0000000..7c44798
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/julia/highlights.scm
@@ -0,0 +1,184 @@
+
+[
+ (triple_string)
+ (string)
+] @string
+
+(string
+ prefix: (identifier) @constant.builtin)
+
+(macro_identifier) @function.macro
+(macro_identifier (identifier) @function.macro) ; for any one using the variable highlight
+(macro_definition
+ name: (identifier) @function.macro
+ ["macro" "end" @keyword])
+
+(field_expression
+ (identifier)
+ (identifier) @variable.other.member .)
+
+(function_definition
+ name: (identifier) @function)
+(call_expression
+ (identifier) @function)
+(call_expression
+ (field_expression (identifier) @function.method .))
+(broadcast_call_expression
+ (identifier) @function)
+(broadcast_call_expression
+ (field_expression (identifier) @function.method .))
+(parameter_list
+ (identifier) @variable.parameter)
+(parameter_list
+ (optional_parameter .
+ (identifier) @variable.parameter))
+(typed_parameter
+ (identifier) @variable.parameter
+ (identifier) @type)
+(type_parameter_list
+ (identifier) @type)
+(typed_parameter
+ (identifier) @variable.parameter
+ (parameterized_identifier) @type)
+(function_expression
+ . (identifier) @variable.parameter)
+(spread_parameter) @variable.parameter
+(spread_parameter
+ (identifier) @variable.parameter)
+(named_argument
+ . (identifier) @variable.parameter)
+(argument_list
+ (typed_expression
+ (identifier) @variable.parameter
+ (identifier) @type))
+(argument_list
+ (typed_expression
+ (identifier) @variable.parameter
+ (parameterized_identifier) @type))
+
+;; Symbol expressions (:my-wanna-be-lisp-keyword)
+(quote_expression
+ (identifier)) @string.special.symbol
+
+;; Parsing error! foo (::Type) get's parsed as two quote expressions
+(argument_list
+ (quote_expression
+ (quote_expression
+ (identifier) @type)))
+
+(type_argument_list
+ (identifier) @type)
+(parameterized_identifier (_)) @type
+(argument_list
+ (typed_expression . (identifier) @variable.parameter))
+
+(typed_expression
+ (identifier) @type .)
+(typed_expression
+ (parameterized_identifier) @type .)
+
+(struct_definition
+ name: (identifier) @type)
+
+(number) @constant.numeric.integer
+(range_expression
+ (identifier) @constant.numeric.integer
+ (eq? @constant.numeric.integer "end"))
+(range_expression
+ (_
+ (identifier) @constant.numeric.integer
+ (eq? @constant.numeric.integer "end")))
+(coefficient_expression
+ (number)
+ (identifier) @constant.builtin)
+
+;; TODO: operators.
+;; Those are a bit difficult to implement since the respective nodes are hidden right now (_power_operator)
+;; and heavily use Unicode chars (support for those are bad in vim/lua regexes)
+;[;
+ ;(power_operator);
+ ;(times_operator);
+ ;(plus_operator);
+ ;(arrow_operator);
+ ;(comparison_operator);
+ ;(assign_operator);
+;] @operator ;
+
+"end" @keyword
+
+(if_statement
+ ["if" "end"] @keyword.control.conditional)
+(elseif_clause
+ ["elseif"] @keyword.control.conditional)
+(else_clause
+ ["else"] @keyword.control.conditional)
+(ternary_expression
+ ["?" ":"] @keyword.control.conditional)
+
+(function_definition ["function" "end"] @keyword.function)
+
+(comment) @comment
+
+[
+ "const"
+ "return"
+ "macro"
+ "struct"
+ "primitive"
+ "type"
+] @keyword
+
+((identifier) @keyword (match? @keyword "global|local"))
+
+(compound_expression
+ ["begin" "end"] @keyword)
+(try_statement
+ ["try" "end" ] @keyword.control.exception)
+(finally_clause
+ "finally" @keyword.control.exception)
+(catch_clause
+ "catch" @keyword.control.exception)
+(quote_statement
+ ["quote" "end"] @keyword)
+(let_statement
+ ["let" "end"] @keyword)
+(for_statement
+ ["for" "end"] @keyword.control.repeat)
+(while_statement
+ ["while" "end"] @keyword.control.repeat)
+(break_statement) @keyword.control.repeat
+(continue_statement) @keyword.control.repeat
+(for_binding
+ "in" @keyword.control.repeat)
+(for_clause
+ "for" @keyword.control.repeat)
+(do_clause
+ ["do" "end"] @keyword)
+
+(export_statement
+ ["export"] @keyword.control.import)
+
+[
+ "using"
+ "module"
+ "import"
+] @keyword.control.import
+
+((identifier) @keyword.control.import (#eq? @keyword.control.import "baremodule"))
+
+(((identifier) @constant.builtin) (match? @constant.builtin "^(nothing|Inf|NaN)$"))
+(((identifier) @constant.builtin.boolean) (#eq? @constant.builtin.boolean "true"))
+(((identifier) @constant.builtin.boolean) (#eq? @constant.builtin.boolean "false"))
+
+
+["::" ":" "." "," "..." "!"] @punctuation.delimiter
+["[" "]" "(" ")" "{" "}"] @punctuation.bracket
+
+["="] @operator
+
+(identifier) @variable
+;; In case you want type highlighting based on Julia naming conventions (this might collide with mathematical notation)
+;((identifier) @type ; exception: mark `A_foo` sort of identifiers as variables
+ ;(match? @type "^[A-Z][^_]"))
+((identifier) @constant
+ (match? @constant "^[A-Z][A-Z_]{2}[A-Z_]*$"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/julia/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/julia/injections.scm
new file mode 100644
index 0000000..1c1e804
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/julia/injections.scm
@@ -0,0 +1,5 @@
+((triple_string) @injection.content
+ (#set! injection.language "markdown"))
+
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/julia/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/julia/locals.scm
new file mode 100644
index 0000000..d5ac794
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/julia/locals.scm
@@ -0,0 +1,59 @@
+
+(import_statement
+ (identifier) @definition.import)
+(variable_declaration
+ (identifier) @local.definition)
+(variable_declaration
+ (tuple_expression
+ (identifier) @local.definition))
+(for_binding
+ (identifier) @local.definition)
+(for_binding
+ (tuple_expression
+ (identifier) @local.definition))
+
+(assignment_expression
+ (tuple_expression
+ (identifier) @local.definition))
+(assignment_expression
+ (bare_tuple_expression
+ (identifier) @local.definition))
+(assignment_expression
+ (identifier) @local.definition)
+
+(type_parameter_list
+ (identifier) @definition.type)
+(type_argument_list
+ (identifier) @definition.type)
+(struct_definition
+ name: (identifier) @definition.type)
+
+(parameter_list
+ (identifier) @definition.parameter)
+(typed_parameter
+ (identifier) @definition.parameter
+ (identifier))
+(function_expression
+ . (identifier) @definition.parameter)
+(argument_list
+ (typed_expression
+ (identifier) @definition.parameter
+ (identifier)))
+(spread_parameter
+ (identifier) @definition.parameter)
+
+(function_definition
+ name: (identifier) @definition.function) @local.scope
+(macro_definition
+ name: (identifier) @definition.macro) @local.scope
+
+(identifier) @local.reference
+
+[
+ (try_statement)
+ (finally_clause)
+ (quote_statement)
+ (let_statement)
+ (compound_expression)
+ (for_statement)
+] @local.scope
diff --git a/helix-22.03-x86_64-windows/runtime/queries/kotlin/folds.scm b/helix-22.03-x86_64-windows/runtime/queries/kotlin/folds.scm
new file mode 100644
index 0000000..768972b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/kotlin/folds.scm
@@ -0,0 +1,17 @@
+[
+ (import_list)
+
+ (when_expression)
+ (control_structure_body)
+
+ (lambda_literal)
+ (function_body)
+ (primary_constructor)
+ (secondary_constructor)
+ (anonymous_initializer)
+
+ (class_body)
+ (enum_class_body)
+
+ (interpolated_expression)
+] @fold
diff --git a/helix-22.03-x86_64-windows/runtime/queries/kotlin/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/kotlin/highlights.scm
new file mode 100644
index 0000000..7b90fcf
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/kotlin/highlights.scm
@@ -0,0 +1,295 @@
+;;; Operators & Punctuation
+
+(multi_line_string_literal
+ "$" @punctuation
+ (interpolated_identifier) @none)
+(multi_line_string_literal
+ "${" @punctuation
+ (interpolated_expression) @none
+ "}" @punctuation.)
+
+; NOTE: `interpolated_identifier`s can be highlighted in any way
+(line_string_literal
+ "$" @punctuation
+ (interpolated_identifier) @none)
+(line_string_literal
+ "${" @punctuation
+ (interpolated_expression) @none
+ "}" @punctuation)
+
+[
+ "."
+ ","
+ ";"
+ ":"
+ "::"
+] @punctuation.delimiter
+
+[
+ "(" ")"
+ "[" "]"
+ "{" "}"
+] @punctuation.bracket
+
+[
+ "!"
+ "!="
+ "!=="
+ "="
+ "=="
+ "==="
+ ">"
+ ">="
+ "<"
+ "<="
+ "||"
+ "&&"
+ "+"
+ "++"
+ "+="
+ "-"
+ "--"
+ "-="
+ "*"
+ "*="
+ "/"
+ "/="
+ "%"
+ "%="
+ "?."
+ "?:"
+ "!!"
+ "is"
+ "!is"
+ "in"
+ "!in"
+ "as"
+ "as?"
+ ".."
+ "->"
+] @operator
+
+;;; Keywords
+
+(type_alias "typealias" @keyword)
+[
+ (class_modifier)
+ (member_modifier)
+ (function_modifier)
+ (property_modifier)
+ (platform_modifier)
+ (variance_modifier)
+ (parameter_modifier)
+ (visibility_modifier)
+ (reification_modifier)
+ (inheritance_modifier)
+]@keyword
+
+[
+ "val"
+ "var"
+ "enum"
+ "class"
+ "object"
+ "interface"
+; "typeof" ; NOTE: It is reserved for future use
+] @keyword
+
+("fun") @keyword.function
+
+(jump_expression) @keyword.control.return
+
+[
+ "if"
+ "else"
+ "when"
+] @keyword.control.conditional
+
+[
+ "for"
+ "do"
+ "while"
+] @keyword.control.repeat
+
+[
+ "try"
+ "catch"
+ "throw"
+ "finally"
+] @keyword.control.exception
+
+(annotation
+ "@" @attribute (use_site_target)? @attribute)
+(annotation
+ (user_type
+ (type_identifier) @attribute))
+(annotation
+ (constructor_invocation
+ (user_type
+ (type_identifier) @attribute)))
+
+(file_annotation
+ "@" @attribute "file" @attribute ":" @attribute)
+(file_annotation
+ (user_type
+ (type_identifier) @attribute))
+(file_annotation
+ (constructor_invocation
+ (user_type
+ (type_identifier) @attribute)))
+
+;;; Literals
+; NOTE: Escapes not allowed in multi-line strings
+(line_string_literal (character_escape_seq) @constant.character.escape)
+
+[
+ (line_string_literal)
+ (multi_line_string_literal)
+] @string
+
+(character_literal) @constant.character
+
+[
+ "null" ; should be highlighted the same as booleans
+ (boolean_literal)
+] @constant.builtin.boolean
+
+(real_literal) @constant.numeric.float
+[
+ (integer_literal)
+ (long_literal)
+ (hex_literal)
+ (bin_literal)
+ (unsigned_literal)
+] @constant.numeric.integer
+
+[
+ (comment)
+ (shebang_line)
+] @comment
+
+;;; Function calls
+
+(call_expression
+ . (simple_identifier) @function.builtin
+ (#match? @function.builtin "^(arrayOf|arrayOfNulls|byteArrayOf|shortArrayOf|intArrayOf|longArrayOf|ubyteArrayOf|ushortArrayOf|uintArrayOf|ulongArrayOf|floatArrayOf|doubleArrayOf|booleanArrayOf|charArrayOf|emptyArray|mapOf|setOf|listOf|emptyMap|emptySet|emptyList|mutableMapOf|mutableSetOf|mutableListOf|print|println|error|TODO|run|runCatching|repeat|lazy|lazyOf|enumValues|enumValueOf|assert|check|checkNotNull|require|requireNotNull|with|suspend|synchronized)$"))
+
+; object.function() or object.property.function()
+(call_expression
+ (navigation_expression
+ (navigation_suffix
+ (simple_identifier) @function) . ))
+
+; function()
+(call_expression
+ . (simple_identifier) @function)
+
+;;; Function definitions
+
+; lambda parameters
+(lambda_literal
+ (lambda_parameters
+ (variable_declaration
+ (simple_identifier) @variable.parameter)))
+
+(parameter_with_optional_type
+ (simple_identifier) @variable.parameter)
+
+(parameter
+ (simple_identifier) @variable.parameter)
+
+(anonymous_initializer
+ ("init") @constructor)
+
+(constructor_invocation
+ (user_type
+ (type_identifier) @constructor))
+
+(secondary_constructor
+ ("constructor") @constructor)
+(primary_constructor) @constructor
+
+(getter
+ ("get") @function.builtin)
+(setter
+ ("set") @function.builtin)
+
+(function_declaration
+ . (simple_identifier) @function)
+
+; TODO: Seperate labeled returns/breaks/continue/super/this
+; Must be implemented in the parser first
+(label) @label
+
+(import_header
+ (identifier
+ (simple_identifier) @function @_import .)
+ (import_alias
+ (type_identifier) @function)?
+ (#match? @_import "^[a-z]"))
+
+; The last `simple_identifier` in a `import_header` will always either be a function
+; or a type. Classes can appear anywhere in the import path, unlike functions
+(import_header
+ (identifier
+ (simple_identifier) @type @_import)
+ (import_alias
+ (type_identifier) @type)?
+ (#match? @_import "^[A-Z]"))
+
+(import_header
+ "import" @keyword.control.import)
+
+(package_header
+ . (identifier)) @namespace
+
+((type_identifier) @type.builtin
+ (#match? @function.builtin "^(Byte|Short|Int|Long|UByte|UShort|UInt|ULong|Float|Double|Boolean|Char|String|Array|ByteArray|ShortArray|IntArray|LongArray|UByteArray|UShortArray|UIntArray|ULongArray|FloatArray|DoubleArray|BooleanArray|CharArray|Map|Set|List|EmptyMap|EmptySet|EmptyList|MutableMap|MutableSet|MutableList)$"))
+
+(type_identifier) @type
+
+(enum_entry
+ (simple_identifier) @constant)
+
+(_
+ (navigation_suffix
+ (simple_identifier) @constant
+ (#match? @constant "^[A-Z][A-Z0-9_]*$")))
+
+; SCREAMING CASE identifiers are assumed to be constants
+((simple_identifier) @constant
+(#match? @constant "^[A-Z][A-Z0-9_]*$"))
+
+; id_1.id_2.id_3: `id_2` and `id_3` are assumed as object properties
+(_
+ (navigation_suffix
+ (simple_identifier) @variable.other.member))
+
+(class_body
+ (property_declaration
+ (variable_declaration
+ (simple_identifier) @variable.other.member)))
+
+(class_parameter
+ (simple_identifier) @variable.other.member)
+
+; `super` keyword inside classes
+(super_expression) @variable.builtin
+
+; `this` this keyword inside classes
+(this_expression) @variable.builtin
+
+;;; Identifiers
+; `field` keyword inside property getter/setter
+; FIXME: This will highlight the keyword outside of getters and setters
+; since tree-sitter does not allow us to check for arbitrary nestation
+((simple_identifier) @variable.builtin
+(#eq? @variable.builtin "field"))
+
+; `it` keyword inside lambdas
+; FIXME: This will highlight the keyword outside of lambdas since tree-sitter
+; does not allow us to check for arbitrary nestation
+((simple_identifier) @variable.builtin
+(#eq? @variable.builtin "it"))
+
+(simple_identifier) @variable
diff --git a/helix-22.03-x86_64-windows/runtime/queries/kotlin/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/kotlin/injections.scm
new file mode 100644
index 0000000..abdc205
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/kotlin/injections.scm
@@ -0,0 +1,36 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+; There are 3 ways to define a regex
+; - "[abc]?".toRegex()
+((call_expression
+ (navigation_expression
+ ([(line_string_literal) (multi_line_string_literal)] @injection.content)
+ (navigation_suffix
+ ((simple_identifier) @_function
+ (#eq? @_function "toRegex")))))
+ (#set! injection.language "regex"))
+
+; - Regex("[abc]?")
+((call_expression
+ ((simple_identifier) @_function
+ (#eq? @_function "Regex"))
+ (call_suffix
+ (value_arguments
+ (value_argument
+ [ (line_string_literal) (multi_line_string_literal) ] @injection.content))))
+ (#set! injection.language "regex"))
+
+; - Regex.fromLiteral("[abc]?")
+((call_expression
+ (navigation_expression
+ ((simple_identifier) @_class
+ (#eq? @_class "Regex"))
+ (navigation_suffix
+ ((simple_identifier) @_function
+ (#eq? @_function "fromLiteral"))))
+ (call_suffix
+ (value_arguments
+ (value_argument
+ [ (line_string_literal) (multi_line_string_literal) ] @injection.content))))
+ (#set! injection.language "regex"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/latex/folds.scm b/helix-22.03-x86_64-windows/runtime/queries/latex/folds.scm
new file mode 100644
index 0000000..fb5c717
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/latex/folds.scm
@@ -0,0 +1,12 @@
+[
+ (chapter)
+ (part)
+ (section)
+ (subsection)
+ (subsubsection)
+ (paragraph)
+ (subparagraph)
+
+ (environment)
+ (displayed_equation)
+] @fold
diff --git a/helix-22.03-x86_64-windows/runtime/queries/latex/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/latex/highlights.scm
new file mode 100644
index 0000000..0a030b3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/latex/highlights.scm
@@ -0,0 +1,410 @@
+;; Math
+[
+ (displayed_equation)
+ (inline_formula)
+] @text.math
+
+;; This highlights the whole environment like vimtex does
+((environment
+ (begin
+ name: (word) @_env)) @text.math
+ (#any-of? @_env
+ "displaymath" "displaymath*"
+ "equation" "equation*"
+ "multline" "multline*"
+ "eqnarray" "eqnarray*"
+ "align" "align*"
+ "array" "array*"
+ "split" "split*"
+ "alignat" "alignat*"
+ "gather" "gather*"
+ "flalign" "flalign*"))
+
+[
+ (generic_command_name)
+ "\\newcommand"
+ "\\renewcommand"
+ "\\DeclareRobustCommand"
+ "\\DeclareMathOperator"
+ "\\newglossaryentry"
+ "\\caption"
+ "\\label"
+ "\\newlabel"
+ "\\color"
+ "\\colorbox"
+ "\\textcolor"
+ "\\pagecolor"
+ "\\definecolor"
+ "\\definecolorset"
+ "\\newtheorem"
+ "\\declaretheorem"
+ "\\newacronym"
+] @function.macro
+
+[
+ "\\ref"
+ "\\vref"
+ "\\Vref"
+ "\\autoref"
+ "\\pageref"
+ "\\cref"
+ "\\Cref"
+ "\\cref*"
+ "\\Cref*"
+ "\\namecref"
+ "\\nameCref"
+ "\\lcnamecref"
+ "\\namecrefs"
+ "\\nameCrefs"
+ "\\lcnamecrefs"
+ "\\labelcref"
+ "\\labelcpageref"
+ "\\crefrange"
+ "\\crefrange"
+ "\\Crefrange"
+ "\\Crefrange"
+ "\\crefrange*"
+ "\\crefrange*"
+ "\\Crefrange*"
+ "\\Crefrange*"
+] @function.macro
+
+[
+ "\\cite"
+ "\\cite*"
+ "\\Cite"
+ "\\nocite"
+ "\\citet"
+ "\\citep"
+ "\\citet*"
+ "\\citep*"
+ "\\citeauthor"
+ "\\citeauthor*"
+ "\\Citeauthor"
+ "\\Citeauthor*"
+ "\\citetitle"
+ "\\citetitle*"
+ "\\citeyear"
+ "\\citeyear*"
+ "\\citedate"
+ "\\citedate*"
+ "\\citeurl"
+ "\\fullcite"
+ "\\citeyearpar"
+ "\\citealt"
+ "\\citealp"
+ "\\citetext"
+ "\\parencite"
+ "\\parencite*"
+ "\\Parencite"
+ "\\footcite"
+ "\\footfullcite"
+ "\\footcitetext"
+ "\\textcite"
+ "\\Textcite"
+ "\\smartcite"
+ "\\Smartcite"
+ "\\supercite"
+ "\\autocite"
+ "\\Autocite"
+ "\\autocite*"
+ "\\Autocite*"
+ "\\volcite"
+ "\\Volcite"
+ "\\pvolcite"
+ "\\Pvolcite"
+ "\\fvolcite"
+ "\\ftvolcite"
+ "\\svolcite"
+ "\\Svolcite"
+ "\\tvolcite"
+ "\\Tvolcite"
+ "\\avolcite"
+ "\\Avolcite"
+ "\\notecite"
+ "\\notecite"
+ "\\pnotecite"
+ "\\Pnotecite"
+ "\\fnotecite"
+] @function.macro
+
+[
+ "\\ref"
+ "\\vref"
+ "\\Vref"
+ "\\autoref"
+ "\\pageref"
+ "\\cref"
+ "\\Cref"
+ "\\cref*"
+ "\\Cref*"
+ "\\namecref"
+ "\\nameCref"
+ "\\lcnamecref"
+ "\\namecrefs"
+ "\\nameCrefs"
+ "\\lcnamecrefs"
+ "\\labelcref"
+ "\\labelcpageref"
+] @function.macro
+
+
+[
+ "\\crefrange"
+ "\\crefrange"
+ "\\Crefrange"
+ "\\Crefrange"
+ "\\crefrange*"
+ "\\crefrange*"
+ "\\Crefrange*"
+ "\\Crefrange*"
+] @function.macro
+
+
+[
+ "\\gls"
+ "\\Gls"
+ "\\GLS"
+ "\\glspl"
+ "\\Glspl"
+ "\\GLSpl"
+ "\\glsdisp"
+ "\\glslink"
+ "\\glstext"
+ "\\Glstext"
+ "\\GLStext"
+ "\\glsfirst"
+ "\\Glsfirst"
+ "\\GLSfirst"
+ "\\glsplural"
+ "\\Glsplural"
+ "\\GLSplural"
+ "\\glsfirstplural"
+ "\\Glsfirstplural"
+ "\\GLSfirstplural"
+ "\\glsname"
+ "\\Glsname"
+ "\\GLSname"
+ "\\glssymbol"
+ "\\Glssymbol"
+ "\\glsdesc"
+ "\\Glsdesc"
+ "\\GLSdesc"
+ "\\glsuseri"
+ "\\Glsuseri"
+ "\\GLSuseri"
+ "\\glsuserii"
+ "\\Glsuserii"
+ "\\GLSuserii"
+ "\\glsuseriii"
+ "\\Glsuseriii"
+ "\\GLSuseriii"
+ "\\glsuseriv"
+ "\\Glsuseriv"
+ "\\GLSuseriv"
+ "\\glsuserv"
+ "\\Glsuserv"
+ "\\GLSuserv"
+ "\\glsuservi"
+ "\\Glsuservi"
+ "\\GLSuservi"
+] @function.macro
+
+
+[
+ "\\acrshort"
+ "\\Acrshort"
+ "\\ACRshort"
+ "\\acrshortpl"
+ "\\Acrshortpl"
+ "\\ACRshortpl"
+ "\\acrlong"
+ "\\Acrlong"
+ "\\ACRlong"
+ "\\acrlongpl"
+ "\\Acrlongpl"
+ "\\ACRlongpl"
+ "\\acrfull"
+ "\\Acrfull"
+ "\\ACRfull"
+ "\\acrfullpl"
+ "\\Acrfullpl"
+ "\\ACRfullpl"
+ "\\acs"
+ "\\Acs"
+ "\\acsp"
+ "\\Acsp"
+ "\\acl"
+ "\\Acl"
+ "\\aclp"
+ "\\Aclp"
+ "\\acf"
+ "\\Acf"
+ "\\acfp"
+ "\\Acfp"
+ "\\ac"
+ "\\Ac"
+ "\\acp"
+ "\\glsentrylong"
+ "\\Glsentrylong"
+ "\\glsentrylongpl"
+ "\\Glsentrylongpl"
+ "\\glsentryshort"
+ "\\Glsentryshort"
+ "\\glsentryshortpl"
+ "\\Glsentryshortpl"
+ "\\glsentryfullpl"
+ "\\Glsentryfullpl"
+] @function.macro
+
+(comment) @comment
+
+(bracket_group) @variable.parameter
+
+[(math_operator) "="] @operator
+
+[
+ "\\usepackage"
+ "\\documentclass"
+ "\\input"
+ "\\include"
+ "\\subfile"
+ "\\subfileinclude"
+ "\\subfileinclude"
+ "\\includegraphics"
+ "\\addbibresource"
+ "\\bibliography"
+ "\\includesvg"
+ "\\includeinkscape"
+ "\\usepgflibrary"
+ "\\usetikzlibrary"
+] @keyword.control.import
+
+[
+ "\\part"
+ "\\chapter"
+ "\\section"
+ "\\subsection"
+ "\\subsubsection"
+ "\\paragraph"
+ "\\subparagraph"
+] @type
+
+"\\item" @punctuation.special
+
+((word) @punctuation.delimiter
+(#eq? @punctuation.delimiter "&"))
+
+["$" "\\[" "\\]" "\\(" "\\)"] @punctuation.delimiter
+
+(label_definition
+ name: (_) @text.reference)
+(label_reference
+ label: (_) @text.reference)
+(equation_label_reference
+ label: (_) @text.reference)
+(label_reference
+ label: (_) @text.reference)
+(label_number
+ label: (_) @text.reference)
+
+(citation
+ key: (word) @text.reference)
+
+(key_val_pair
+ key: (_) @variable.parameter
+ value: (_))
+
+["[" "]" "{" "}"] @punctuation.bracket ;"(" ")" is has no special meaning in LaTeX
+
+(chapter
+ text: (brace_group) @markup.heading)
+
+(part
+ text: (brace_group) @markup.heading)
+
+(section
+ text: (brace_group) @markup.heading)
+
+(subsection
+ text: (brace_group) @markup.heading)
+
+(subsubsection
+ text: (brace_group) @markup.heading)
+
+(paragraph
+ text: (brace_group) @markup.heading)
+
+(subparagraph
+ text: (brace_group) @markup.heading)
+
+((environment
+ (begin
+ name: (word) @_frame)
+ (brace_group
+ child: (text) @markup.heading))
+ (#eq? @_frame "frame"))
+
+((generic_command
+ name:(generic_command_name) @_name
+ arg: (brace_group
+ (text) @markup.heading))
+ (#eq? @_name "\\frametitle"))
+
+;; Formatting
+
+((generic_command
+ name:(generic_command_name) @_name
+ arg: (_) @markup.italic)
+ (#eq? @_name "\\emph"))
+
+((generic_command
+ name:(generic_command_name) @_name
+ arg: (_) @markup.italic)
+ (#match? @_name "^(\\\\textit|\\\\mathit)$"))
+
+((generic_command
+ name:(generic_command_name) @_name
+ arg: (_) @markup.bold)
+ (#match? @_name "^(\\\\textbf|\\\\mathbf)$"))
+
+((generic_command
+ name:(generic_command_name) @_name
+ .
+ arg: (_) @markup.link.url)
+ (#match? @_name "^(\\\\url|\\\\href)$"))
+
+(ERROR) @error
+
+[
+ "\\begin"
+ "\\end"
+] @text.environment
+
+(begin
+ name: (_) @text.environment.name
+ (#not-any-of? @text.environment.name
+ "displaymath" "displaymath*"
+ "equation" "equation*"
+ "multline" "multline*"
+ "eqnarray" "eqnarray*"
+ "align" "align*"
+ "array" "array*"
+ "split" "split*"
+ "alignat" "alignat*"
+ "gather" "gather*"
+ "flalign" "flalign*"))
+
+(end
+ name: (_) @text.environment.name
+ (#not-any-of? @text.environment.name
+ "displaymath" "displaymath*"
+ "equation" "equation*"
+ "multline" "multline*"
+ "eqnarray" "eqnarray*"
+ "align" "align*"
+ "array" "array*"
+ "split" "split*"
+ "alignat" "alignat*"
+ "gather" "gather*"
+ "flalign" "flalign*"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/latex/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/latex/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/latex/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lean/folds.scm b/helix-22.03-x86_64-windows/runtime/queries/lean/folds.scm
new file mode 100644
index 0000000..2c2bbb3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lean/folds.scm
@@ -0,0 +1,15 @@
+[
+ (namespace)
+ (section)
+
+ (instance)
+ (def)
+ (theorem)
+ (example)
+
+ (product)
+ (array)
+ (list)
+
+ (string)
+] @fold
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lean/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/lean/highlights.scm
new file mode 100644
index 0000000..a64feb1
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lean/highlights.scm
@@ -0,0 +1,217 @@
+(open
+ namespace: (identifier) @namespace)
+(namespace
+ name: (identifier) @namespace)
+(section
+ name: (identifier) @namespace)
+
+;; Identifier naming conventions
+((identifier) @type
+ (#match? @type "^[A-Z]"))
+
+(arrow) @type
+(product) @type
+
+;; Declarations
+
+[
+ "abbrev"
+ "def"
+ "theorem"
+ "constant"
+ "instance"
+ "axiom"
+ "example"
+ "inductive"
+ "structure"
+ "class"
+
+ "deriving"
+
+ "section"
+ "namespace"
+] @keyword
+
+(attributes
+ (identifier) @function)
+
+(abbrev
+ name: (identifier) @type)
+(def
+ name: (identifier) @function)
+(theorem
+ name: (identifier) @function)
+(constant
+ name: (identifier) @type)
+(instance
+ name: (identifier) @function)
+(instance
+ type: (identifier) @type)
+(axiom
+ name: (identifier) @function)
+(structure
+ name: (identifier) @type)
+(structure
+ extends: (identifier) @type)
+
+(where_decl
+ type: (identifier) @type)
+
+(proj
+ name: (identifier) @field)
+
+(binders
+ type: (identifier) @type)
+
+["if" "then" "else"] @keyword.control.conditional
+
+["for" "in" "do"] @keyword.control.repeat
+
+(import) @include
+
+; Tokens
+
+[
+ "!"
+ "$"
+ "%"
+ "&&"
+ "*"
+ "*>"
+ "+"
+ "++"
+ "-"
+ "/"
+ "::"
+ ":="
+ "<"
+ "<$>"
+ "<*"
+ "<*>"
+ "<="
+ "<|"
+ "<|>"
+ "="
+ "=="
+ "=>"
+ ">"
+ ">"
+ ">="
+ ">>"
+ ">>="
+ "@"
+ "^"
+ "|>"
+ "|>."
+ "||"
+ "←"
+ "→"
+ "↔"
+ "∘"
+ "∧"
+ "∨"
+ "≠"
+ "≤"
+ "≥"
+] @operator
+
+[
+ "@&"
+] @operator
+
+[
+ "attribute"
+ "by"
+ "end"
+ "export"
+ "extends"
+ "fun"
+ "let"
+ "have"
+ "match"
+ "open"
+ "return"
+ "universe"
+ "variable"
+ "where"
+ "with"
+ "λ"
+ (hash_command)
+ (prelude)
+ (sorry)
+] @keyword
+
+[
+ "prefix"
+ "infix"
+ "infixl"
+ "infixr"
+ "postfix"
+ "notation"
+ "macro_rules"
+ "syntax"
+ "elab"
+ "builtin_initialize"
+] @keyword
+
+[
+ "noncomputable"
+ "partial"
+ "private"
+ "protected"
+ "unsafe"
+] @keyword
+
+[
+ "apply"
+ "exact"
+ "rewrite"
+ "rw"
+ "simp"
+ (trivial)
+] @keyword
+
+[
+ "catch"
+ "finally"
+ "try"
+] @exception
+
+((apply
+ name: (identifier) @exception)
+ (#match? @exception "throw"))
+
+[
+ "unless"
+ "mut"
+] @keyword
+
+[(true) (false)] @boolean
+
+(number) @constant.numeric.integer
+(float) @constant.numeric.float
+
+(comment) @comment
+(char) @character
+(string) @string
+(interpolated_string) @string
+; (escape_sequence) @string.escape
+
+; Reset highlighing in string interpolation
+(interpolation) @none
+
+(interpolation
+ "{" @punctuation.special
+ "}" @punctuation.special)
+
+["(" ")" "[" "]" "{" "}" "⟨" "⟩"] @punctuation.bracket
+
+["|" "," "." ":" ";"] @punctuation.delimiter
+
+(sorry) @error
+
+;; Error
+(ERROR) @error
+
+; Variables
+(identifier) @variable
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lean/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/lean/injections.scm
new file mode 100644
index 0000000..030714f
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lean/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "markdown"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lean/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/lean/locals.scm
new file mode 100644
index 0000000..dd6c203
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lean/locals.scm
@@ -0,0 +1,5 @@
+[
+ (module)
+ (namespace)
+ (section)
+] @local.scope
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ledger/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/ledger/highlights.scm
new file mode 100644
index 0000000..02a9ea9
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ledger/highlights.scm
@@ -0,0 +1,38 @@
+[
+ (comment)
+ (note)
+] @comment
+
+[
+ (date)
+ (interval)
+ (quantity)
+] @constant.numeric.integer
+
+((account) @variable.other.member)
+((commodity) @text.literal)
+
+"include" @keyword.local.import
+
+[
+ "account"
+ "alias"
+ "assert"
+ "check"
+ "commodity"
+ "def"
+ "default"
+ "end"
+ "eval"
+ "format"
+ "nomarket"
+ "note"
+ "payee"
+ "check"
+ "A"
+ "Y"
+ "N"
+ "D"
+ "C"
+ "P"
+] @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ledger/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/ledger/injections.scm
new file mode 100644
index 0000000..c171478
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ledger/injections.scm
@@ -0,0 +1,2 @@
+([(comment) (note)] @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/highlights.scm
new file mode 100644
index 0000000..4ba254e
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/highlights.scm
@@ -0,0 +1 @@
+; inherits: yaml
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/indents.toml
new file mode 100644
index 0000000..ddc3578
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/indents.toml
@@ -0,0 +1,3 @@
+indent = [
+ "block_mapping_pair",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/injections.scm
new file mode 100644
index 0000000..b324302
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir-yaml/injections.scm
@@ -0,0 +1,9 @@
+; inherits: yaml
+
+((document (block_node (block_scalar) @injection.content))
+ (#set! injection.language "llvm"))
+
+((document (block_node (block_mapping (block_mapping_pair
+ key: (flow_node (plain_scalar (string_scalar))) ; "body"
+ value: (block_node (block_scalar) @injection.content)))))
+ (#set! injection.language "mir"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/highlights.scm
new file mode 100644
index 0000000..7923461
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/highlights.scm
@@ -0,0 +1,136 @@
+[
+ (label)
+ (bb_ref)
+] @label
+
+[
+ (comment)
+ (multiline_comment)
+] @comment
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+ "<"
+ ">"
+] @punctuation.bracket
+
+[
+ ","
+ ":"
+ "|"
+ "*"
+] @punctuation.delimiter
+
+[
+ "="
+ "x"
+] @operator
+
+[
+ "true"
+ "false"
+] @constant.builtin.boolean
+
+[
+ "null"
+ "_"
+ "unknown-address"
+] @constant.builtin
+
+[
+ (stack_object)
+ (constant_pool_index)
+ (jump_table_index)
+ (var)
+ (physical_register)
+ (ir_block)
+ (external_symbol)
+ (global_var)
+ (ir_local_var)
+ (metadata_ref)
+ (mnemonic)
+] @variable
+
+(low_level_type) @type
+
+[
+ (immediate_type)
+ (primitive_type)
+] @type.builtin
+
+(number) @constant.numeric.integer
+(float) @constant.numeric.float
+(string) @string
+
+(instruction name: _ @keyword.operator)
+
+[
+ "successors"
+ "liveins"
+ "pre-instr-symbol"
+ "post-instr-symbol"
+ "heap-alloc-marker"
+ "debug-instr-number"
+ "debug-location"
+ "mcsymbol"
+ "tied-def"
+ "target-flags"
+ "CustomRegMask"
+ "same_value"
+ "def_cfa_register"
+ "restore"
+ "undefined"
+ "offset"
+ "rel_offset"
+ "def_cfa"
+ "llvm_def_aspace_cfa"
+ "register"
+ "escape"
+ "remember_state"
+ "restore_state"
+ "window_save"
+ "negate_ra_sign_state"
+ "intpred"
+ "floatpred"
+ "shufflemask"
+ "liveout"
+ "target-index"
+ "blockaddress"
+ "intrinsic"
+ "load"
+ "store"
+ "unknown-size"
+ "on"
+ "from"
+ "into"
+ "align"
+ "basealign"
+ "addrspace"
+ "call-entry"
+ "custom"
+ "constant-pool"
+ "stack"
+ "got"
+ "jump-table"
+ "syncscope"
+ "address-taken"
+ "landing-pad"
+ "inlineasm-br-indirect-target"
+ "ehfunclet-entry"
+ "bbsections"
+
+ (intpred)
+ (floatpred)
+ (memory_operand_flag)
+ (atomic_ordering)
+ (register_flag)
+ (instruction_flag)
+ (float_keyword)
+] @keyword
+
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/indents.toml
new file mode 100644
index 0000000..6a70e5a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/indents.toml
@@ -0,0 +1,7 @@
+indent = [
+ "basic_block",
+]
+
+outdent = [
+ "label",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/injections.scm
new file mode 100644
index 0000000..0b476f8
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/injections.scm
@@ -0,0 +1,2 @@
+([ (comment) (multiline_comment)] @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/textobjects.scm
new file mode 100644
index 0000000..003ce59
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm-mir/textobjects.scm
@@ -0,0 +1,12 @@
+(basic_block) @function.around
+
+(argument) @parameter.inside
+
+[
+ (comment)
+ (multiline_comment)
+] @comment.inside
+
+(comment)+ @comment.around
+
+(multiline_comment) @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm/highlights.scm
new file mode 100644
index 0000000..cb70519
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm/highlights.scm
@@ -0,0 +1,158 @@
+(type) @type
+(type_keyword) @type.builtin
+
+(type [
+ (local_var)
+ (global_var)
+ ] @type)
+
+(argument) @variable.parameter
+
+(_ inst_name: _ @keyword.operator)
+
+[
+ "catch"
+ "filter"
+] @keyword.operator
+
+[
+ "to"
+ "nuw"
+ "nsw"
+ "exact"
+ "unwind"
+ "from"
+ "cleanup"
+ "swifterror"
+ "volatile"
+ "inbounds"
+ "inrange"
+ (icmp_cond)
+ (fcmp_cond)
+ (fast_math)
+] @keyword.control
+
+(_ callee: _ @function)
+(function_header name: _ @function)
+
+[
+ "declare"
+ "define"
+ (calling_conv)
+] @keyword.function
+
+[
+ "target"
+ "triple"
+ "datalayout"
+ "source_filename"
+ "addrspace"
+ "blockaddress"
+ "align"
+ "syncscope"
+ "within"
+ "uselistorder"
+ "uselistorder_bb"
+ "module"
+ "asm"
+ "sideeffect"
+ "alignstack"
+ "inteldialect"
+ "unwind"
+ "type"
+ "global"
+ "constant"
+ "externally_initialized"
+ "alias"
+ "ifunc"
+ "section"
+ "comdat"
+ "thread_local"
+ "localdynamic"
+ "initialexec"
+ "localexec"
+ "any"
+ "exactmatch"
+ "largest"
+ "nodeduplicate"
+ "samesize"
+ "distinct"
+ "attributes"
+ "vscale"
+ "no_cfi"
+ (linkage_aux)
+ (dso_local)
+ (visibility)
+ (dll_storage_class)
+ (unnamed_addr)
+ (attribute_name)
+] @keyword
+
+
+(function_header [
+ (linkage)
+ (calling_conv)
+ (unnamed_addr)
+ ] @keyword.function)
+
+[
+ (string)
+ (cstring)
+] @string
+
+(number) @constant.numeric.integer
+(comment) @comment
+(label) @label
+(_ inst_name: "ret" @keyword.control.return)
+(float) @constant.numeric.float
+
+[
+ (local_var)
+ (global_var)
+] @variable
+
+[
+ (struct_value)
+ (array_value)
+ (vector_value)
+] @constructor
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+ "<"
+ ">"
+ "<{"
+ "}>"
+] @punctuation.bracket
+
+[
+ ","
+ ":"
+] @punctuation.delimiter
+
+[
+ "="
+ "|"
+ "x"
+ "..."
+] @operator
+
+[
+ "true"
+ "false"
+] @constant.builtin.boolean
+
+[
+ "undef"
+ "poison"
+ "null"
+ "none"
+ "zeroinitializer"
+] @constant.builtin
+
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/llvm/indents.toml
new file mode 100644
index 0000000..8cd603c
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm/indents.toml
@@ -0,0 +1,8 @@
+indent = [
+ "function_body",
+ "instruction",
+]
+
+outdent = [
+ "}",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm/locals.scm
new file mode 100644
index 0000000..1946c28
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm/locals.scm
@@ -0,0 +1,14 @@
+; Scopes
+
+(function_body) @local.scope
+
+; Definitions
+
+(argument
+ (value (var (local_var) @local.definition)))
+
+(instruction
+ (local_var) @local.definition)
+
+; References
+(local_var) @local.reference
diff --git a/helix-22.03-x86_64-windows/runtime/queries/llvm/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/llvm/textobjects.scm
new file mode 100644
index 0000000..dd15dc1
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/llvm/textobjects.scm
@@ -0,0 +1,20 @@
+(define
+ body: (_) @function.inside) @function.around
+
+(struct_type
+ (struct_body) @class.inside) @class.around
+
+(packed_struct_type
+ (struct_body) @class.inside) @class.around
+
+(array_type
+ (array_vector_body) @class.inside) @class.around
+
+(vector_type
+ (array_vector_body) @class.inside) @class.around
+
+(argument) @parameter.inside
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lua/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/lua/highlights.scm
new file mode 100644
index 0000000..e73b32d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lua/highlights.scm
@@ -0,0 +1,166 @@
+;;; Highlighting for lua
+
+;;; Builtins
+(self) @variable.builtin
+
+;; Keywords
+
+(if_statement
+[
+ "if"
+ "then"
+ "end"
+] @keyword.control.conditional)
+
+[
+ "else"
+ "elseif"
+ "then"
+] @keyword.control.conditional
+
+(for_statement
+[
+ "for"
+ "do"
+ "end"
+] @keyword.control.repeat)
+
+(for_in_statement
+[
+ "for"
+ "do"
+ "end"
+] @keyword.control.repeat)
+
+(while_statement
+[
+ "while"
+ "do"
+ "end"
+] @keyword.control.repeat)
+
+(repeat_statement
+[
+ "repeat"
+ "until"
+] @keyword.control.repeat)
+
+(do_statement
+[
+ "do"
+ "end"
+] @keyword)
+
+[
+ "in"
+ "local"
+ (break_statement)
+ "goto"
+ "return"
+] @keyword
+
+;; Operators
+
+[
+ "not"
+ "and"
+ "or"
+] @operator
+
+[
+"="
+"~="
+"=="
+"<="
+">="
+"<"
+">"
+"+"
+"-"
+"%"
+"/"
+"//"
+"*"
+"^"
+"&"
+"~"
+"|"
+">>"
+"<<"
+".."
+"#"
+ ] @operator
+
+;; Punctuation
+["," "." ":" ";"] @punctuation.delimiter
+
+;; Brackets
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+; ;; Constants
+[
+(false)
+(true)
+] @constant.builtin.boolean
+(nil) @constant.builtin
+(spread) @constant ;; "..."
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z_0-9]*$"))
+
+;; Parameters
+(parameters
+ (identifier) @variable.parameter)
+
+; ;; Functions
+(function [(function_name) (identifier)] @function)
+(function ["function" "end"] @keyword.function)
+
+(function
+ (function_name
+ (function_name_field
+ (property_identifier) @function .)))
+
+(local_function (identifier) @function)
+(local_function ["function" "end"] @keyword.function)
+
+(variable_declaration
+ (variable_declarator (identifier) @function) (function_definition))
+(local_variable_declaration
+ (variable_declarator (identifier) @function) (function_definition))
+
+(function_definition ["function" "end"] @keyword.function)
+
+(function_call
+ [
+ ((identifier) @variable (method) @function.method)
+ ((_) (method) @function.method)
+ (identifier) @function
+ (field_expression (property_identifier) @function)
+ ]
+ . (arguments))
+
+;; Nodes
+(table ["{" "}"] @constructor)
+(comment) @comment
+(string) @string
+(number) @constant.numeric.integer
+(label_statement) @label
+; A bit of a tricky one, this will only match field names
+(field . (identifier) @variable.other.member (_))
+(shebang) @comment
+
+;; Property
+(property_identifier) @variable.other.member
+
+;; Variable
+(identifier) @variable
+
+;; Error
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lua/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/lua/indents.toml
new file mode 100644
index 0000000..df1a975
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lua/indents.toml
@@ -0,0 +1,24 @@
+indent = [
+ "function_definition",
+ "variable_declaration",
+ "local_variable_declaration",
+ "field",
+ "local_function",
+ "function",
+ "if_statement",
+ "for_statement",
+ "for_in_statement",
+ "repeat_statement",
+ "return_statement",
+ "while_statement",
+ "table",
+ "arguments",
+ "do_statement",
+]
+
+oudent = [
+ "end",
+ "until",
+ "}",
+ ")",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/lua/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/lua/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/lua/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/make/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/make/highlights.scm
new file mode 100644
index 0000000..50380ba
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/make/highlights.scm
@@ -0,0 +1,170 @@
+[
+ "("
+ ")"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ ":"
+ "&:"
+ "::"
+ "|"
+ ";"
+ "\""
+ "'"
+ ","
+] @punctuation.delimiter
+
+[
+ "$"
+ "$$"
+] @punctuation.special
+
+(automatic_variable
+ [ "@" "%" "<" "?" "^" "+" "/" "*" "D" "F"] @punctuation.special)
+
+(automatic_variable
+ "/" @error . ["D" "F"])
+
+[
+ "="
+ ":="
+ "::="
+ "?="
+ "+="
+ "!="
+ "@"
+ "-"
+ "+"
+] @operator
+
+[
+ (text)
+ (string)
+ (raw_text)
+] @string
+
+(variable_assignment (word) @string)
+
+[
+ "ifeq"
+ "ifneq"
+ "ifdef"
+ "ifndef"
+ "else"
+ "endif"
+ "if"
+ "or" ; boolean functions are conditional in make grammar
+ "and"
+] @keyword.control.conditional
+
+"foreach" @keyword.control.repeat
+
+[
+ "define"
+ "endef"
+ "vpath"
+ "undefine"
+ "export"
+ "unexport"
+ "override"
+ "private"
+; "load"
+] @keyword
+
+[
+ "include"
+ "sinclude"
+ "-include"
+] @keyword.control.import
+
+[
+ "subst"
+ "patsubst"
+ "strip"
+ "findstring"
+ "filter"
+ "filter-out"
+ "sort"
+ "word"
+ "words"
+ "wordlist"
+ "firstword"
+ "lastword"
+ "dir"
+ "notdir"
+ "suffix"
+ "basename"
+ "addsuffix"
+ "addprefix"
+ "join"
+ "wildcard"
+ "realpath"
+ "abspath"
+ "call"
+ "eval"
+ "file"
+ "value"
+ "shell"
+] @keyword.function
+
+[
+ "error"
+ "warning"
+ "info"
+] @keyword.control.exception
+
+;; Variable
+(variable_assignment
+ name: (word) @variable)
+
+(variable_reference
+ (word) @variable)
+
+(comment) @comment
+
+((word) @clean @string.regexp
+ (#match? @clean "[%\*\?]"))
+
+(function_call
+ function: "error"
+ (arguments (text) @error))
+
+(function_call
+ function: "warning"
+ (arguments (text) @warning))
+
+(function_call
+ function: "info"
+ (arguments (text) @info))
+
+;; Install Command Categories
+;; Others special variables
+;; Variables Used by Implicit Rules
+[
+ "VPATH"
+ ".RECIPEPREFIX"
+] @constant.builtin
+
+(variable_assignment
+ name: (word) @clean @constant.builtin
+ (#match? @clean "^(AR|AS|CC|CXX|CPP|FC|M2C|PC|CO|GET|LEX|YACC|LINT|MAKEINFO|TEX|TEXI2DVI|WEAVE|CWEAVE|TANGLE|CTANGLE|RM|ARFLAGS|ASFLAGS|CFLAGS|CXXFLAGS|COFLAGS|CPPFLAGS|FFLAGS|GFLAGS|LDFLAGS|LDLIBS|LFLAGS|YFLAGS|PFLAGS|RFLAGS|LINTFLAGS|PRE_INSTALL|POST_INSTALL|NORMAL_INSTALL|PRE_UNINSTALL|POST_UNINSTALL|NORMAL_UNINSTALL|MAKEFILE_LIST|MAKE_RESTARTS|MAKE_TERMOUT|MAKE_TERMERR|\.DEFAULT_GOAL|\.RECIPEPREFIX|\.EXTRA_PREREQS)$"))
+
+(variable_reference
+ (word) @clean @constant.builtin
+ (#match? @clean "^(AR|AS|CC|CXX|CPP|FC|M2C|PC|CO|GET|LEX|YACC|LINT|MAKEINFO|TEX|TEXI2DVI|WEAVE|CWEAVE|TANGLE|CTANGLE|RM|ARFLAGS|ASFLAGS|CFLAGS|CXXFLAGS|COFLAGS|CPPFLAGS|FFLAGS|GFLAGS|LDFLAGS|LDLIBS|LFLAGS|YFLAGS|PFLAGS|RFLAGS|LINTFLAGS|PRE_INSTALL|POST_INSTALL|NORMAL_INSTALL|PRE_UNINSTALL|POST_UNINSTALL|NORMAL_UNINSTALL|MAKEFILE_LIST|MAKE_RESTARTS|MAKE_TERMOUT|MAKE_TERMERR|\.DEFAULT_GOAL|\.RECIPEPREFIX|\.EXTRA_PREREQS\.VARIABLES|\.FEATURES|\.INCLUDE_DIRS|\.LOADED)$"))
+
+;; Standart targets
+(targets
+ (word) @constant.macro
+ (#match? @constant.macro "^(all|install|install-html|install-dvi|install-pdf|install-ps|uninstall|install-strip|clean|distclean|mostlyclean|maintainer-clean|TAGS|info|dvi|html|pdf|ps|dist|check|installcheck|installdirs)$"))
+
+(targets
+ (word) @constant.macro
+ (#match? @constant.macro "^(all|install|install-html|install-dvi|install-pdf|install-ps|uninstall|install-strip|clean|distclean|mostlyclean|maintainer-clean|TAGS|info|dvi|html|pdf|ps|dist|check|installcheck|installdirs)$"))
+
+;; Builtin targets
+(targets
+ (word) @constant.macro
+ (#match? @constant.macro "^\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX)$"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/make/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/make/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/make/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/markdown/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/markdown/highlights.scm
new file mode 100644
index 0000000..ed22b80
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/markdown/highlights.scm
@@ -0,0 +1,46 @@
+(setext_heading (heading_content) @markup.heading.1 (setext_h1_underline) @markup.heading.marker)
+(setext_heading (heading_content) @markup.heading.2 (setext_h2_underline) @markup.heading.marker)
+
+(atx_heading (atx_h1_marker) @markup.heading.marker (heading_content) @markup.heading.1)
+(atx_heading (atx_h2_marker) @markup.heading.marker (heading_content) @markup.heading.2)
+(atx_heading (atx_h3_marker) @markup.heading.marker (heading_content) @markup.heading.3)
+(atx_heading (atx_h4_marker) @markup.heading.marker (heading_content) @markup.heading.4)
+(atx_heading (atx_h5_marker) @markup.heading.marker (heading_content) @markup.heading.5)
+(atx_heading (atx_h6_marker) @markup.heading.marker (heading_content) @markup.heading.6)
+
+(code_fence_content) @none
+
+[
+ (indented_code_block)
+ (fenced_code_block)
+] @markup.raw.block
+
+(block_quote) @markup.quote
+
+(code_span) @markup.raw.inline
+
+(emphasis) @markup.italic
+
+(strong_emphasis) @markup.bold
+
+(link_destination) @markup.link.url
+(link_label) @markup.link.label
+
+[
+ (link_text)
+ (image_description)
+] @markup.link.text
+
+[
+ (list_marker_plus)
+ (list_marker_minus)
+ (list_marker_star)
+ (list_marker_dot)
+ (list_marker_parenthesis)
+] @punctuation.special
+
+[
+ (backslash_escape)
+ (hard_line_break)
+] @string.character.escape
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/markdown/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/markdown/injections.scm
new file mode 100644
index 0000000..10dcab0
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/markdown/injections.scm
@@ -0,0 +1,9 @@
+(fenced_code_block
+ (info_string) @injection.language
+ (code_fence_content) @injection.content
+ (#set! injection.include-children))
+
+((html_block) @injection.content
+ (#set! injection.language "html"))
+((html_tag) @injection.content
+ (#set! injection.language "html"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/nix/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/nix/highlights.scm
new file mode 100644
index 0000000..f668206
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/nix/highlights.scm
@@ -0,0 +1,90 @@
+(comment) @comment
+
+[
+ "if"
+ "then"
+ "else"
+ "let"
+ "inherit"
+ "in"
+ "rec"
+ "with"
+ "assert"
+] @keyword
+
+((identifier) @variable.builtin
+ (#match? @variable.builtin "^(__currentSystem|__currentTime|__nixPath|__nixVersion|__storeDir|builtins)$")
+ (#is-not? local))
+
+((identifier) @function.builtin
+ (#match? @function.builtin "^(__add|__addErrorContext|__all|__any|__appendContext|__attrNames|__attrValues|__bitAnd|__bitOr|__bitXor|__catAttrs|__compareVersions|__concatLists|__concatMap|__concatStringsSep|__deepSeq|__div|__elem|__elemAt|__fetchurl|__filter|__filterSource|__findFile|__foldl'|__fromJSON|__functionArgs|__genList|__genericClosure|__getAttr|__getContext|__getEnv|__hasAttr|__hasContext|__hashFile|__hashString|__head|__intersectAttrs|__isAttrs|__isBool|__isFloat|__isFunction|__isInt|__isList|__isPath|__isString|__langVersion|__length|__lessThan|__listToAttrs|__mapAttrs|__match|__mul|__parseDrvName|__partition|__path|__pathExists|__readDir|__readFile|__replaceStrings|__seq|__sort|__split|__splitVersion|__storePath|__stringLength|__sub|__substring|__tail|__toFile|__toJSON|__toPath|__toXML|__trace|__tryEval|__typeOf|__unsafeDiscardOutputDependency|__unsafeDiscardStringContext|__unsafeGetAttrPos|__valueSize|abort|baseNameOf|derivation|derivationStrict|dirOf|fetchGit|fetchMercurial|fetchTarball|fromTOML|import|isNull|map|placeholder|removeAttrs|scopedImport|throw|toString)$")
+ (#is-not? local))
+
+[
+ (string)
+ (indented_string)
+] @string
+
+[
+ (path)
+ (hpath)
+ (spath)
+] @string.special.path
+
+(uri) @string.special.uri
+
+; boolean
+((identifier) @constant.builtin.boolean (#match? @constant.builtin.boolean "^(true|false)$")) @constant.builtin.boolean
+; null
+((identifier) @constant.builtin (#eq? @constant.builtin "null")) @constant.builtin
+
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+
+(interpolation
+ "${" @punctuation.special
+ "}" @punctuation.special) @embedded
+
+(escape_sequence) @constant.character.escape
+
+(function
+ universal: (identifier) @variable.parameter
+)
+
+(formal
+ name: (identifier) @variable.parameter
+ "?"? @punctuation.delimiter)
+
+(app
+ function: [
+ (identifier) @function
+ (select
+ attrpath: (attrpath
+ attr: (attr_identifier) @function .))])
+
+
+(unary
+ operator: _ @operator)
+
+(binary
+ operator: _ @operator)
+
+(attr_identifier) @variable.other.member
+(inherit attrs: (attrs_inherited (identifier) @variable.other.member) )
+
+[
+ ";"
+ "."
+ ","
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+(identifier) @variable
diff --git a/helix-22.03-x86_64-windows/runtime/queries/nix/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/nix/indents.toml
new file mode 100644
index 0000000..b92ab75
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/nix/indents.toml
@@ -0,0 +1,18 @@
+indent = [
+ # "function",
+ "bind",
+ "assert",
+ "with",
+ "let",
+ "if",
+
+ "attrset",
+ "list",
+ "indented_string",
+ "parenthesized",
+]
+
+outdent = [
+ "}",
+ "]",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/highlights.scm
new file mode 100644
index 0000000..6d3dfbc
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/highlights.scm
@@ -0,0 +1 @@
+; inherits: ocaml
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ocaml-interface/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ocaml/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/ocaml/highlights.scm
new file mode 100644
index 0000000..a08b126
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ocaml/highlights.scm
@@ -0,0 +1,160 @@
+; Modules
+;--------
+
+[(module_name) (module_type_name)] @namespace
+
+; Types
+;------
+
+[(class_name) (class_type_name) (type_constructor)] @type
+
+[(constructor_name) (tag)] @constructor
+
+; Functions
+;----------
+
+(let_binding
+ pattern: (value_name) @function
+ (parameter))
+
+(let_binding
+ pattern: (value_name) @function
+ body: [(fun_expression) (function_expression)])
+
+(value_specification (value_name) @function)
+
+(external (value_name) @function)
+
+(method_name) @function.method
+
+; Variables
+;----------
+
+(value_pattern) @variable.parameter
+
+; Application
+;------------
+
+(infix_expression
+ left: (value_path (value_name) @function)
+ (infix_operator) @operator
+ (#eq? @operator "@@"))
+
+(infix_expression
+ (infix_operator) @operator
+ right: (value_path (value_name) @function)
+ (#eq? @operator "|>"))
+
+(application_expression
+ function: (value_path (value_name) @function))
+
+; Properties
+;-----------
+
+[(label_name) (field_name) (instance_variable_name)] @variable.other.member
+
+; Constants
+;----------
+
+[(boolean) (unit)] @constant
+
+[(number) (signed_number)] @constant.numeric.integer
+
+(character) @constant.character
+
+(string) @string
+
+(quoted_string "{" @string "}" @string) @string
+
+(escape_sequence) @constant.character.escape
+
+[
+ (conversion_specification)
+ (pretty_printing_indication)
+] @punctuation.special
+
+; Keywords
+;---------
+
+[
+ "and" "as" "assert" "begin" "class" "constraint"
+ "end" "external" "in"
+ "inherit" "initializer" "lazy" "let" "match" "method" "module"
+ "mutable" "new" "nonrec" "object" "of" "private" "rec" "sig" "struct"
+ "type" "val" "virtual" "when" "with"
+] @keyword
+
+["fun" "function" "functor"] @keyword.function
+
+["if" "then" "else"] @keyword.control.conditional
+
+["exception" "try"] @keyword.control.exception
+
+["include" "open"] @keyword.control.import
+
+["for" "to" "downto" "while" "do" "done"] @keyword.control.repeat
+
+; Macros
+;-------
+
+(attribute ["[@" "]"] @attribute)
+(item_attribute ["[@@" "]"] @attribute)
+(floating_attribute ["[@@@" "]"] @attribute)
+(extension ["[%" "]"] @function.macro)
+(item_extension ["[%%" "]"] @function.macro)
+(quoted_extension ["{%" "}"] @function.macro)
+(quoted_item_extension ["{%%" "}"] @function.macro)
+"%" @function.macro
+
+["(" ")" "[" "]" "{" "}" "[|" "|]" "[<" "[>"] @punctuation.bracket
+
+(object_type ["<" ">"] @punctuation.bracket)
+
+[
+ "," "." ";" ":" "=" "|" "~" "?" "+" "-" "!" ">" "&"
+ "->" ";;" ":>" "+=" ":=" ".."
+] @punctuation.delimiter
+
+; Operators
+;----------
+
+[
+ (prefix_operator)
+ (sign_operator)
+ (infix_operator)
+ (hash_operator)
+ (indexing_operator)
+ (let_operator)
+ (and_operator)
+ (match_operator)
+] @operator
+
+(match_expression (match_operator) @keyword)
+
+(value_definition [(let_operator) (and_operator)] @keyword)
+
+;; TODO: this is an error now
+;(prefix_operator "!" @operator)
+
+(infix_operator ["&" "+" "-" "=" ">" "|" "%"] @operator)
+
+(signed_number ["+" "-"] @operator)
+
+["*" "#" "::" "<-"] @operator
+
+; Attributes
+;-----------
+
+(attribute_id) @variable.other.member
+
+; Comments
+;---------
+
+[(comment) (line_number_directive) (directive) (shebang)] @comment
+
+(ERROR) @error
+
+; Blanket highlights
+; ------------------
+
+[(value_name) (type_variable)] @variable
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ocaml/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/ocaml/indents.toml
new file mode 100644
index 0000000..7586b83
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ocaml/indents.toml
@@ -0,0 +1,13 @@
+indent = [
+ "let_binding",
+ "type_binding",
+ "structure",
+ "signature",
+ "record_declaration",
+ "function_expression",
+ "match_case",
+]
+
+outdent = [
+ "}",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ocaml/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/ocaml/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ocaml/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ocaml/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/ocaml/locals.scm
new file mode 100644
index 0000000..8f3f3fd
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ocaml/locals.scm
@@ -0,0 +1,24 @@
+; Scopes
+;-------
+
+[
+ (let_binding)
+ (class_binding)
+ (class_function)
+ (method_definition)
+ (fun_expression)
+ (object_expression)
+ (for_expression)
+ (match_case)
+ (attribute_payload)
+] @local.scope
+
+; Definitions
+;------------
+
+(value_pattern) @local.definition
+
+; References
+;-----------
+
+(value_path . (value_name) @local.reference)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/org/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/org/highlights.scm
new file mode 100644
index 0000000..db8329f
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/org/highlights.scm
@@ -0,0 +1,24 @@
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "*")) @markup.heading.1
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "**")) @markup.heading.2
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "***")) @markup.heading.3
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "****")) @markup.heading.4
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "*****")) @markup.heading.5
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "******")) @markup.heading.6
+
+(block) @markup.raw.block
+(list) @markup.list.unnumbered
+(directive) @markup.label
+(property_drawer) @markup.label
+
+
+((expr) @markup.bold
+ (#match? @markup.bold "\\*.*\\*"))
+
+((expr) @markup.italic
+ (#match? @markup.italic "/.*/"))
+((expr) @markup.raw.inline
+ (#match? @markup.raw.inline "~.*~"))
+
+((expr) @markup.quote
+ (#match? @markup.quote "=.*="))
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/org/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/org/injections.scm
new file mode 100644
index 0000000..24d712d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/org/injections.scm
@@ -0,0 +1,4 @@
+(block parameter: (expr) @injection.language
+ (contents) @injection.content
+ (#set! injection.include-children))
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/perl/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/perl/highlights.scm
new file mode 100644
index 0000000..b6f0429
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/perl/highlights.scm
@@ -0,0 +1,181 @@
+; Variables
+(variable_declaration
+ .
+ (scope) @keyword)
+[
+(single_var_declaration)
+(scalar_variable)
+(array_variable)
+(hash_variable)
+(hash_variable)
+] @variable
+
+
+[
+(package_name)
+(special_scalar_variable)
+(special_array_variable)
+(special_hash_variable)
+(special_literal)
+(super)
+] @constant
+
+(
+ [
+ (package_name)
+ (super)
+ ]
+ .
+ ("::" @operator)
+)
+
+(comments) @comment
+(pod_statement) @comment.block.documentation
+
+[
+(use_no_statement)
+(use_no_feature_statement)
+(use_no_if_statement)
+(use_no_version)
+(use_constant_statement)
+(use_parent_statement)
+] @keyword
+
+(use_constant_statement
+ constant: (identifier) @constant)
+
+[
+"require"
+] @keyword
+
+(method_invocation
+ .
+ (identifier) @variable)
+
+(method_invocation
+ (arrow_operator)
+ .
+ (identifier) @function)
+(method_invocation
+ function_name: (identifier) @function)
+(named_block_statement
+ function_name: (identifier) @function)
+
+(call_expression
+ function_name: (identifier) @function)
+(function_definition
+ name: (identifier) @function)
+[
+(function)
+(map)
+(grep)
+(bless)
+] @function
+
+[
+"return"
+"sub"
+"package"
+"BEGIN"
+"END"
+] @keyword.function
+
+[
+"("
+")"
+"["
+"]"
+"{"
+"}"
+] @punctuation.bracket
+(standard_input_to_variable) @punctuation.bracket
+
+[
+"=~"
+"or"
+"="
+"=="
+"+"
+"-"
+"."
+"//"
+"||"
+(arrow_operator)
+(hash_arrow_operator)
+(array_dereference)
+(hash_dereference)
+(to_reference)
+(type_glob)
+(hash_access_variable)
+(ternary_expression)
+(ternary_expression_in_hash)
+] @operator
+
+[
+(regex_option)
+(regex_option_for_substitution)
+(regex_option_for_transliteration)
+] @variable.parameter
+
+(type_glob
+ (identifier) @variable)
+(
+ (scalar_variable)
+ .
+ ("->" @operator))
+
+[
+(word_list_qw)
+(command_qx_quoted)
+(string_single_quoted)
+(string_double_quoted)
+(string_qq_quoted)
+(bareword)
+(transliteration_tr_or_y)
+] @string
+
+[
+(regex_pattern_qr)
+(patter_matcher_m)
+(substitution_pattern_s)
+] @string.regexp
+
+(escape_sequence) @string.special
+
+[
+","
+(semi_colon)
+(start_delimiter)
+(end_delimiter)
+(ellipsis_statement)
+] @punctuation.delimiter
+
+[
+(integer)
+(floating_point)
+(scientific_notation)
+(hexadecimal)
+] @constant.numeric
+
+[
+; (if_statement)
+(unless_statement)
+(if_simple_statement)
+(unless_simple_statement)
+] @keyword.control.conditional
+
+[
+"if"
+"elsif"
+"else"
+] @keyword.control.conditional
+
+(foreach_statement) @keyword.control.repeat
+(foreach_statement
+ .
+ (scope) @keyword)
+
+(function_attribute) @label
+
+(function_signature) @type
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/perl/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/perl/indents.toml
new file mode 100644
index 0000000..365e066
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/perl/indents.toml
@@ -0,0 +1,17 @@
+indent = [
+ "function",
+ "identifier",
+ "method_invocation",
+ "if_statement",
+ "unless_statement",
+ "if_simple_statement",
+ "unless_simple_statement",
+ "variable_declaration",
+ "block",
+ "list_item",
+ "word_list_qw"
+]
+
+outdent = [
+ "}"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/perl/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/perl/injections.scm
new file mode 100644
index 0000000..cab5f53
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/perl/injections.scm
@@ -0,0 +1,2 @@
+((comments) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/perl/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/perl/textobjects.scm
new file mode 100644
index 0000000..972b877
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/perl/textobjects.scm
@@ -0,0 +1,17 @@
+(function_definition
+ (identifier) (_) @function.inside) @function.around
+
+(anonymous_function
+ (_) @function.inside) @function.around
+
+(argument
+ (_) @parameter.inside)
+
+[
+ (comments)
+ (pod_statement)
+] @comment.inside
+
+(comments)+ @comment.around
+
+(pod_statement) @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/php/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/php/highlights.scm
new file mode 100644
index 0000000..5379fa1
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/php/highlights.scm
@@ -0,0 +1,118 @@
+(php_tag) @tag
+"?>" @tag
+
+; Types
+
+(primitive_type) @type.builtin
+(cast_type) @type.builtin
+(named_type (name) @type) @type
+(named_type (qualified_name) @type) @type
+
+; Functions
+
+(array_creation_expression "array" @function.builtin)
+(list_literal "list" @function.builtin)
+
+(method_declaration
+ name: (name) @function.method)
+
+(function_call_expression
+ function: (qualified_name (name)) @function)
+
+(scoped_call_expression
+ name: (name) @function)
+
+(member_call_expression
+ name: (name) @function.method)
+
+(function_definition
+ name: (name) @function)
+
+; Member
+
+(property_element
+ (variable_name) @variable.other.member)
+
+(member_access_expression
+ name: (variable_name (name)) @variable.other.member)
+(member_access_expression
+ name: (name) @variable.other.member)
+
+; Variables
+
+(relative_scope) @variable.builtin
+
+((name) @constant
+ (#match? @constant "^_?[A-Z][A-Z\\d_]+$"))
+
+((name) @constructor
+ (#match? @constructor "^[A-Z]"))
+
+((name) @variable.builtin
+ (#eq? @variable.builtin "this"))
+
+(variable_name) @variable
+
+; Basic tokens
+
+(string) @string
+(heredoc) @string
+(boolean) @constant.builtin.boolean
+(null) @constant.builtin
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+(comment) @comment
+
+"$" @operator
+
+; Keywords
+
+"abstract" @keyword
+"as" @keyword
+"break" @keyword
+"case" @keyword
+"catch" @keyword
+"class" @keyword
+"const" @keyword
+"continue" @keyword
+"declare" @keyword
+"default" @keyword
+"do" @keyword
+"echo" @keyword
+"else" @keyword
+"elseif" @keyword
+"enddeclare" @keyword
+"endforeach" @keyword
+"endif" @keyword
+"endswitch" @keyword
+"endwhile" @keyword
+"enum" @keyword
+"extends" @keyword
+"final" @keyword
+"finally" @keyword
+"foreach" @keyword
+"fn" @keyword
+"function" @keyword
+"global" @keyword
+"if" @keyword
+"implements" @keyword
+"include_once" @keyword
+"include" @keyword
+"insteadof" @keyword
+"interface" @keyword
+"match" @keyword
+"namespace" @keyword
+"new" @keyword
+"private" @keyword
+"protected" @keyword
+"public" @keyword
+"require_once" @keyword
+"require" @keyword
+"return" @keyword
+"static" @keyword
+"switch" @keyword
+"throw" @keyword
+"trait" @keyword
+"try" @keyword
+"use" @keyword
+"while" @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/php/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/php/indents.toml
new file mode 100644
index 0000000..85c104d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/php/indents.toml
@@ -0,0 +1,17 @@
+indent = [
+ "array_creation_expression",
+ "arguments",
+ "formal_parameters",
+ "compound_statement",
+ "declaration_list",
+ "binary_expression",
+ "return_statement",
+ "expression_statement",
+ "switch_block",
+ "anonymous_function_use_clause",
+]
+
+oudent = [
+ "}",
+ ")",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/php/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/php/injections.scm
new file mode 100644
index 0000000..614a385
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/php/injections.scm
@@ -0,0 +1,6 @@
+((text) @injection.content
+ (#set! injection.language "html")
+ (#set! injection.combined))
+
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/php/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/php/tags.scm
new file mode 100644
index 0000000..ef889ce
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/php/tags.scm
@@ -0,0 +1,26 @@
+(class_declaration
+ name: (name) @name) @definition.class
+
+(function_definition
+ name: (name) @name) @definition.function
+
+(method_declaration
+ name: (name) @name) @definition.function
+
+(object_creation_expression
+ [
+ (qualified_name (name) @name)
+ (variable_name (name) @name)
+ ]) @reference.class
+
+(function_call_expression
+ function: [
+ (qualified_name (name) @name)
+ (variable_name (name)) @name
+ ]) @reference.call
+
+(scoped_call_expression
+ name: (name) @name) @reference.call
+
+(member_call_expression
+ name: (name) @name) @reference.call
diff --git a/helix-22.03-x86_64-windows/runtime/queries/php/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/php/textobjects.scm
new file mode 100644
index 0000000..51abe5c
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/php/textobjects.scm
@@ -0,0 +1,34 @@
+(class_declaration
+ body: (_) @class.inside) @class.around
+
+(interface_declaration
+ body: (_) @class.inside) @class.around
+
+(trait_declaration
+ body: (_) @class.inside) @class.around
+
+(enum_declaration
+ body: (_) @class.inside) @class.around
+
+(function_definition
+ body: (_) @function.inside) @function.around
+
+(method_declaration
+ body: (_) @function.inside) @function.around
+
+(arrow_function
+ body: (_) @function.inside) @function.around
+
+(anonymous_function_creation_expression
+ body: (_) @function.inside) @function.around
+
+(formal_parameters
+ [
+ (simple_parameter)
+ (variadic_parameter)
+ (property_promotion_parameter)
+ ] @parameter.inside)
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/protobuf/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/protobuf/highlights.scm
new file mode 100644
index 0000000..c35c430
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/protobuf/highlights.scm
@@ -0,0 +1,58 @@
+[
+ "syntax"
+ "package"
+ "option"
+ "import"
+ "service"
+ "rpc"
+ "returns"
+ "message"
+ "enum"
+ "oneof"
+ "repeated"
+ "reserved"
+ "to"
+ "stream"
+ "extend"
+ "optional"
+] @keyword
+
+[
+ (keyType)
+ (type)
+] @type.builtin
+
+[
+ (mapName)
+ (enumName)
+ (messageName)
+ (extendName)
+ (serviceName)
+ (rpcName)
+] @type
+
+[
+ (fieldName)
+ (optionName)
+] @variable.other.member
+(enumVariantName) @type.enum.variant
+
+(fullIdent) @namespace
+
+(intLit) @constant.numeric.integer
+(floatLit) @constant.numeric.float
+(boolLit) @constant.builtin.boolean
+(strLit) @string
+
+(constant) @constant
+
+(comment) @comment
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket \ No newline at end of file
diff --git a/helix-22.03-x86_64-windows/runtime/queries/protobuf/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/protobuf/indents.toml
new file mode 100644
index 0000000..e655f8d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/protobuf/indents.toml
@@ -0,0 +1,12 @@
+indent = [
+ "messageBody",
+ "enumBody",
+ "oneofBody",
+ "serviceBody",
+ "rpcBody",
+ "msgLit",
+]
+
+outdent = [
+ "}",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/protobuf/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/protobuf/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/protobuf/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/python/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/python/highlights.scm
new file mode 100644
index 0000000..9131acc
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/python/highlights.scm
@@ -0,0 +1,121 @@
+; Identifier naming conventions
+
+((identifier) @constructor
+ (#match? @constructor "^[A-Z]"))
+
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z_]*$"))
+
+; Builtin functions
+
+((call
+ function: (identifier) @function.builtin)
+ (#match?
+ @function.builtin
+ "^(abs|all|any|ascii|bin|bool|breakpoint|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip|__import__)$"))
+
+; Function calls
+
+(decorator) @function
+
+(call
+ function: (attribute attribute: (identifier) @function.method))
+(call
+ function: (identifier) @function)
+
+; Function definitions
+
+(function_definition
+ name: (identifier) @function)
+
+(identifier) @variable
+(attribute attribute: (identifier) @variable.other.member)
+(type (identifier) @type)
+
+; Literals
+
+[
+ (none)
+ (true)
+ (false)
+] @constant.builtin
+
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+(comment) @comment
+(string) @string
+(escape_sequence) @constant.character.escape
+
+(interpolation
+ "{" @punctuation.special
+ "}" @punctuation.special) @embedded
+
+[
+ "-"
+ "-="
+ "!="
+ "*"
+ "**"
+ "**="
+ "*="
+ "/"
+ "//"
+ "//="
+ "/="
+ "&"
+ "%"
+ "%="
+ "^"
+ "+"
+ "->"
+ "+="
+ "<"
+ "<<"
+ "<="
+ "<>"
+ "="
+ ":="
+ "=="
+ ">"
+ ">="
+ ">>"
+ "|"
+ "~"
+ "and"
+ "in"
+ "is"
+ "not"
+ "or"
+] @operator
+
+[
+ "as"
+ "assert"
+ "async"
+ "await"
+ "break"
+ "class"
+ "continue"
+ "def"
+ "del"
+ "elif"
+ "else"
+ "except"
+ "exec"
+ "finally"
+ "for"
+ "from"
+ "global"
+ "if"
+ "import"
+ "lambda"
+ "nonlocal"
+ "pass"
+ "print"
+ "raise"
+ "return"
+ "try"
+ "while"
+ "with"
+ "yield"
+] @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/python/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/python/indents.toml
new file mode 100644
index 0000000..6bc6848
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/python/indents.toml
@@ -0,0 +1,39 @@
+indent = [
+ "list",
+ "tuple",
+ "dictionary",
+ "set",
+
+ "if_statement",
+ "for_statement",
+ "while_statement",
+ "with_statement",
+ "try_statement",
+ "import_from_statement",
+
+ "parenthesized_expression",
+ "generator_expression",
+ "list_comprehension",
+ "set_comprehension",
+ "dictionary_comprehension",
+
+ "tuple_pattern",
+ "list_pattern",
+ "argument_list",
+ "parameters",
+ "binary_operator",
+
+ "function_definition",
+ "class_definition",
+]
+
+outdent = [
+ ")",
+ "]",
+ "}",
+ "return_statement",
+ "pass_statement",
+ "raise_statement",
+]
+
+ignore = ["string"]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/python/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/python/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/python/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/python/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/python/tags.scm
new file mode 100644
index 0000000..c5ca827
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/python/tags.scm
@@ -0,0 +1,12 @@
+(class_definition
+ name: (identifier) @name) @definition.class
+
+(function_definition
+ name: (identifier) @name) @definition.function
+
+(call
+ function: [
+ (identifier) @name
+ (attribute
+ attribute: (identifier) @name)
+ ]) @reference.call
diff --git a/helix-22.03-x86_64-windows/runtime/queries/python/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/python/textobjects.scm
new file mode 100644
index 0000000..0ca2608
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/python/textobjects.scm
@@ -0,0 +1,18 @@
+(function_definition
+ body: (block)? @function.inside) @function.around
+
+(class_definition
+ body: (block)? @class.inside) @class.around
+
+(parameters
+ (_) @parameter.inside)
+
+(lambda_parameters
+ (_) @parameter.inside)
+
+(argument_list
+ (_) @parameter.inside)
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/regex/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/regex/highlights.scm
new file mode 100644
index 0000000..9376caa
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/regex/highlights.scm
@@ -0,0 +1,53 @@
+; upstream: https://github.com/tree-sitter/tree-sitter-regex/blob/e1cfca3c79896ff79842f057ea13e529b66af636/queries/highlights.scm
+
+[
+ "("
+ ")"
+ "(?"
+ "(?:"
+ "(?<"
+ ">"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ "*"
+ "+"
+ "|"
+ "="
+ "<="
+ "!"
+ "<!"
+ "?"
+] @operator
+
+[
+ (identity_escape)
+ (control_letter_escape)
+ (character_class_escape)
+ (control_escape)
+ (start_assertion)
+ (end_assertion)
+ (boundary_assertion)
+ (non_boundary_assertion)
+] @constant.character.escape
+
+(group_name) @property
+
+(count_quantifier
+ [
+ (decimal_digits) @constant.numeric
+ "," @punctuation.delimiter
+ ])
+
+(character_class
+ [
+ "^" @operator
+ (class_range "-" @operator)
+ ])
+
+(class_character) @constant.character
+(pattern_character) @string
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rescript/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/rescript/highlights.scm
new file mode 100644
index 0000000..a9cbeb5
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rescript/highlights.scm
@@ -0,0 +1,178 @@
+(comment) @comment
+
+; Identifiers
+;------------
+
+; Escaped identifiers like \"+."
+((value_identifier) @function.macro
+ (#match? @function.macro "^\\.*$"))
+
+[
+ (type_identifier)
+ (unit_type)
+ "list"
+] @type
+
+[
+ (variant_identifier)
+ (polyvar_identifier)
+] @constant
+
+(property_identifier) @variable.other.member
+(module_identifier) @namespace
+
+(jsx_identifier) @tag
+(jsx_attribute (property_identifier) @variable.parameter)
+
+; Parameters
+;----------------
+
+(list_pattern (value_identifier) @variable.parameter)
+(spread_pattern (value_identifier) @variable.parameter)
+
+; String literals
+;----------------
+
+[
+ (string)
+ (template_string)
+] @string
+
+(template_substitution
+ "${" @punctuation.bracket
+ "}" @punctuation.bracket) @embedded
+
+(character) @constant.character
+(escape_sequence) @constant.character.escape
+
+; Other literals
+;---------------
+
+[
+ (true)
+ (false)
+] @constant.builtin
+
+(number) @constant.numeric
+(polyvar) @constant
+(polyvar_string) @constant
+
+; Functions
+;----------
+
+[
+ (formal_parameters (value_identifier))
+ (labeled_parameter (value_identifier))
+] @variable.parameter
+
+(function parameter: (value_identifier) @variable.parameter)
+
+; Meta
+;-----
+
+[
+ "@"
+ "@@"
+ (decorator_identifier)
+] @label
+
+(extension_identifier) @keyword
+("%") @keyword
+
+; Misc
+;-----
+
+(subscript_expression index: (string) @variable.other.member)
+(polyvar_type_pattern "#" @constant)
+
+[
+ ("include")
+ ("open")
+] @keyword
+
+[
+ "as"
+ "export"
+ "external"
+ "let"
+ "module"
+ "mutable"
+ "private"
+ "rec"
+ "type"
+ "and"
+] @keyword
+
+[
+ "if"
+ "else"
+ "switch"
+] @keyword
+
+[
+ "exception"
+ "try"
+ "catch"
+ "raise"
+] @keyword
+
+[
+ "."
+ ","
+ "|"
+] @punctuation.delimiter
+
+[
+ "++"
+ "+"
+ "+."
+ "-"
+ "-."
+ "*"
+ "*."
+ "/"
+ "/."
+ "<"
+ "<="
+ "=="
+ "==="
+ "!"
+ "!="
+ "!=="
+ ">"
+ ">="
+ "&&"
+ "||"
+ "="
+ ":="
+ "->"
+ "|>"
+ ":>"
+ (uncurry)
+] @operator
+
+[
+ "("
+ ")"
+ "{"
+ "}"
+ "["
+ "]"
+] @punctuation.bracket
+
+(polyvar_type
+ [
+ "["
+ "[>"
+ "[<"
+ "]"
+ ] @punctuation.bracket)
+
+[
+ "~"
+ "?"
+ "=>"
+ "..."
+] @punctuation
+
+(ternary_expression ["?" ":"] @operator)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rescript/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/rescript/injections.scm
new file mode 100644
index 0000000..201cce7
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rescript/injections.scm
@@ -0,0 +1,8 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((raw_js) @injection.content
+ (#set! injection.language "javascript"))
+
+((raw_gql) @injection.content
+ (#set! injection.language "graphql"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rescript/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/rescript/textobjects.scm
new file mode 100644
index 0000000..fa1c4ff
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rescript/textobjects.scm
@@ -0,0 +1,16 @@
+; Classes (modules)
+;------------------
+
+(module_declaration definition: ((_) @class.inside)) @class.around
+
+; Functions
+;----------
+
+(function body: (_) @function.inside) @function.around
+
+; Comments
+;---------
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ruby/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/ruby/highlights.scm
new file mode 100644
index 0000000..898f8f7
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ruby/highlights.scm
@@ -0,0 +1,146 @@
+; Keywords
+
+[
+ "alias"
+ "and"
+ "begin"
+ "break"
+ "case"
+ "class"
+ "def"
+ "do"
+ "else"
+ "elsif"
+ "end"
+ "ensure"
+ "for"
+ "if"
+ "in"
+ "module"
+ "next"
+ "or"
+ "rescue"
+ "retry"
+ "return"
+ "then"
+ "unless"
+ "until"
+ "when"
+ "while"
+ "yield"
+] @keyword
+
+((identifier) @keyword
+ (#match? @keyword "^(private|protected|public)$"))
+
+; Function calls
+
+((identifier) @function.method.builtin
+ (#eq? @function.method.builtin "require"))
+
+"defined?" @function.method.builtin
+
+(call
+ method: [(identifier) (constant)] @function.method)
+
+; Function definitions
+
+(alias (identifier) @function.method)
+(setter (identifier) @function.method)
+(method name: [(identifier) (constant)] @function.method)
+(singleton_method name: [(identifier) (constant)] @function.method)
+
+; Identifiers
+
+[
+ (class_variable)
+ (instance_variable)
+] @variable.other.member
+
+((identifier) @constant.builtin
+ (#match? @constant.builtin "^__(FILE|LINE|ENCODING)__$"))
+
+((constant) @constant
+ (#match? @constant "^[A-Z\\d_]+$"))
+
+(constant) @constructor
+
+(self) @variable.builtin
+(super) @variable.builtin
+
+(block_parameter (identifier) @variable.parameter)
+(block_parameters (identifier) @variable.parameter)
+(destructured_parameter (identifier) @variable.parameter)
+(hash_splat_parameter (identifier) @variable.parameter)
+(lambda_parameters (identifier) @variable.parameter)
+(method_parameters (identifier) @variable.parameter)
+(splat_parameter (identifier) @variable.parameter)
+
+(keyword_parameter name: (identifier) @variable.parameter)
+(optional_parameter name: (identifier) @variable.parameter)
+
+((identifier) @function.method
+ (#is-not? local))
+(identifier) @variable
+
+; Literals
+
+[
+ (string)
+ (bare_string)
+ (subshell)
+ (heredoc_body)
+ (heredoc_beginning)
+] @string
+
+[
+ (simple_symbol)
+ (delimited_symbol)
+ (hash_key_symbol)
+ (bare_symbol)
+] @string.special.symbol
+
+(regex) @string.regexp
+(escape_sequence) @constant.character.escape
+
+[
+ (integer)
+ (float)
+] @constant.numeric.integer
+
+[
+ (nil)
+ (true)
+ (false)
+]@constant.builtin
+
+(interpolation
+ "#{" @punctuation.special
+ "}" @punctuation.special) @embedded
+
+(comment) @comment
+
+; Operators
+
+[
+"="
+"=>"
+"->"
+] @operator
+
+[
+ ","
+ ";"
+ "."
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+ "%w("
+ "%i("
+] @punctuation.bracket
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ruby/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/ruby/indents.toml
new file mode 100644
index 0000000..b417751
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ruby/indents.toml
@@ -0,0 +1,25 @@
+indent = [
+ "argument_list",
+ "array",
+ "begin",
+ "block",
+ "call",
+ "class",
+ "case",
+ "do_block",
+ "elsif",
+ "if",
+ "hash",
+ "method",
+ "module",
+ "singleton_class",
+ "singleton_method",
+]
+
+outdent = [
+ ")",
+ "}",
+ "]",
+ "end",
+ "when",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ruby/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/ruby/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ruby/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ruby/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/ruby/locals.scm
new file mode 100644
index 0000000..393caaf
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ruby/locals.scm
@@ -0,0 +1,27 @@
+((method) @local.scope
+ (#set! local.scope-inherits false))
+
+[
+ (lambda)
+ (block)
+ (do_block)
+] @local.scope
+
+(block_parameter (identifier) @local.definition)
+(block_parameters (identifier) @local.definition)
+(destructured_parameter (identifier) @local.definition)
+(hash_splat_parameter (identifier) @local.definition)
+(lambda_parameters (identifier) @local.definition)
+(method_parameters (identifier) @local.definition)
+(splat_parameter (identifier) @local.definition)
+
+(keyword_parameter name: (identifier) @local.definition)
+(optional_parameter name: (identifier) @local.definition)
+
+(identifier) @local.reference
+
+(assignment left: (identifier) @local.definition)
+(operator_assignment left: (identifier) @local.definition)
+(left_assignment_list (identifier) @local.definition)
+(rest_assignment (identifier) @local.definition)
+(destructured_left_assignment (identifier) @local.definition)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/ruby/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/ruby/tags.scm
new file mode 100644
index 0000000..47ba1eb
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/ruby/tags.scm
@@ -0,0 +1,64 @@
+; Method definitions
+
+(
+ (comment)* @doc
+ .
+ [
+ (method
+ name: (_) @name) @definition.method
+ (singleton_method
+ name: (_) @name) @definition.method
+ ]
+ (#strip! @doc "^#\\s*")
+ (#select-adjacent! @doc @definition.method)
+)
+
+(alias
+ name: (_) @name) @definition.method
+
+(setter
+ (identifier) @ignore)
+
+; Class definitions
+
+(
+ (comment)* @doc
+ .
+ [
+ (class
+ name: [
+ (constant) @name
+ (scope_resolution
+ name: (_) @name)
+ ]) @definition.class
+ (singleton_class
+ value: [
+ (constant) @name
+ (scope_resolution
+ name: (_) @name)
+ ]) @definition.class
+ ]
+ (#strip! @doc "^#\\s*")
+ (#select-adjacent! @doc @definition.class)
+)
+
+; Module definitions
+
+(
+ (module
+ name: [
+ (constant) @name
+ (scope_resolution
+ name: (_) @name)
+ ]) @definition.module
+)
+
+; Calls
+
+(call method: (identifier) @name) @reference.call
+
+(
+ [(identifier) (constant)] @name @reference.call
+ (#is-not? local)
+ (#not-match? @name "^(lambda|load|require|require_relative|__FILE__|__LINE__)$")
+)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rust/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/rust/highlights.scm
new file mode 100644
index 0000000..26496c6
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rust/highlights.scm
@@ -0,0 +1,356 @@
+; -------
+; Tree-Sitter doesn't allow overrides in regards to captures,
+; though it is possible to affect the child node of a captured
+; node. Thus, the approach here is to flip the order so that
+; overrides are unnecessary.
+; -------
+
+
+
+; -------
+; Types
+; -------
+
+; ---
+; Primitives
+; ---
+
+(escape_sequence) @constant.character.escape
+(primitive_type) @type.builtin
+(boolean_literal) @constant.builtin.boolean
+(integer_literal) @constant.numeric.integer
+(float_literal) @constant.numeric.float
+(char_literal) @constant.character
+[
+ (string_literal)
+ (raw_string_literal)
+] @string
+[
+ (line_comment)
+ (block_comment)
+] @comment
+
+; ---
+; Extraneous
+; ---
+
+(self) @variable.builtin
+(enum_variant (identifier) @type.enum.variant)
+
+(field_initializer
+ (field_identifier) @variable.other.member)
+(shorthand_field_initializer
+ (identifier) @variable.other.member)
+(shorthand_field_identifier) @variable.other.member
+
+(lifetime
+ "'" @label
+ (identifier) @label)
+(loop_label
+ (identifier) @type)
+
+; ---
+; Punctuation
+; ---
+
+[
+ "::"
+ "."
+ ";"
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+(type_arguments
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+(type_parameters
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+; ---
+; Variables
+; ---
+
+(let_declaration
+ pattern: [
+ ((identifier) @variable)
+ ((tuple_pattern
+ (identifier) @variable))
+ ])
+
+; It needs to be anonymous to not conflict with `call_expression` further below.
+(_
+ value: (field_expression
+ value: (identifier)? @variable
+ field: (field_identifier) @variable.other.member))
+
+(arguments
+ (identifier) @variable.parameter)
+(parameter
+ pattern: (identifier) @variable.parameter)
+(closure_parameters
+ (identifier) @variable.parameter)
+
+
+
+; -------
+; Keywords
+; -------
+
+(for_expression
+ "for" @keyword.control)
+((identifier) @keyword.control
+ (#match? @keyword.control "^yield$"))
+[
+ "while"
+ "loop"
+ "in"
+ "break"
+ "continue"
+
+ "match"
+ "if"
+ "else"
+ "return"
+
+ "await"
+] @keyword.control
+
+"use" @keyword.control.import
+(mod_item "mod" @keyword.control.import !body)
+(use_as_clause "as" @keyword.control.import)
+
+(type_cast_expression "as" @keyword.operator)
+
+[
+ (crate)
+ (super)
+ "as"
+ "pub"
+ "mod"
+ "extern"
+
+ "fn"
+ "struct"
+ "enum"
+ "impl"
+ "where"
+ "trait"
+ "for"
+
+ "type"
+ "union"
+ "unsafe"
+ "default"
+ "macro_rules!"
+
+ "let"
+ "ref"
+ "move"
+
+ "dyn"
+ "static"
+ "const"
+ "async"
+] @keyword
+
+(mutable_specifier) @keyword.mut
+
+; TODO: variable.mut to highlight mutable identifiers via locals.scm
+
+; -------
+; Guess Other Types
+; -------
+
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z\\d_]+$"))
+
+; ---
+; PascalCase identifiers in call_expressions (e.g. `Ok()`)
+; are assumed to be enum constructors.
+; ---
+
+(call_expression
+ function: [
+ ((identifier) @type.variant
+ (#match? @type.variant "^[A-Z]"))
+ (scoped_identifier
+ name: ((identifier) @type.variant
+ (#match? @type.variant "^[A-Z]")))
+ ])
+
+; ---
+; Assume that types in match arms are enums and not
+; tuple structs. Same for `if let` expressions.
+; ---
+
+(match_pattern
+ (scoped_identifier
+ name: (identifier) @constructor))
+(tuple_struct_pattern
+ type: [
+ ((identifier) @constructor)
+ (scoped_identifier
+ name: (identifier) @constructor)
+ ])
+(struct_pattern
+ type: [
+ ((type_identifier) @constructor)
+ (scoped_type_identifier
+ name: (type_identifier) @constructor)
+ ])
+
+; ---
+; Other PascalCase identifiers are assumed to be structs.
+; ---
+
+((identifier) @type
+ (#match? @type "^[A-Z]"))
+
+
+
+; -------
+; Functions
+; -------
+
+(call_expression
+ function: [
+ ((identifier) @function)
+ (scoped_identifier
+ name: (identifier) @function)
+ (field_expression
+ field: (field_identifier) @function)
+ ])
+(generic_function
+ function: [
+ ((identifier) @function)
+ (scoped_identifier
+ name: (identifier) @function)
+ (field_expression
+ field: (field_identifier) @function.method)
+ ])
+
+(function_item
+ name: (identifier) @function)
+
+; ---
+; Macros
+; ---
+(meta_item
+ (identifier) @function.macro)
+
+(inner_attribute_item) @attribute
+
+(macro_definition
+ name: (identifier) @function.macro)
+(macro_invocation
+ macro: [
+ ((identifier) @function.macro)
+ (scoped_identifier
+ name: (identifier) @function.macro)
+ ]
+ "!" @function.macro)
+
+(metavariable) @variable.parameter
+(fragment_specifier) @type
+
+
+
+; -------
+; Operators
+; -------
+
+[
+ "*"
+ "'"
+ "->"
+ "=>"
+ "<="
+ "="
+ "=="
+ "!"
+ "!="
+ "%"
+ "%="
+ "&"
+ "&="
+ "&&"
+ "|"
+ "|="
+ "||"
+ "^"
+ "^="
+ "*"
+ "*="
+ "-"
+ "-="
+ "+"
+ "+="
+ "/"
+ "/="
+ ">"
+ "<"
+ ">="
+ ">>"
+ "<<"
+ ">>="
+ "@"
+ ".."
+ "..="
+ "'"
+] @operator
+
+
+
+; -------
+; Paths
+; -------
+
+(use_declaration
+ argument: (identifier) @namespace)
+(use_wildcard
+ (identifier) @namespace)
+(extern_crate_declaration
+ name: (identifier) @namespace)
+(mod_item
+ name: (identifier) @namespace)
+(scoped_use_list
+ path: (identifier)? @namespace)
+(use_list
+ (identifier) @namespace)
+(use_as_clause
+ path: (identifier)? @namespace
+ alias: (identifier) @namespace)
+
+; ---
+; Remaining Paths
+; ---
+
+(scoped_identifier
+ path: (identifier)? @namespace
+ name: (identifier) @namespace)
+(scoped_type_identifier
+ path: (identifier) @namespace)
+
+
+
+; -------
+; Remaining Identifiers
+; -------
+
+"?" @special
+
+(type_identifier) @type
+(identifier) @variable
+(field_identifier) @variable.other.member
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rust/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/rust/indents.toml
new file mode 100644
index 0000000..51a0cee
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rust/indents.toml
@@ -0,0 +1,28 @@
+indent = [
+ "use_list",
+ "block",
+ "match_block",
+ "arguments",
+ "parameters",
+ "declaration_list",
+ "field_declaration_list",
+ "field_initializer_list",
+ "struct_pattern",
+ "tuple_pattern",
+ "unit_expression",
+ "enum_variant_list",
+ "call_expression",
+ "binary_expression",
+ "field_expression",
+ "tuple_expression",
+ "array_expression",
+ "where_clause",
+ "macro_invocation"
+]
+
+outdent = [
+ "where",
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rust/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/rust/injections.scm
new file mode 100644
index 0000000..77c7080
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rust/injections.scm
@@ -0,0 +1,26 @@
+([(line_comment) (block_comment)] @injection.content
+ (#set! injection.language "comment"))
+
+((macro_invocation
+ (token_tree) @injection.content)
+ (#set! injection.language "rust")
+ (#set! injection.include-children))
+
+((macro_rule
+ (token_tree) @injection.content)
+ (#set! injection.language "rust")
+ (#set! injection.include-children))
+
+(call_expression
+ function: (scoped_identifier
+ path: (identifier) @_regex (#eq? @_regex "Regex")
+ name: (identifier) @_new (#eq? @_new "new"))
+ arguments: (arguments (raw_string_literal) @injection.content)
+ (#set! injection.language "regex"))
+
+(call_expression
+ function: (scoped_identifier
+ path: (scoped_identifier (identifier) @_regex (#eq? @_regex "Regex") .)
+ name: (identifier) @_new (#eq? @_new "new"))
+ arguments: (arguments (raw_string_literal) @injection.content)
+ (#set! injection.language "regex"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rust/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/rust/locals.scm
new file mode 100644
index 0000000..6428f9b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rust/locals.scm
@@ -0,0 +1,17 @@
+; Scopes
+
+(block) @local.scope
+
+; Definitions
+
+(parameter
+ (identifier) @local.definition)
+
+(let_declaration
+ pattern: (identifier) @local.definition)
+
+(closure_parameters (identifier)) @local.definition
+
+; References
+(identifier) @local.reference
+
diff --git a/helix-22.03-x86_64-windows/runtime/queries/rust/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/rust/textobjects.scm
new file mode 100644
index 0000000..086db67
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/rust/textobjects.scm
@@ -0,0 +1,35 @@
+(function_item
+ body: (_) @function.inside) @function.around
+
+(struct_item
+ body: (_) @class.inside) @class.around
+
+(enum_item
+ body: (_) @class.inside) @class.around
+
+(union_item
+ body: (_) @class.inside) @class.around
+
+(trait_item
+ body: (_) @class.inside) @class.around
+
+(impl_item
+ body: (_) @class.inside) @class.around
+
+(parameters
+ (_) @parameter.inside)
+
+(closure_parameters
+ (_) @parameter.inside)
+
+(arguments
+ (_) @parameter.inside)
+
+[
+ (line_comment)
+ (block_comment)
+] @comment.inside
+
+(line_comment)+ @comment.around
+
+(block_comment) @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/scala/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/scala/highlights.scm
new file mode 100644
index 0000000..50a6e18
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/scala/highlights.scm
@@ -0,0 +1,203 @@
+; CREDITS @stumash (stuart.mashaal@gmail.com)
+
+;; variables
+
+
+((identifier) @variable.builtin
+ (#match? @variable.builtin "^this$"))
+
+(interpolation) @none
+
+; Assume other uppercase names constants.
+; NOTE: In order to distinguish constants we highlight
+; all the identifiers that are uppercased. But this solution
+; is not suitable for all occurrences e.g. it will highlight
+; an uppercased method as a constant if used with no params.
+; Introducing highlighting for those specific cases, is probably
+; best way to resolve the issue.
+((identifier) @constant (#match? @constant "^[A-Z]"))
+
+;; types
+
+(type_identifier) @type
+
+(class_definition
+ name: (identifier) @type)
+
+(object_definition
+ name: (identifier) @type)
+
+(trait_definition
+ name: (identifier) @type)
+
+(type_definition
+ name: (type_identifier) @type)
+
+; method definition
+
+(class_definition
+ body: (template_body
+ (function_definition
+ name: (identifier) @function.method)))
+(object_definition
+ body: (template_body
+ (function_definition
+ name: (identifier) @function.method)))
+(trait_definition
+ body: (template_body
+ (function_definition
+ name: (identifier) @function.method)))
+
+; imports
+
+(import_declaration
+ path: (identifier) @namespace)
+((stable_identifier (identifier) @namespace))
+
+((import_declaration
+ path: (identifier) @type) (#match? @type "^[A-Z]"))
+((stable_identifier (identifier) @type) (#match? @type "^[A-Z]"))
+
+((import_selectors (identifier) @type) (#match? @type "^[A-Z]"))
+
+; method invocation
+
+
+(call_expression
+ function: (identifier) @function)
+
+(call_expression
+ function: (field_expression
+ field: (identifier) @function.method))
+
+((call_expression
+ function: (identifier) @variable.other.member)
+ (#match? @variable.other.member "^[A-Z]"))
+
+(generic_function
+ function: (identifier) @function)
+
+(
+ (identifier) @function.builtin
+ (#match? @function.builtin "^super$")
+)
+
+; function definitions
+
+(function_definition
+ name: (identifier) @function)
+
+(parameter
+ name: (identifier) @variable.parameter)
+
+; expressions
+
+
+(field_expression field: (identifier) @variable.other.member)
+(field_expression value: (identifier) @type
+ (#match? @type "^[A-Z]"))
+
+(infix_expression operator: (identifier) @operator)
+(infix_expression operator: (operator_identifier) @operator)
+(infix_type operator: (operator_identifier) @operator)
+(infix_type operator: (operator_identifier) @operator)
+
+; literals
+(boolean_literal) @constant.builtin.boolean
+(integer_literal) @constant.numeric.integer
+(floating_point_literal) @constant.numeric.float
+
+
+(symbol_literal) @string.special.symbol
+
+[
+(string)
+(character_literal)
+(interpolated_string_expression)
+] @string
+
+(interpolation "$" @punctuation.special)
+
+;; keywords
+
+[
+ "abstract"
+ "case"
+ "class"
+ "extends"
+ "final"
+ "finally"
+;; `forSome` existential types not implemented yet
+ "implicit"
+ "lazy"
+;; `macro` not implemented yet
+ "object"
+ "override"
+ "package"
+ "private"
+ "protected"
+ "sealed"
+ "trait"
+ "type"
+ "val"
+ "var"
+ "with"
+] @keyword
+
+(null_literal) @constant.builtin
+(wildcard) @keyword
+
+;; special keywords
+
+"new" @keyword.operator
+
+[
+ "else"
+ "if"
+ "match"
+ "try"
+ "catch"
+ "throw"
+] @keyword.control.conditional
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ "."
+ ","
+] @punctuation.delimiter
+
+[
+ "do"
+ "for"
+ "while"
+ "yield"
+] @keyword.control.repeat
+
+"def" @keyword.function
+
+[
+ "=>"
+ "<-"
+ "@"
+] @keyword.operator
+
+"import" @keyword.control.import
+
+"return" @keyword.control.return
+
+(comment) @comment
+
+;; `case` is a conditional keyword in case_block
+
+(case_block
+ (case_clause ("case") @keyword.control.conditional))
+
+(identifier) @variable \ No newline at end of file
diff --git a/helix-22.03-x86_64-windows/runtime/queries/scala/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/scala/indents.toml
new file mode 100644
index 0000000..6de5484
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/scala/indents.toml
@@ -0,0 +1,23 @@
+
+indent = [
+ "block",
+ "arguments",
+ "parameter",
+ "class_definition",
+ "trait_definition",
+ "object_definition",
+ "function_definition",
+ "val_definition",
+ "import_declaration",
+ "while_expression",
+ "do_while_expression",
+ "for_expression",
+ "try_expression",
+ "match_expression"
+]
+
+outdent = [
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/scala/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/scala/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/scala/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/solidity/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/solidity/highlights.scm
new file mode 100644
index 0000000..61c89ac
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/solidity/highlights.scm
@@ -0,0 +1,189 @@
+(comment) @comment
+
+; Pragma
+(pragma_directive) @tag
+(solidity_version_comparison_operator ">=" @tag)
+(solidity_version_comparison_operator "<=" @tag)
+(solidity_version_comparison_operator "=" @tag)
+(solidity_version_comparison_operator "~" @tag)
+(solidity_version_comparison_operator "^" @tag)
+
+
+; Literals
+[
+ (string)
+ (hex_string_literal)
+ (unicode_string_literal)
+ (yul_string_literal)
+] @string
+[
+ (number_literal)
+ (yul_decimal_number)
+ (yul_hex_number)
+] @constant.numeric
+[
+ (true)
+ (false)
+] @constant.builtin
+
+
+; Type
+(type_name) @type
+(primitive_type) @type
+(struct_declaration struct_name: (identifier) @type)
+(enum_declaration enum_type_name: (identifier) @type)
+; Color payable in payable address conversion as type and not as keyword
+(payable_conversion_expression "payable" @type)
+(emit_statement . (identifier) @type)
+; Handles ContractA, ContractB in function foo() override(ContractA, contractB) {}
+(override_specifier (identifier) @type)
+; Ensures that delimiters in mapping( ... => .. ) are not colored like types
+(type_name "(" @punctuation.bracket "=>" @punctuation.delimiter ")" @punctuation.bracket)
+
+
+
+; Functions and parameters
+
+(function_definition
+ function_name: (identifier) @function)
+(modifier_definition
+ name: (identifier) @function)
+(yul_evm_builtin) @function.builtin
+
+; Use contructor coloring for special functions
+(constructor_definition "constructor" @constructor)
+(fallback_receive_definition "receive" @constructor)
+(fallback_receive_definition "fallback" @constructor)
+
+(modifier_invocation (identifier) @function)
+
+; Handles expressions like structVariable.g();
+(call_expression . (member_expression (property_identifier) @function.method))
+
+; Handles expressions like g();
+(call_expression . (identifier) @function)
+
+; Function parameters
+(event_paramater name: (identifier) @variable.parameter)
+(function_definition
+ function_name: (identifier) @variable.parameter)
+
+; Yul functions
+(yul_function_call function: (yul_identifier) @function)
+
+; Yul function parameters
+(yul_function_definition . (yul_identifier) @function (yul_identifier) @variable.parameter)
+
+(meta_type_expression "type" @keyword)
+
+(member_expression (property_identifier) @variable.other.member)
+(property_identifier) @variable.other.member
+(struct_expression ((identifier) @variable.other.member . ":"))
+(enum_value) @variable.other.member
+
+
+; Keywords
+[
+ "pragma"
+ "import"
+ "contract"
+ "interface"
+ "library"
+ "is"
+ "struct"
+ "enum"
+ "event"
+ "using"
+ "assembly"
+ "switch"
+ "case"
+ "default"
+ "break"
+ "continue"
+ "if"
+ "else"
+ "for"
+ "while"
+ "do"
+ "try"
+ "catch"
+ "return"
+ "emit"
+ "public"
+ "internal"
+ "private"
+ "external"
+ "pure"
+ "view"
+ "payable"
+ "modifier"
+ "returns"
+ "memory"
+ "storage"
+ "calldata"
+ "function"
+ "var"
+ (constant)
+ (virtual)
+ (override_specifier)
+ (yul_leave)
+] @keyword
+
+(import_directive "as" @keyword)
+(import_directive "from" @keyword)
+(event_paramater "indexed" @keyword)
+
+; Punctuation
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+
+[
+ "."
+ ","
+] @punctuation.delimiter
+
+
+; Operators
+
+[
+ "&&"
+ "||"
+ ">>"
+ ">>>"
+ "<<"
+ "&"
+ "^"
+ "|"
+ "+"
+ "-"
+ "*"
+ "/"
+ "%"
+ "**"
+ "<"
+ "<="
+ "=="
+ "!="
+ "!=="
+ ">="
+ ">"
+ "!"
+ "~"
+ "-"
+ "+"
+ "delete"
+ "new"
+ "++"
+ "--"
+] @operator
+
+(identifier) @variable
+(yul_identifier) @variable
diff --git a/helix-22.03-x86_64-windows/runtime/queries/svelte/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/svelte/highlights.scm
new file mode 100644
index 0000000..22b0c55
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/svelte/highlights.scm
@@ -0,0 +1,68 @@
+; Special identifiers
+;--------------------
+
+; TODO:
+((element (start_tag (tag_name) @_tag) (text) @markup.heading)
+ (#match? @_tag "^(h[0-9]|title)$"))
+
+((element (start_tag (tag_name) @_tag) (text) @markup.bold)
+ (#match? @_tag "^(strong|b)$"))
+
+((element (start_tag (tag_name) @_tag) (text) @markup.italic)
+ (#match? @_tag "^(em|i)$"))
+
+; ((element (start_tag (tag_name) @_tag) (text) @markup.strike)
+; (#match? @_tag "^(s|del)$"))
+
+((element (start_tag (tag_name) @_tag) (text) @markup.underline)
+ (#eq? @_tag "u"))
+
+((element (start_tag (tag_name) @_tag) (text) @markup.inline)
+ (#match? @_tag "^(code|kbd)$"))
+
+((element (start_tag (tag_name) @_tag) (text) @markup.link.url)
+ (#eq? @_tag "a"))
+
+((attribute
+ (attribute_name) @_attr
+ (quoted_attribute_value (attribute_value) @markup.link.url))
+ (#match? @_attr "^(href|src)$"))
+
+(tag_name) @tag
+(attribute_name) @variable.other.member
+(erroneous_end_tag_name) @error
+(comment) @comment
+
+[
+ (attribute_value)
+ (quoted_attribute_value)
+] @string
+
+[
+ (text)
+ (raw_text_expr)
+] @none
+
+[
+ (special_block_keyword)
+ (then)
+ (as)
+] @keyword
+
+[
+ "{"
+ "}"
+] @punctuation.brackets
+
+"=" @operator
+
+[
+ "<"
+ ">"
+ "</"
+ "/>"
+ "#"
+ ":"
+ "/"
+ "@"
+] @punctuation.definition.tag
diff --git a/helix-22.03-x86_64-windows/runtime/queries/svelte/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/svelte/indents.toml
new file mode 100644
index 0000000..693db8e
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/svelte/indents.toml
@@ -0,0 +1,18 @@
+indent = [
+ "element"
+ "if_statement"
+ "each_statement"
+ "await_statement"
+]
+
+outdent = [
+ "end_tag"
+ "else_statement"
+ "if_end_expr"
+ "each_end_expr"
+ "await_end_expr"
+ ">"
+ "/>"
+]
+
+ignore = "comment"
diff --git a/helix-22.03-x86_64-windows/runtime/queries/svelte/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/svelte/injections.scm
new file mode 100644
index 0000000..04e860c
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/svelte/injections.scm
@@ -0,0 +1,30 @@
+; injections.scm
+; --------------
+((style_element
+ (raw_text) @injection.content)
+ (#set! injection.language "css"))
+
+((attribute
+ (attribute_name) @_attr
+ (quoted_attribute_value (attribute_value) @css))
+ (#eq? @_attr "style"))
+
+((script_element
+ (raw_text) @injection.content)
+ (#set! injection.language "javascript"))
+
+((raw_text_expr) @injection.content
+ (#set! injection.language "javascript"))
+
+(
+ (script_element
+ (start_tag
+ (attribute
+ (quoted_attribute_value (attribute_value) @_lang)))
+ (raw_text) @injection.content)
+ (#match? @_lang "(ts|typescript)")
+ (#set! injection.language "typescript")
+)
+
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tablegen/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/tablegen/highlights.scm
new file mode 100644
index 0000000..8ade5ba
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tablegen/highlights.scm
@@ -0,0 +1,90 @@
+[
+ (comment)
+ (multiline_comment)
+] @comment
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+ "<"
+ ">"
+] @punctuation.bracket
+
+[
+ ","
+ ";"
+ "."
+] @punctuation.delimiter
+
+[
+ "#"
+ "-"
+ "..."
+ ":"
+] @operator
+
+[
+ "="
+ "!cond"
+ (operator_keyword)
+] @function
+
+[
+ "true"
+ "false"
+] @constant.builtin.boolean
+
+[
+ "?"
+] @constant.builtin
+
+(var) @variable
+
+(template_arg (identifier) @variable.parameter)
+
+(_ argument: (value (identifier) @variable.parameter))
+
+(type) @type
+
+"code" @type.builtin
+
+(number) @constant.numeric.integer
+[
+ (string_string)
+ (code_string)
+] @string
+
+(preprocessor) @keyword.directive
+
+[
+ "class"
+ "field"
+ "let"
+ "defvar"
+ "def"
+ "defset"
+ "defvar"
+ "assert"
+] @keyword
+
+[
+ "let"
+ "in"
+ "foreach"
+ "if"
+ "then"
+ "else"
+] @keyword.operator
+
+"include" @keyword.control.import
+
+[
+ "multiclass"
+ "defm"
+] @namespace
+
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tablegen/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/tablegen/indents.toml
new file mode 100644
index 0000000..43532f4
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tablegen/indents.toml
@@ -0,0 +1,7 @@
+indent = [
+ "statement",
+]
+
+outdent = [
+ "}",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tablegen/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/tablegen/injections.scm
new file mode 100644
index 0000000..0b476f8
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tablegen/injections.scm
@@ -0,0 +1,2 @@
+([ (comment) (multiline_comment)] @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tablegen/textobjects.scm b/helix-22.03-x86_64-windows/runtime/queries/tablegen/textobjects.scm
new file mode 100644
index 0000000..89645b3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tablegen/textobjects.scm
@@ -0,0 +1,16 @@
+(class
+ body: (_) @class.inside) @class.around
+
+(multiclass
+ body: (_) @class.inside) @class.around
+
+(_ argument: _ @parameter.inside)
+
+[
+ (comment)
+ (multiline_comment)
+] @comment.inside
+
+(comment)+ @comment.around
+
+(multiline_comment) @comment.around
diff --git a/helix-22.03-x86_64-windows/runtime/queries/toml/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/toml/highlights.scm
new file mode 100644
index 0000000..2742b2b
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/toml/highlights.scm
@@ -0,0 +1,33 @@
+; Properties
+;-----------
+
+(bare_key) @variable.other.member
+(quoted_key) @string
+
+; Literals
+;---------
+
+(boolean) @constant.builtin.boolean
+(comment) @comment
+(string) @string
+(integer) @constant.numeric.integer
+(float) @constant.numeric.float
+(offset_date_time) @string.special
+(local_date_time) @string.special
+(local_date) @string.special
+(local_time) @string.special
+
+; Punctuation
+;------------
+
+"." @punctuation.delimiter
+"," @punctuation.delimiter
+
+"=" @operator
+
+"[" @punctuation.bracket
+"]" @punctuation.bracket
+"[[" @punctuation.bracket
+"]]" @punctuation.bracket
+"{" @punctuation.bracket
+"}" @punctuation.bracket
diff --git a/helix-22.03-x86_64-windows/runtime/queries/toml/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/toml/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/toml/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tsq/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/tsq/highlights.scm
new file mode 100644
index 0000000..549895c
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tsq/highlights.scm
@@ -0,0 +1,46 @@
+; mark the string passed #match? as a regex
+(((predicate_name) @function
+ (capture)
+ (string) @string.regexp)
+ (#eq? @function "#match?"))
+
+; highlight inheritance comments
+((query . (comment) @keyword.directive)
+ (#match? @keyword.directive "^;\ +inherits *:"))
+
+[
+ "("
+ ")"
+ "["
+ "]"
+] @punctuation.bracket
+
+":" @punctuation.delimiter
+
+[
+ (one_or_more)
+ (zero_or_one)
+ (zero_or_more)
+] @operator
+
+[
+ (wildcard_node)
+ (anchor)
+] @constant.builtin
+
+[
+ (anonymous_leaf)
+ (string)
+] @string
+
+(comment) @comment
+
+(field_name) @variable.other.member
+
+(capture) @label
+
+(predicate_name) @function
+
+(escape_sequence) @constant.character.escape
+
+(node_name) @variable
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tsq/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/tsq/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tsq/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tsx/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/tsx/highlights.scm
new file mode 100644
index 0000000..1b61e36
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tsx/highlights.scm
@@ -0,0 +1 @@
+; inherits: typescript
diff --git a/helix-22.03-x86_64-windows/runtime/queries/tsx/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/tsx/injections.scm
new file mode 100644
index 0000000..1b61e36
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/tsx/injections.scm
@@ -0,0 +1 @@
+; inherits: typescript
diff --git a/helix-22.03-x86_64-windows/runtime/queries/twig/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/twig/highlights.scm
new file mode 100644
index 0000000..2c95ab6
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/twig/highlights.scm
@@ -0,0 +1,16 @@
+(comment_directive) @comment
+
+[
+ "{%"
+ "{%-"
+ "{%~"
+ "%}"
+ "-%}"
+ "~%}"
+ "{{"
+ "{{-"
+ "{{~"
+ "}}"
+ "-}}"
+ "~}}"
+] @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/twig/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/twig/injections.scm
new file mode 100644
index 0000000..f082273
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/twig/injections.scm
@@ -0,0 +1,3 @@
+((content) @injection.content
+ (#set! injection.language "html")
+ (#set! injection.combined))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/typescript/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/typescript/highlights.scm
new file mode 100644
index 0000000..a3212a3
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/typescript/highlights.scm
@@ -0,0 +1,36 @@
+; inherits: javascript
+
+; Types
+
+(type_identifier) @type
+(predefined_type) @type.builtin
+
+((identifier) @type
+ (#match? @type "^[A-Z]"))
+
+(type_arguments
+ "<" @punctuation.bracket
+ ">" @punctuation.bracket)
+
+; Variables
+
+(required_parameter (identifier) @variable.parameter)
+(optional_parameter (identifier) @variable.parameter)
+
+; Keywords
+
+[
+ "abstract"
+ "declare"
+ "enum"
+ "export"
+ "implements"
+ "interface"
+ "keyof"
+ "namespace"
+ "private"
+ "protected"
+ "public"
+ "type"
+ "readonly"
+] @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/typescript/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/typescript/indents.toml
new file mode 100644
index 0000000..9d711ab
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/typescript/indents.toml
@@ -0,0 +1,28 @@
+indent = [
+ "array",
+ "object",
+ "arguments",
+ "formal_parameters",
+
+ "statement_block",
+ "object_pattern",
+ "class_body",
+ "named_imports",
+
+ "binary_expression",
+ "return_statement",
+ "template_substitution",
+ # (expression_statement (call_expression))
+ "export_clause",
+
+ # typescript
+ "enum_declaration",
+ "interface_declaration",
+ "object_type",
+]
+
+outdent = [
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/typescript/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/typescript/injections.scm
new file mode 100644
index 0000000..ff0ddfa
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/typescript/injections.scm
@@ -0,0 +1 @@
+; inherits: javascript
diff --git a/helix-22.03-x86_64-windows/runtime/queries/typescript/locals.scm b/helix-22.03-x86_64-windows/runtime/queries/typescript/locals.scm
new file mode 100644
index 0000000..aa6d6ff
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/typescript/locals.scm
@@ -0,0 +1,2 @@
+(required_parameter (identifier) @local.definition)
+(optional_parameter (identifier) @local.definition)
diff --git a/helix-22.03-x86_64-windows/runtime/queries/typescript/tags.scm b/helix-22.03-x86_64-windows/runtime/queries/typescript/tags.scm
new file mode 100644
index 0000000..ccae934
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/typescript/tags.scm
@@ -0,0 +1,23 @@
+(function_signature
+ name: (identifier) @name) @definition.function
+
+(method_signature
+ name: (property_identifier) @name) @definition.method
+
+(abstract_method_signature
+ name: (property_identifier) @name) @definition.method
+
+(abstract_class_declaration
+ name: (type_identifier) @name) @definition.class
+
+(module
+ name: (identifier) @name) @definition.module
+
+(interface_declaration
+ name: (type_identifier) @name) @definition.interface
+
+(type_annotation
+ (type_identifier) @name) @reference.type
+
+(new_expression
+ constructor: (identifier) @name) @reference.class
diff --git a/helix-22.03-x86_64-windows/runtime/queries/vue/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/vue/highlights.scm
new file mode 100644
index 0000000..f90ae42
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/vue/highlights.scm
@@ -0,0 +1,21 @@
+(tag_name) @tag
+(end_tag) @tag
+
+(directive_name) @keyword
+(directive_argument) @constant
+
+(attribute
+ (attribute_name) @attribute
+ (quoted_attribute_value
+ (attribute_value) @string)
+)
+
+(comment) @comment
+
+[
+ "<"
+ ">"
+ "</"
+ "{{"
+ "}}"
+] @punctuation.bracket \ No newline at end of file
diff --git a/helix-22.03-x86_64-windows/runtime/queries/vue/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/vue/injections.scm
new file mode 100644
index 0000000..73df868
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/vue/injections.scm
@@ -0,0 +1,20 @@
+(directive_attribute
+ (directive_name) @keyword
+ (quoted_attribute_value
+ (attribute_value) @injection.content)
+ (#set! injection.language "javascript"))
+
+((interpolation
+ (raw_text) @injection.content)
+ (#set! injection.language "javascript"))
+
+((script_element
+ (raw_text) @injection.content)
+ (#set! injection.language "javascript"))
+
+((style_element
+ (raw_text) @injection.content)
+ (#set! injection.language "css"))
+
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/wgsl/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/wgsl/highlights.scm
new file mode 100644
index 0000000..7fbc87d
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/wgsl/highlights.scm
@@ -0,0 +1,102 @@
+(const_literal) @constant.numeric
+
+(type_declaration) @type
+
+(function_declaration
+ (identifier) @function)
+
+(struct_declaration
+ (identifier) @type)
+
+(type_constructor_or_function_call_expression
+ (type_declaration) @function)
+
+(parameter
+ (variable_identifier_declaration (identifier) @variable.parameter))
+
+[
+ "struct"
+ "bitcast"
+ ; "block"
+ "discard"
+ "enable"
+ "fallthrough"
+ "fn"
+ "let"
+ "private"
+ "read"
+ "read_write"
+ "return"
+ "storage"
+ "type"
+ "uniform"
+ "var"
+ "workgroup"
+ "write"
+ (texel_format)
+] @keyword ; TODO reserved keywords
+
+[
+ (true)
+ (false)
+] @constant.builtin.boolean
+
+[ "," "." ":" ";" ] @punctuation.delimiter
+
+;; brackets
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ "loop"
+ "for"
+ "break"
+ "continue"
+ "continuing"
+] @keyword.control.repeat
+
+[
+ "if"
+ "else"
+ "elseif"
+ "switch"
+ "case"
+ "default"
+] @keyword.control.conditional
+
+[
+ "&"
+ "&&"
+ "/"
+ "!"
+ "="
+ "=="
+ "!="
+ ">"
+ ">="
+ ">>"
+ "<"
+ "<="
+ "<<"
+ "%"
+ "-"
+ "+"
+ "|"
+ "||"
+ "*"
+ "~"
+ "^"
+] @operator
+
+(attribute
+ (identifier) @variable.other.member)
+
+(comment) @comment
+
+(ERROR) @error
diff --git a/helix-22.03-x86_64-windows/runtime/queries/wgsl/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/wgsl/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/wgsl/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/yaml/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/yaml/highlights.scm
new file mode 100644
index 0000000..e4fed27
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/yaml/highlights.scm
@@ -0,0 +1,43 @@
+(block_mapping_pair
+ key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member))
+(block_mapping_pair
+ key: (flow_node (plain_scalar (string_scalar) @variable.other.member)))
+
+(flow_mapping
+ (_ key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member)))
+(flow_mapping
+ (_ key: (flow_node (plain_scalar (string_scalar) @variable.other.member))))
+
+(boolean_scalar) @constant.builtin.boolean
+(null_scalar) @constant.builtin
+(double_quote_scalar) @string
+(single_quote_scalar) @string
+(block_scalar) @string
+(string_scalar) @string
+(escape_sequence) @constant.character.escape
+(integer_scalar) @constant.numeric.integer
+(float_scalar) @constant.numeric.float
+(comment) @comment
+(anchor_name) @type
+(alias_name) @type
+(tag) @type
+(yaml_directive) @keyword
+(ERROR) @error
+
+[
+","
+"-"
+":"
+">"
+"?"
+"|"
+] @punctuation.delimiter
+
+[
+"["
+"]"
+"{"
+"}"
+] @punctuation.bracket
+
+["*" "&" "---" "..."] @punctuation.special
diff --git a/helix-22.03-x86_64-windows/runtime/queries/yaml/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/yaml/indents.toml
new file mode 100644
index 0000000..ddc3578
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/yaml/indents.toml
@@ -0,0 +1,3 @@
+indent = [
+ "block_mapping_pair",
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/yaml/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/yaml/injections.scm
new file mode 100644
index 0000000..321c90a
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/yaml/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/helix-22.03-x86_64-windows/runtime/queries/zig/highlights.scm b/helix-22.03-x86_64-windows/runtime/queries/zig/highlights.scm
new file mode 100644
index 0000000..62c99ac
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/zig/highlights.scm
@@ -0,0 +1,234 @@
+[
+ (container_doc_comment)
+ (doc_comment)
+ (line_comment)
+] @comment
+
+[
+ variable: (IDENTIFIER)
+ variable_type_function: (IDENTIFIER)
+] @variable
+
+parameter: (IDENTIFIER) @variable.parameter
+
+[
+ field_member: (IDENTIFIER)
+ field_access: (IDENTIFIER)
+] @variable.other.member
+
+;; assume TitleCase is a type
+(
+ [
+ variable_type_function: (IDENTIFIER)
+ field_access: (IDENTIFIER)
+ parameter: (IDENTIFIER)
+ ] @type
+ (#match? @type "^[A-Z]([a-z]+[A-Za-z0-9]*)*$")
+)
+;; assume camelCase is a function
+(
+ [
+ variable_type_function: (IDENTIFIER)
+ field_access: (IDENTIFIER)
+ parameter: (IDENTIFIER)
+ ] @function
+ (#match? @function "^[a-z]+([A-Z][a-z0-9]*)+$")
+)
+
+;; assume all CAPS_1 is a constant
+(
+ [
+ variable_type_function: (IDENTIFIER)
+ field_access: (IDENTIFIER)
+ ] @constant
+ (#match? @constant "^[A-Z][A-Z_0-9]+$")
+)
+
+[
+ function_call: (IDENTIFIER)
+ function: (IDENTIFIER)
+] @function
+
+exception: "!" @function.macro
+
+(
+ (IDENTIFIER) @variable.builtin
+ (#eq? @variable.builtin "_")
+)
+
+(PtrTypeStart "c" @variable.builtin)
+
+(
+ (ContainerDeclType
+ [
+ (ErrorUnionExpr)
+ "enum"
+ ]
+ )
+ (ContainerField (IDENTIFIER) @constant)
+)
+
+field_constant: (IDENTIFIER) @constant
+
+(BUILTINIDENTIFIER) @function.builtin
+
+((BUILTINIDENTIFIER) @keyword.control.import
+ (#any-of? @keyword.control.import "@import" "@cImport"))
+
+(INTEGER) @constant.numeric.integer
+
+(FLOAT) @constant.numeric.float
+
+[
+ (LINESTRING)
+ (STRINGLITERALSINGLE)
+] @string
+
+(CHAR_LITERAL) @constant.character
+(EscapeSequence) @constant.character.escape
+(FormatSequence) @string.special
+
+[
+ "allowzero"
+ "volatile"
+ "anytype"
+ "anyframe"
+ (BuildinTypeExpr)
+] @type.builtin
+
+(BreakLabel (IDENTIFIER) @label)
+(BlockLabel (IDENTIFIER) @label)
+
+[
+ "true"
+ "false"
+] @constant.builtin.boolean
+
+[
+ "undefined"
+ "unreachable"
+ "null"
+] @constant.builtin
+
+[
+ "else"
+ "if"
+ "switch"
+] @keyword.control.conditional
+
+[
+ "for"
+ "while"
+] @keyword.control.repeat
+
+[
+ "or"
+ "and"
+ "orelse"
+] @operator
+
+[
+ "struct"
+ "enum"
+ "union"
+ "error"
+ "packed"
+ "opaque"
+] @keyword
+
+[
+ "try"
+ "error"
+ "catch"
+] @function.macro
+
+; VarDecl
+[
+ "threadlocal"
+ "fn"
+] @keyword.function
+
+[
+ "const"
+ "var"
+ "test"
+ "pub"
+ "usingnamespace"
+] @keyword
+
+[
+ "return"
+ "break"
+ "continue"
+] @keyword.control
+
+; Macro
+[
+ "defer"
+ "errdefer"
+ "async"
+ "nosuspend"
+ "await"
+ "suspend"
+ "resume"
+ "export"
+ "extern"
+] @function.macro
+
+; PrecProc
+[
+ "comptime"
+ "inline"
+ "noinline"
+ "asm"
+ "callconv"
+ "noalias"
+] @keyword.directive
+
+[
+ "linksection"
+ "align"
+] @function.builtin
+
+[
+ (CompareOp)
+ (BitwiseOp)
+ (BitShiftOp)
+ (AdditionOp)
+ (AssignOp)
+ (MultiplyOp)
+ (PrefixOp)
+ "*"
+ "**"
+ "->"
+ ".?"
+ ".*"
+ "?"
+] @operator
+
+[
+ ";"
+ "."
+ ","
+ ":"
+] @punctuation.delimiter
+
+[
+ ".."
+ "..."
+] @punctuation.special
+
+[
+ "["
+ "]"
+ "("
+ ")"
+ "{"
+ "}"
+ (Payload "|")
+ (PtrPayload "|")
+ (PtrIndexPayload "|")
+] @punctuation.bracket
+
+; Error
+(ERROR) @keyword
diff --git a/helix-22.03-x86_64-windows/runtime/queries/zig/indents.toml b/helix-22.03-x86_64-windows/runtime/queries/zig/indents.toml
new file mode 100644
index 0000000..36ba8e5
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/zig/indents.toml
@@ -0,0 +1,16 @@
+indent = [
+ "Block",
+ "BlockExpr",
+ "ContainerDecl",
+ "SwitchExpr",
+ "AssignExpr",
+ "ErrorUnionExpr",
+ "Statement",
+ "InitList"
+]
+
+outdent = [
+ "}",
+ "]",
+ ")"
+]
diff --git a/helix-22.03-x86_64-windows/runtime/queries/zig/injections.scm b/helix-22.03-x86_64-windows/runtime/queries/zig/injections.scm
new file mode 100644
index 0000000..3df9589
--- /dev/null
+++ b/helix-22.03-x86_64-windows/runtime/queries/zig/injections.scm
@@ -0,0 +1,2 @@
+([(line_comment) (doc_comment)] @injection.content
+ (#set! injection.language "comment"))