78 lines · 1.5 KB · Scheme
RawDownload
; Functions names start with `Test`(  (    (function_declaration name: (_) @run      (#match? @run "^Test.*"))  ) @_  (#set! tag go-test)) ; `go:generate` comments(    ((comment) @_comment @run    (#match? @_comment "^//go:generate"))    (#set! tag go-generate)) ; `t.Run`(  (    (call_expression      function: (        selector_expression        field: _ @run @_name        (#eq? @_name "Run")      )      arguments: (        argument_list        .        (interpreted_string_literal) @_subtest_name        .        (func_literal          parameters: (            parameter_list            (parameter_declaration              name: (identifier) @_param_name              type: (pointer_type                (qualified_type                  package: (package_identifier) @_pkg                  name: (type_identifier) @_type                  (#eq? @_pkg "testing")                  (#eq? @_type "T")                )              )            )          )        ) @_second_argument      )    )  ) @_  (#set! tag go-subtest)) ; Functions names start with `Benchmark`(  (    (function_declaration name: (_) @run @_name      (#match? @_name "^Benchmark.+"))  ) @_  (#set! tag go-benchmark)) ; Functions names start with `Fuzz`(  (    (function_declaration name: (_) @run @_name      (#match? @_name "^Fuzz"))  ) @_  (#set! tag go-fuzz)) ; go run(  (    (function_declaration name: (_) @run      (#eq? @run "main"))  ) @_  (#set! tag go-main))