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(method_definition
42 [
43 "get"
44 "set"
45 "async"
46 "*"
47 "readonly"
48 "static"
49 (override_modifier)
50 (accessibility_modifier)
51 ]* @context
52 name: (_) @name
53 parameters: (formal_parameters
54 "(" @context
55 ")" @context)) @item
56
57(public_field_definition
58 [
59 "declare"
60 "readonly"
61 "abstract"
62 "static"
63 (accessibility_modifier)
64 ]* @context
65 name: (_) @name) @item
66
67; Add support for (node:test, bun:test and Jest) runnable
68(call_expression
69 function: (_) @context
70 (#any-of? @context "it" "test" "describe")
71 arguments: (
72 arguments . (string
73 (string_fragment) @name
74 )
75 )
76) @item
77
78(comment) @annotation