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