outline.scm

  1(preproc_def
  2    "#define" @context
  3    name: (_) @name) @item
  4
  5(preproc_function_def
  6    "#define" @context
  7    name: (_) @name
  8    parameters: (preproc_params
  9        "(" @context
 10        ")" @context)) @item
 11
 12(type_definition
 13    "typedef" @context
 14    declarator: (_) @name) @item
 15
 16(struct_specifier
 17    "struct" @context
 18    name: (_) @name) @item
 19
 20(class_specifier
 21    "class" @context
 22    name: (_) @name) @item
 23
 24(enum_specifier
 25    "enum" @context
 26    name: (_) @name) @item
 27
 28(enumerator
 29    name: (_) @name) @item
 30
 31(declaration
 32    (storage_class_specifier) @context
 33    (type_qualifier)? @context
 34    type: (_) @context
 35    declarator: (init_declarator
 36      declarator: (_) @name)) @item
 37
 38(function_definition
 39    (type_qualifier)? @context
 40    type: (_)? @context
 41    declarator: [
 42        (function_declarator
 43            declarator: (_) @name
 44            parameters: (parameter_list
 45                "(" @context
 46                ")" @context))
 47        (pointer_declarator
 48            "*" @context
 49            declarator: (function_declarator
 50                declarator: (_) @name
 51                parameters: (parameter_list
 52                    "(" @context
 53                    ")" @context)))
 54        (pointer_declarator
 55            "*" @context
 56            declarator: (pointer_declarator
 57                "*" @context
 58                declarator: (function_declarator
 59                    declarator: (_) @name
 60                    parameters: (parameter_list
 61                        "(" @context
 62                        ")" @context))))
 63        (reference_declarator
 64            ["&" "&&"] @context
 65            (function_declarator
 66                declarator: (_) @name
 67                parameters: (parameter_list
 68                    "(" @context
 69                    ")" @context)))
 70    ]
 71    (type_qualifier)? @context) @item
 72
 73(declaration
 74    (type_qualifier)? @context
 75    type: (_)? @context
 76    declarator: [
 77        (field_identifier) @name
 78        (pointer_declarator
 79            "*" @context
 80            declarator: (field_identifier) @name)
 81        (function_declarator
 82            declarator: (_) @name
 83            parameters: (parameter_list
 84                "(" @context
 85                ")" @context))
 86        (pointer_declarator
 87            "*" @context
 88            declarator: (function_declarator
 89                declarator: (_) @name
 90                parameters: (parameter_list
 91                    "(" @context
 92                    ")" @context)))
 93        (pointer_declarator
 94            "*" @context
 95            declarator: (pointer_declarator
 96                "*" @context
 97                declarator: (function_declarator
 98                    declarator: (_) @name
 99                    parameters: (parameter_list
100                        "(" @context
101                        ")" @context))))
102        (reference_declarator
103            ["&" "&&"] @context
104            (function_declarator
105                declarator: (_) @name
106                parameters: (parameter_list
107                    "(" @context
108                    ")" @context)))
109    ]
110    (type_qualifier)? @context) @item
111
112(field_declaration
113    (type_qualifier)? @context
114    type: (_) @context
115    declarator: [
116        (field_identifier) @name
117        (pointer_declarator
118            "*" @context
119            declarator: (field_identifier) @name)
120        (function_declarator
121            declarator: (_) @name
122            parameters: (parameter_list
123                "(" @context
124                ")" @context))
125        (pointer_declarator
126            "*" @context
127            declarator: (function_declarator
128                declarator: (_) @name
129                parameters: (parameter_list
130                    "(" @context
131                    ")" @context)))
132        (pointer_declarator
133            "*" @context
134            declarator: (pointer_declarator
135                "*" @context
136                declarator: (function_declarator
137                    declarator: (_) @name
138                    parameters: (parameter_list
139                        "(" @context
140                        ")" @context))))
141        (reference_declarator
142            ["&" "&&"] @context
143            (function_declarator
144                declarator: (_) @name
145                parameters: (parameter_list
146                    "(" @context
147                    ")" @context)))
148    ]
149    (type_qualifier)? @context) @item
150
151(comment) @annotation