summaryrefslogtreecommitdiff
path: root/vendor/queries/go/textobjects.scm
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/queries/go/textobjects.scm')
-rw-r--r--vendor/queries/go/textobjects.scm39
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/queries/go/textobjects.scm b/vendor/queries/go/textobjects.scm
new file mode 100644
index 00000000..48529015
--- /dev/null
+++ b/vendor/queries/go/textobjects.scm
@@ -0,0 +1,39 @@
+; Vendored from helix (https://github.com/helix-editor/helix) at 278b24389:
+; runtime/queries/go/textobjects.scm.
+; Licensed under the Mozilla Public License 2.0 (vendor/queries/helix.LICENSE,
+; https://mozilla.org/MPL/2.0/).
+
+(function_declaration
+ body: (block)? @function.inside) @function.around
+
+(func_literal
+ body: (block)? @function.inside) @function.around
+
+(method_declaration
+ body: (block)? @function.inside) @function.around
+
+;; struct and interface declaration as class textobject?
+(type_declaration
+ (type_spec (type_identifier) (struct_type (field_declaration_list (_)?) @class.inside))) @class.around
+
+(type_declaration
+ (type_spec (type_identifier) (interface_type (method_elem)+ @class.inside))) @class.around
+
+(type_parameter_list
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(parameter_list
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(argument_list
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
+
+; Go test/benchmark/example/fuzz functions (all live in _test.go).
+((function_declaration
+ name: (identifier) @_name
+ body: (block)? @test.inside) @test.around
+ (#match? @_name "^(Test|Benchmark|Example|Fuzz)"))