outline.scm

 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