aboutsummaryrefslogtreecommitdiffstats
path: root/queries/zig
diff options
context:
space:
mode:
authorAtomToast <reg-2@t-online.de>2024-11-28 08:28:51 +0100
committerGitHub <noreply@github.com>2024-11-28 08:28:51 +0100
commit02f8777252fe089c9ea19aa8e19745b505512655 (patch)
tree06fce59f8b1504f01986933ceb7619eef6754dd2 /queries/zig
parentbot(lockfile): update solidity, sql (diff)
downloadnvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.tar
nvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.tar.gz
nvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.tar.bz2
nvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.tar.lz
nvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.tar.xz
nvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.tar.zst
nvim-treesitter-02f8777252fe089c9ea19aa8e19745b505512655.zip
feat(zig): add locals queries (#7401)
Diffstat (limited to 'queries/zig')
-rw-r--r--queries/zig/locals.scm95
1 files changed, 95 insertions, 0 deletions
diff --git a/queries/zig/locals.scm b/queries/zig/locals.scm
index 8b1378917..b9e63441d 100644
--- a/queries/zig/locals.scm
+++ b/queries/zig/locals.scm
@@ -1 +1,96 @@
+; Definitions
+(function_declaration
+ name: (identifier) @local.definition.function)
+(parameter
+ name: (identifier) @local.definition.parameter)
+
+(variable_declaration
+ (identifier) @local.definition.var)
+
+(variable_declaration
+ (identifier) @local.definition.type
+ (enum_declaration))
+
+(container_field
+ type: (identifier) @local.definition.field)
+
+(enum_declaration
+ (function_declaration
+ name: (identifier) @local.definition.method))
+
+(variable_declaration
+ (identifier) @local.definition.type
+ (struct_declaration))
+
+(struct_declaration
+ (function_declaration
+ name: (identifier) @local.definition.method))
+
+(container_field
+ name: (identifier) @local.definition.field)
+
+(variable_declaration
+ (identifier) @local.definition.type
+ (union_declaration))
+
+(union_declaration
+ (function_declaration
+ name: (identifier) @local.definition.method))
+
+(payload
+ (identifier) @local.definition.var)
+
+(block_label
+ (identifier) @local.definition)
+
+; References
+(identifier) @local.reference
+
+(parameter
+ type: (identifier) @local.reference
+ (#set! reference.kind "type"))
+
+(pointer_type
+ (identifier) @local.reference
+ (#set! reference.kind "type"))
+
+(nullable_type
+ (identifier) @local.reference
+ (#set! reference.kind "type"))
+
+(struct_initializer
+ (identifier) @local.reference
+ (#set! reference.kind "type"))
+
+(array_type
+ (_)
+ (identifier) @local.reference
+ (#set! reference.kind "type"))
+
+(slice_type
+ (identifier) @local.reference
+ (#set! reference.kind "type"))
+
+(field_expression
+ member: (identifier) @local.reference
+ (#set! reference.kind "field"))
+
+(call_expression
+ function: (field_expression
+ member: (identifier) @local.reference
+ (#set! reference.kind "function")))
+
+(break_label
+ (identifier) @local.reference)
+
+[
+ (for_statement)
+ (if_statement)
+ (while_statement)
+ (function_declaration)
+ (block)
+ (source_file)
+ (enum_declaration)
+ (struct_declaration)
+] @local.scope