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(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