aboutsummaryrefslogtreecommitdiff
path: root/Queries
diff options
context:
space:
mode:
Diffstat (limited to 'Queries')
-rw-r--r--Queries/arguments.scm3
-rw-r--r--Queries/folds.scm22
-rw-r--r--Queries/highlights.scm123
-rw-r--r--Queries/symbols.scm74
4 files changed, 222 insertions, 0 deletions
diff --git a/Queries/arguments.scm b/Queries/arguments.scm
new file mode 100644
index 0000000..7824dba
--- /dev/null
+++ b/Queries/arguments.scm
@@ -0,0 +1,3 @@
+(parameter
+ name: (identifier) @name
+ type: (_) @type)
diff --git a/Queries/folds.scm b/Queries/folds.scm
new file mode 100644
index 0000000..2275e5f
--- /dev/null
+++ b/Queries/folds.scm
@@ -0,0 +1,22 @@
+[
+ (block)
+ (switch_expression)
+ (initializer_list)
+ (asm_expression)
+ (multiline_string)
+ (if_statement)
+ (while_statement)
+ (for_statement)
+ (if_expression)
+ (else_clause)
+ (for_expression)
+ (while_expression)
+ (if_type_expression)
+ (function_signature)
+ (parameters)
+ (struct_declaration)
+ (opaque_declaration)
+ (enum_declaration)
+ (union_declaration)
+ (error_set_declaration)
+] @subtree
diff --git a/Queries/highlights.scm b/Queries/highlights.scm
new file mode 100644
index 0000000..b366bc7
--- /dev/null
+++ b/Queries/highlights.scm
@@ -0,0 +1,123 @@
+(comment) @comment
+
+[
+ (string)
+ (multiline_string)
+ (character)
+] @string
+
+[
+ (integer)
+ (float)
+] @value.number
+
+[
+ "true"
+ "false"
+] @value.boolean
+
+[
+ "null"
+ "undefined"
+ "unreachable"
+] @value.null
+
+(builtin_type) @identifier.type
+(builtin_identifier) @identifier.core
+
+((builtin_identifier) @processing
+ (#match? @processing "^@(import|cImport)$"))
+
+((identifier) @identifier.core
+ (#eq? @identifier.core "_"))
+
+(parameter
+ name: (identifier) @identifier.argument)
+
+(payload
+ (identifier) @identifier.argument)
+
+(field_expression
+ member: (identifier) @identifier.property)
+
+(field_initializer
+ (identifier) @identifier.property)
+
+(function_declaration
+ name: (identifier) @identifier.function)
+
+(call_expression
+ function: (identifier) @identifier.function)
+
+(call_expression
+ function: (field_expression
+ member: (identifier) @identifier.function))
+
+((identifier) @identifier.type
+ (#match? @identifier.type "^[A-Z][A-Za-z0-9_]*$"))
+
+((identifier) @identifier.constant
+ (#match? @identifier.constant "^[A-Z][A-Z0-9_]+$"))
+
+[
+ "asm"
+ "const"
+ "defer"
+ "errdefer"
+ "error"
+ "return"
+ "test"
+ "var"
+] @keyword
+
+[
+ "struct"
+ "union"
+ "enum"
+ "opaque"
+ "fn"
+] @keyword.construct
+
+[
+ "if"
+ "else"
+ "switch"
+ "for"
+ "while"
+ "try"
+ "catch"
+ "break"
+ "continue"
+] @keyword.condition
+
+[
+ "usingnamespace"
+ "export"
+ "comptime"
+ "inline"
+ "noinline"
+ "extern"
+ "pub"
+ "packed"
+ "threadlocal"
+ "volatile"
+ "allowzero"
+ "noalias"
+ "addrspace"
+ "align"
+ "callconv"
+ "linksection"
+ "async"
+ "await"
+ "suspend"
+ "nosuspend"
+ "resume"
+] @keyword.modifier
+
+[
+ "and"
+ "or"
+ "orelse"
+] @keyword.operator
+
+(ERROR) @invalid
diff --git a/Queries/symbols.scm b/Queries/symbols.scm
new file mode 100644
index 0000000..5f903cb
--- /dev/null
+++ b/Queries/symbols.scm
@@ -0,0 +1,74 @@
+(
+ (function_declaration
+ name: (identifier) @name
+ (parameters) @arguments.target) @subtree
+ (#set! role function-or-method)
+ (#set! arguments.query "arguments.scm")
+)
+
+(
+ (variable_declaration
+ (identifier) @name
+ (struct_declaration)) @subtree
+ (#set! role struct)
+)
+
+(
+ (variable_declaration
+ (identifier) @name
+ (enum_declaration)) @subtree
+ (#set! role enum)
+)
+
+(
+ (variable_declaration
+ (identifier) @name
+ (union_declaration)) @subtree
+ (#set! role struct)
+)
+
+(
+ (variable_declaration
+ (identifier) @name
+ (opaque_declaration)) @subtree
+ (#set! role struct)
+)
+
+(
+ (variable_declaration
+ (identifier) @name
+ (error_set_declaration)) @subtree
+ (#set! role enum)
+)
+
+(
+ (container_field
+ name: (identifier) @name) @subtree
+ (#set! role property)
+)
+
+(
+ (container_field
+ name: (primary_type_expression
+ (identifier) @name)) @subtree
+ (#set! role property)
+)
+
+(
+ (test_declaration
+ (string) @name @displayname) @subtree
+ (#set! role function)
+)
+
+(
+ (test_declaration
+ (identifier) @name @displayname) @subtree
+ (#set! role function)
+)
+
+(
+ (block
+ (variable_declaration
+ (identifier) @name) @subtree)
+ (#set! role variable)
+)