(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 (expression body fallback) ([ (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)) (function_signature) @function.around (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 (interface_declaration body: (_ "{" [ (_) ";"? ]* @class.inside "}")) @class.around (enum_declaration body: (_ "{" [ (_) ","? ]* @class.inside "}")) @class.around (ambient_declaration (module body: (_ "{" [ (_) ";"? ]* @class.inside "}"))) @class.around (internal_module body: (_ "{" [ (_) ";"? ]* @class.inside "}")) @class.around (type_alias_declaration) @class.around