316 lines
5.0 KiB
Scheme

; functions
(function_definition
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "function.inner" @_start @_end)))
(function_definition) @function.outer
(anonymous_function_creation_expression
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "function.inner" @_start @_end)))
(anonymous_function_creation_expression) @function.outer
; methods
(method_declaration
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "function.inner" @_start @_end)))
(method_declaration) @function.outer
; traits
(trait_declaration
body: (declaration_list
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "class.inner" @_start @_end)))
(trait_declaration) @class.outer
; interfaces
(interface_declaration
body: (declaration_list
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "class.inner" @_start @_end)))
(interface_declaration) @class.outer
; enums
(enum_declaration
body: (enum_declaration_list
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "class.inner" @_start @_end)))
(enum_declaration) @class.outer
; classes
(class_declaration
body: (declaration_list
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "class.inner" @_start @_end)))
(class_declaration) @class.outer
; loops
(for_statement
(compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "loop.inner" @_start @_end)))
(for_statement) @loop.outer
(foreach_statement
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "loop.inner" @_start @_end)))
(foreach_statement) @loop.outer
(while_statement
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "loop.inner" @_start @_end)))
(while_statement) @loop.outer
(do_statement
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "loop.inner" @_start @_end)))
(do_statement) @loop.outer
; conditionals
(switch_statement
body: (switch_block
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "conditional.inner" @_start @_end)))
(switch_statement) @conditional.outer
(if_statement
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "conditional.inner" @_start @_end)))
(if_statement) @conditional.outer
(else_clause
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "conditional.inner" @_start @_end)))
(else_if_clause
body: (compound_statement
.
"{"
.
(_) @_start @_end
(_)? @_end
.
"}"
(#make-range! "conditional.inner" @_start @_end)))
; blocks
(_
(switch_block) @block.inner) @block.outer
; parameters
(arguments
"," @_start
.
(_) @parameter.inner
(#make-range! "parameter.outer" @_start @parameter.inner))
(arguments
.
(_) @parameter.inner
.
","? @_end
(#make-range! "parameter.outer" @parameter.inner @_end))
(formal_parameters
"," @_start
.
(_) @parameter.inner
(#make-range! "parameter.outer" @_start @parameter.inner))
(formal_parameters
.
(_) @parameter.inner
.
","? @_end
(#make-range! "parameter.outer" @parameter.inner @_end))
; comments
(comment) @comment.outer
; call
(function_call_expression) @call.outer
(member_call_expression) @call.outer
(nullsafe_member_call_expression) @call.outer
(scoped_call_expression) @call.outer
(function_call_expression
arguments: (arguments
.
"("
.
(_) @_start
(_)? @_end
.
")"
(#make-range! "call.inner" @_start @_end)))
(member_call_expression
arguments: (arguments
.
"("
.
(_) @_start
(_)? @_end
.
")"
(#make-range! "call.inner" @_start @_end)))
(nullsafe_member_call_expression
arguments: (arguments
.
"("
.
(_) @_start
(_)? @_end
.
")"
(#make-range! "call.inner" @_start @_end)))
(scoped_call_expression
arguments: (arguments
.
"("
.
(_) @_start
(_)? @_end
.
")"
(#make-range! "call.inner" @_start @_end)))
; statement
[
(expression_statement)
(declare_statement)
(return_statement)
(namespace_use_declaration)
(namespace_definition)
(if_statement)
(empty_statement)
(switch_statement)
(while_statement)
(do_statement)
(for_statement)
(foreach_statement)
(goto_statement)
(continue_statement)
(break_statement)
(try_statement)
(echo_statement)
(unset_statement)
(const_declaration)
(function_definition)
(class_declaration)
(interface_declaration)
(trait_declaration)
(enum_declaration)
(global_declaration)
(function_static_declaration)
] @statement.outer