4ee92cad19
* Add treesitter textobject queries Only for Go, Python and Rust for now. * Add tree-sitter textobjects Only has functions and class objects as of now. * Fix tests * Add docs for tree-sitter textobjects * Add guide for creating new textobject queries * Add parameter textobject Only parameter.inside is implemented now, parameter.around will probably require custom predicates akin to nvim' `make-range` since we want to select a trailing comma too (a comma will be an anonymous node and matching against them doesn't work similar to named nodes) * Simplify TextObject cell init
21 lines
589 B
Scheme
21 lines
589 B
Scheme
(function_declaration
|
|
body: (block)? @function.inside) @function.around
|
|
|
|
(func_literal
|
|
(_)? @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_spec_list (_)?) @class.inside))) @class.around
|
|
|
|
(parameter_list
|
|
(_) @parameter.inside)
|
|
|
|
(argument_list
|
|
(_) @parameter.inside)
|