(comment)+ @comment.around (function_declaration body: (_ "{" (_)* @function.inside "}")) @function.around (method_definition body: (_ "{" (_)* @function.inside "}")) @function.around (function_expression body: (_ "{" (_)* @function.inside "}")) @function.around ((arrow_function body: (statement_block "{" (_)* @function.inside "}")) @function.around (#not-has-parent? @function.around variable_declarator)) ; Arrow function in variable declaration - capture the full declaration([ (lexical_declaration (variable_declarator value: (arrow_function body: (statement_block "{" (_)* @function.inside "}")))) (variable_declaration (variable_declarator value: (arrow_function body: (statement_block "{" (_)* @function.inside "}"))))]) @function.around ; Arrow function in variable declaration (captures body for expression-bodied arrows)([ (lexical_declaration (variable_declarator value: (arrow_function body: (_) @function.inside))) (variable_declaration (variable_declarator value: (arrow_function body: (_) @function.inside)))]) @function.around ; Catch-all for arrow functions in other contexts (callbacks, etc.)((arrow_function body: (_) @function.inside) @function.around (#not-has-parent? @function.around variable_declarator)) (generator_function body: (_ "{" (_)* @function.inside "}")) @function.around (generator_function_declaration body: (_ "{" (_)* @function.inside "}")) @function.around (class_declaration body: (_ "{" [ (_) ";"? ]* @class.inside "}")) @class.around (class body: (_ "{" [ (_) ";"? ]* @class.inside "}")) @class.around
(comment)+ @comment.around
(function_declaration
body: (_
"{"
(_)* @function.inside
"}")) @function.around
(method_definition
body: (_
"{"
(_)* @function.inside
"}")) @function.around
(function_expression
body: (_
"{"
(_)* @function.inside
"}")) @function.around
((arrow_function
body: (statement_block
"{"
(_)* @function.inside
"}")) @function.around
(#not-has-parent? @function.around variable_declarator))
; Arrow function in variable declaration - capture the full declaration
([
(lexical_declaration
(variable_declarator
value: (arrow_function
body: (statement_block
"{"
(_)* @function.inside
"}"))))
(variable_declaration
(variable_declarator
value: (arrow_function
body: (statement_block
"{"
(_)* @function.inside
"}"))))
]) @function.around
; Arrow function in variable declaration (captures body for expression-bodied arrows)
([
(lexical_declaration
(variable_declarator
value: (arrow_function
body: (_) @function.inside)))
(variable_declaration
(variable_declarator
value: (arrow_function
body: (_) @function.inside)))
]) @function.around
; Catch-all for arrow functions in other contexts (callbacks, etc.)
((arrow_function
body: (_) @function.inside) @function.around
(#not-has-parent? @function.around variable_declarator))
(generator_function
body: (_
"{"
(_)* @function.inside
"}")) @function.around
(generator_function_declaration
body: (_
"{"
(_)* @function.inside
"}")) @function.around
(class_declaration
body: (_
"{"
[
(_)
";"?
]* @class.inside
"}")) @class.around
(class
body: (_
"{"
[
(_)
";"?
]* @class.inside
"}")) @class.around