aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--queries/go/locals.scm43
1 files changed, 43 insertions, 0 deletions
diff --git a/queries/go/locals.scm b/queries/go/locals.scm
new file mode 100644
index 000000000..297474f8d
--- /dev/null
+++ b/queries/go/locals.scm
@@ -0,0 +1,43 @@
+(
+ (comment)* @definition.doc
+ (function_declaration
+ name: (identifier) @definition.function) ;@function
+ (#strip! @definition.doc "^//\\s*") ; <- does nothing at the moment
+)
+
+(
+ (comment)* @definition.doc
+ (method_declaration
+ name: (field_identifier) @definition.method); @method
+ (#strip! @definition.doc "^//\\s*") ; <- does nothing at the moment
+)
+
+
+(short_var_declaration
+ left: (expression_list
+ (identifier) @definition.var))
+
+(var_spec
+ name: (identifier) @definition.var)
+
+(parameter_declaration (identifier) @definition.var)
+(variadic_parameter_declaration (identifier) @definition.var)
+
+(type_declaration
+ (type_spec
+ name: (type_identifier) @definition.type))
+
+;; reference
+(identifier) @reference
+(type_identifier) @reference
+(field_identifier) @reference
+
+;; Scopes
+
+(source_file) @scope
+(function_declaration) @scope
+(if_statement) @scope
+(block) @scope
+(expression_switch_statement) @scope
+(for_statement) @scope
+(method_declaration) @scope