1(internal_module
2 "namespace" @context
3 name: (_) @name) @item
4
5(enum_declaration
6 "enum" @context
7 name: (_) @name) @item
8
9(function_declaration
10 "async"? @context
11 "function" @context
12 name: (_) @name
13 parameters: (formal_parameters
14 "(" @context
15 ")" @context)) @item
16
17(interface_declaration
18 "interface" @context
19 name: (_) @name) @item
20
21(program
22 (export_statement
23 (lexical_declaration
24 ["let" "const"] @context
25 (variable_declarator
26 name: (_) @name) @item)))
27
28(program
29 (lexical_declaration
30 ["let" "const"] @context
31 (variable_declarator
32 name: (_) @name) @item))
33
34(class_declaration
35 "class" @context
36 name: (_) @name) @item
37
38(method_definition
39 [
40 "get"
41 "set"
42 "async"
43 "*"
44 "readonly"
45 "static"
46 (override_modifier)
47 (accessibility_modifier)
48 ]* @context
49 name: (_) @name
50 parameters: (formal_parameters
51 "(" @context
52 ")" @context)) @item
53
54(public_field_definition
55 [
56 "declare"
57 "readonly"
58 "abstract"
59 "static"
60 (accessibility_modifier)
61 ]* @context
62 name: (_) @name) @item
63
64; Add support for (node:test, bun:test and Jest) runnable
65(
66 (call_expression
67 function: [
68 (identifier) @_name
69 (member_expression
70 object: [
71 (identifier) @_name
72 (member_expression object: (identifier) @_name)
73 ]
74 )
75 ] @context
76 (#any-of? @_name "it" "test" "describe" "context" "suite")
77 arguments: (
78 arguments . (string (string_fragment) @name)
79 )
80 )
81) @item
82
83(comment) @annotation