go loop and func literal, rust textobject support

This commit is contained in:
winwisely268 2020-07-17 15:49:43 +00:00 committed by Thomas Vigouroux
parent ac14bad7a8
commit 59c084b5d8
2 changed files with 88 additions and 2 deletions

View file

@ -2,6 +2,10 @@
(function_declaration
body: (block)? @function.inner) @function.outer
;; function literals
(func_literal
(_)? @function.inner) @function.outer
;; method as function textobject
(method_declaration
body: (block)? @function.inner) @function.outer
@ -14,8 +18,8 @@
(type_spec (type_identifier) (interface_type (method_spec_list (_)?) @class.inner))) @class.outer
;; struct literals as class textobject
(composite_literal
(type_identifier)?
(composite_literal
(type_identifier)?
(struct_type (_))?
(literal_value (_)) @class.inner) @class.outer
@ -29,9 +33,18 @@
(if_statement
condition: (_) @conditional.inner)
;; loops
(for_statement
body: (block)? @loop.inner) @loop.outer
;; blocks
(_ (block) @block.inner) @block.outer
;; statements
(block (_) @statement.outer)
;; comments
(comment) @comment.outer
;; calls
(call_expression (_)? @call.inner) @call.outer

View file

@ -0,0 +1,73 @@
;; functions
(function_item
(_) @function.inner) @function.outer
;; quantifies as class(es)
(struct_item
(_) @class.inner) @class.outer
(enum_item
(_) @class.inner) @class.outer
(union_item
(_) @class.inner) @class.outer
(trait_item
(_) @class.inner) @class.outer
(impl_item
(_) @class.inner) @class.outer
;; conditionals
(if_expression
alternative: (_ (_)? @conditional.inner)?
) @conditional.outer
(if_expression
alternative: (block)? @conditional.inner)
(if_expression
condition: (_) @conditional.inner)
(if_expression
consequence: (block)? @conditional.inner)
(match_arm
(_)) @conditional.inner
(match_expression
(match_arm)?
) @conditional.outer
(if_let_expression
consequence: (block)?
@conditional.inner) @conditional.outer
(if_let_expression
alternative: (block)? @conditional.inner)
(if_let_expression
condition: (_) @conditional.inner)
;; loops
(loop_expression
(_)? @loop.inner) @loop.outer
(while_expression
(_)? @loop.inner) @loop.outer
(while_let_expression
(_)? @loop.inner) @loop.outer
(for_expression
body: (block)? @loop.inner) @loop.outer
;; blocks
(_ (block) @block.inner) @block.outer
(unsafe_block (_)? @block.inner) @block.outer
;; calls
(call_expression (_)? @call.inner) @call.outer
;; statements
(block (_) @statement.outer)