highlights.scm

  1(identifier) @variable
  2
  3(field_identifier) @property
  4
  5(namespace_identifier) @namespace
  6
  7(concept_definition
  8  name: (identifier) @concept)
  9
 10(requires_clause
 11  constraint: (template_type
 12    name: (type_identifier) @concept))
 13
 14(module_name
 15  (identifier) @module)
 16
 17(module_declaration
 18  name: (module_name
 19    (identifier) @module))
 20
 21(import_declaration
 22  name: (module_name
 23    (identifier) @module))
 24
 25(import_declaration
 26  partition: (module_partition
 27    (module_name
 28      (identifier) @module)))
 29
 30(call_expression
 31  function: (qualified_identifier
 32    name: (identifier) @function))
 33
 34(call_expression
 35  (qualified_identifier
 36    (identifier) @function.call))
 37
 38(call_expression
 39  (qualified_identifier
 40    (qualified_identifier
 41      (identifier) @function.call)))
 42
 43(call_expression
 44  (qualified_identifier
 45    (qualified_identifier
 46      (qualified_identifier
 47        (identifier) @function.call))))
 48
 49((qualified_identifier
 50  (qualified_identifier
 51    (qualified_identifier
 52      (qualified_identifier
 53        (identifier) @function.call)))) @_parent
 54  (#has-ancestor? @_parent call_expression))
 55
 56(call_expression
 57  function: (identifier) @function)
 58
 59(call_expression
 60  function: (field_expression
 61    field: (field_identifier) @function))
 62
 63(preproc_function_def
 64  name: (identifier) @function.special)
 65
 66(template_function
 67  name: (identifier) @function)
 68
 69(template_method
 70  name: (field_identifier) @function)
 71
 72(function_declarator
 73  declarator: (identifier) @function)
 74
 75(function_declarator
 76  declarator: (qualified_identifier
 77    name: (identifier) @function))
 78
 79(function_declarator
 80  declarator: (field_identifier) @function)
 81
 82(operator_name
 83  (identifier)? @operator) @function
 84
 85(operator_name
 86  "<=>" @operator.spaceship)
 87
 88(destructor_name
 89  (identifier) @function)
 90
 91((namespace_identifier) @type
 92  (#match? @type "^[A-Z]"))
 93
 94(auto) @type
 95
 96(type_identifier) @type
 97
 98type: (primitive_type) @type.builtin
 99
100(sized_type_specifier) @type.builtin
101
102; GNU __attribute__
103(attribute_specifier) @attribute
104
105(attribute_specifier
106  (argument_list
107    (identifier) @attribute))
108
109; C++11 [[attributes]]
110(attribute
111  prefix: (identifier) @attribute)
112
113(attribute
114  name: (identifier) @attribute)
115
116((identifier) @constant.builtin
117  (#match? @constant.builtin "^_*[A-Z][A-Z\\d_]*$"))
118
119(statement_identifier) @label
120
121(this) @variable.builtin
122
123"static_assert" @function.builtin
124
125[
126  "alignas"
127  "alignof"
128  "class"
129  "concept"
130  "consteval"
131  "constexpr"
132  "constinit"
133  "decltype"
134  "delete"
135  "enum"
136  "explicit"
137  "export"
138  "extern"
139  "final"
140  "friend"
141  "import"
142  "inline"
143  "module"
144  "namespace"
145  "new"
146  "noexcept"
147  "operator"
148  "override"
149  "private"
150  "protected"
151  "public"
152  "requires"
153  "sizeof"
154  "struct"
155  "template"
156  "thread_local"
157  "typedef"
158  "typename"
159  "union"
160  "using"
161  "virtual"
162  (storage_class_specifier)
163  (type_qualifier)
164] @keyword
165
166[
167  "break"
168  "case"
169  "catch"
170  "co_await"
171  "co_return"
172  "co_yield"
173  "continue"
174  "default"
175  "do"
176  "else"
177  "for"
178  "goto"
179  "if"
180  "return"
181  "switch"
182  "throw"
183  "try"
184  "while"
185] @keyword.control
186
187[
188  "#define"
189  "#elif"
190  "#elifdef"
191  "#elifndef"
192  "#else"
193  "#endif"
194  "#if"
195  "#ifdef"
196  "#ifndef"
197  "#include"
198  (preproc_directive)
199] @preproc
200
201(comment) @comment
202
203[
204  (true)
205  (false)
206] @boolean
207
208[
209  (null)
210  "nullptr"
211] @constant.builtin
212
213(number_literal) @number
214
215[
216  (string_literal)
217  (system_lib_string)
218  (char_literal)
219  (raw_string_literal)
220] @string
221
222(escape_sequence) @string.escape
223
224[
225  ","
226  ":"
227  "::"
228  ";"
229  (raw_string_delimiter)
230] @punctuation.delimiter
231
232[
233  "{"
234  "}"
235  "("
236  ")"
237  "["
238  "]"
239] @punctuation.bracket
240
241[
242  "."
243  ".*"
244  "->*"
245  "~"
246  "-"
247  "--"
248  "-="
249  "->"
250  "="
251  "!"
252  "!="
253  "|"
254  "|="
255  "||"
256  "^"
257  "^="
258  "&"
259  "&="
260  "&&"
261  "+"
262  "++"
263  "+="
264  "*"
265  "*="
266  "/"
267  "/="
268  "%"
269  "%="
270  "<<"
271  "<<="
272  ">>"
273  ">>="
274  "<"
275  "=="
276  ">"
277  "<="
278  ">="
279  "?"
280  "and"
281  "and_eq"
282  "bitand"
283  "bitor"
284  "compl"
285  "not"
286  "not_eq"
287  "or"
288  "or_eq"
289  "xor"
290  "xor_eq"
291] @operator
292
293"<=>" @operator.spaceship
294
295(binary_expression
296  operator: "<=>" @operator.spaceship)
297
298(conditional_expression
299  ":" @operator)
300
301(user_defined_literal
302  (literal_suffix) @operator)