152 lines
2.8 KiB
Scheme
152 lines
2.8 KiB
Scheme
(declaration
|
|
declarator: (function_declarator)) @function.outer
|
|
|
|
(function_definition
|
|
body: (compound_statement)) @function.outer
|
|
|
|
(function_definition
|
|
body: (compound_statement
|
|
.
|
|
"{"
|
|
_+ @function.inner
|
|
"}"))
|
|
|
|
(struct_specifier
|
|
body: (_) @class.inner) @class.outer
|
|
|
|
(enum_specifier
|
|
body: (_) @class.inner) @class.outer
|
|
|
|
; conditionals
|
|
(if_statement
|
|
consequence: (compound_statement
|
|
.
|
|
"{"
|
|
_+ @conditional.inner
|
|
"}")) @conditional.outer
|
|
|
|
(if_statement
|
|
alternative: (else_clause
|
|
(compound_statement
|
|
.
|
|
"{"
|
|
_+ @conditional.inner
|
|
"}"))) @conditional.outer
|
|
|
|
(if_statement) @conditional.outer
|
|
|
|
(if_statement
|
|
condition: (_) @conditional.inner
|
|
(#offset! @conditional.inner 0 1 0 -1))
|
|
|
|
(while_statement
|
|
condition: (_) @conditional.inner
|
|
(#offset! @conditional.inner 0 1 0 -1))
|
|
|
|
(do_statement
|
|
condition: (_) @conditional.inner
|
|
(#offset! @conditional.inner 0 1 0 -1))
|
|
|
|
(for_statement
|
|
condition: (_) @conditional.inner)
|
|
|
|
; loops
|
|
(while_statement) @loop.outer
|
|
|
|
(while_statement
|
|
body: (compound_statement
|
|
.
|
|
"{"
|
|
_+ @loop.inner
|
|
"}")) @loop.outer
|
|
|
|
(for_statement) @loop.outer
|
|
|
|
(for_statement
|
|
body: (compound_statement
|
|
.
|
|
"{"
|
|
_+ @loop.inner
|
|
"}")) @loop.outer
|
|
|
|
(do_statement) @loop.outer
|
|
|
|
(do_statement
|
|
body: (compound_statement
|
|
.
|
|
"{"
|
|
_+ @loop.inner
|
|
"}")) @loop.outer
|
|
|
|
(compound_statement) @block.outer
|
|
|
|
(comment) @comment.outer
|
|
|
|
(call_expression) @call.outer
|
|
|
|
(call_expression
|
|
arguments: (argument_list
|
|
.
|
|
"("
|
|
_+ @call.inner
|
|
")"))
|
|
|
|
(return_statement
|
|
(_)? @return.inner) @return.outer
|
|
|
|
; Statements
|
|
;(expression_statement ;; this is what we actually want to capture in most cases (";" is missing) probably
|
|
;(_) @statement.inner) ;; the other statement like node type is declaration but declaration has a ";"
|
|
(compound_statement
|
|
(_) @statement.outer)
|
|
|
|
(field_declaration_list
|
|
(_) @statement.outer)
|
|
|
|
(preproc_if
|
|
(_) @statement.outer)
|
|
|
|
(preproc_elif
|
|
(_) @statement.outer)
|
|
|
|
(preproc_else
|
|
(_) @statement.outer)
|
|
|
|
(parameter_list
|
|
"," @parameter.outer
|
|
.
|
|
(parameter_declaration) @parameter.inner @parameter.outer)
|
|
|
|
(parameter_list
|
|
.
|
|
(parameter_declaration) @parameter.inner @parameter.outer
|
|
.
|
|
","? @parameter.outer)
|
|
|
|
(argument_list
|
|
"," @parameter.outer
|
|
.
|
|
(_) @parameter.inner @parameter.outer)
|
|
|
|
(argument_list
|
|
.
|
|
(_) @parameter.inner @parameter.outer
|
|
.
|
|
","? @parameter.outer)
|
|
|
|
(number_literal) @number.inner
|
|
|
|
(declaration
|
|
declarator: (init_declarator
|
|
declarator: (_) @assignment.lhs
|
|
value: (_) @assignment.rhs) @assignment.inner) @assignment.outer
|
|
|
|
(declaration
|
|
type: (primitive_type)
|
|
declarator: (_) @assignment.inner)
|
|
|
|
(expression_statement
|
|
(assignment_expression
|
|
left: (_) @assignment.lhs
|
|
right: (_) @assignment.rhs) @assignment.inner) @assignment.outer
|