aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorHilmar Wiegand <me@hwgnd.de>2024-05-13 10:47:04 +0200
committerChristian Clason <c.clason@uni-graz.at>2024-05-14 19:38:17 +0200
commitc26cfc75bc77b3538f4f288b013bc927a371bf2e (patch)
tree1e999002f1ffd9831c82477a991f5c619accc3b8 /queries
parentbot(lockfile): update idl, php, php_only, wit (diff)
downloadnvim-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.scm135
-rw-r--r--queries/typespec/indents.scm18
-rw-r--r--queries/typespec/injections.scm5
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"))