diff options
| author | Hilmar Wiegand <me@hwgnd.de> | 2024-05-13 10:47:04 +0200 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2024-05-14 19:38:17 +0200 |
| commit | c26cfc75bc77b3538f4f288b013bc927a371bf2e (patch) | |
| tree | 1e999002f1ffd9831c82477a991f5c619accc3b8 /queries | |
| parent | bot(lockfile): update idl, php, php_only, wit (diff) | |
| download | nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.tar nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.tar.gz nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.tar.bz2 nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.tar.lz nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.tar.xz nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.tar.zst nvim-treesitter-c26cfc75bc77b3538f4f288b013bc927a371bf2e.zip | |
feat(typespec): add support for typespec
Diffstat (limited to 'queries')
| -rw-r--r-- | queries/typespec/highlights.scm | 135 | ||||
| -rw-r--r-- | queries/typespec/indents.scm | 18 | ||||
| -rw-r--r-- | queries/typespec/injections.scm | 5 |
3 files changed, 158 insertions, 0 deletions
diff --git a/queries/typespec/highlights.scm b/queries/typespec/highlights.scm new file mode 100644 index 000000000..68c67c0d1 --- /dev/null +++ b/queries/typespec/highlights.scm @@ -0,0 +1,135 @@ +(identifier_or_member_expression) @type + +[ + "is" + "extends" + "valueof" +] @keyword.operator + +[ + "namespace" + "model" + "scalar" + "interface" + "enum" + "union" + "alias" +] @keyword.type + +[ + "op" + "fn" + "dec" +] @keyword.function + +"extern" @keyword.modifier + +[ + "import" + "using" +] @keyword.import + +[ + "(" + ")" + "{" + "}" + "<" + ">" + "[" + "]" +] @punctuation.bracket + +[ + "," + ";" + "." + ":" +] @punctuation.delimiter + +[ + "|" + "&" + "=" + "..." +] @operator + +"?" @punctuation.special + +[ + (single_line_comment) + (multi_line_comment) +] @comment @spell + +[ + (quoted_string_literal) + (triple_quoted_string_literal) +] @string + +(boolean_literal) @boolean + +[ + (decimal_literal) + (hex_integer_literal) + (binary_integer_literal) +] @number + +(escape_sequence) @string.escape + +(builtin_type) @type.builtin + +(decorator + "@" @attribute + name: (identifier_or_member_expression) @attribute) + +(augment_decorator_statement + name: (identifier_or_member_expression) @attribute) + +(using_statement + module: (identifier_or_member_expression) @module) + +(namespace_statement + name: (identifier_or_member_expression) @module) + +(model_statement + name: (identifier) @type) + +(model_property + name: (identifier) @variable.member) + +(union_statement + name: (identifier) @type) + +(union_variant + name: (identifier) @variable.member) + +(scalar_statement + name: (identifier) @type) + +(interface_statement + name: (identifier) @type) + +(enum_statement + name: (identifier) @type) + +(enum_member + name: (identifier) @constant) + +(operation_statement + name: (identifier) @function) + +(template_parameter + name: (identifier) @type) + +(alias_statement + name: (identifier) @type) + +(decorator_declaration_statement + name: (identifier) @attribute) + +(function_parameter + name: (identifier) @variable.parameter) + +(operation_arguments + (model_property + name: (identifier) @variable.parameter)) diff --git a/queries/typespec/indents.scm b/queries/typespec/indents.scm new file mode 100644 index 000000000..aee01f35a --- /dev/null +++ b/queries/typespec/indents.scm @@ -0,0 +1,18 @@ +[ + (model_expression) + (tuple_expression) + (namespace_body) + (interface_body) + (union_body) + (enum_body) + (template_arguments) + (template_parameters) + (operation_arguments) +] @indent.begin + +[ + "}" + ")" + ">" + "]" +] @indent.end diff --git a/queries/typespec/injections.scm b/queries/typespec/injections.scm new file mode 100644 index 000000000..81d7734cb --- /dev/null +++ b/queries/typespec/injections.scm @@ -0,0 +1,5 @@ +([ + (single_line_comment) + (multi_line_comment) +] @injection.content + (#set! injection.language "comment")) |
