Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json
3314 views
1
{
2
"information_for_contributors": [
3
"This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.embedded.macro.tmLanguage.json",
4
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
5
"Once accepted there, we are happy to receive an update request."
6
],
7
"version": "https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6",
8
"name": "C++",
9
"scopeName": "source.cpp.embedded.macro",
10
"patterns": [
11
{
12
"include": "#ever_present_context"
13
},
14
{
15
"include": "#constructor_root"
16
},
17
{
18
"include": "#destructor_root"
19
},
20
{
21
"include": "#function_definition"
22
},
23
{
24
"include": "#operator_overload"
25
},
26
{
27
"include": "#using_namespace"
28
},
29
{
30
"include": "source.cpp#type_alias"
31
},
32
{
33
"include": "source.cpp#using_name"
34
},
35
{
36
"include": "source.cpp#namespace_alias"
37
},
38
{
39
"include": "#namespace_block"
40
},
41
{
42
"include": "#extern_block"
43
},
44
{
45
"include": "#typedef_class"
46
},
47
{
48
"include": "#typedef_struct"
49
},
50
{
51
"include": "#typedef_union"
52
},
53
{
54
"include": "source.cpp#misc_keywords"
55
},
56
{
57
"include": "source.cpp#standard_declares"
58
},
59
{
60
"include": "#class_block"
61
},
62
{
63
"include": "#struct_block"
64
},
65
{
66
"include": "#union_block"
67
},
68
{
69
"include": "#enum_block"
70
},
71
{
72
"include": "source.cpp#template_isolated_definition"
73
},
74
{
75
"include": "#template_definition"
76
},
77
{
78
"include": "source.cpp#template_explicit_instantiation"
79
},
80
{
81
"include": "source.cpp#access_control_keywords"
82
},
83
{
84
"include": "#block"
85
},
86
{
87
"include": "#static_assert"
88
},
89
{
90
"include": "#assembly"
91
},
92
{
93
"include": "#function_pointer"
94
},
95
{
96
"include": "#evaluation_context"
97
}
98
],
99
"repository": {
100
"alignas_attribute": {
101
"begin": "alignas\\(",
102
"end": "\\)|(?=(?<!\\\\)\n)",
103
"beginCaptures": {
104
"0": {
105
"name": "punctuation.section.attribute.begin.cpp"
106
}
107
},
108
"endCaptures": {
109
"0": {
110
"name": "punctuation.section.attribute.end.cpp"
111
}
112
},
113
"name": "support.other.attribute.cpp",
114
"patterns": [
115
{
116
"include": "#attributes_context"
117
},
118
{
119
"begin": "\\(",
120
"end": "\\)|(?=(?<!\\\\)\n)",
121
"beginCaptures": {},
122
"endCaptures": {},
123
"patterns": [
124
{
125
"include": "#attributes_context"
126
},
127
{
128
"include": "#string_context"
129
},
130
{
131
"include": "#ever_present_context"
132
}
133
]
134
},
135
{
136
"match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
137
"captures": {
138
"1": {
139
"name": "keyword.other.using.directive.cpp"
140
},
141
"2": {
142
"name": "entity.name.namespace.cpp"
143
}
144
}
145
},
146
{
147
"match": ",",
148
"name": "punctuation.separator.attribute.cpp"
149
},
150
{
151
"match": ":",
152
"name": "punctuation.accessor.attribute.cpp"
153
},
154
{
155
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
156
"name": "entity.name.namespace.cpp"
157
},
158
{
159
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
160
"name": "entity.other.attribute.$0.cpp"
161
},
162
{
163
"include": "source.cpp#number_literal"
164
},
165
{
166
"include": "#ever_present_context"
167
}
168
]
169
},
170
"alignas_operator": {
171
"begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
172
"end": "\\)|(?=(?<!\\\\)\n)",
173
"beginCaptures": {
174
"1": {
175
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
176
},
177
"2": {
178
"patterns": [
179
{
180
"include": "source.cpp#inline_comment"
181
}
182
]
183
},
184
"3": {
185
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
186
},
187
"4": {
188
"name": "comment.block.cpp"
189
},
190
"5": {
191
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
192
},
193
"6": {
194
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
195
}
196
},
197
"endCaptures": {
198
"0": {
199
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
200
}
201
},
202
"contentName": "meta.arguments.operator.alignas",
203
"patterns": [
204
{
205
"include": "#evaluation_context"
206
}
207
]
208
},
209
"alignof_operator": {
210
"begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
211
"end": "\\)|(?=(?<!\\\\)\n)",
212
"beginCaptures": {
213
"1": {
214
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
215
},
216
"2": {
217
"patterns": [
218
{
219
"include": "source.cpp#inline_comment"
220
}
221
]
222
},
223
"3": {
224
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
225
},
226
"4": {
227
"name": "comment.block.cpp"
228
},
229
"5": {
230
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
231
},
232
"6": {
233
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
234
}
235
},
236
"endCaptures": {
237
"0": {
238
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
239
}
240
},
241
"contentName": "meta.arguments.operator.alignof",
242
"patterns": [
243
{
244
"include": "#evaluation_context"
245
}
246
]
247
},
248
"assembly": {
249
"begin": "(\\b(?:__asm__|asm)\\b)(?:\\s+)?((?:volatile)?)",
250
"end": "(?!\\G)|(?=(?<!\\\\)\n)",
251
"beginCaptures": {
252
"1": {
253
"name": "storage.type.asm.cpp"
254
},
255
"2": {
256
"name": "storage.modifier.cpp"
257
}
258
},
259
"endCaptures": {},
260
"name": "meta.asm.cpp",
261
"patterns": [
262
{
263
"match": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\n|$)",
264
"captures": {
265
"1": {
266
"patterns": [
267
{
268
"include": "source.cpp#inline_comment"
269
}
270
]
271
},
272
"2": {
273
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
274
},
275
"3": {
276
"name": "comment.block.cpp"
277
},
278
"4": {
279
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
280
}
281
}
282
},
283
{
284
"include": "#comments"
285
},
286
{
287
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\(",
288
"end": "\\)|(?=(?<!\\\\)\n)",
289
"beginCaptures": {
290
"0": {
291
"name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
292
},
293
"1": {
294
"patterns": [
295
{
296
"include": "source.cpp#inline_comment"
297
}
298
]
299
},
300
"2": {
301
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
302
},
303
"3": {
304
"name": "comment.block.cpp"
305
},
306
"4": {
307
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
308
}
309
},
310
"endCaptures": {
311
"0": {
312
"name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
313
}
314
},
315
"patterns": [
316
{
317
"begin": "(R?)(\")",
318
"end": "\"|(?=(?<!\\\\)\n)",
319
"beginCaptures": {
320
"1": {
321
"name": "meta.encoding.cpp"
322
},
323
"2": {
324
"name": "punctuation.definition.string.begin.assembly.cpp"
325
}
326
},
327
"endCaptures": {
328
"0": {
329
"name": "punctuation.definition.string.end.assembly.cpp"
330
}
331
},
332
"name": "string.quoted.double.cpp",
333
"contentName": "meta.embedded.assembly",
334
"patterns": [
335
{
336
"include": "source.asm"
337
},
338
{
339
"include": "source.x86"
340
},
341
{
342
"include": "source.x86_64"
343
},
344
{
345
"include": "source.arm"
346
},
347
{
348
"include": "source.cpp#backslash_escapes"
349
},
350
{
351
"include": "#string_escaped_char"
352
}
353
]
354
},
355
{
356
"begin": "\\(",
357
"end": "\\)|(?=(?<!\\\\)\n)",
358
"beginCaptures": {
359
"0": {
360
"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
361
}
362
},
363
"endCaptures": {
364
"0": {
365
"name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
366
}
367
},
368
"patterns": [
369
{
370
"include": "#evaluation_context"
371
}
372
]
373
},
374
{
375
"match": "\\[((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]",
376
"captures": {
377
"1": {
378
"patterns": [
379
{
380
"include": "source.cpp#inline_comment"
381
}
382
]
383
},
384
"2": {
385
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
386
},
387
"3": {
388
"name": "comment.block.cpp"
389
},
390
"4": {
391
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
392
},
393
"5": {
394
"name": "variable.other.asm.label.cpp"
395
},
396
"6": {
397
"patterns": [
398
{
399
"include": "source.cpp#inline_comment"
400
}
401
]
402
},
403
"7": {
404
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
405
},
406
"8": {
407
"name": "comment.block.cpp"
408
},
409
"9": {
410
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
411
}
412
}
413
},
414
{
415
"match": ":",
416
"name": "punctuation.separator.delimiter.colon.assembly.cpp"
417
},
418
{
419
"include": "#comments"
420
}
421
]
422
}
423
]
424
},
425
"attributes_context": {
426
"patterns": [
427
{
428
"include": "#cpp_attributes"
429
},
430
{
431
"include": "#gcc_attributes"
432
},
433
{
434
"include": "#ms_attributes"
435
},
436
{
437
"include": "#alignas_attribute"
438
}
439
]
440
},
441
"block": {
442
"begin": "{",
443
"end": "}|(?=(?<!\\\\)\n)",
444
"beginCaptures": {
445
"0": {
446
"name": "punctuation.section.block.begin.bracket.curly.cpp"
447
}
448
},
449
"endCaptures": {
450
"0": {
451
"name": "punctuation.section.block.end.bracket.curly.cpp"
452
}
453
},
454
"name": "meta.block.cpp",
455
"patterns": [
456
{
457
"include": "#function_body_context"
458
}
459
]
460
},
461
"block_comment": {
462
"begin": "\\s*+(\\/\\*)",
463
"end": "\\*\\/|(?=(?<!\\\\)\n)",
464
"beginCaptures": {
465
"1": {
466
"name": "punctuation.definition.comment.begin.cpp"
467
}
468
},
469
"endCaptures": {
470
"0": {
471
"name": "punctuation.definition.comment.end.cpp"
472
}
473
},
474
"name": "comment.block.cpp"
475
},
476
"builtin_storage_type_initilizer": {
477
"begin": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)\\s*+(?<!\\w)(\\()",
478
"end": "\\)|(?=(?<!\\\\)\n)",
479
"beginCaptures": {
480
"1": {
481
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
482
},
483
"2": {
484
"name": "storage.type.cpp storage.type.built-in.cpp"
485
},
486
"3": {
487
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
488
},
489
"4": {
490
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
491
},
492
"5": {
493
"name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp"
494
}
495
},
496
"endCaptures": {
497
"0": {
498
"name": "punctuation.section.arguments.end.bracket.round.initializer.cpp"
499
}
500
},
501
"patterns": [
502
{
503
"include": "#evaluation_context"
504
}
505
]
506
},
507
"case_statement": {
508
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)case(?!\\w))",
509
"end": ":|(?=(?<!\\\\)\n)",
510
"beginCaptures": {
511
"1": {
512
"patterns": [
513
{
514
"include": "source.cpp#inline_comment"
515
}
516
]
517
},
518
"2": {
519
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
520
},
521
"3": {
522
"name": "comment.block.cpp"
523
},
524
"4": {
525
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
526
},
527
"5": {
528
"name": "keyword.control.case.cpp"
529
}
530
},
531
"endCaptures": {
532
"0": {
533
"name": "punctuation.separator.colon.case.cpp"
534
}
535
},
536
"name": "meta.conditional.case.cpp",
537
"patterns": [
538
{
539
"include": "#evaluation_context"
540
}
541
]
542
},
543
"class_block": {
544
"begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)",
545
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
546
"beginCaptures": {
547
"0": {
548
"name": "meta.head.class.cpp"
549
},
550
"1": {
551
"name": "storage.type.$1.cpp"
552
},
553
"2": {
554
"patterns": [
555
{
556
"include": "source.cpp#inline_comment"
557
}
558
]
559
},
560
"3": {
561
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
562
},
563
"4": {
564
"name": "comment.block.cpp"
565
},
566
"5": {
567
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
568
},
569
"6": {
570
"patterns": [
571
{
572
"include": "#attributes_context"
573
},
574
{
575
"include": "source.cpp#number_literal"
576
}
577
]
578
},
579
"7": {
580
"patterns": [
581
{
582
"include": "source.cpp#inline_comment"
583
}
584
]
585
},
586
"8": {
587
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
588
},
589
"9": {
590
"name": "comment.block.cpp"
591
},
592
"10": {
593
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
594
},
595
"11": {
596
"patterns": [
597
{
598
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
599
"captures": {
600
"1": {
601
"name": "storage.type.modifier.final.cpp"
602
},
603
"2": {
604
"patterns": [
605
{
606
"include": "source.cpp#inline_comment"
607
}
608
]
609
},
610
"3": {
611
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
612
},
613
"4": {
614
"name": "comment.block.cpp"
615
},
616
"5": {
617
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
618
}
619
}
620
},
621
{
622
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)",
623
"captures": {
624
"1": {
625
"name": "entity.name.type.class.cpp"
626
},
627
"2": {
628
"patterns": [
629
{
630
"include": "source.cpp#inline_comment"
631
}
632
]
633
},
634
"3": {
635
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
636
},
637
"4": {
638
"name": "comment.block.cpp"
639
},
640
"5": {
641
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
642
},
643
"6": {
644
"name": "storage.type.modifier.final.cpp"
645
},
646
"7": {
647
"patterns": [
648
{
649
"include": "source.cpp#inline_comment"
650
}
651
]
652
},
653
"8": {
654
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
655
},
656
"9": {
657
"name": "comment.block.cpp"
658
},
659
"10": {
660
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
661
}
662
}
663
},
664
{
665
"match": "DLLEXPORT",
666
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
667
},
668
{
669
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
670
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
671
}
672
]
673
},
674
"12": {
675
"patterns": [
676
{
677
"include": "source.cpp#inline_comment"
678
}
679
]
680
},
681
"13": {
682
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
683
},
684
"14": {
685
"name": "comment.block.cpp"
686
},
687
"15": {
688
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
689
},
690
"16": {
691
"patterns": [
692
{
693
"include": "source.cpp#inline_comment"
694
}
695
]
696
},
697
"17": {
698
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
699
},
700
"18": {
701
"name": "comment.block.cpp"
702
},
703
"19": {
704
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
705
},
706
"20": {
707
"name": "punctuation.separator.colon.inheritance.cpp"
708
}
709
},
710
"endCaptures": {
711
"1": {
712
"name": "punctuation.terminator.statement.cpp"
713
},
714
"2": {
715
"name": "punctuation.terminator.statement.cpp"
716
}
717
},
718
"name": "meta.block.class.cpp",
719
"patterns": [
720
{
721
"begin": "\\G ?",
722
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
723
"beginCaptures": {},
724
"endCaptures": {
725
"0": {
726
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
727
}
728
},
729
"name": "meta.head.class.cpp",
730
"patterns": [
731
{
732
"include": "#ever_present_context"
733
},
734
{
735
"include": "#inheritance_context"
736
},
737
{
738
"include": "#template_call_range"
739
}
740
]
741
},
742
{
743
"begin": "(?<=\\{|<%|\\?\\?<)",
744
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
745
"beginCaptures": {},
746
"endCaptures": {
747
"0": {
748
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
749
}
750
},
751
"name": "meta.body.class.cpp",
752
"patterns": [
753
{
754
"include": "#function_pointer"
755
},
756
{
757
"include": "#static_assert"
758
},
759
{
760
"include": "#constructor_inline"
761
},
762
{
763
"include": "#destructor_inline"
764
},
765
{
766
"include": "$self"
767
}
768
]
769
},
770
{
771
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
772
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
773
"beginCaptures": {},
774
"endCaptures": {},
775
"name": "meta.tail.class.cpp",
776
"patterns": [
777
{
778
"include": "$self"
779
}
780
]
781
}
782
]
783
},
784
"comments": {
785
"patterns": [
786
{
787
"begin": "^(?:\\s+)?+(\\/\\/[!\\/]+)",
788
"end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)",
789
"beginCaptures": {
790
"1": {
791
"name": "punctuation.definition.comment.documentation.cpp"
792
}
793
},
794
"endCaptures": {},
795
"name": "comment.line.double-slash.documentation.cpp",
796
"patterns": [
797
{
798
"include": "source.cpp#line_continuation_character"
799
},
800
{
801
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
802
"name": "storage.type.class.doxygen.cpp"
803
},
804
{
805
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
806
"captures": {
807
"1": {
808
"name": "storage.type.class.doxygen.cpp"
809
},
810
"2": {
811
"name": "markup.italic.doxygen.cpp"
812
}
813
}
814
},
815
{
816
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
817
"captures": {
818
"1": {
819
"name": "storage.type.class.doxygen.cpp"
820
},
821
"2": {
822
"name": "markup.bold.doxygen.cpp"
823
}
824
}
825
},
826
{
827
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
828
"captures": {
829
"1": {
830
"name": "storage.type.class.doxygen.cpp"
831
},
832
"2": {
833
"name": "markup.inline.raw.string.cpp"
834
}
835
}
836
},
837
{
838
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
839
"name": "storage.type.class.doxygen.cpp"
840
},
841
{
842
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
843
"name": "storage.type.class.doxygen.cpp"
844
},
845
{
846
"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)",
847
"captures": {
848
"1": {
849
"name": "storage.type.class.doxygen.cpp"
850
},
851
"2": {
852
"patterns": [
853
{
854
"match": "in|out",
855
"name": "keyword.other.parameter.direction.$0.cpp"
856
}
857
]
858
},
859
"3": {
860
"patterns": [
861
{
862
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
863
"name": "variable.parameter.cpp"
864
},
865
{
866
"match": ",",
867
"name": "punctuation.cpp"
868
}
869
]
870
},
871
"4": {
872
"name": "variable.parameter.cpp"
873
},
874
"5": {
875
"name": "punctuation.cpp"
876
},
877
"6": {
878
"name": "variable.parameter.cpp"
879
}
880
}
881
},
882
{
883
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
884
"name": "storage.type.class.doxygen.cpp"
885
},
886
{
887
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
888
"name": "storage.type.class.doxygen.cpp"
889
},
890
{
891
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
892
"name": "storage.type.class.gtkdoc.cpp"
893
}
894
]
895
},
896
{
897
"match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
898
"captures": {
899
"1": {
900
"name": "punctuation.definition.comment.begin.documentation.cpp"
901
},
902
"2": {
903
"patterns": [
904
{
905
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
906
"name": "storage.type.class.doxygen.cpp"
907
},
908
{
909
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
910
"captures": {
911
"1": {
912
"name": "storage.type.class.doxygen.cpp"
913
},
914
"2": {
915
"name": "markup.italic.doxygen.cpp"
916
}
917
}
918
},
919
{
920
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
921
"captures": {
922
"1": {
923
"name": "storage.type.class.doxygen.cpp"
924
},
925
"2": {
926
"name": "markup.bold.doxygen.cpp"
927
}
928
}
929
},
930
{
931
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
932
"captures": {
933
"1": {
934
"name": "storage.type.class.doxygen.cpp"
935
},
936
"2": {
937
"name": "markup.inline.raw.string.cpp"
938
}
939
}
940
},
941
{
942
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
943
"name": "storage.type.class.doxygen.cpp"
944
},
945
{
946
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
947
"name": "storage.type.class.doxygen.cpp"
948
},
949
{
950
"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)",
951
"captures": {
952
"1": {
953
"name": "storage.type.class.doxygen.cpp"
954
},
955
"2": {
956
"patterns": [
957
{
958
"match": "in|out",
959
"name": "keyword.other.parameter.direction.$0.cpp"
960
}
961
]
962
},
963
"3": {
964
"patterns": [
965
{
966
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
967
"name": "variable.parameter.cpp"
968
},
969
{
970
"match": ",",
971
"name": "punctuation.cpp"
972
}
973
]
974
},
975
"4": {
976
"name": "variable.parameter.cpp"
977
},
978
"5": {
979
"name": "punctuation.cpp"
980
},
981
"6": {
982
"name": "variable.parameter.cpp"
983
}
984
}
985
},
986
{
987
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
988
"name": "storage.type.class.doxygen.cpp"
989
},
990
{
991
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
992
"name": "storage.type.class.doxygen.cpp"
993
},
994
{
995
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
996
"name": "storage.type.class.gtkdoc.cpp"
997
}
998
]
999
},
1000
"3": {
1001
"name": "punctuation.definition.comment.end.documentation.cpp"
1002
}
1003
},
1004
"name": "comment.block.documentation.cpp"
1005
},
1006
{
1007
"begin": "(?:\\s+)?+\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s))",
1008
"end": "[!*]*\\*\\/|(?=(?<!\\\\)\n)",
1009
"beginCaptures": {
1010
"0": {
1011
"name": "punctuation.definition.comment.begin.documentation.cpp"
1012
}
1013
},
1014
"endCaptures": {
1015
"0": {
1016
"name": "punctuation.definition.comment.end.documentation.cpp"
1017
}
1018
},
1019
"name": "comment.block.documentation.cpp",
1020
"patterns": [
1021
{
1022
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
1023
"name": "storage.type.class.doxygen.cpp"
1024
},
1025
{
1026
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
1027
"captures": {
1028
"1": {
1029
"name": "storage.type.class.doxygen.cpp"
1030
},
1031
"2": {
1032
"name": "markup.italic.doxygen.cpp"
1033
}
1034
}
1035
},
1036
{
1037
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
1038
"captures": {
1039
"1": {
1040
"name": "storage.type.class.doxygen.cpp"
1041
},
1042
"2": {
1043
"name": "markup.bold.doxygen.cpp"
1044
}
1045
}
1046
},
1047
{
1048
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
1049
"captures": {
1050
"1": {
1051
"name": "storage.type.class.doxygen.cpp"
1052
},
1053
"2": {
1054
"name": "markup.inline.raw.string.cpp"
1055
}
1056
}
1057
},
1058
{
1059
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
1060
"name": "storage.type.class.doxygen.cpp"
1061
},
1062
{
1063
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
1064
"name": "storage.type.class.doxygen.cpp"
1065
},
1066
{
1067
"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)",
1068
"captures": {
1069
"1": {
1070
"name": "storage.type.class.doxygen.cpp"
1071
},
1072
"2": {
1073
"patterns": [
1074
{
1075
"match": "in|out",
1076
"name": "keyword.other.parameter.direction.$0.cpp"
1077
}
1078
]
1079
},
1080
"3": {
1081
"patterns": [
1082
{
1083
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1084
"name": "variable.parameter.cpp"
1085
},
1086
{
1087
"match": ",",
1088
"name": "punctuation.cpp"
1089
}
1090
]
1091
},
1092
"4": {
1093
"name": "variable.parameter.cpp"
1094
},
1095
"5": {
1096
"name": "punctuation.cpp"
1097
},
1098
"6": {
1099
"name": "variable.parameter.cpp"
1100
}
1101
}
1102
},
1103
{
1104
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
1105
"name": "storage.type.class.doxygen.cpp"
1106
},
1107
{
1108
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
1109
"name": "storage.type.class.doxygen.cpp"
1110
},
1111
{
1112
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
1113
"name": "storage.type.class.gtkdoc.cpp"
1114
}
1115
]
1116
},
1117
{
1118
"include": "source.cpp#emacs_file_banner"
1119
},
1120
{
1121
"include": "#block_comment"
1122
},
1123
{
1124
"include": "#line_comment"
1125
},
1126
{
1127
"include": "source.cpp#invalid_comment_end"
1128
}
1129
]
1130
},
1131
"constructor_inline": {
1132
"begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",
1133
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
1134
"beginCaptures": {
1135
"0": {
1136
"name": "meta.head.function.definition.special.constructor.cpp"
1137
},
1138
"1": {
1139
"patterns": [
1140
{
1141
"include": "source.cpp#inline_comment"
1142
}
1143
]
1144
},
1145
"2": {
1146
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1147
},
1148
"3": {
1149
"name": "comment.block.cpp"
1150
},
1151
"4": {
1152
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1153
},
1154
"5": {
1155
"patterns": [
1156
{
1157
"include": "source.cpp#functional_specifiers_pre_parameters"
1158
}
1159
]
1160
},
1161
"6": {
1162
"patterns": [
1163
{
1164
"include": "source.cpp#inline_comment"
1165
}
1166
]
1167
},
1168
"7": {
1169
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1170
},
1171
"8": {
1172
"name": "comment.block.cpp"
1173
},
1174
"9": {
1175
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1176
},
1177
"10": {
1178
"name": "storage.type.modifier.calling-convention.cpp"
1179
},
1180
"11": {
1181
"patterns": [
1182
{
1183
"include": "source.cpp#inline_comment"
1184
}
1185
]
1186
},
1187
"12": {
1188
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1189
},
1190
"13": {
1191
"name": "comment.block.cpp"
1192
},
1193
"14": {
1194
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1195
},
1196
"15": {
1197
"name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
1198
}
1199
},
1200
"endCaptures": {},
1201
"name": "meta.function.definition.special.constructor.cpp",
1202
"patterns": [
1203
{
1204
"begin": "\\G ?",
1205
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
1206
"beginCaptures": {},
1207
"endCaptures": {
1208
"0": {
1209
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
1210
}
1211
},
1212
"name": "meta.head.function.definition.special.constructor.cpp",
1213
"patterns": [
1214
{
1215
"include": "#ever_present_context"
1216
},
1217
{
1218
"match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
1219
"captures": {
1220
"1": {
1221
"name": "keyword.operator.assignment.cpp"
1222
},
1223
"2": {
1224
"patterns": [
1225
{
1226
"include": "source.cpp#inline_comment"
1227
}
1228
]
1229
},
1230
"3": {
1231
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1232
},
1233
"4": {
1234
"name": "comment.block.cpp"
1235
},
1236
"5": {
1237
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1238
},
1239
"6": {
1240
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
1241
},
1242
"7": {
1243
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
1244
}
1245
}
1246
},
1247
{
1248
"include": "source.cpp#functional_specifiers_pre_parameters"
1249
},
1250
{
1251
"begin": ":",
1252
"end": "(?=\\{)|(?=(?<!\\\\)\n)",
1253
"beginCaptures": {
1254
"0": {
1255
"name": "punctuation.separator.initializers.cpp"
1256
}
1257
},
1258
"endCaptures": {},
1259
"patterns": [
1260
{
1261
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
1262
"end": "\\)|(?=(?<!\\\\)\n)",
1263
"beginCaptures": {
1264
"1": {
1265
"name": "entity.name.function.call.initializer.cpp"
1266
},
1267
"2": {
1268
"name": "meta.template.call.cpp",
1269
"patterns": [
1270
{
1271
"include": "#template_call_range"
1272
}
1273
]
1274
},
1275
"3": {},
1276
"4": {
1277
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1278
},
1279
"5": {
1280
"name": "comment.block.cpp"
1281
},
1282
"6": {
1283
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1284
},
1285
"7": {
1286
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1287
}
1288
},
1289
"endCaptures": {
1290
"0": {
1291
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1292
}
1293
},
1294
"contentName": "meta.parameter.initialization",
1295
"patterns": [
1296
{
1297
"include": "#evaluation_context"
1298
}
1299
]
1300
},
1301
{
1302
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",
1303
"end": "\\}|(?=(?<!\\\\)\n)",
1304
"beginCaptures": {
1305
"1": {
1306
"name": "entity.name.function.call.initializer.cpp"
1307
},
1308
"2": {
1309
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1310
}
1311
},
1312
"endCaptures": {
1313
"0": {
1314
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1315
}
1316
},
1317
"contentName": "meta.parameter.initialization",
1318
"patterns": [
1319
{
1320
"include": "#evaluation_context"
1321
}
1322
]
1323
},
1324
{
1325
"match": ",",
1326
"name": "punctuation.separator.delimiter.comma.cpp"
1327
},
1328
{
1329
"include": "#comments"
1330
}
1331
]
1332
},
1333
{
1334
"begin": "\\(",
1335
"end": "\\)|(?=(?<!\\\\)\n)",
1336
"beginCaptures": {
1337
"0": {
1338
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
1339
}
1340
},
1341
"endCaptures": {
1342
"0": {
1343
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
1344
}
1345
},
1346
"contentName": "meta.function.definition.parameters.special.constructor",
1347
"patterns": [
1348
{
1349
"include": "#function_parameter_context"
1350
},
1351
{
1352
"include": "#evaluation_context"
1353
}
1354
]
1355
},
1356
{
1357
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
1358
},
1359
{
1360
"include": "$self"
1361
}
1362
]
1363
},
1364
{
1365
"begin": "(?<=\\{|<%|\\?\\?<)",
1366
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
1367
"beginCaptures": {},
1368
"endCaptures": {
1369
"0": {
1370
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
1371
}
1372
},
1373
"name": "meta.body.function.definition.special.constructor.cpp",
1374
"patterns": [
1375
{
1376
"include": "#function_body_context"
1377
}
1378
]
1379
},
1380
{
1381
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
1382
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
1383
"beginCaptures": {},
1384
"endCaptures": {},
1385
"name": "meta.tail.function.definition.special.constructor.cpp",
1386
"patterns": [
1387
{
1388
"include": "$self"
1389
}
1390
]
1391
}
1392
]
1393
},
1394
"constructor_root": {
1395
"begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\10)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())",
1396
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
1397
"beginCaptures": {
1398
"0": {
1399
"name": "meta.head.function.definition.special.constructor.cpp"
1400
},
1401
"1": {
1402
"name": "storage.type.modifier.calling-convention.cpp"
1403
},
1404
"2": {
1405
"patterns": [
1406
{
1407
"include": "source.cpp#inline_comment"
1408
}
1409
]
1410
},
1411
"3": {
1412
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1413
},
1414
"4": {
1415
"name": "comment.block.cpp"
1416
},
1417
"5": {
1418
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1419
},
1420
"6": {
1421
"patterns": [
1422
{
1423
"match": "::",
1424
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
1425
},
1426
{
1427
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1428
"name": "entity.name.scope-resolution.constructor.cpp"
1429
},
1430
{
1431
"include": "#template_call_range"
1432
}
1433
]
1434
},
1435
"7": {
1436
"patterns": [
1437
{
1438
"include": "#template_call_range"
1439
}
1440
]
1441
},
1442
"8": {},
1443
"9": {
1444
"patterns": [
1445
{
1446
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",
1447
"name": "entity.name.type.constructor.cpp"
1448
},
1449
{
1450
"match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
1451
"name": "entity.name.function.definition.special.constructor.cpp"
1452
},
1453
{
1454
"match": "::",
1455
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
1456
}
1457
]
1458
},
1459
"10": {},
1460
"11": {
1461
"patterns": [
1462
{
1463
"include": "source.cpp#inline_comment"
1464
}
1465
]
1466
},
1467
"12": {
1468
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1469
},
1470
"13": {
1471
"name": "comment.block.cpp"
1472
},
1473
"14": {
1474
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1475
},
1476
"15": {
1477
"patterns": [
1478
{
1479
"include": "source.cpp#inline_comment"
1480
}
1481
]
1482
},
1483
"16": {
1484
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1485
},
1486
"17": {
1487
"name": "comment.block.cpp"
1488
},
1489
"18": {
1490
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1491
},
1492
"19": {
1493
"patterns": [
1494
{
1495
"include": "source.cpp#inline_comment"
1496
}
1497
]
1498
},
1499
"20": {
1500
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1501
},
1502
"21": {
1503
"name": "comment.block.cpp"
1504
},
1505
"22": {
1506
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1507
}
1508
},
1509
"endCaptures": {},
1510
"name": "meta.function.definition.special.constructor.cpp",
1511
"patterns": [
1512
{
1513
"begin": "\\G ?",
1514
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
1515
"beginCaptures": {},
1516
"endCaptures": {
1517
"0": {
1518
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
1519
}
1520
},
1521
"name": "meta.head.function.definition.special.constructor.cpp",
1522
"patterns": [
1523
{
1524
"include": "#ever_present_context"
1525
},
1526
{
1527
"match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
1528
"captures": {
1529
"1": {
1530
"name": "keyword.operator.assignment.cpp"
1531
},
1532
"2": {
1533
"patterns": [
1534
{
1535
"include": "source.cpp#inline_comment"
1536
}
1537
]
1538
},
1539
"3": {
1540
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1541
},
1542
"4": {
1543
"name": "comment.block.cpp"
1544
},
1545
"5": {
1546
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1547
},
1548
"6": {
1549
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
1550
},
1551
"7": {
1552
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
1553
}
1554
}
1555
},
1556
{
1557
"include": "source.cpp#functional_specifiers_pre_parameters"
1558
},
1559
{
1560
"begin": ":",
1561
"end": "(?=\\{)|(?=(?<!\\\\)\n)",
1562
"beginCaptures": {
1563
"0": {
1564
"name": "punctuation.separator.initializers.cpp"
1565
}
1566
},
1567
"endCaptures": {},
1568
"patterns": [
1569
{
1570
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
1571
"end": "\\)|(?=(?<!\\\\)\n)",
1572
"beginCaptures": {
1573
"1": {
1574
"name": "entity.name.function.call.initializer.cpp"
1575
},
1576
"2": {
1577
"name": "meta.template.call.cpp",
1578
"patterns": [
1579
{
1580
"include": "#template_call_range"
1581
}
1582
]
1583
},
1584
"3": {},
1585
"4": {
1586
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1587
},
1588
"5": {
1589
"name": "comment.block.cpp"
1590
},
1591
"6": {
1592
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1593
},
1594
"7": {
1595
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1596
}
1597
},
1598
"endCaptures": {
1599
"0": {
1600
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1601
}
1602
},
1603
"contentName": "meta.parameter.initialization",
1604
"patterns": [
1605
{
1606
"include": "#evaluation_context"
1607
}
1608
]
1609
},
1610
{
1611
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",
1612
"end": "\\}|(?=(?<!\\\\)\n)",
1613
"beginCaptures": {
1614
"1": {
1615
"name": "entity.name.function.call.initializer.cpp"
1616
},
1617
"2": {
1618
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1619
}
1620
},
1621
"endCaptures": {
1622
"0": {
1623
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1624
}
1625
},
1626
"contentName": "meta.parameter.initialization",
1627
"patterns": [
1628
{
1629
"include": "#evaluation_context"
1630
}
1631
]
1632
},
1633
{
1634
"match": ",",
1635
"name": "punctuation.separator.delimiter.comma.cpp"
1636
},
1637
{
1638
"include": "#comments"
1639
}
1640
]
1641
},
1642
{
1643
"begin": "\\(",
1644
"end": "\\)|(?=(?<!\\\\)\n)",
1645
"beginCaptures": {
1646
"0": {
1647
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
1648
}
1649
},
1650
"endCaptures": {
1651
"0": {
1652
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
1653
}
1654
},
1655
"contentName": "meta.function.definition.parameters.special.constructor",
1656
"patterns": [
1657
{
1658
"include": "#function_parameter_context"
1659
},
1660
{
1661
"include": "#evaluation_context"
1662
}
1663
]
1664
},
1665
{
1666
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
1667
},
1668
{
1669
"include": "$self"
1670
}
1671
]
1672
},
1673
{
1674
"begin": "(?<=\\{|<%|\\?\\?<)",
1675
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
1676
"beginCaptures": {},
1677
"endCaptures": {
1678
"0": {
1679
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
1680
}
1681
},
1682
"name": "meta.body.function.definition.special.constructor.cpp",
1683
"patterns": [
1684
{
1685
"include": "#function_body_context"
1686
}
1687
]
1688
},
1689
{
1690
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
1691
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
1692
"beginCaptures": {},
1693
"endCaptures": {},
1694
"name": "meta.tail.function.definition.special.constructor.cpp",
1695
"patterns": [
1696
{
1697
"include": "$self"
1698
}
1699
]
1700
}
1701
]
1702
},
1703
"cpp_attributes": {
1704
"begin": "\\[\\[",
1705
"end": "\\]\\]|(?=(?<!\\\\)\n)",
1706
"beginCaptures": {
1707
"0": {
1708
"name": "punctuation.section.attribute.begin.cpp"
1709
}
1710
},
1711
"endCaptures": {
1712
"0": {
1713
"name": "punctuation.section.attribute.end.cpp"
1714
}
1715
},
1716
"name": "support.other.attribute.cpp",
1717
"patterns": [
1718
{
1719
"include": "#attributes_context"
1720
},
1721
{
1722
"begin": "\\(",
1723
"end": "\\)|(?=(?<!\\\\)\n)",
1724
"beginCaptures": {},
1725
"endCaptures": {},
1726
"patterns": [
1727
{
1728
"include": "#attributes_context"
1729
},
1730
{
1731
"include": "#string_context"
1732
},
1733
{
1734
"include": "#ever_present_context"
1735
}
1736
]
1737
},
1738
{
1739
"match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
1740
"captures": {
1741
"1": {
1742
"name": "keyword.other.using.directive.cpp"
1743
},
1744
"2": {
1745
"name": "entity.name.namespace.cpp"
1746
}
1747
}
1748
},
1749
{
1750
"match": ",",
1751
"name": "punctuation.separator.attribute.cpp"
1752
},
1753
{
1754
"match": ":",
1755
"name": "punctuation.accessor.attribute.cpp"
1756
},
1757
{
1758
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
1759
"name": "entity.name.namespace.cpp"
1760
},
1761
{
1762
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1763
"name": "entity.other.attribute.$0.cpp"
1764
},
1765
{
1766
"include": "source.cpp#number_literal"
1767
},
1768
{
1769
"include": "#ever_present_context"
1770
}
1771
]
1772
},
1773
"curly_initializer": {
1774
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",
1775
"end": "\\}|(?=(?<!\\\\)\n)",
1776
"beginCaptures": {
1777
"1": {
1778
"name": "meta.qualified_type.cpp",
1779
"patterns": [
1780
{
1781
"match": "::",
1782
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
1783
},
1784
{
1785
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
1786
"name": "storage.type.$0.cpp"
1787
},
1788
{
1789
"include": "#attributes_context"
1790
},
1791
{
1792
"include": "#storage_types"
1793
},
1794
{
1795
"include": "source.cpp#number_literal"
1796
},
1797
{
1798
"include": "#string_context"
1799
},
1800
{
1801
"include": "source.cpp#comma"
1802
},
1803
{
1804
"include": "source.cpp#scope_resolution_inner_generated"
1805
},
1806
{
1807
"begin": "<",
1808
"end": ">|(?=(?<!\\\\)\n)",
1809
"beginCaptures": {
1810
"0": {
1811
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
1812
}
1813
},
1814
"endCaptures": {
1815
"0": {
1816
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
1817
}
1818
},
1819
"name": "meta.template.call.cpp",
1820
"patterns": [
1821
{
1822
"include": "#template_call_context"
1823
}
1824
]
1825
},
1826
{
1827
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
1828
"name": "entity.name.type.cpp"
1829
}
1830
]
1831
},
1832
"2": {
1833
"patterns": [
1834
{
1835
"include": "#attributes_context"
1836
},
1837
{
1838
"include": "source.cpp#number_literal"
1839
}
1840
]
1841
},
1842
"3": {
1843
"patterns": [
1844
{
1845
"include": "source.cpp#inline_comment"
1846
}
1847
]
1848
},
1849
"4": {
1850
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1851
},
1852
"5": {
1853
"name": "comment.block.cpp"
1854
},
1855
"6": {
1856
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1857
},
1858
"7": {
1859
"patterns": [
1860
{
1861
"include": "source.cpp#inline_comment"
1862
}
1863
]
1864
},
1865
"8": {
1866
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1867
},
1868
"9": {
1869
"name": "comment.block.cpp"
1870
},
1871
"10": {
1872
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1873
},
1874
"11": {
1875
"patterns": [
1876
{
1877
"match": "::",
1878
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
1879
},
1880
{
1881
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1882
"name": "entity.name.scope-resolution.type.cpp"
1883
},
1884
{
1885
"include": "#template_call_range"
1886
}
1887
]
1888
},
1889
"12": {
1890
"patterns": [
1891
{
1892
"include": "#template_call_range"
1893
}
1894
]
1895
},
1896
"13": {},
1897
"14": {
1898
"patterns": [
1899
{
1900
"include": "source.cpp#inline_comment"
1901
}
1902
]
1903
},
1904
"15": {
1905
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1906
},
1907
"16": {
1908
"name": "comment.block.cpp"
1909
},
1910
"17": {
1911
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1912
},
1913
"18": {},
1914
"19": {
1915
"patterns": [
1916
{
1917
"include": "source.cpp#inline_comment"
1918
}
1919
]
1920
},
1921
"20": {
1922
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1923
},
1924
"21": {
1925
"name": "comment.block.cpp"
1926
},
1927
"22": {
1928
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1929
},
1930
"23": {
1931
"name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp"
1932
}
1933
},
1934
"endCaptures": {
1935
"0": {
1936
"name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp"
1937
}
1938
},
1939
"name": "meta.initialization.cpp",
1940
"patterns": [
1941
{
1942
"include": "#evaluation_context"
1943
},
1944
{
1945
"include": "source.cpp#comma"
1946
}
1947
]
1948
},
1949
"decltype": {
1950
"begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
1951
"end": "\\)|(?=(?<!\\\\)\n)",
1952
"beginCaptures": {
1953
"1": {
1954
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
1955
},
1956
"2": {
1957
"patterns": [
1958
{
1959
"include": "source.cpp#inline_comment"
1960
}
1961
]
1962
},
1963
"3": {
1964
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1965
},
1966
"4": {
1967
"name": "comment.block.cpp"
1968
},
1969
"5": {
1970
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1971
},
1972
"6": {
1973
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
1974
}
1975
},
1976
"endCaptures": {
1977
"0": {
1978
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
1979
}
1980
},
1981
"contentName": "meta.arguments.decltype",
1982
"patterns": [
1983
{
1984
"include": "#evaluation_context"
1985
}
1986
]
1987
},
1988
"decltype_specifier": {
1989
"begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
1990
"end": "\\)|(?=(?<!\\\\)\n)",
1991
"beginCaptures": {
1992
"1": {
1993
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
1994
},
1995
"2": {
1996
"patterns": [
1997
{
1998
"include": "source.cpp#inline_comment"
1999
}
2000
]
2001
},
2002
"3": {
2003
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2004
},
2005
"4": {
2006
"name": "comment.block.cpp"
2007
},
2008
"5": {
2009
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2010
},
2011
"6": {
2012
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
2013
}
2014
},
2015
"endCaptures": {
2016
"0": {
2017
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
2018
}
2019
},
2020
"contentName": "meta.arguments.decltype",
2021
"patterns": [
2022
{
2023
"include": "#evaluation_context"
2024
}
2025
]
2026
},
2027
"default_statement": {
2028
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)default(?!\\w))",
2029
"end": ":|(?=(?<!\\\\)\n)",
2030
"beginCaptures": {
2031
"1": {
2032
"patterns": [
2033
{
2034
"include": "source.cpp#inline_comment"
2035
}
2036
]
2037
},
2038
"2": {
2039
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2040
},
2041
"3": {
2042
"name": "comment.block.cpp"
2043
},
2044
"4": {
2045
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2046
},
2047
"5": {
2048
"name": "keyword.control.default.cpp"
2049
}
2050
},
2051
"endCaptures": {
2052
"0": {
2053
"name": "punctuation.separator.colon.case.default.cpp"
2054
}
2055
},
2056
"name": "meta.conditional.case.cpp",
2057
"patterns": [
2058
{
2059
"include": "#evaluation_context"
2060
}
2061
]
2062
},
2063
"destructor_inline": {
2064
"begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",
2065
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2066
"beginCaptures": {
2067
"0": {
2068
"name": "meta.head.function.definition.special.member.destructor.cpp"
2069
},
2070
"1": {
2071
"patterns": [
2072
{
2073
"include": "source.cpp#inline_comment"
2074
}
2075
]
2076
},
2077
"2": {
2078
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2079
},
2080
"3": {
2081
"name": "comment.block.cpp"
2082
},
2083
"4": {
2084
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2085
},
2086
"5": {
2087
"name": "storage.type.modifier.calling-convention.cpp"
2088
},
2089
"6": {
2090
"patterns": [
2091
{
2092
"include": "source.cpp#inline_comment"
2093
}
2094
]
2095
},
2096
"7": {
2097
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2098
},
2099
"8": {
2100
"name": "comment.block.cpp"
2101
},
2102
"9": {
2103
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2104
},
2105
"10": {
2106
"patterns": [
2107
{
2108
"include": "source.cpp#functional_specifiers_pre_parameters"
2109
}
2110
]
2111
},
2112
"11": {
2113
"patterns": [
2114
{
2115
"include": "source.cpp#inline_comment"
2116
}
2117
]
2118
},
2119
"12": {
2120
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2121
},
2122
"13": {
2123
"name": "comment.block.cpp"
2124
},
2125
"14": {
2126
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2127
},
2128
"15": {
2129
"name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
2130
}
2131
},
2132
"endCaptures": {},
2133
"name": "meta.function.definition.special.member.destructor.cpp",
2134
"patterns": [
2135
{
2136
"begin": "\\G ?",
2137
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2138
"beginCaptures": {},
2139
"endCaptures": {
2140
"0": {
2141
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
2142
}
2143
},
2144
"name": "meta.head.function.definition.special.member.destructor.cpp",
2145
"patterns": [
2146
{
2147
"include": "#ever_present_context"
2148
},
2149
{
2150
"match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
2151
"captures": {
2152
"1": {
2153
"name": "keyword.operator.assignment.cpp"
2154
},
2155
"2": {
2156
"patterns": [
2157
{
2158
"include": "source.cpp#inline_comment"
2159
}
2160
]
2161
},
2162
"3": {
2163
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2164
},
2165
"4": {
2166
"name": "comment.block.cpp"
2167
},
2168
"5": {
2169
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2170
},
2171
"6": {
2172
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
2173
},
2174
"7": {
2175
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
2176
}
2177
}
2178
},
2179
{
2180
"begin": "\\(",
2181
"end": "\\)|(?=(?<!\\\\)\n)",
2182
"beginCaptures": {
2183
"0": {
2184
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
2185
}
2186
},
2187
"endCaptures": {
2188
"0": {
2189
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
2190
}
2191
},
2192
"contentName": "meta.function.definition.parameters.special.member.destructor",
2193
"patterns": []
2194
},
2195
{
2196
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
2197
},
2198
{
2199
"include": "$self"
2200
}
2201
]
2202
},
2203
{
2204
"begin": "(?<=\\{|<%|\\?\\?<)",
2205
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2206
"beginCaptures": {},
2207
"endCaptures": {
2208
"0": {
2209
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
2210
}
2211
},
2212
"name": "meta.body.function.definition.special.member.destructor.cpp",
2213
"patterns": [
2214
{
2215
"include": "#function_body_context"
2216
}
2217
]
2218
},
2219
{
2220
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2221
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2222
"beginCaptures": {},
2223
"endCaptures": {},
2224
"name": "meta.tail.function.definition.special.member.destructor.cpp",
2225
"patterns": [
2226
{
2227
"include": "$self"
2228
}
2229
]
2230
}
2231
]
2232
},
2233
"destructor_root": {
2234
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))~(?:\\14)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())",
2235
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2236
"beginCaptures": {
2237
"0": {
2238
"name": "meta.head.function.definition.special.member.destructor.cpp"
2239
},
2240
"1": {
2241
"patterns": [
2242
{
2243
"include": "source.cpp#inline_comment"
2244
}
2245
]
2246
},
2247
"2": {
2248
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2249
},
2250
"3": {
2251
"name": "comment.block.cpp"
2252
},
2253
"4": {
2254
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2255
},
2256
"5": {
2257
"name": "storage.type.modifier.calling-convention.cpp"
2258
},
2259
"6": {
2260
"patterns": [
2261
{
2262
"include": "source.cpp#inline_comment"
2263
}
2264
]
2265
},
2266
"7": {
2267
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2268
},
2269
"8": {
2270
"name": "comment.block.cpp"
2271
},
2272
"9": {
2273
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2274
},
2275
"10": {
2276
"patterns": [
2277
{
2278
"match": "::",
2279
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
2280
},
2281
{
2282
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
2283
"name": "entity.name.scope-resolution.destructor.cpp"
2284
},
2285
{
2286
"include": "#template_call_range"
2287
}
2288
]
2289
},
2290
"11": {
2291
"patterns": [
2292
{
2293
"include": "#template_call_range"
2294
}
2295
]
2296
},
2297
"12": {},
2298
"13": {
2299
"patterns": [
2300
{
2301
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",
2302
"name": "entity.name.type.destructor.cpp"
2303
},
2304
{
2305
"match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
2306
"name": "entity.name.function.definition.special.member.destructor.cpp"
2307
},
2308
{
2309
"match": "::",
2310
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
2311
}
2312
]
2313
},
2314
"14": {},
2315
"15": {
2316
"patterns": [
2317
{
2318
"include": "source.cpp#inline_comment"
2319
}
2320
]
2321
},
2322
"16": {
2323
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2324
},
2325
"17": {
2326
"name": "comment.block.cpp"
2327
},
2328
"18": {
2329
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2330
},
2331
"19": {
2332
"patterns": [
2333
{
2334
"include": "source.cpp#inline_comment"
2335
}
2336
]
2337
},
2338
"20": {
2339
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2340
},
2341
"21": {
2342
"name": "comment.block.cpp"
2343
},
2344
"22": {
2345
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2346
},
2347
"23": {
2348
"patterns": [
2349
{
2350
"include": "source.cpp#inline_comment"
2351
}
2352
]
2353
},
2354
"24": {
2355
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2356
},
2357
"25": {
2358
"name": "comment.block.cpp"
2359
},
2360
"26": {
2361
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2362
}
2363
},
2364
"endCaptures": {},
2365
"name": "meta.function.definition.special.member.destructor.cpp",
2366
"patterns": [
2367
{
2368
"begin": "\\G ?",
2369
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2370
"beginCaptures": {},
2371
"endCaptures": {
2372
"0": {
2373
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
2374
}
2375
},
2376
"name": "meta.head.function.definition.special.member.destructor.cpp",
2377
"patterns": [
2378
{
2379
"include": "#ever_present_context"
2380
},
2381
{
2382
"match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
2383
"captures": {
2384
"1": {
2385
"name": "keyword.operator.assignment.cpp"
2386
},
2387
"2": {
2388
"patterns": [
2389
{
2390
"include": "source.cpp#inline_comment"
2391
}
2392
]
2393
},
2394
"3": {
2395
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2396
},
2397
"4": {
2398
"name": "comment.block.cpp"
2399
},
2400
"5": {
2401
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2402
},
2403
"6": {
2404
"name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
2405
},
2406
"7": {
2407
"name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
2408
}
2409
}
2410
},
2411
{
2412
"begin": "\\(",
2413
"end": "\\)|(?=(?<!\\\\)\n)",
2414
"beginCaptures": {
2415
"0": {
2416
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
2417
}
2418
},
2419
"endCaptures": {
2420
"0": {
2421
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
2422
}
2423
},
2424
"contentName": "meta.function.definition.parameters.special.member.destructor",
2425
"patterns": []
2426
},
2427
{
2428
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
2429
},
2430
{
2431
"include": "$self"
2432
}
2433
]
2434
},
2435
{
2436
"begin": "(?<=\\{|<%|\\?\\?<)",
2437
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2438
"beginCaptures": {},
2439
"endCaptures": {
2440
"0": {
2441
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
2442
}
2443
},
2444
"name": "meta.body.function.definition.special.member.destructor.cpp",
2445
"patterns": [
2446
{
2447
"include": "#function_body_context"
2448
}
2449
]
2450
},
2451
{
2452
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2453
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2454
"beginCaptures": {},
2455
"endCaptures": {},
2456
"name": "meta.tail.function.definition.special.member.destructor.cpp",
2457
"patterns": [
2458
{
2459
"include": "$self"
2460
}
2461
]
2462
}
2463
]
2464
},
2465
"diagnostic": {
2466
"begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",
2467
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
2468
"beginCaptures": {
2469
"1": {
2470
"name": "keyword.control.directive.diagnostic.$7.cpp"
2471
},
2472
"2": {
2473
"patterns": [
2474
{
2475
"include": "source.cpp#inline_comment"
2476
}
2477
]
2478
},
2479
"3": {
2480
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2481
},
2482
"4": {
2483
"name": "comment.block.cpp"
2484
},
2485
"5": {
2486
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2487
},
2488
"6": {
2489
"name": "punctuation.definition.directive.cpp"
2490
},
2491
"7": {}
2492
},
2493
"endCaptures": {},
2494
"name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
2495
"patterns": [
2496
{
2497
"include": "#comments"
2498
},
2499
{
2500
"begin": "\"",
2501
"end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
2502
"beginCaptures": {
2503
"0": {
2504
"name": "punctuation.definition.string.begin.cpp"
2505
}
2506
},
2507
"endCaptures": {
2508
"1": {
2509
"name": "punctuation.definition.string.end.cpp"
2510
}
2511
},
2512
"name": "string.quoted.double.cpp",
2513
"patterns": [
2514
{
2515
"include": "source.cpp#line_continuation_character"
2516
}
2517
]
2518
},
2519
{
2520
"begin": "'",
2521
"end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
2522
"beginCaptures": {
2523
"0": {
2524
"name": "punctuation.definition.string.begin.cpp"
2525
}
2526
},
2527
"endCaptures": {
2528
"1": {
2529
"name": "punctuation.definition.string.end.cpp"
2530
}
2531
},
2532
"name": "string.quoted.single.cpp",
2533
"patterns": [
2534
{
2535
"include": "source.cpp#line_continuation_character"
2536
}
2537
]
2538
},
2539
{
2540
"begin": "[^'\"]",
2541
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
2542
"beginCaptures": {},
2543
"endCaptures": {},
2544
"name": "string.unquoted.cpp",
2545
"patterns": [
2546
{
2547
"include": "source.cpp#line_continuation_character"
2548
},
2549
{
2550
"include": "#comments"
2551
}
2552
]
2553
}
2554
]
2555
},
2556
"enum_block": {
2557
"begin": "((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:\\s+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:\\s+)?(:)(?:\\s+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?",
2558
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2559
"beginCaptures": {
2560
"0": {
2561
"name": "meta.head.enum.cpp"
2562
},
2563
"1": {
2564
"name": "storage.type.enum.cpp"
2565
},
2566
"2": {
2567
"name": "storage.type.enum.enum-key.$2.cpp"
2568
},
2569
"3": {
2570
"patterns": [
2571
{
2572
"include": "#attributes_context"
2573
},
2574
{
2575
"include": "source.cpp#number_literal"
2576
}
2577
]
2578
},
2579
"4": {
2580
"name": "entity.name.type.enum.cpp"
2581
},
2582
"5": {
2583
"name": "punctuation.separator.colon.type-specifier.cpp"
2584
},
2585
"6": {
2586
"patterns": [
2587
{
2588
"include": "source.cpp#scope_resolution_inner_generated"
2589
}
2590
]
2591
},
2592
"7": {
2593
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
2594
},
2595
"8": {
2596
"patterns": [
2597
{
2598
"include": "#template_call_range"
2599
}
2600
]
2601
},
2602
"9": {},
2603
"10": {
2604
"name": "entity.name.scope-resolution.cpp"
2605
},
2606
"11": {
2607
"name": "meta.template.call.cpp",
2608
"patterns": [
2609
{
2610
"include": "#template_call_range"
2611
}
2612
]
2613
},
2614
"12": {},
2615
"13": {
2616
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2617
},
2618
"14": {
2619
"name": "comment.block.cpp"
2620
},
2621
"15": {
2622
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2623
},
2624
"16": {
2625
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
2626
},
2627
"17": {
2628
"name": "storage.type.integral.$17.cpp"
2629
}
2630
},
2631
"endCaptures": {
2632
"1": {
2633
"name": "punctuation.terminator.statement.cpp"
2634
},
2635
"2": {
2636
"name": "punctuation.terminator.statement.cpp"
2637
}
2638
},
2639
"name": "meta.block.enum.cpp",
2640
"patterns": [
2641
{
2642
"begin": "\\G ?",
2643
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2644
"beginCaptures": {},
2645
"endCaptures": {
2646
"0": {
2647
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
2648
}
2649
},
2650
"name": "meta.head.enum.cpp",
2651
"patterns": [
2652
{
2653
"include": "$self"
2654
}
2655
]
2656
},
2657
{
2658
"begin": "(?<=\\{|<%|\\?\\?<)",
2659
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2660
"beginCaptures": {},
2661
"endCaptures": {
2662
"0": {
2663
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
2664
}
2665
},
2666
"name": "meta.body.enum.cpp",
2667
"patterns": [
2668
{
2669
"include": "#ever_present_context"
2670
},
2671
{
2672
"include": "source.cpp#enumerator_list"
2673
},
2674
{
2675
"include": "#comments"
2676
},
2677
{
2678
"include": "source.cpp#comma"
2679
},
2680
{
2681
"include": "source.cpp#semicolon"
2682
}
2683
]
2684
},
2685
{
2686
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2687
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2688
"beginCaptures": {},
2689
"endCaptures": {},
2690
"name": "meta.tail.enum.cpp",
2691
"patterns": [
2692
{
2693
"include": "$self"
2694
}
2695
]
2696
}
2697
]
2698
},
2699
"evaluation_context": {
2700
"patterns": [
2701
{
2702
"include": "#ever_present_context"
2703
},
2704
{
2705
"include": "#string_context"
2706
},
2707
{
2708
"include": "source.cpp#number_literal"
2709
},
2710
{
2711
"include": "#method_access"
2712
},
2713
{
2714
"include": "source.cpp#member_access"
2715
},
2716
{
2717
"include": "source.cpp#predefined_macros"
2718
},
2719
{
2720
"include": "#operators"
2721
},
2722
{
2723
"include": "source.cpp#memory_operators"
2724
},
2725
{
2726
"include": "source.cpp#wordlike_operators"
2727
},
2728
{
2729
"include": "source.cpp#type_casting_operators"
2730
},
2731
{
2732
"include": "source.cpp#control_flow_keywords"
2733
},
2734
{
2735
"include": "source.cpp#exception_keywords"
2736
},
2737
{
2738
"include": "source.cpp#the_this_keyword"
2739
},
2740
{
2741
"include": "source.cpp#language_constants"
2742
},
2743
{
2744
"include": "#builtin_storage_type_initilizer"
2745
},
2746
{
2747
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
2748
},
2749
{
2750
"include": "source.cpp#functional_specifiers_pre_parameters"
2751
},
2752
{
2753
"include": "#storage_types"
2754
},
2755
{
2756
"include": "#lambdas"
2757
},
2758
{
2759
"include": "#attributes_context"
2760
},
2761
{
2762
"include": "#parentheses"
2763
},
2764
{
2765
"include": "#function_call"
2766
},
2767
{
2768
"include": "source.cpp#scope_resolution_inner_generated"
2769
},
2770
{
2771
"include": "#square_brackets"
2772
},
2773
{
2774
"include": "source.cpp#semicolon"
2775
},
2776
{
2777
"include": "source.cpp#comma"
2778
}
2779
]
2780
},
2781
"ever_present_context": {
2782
"patterns": [
2783
{
2784
"include": "source.cpp#pragma_mark"
2785
},
2786
{
2787
"include": "#pragma"
2788
},
2789
{
2790
"include": "source.cpp#include"
2791
},
2792
{
2793
"include": "#line"
2794
},
2795
{
2796
"include": "#diagnostic"
2797
},
2798
{
2799
"include": "source.cpp#undef"
2800
},
2801
{
2802
"include": "#preprocessor_conditional_range"
2803
},
2804
{
2805
"include": "source.cpp#single_line_macro"
2806
},
2807
{
2808
"include": "#macro"
2809
},
2810
{
2811
"include": "source.cpp#preprocessor_conditional_standalone"
2812
},
2813
{
2814
"include": "source.cpp#macro_argument"
2815
},
2816
{
2817
"include": "#comments"
2818
},
2819
{
2820
"include": "source.cpp#line_continuation_character"
2821
}
2822
]
2823
},
2824
"extern_block": {
2825
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(extern)(?=\\s*\\\")",
2826
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2827
"beginCaptures": {
2828
"0": {
2829
"name": "meta.head.extern.cpp"
2830
},
2831
"1": {
2832
"patterns": [
2833
{
2834
"include": "source.cpp#inline_comment"
2835
}
2836
]
2837
},
2838
"2": {
2839
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2840
},
2841
"3": {
2842
"name": "comment.block.cpp"
2843
},
2844
"4": {
2845
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2846
},
2847
"5": {
2848
"name": "storage.type.extern.cpp"
2849
}
2850
},
2851
"endCaptures": {
2852
"1": {
2853
"name": "punctuation.terminator.statement.cpp"
2854
},
2855
"2": {
2856
"name": "punctuation.terminator.statement.cpp"
2857
}
2858
},
2859
"name": "meta.block.extern.cpp",
2860
"patterns": [
2861
{
2862
"begin": "\\G ?",
2863
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2864
"beginCaptures": {},
2865
"endCaptures": {
2866
"0": {
2867
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
2868
}
2869
},
2870
"name": "meta.head.extern.cpp",
2871
"patterns": [
2872
{
2873
"include": "$self"
2874
}
2875
]
2876
},
2877
{
2878
"begin": "(?<=\\{|<%|\\?\\?<)",
2879
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2880
"beginCaptures": {},
2881
"endCaptures": {
2882
"0": {
2883
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
2884
}
2885
},
2886
"name": "meta.body.extern.cpp",
2887
"patterns": [
2888
{
2889
"include": "$self"
2890
}
2891
]
2892
},
2893
{
2894
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2895
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2896
"beginCaptures": {},
2897
"endCaptures": {},
2898
"name": "meta.tail.extern.cpp",
2899
"patterns": [
2900
{
2901
"include": "$self"
2902
}
2903
]
2904
},
2905
{
2906
"include": "$self"
2907
}
2908
]
2909
},
2910
"function_body_context": {
2911
"patterns": [
2912
{
2913
"include": "#ever_present_context"
2914
},
2915
{
2916
"include": "#using_namespace"
2917
},
2918
{
2919
"include": "source.cpp#type_alias"
2920
},
2921
{
2922
"include": "source.cpp#using_name"
2923
},
2924
{
2925
"include": "source.cpp#namespace_alias"
2926
},
2927
{
2928
"include": "#typedef_class"
2929
},
2930
{
2931
"include": "#typedef_struct"
2932
},
2933
{
2934
"include": "#typedef_union"
2935
},
2936
{
2937
"include": "source.cpp#misc_keywords"
2938
},
2939
{
2940
"include": "source.cpp#standard_declares"
2941
},
2942
{
2943
"include": "#class_block"
2944
},
2945
{
2946
"include": "#struct_block"
2947
},
2948
{
2949
"include": "#union_block"
2950
},
2951
{
2952
"include": "#enum_block"
2953
},
2954
{
2955
"include": "source.cpp#access_control_keywords"
2956
},
2957
{
2958
"include": "#block"
2959
},
2960
{
2961
"include": "#static_assert"
2962
},
2963
{
2964
"include": "#assembly"
2965
},
2966
{
2967
"include": "#function_pointer"
2968
},
2969
{
2970
"include": "#switch_statement"
2971
},
2972
{
2973
"include": "source.cpp#goto_statement"
2974
},
2975
{
2976
"include": "#evaluation_context"
2977
},
2978
{
2979
"include": "source.cpp#label"
2980
}
2981
]
2982
},
2983
"function_call": {
2984
"begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
2985
"end": "\\)|(?=(?<!\\\\)\n)",
2986
"beginCaptures": {
2987
"1": {
2988
"patterns": [
2989
{
2990
"include": "source.cpp#scope_resolution_function_call_inner_generated"
2991
}
2992
]
2993
},
2994
"2": {
2995
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
2996
},
2997
"3": {
2998
"patterns": [
2999
{
3000
"include": "#template_call_range"
3001
}
3002
]
3003
},
3004
"4": {},
3005
"5": {
3006
"name": "entity.name.function.call.cpp"
3007
},
3008
"6": {
3009
"patterns": [
3010
{
3011
"include": "source.cpp#inline_comment"
3012
}
3013
]
3014
},
3015
"7": {
3016
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3017
},
3018
"8": {
3019
"name": "comment.block.cpp"
3020
},
3021
"9": {
3022
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3023
},
3024
"10": {
3025
"name": "meta.template.call.cpp",
3026
"patterns": [
3027
{
3028
"include": "#template_call_range"
3029
}
3030
]
3031
},
3032
"11": {},
3033
"12": {
3034
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3035
},
3036
"13": {
3037
"name": "comment.block.cpp"
3038
},
3039
"14": {
3040
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3041
},
3042
"15": {
3043
"name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
3044
}
3045
},
3046
"endCaptures": {
3047
"0": {
3048
"name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
3049
}
3050
},
3051
"patterns": [
3052
{
3053
"include": "#evaluation_context"
3054
}
3055
]
3056
},
3057
"function_definition": {
3058
"begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?<!\\w)template(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\()",
3059
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
3060
"beginCaptures": {
3061
"0": {
3062
"name": "meta.head.function.definition.cpp"
3063
},
3064
"1": {
3065
"name": "storage.type.template.cpp"
3066
},
3067
"2": {
3068
"patterns": [
3069
{
3070
"include": "source.cpp#inline_comment"
3071
}
3072
]
3073
},
3074
"3": {
3075
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3076
},
3077
"4": {
3078
"name": "comment.block.cpp"
3079
},
3080
"5": {
3081
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3082
},
3083
"6": {
3084
"patterns": [
3085
{
3086
"include": "#attributes_context"
3087
},
3088
{
3089
"include": "source.cpp#number_literal"
3090
}
3091
]
3092
},
3093
"7": {
3094
"patterns": [
3095
{
3096
"match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
3097
"captures": {
3098
"1": {
3099
"name": "storage.modifier.$1.cpp"
3100
},
3101
"2": {
3102
"patterns": [
3103
{
3104
"include": "source.cpp#inline_comment"
3105
}
3106
]
3107
},
3108
"3": {
3109
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3110
},
3111
"4": {
3112
"name": "comment.block.cpp"
3113
},
3114
"5": {
3115
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3116
}
3117
}
3118
}
3119
]
3120
},
3121
"8": {
3122
"name": "storage.modifier.$8.cpp"
3123
},
3124
"9": {
3125
"patterns": [
3126
{
3127
"include": "source.cpp#inline_comment"
3128
}
3129
]
3130
},
3131
"10": {
3132
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3133
},
3134
"11": {
3135
"name": "comment.block.cpp"
3136
},
3137
"12": {
3138
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3139
},
3140
"13": {
3141
"name": "meta.qualified_type.cpp",
3142
"patterns": [
3143
{
3144
"match": "::",
3145
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3146
},
3147
{
3148
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3149
"name": "storage.type.$0.cpp"
3150
},
3151
{
3152
"include": "#attributes_context"
3153
},
3154
{
3155
"include": "#storage_types"
3156
},
3157
{
3158
"include": "source.cpp#number_literal"
3159
},
3160
{
3161
"include": "#string_context"
3162
},
3163
{
3164
"include": "source.cpp#comma"
3165
},
3166
{
3167
"include": "source.cpp#scope_resolution_inner_generated"
3168
},
3169
{
3170
"begin": "<",
3171
"end": ">|(?=(?<!\\\\)\n)",
3172
"beginCaptures": {
3173
"0": {
3174
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3175
}
3176
},
3177
"endCaptures": {
3178
"0": {
3179
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
3180
}
3181
},
3182
"name": "meta.template.call.cpp",
3183
"patterns": [
3184
{
3185
"include": "#template_call_context"
3186
}
3187
]
3188
},
3189
{
3190
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3191
"name": "entity.name.type.cpp"
3192
}
3193
]
3194
},
3195
"14": {
3196
"patterns": [
3197
{
3198
"include": "#attributes_context"
3199
},
3200
{
3201
"include": "source.cpp#number_literal"
3202
}
3203
]
3204
},
3205
"15": {
3206
"patterns": [
3207
{
3208
"include": "source.cpp#inline_comment"
3209
}
3210
]
3211
},
3212
"16": {
3213
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3214
},
3215
"17": {
3216
"name": "comment.block.cpp"
3217
},
3218
"18": {
3219
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3220
},
3221
"19": {
3222
"patterns": [
3223
{
3224
"include": "source.cpp#inline_comment"
3225
}
3226
]
3227
},
3228
"20": {
3229
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3230
},
3231
"21": {
3232
"name": "comment.block.cpp"
3233
},
3234
"22": {
3235
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3236
},
3237
"23": {
3238
"patterns": [
3239
{
3240
"match": "::",
3241
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3242
},
3243
{
3244
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
3245
"name": "entity.name.scope-resolution.type.cpp"
3246
},
3247
{
3248
"include": "#template_call_range"
3249
}
3250
]
3251
},
3252
"24": {
3253
"patterns": [
3254
{
3255
"include": "#template_call_range"
3256
}
3257
]
3258
},
3259
"25": {},
3260
"26": {
3261
"patterns": [
3262
{
3263
"include": "source.cpp#inline_comment"
3264
}
3265
]
3266
},
3267
"27": {
3268
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3269
},
3270
"28": {
3271
"name": "comment.block.cpp"
3272
},
3273
"29": {
3274
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3275
},
3276
"30": {},
3277
"31": {
3278
"patterns": [
3279
{
3280
"match": "\\*",
3281
"name": "storage.modifier.pointer.cpp"
3282
},
3283
{
3284
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
3285
"captures": {
3286
"1": {
3287
"patterns": [
3288
{
3289
"include": "source.cpp#inline_comment"
3290
}
3291
]
3292
},
3293
"2": {
3294
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3295
},
3296
"3": {
3297
"name": "comment.block.cpp"
3298
},
3299
"4": {
3300
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3301
}
3302
},
3303
"name": "invalid.illegal.reference-type.cpp"
3304
},
3305
{
3306
"match": "\\&",
3307
"name": "storage.modifier.reference.cpp"
3308
}
3309
]
3310
},
3311
"32": {
3312
"patterns": [
3313
{
3314
"include": "source.cpp#inline_comment"
3315
}
3316
]
3317
},
3318
"33": {
3319
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3320
},
3321
"34": {
3322
"name": "comment.block.cpp"
3323
},
3324
"35": {
3325
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3326
},
3327
"36": {
3328
"patterns": [
3329
{
3330
"include": "source.cpp#inline_comment"
3331
}
3332
]
3333
},
3334
"37": {
3335
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3336
},
3337
"38": {
3338
"name": "comment.block.cpp"
3339
},
3340
"39": {
3341
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3342
},
3343
"40": {
3344
"patterns": [
3345
{
3346
"include": "source.cpp#inline_comment"
3347
}
3348
]
3349
},
3350
"41": {
3351
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3352
},
3353
"42": {
3354
"name": "comment.block.cpp"
3355
},
3356
"43": {
3357
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3358
},
3359
"44": {
3360
"name": "storage.type.modifier.calling-convention.cpp"
3361
},
3362
"45": {
3363
"patterns": [
3364
{
3365
"include": "source.cpp#inline_comment"
3366
}
3367
]
3368
},
3369
"46": {
3370
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3371
},
3372
"47": {
3373
"name": "comment.block.cpp"
3374
},
3375
"48": {
3376
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3377
},
3378
"49": {
3379
"patterns": [
3380
{
3381
"include": "source.cpp#scope_resolution_function_definition_inner_generated"
3382
}
3383
]
3384
},
3385
"50": {
3386
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
3387
},
3388
"51": {
3389
"patterns": [
3390
{
3391
"include": "#template_call_range"
3392
}
3393
]
3394
},
3395
"52": {},
3396
"53": {
3397
"name": "entity.name.function.definition.cpp"
3398
},
3399
"54": {
3400
"patterns": [
3401
{
3402
"include": "source.cpp#inline_comment"
3403
}
3404
]
3405
},
3406
"55": {
3407
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3408
},
3409
"56": {
3410
"name": "comment.block.cpp"
3411
},
3412
"57": {
3413
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3414
}
3415
},
3416
"endCaptures": {},
3417
"name": "meta.function.definition.cpp",
3418
"patterns": [
3419
{
3420
"begin": "\\G ?",
3421
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
3422
"beginCaptures": {},
3423
"endCaptures": {
3424
"0": {
3425
"name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
3426
}
3427
},
3428
"name": "meta.head.function.definition.cpp",
3429
"patterns": [
3430
{
3431
"include": "#ever_present_context"
3432
},
3433
{
3434
"begin": "\\(",
3435
"end": "\\)|(?=(?<!\\\\)\n)",
3436
"beginCaptures": {
3437
"0": {
3438
"name": "punctuation.section.parameters.begin.bracket.round.cpp"
3439
}
3440
},
3441
"endCaptures": {
3442
"0": {
3443
"name": "punctuation.section.parameters.end.bracket.round.cpp"
3444
}
3445
},
3446
"contentName": "meta.function.definition.parameters",
3447
"patterns": [
3448
{
3449
"include": "#ever_present_context"
3450
},
3451
{
3452
"include": "#parameter_or_maybe_value"
3453
},
3454
{
3455
"include": "source.cpp#comma"
3456
},
3457
{
3458
"include": "#evaluation_context"
3459
}
3460
]
3461
},
3462
{
3463
"match": "(?<=^|\\))(?:\\s+)?(->)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
3464
"captures": {
3465
"1": {
3466
"name": "punctuation.definition.function.return-type.cpp"
3467
},
3468
"2": {
3469
"patterns": [
3470
{
3471
"include": "source.cpp#inline_comment"
3472
}
3473
]
3474
},
3475
"3": {
3476
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3477
},
3478
"4": {
3479
"name": "comment.block.cpp"
3480
},
3481
"5": {
3482
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3483
},
3484
"6": {
3485
"name": "meta.qualified_type.cpp",
3486
"patterns": [
3487
{
3488
"match": "::",
3489
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3490
},
3491
{
3492
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3493
"name": "storage.type.$0.cpp"
3494
},
3495
{
3496
"include": "#attributes_context"
3497
},
3498
{
3499
"include": "#storage_types"
3500
},
3501
{
3502
"include": "source.cpp#number_literal"
3503
},
3504
{
3505
"include": "#string_context"
3506
},
3507
{
3508
"include": "source.cpp#comma"
3509
},
3510
{
3511
"include": "source.cpp#scope_resolution_inner_generated"
3512
},
3513
{
3514
"begin": "<",
3515
"end": ">|(?=(?<!\\\\)\n)",
3516
"beginCaptures": {
3517
"0": {
3518
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3519
}
3520
},
3521
"endCaptures": {
3522
"0": {
3523
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
3524
}
3525
},
3526
"name": "meta.template.call.cpp",
3527
"patterns": [
3528
{
3529
"include": "#template_call_context"
3530
}
3531
]
3532
},
3533
{
3534
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3535
"name": "entity.name.type.cpp"
3536
}
3537
]
3538
},
3539
"7": {
3540
"patterns": [
3541
{
3542
"include": "#attributes_context"
3543
},
3544
{
3545
"include": "source.cpp#number_literal"
3546
}
3547
]
3548
},
3549
"8": {
3550
"patterns": [
3551
{
3552
"include": "source.cpp#inline_comment"
3553
}
3554
]
3555
},
3556
"9": {
3557
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3558
},
3559
"10": {
3560
"name": "comment.block.cpp"
3561
},
3562
"11": {
3563
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3564
},
3565
"12": {
3566
"patterns": [
3567
{
3568
"include": "source.cpp#inline_comment"
3569
}
3570
]
3571
},
3572
"13": {
3573
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3574
},
3575
"14": {
3576
"name": "comment.block.cpp"
3577
},
3578
"15": {
3579
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3580
},
3581
"16": {
3582
"patterns": [
3583
{
3584
"match": "::",
3585
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3586
},
3587
{
3588
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
3589
"name": "entity.name.scope-resolution.type.cpp"
3590
},
3591
{
3592
"include": "#template_call_range"
3593
}
3594
]
3595
},
3596
"17": {
3597
"patterns": [
3598
{
3599
"include": "#template_call_range"
3600
}
3601
]
3602
},
3603
"18": {},
3604
"19": {
3605
"patterns": [
3606
{
3607
"include": "source.cpp#inline_comment"
3608
}
3609
]
3610
},
3611
"20": {
3612
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3613
},
3614
"21": {
3615
"name": "comment.block.cpp"
3616
},
3617
"22": {
3618
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3619
},
3620
"23": {}
3621
}
3622
},
3623
{
3624
"include": "$self"
3625
}
3626
]
3627
},
3628
{
3629
"begin": "(?<=\\{|<%|\\?\\?<)",
3630
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
3631
"beginCaptures": {},
3632
"endCaptures": {
3633
"0": {
3634
"name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
3635
}
3636
},
3637
"name": "meta.body.function.definition.cpp",
3638
"patterns": [
3639
{
3640
"include": "#function_body_context"
3641
}
3642
]
3643
},
3644
{
3645
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
3646
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
3647
"beginCaptures": {},
3648
"endCaptures": {},
3649
"name": "meta.tail.function.definition.cpp",
3650
"patterns": [
3651
{
3652
"include": "$self"
3653
}
3654
]
3655
}
3656
]
3657
},
3658
"function_parameter_context": {
3659
"patterns": [
3660
{
3661
"include": "#ever_present_context"
3662
},
3663
{
3664
"include": "#parameter"
3665
},
3666
{
3667
"include": "source.cpp#comma"
3668
}
3669
]
3670
},
3671
"function_pointer": {
3672
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
3673
"end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
3674
"beginCaptures": {
3675
"1": {
3676
"name": "meta.qualified_type.cpp",
3677
"patterns": [
3678
{
3679
"match": "::",
3680
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3681
},
3682
{
3683
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3684
"name": "storage.type.$0.cpp"
3685
},
3686
{
3687
"include": "#attributes_context"
3688
},
3689
{
3690
"include": "#storage_types"
3691
},
3692
{
3693
"include": "source.cpp#number_literal"
3694
},
3695
{
3696
"include": "#string_context"
3697
},
3698
{
3699
"include": "source.cpp#comma"
3700
},
3701
{
3702
"include": "source.cpp#scope_resolution_inner_generated"
3703
},
3704
{
3705
"begin": "<",
3706
"end": ">|(?=(?<!\\\\)\n)",
3707
"beginCaptures": {
3708
"0": {
3709
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3710
}
3711
},
3712
"endCaptures": {
3713
"0": {
3714
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
3715
}
3716
},
3717
"name": "meta.template.call.cpp",
3718
"patterns": [
3719
{
3720
"include": "#template_call_context"
3721
}
3722
]
3723
},
3724
{
3725
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3726
"name": "entity.name.type.cpp"
3727
}
3728
]
3729
},
3730
"2": {
3731
"patterns": [
3732
{
3733
"include": "#attributes_context"
3734
},
3735
{
3736
"include": "source.cpp#number_literal"
3737
}
3738
]
3739
},
3740
"3": {
3741
"patterns": [
3742
{
3743
"include": "source.cpp#inline_comment"
3744
}
3745
]
3746
},
3747
"4": {
3748
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3749
},
3750
"5": {
3751
"name": "comment.block.cpp"
3752
},
3753
"6": {
3754
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3755
},
3756
"7": {
3757
"patterns": [
3758
{
3759
"include": "source.cpp#inline_comment"
3760
}
3761
]
3762
},
3763
"8": {
3764
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3765
},
3766
"9": {
3767
"name": "comment.block.cpp"
3768
},
3769
"10": {
3770
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3771
},
3772
"11": {
3773
"patterns": [
3774
{
3775
"match": "::",
3776
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3777
},
3778
{
3779
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
3780
"name": "entity.name.scope-resolution.type.cpp"
3781
},
3782
{
3783
"include": "#template_call_range"
3784
}
3785
]
3786
},
3787
"12": {
3788
"patterns": [
3789
{
3790
"include": "#template_call_range"
3791
}
3792
]
3793
},
3794
"13": {},
3795
"14": {
3796
"patterns": [
3797
{
3798
"include": "source.cpp#inline_comment"
3799
}
3800
]
3801
},
3802
"15": {
3803
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3804
},
3805
"16": {
3806
"name": "comment.block.cpp"
3807
},
3808
"17": {
3809
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3810
},
3811
"18": {},
3812
"19": {
3813
"patterns": [
3814
{
3815
"match": "\\*",
3816
"name": "storage.modifier.pointer.cpp"
3817
},
3818
{
3819
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
3820
"captures": {
3821
"1": {
3822
"patterns": [
3823
{
3824
"include": "source.cpp#inline_comment"
3825
}
3826
]
3827
},
3828
"2": {
3829
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3830
},
3831
"3": {
3832
"name": "comment.block.cpp"
3833
},
3834
"4": {
3835
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3836
}
3837
},
3838
"name": "invalid.illegal.reference-type.cpp"
3839
},
3840
{
3841
"match": "\\&",
3842
"name": "storage.modifier.reference.cpp"
3843
}
3844
]
3845
},
3846
"20": {
3847
"patterns": [
3848
{
3849
"include": "source.cpp#inline_comment"
3850
}
3851
]
3852
},
3853
"21": {
3854
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3855
},
3856
"22": {
3857
"name": "comment.block.cpp"
3858
},
3859
"23": {
3860
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3861
},
3862
"24": {
3863
"patterns": [
3864
{
3865
"include": "source.cpp#inline_comment"
3866
}
3867
]
3868
},
3869
"25": {
3870
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3871
},
3872
"26": {
3873
"name": "comment.block.cpp"
3874
},
3875
"27": {
3876
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3877
},
3878
"28": {
3879
"patterns": [
3880
{
3881
"include": "source.cpp#inline_comment"
3882
}
3883
]
3884
},
3885
"29": {
3886
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3887
},
3888
"30": {
3889
"name": "comment.block.cpp"
3890
},
3891
"31": {
3892
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3893
},
3894
"32": {
3895
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
3896
},
3897
"33": {
3898
"name": "punctuation.definition.function.pointer.dereference.cpp"
3899
},
3900
"34": {
3901
"name": "variable.other.definition.pointer.function.cpp"
3902
},
3903
"35": {
3904
"name": "punctuation.definition.begin.bracket.square.cpp"
3905
},
3906
"36": {
3907
"patterns": [
3908
{
3909
"include": "#evaluation_context"
3910
}
3911
]
3912
},
3913
"37": {
3914
"name": "punctuation.definition.end.bracket.square.cpp"
3915
},
3916
"38": {
3917
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
3918
},
3919
"39": {
3920
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
3921
}
3922
},
3923
"endCaptures": {
3924
"1": {
3925
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
3926
},
3927
"2": {
3928
"patterns": [
3929
{
3930
"include": "source.cpp#inline_comment"
3931
}
3932
]
3933
},
3934
"3": {
3935
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3936
},
3937
"4": {
3938
"name": "comment.block.cpp"
3939
},
3940
"5": {
3941
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3942
}
3943
},
3944
"patterns": [
3945
{
3946
"include": "#function_parameter_context"
3947
}
3948
]
3949
},
3950
"function_pointer_parameter": {
3951
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
3952
"end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
3953
"beginCaptures": {
3954
"1": {
3955
"name": "meta.qualified_type.cpp",
3956
"patterns": [
3957
{
3958
"match": "::",
3959
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3960
},
3961
{
3962
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3963
"name": "storage.type.$0.cpp"
3964
},
3965
{
3966
"include": "#attributes_context"
3967
},
3968
{
3969
"include": "#storage_types"
3970
},
3971
{
3972
"include": "source.cpp#number_literal"
3973
},
3974
{
3975
"include": "#string_context"
3976
},
3977
{
3978
"include": "source.cpp#comma"
3979
},
3980
{
3981
"include": "source.cpp#scope_resolution_inner_generated"
3982
},
3983
{
3984
"begin": "<",
3985
"end": ">|(?=(?<!\\\\)\n)",
3986
"beginCaptures": {
3987
"0": {
3988
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3989
}
3990
},
3991
"endCaptures": {
3992
"0": {
3993
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
3994
}
3995
},
3996
"name": "meta.template.call.cpp",
3997
"patterns": [
3998
{
3999
"include": "#template_call_context"
4000
}
4001
]
4002
},
4003
{
4004
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
4005
"name": "entity.name.type.cpp"
4006
}
4007
]
4008
},
4009
"2": {
4010
"patterns": [
4011
{
4012
"include": "#attributes_context"
4013
},
4014
{
4015
"include": "source.cpp#number_literal"
4016
}
4017
]
4018
},
4019
"3": {
4020
"patterns": [
4021
{
4022
"include": "source.cpp#inline_comment"
4023
}
4024
]
4025
},
4026
"4": {
4027
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4028
},
4029
"5": {
4030
"name": "comment.block.cpp"
4031
},
4032
"6": {
4033
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4034
},
4035
"7": {
4036
"patterns": [
4037
{
4038
"include": "source.cpp#inline_comment"
4039
}
4040
]
4041
},
4042
"8": {
4043
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4044
},
4045
"9": {
4046
"name": "comment.block.cpp"
4047
},
4048
"10": {
4049
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4050
},
4051
"11": {
4052
"patterns": [
4053
{
4054
"match": "::",
4055
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4056
},
4057
{
4058
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4059
"name": "entity.name.scope-resolution.type.cpp"
4060
},
4061
{
4062
"include": "#template_call_range"
4063
}
4064
]
4065
},
4066
"12": {
4067
"patterns": [
4068
{
4069
"include": "#template_call_range"
4070
}
4071
]
4072
},
4073
"13": {},
4074
"14": {
4075
"patterns": [
4076
{
4077
"include": "source.cpp#inline_comment"
4078
}
4079
]
4080
},
4081
"15": {
4082
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4083
},
4084
"16": {
4085
"name": "comment.block.cpp"
4086
},
4087
"17": {
4088
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4089
},
4090
"18": {},
4091
"19": {
4092
"patterns": [
4093
{
4094
"match": "\\*",
4095
"name": "storage.modifier.pointer.cpp"
4096
},
4097
{
4098
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
4099
"captures": {
4100
"1": {
4101
"patterns": [
4102
{
4103
"include": "source.cpp#inline_comment"
4104
}
4105
]
4106
},
4107
"2": {
4108
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4109
},
4110
"3": {
4111
"name": "comment.block.cpp"
4112
},
4113
"4": {
4114
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4115
}
4116
},
4117
"name": "invalid.illegal.reference-type.cpp"
4118
},
4119
{
4120
"match": "\\&",
4121
"name": "storage.modifier.reference.cpp"
4122
}
4123
]
4124
},
4125
"20": {
4126
"patterns": [
4127
{
4128
"include": "source.cpp#inline_comment"
4129
}
4130
]
4131
},
4132
"21": {
4133
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4134
},
4135
"22": {
4136
"name": "comment.block.cpp"
4137
},
4138
"23": {
4139
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4140
},
4141
"24": {
4142
"patterns": [
4143
{
4144
"include": "source.cpp#inline_comment"
4145
}
4146
]
4147
},
4148
"25": {
4149
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4150
},
4151
"26": {
4152
"name": "comment.block.cpp"
4153
},
4154
"27": {
4155
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4156
},
4157
"28": {
4158
"patterns": [
4159
{
4160
"include": "source.cpp#inline_comment"
4161
}
4162
]
4163
},
4164
"29": {
4165
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4166
},
4167
"30": {
4168
"name": "comment.block.cpp"
4169
},
4170
"31": {
4171
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4172
},
4173
"32": {
4174
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
4175
},
4176
"33": {
4177
"name": "punctuation.definition.function.pointer.dereference.cpp"
4178
},
4179
"34": {
4180
"name": "variable.parameter.pointer.function.cpp"
4181
},
4182
"35": {
4183
"name": "punctuation.definition.begin.bracket.square.cpp"
4184
},
4185
"36": {
4186
"patterns": [
4187
{
4188
"include": "#evaluation_context"
4189
}
4190
]
4191
},
4192
"37": {
4193
"name": "punctuation.definition.end.bracket.square.cpp"
4194
},
4195
"38": {
4196
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
4197
},
4198
"39": {
4199
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
4200
}
4201
},
4202
"endCaptures": {
4203
"1": {
4204
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
4205
},
4206
"2": {
4207
"patterns": [
4208
{
4209
"include": "source.cpp#inline_comment"
4210
}
4211
]
4212
},
4213
"3": {
4214
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4215
},
4216
"4": {
4217
"name": "comment.block.cpp"
4218
},
4219
"5": {
4220
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4221
}
4222
},
4223
"patterns": [
4224
{
4225
"include": "#function_parameter_context"
4226
}
4227
]
4228
},
4229
"gcc_attributes": {
4230
"begin": "__attribute(?:__)?\\s*\\(\\s*\\(",
4231
"end": "\\)\\s*\\)|(?=(?<!\\\\)\n)",
4232
"beginCaptures": {
4233
"0": {
4234
"name": "punctuation.section.attribute.begin.cpp"
4235
}
4236
},
4237
"endCaptures": {
4238
"0": {
4239
"name": "punctuation.section.attribute.end.cpp"
4240
}
4241
},
4242
"name": "support.other.attribute.cpp",
4243
"patterns": [
4244
{
4245
"include": "#attributes_context"
4246
},
4247
{
4248
"begin": "\\(",
4249
"end": "\\)|(?=(?<!\\\\)\n)",
4250
"beginCaptures": {},
4251
"endCaptures": {},
4252
"patterns": [
4253
{
4254
"include": "#attributes_context"
4255
},
4256
{
4257
"include": "#string_context"
4258
},
4259
{
4260
"include": "#ever_present_context"
4261
}
4262
]
4263
},
4264
{
4265
"match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
4266
"captures": {
4267
"1": {
4268
"name": "keyword.other.using.directive.cpp"
4269
},
4270
"2": {
4271
"name": "entity.name.namespace.cpp"
4272
}
4273
}
4274
},
4275
{
4276
"match": ",",
4277
"name": "punctuation.separator.attribute.cpp"
4278
},
4279
{
4280
"match": ":",
4281
"name": "punctuation.accessor.attribute.cpp"
4282
},
4283
{
4284
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
4285
"name": "entity.name.namespace.cpp"
4286
},
4287
{
4288
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4289
"name": "entity.other.attribute.$0.cpp"
4290
},
4291
{
4292
"include": "source.cpp#number_literal"
4293
},
4294
{
4295
"include": "#ever_present_context"
4296
}
4297
]
4298
},
4299
"inheritance_context": {
4300
"patterns": [
4301
{
4302
"include": "#ever_present_context"
4303
},
4304
{
4305
"match": ",",
4306
"name": "punctuation.separator.delimiter.comma.inheritance.cpp"
4307
},
4308
{
4309
"match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)",
4310
"name": "storage.type.modifier.access.$0.cpp"
4311
},
4312
{
4313
"match": "(?<!\\w)virtual(?!\\w)",
4314
"name": "storage.type.modifier.virtual.cpp"
4315
},
4316
{
4317
"match": "(?<=protected|virtual|private|public|,|:)(?:\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
4318
"captures": {
4319
"1": {
4320
"name": "meta.qualified_type.cpp",
4321
"patterns": [
4322
{
4323
"match": "::",
4324
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
4325
},
4326
{
4327
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
4328
"name": "storage.type.$0.cpp"
4329
},
4330
{
4331
"include": "#attributes_context"
4332
},
4333
{
4334
"include": "#storage_types"
4335
},
4336
{
4337
"include": "source.cpp#number_literal"
4338
},
4339
{
4340
"include": "#string_context"
4341
},
4342
{
4343
"include": "source.cpp#comma"
4344
},
4345
{
4346
"include": "source.cpp#scope_resolution_inner_generated"
4347
},
4348
{
4349
"begin": "<",
4350
"end": ">|(?=(?<!\\\\)\n)",
4351
"beginCaptures": {
4352
"0": {
4353
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
4354
}
4355
},
4356
"endCaptures": {
4357
"0": {
4358
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
4359
}
4360
},
4361
"name": "meta.template.call.cpp",
4362
"patterns": [
4363
{
4364
"include": "#template_call_context"
4365
}
4366
]
4367
},
4368
{
4369
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
4370
"name": "entity.name.type.cpp"
4371
}
4372
]
4373
},
4374
"2": {
4375
"patterns": [
4376
{
4377
"include": "#attributes_context"
4378
},
4379
{
4380
"include": "source.cpp#number_literal"
4381
}
4382
]
4383
},
4384
"3": {
4385
"patterns": [
4386
{
4387
"include": "source.cpp#inline_comment"
4388
}
4389
]
4390
},
4391
"4": {
4392
"patterns": [
4393
{
4394
"match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
4395
"captures": {
4396
"1": {
4397
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4398
},
4399
"2": {
4400
"name": "comment.block.cpp"
4401
},
4402
"3": {
4403
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4404
}
4405
}
4406
}
4407
]
4408
},
4409
"5": {
4410
"patterns": [
4411
{
4412
"include": "source.cpp#inline_comment"
4413
}
4414
]
4415
},
4416
"6": {
4417
"patterns": [
4418
{
4419
"match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
4420
"captures": {
4421
"1": {
4422
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4423
},
4424
"2": {
4425
"name": "comment.block.cpp"
4426
},
4427
"3": {
4428
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4429
}
4430
}
4431
}
4432
]
4433
},
4434
"7": {
4435
"patterns": [
4436
{
4437
"match": "::",
4438
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4439
},
4440
{
4441
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4442
"name": "entity.name.scope-resolution.type.cpp"
4443
},
4444
{
4445
"include": "#template_call_range"
4446
}
4447
]
4448
},
4449
"8": {
4450
"patterns": [
4451
{
4452
"include": "#template_call_range"
4453
}
4454
]
4455
},
4456
"9": {},
4457
"10": {
4458
"patterns": [
4459
{
4460
"include": "source.cpp#inline_comment"
4461
}
4462
]
4463
},
4464
"11": {
4465
"patterns": [
4466
{
4467
"match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
4468
"captures": {
4469
"1": {
4470
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4471
},
4472
"2": {
4473
"name": "comment.block.cpp"
4474
},
4475
"3": {
4476
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4477
}
4478
}
4479
}
4480
]
4481
},
4482
"12": {}
4483
}
4484
}
4485
]
4486
},
4487
"lambdas": {
4488
"begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))",
4489
"end": "(?<=[;}])|(?=(?<!\\\\)\n)",
4490
"beginCaptures": {
4491
"1": {
4492
"name": "punctuation.definition.capture.begin.lambda.cpp"
4493
},
4494
"2": {
4495
"name": "meta.lambda.capture.cpp",
4496
"patterns": [
4497
{
4498
"include": "source.cpp#the_this_keyword"
4499
},
4500
{
4501
"match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
4502
"captures": {
4503
"1": {
4504
"name": "variable.parameter.capture.cpp"
4505
},
4506
"2": {
4507
"patterns": [
4508
{
4509
"include": "source.cpp#inline_comment"
4510
}
4511
]
4512
},
4513
"3": {
4514
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4515
},
4516
"4": {
4517
"name": "comment.block.cpp"
4518
},
4519
"5": {
4520
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4521
},
4522
"6": {
4523
"name": "punctuation.separator.delimiter.comma.cpp"
4524
},
4525
"7": {
4526
"name": "keyword.operator.assignment.cpp"
4527
}
4528
}
4529
},
4530
{
4531
"include": "#evaluation_context"
4532
}
4533
]
4534
},
4535
"3": {},
4536
"4": {
4537
"name": "punctuation.definition.capture.end.lambda.cpp"
4538
},
4539
"5": {
4540
"patterns": [
4541
{
4542
"include": "source.cpp#inline_comment"
4543
}
4544
]
4545
},
4546
"6": {
4547
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4548
},
4549
"7": {
4550
"name": "comment.block.cpp"
4551
},
4552
"8": {
4553
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4554
}
4555
},
4556
"endCaptures": {},
4557
"patterns": [
4558
{
4559
"begin": "\\(",
4560
"end": "\\)|(?=(?<!\\\\)\n)",
4561
"beginCaptures": {
4562
"0": {
4563
"name": "punctuation.definition.parameters.begin.lambda.cpp"
4564
}
4565
},
4566
"endCaptures": {
4567
"0": {
4568
"name": "punctuation.definition.parameters.end.lambda.cpp"
4569
}
4570
},
4571
"name": "meta.function.definition.parameters.lambda.cpp",
4572
"patterns": [
4573
{
4574
"include": "#function_parameter_context"
4575
}
4576
]
4577
},
4578
{
4579
"match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)",
4580
"name": "storage.modifier.lambda.$0.cpp"
4581
},
4582
{
4583
"begin": "->",
4584
"end": "(?=\\{)|(?=(?<!\\\\)\n)",
4585
"beginCaptures": {
4586
"0": {
4587
"name": "punctuation.definition.lambda.return-type.cpp"
4588
}
4589
},
4590
"endCaptures": {},
4591
"patterns": [
4592
{
4593
"include": "#comments"
4594
},
4595
{
4596
"match": "\\S+",
4597
"name": "storage.type.return-type.lambda.cpp"
4598
}
4599
]
4600
},
4601
{
4602
"begin": "\\{",
4603
"end": "\\}|(?=(?<!\\\\)\n)",
4604
"beginCaptures": {
4605
"0": {
4606
"name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
4607
}
4608
},
4609
"endCaptures": {
4610
"0": {
4611
"name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
4612
}
4613
},
4614
"name": "meta.function.definition.body.lambda.cpp",
4615
"patterns": [
4616
{
4617
"include": "$self"
4618
}
4619
]
4620
}
4621
]
4622
},
4623
"line": {
4624
"begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?line\\b",
4625
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
4626
"beginCaptures": {
4627
"0": {
4628
"name": "keyword.control.directive.line.cpp"
4629
},
4630
"1": {
4631
"patterns": [
4632
{
4633
"include": "source.cpp#inline_comment"
4634
}
4635
]
4636
},
4637
"2": {
4638
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4639
},
4640
"3": {
4641
"name": "comment.block.cpp"
4642
},
4643
"4": {
4644
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4645
},
4646
"5": {
4647
"name": "punctuation.definition.directive.cpp"
4648
}
4649
},
4650
"endCaptures": {},
4651
"name": "meta.preprocessor.line.cpp",
4652
"patterns": [
4653
{
4654
"include": "#string_context"
4655
},
4656
{
4657
"include": "#preprocessor_number_literal"
4658
},
4659
{
4660
"include": "source.cpp#line_continuation_character"
4661
}
4662
]
4663
},
4664
"line_comment": {
4665
"begin": "\\s*+(\\/\\/)",
4666
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
4667
"beginCaptures": {
4668
"1": {
4669
"name": "punctuation.definition.comment.cpp"
4670
}
4671
},
4672
"endCaptures": {},
4673
"name": "comment.line.double-slash.cpp",
4674
"patterns": [
4675
{
4676
"include": "source.cpp#line_continuation_character"
4677
}
4678
]
4679
},
4680
"macro": {
4681
"begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?define\\b)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
4682
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
4683
"beginCaptures": {
4684
"1": {
4685
"name": "keyword.control.directive.define.cpp"
4686
},
4687
"2": {
4688
"patterns": [
4689
{
4690
"include": "source.cpp#inline_comment"
4691
}
4692
]
4693
},
4694
"3": {
4695
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4696
},
4697
"4": {
4698
"name": "comment.block.cpp"
4699
},
4700
"5": {
4701
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4702
},
4703
"6": {
4704
"name": "punctuation.definition.directive.cpp"
4705
},
4706
"7": {
4707
"name": "entity.name.function.preprocessor.cpp"
4708
}
4709
},
4710
"endCaptures": {},
4711
"name": "meta.preprocessor.macro.cpp",
4712
"patterns": [
4713
{
4714
"match": "\\G(?:\\s+)?(\\()([^\\(]*)(\\))",
4715
"captures": {
4716
"1": {
4717
"name": "punctuation.definition.parameters.begin.preprocessor.cpp"
4718
},
4719
"2": {
4720
"name": "meta.function.preprocessor.parameters.cpp",
4721
"patterns": [
4722
{
4723
"match": "(?<=[(,])(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?",
4724
"captures": {
4725
"1": {
4726
"name": "variable.parameter.preprocessor.cpp"
4727
}
4728
}
4729
},
4730
{
4731
"match": ",",
4732
"name": "punctuation.separator.parameters.cpp"
4733
},
4734
{
4735
"match": "\\.\\.\\.",
4736
"name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp"
4737
}
4738
]
4739
},
4740
"3": {
4741
"name": "punctuation.definition.parameters.end.preprocessor.cpp"
4742
}
4743
}
4744
},
4745
{
4746
"include": "#macro_context"
4747
},
4748
{
4749
"include": "source.cpp#macro_argument"
4750
}
4751
]
4752
},
4753
"macro_context": {
4754
"patterns": [
4755
{
4756
"include": "source.cpp.embedded.macro"
4757
}
4758
]
4759
},
4760
"method_access": {
4761
"begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",
4762
"end": "\\)|(?=(?<!\\\\)\n)",
4763
"beginCaptures": {
4764
"1": {
4765
"patterns": [
4766
{
4767
"include": "source.cpp#inline_comment"
4768
}
4769
]
4770
},
4771
"2": {
4772
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4773
},
4774
"3": {
4775
"name": "comment.block.cpp"
4776
},
4777
"4": {
4778
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4779
},
4780
"5": {
4781
"name": "variable.language.this.cpp"
4782
},
4783
"6": {
4784
"name": "variable.other.object.access.cpp"
4785
},
4786
"7": {
4787
"name": "punctuation.separator.dot-access.cpp"
4788
},
4789
"8": {
4790
"name": "punctuation.separator.pointer-access.cpp"
4791
},
4792
"9": {
4793
"patterns": [
4794
{
4795
"match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
4796
"captures": {
4797
"1": {
4798
"patterns": [
4799
{
4800
"include": "source.cpp#inline_comment"
4801
}
4802
]
4803
},
4804
"2": {
4805
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4806
},
4807
"3": {
4808
"name": "comment.block.cpp"
4809
},
4810
"4": {
4811
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4812
},
4813
"5": {
4814
"name": "variable.language.this.cpp"
4815
},
4816
"6": {
4817
"name": "variable.other.object.property.cpp"
4818
},
4819
"7": {
4820
"name": "punctuation.separator.dot-access.cpp"
4821
},
4822
"8": {
4823
"name": "punctuation.separator.pointer-access.cpp"
4824
}
4825
}
4826
},
4827
{
4828
"match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
4829
"captures": {
4830
"1": {
4831
"patterns": [
4832
{
4833
"include": "source.cpp#inline_comment"
4834
}
4835
]
4836
},
4837
"2": {
4838
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4839
},
4840
"3": {
4841
"name": "comment.block.cpp"
4842
},
4843
"4": {
4844
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4845
},
4846
"5": {
4847
"name": "variable.language.this.cpp"
4848
},
4849
"6": {
4850
"name": "variable.other.object.access.cpp"
4851
},
4852
"7": {
4853
"name": "punctuation.separator.dot-access.cpp"
4854
},
4855
"8": {
4856
"name": "punctuation.separator.pointer-access.cpp"
4857
}
4858
}
4859
},
4860
{
4861
"include": "source.cpp#member_access"
4862
},
4863
{
4864
"include": "#method_access"
4865
}
4866
]
4867
},
4868
"10": {
4869
"name": "entity.name.function.member.cpp"
4870
},
4871
"11": {
4872
"name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
4873
}
4874
},
4875
"endCaptures": {
4876
"0": {
4877
"name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
4878
}
4879
},
4880
"patterns": [
4881
{
4882
"include": "#evaluation_context"
4883
}
4884
]
4885
},
4886
"ms_attributes": {
4887
"begin": "__declspec\\(",
4888
"end": "\\)|(?=(?<!\\\\)\n)",
4889
"beginCaptures": {
4890
"0": {
4891
"name": "punctuation.section.attribute.begin.cpp"
4892
}
4893
},
4894
"endCaptures": {
4895
"0": {
4896
"name": "punctuation.section.attribute.end.cpp"
4897
}
4898
},
4899
"name": "support.other.attribute.cpp",
4900
"patterns": [
4901
{
4902
"include": "#attributes_context"
4903
},
4904
{
4905
"begin": "\\(",
4906
"end": "\\)|(?=(?<!\\\\)\n)",
4907
"beginCaptures": {},
4908
"endCaptures": {},
4909
"patterns": [
4910
{
4911
"include": "#attributes_context"
4912
},
4913
{
4914
"include": "#string_context"
4915
},
4916
{
4917
"include": "#ever_present_context"
4918
}
4919
]
4920
},
4921
{
4922
"match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
4923
"captures": {
4924
"1": {
4925
"name": "keyword.other.using.directive.cpp"
4926
},
4927
"2": {
4928
"name": "entity.name.namespace.cpp"
4929
}
4930
}
4931
},
4932
{
4933
"match": ",",
4934
"name": "punctuation.separator.attribute.cpp"
4935
},
4936
{
4937
"match": ":",
4938
"name": "punctuation.accessor.attribute.cpp"
4939
},
4940
{
4941
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
4942
"name": "entity.name.namespace.cpp"
4943
},
4944
{
4945
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4946
"name": "entity.other.attribute.$0.cpp"
4947
},
4948
{
4949
"include": "source.cpp#number_literal"
4950
},
4951
{
4952
"include": "#ever_present_context"
4953
}
4954
]
4955
},
4956
"namespace_block": {
4957
"begin": "((?<!\\w)namespace(?!\\w))",
4958
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
4959
"beginCaptures": {
4960
"0": {
4961
"name": "meta.head.namespace.cpp"
4962
},
4963
"1": {
4964
"name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
4965
}
4966
},
4967
"endCaptures": {},
4968
"name": "meta.block.namespace.cpp",
4969
"patterns": [
4970
{
4971
"begin": "\\G ?",
4972
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
4973
"beginCaptures": {},
4974
"endCaptures": {
4975
"0": {
4976
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
4977
}
4978
},
4979
"name": "meta.head.namespace.cpp",
4980
"patterns": [
4981
{
4982
"include": "#ever_present_context"
4983
},
4984
{
4985
"include": "#attributes_context"
4986
},
4987
{
4988
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<4>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(::)(?:\\s+)?(inline))?",
4989
"captures": {
4990
"1": {
4991
"patterns": [
4992
{
4993
"include": "source.cpp#scope_resolution_namespace_block_inner_generated"
4994
}
4995
]
4996
},
4997
"2": {
4998
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
4999
},
5000
"3": {
5001
"patterns": [
5002
{
5003
"include": "#template_call_range"
5004
}
5005
]
5006
},
5007
"4": {},
5008
"5": {
5009
"name": "entity.name.namespace.cpp"
5010
},
5011
"6": {
5012
"name": "punctuation.separator.scope-resolution.namespace.block.cpp"
5013
},
5014
"7": {
5015
"name": "storage.modifier.inline.cpp"
5016
}
5017
}
5018
}
5019
]
5020
},
5021
{
5022
"begin": "(?<=\\{|<%|\\?\\?<)",
5023
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
5024
"beginCaptures": {},
5025
"endCaptures": {
5026
"0": {
5027
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
5028
}
5029
},
5030
"name": "meta.body.namespace.cpp",
5031
"patterns": [
5032
{
5033
"include": "$self"
5034
}
5035
]
5036
},
5037
{
5038
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
5039
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
5040
"beginCaptures": {},
5041
"endCaptures": {},
5042
"name": "meta.tail.namespace.cpp",
5043
"patterns": [
5044
{
5045
"include": "$self"
5046
}
5047
]
5048
}
5049
]
5050
},
5051
"noexcept_operator": {
5052
"begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5053
"end": "\\)|(?=(?<!\\\\)\n)",
5054
"beginCaptures": {
5055
"1": {
5056
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
5057
},
5058
"2": {
5059
"patterns": [
5060
{
5061
"include": "source.cpp#inline_comment"
5062
}
5063
]
5064
},
5065
"3": {
5066
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5067
},
5068
"4": {
5069
"name": "comment.block.cpp"
5070
},
5071
"5": {
5072
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5073
},
5074
"6": {
5075
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
5076
}
5077
},
5078
"endCaptures": {
5079
"0": {
5080
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
5081
}
5082
},
5083
"contentName": "meta.arguments.operator.noexcept",
5084
"patterns": [
5085
{
5086
"include": "#evaluation_context"
5087
}
5088
]
5089
},
5090
"operator_overload": {
5091
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:\\[\\])?)))|(\"\")((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\<|\\()",
5092
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
5093
"beginCaptures": {
5094
"0": {
5095
"name": "meta.head.function.definition.special.operator-overload.cpp"
5096
},
5097
"1": {
5098
"patterns": [
5099
{
5100
"include": "source.cpp#inline_comment"
5101
}
5102
]
5103
},
5104
"2": {
5105
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5106
},
5107
"3": {
5108
"name": "comment.block.cpp"
5109
},
5110
"4": {
5111
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5112
},
5113
"5": {
5114
"name": "meta.qualified_type.cpp",
5115
"patterns": [
5116
{
5117
"match": "::",
5118
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
5119
},
5120
{
5121
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
5122
"name": "storage.type.$0.cpp"
5123
},
5124
{
5125
"include": "#attributes_context"
5126
},
5127
{
5128
"include": "#storage_types"
5129
},
5130
{
5131
"include": "source.cpp#number_literal"
5132
},
5133
{
5134
"include": "#string_context"
5135
},
5136
{
5137
"include": "source.cpp#comma"
5138
},
5139
{
5140
"include": "source.cpp#scope_resolution_inner_generated"
5141
},
5142
{
5143
"begin": "<",
5144
"end": ">|(?=(?<!\\\\)\n)",
5145
"beginCaptures": {
5146
"0": {
5147
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
5148
}
5149
},
5150
"endCaptures": {
5151
"0": {
5152
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
5153
}
5154
},
5155
"name": "meta.template.call.cpp",
5156
"patterns": [
5157
{
5158
"include": "#template_call_context"
5159
}
5160
]
5161
},
5162
{
5163
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
5164
"name": "entity.name.type.cpp"
5165
}
5166
]
5167
},
5168
"6": {
5169
"patterns": [
5170
{
5171
"include": "#attributes_context"
5172
},
5173
{
5174
"include": "source.cpp#number_literal"
5175
}
5176
]
5177
},
5178
"7": {
5179
"patterns": [
5180
{
5181
"include": "source.cpp#inline_comment"
5182
}
5183
]
5184
},
5185
"8": {
5186
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5187
},
5188
"9": {
5189
"name": "comment.block.cpp"
5190
},
5191
"10": {
5192
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5193
},
5194
"11": {
5195
"patterns": [
5196
{
5197
"include": "source.cpp#inline_comment"
5198
}
5199
]
5200
},
5201
"12": {
5202
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5203
},
5204
"13": {
5205
"name": "comment.block.cpp"
5206
},
5207
"14": {
5208
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5209
},
5210
"15": {
5211
"patterns": [
5212
{
5213
"match": "::",
5214
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
5215
},
5216
{
5217
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
5218
"name": "entity.name.scope-resolution.type.cpp"
5219
},
5220
{
5221
"include": "#template_call_range"
5222
}
5223
]
5224
},
5225
"16": {
5226
"patterns": [
5227
{
5228
"include": "#template_call_range"
5229
}
5230
]
5231
},
5232
"17": {},
5233
"18": {
5234
"patterns": [
5235
{
5236
"include": "source.cpp#inline_comment"
5237
}
5238
]
5239
},
5240
"19": {
5241
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5242
},
5243
"20": {
5244
"name": "comment.block.cpp"
5245
},
5246
"21": {
5247
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5248
},
5249
"22": {},
5250
"23": {
5251
"patterns": [
5252
{
5253
"match": "\\*",
5254
"name": "storage.modifier.pointer.cpp"
5255
},
5256
{
5257
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
5258
"captures": {
5259
"1": {
5260
"patterns": [
5261
{
5262
"include": "source.cpp#inline_comment"
5263
}
5264
]
5265
},
5266
"2": {
5267
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5268
},
5269
"3": {
5270
"name": "comment.block.cpp"
5271
},
5272
"4": {
5273
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5274
}
5275
},
5276
"name": "invalid.illegal.reference-type.cpp"
5277
},
5278
{
5279
"match": "\\&",
5280
"name": "storage.modifier.reference.cpp"
5281
}
5282
]
5283
},
5284
"24": {
5285
"patterns": [
5286
{
5287
"include": "source.cpp#inline_comment"
5288
}
5289
]
5290
},
5291
"25": {
5292
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5293
},
5294
"26": {
5295
"name": "comment.block.cpp"
5296
},
5297
"27": {
5298
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5299
},
5300
"28": {
5301
"patterns": [
5302
{
5303
"include": "source.cpp#inline_comment"
5304
}
5305
]
5306
},
5307
"29": {
5308
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5309
},
5310
"30": {
5311
"name": "comment.block.cpp"
5312
},
5313
"31": {
5314
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5315
},
5316
"32": {
5317
"patterns": [
5318
{
5319
"include": "source.cpp#inline_comment"
5320
}
5321
]
5322
},
5323
"33": {
5324
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5325
},
5326
"34": {
5327
"name": "comment.block.cpp"
5328
},
5329
"35": {
5330
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5331
},
5332
"36": {
5333
"name": "storage.type.modifier.calling-convention.cpp"
5334
},
5335
"37": {
5336
"patterns": [
5337
{
5338
"include": "source.cpp#inline_comment"
5339
}
5340
]
5341
},
5342
"38": {
5343
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5344
},
5345
"39": {
5346
"name": "comment.block.cpp"
5347
},
5348
"40": {
5349
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5350
},
5351
"41": {
5352
"patterns": [
5353
{
5354
"include": "source.cpp#inline_comment"
5355
}
5356
]
5357
},
5358
"42": {
5359
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5360
},
5361
"43": {
5362
"name": "comment.block.cpp"
5363
},
5364
"44": {
5365
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5366
},
5367
"45": {
5368
"patterns": [
5369
{
5370
"match": "::",
5371
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp"
5372
},
5373
{
5374
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
5375
"name": "entity.name.scope-resolution.operator.cpp"
5376
},
5377
{
5378
"include": "#template_call_range"
5379
}
5380
]
5381
},
5382
"46": {
5383
"patterns": [
5384
{
5385
"include": "#template_call_range"
5386
}
5387
]
5388
},
5389
"47": {},
5390
"48": {
5391
"name": "keyword.other.operator.overload.cpp"
5392
},
5393
"49": {
5394
"patterns": [
5395
{
5396
"include": "source.cpp#inline_comment"
5397
}
5398
]
5399
},
5400
"50": {
5401
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5402
},
5403
"51": {
5404
"name": "comment.block.cpp"
5405
},
5406
"52": {
5407
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5408
},
5409
"53": {
5410
"patterns": [
5411
{
5412
"match": "::",
5413
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp"
5414
},
5415
{
5416
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
5417
"name": "entity.name.scope-resolution.operator-overload.cpp"
5418
},
5419
{
5420
"include": "#template_call_range"
5421
}
5422
]
5423
},
5424
"54": {
5425
"patterns": [
5426
{
5427
"include": "#template_call_range"
5428
}
5429
]
5430
},
5431
"55": {},
5432
"56": {
5433
"name": "entity.name.operator.cpp"
5434
},
5435
"57": {
5436
"name": "entity.name.operator.type.cpp"
5437
},
5438
"58": {
5439
"patterns": [
5440
{
5441
"match": "\\*",
5442
"name": "entity.name.operator.type.pointer.cpp"
5443
},
5444
{
5445
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
5446
"captures": {
5447
"1": {
5448
"patterns": [
5449
{
5450
"include": "source.cpp#inline_comment"
5451
}
5452
]
5453
},
5454
"2": {
5455
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5456
},
5457
"3": {
5458
"name": "comment.block.cpp"
5459
},
5460
"4": {
5461
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5462
}
5463
},
5464
"name": "invalid.illegal.reference-type.cpp"
5465
},
5466
{
5467
"match": "\\&",
5468
"name": "entity.name.operator.type.reference.cpp"
5469
}
5470
]
5471
},
5472
"59": {
5473
"patterns": [
5474
{
5475
"include": "source.cpp#inline_comment"
5476
}
5477
]
5478
},
5479
"60": {
5480
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5481
},
5482
"61": {
5483
"name": "comment.block.cpp"
5484
},
5485
"62": {
5486
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5487
},
5488
"63": {
5489
"patterns": [
5490
{
5491
"include": "source.cpp#inline_comment"
5492
}
5493
]
5494
},
5495
"64": {
5496
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5497
},
5498
"65": {
5499
"name": "comment.block.cpp"
5500
},
5501
"66": {
5502
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5503
},
5504
"67": {
5505
"patterns": [
5506
{
5507
"include": "source.cpp#inline_comment"
5508
}
5509
]
5510
},
5511
"68": {
5512
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5513
},
5514
"69": {
5515
"name": "comment.block.cpp"
5516
},
5517
"70": {
5518
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5519
},
5520
"71": {
5521
"name": "entity.name.operator.type.array.cpp"
5522
},
5523
"72": {
5524
"name": "entity.name.operator.custom-literal.cpp"
5525
},
5526
"73": {
5527
"patterns": [
5528
{
5529
"include": "source.cpp#inline_comment"
5530
}
5531
]
5532
},
5533
"74": {
5534
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5535
},
5536
"75": {
5537
"name": "comment.block.cpp"
5538
},
5539
"76": {
5540
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5541
},
5542
"77": {
5543
"name": "entity.name.operator.custom-literal.cpp"
5544
},
5545
"78": {
5546
"patterns": [
5547
{
5548
"include": "source.cpp#inline_comment"
5549
}
5550
]
5551
},
5552
"79": {
5553
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5554
},
5555
"80": {
5556
"name": "comment.block.cpp"
5557
},
5558
"81": {
5559
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5560
}
5561
},
5562
"endCaptures": {},
5563
"name": "meta.function.definition.special.operator-overload.cpp",
5564
"patterns": [
5565
{
5566
"begin": "\\G ?",
5567
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
5568
"beginCaptures": {},
5569
"endCaptures": {
5570
"0": {
5571
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
5572
}
5573
},
5574
"name": "meta.head.function.definition.special.operator-overload.cpp",
5575
"patterns": [
5576
{
5577
"include": "#ever_present_context"
5578
},
5579
{
5580
"include": "#template_call_range"
5581
},
5582
{
5583
"begin": "\\(",
5584
"end": "\\)|(?=(?<!\\\\)\n)",
5585
"beginCaptures": {
5586
"0": {
5587
"name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
5588
}
5589
},
5590
"endCaptures": {
5591
"0": {
5592
"name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
5593
}
5594
},
5595
"contentName": "meta.function.definition.parameters.special.operator-overload",
5596
"patterns": [
5597
{
5598
"include": "#function_parameter_context"
5599
},
5600
{
5601
"include": "#evaluation_context"
5602
}
5603
]
5604
},
5605
{
5606
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
5607
},
5608
{
5609
"match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
5610
"captures": {
5611
"1": {
5612
"name": "keyword.operator.assignment.cpp"
5613
},
5614
"2": {
5615
"patterns": [
5616
{
5617
"include": "source.cpp#inline_comment"
5618
}
5619
]
5620
},
5621
"3": {
5622
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5623
},
5624
"4": {
5625
"name": "comment.block.cpp"
5626
},
5627
"5": {
5628
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5629
},
5630
"6": {
5631
"name": "keyword.other.default.function.cpp"
5632
},
5633
"7": {
5634
"name": "keyword.other.delete.function.cpp"
5635
}
5636
}
5637
},
5638
{
5639
"include": "$self"
5640
}
5641
]
5642
},
5643
{
5644
"begin": "(?<=\\{|<%|\\?\\?<)",
5645
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
5646
"beginCaptures": {},
5647
"endCaptures": {
5648
"0": {
5649
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
5650
}
5651
},
5652
"name": "meta.body.function.definition.special.operator-overload.cpp",
5653
"patterns": [
5654
{
5655
"include": "#function_body_context"
5656
}
5657
]
5658
},
5659
{
5660
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
5661
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
5662
"beginCaptures": {},
5663
"endCaptures": {},
5664
"name": "meta.tail.function.definition.special.operator-overload.cpp",
5665
"patterns": [
5666
{
5667
"include": "$self"
5668
}
5669
]
5670
}
5671
]
5672
},
5673
"operators": {
5674
"patterns": [
5675
{
5676
"begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5677
"end": "\\)|(?=(?<!\\\\)\n)",
5678
"beginCaptures": {
5679
"1": {
5680
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
5681
},
5682
"2": {
5683
"patterns": [
5684
{
5685
"include": "source.cpp#inline_comment"
5686
}
5687
]
5688
},
5689
"3": {
5690
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5691
},
5692
"4": {
5693
"name": "comment.block.cpp"
5694
},
5695
"5": {
5696
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5697
},
5698
"6": {
5699
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
5700
}
5701
},
5702
"endCaptures": {
5703
"0": {
5704
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
5705
}
5706
},
5707
"contentName": "meta.arguments.operator.sizeof",
5708
"patterns": [
5709
{
5710
"include": "#evaluation_context"
5711
}
5712
]
5713
},
5714
{
5715
"begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5716
"end": "\\)|(?=(?<!\\\\)\n)",
5717
"beginCaptures": {
5718
"1": {
5719
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
5720
},
5721
"2": {
5722
"patterns": [
5723
{
5724
"include": "source.cpp#inline_comment"
5725
}
5726
]
5727
},
5728
"3": {
5729
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5730
},
5731
"4": {
5732
"name": "comment.block.cpp"
5733
},
5734
"5": {
5735
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5736
},
5737
"6": {
5738
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
5739
}
5740
},
5741
"endCaptures": {
5742
"0": {
5743
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
5744
}
5745
},
5746
"contentName": "meta.arguments.operator.alignof",
5747
"patterns": [
5748
{
5749
"include": "#evaluation_context"
5750
}
5751
]
5752
},
5753
{
5754
"begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5755
"end": "\\)|(?=(?<!\\\\)\n)",
5756
"beginCaptures": {
5757
"1": {
5758
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
5759
},
5760
"2": {
5761
"patterns": [
5762
{
5763
"include": "source.cpp#inline_comment"
5764
}
5765
]
5766
},
5767
"3": {
5768
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5769
},
5770
"4": {
5771
"name": "comment.block.cpp"
5772
},
5773
"5": {
5774
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5775
},
5776
"6": {
5777
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
5778
}
5779
},
5780
"endCaptures": {
5781
"0": {
5782
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
5783
}
5784
},
5785
"contentName": "meta.arguments.operator.alignas",
5786
"patterns": [
5787
{
5788
"include": "#evaluation_context"
5789
}
5790
]
5791
},
5792
{
5793
"begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5794
"end": "\\)|(?=(?<!\\\\)\n)",
5795
"beginCaptures": {
5796
"1": {
5797
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
5798
},
5799
"2": {
5800
"patterns": [
5801
{
5802
"include": "source.cpp#inline_comment"
5803
}
5804
]
5805
},
5806
"3": {
5807
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5808
},
5809
"4": {
5810
"name": "comment.block.cpp"
5811
},
5812
"5": {
5813
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5814
},
5815
"6": {
5816
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
5817
}
5818
},
5819
"endCaptures": {
5820
"0": {
5821
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
5822
}
5823
},
5824
"contentName": "meta.arguments.operator.typeid",
5825
"patterns": [
5826
{
5827
"include": "#evaluation_context"
5828
}
5829
]
5830
},
5831
{
5832
"begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5833
"end": "\\)|(?=(?<!\\\\)\n)",
5834
"beginCaptures": {
5835
"1": {
5836
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
5837
},
5838
"2": {
5839
"patterns": [
5840
{
5841
"include": "source.cpp#inline_comment"
5842
}
5843
]
5844
},
5845
"3": {
5846
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5847
},
5848
"4": {
5849
"name": "comment.block.cpp"
5850
},
5851
"5": {
5852
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5853
},
5854
"6": {
5855
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
5856
}
5857
},
5858
"endCaptures": {
5859
"0": {
5860
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
5861
}
5862
},
5863
"contentName": "meta.arguments.operator.noexcept",
5864
"patterns": [
5865
{
5866
"include": "#evaluation_context"
5867
}
5868
]
5869
},
5870
{
5871
"begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
5872
"end": "\\)|(?=(?<!\\\\)\n)",
5873
"beginCaptures": {
5874
"1": {
5875
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
5876
},
5877
"2": {
5878
"patterns": [
5879
{
5880
"include": "source.cpp#inline_comment"
5881
}
5882
]
5883
},
5884
"3": {
5885
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5886
},
5887
"4": {
5888
"name": "comment.block.cpp"
5889
},
5890
"5": {
5891
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5892
},
5893
"6": {
5894
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
5895
}
5896
},
5897
"endCaptures": {
5898
"0": {
5899
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
5900
}
5901
},
5902
"contentName": "meta.arguments.operator.sizeof.variadic",
5903
"patterns": [
5904
{
5905
"include": "#evaluation_context"
5906
}
5907
]
5908
},
5909
{
5910
"match": "--",
5911
"name": "keyword.operator.decrement.cpp"
5912
},
5913
{
5914
"match": "\\+\\+",
5915
"name": "keyword.operator.increment.cpp"
5916
},
5917
{
5918
"match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=",
5919
"name": "keyword.operator.assignment.compound.cpp"
5920
},
5921
{
5922
"match": "&=|\\^=|<<=|>>=|\\|=",
5923
"name": "keyword.operator.assignment.compound.bitwise.cpp"
5924
},
5925
{
5926
"match": "<<|>>",
5927
"name": "keyword.operator.bitwise.shift.cpp"
5928
},
5929
{
5930
"match": "!=|<=|>=|==|<|>",
5931
"name": "keyword.operator.comparison.cpp"
5932
},
5933
{
5934
"match": "&&|!|\\|\\|",
5935
"name": "keyword.operator.logical.cpp"
5936
},
5937
{
5938
"match": "&|\\||\\^|~",
5939
"name": "keyword.operator.bitwise.cpp"
5940
},
5941
{
5942
"include": "source.cpp#assignment_operator"
5943
},
5944
{
5945
"match": "%|\\*|\\/|-|\\+",
5946
"name": "keyword.operator.arithmetic.cpp"
5947
},
5948
{
5949
"include": "#ternary_operator"
5950
}
5951
]
5952
},
5953
"parameter": {
5954
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)",
5955
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
5956
"beginCaptures": {
5957
"1": {
5958
"patterns": [
5959
{
5960
"include": "source.cpp#inline_comment"
5961
}
5962
]
5963
},
5964
"2": {
5965
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5966
},
5967
"3": {
5968
"name": "comment.block.cpp"
5969
},
5970
"4": {
5971
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5972
}
5973
},
5974
"endCaptures": {
5975
"1": {
5976
"name": "punctuation.separator.delimiter.comma.cpp"
5977
}
5978
},
5979
"name": "meta.parameter.cpp",
5980
"patterns": [
5981
{
5982
"include": "#ever_present_context"
5983
},
5984
{
5985
"include": "#string_context"
5986
},
5987
{
5988
"include": "#function_pointer_parameter"
5989
},
5990
{
5991
"include": "#decltype"
5992
},
5993
{
5994
"include": "source.cpp#vararg_ellipses"
5995
},
5996
{
5997
"match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)",
5998
"captures": {
5999
"1": {
6000
"patterns": [
6001
{
6002
"include": "#storage_types"
6003
}
6004
]
6005
},
6006
"2": {
6007
"name": "storage.modifier.specifier.parameter.cpp"
6008
},
6009
"3": {
6010
"patterns": [
6011
{
6012
"include": "source.cpp#inline_comment"
6013
}
6014
]
6015
},
6016
"4": {
6017
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6018
},
6019
"5": {
6020
"name": "comment.block.cpp"
6021
},
6022
"6": {
6023
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6024
},
6025
"7": {
6026
"patterns": [
6027
{
6028
"include": "source.cpp#inline_comment"
6029
}
6030
]
6031
},
6032
"8": {
6033
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6034
},
6035
"9": {
6036
"name": "comment.block.cpp"
6037
},
6038
"10": {
6039
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6040
},
6041
"11": {
6042
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
6043
},
6044
"12": {
6045
"name": "storage.type.cpp storage.type.built-in.cpp"
6046
},
6047
"13": {
6048
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
6049
},
6050
"14": {
6051
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
6052
},
6053
"15": {
6054
"name": "entity.name.type.parameter.cpp"
6055
},
6056
"16": {
6057
"patterns": [
6058
{
6059
"include": "source.cpp#inline_comment"
6060
}
6061
]
6062
},
6063
"17": {
6064
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6065
},
6066
"18": {
6067
"name": "comment.block.cpp"
6068
},
6069
"19": {
6070
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6071
}
6072
}
6073
},
6074
{
6075
"include": "#storage_types"
6076
},
6077
{
6078
"include": "source.cpp#scope_resolution_parameter_inner_generated"
6079
},
6080
{
6081
"match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
6082
"name": "storage.type.$0.cpp"
6083
},
6084
{
6085
"begin": "(?<==)",
6086
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6087
"beginCaptures": {},
6088
"endCaptures": {
6089
"1": {
6090
"name": "punctuation.separator.delimiter.comma.cpp"
6091
}
6092
},
6093
"patterns": [
6094
{
6095
"include": "#evaluation_context"
6096
}
6097
]
6098
},
6099
{
6100
"match": "\\=",
6101
"name": "keyword.operator.assignment.cpp"
6102
},
6103
{
6104
"match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\)|,|\\[|=|\\n)",
6105
"captures": {
6106
"1": {
6107
"patterns": [
6108
{
6109
"include": "source.cpp#inline_comment"
6110
}
6111
]
6112
},
6113
"2": {
6114
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6115
},
6116
"3": {
6117
"name": "comment.block.cpp"
6118
},
6119
"4": {
6120
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6121
},
6122
"5": {
6123
"name": "variable.parameter.cpp"
6124
},
6125
"6": {
6126
"patterns": [
6127
{
6128
"include": "source.cpp#inline_comment"
6129
}
6130
]
6131
},
6132
"7": {
6133
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6134
},
6135
"8": {
6136
"name": "comment.block.cpp"
6137
},
6138
"9": {
6139
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6140
}
6141
}
6142
},
6143
{
6144
"include": "#attributes_context"
6145
},
6146
{
6147
"begin": "\\[",
6148
"end": "\\]|(?=(?<!\\\\)\n)",
6149
"beginCaptures": {
6150
"0": {
6151
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
6152
}
6153
},
6154
"endCaptures": {
6155
"0": {
6156
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
6157
}
6158
},
6159
"name": "meta.bracket.square.array.cpp",
6160
"patterns": [
6161
{
6162
"include": "#evaluation_context"
6163
}
6164
]
6165
},
6166
{
6167
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",
6168
"name": "entity.name.type.parameter.cpp"
6169
},
6170
{
6171
"include": "#template_call_range"
6172
},
6173
{
6174
"match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)",
6175
"captures": {
6176
"0": {
6177
"patterns": [
6178
{
6179
"match": "\\*",
6180
"name": "storage.modifier.pointer.cpp"
6181
},
6182
{
6183
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
6184
"captures": {
6185
"1": {
6186
"patterns": [
6187
{
6188
"include": "source.cpp#inline_comment"
6189
}
6190
]
6191
},
6192
"2": {
6193
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6194
},
6195
"3": {
6196
"name": "comment.block.cpp"
6197
},
6198
"4": {
6199
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6200
}
6201
},
6202
"name": "invalid.illegal.reference-type.cpp"
6203
},
6204
{
6205
"match": "\\&",
6206
"name": "storage.modifier.reference.cpp"
6207
}
6208
]
6209
},
6210
"1": {
6211
"patterns": [
6212
{
6213
"include": "source.cpp#inline_comment"
6214
}
6215
]
6216
},
6217
"2": {
6218
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6219
},
6220
"3": {
6221
"name": "comment.block.cpp"
6222
},
6223
"4": {
6224
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6225
},
6226
"5": {
6227
"patterns": [
6228
{
6229
"include": "source.cpp#inline_comment"
6230
}
6231
]
6232
},
6233
"6": {
6234
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6235
},
6236
"7": {
6237
"name": "comment.block.cpp"
6238
},
6239
"8": {
6240
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6241
}
6242
}
6243
},
6244
{
6245
"include": "#ever_present_context"
6246
}
6247
]
6248
},
6249
"parameter_or_maybe_value": {
6250
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)",
6251
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6252
"beginCaptures": {
6253
"1": {
6254
"patterns": [
6255
{
6256
"include": "source.cpp#inline_comment"
6257
}
6258
]
6259
},
6260
"2": {
6261
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6262
},
6263
"3": {
6264
"name": "comment.block.cpp"
6265
},
6266
"4": {
6267
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6268
}
6269
},
6270
"endCaptures": {
6271
"1": {
6272
"name": "punctuation.separator.delimiter.comma.cpp"
6273
}
6274
},
6275
"name": "meta.parameter.cpp",
6276
"patterns": [
6277
{
6278
"include": "#ever_present_context"
6279
},
6280
{
6281
"include": "#function_pointer_parameter"
6282
},
6283
{
6284
"include": "source.cpp#memory_operators"
6285
},
6286
{
6287
"include": "#builtin_storage_type_initilizer"
6288
},
6289
{
6290
"include": "#curly_initializer"
6291
},
6292
{
6293
"include": "#decltype"
6294
},
6295
{
6296
"include": "source.cpp#vararg_ellipses"
6297
},
6298
{
6299
"match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)",
6300
"captures": {
6301
"1": {
6302
"patterns": [
6303
{
6304
"include": "#storage_types"
6305
}
6306
]
6307
},
6308
"2": {
6309
"name": "storage.modifier.specifier.parameter.cpp"
6310
},
6311
"3": {
6312
"patterns": [
6313
{
6314
"include": "source.cpp#inline_comment"
6315
}
6316
]
6317
},
6318
"4": {
6319
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6320
},
6321
"5": {
6322
"name": "comment.block.cpp"
6323
},
6324
"6": {
6325
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6326
},
6327
"7": {
6328
"patterns": [
6329
{
6330
"include": "source.cpp#inline_comment"
6331
}
6332
]
6333
},
6334
"8": {
6335
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6336
},
6337
"9": {
6338
"name": "comment.block.cpp"
6339
},
6340
"10": {
6341
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6342
},
6343
"11": {
6344
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
6345
},
6346
"12": {
6347
"name": "storage.type.cpp storage.type.built-in.cpp"
6348
},
6349
"13": {
6350
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
6351
},
6352
"14": {
6353
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
6354
},
6355
"15": {
6356
"name": "entity.name.type.parameter.cpp"
6357
},
6358
"16": {
6359
"patterns": [
6360
{
6361
"include": "source.cpp#inline_comment"
6362
}
6363
]
6364
},
6365
"17": {
6366
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6367
},
6368
"18": {
6369
"name": "comment.block.cpp"
6370
},
6371
"19": {
6372
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6373
}
6374
}
6375
},
6376
{
6377
"include": "#storage_types"
6378
},
6379
{
6380
"include": "#function_call"
6381
},
6382
{
6383
"include": "source.cpp#scope_resolution_parameter_inner_generated"
6384
},
6385
{
6386
"match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
6387
"name": "storage.type.$0.cpp"
6388
},
6389
{
6390
"begin": "(?<==)",
6391
"end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6392
"beginCaptures": {},
6393
"endCaptures": {
6394
"1": {
6395
"name": "punctuation.separator.delimiter.comma.cpp"
6396
}
6397
},
6398
"patterns": [
6399
{
6400
"include": "#evaluation_context"
6401
}
6402
]
6403
},
6404
{
6405
"match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))",
6406
"captures": {
6407
"1": {
6408
"patterns": [
6409
{
6410
"include": "source.cpp#inline_comment"
6411
}
6412
]
6413
},
6414
"2": {
6415
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6416
},
6417
"3": {
6418
"name": "comment.block.cpp"
6419
},
6420
"4": {
6421
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6422
},
6423
"5": {
6424
"name": "variable.parameter.cpp"
6425
},
6426
"6": {
6427
"patterns": [
6428
{
6429
"include": "source.cpp#inline_comment"
6430
}
6431
]
6432
},
6433
"7": {
6434
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6435
},
6436
"8": {
6437
"name": "comment.block.cpp"
6438
},
6439
"9": {
6440
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6441
}
6442
}
6443
},
6444
{
6445
"include": "#attributes_context"
6446
},
6447
{
6448
"begin": "\\[",
6449
"end": "\\]|(?=(?<!\\\\)\n)",
6450
"beginCaptures": {
6451
"0": {
6452
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
6453
}
6454
},
6455
"endCaptures": {
6456
"0": {
6457
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
6458
}
6459
},
6460
"name": "meta.bracket.square.array.cpp",
6461
"patterns": [
6462
{
6463
"include": "#evaluation_context"
6464
}
6465
]
6466
},
6467
{
6468
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",
6469
"name": "entity.name.type.parameter.cpp"
6470
},
6471
{
6472
"include": "#template_call_range"
6473
},
6474
{
6475
"match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)",
6476
"captures": {
6477
"0": {
6478
"patterns": [
6479
{
6480
"match": "\\*",
6481
"name": "storage.modifier.pointer.cpp"
6482
},
6483
{
6484
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
6485
"captures": {
6486
"1": {
6487
"patterns": [
6488
{
6489
"include": "source.cpp#inline_comment"
6490
}
6491
]
6492
},
6493
"2": {
6494
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6495
},
6496
"3": {
6497
"name": "comment.block.cpp"
6498
},
6499
"4": {
6500
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6501
}
6502
},
6503
"name": "invalid.illegal.reference-type.cpp"
6504
},
6505
{
6506
"match": "\\&",
6507
"name": "storage.modifier.reference.cpp"
6508
}
6509
]
6510
},
6511
"1": {
6512
"patterns": [
6513
{
6514
"include": "source.cpp#inline_comment"
6515
}
6516
]
6517
},
6518
"2": {
6519
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6520
},
6521
"3": {
6522
"name": "comment.block.cpp"
6523
},
6524
"4": {
6525
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6526
},
6527
"5": {
6528
"patterns": [
6529
{
6530
"include": "source.cpp#inline_comment"
6531
}
6532
]
6533
},
6534
"6": {
6535
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6536
},
6537
"7": {
6538
"name": "comment.block.cpp"
6539
},
6540
"8": {
6541
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6542
}
6543
}
6544
},
6545
{
6546
"include": "#evaluation_context"
6547
},
6548
{
6549
"include": "#ever_present_context"
6550
}
6551
]
6552
},
6553
"parentheses": {
6554
"begin": "\\(",
6555
"end": "\\)|(?=(?<!\\\\)\n)",
6556
"beginCaptures": {
6557
"0": {
6558
"name": "punctuation.section.parens.begin.bracket.round.cpp"
6559
}
6560
},
6561
"endCaptures": {
6562
"0": {
6563
"name": "punctuation.section.parens.end.bracket.round.cpp"
6564
}
6565
},
6566
"name": "meta.parens.cpp",
6567
"patterns": [
6568
{
6569
"include": "source.cpp#over_qualified_types"
6570
},
6571
{
6572
"match": "(?<!:):(?!:)",
6573
"name": "punctuation.separator.colon.range-based.cpp"
6574
},
6575
{
6576
"include": "#evaluation_context"
6577
}
6578
]
6579
},
6580
"pragma": {
6581
"begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\b",
6582
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
6583
"beginCaptures": {
6584
"0": {
6585
"name": "keyword.control.directive.pragma.cpp"
6586
},
6587
"1": {
6588
"patterns": [
6589
{
6590
"include": "source.cpp#inline_comment"
6591
}
6592
]
6593
},
6594
"2": {
6595
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6596
},
6597
"3": {
6598
"name": "comment.block.cpp"
6599
},
6600
"4": {
6601
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6602
},
6603
"5": {
6604
"name": "punctuation.definition.directive.cpp"
6605
}
6606
},
6607
"endCaptures": {},
6608
"name": "meta.preprocessor.pragma.cpp",
6609
"patterns": [
6610
{
6611
"include": "#comments"
6612
},
6613
{
6614
"include": "#string_context"
6615
},
6616
{
6617
"match": "[a-zA-Z_$][\\w\\-$]*",
6618
"name": "entity.other.attribute-name.pragma.preprocessor.cpp"
6619
},
6620
{
6621
"include": "#preprocessor_number_literal"
6622
},
6623
{
6624
"include": "source.cpp#line_continuation_character"
6625
}
6626
]
6627
},
6628
"preprocessor_conditional_context": {
6629
"patterns": [
6630
{
6631
"include": "#preprocessor_conditional_defined"
6632
},
6633
{
6634
"include": "#comments"
6635
},
6636
{
6637
"include": "source.cpp#language_constants"
6638
},
6639
{
6640
"include": "#string_context"
6641
},
6642
{
6643
"include": "source.cpp#d9bc4796b0b_preprocessor_number_literal"
6644
},
6645
{
6646
"include": "#operators"
6647
},
6648
{
6649
"include": "source.cpp#predefined_macros"
6650
},
6651
{
6652
"include": "source.cpp#macro_name"
6653
},
6654
{
6655
"include": "source.cpp#line_continuation_character"
6656
}
6657
]
6658
},
6659
"preprocessor_conditional_defined": {
6660
"begin": "((?<!\\w)defined(?!\\w))(\\()",
6661
"end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
6662
"beginCaptures": {
6663
"1": {
6664
"name": "keyword.control.directive.conditional.defined.cpp"
6665
},
6666
"2": {
6667
"name": "punctuation.section.parens.control.defined.cpp"
6668
}
6669
},
6670
"endCaptures": {
6671
"0": {
6672
"name": "punctuation.section.parens.control.defined.cpp"
6673
}
6674
},
6675
"patterns": [
6676
{
6677
"include": "source.cpp#macro_name"
6678
}
6679
]
6680
},
6681
"preprocessor_conditional_parentheses": {
6682
"begin": "\\(",
6683
"end": "\\)|(?=(?<!\\\\)\n)",
6684
"beginCaptures": {
6685
"0": {
6686
"name": "punctuation.section.parens.begin.bracket.round.cpp"
6687
}
6688
},
6689
"endCaptures": {
6690
"0": {
6691
"name": "punctuation.section.parens.end.bracket.round.cpp"
6692
}
6693
},
6694
"name": "meta.parens.preprocessor.conditional.cpp"
6695
},
6696
"preprocessor_conditional_range": {
6697
"begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:(?:ifndef|ifdef)|if))",
6698
"end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
6699
"beginCaptures": {
6700
"0": {
6701
"name": "keyword.control.directive.conditional.$6.cpp"
6702
},
6703
"1": {
6704
"patterns": [
6705
{
6706
"include": "source.cpp#inline_comment"
6707
}
6708
]
6709
},
6710
"2": {
6711
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6712
},
6713
"3": {
6714
"name": "comment.block.cpp"
6715
},
6716
"4": {
6717
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6718
},
6719
"5": {
6720
"name": "punctuation.definition.directive.cpp"
6721
},
6722
"6": {}
6723
},
6724
"endCaptures": {},
6725
"contentName": "meta.preprocessor.conditional",
6726
"patterns": [
6727
{
6728
"include": "#preprocessor_conditional_context"
6729
}
6730
]
6731
},
6732
"preprocessor_context": {
6733
"patterns": [
6734
{
6735
"include": "source.cpp#pragma_mark"
6736
},
6737
{
6738
"include": "#pragma"
6739
},
6740
{
6741
"include": "source.cpp#include"
6742
},
6743
{
6744
"include": "#line"
6745
},
6746
{
6747
"include": "#diagnostic"
6748
},
6749
{
6750
"include": "source.cpp#undef"
6751
},
6752
{
6753
"include": "#preprocessor_conditional_range"
6754
},
6755
{
6756
"include": "source.cpp#single_line_macro"
6757
},
6758
{
6759
"include": "#macro"
6760
},
6761
{
6762
"include": "source.cpp#preprocessor_conditional_standalone"
6763
},
6764
{
6765
"include": "source.cpp#macro_argument"
6766
}
6767
]
6768
},
6769
"sizeof_operator": {
6770
"begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
6771
"end": "\\)|(?=(?<!\\\\)\n)",
6772
"beginCaptures": {
6773
"1": {
6774
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
6775
},
6776
"2": {
6777
"patterns": [
6778
{
6779
"include": "source.cpp#inline_comment"
6780
}
6781
]
6782
},
6783
"3": {
6784
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6785
},
6786
"4": {
6787
"name": "comment.block.cpp"
6788
},
6789
"5": {
6790
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6791
},
6792
"6": {
6793
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
6794
}
6795
},
6796
"endCaptures": {
6797
"0": {
6798
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
6799
}
6800
},
6801
"contentName": "meta.arguments.operator.sizeof",
6802
"patterns": [
6803
{
6804
"include": "#evaluation_context"
6805
}
6806
]
6807
},
6808
"sizeof_variadic_operator": {
6809
"begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
6810
"end": "\\)|(?=(?<!\\\\)\n)",
6811
"beginCaptures": {
6812
"1": {
6813
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
6814
},
6815
"2": {
6816
"patterns": [
6817
{
6818
"include": "source.cpp#inline_comment"
6819
}
6820
]
6821
},
6822
"3": {
6823
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6824
},
6825
"4": {
6826
"name": "comment.block.cpp"
6827
},
6828
"5": {
6829
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6830
},
6831
"6": {
6832
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
6833
}
6834
},
6835
"endCaptures": {
6836
"0": {
6837
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
6838
}
6839
},
6840
"contentName": "meta.arguments.operator.sizeof.variadic",
6841
"patterns": [
6842
{
6843
"include": "#evaluation_context"
6844
}
6845
]
6846
},
6847
"square_brackets": {
6848
"name": "meta.bracket.square.access",
6849
"begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
6850
"beginCaptures": {
6851
"1": {
6852
"name": "variable.other.object"
6853
},
6854
"2": {
6855
"name": "punctuation.definition.begin.bracket.square"
6856
}
6857
},
6858
"end": "\\]|(?=(?<!\\\\)\n)",
6859
"endCaptures": {
6860
"0": {
6861
"name": "punctuation.definition.end.bracket.square"
6862
}
6863
},
6864
"patterns": [
6865
{
6866
"include": "#evaluation_context"
6867
}
6868
]
6869
},
6870
"static_assert": {
6871
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
6872
"end": "\\)|(?=(?<!\\\\)\n)",
6873
"beginCaptures": {
6874
"1": {
6875
"patterns": [
6876
{
6877
"include": "source.cpp#inline_comment"
6878
}
6879
]
6880
},
6881
"2": {
6882
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6883
},
6884
"3": {
6885
"name": "comment.block.cpp"
6886
},
6887
"4": {
6888
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6889
},
6890
"5": {
6891
"name": "keyword.other.static_assert.cpp"
6892
},
6893
"6": {
6894
"patterns": [
6895
{
6896
"include": "source.cpp#inline_comment"
6897
}
6898
]
6899
},
6900
"7": {
6901
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6902
},
6903
"8": {
6904
"name": "comment.block.cpp"
6905
},
6906
"9": {
6907
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6908
},
6909
"10": {
6910
"name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp"
6911
}
6912
},
6913
"endCaptures": {
6914
"0": {
6915
"name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
6916
}
6917
},
6918
"patterns": [
6919
{
6920
"begin": "(,)(?:\\s+)?(?=(?:L|u8|u|U(?:\\s+)?\\\")?)",
6921
"end": "(?=\\))|(?=(?<!\\\\)\n)",
6922
"beginCaptures": {
6923
"1": {
6924
"name": "punctuation.separator.delimiter.comma.cpp"
6925
}
6926
},
6927
"endCaptures": {},
6928
"name": "meta.static_assert.message.cpp",
6929
"patterns": [
6930
{
6931
"include": "#string_context"
6932
}
6933
]
6934
},
6935
{
6936
"include": "#evaluation_context"
6937
}
6938
]
6939
},
6940
"storage_types": {
6941
"patterns": [
6942
{
6943
"include": "source.cpp#storage_specifiers"
6944
},
6945
{
6946
"include": "source.cpp#inline_builtin_storage_type"
6947
},
6948
{
6949
"include": "#decltype"
6950
},
6951
{
6952
"include": "source.cpp#typename"
6953
}
6954
]
6955
},
6956
"string_context": {
6957
"patterns": [
6958
{
6959
"begin": "((?:u|u8|U|L)?)\"",
6960
"end": "(\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)",
6961
"beginCaptures": {
6962
"0": {
6963
"name": "punctuation.definition.string.begin.cpp"
6964
},
6965
"1": {
6966
"name": "meta.encoding.cpp"
6967
}
6968
},
6969
"endCaptures": {
6970
"1": {
6971
"name": "punctuation.definition.string.end.cpp"
6972
},
6973
"2": {
6974
"name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp"
6975
},
6976
"3": {
6977
"name": "keyword.other.suffix.literal.user-defined.string.cpp"
6978
}
6979
},
6980
"name": "string.quoted.double.cpp",
6981
"patterns": [
6982
{
6983
"match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",
6984
"name": "constant.character.escape.cpp"
6985
},
6986
{
6987
"match": "\\\\['\"?\\\\abfnrtv]",
6988
"name": "constant.character.escape.cpp"
6989
},
6990
{
6991
"match": "\\\\[0-7]{1,3}",
6992
"name": "constant.character.escape.cpp"
6993
},
6994
{
6995
"match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
6996
"captures": {
6997
"1": {
6998
"name": "constant.character.escape.cpp"
6999
},
7000
"2": {
7001
"name": "invalid.illegal.unknown-escape.cpp"
7002
}
7003
}
7004
},
7005
{
7006
"include": "source.cpp#string_escapes_context_c"
7007
}
7008
]
7009
},
7010
{
7011
"begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'",
7012
"end": "(')(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)",
7013
"beginCaptures": {
7014
"0": {
7015
"name": "punctuation.definition.string.begin.cpp"
7016
},
7017
"1": {
7018
"name": "meta.encoding.cpp"
7019
}
7020
},
7021
"endCaptures": {
7022
"1": {
7023
"name": "punctuation.definition.string.end.cpp"
7024
},
7025
"2": {
7026
"name": "keyword.other.suffix.literal.user-defined.reserved.character.cpp"
7027
},
7028
"3": {
7029
"name": "keyword.other.suffix.literal.user-defined.character.cpp"
7030
}
7031
},
7032
"name": "string.quoted.single.cpp",
7033
"patterns": [
7034
{
7035
"match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
7036
"captures": {
7037
"1": {
7038
"name": "constant.character.escape.cpp"
7039
},
7040
"2": {
7041
"name": "invalid.illegal.unknown-escape.cpp"
7042
}
7043
}
7044
},
7045
{
7046
"include": "source.cpp#string_escapes_context_c"
7047
},
7048
{
7049
"include": "source.cpp#line_continuation_character"
7050
}
7051
]
7052
},
7053
{
7054
"begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(",
7055
"end": "\\)(?:(?:_r|re)|regex)\\\"|(?=(?<!\\\\)\n)",
7056
"beginCaptures": {
7057
"0": {
7058
"name": "punctuation.definition.string.begin.cpp"
7059
},
7060
"1": {
7061
"name": "meta.encoding.cpp"
7062
}
7063
},
7064
"endCaptures": {
7065
"0": {
7066
"name": "punctuation.definition.string.end.cpp"
7067
}
7068
},
7069
"name": "string.quoted.double.raw.regex.cpp",
7070
"patterns": [
7071
{
7072
"include": "source.regexp.python"
7073
}
7074
]
7075
},
7076
{
7077
"begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(",
7078
"end": "\\)(?:glsl|GLSL)\\\"|(?=(?<!\\\\)\n)",
7079
"beginCaptures": {
7080
"0": {
7081
"name": "punctuation.definition.string.begin.cpp"
7082
},
7083
"1": {
7084
"name": "meta.encoding.cpp"
7085
}
7086
},
7087
"endCaptures": {
7088
"0": {
7089
"name": "punctuation.definition.string.end.cpp"
7090
}
7091
},
7092
"name": "meta.string.quoted.double.raw.glsl.cpp",
7093
"patterns": [
7094
{
7095
"include": "source.glsl"
7096
}
7097
]
7098
},
7099
{
7100
"begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(",
7101
"end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"|(?=(?<!\\\\)\n)",
7102
"beginCaptures": {
7103
"0": {
7104
"name": "punctuation.definition.string.begin.cpp"
7105
},
7106
"1": {
7107
"name": "meta.encoding.cpp"
7108
}
7109
},
7110
"endCaptures": {
7111
"0": {
7112
"name": "punctuation.definition.string.end.cpp"
7113
}
7114
},
7115
"name": "meta.string.quoted.double.raw.sql.cpp",
7116
"patterns": [
7117
{
7118
"include": "source.sql"
7119
}
7120
]
7121
},
7122
{
7123
"begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
7124
"beginCaptures": {
7125
"0": {
7126
"name": "punctuation.definition.string.begin"
7127
},
7128
"1": {
7129
"name": "meta.encoding"
7130
},
7131
"3": {
7132
"name": "invalid.illegal.delimiter-too-long"
7133
}
7134
},
7135
"end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)",
7136
"endCaptures": {
7137
"1": {
7138
"name": "punctuation.definition.string.end"
7139
},
7140
"2": {
7141
"name": "invalid.illegal.delimiter-too-long"
7142
},
7143
"3": {
7144
"name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp"
7145
},
7146
"4": {
7147
"name": "keyword.other.suffix.literal.user-defined.string.cpp"
7148
}
7149
},
7150
"name": "string.quoted.double.raw"
7151
}
7152
]
7153
},
7154
"struct_block": {
7155
"begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)",
7156
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
7157
"beginCaptures": {
7158
"0": {
7159
"name": "meta.head.struct.cpp"
7160
},
7161
"1": {
7162
"name": "storage.type.$1.cpp"
7163
},
7164
"2": {
7165
"patterns": [
7166
{
7167
"include": "source.cpp#inline_comment"
7168
}
7169
]
7170
},
7171
"3": {
7172
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7173
},
7174
"4": {
7175
"name": "comment.block.cpp"
7176
},
7177
"5": {
7178
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7179
},
7180
"6": {
7181
"patterns": [
7182
{
7183
"include": "#attributes_context"
7184
},
7185
{
7186
"include": "source.cpp#number_literal"
7187
}
7188
]
7189
},
7190
"7": {
7191
"patterns": [
7192
{
7193
"include": "source.cpp#inline_comment"
7194
}
7195
]
7196
},
7197
"8": {
7198
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7199
},
7200
"9": {
7201
"name": "comment.block.cpp"
7202
},
7203
"10": {
7204
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7205
},
7206
"11": {
7207
"patterns": [
7208
{
7209
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
7210
"captures": {
7211
"1": {
7212
"name": "storage.type.modifier.final.cpp"
7213
},
7214
"2": {
7215
"patterns": [
7216
{
7217
"include": "source.cpp#inline_comment"
7218
}
7219
]
7220
},
7221
"3": {
7222
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7223
},
7224
"4": {
7225
"name": "comment.block.cpp"
7226
},
7227
"5": {
7228
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7229
}
7230
}
7231
},
7232
{
7233
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)",
7234
"captures": {
7235
"1": {
7236
"name": "entity.name.type.struct.cpp"
7237
},
7238
"2": {
7239
"patterns": [
7240
{
7241
"include": "source.cpp#inline_comment"
7242
}
7243
]
7244
},
7245
"3": {
7246
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7247
},
7248
"4": {
7249
"name": "comment.block.cpp"
7250
},
7251
"5": {
7252
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7253
},
7254
"6": {
7255
"name": "storage.type.modifier.final.cpp"
7256
},
7257
"7": {
7258
"patterns": [
7259
{
7260
"include": "source.cpp#inline_comment"
7261
}
7262
]
7263
},
7264
"8": {
7265
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7266
},
7267
"9": {
7268
"name": "comment.block.cpp"
7269
},
7270
"10": {
7271
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7272
}
7273
}
7274
},
7275
{
7276
"match": "DLLEXPORT",
7277
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
7278
},
7279
{
7280
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
7281
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
7282
}
7283
]
7284
},
7285
"12": {
7286
"patterns": [
7287
{
7288
"include": "source.cpp#inline_comment"
7289
}
7290
]
7291
},
7292
"13": {
7293
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7294
},
7295
"14": {
7296
"name": "comment.block.cpp"
7297
},
7298
"15": {
7299
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7300
},
7301
"16": {
7302
"patterns": [
7303
{
7304
"include": "source.cpp#inline_comment"
7305
}
7306
]
7307
},
7308
"17": {
7309
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7310
},
7311
"18": {
7312
"name": "comment.block.cpp"
7313
},
7314
"19": {
7315
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7316
},
7317
"20": {
7318
"name": "punctuation.separator.colon.inheritance.cpp"
7319
}
7320
},
7321
"endCaptures": {
7322
"1": {
7323
"name": "punctuation.terminator.statement.cpp"
7324
},
7325
"2": {
7326
"name": "punctuation.terminator.statement.cpp"
7327
}
7328
},
7329
"name": "meta.block.struct.cpp",
7330
"patterns": [
7331
{
7332
"begin": "\\G ?",
7333
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
7334
"beginCaptures": {},
7335
"endCaptures": {
7336
"0": {
7337
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
7338
}
7339
},
7340
"name": "meta.head.struct.cpp",
7341
"patterns": [
7342
{
7343
"include": "#ever_present_context"
7344
},
7345
{
7346
"include": "#inheritance_context"
7347
},
7348
{
7349
"include": "#template_call_range"
7350
}
7351
]
7352
},
7353
{
7354
"begin": "(?<=\\{|<%|\\?\\?<)",
7355
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
7356
"beginCaptures": {},
7357
"endCaptures": {
7358
"0": {
7359
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
7360
}
7361
},
7362
"name": "meta.body.struct.cpp",
7363
"patterns": [
7364
{
7365
"include": "#function_pointer"
7366
},
7367
{
7368
"include": "#static_assert"
7369
},
7370
{
7371
"include": "#constructor_inline"
7372
},
7373
{
7374
"include": "#destructor_inline"
7375
},
7376
{
7377
"include": "$self"
7378
}
7379
]
7380
},
7381
{
7382
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
7383
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
7384
"beginCaptures": {},
7385
"endCaptures": {},
7386
"name": "meta.tail.struct.cpp",
7387
"patterns": [
7388
{
7389
"include": "$self"
7390
}
7391
]
7392
}
7393
]
7394
},
7395
"switch_conditional_parentheses": {
7396
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
7397
"end": "\\)|(?=(?<!\\\\)\n)",
7398
"beginCaptures": {
7399
"1": {
7400
"patterns": [
7401
{
7402
"include": "source.cpp#inline_comment"
7403
}
7404
]
7405
},
7406
"2": {
7407
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7408
},
7409
"3": {
7410
"name": "comment.block.cpp"
7411
},
7412
"4": {
7413
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7414
},
7415
"5": {
7416
"name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"
7417
}
7418
},
7419
"endCaptures": {
7420
"0": {
7421
"name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
7422
}
7423
},
7424
"name": "meta.conditional.switch.cpp",
7425
"patterns": [
7426
{
7427
"include": "#evaluation_context"
7428
}
7429
]
7430
},
7431
"switch_statement": {
7432
"begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)switch(?!\\w))",
7433
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
7434
"beginCaptures": {
7435
"0": {
7436
"name": "meta.head.switch.cpp"
7437
},
7438
"1": {
7439
"patterns": [
7440
{
7441
"include": "source.cpp#inline_comment"
7442
}
7443
]
7444
},
7445
"2": {
7446
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7447
},
7448
"3": {
7449
"name": "comment.block.cpp"
7450
},
7451
"4": {
7452
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7453
},
7454
"5": {
7455
"name": "keyword.control.switch.cpp"
7456
}
7457
},
7458
"endCaptures": {},
7459
"name": "meta.block.switch.cpp",
7460
"patterns": [
7461
{
7462
"begin": "\\G ?",
7463
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
7464
"beginCaptures": {},
7465
"endCaptures": {
7466
"0": {
7467
"name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
7468
}
7469
},
7470
"name": "meta.head.switch.cpp",
7471
"patterns": [
7472
{
7473
"include": "#switch_conditional_parentheses"
7474
},
7475
{
7476
"include": "$self"
7477
}
7478
]
7479
},
7480
{
7481
"begin": "(?<=\\{|<%|\\?\\?<)",
7482
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
7483
"beginCaptures": {},
7484
"endCaptures": {
7485
"0": {
7486
"name": "punctuation.section.block.end.bracket.curly.switch.cpp"
7487
}
7488
},
7489
"name": "meta.body.switch.cpp",
7490
"patterns": [
7491
{
7492
"include": "#default_statement"
7493
},
7494
{
7495
"include": "#case_statement"
7496
},
7497
{
7498
"include": "$self"
7499
}
7500
]
7501
},
7502
{
7503
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
7504
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
7505
"beginCaptures": {},
7506
"endCaptures": {},
7507
"name": "meta.tail.switch.cpp",
7508
"patterns": [
7509
{
7510
"include": "$self"
7511
}
7512
]
7513
}
7514
]
7515
},
7516
"template_call_context": {
7517
"patterns": [
7518
{
7519
"include": "#ever_present_context"
7520
},
7521
{
7522
"include": "#template_call_range"
7523
},
7524
{
7525
"include": "#storage_types"
7526
},
7527
{
7528
"include": "source.cpp#language_constants"
7529
},
7530
{
7531
"include": "source.cpp#scope_resolution_template_call_inner_generated"
7532
},
7533
{
7534
"include": "#operators"
7535
},
7536
{
7537
"include": "source.cpp#number_literal"
7538
},
7539
{
7540
"include": "#string_context"
7541
},
7542
{
7543
"include": "source.cpp#comma_in_template_argument"
7544
},
7545
{
7546
"include": "source.cpp#qualified_type"
7547
}
7548
]
7549
},
7550
"template_call_range": {
7551
"begin": "<",
7552
"end": ">|(?=(?<!\\\\)\n)",
7553
"beginCaptures": {
7554
"0": {
7555
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
7556
}
7557
},
7558
"endCaptures": {
7559
"0": {
7560
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
7561
}
7562
},
7563
"name": "meta.template.call.cpp",
7564
"patterns": [
7565
{
7566
"include": "#template_call_context"
7567
}
7568
]
7569
},
7570
"template_definition": {
7571
"begin": "(?<!\\w)(template)(?:\\s+)?(<)",
7572
"end": ">|(?=(?<!\\\\)\n)",
7573
"beginCaptures": {
7574
"1": {
7575
"name": "storage.type.template.cpp"
7576
},
7577
"2": {
7578
"name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
7579
}
7580
},
7581
"endCaptures": {
7582
"0": {
7583
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
7584
}
7585
},
7586
"name": "meta.template.definition.cpp",
7587
"patterns": [
7588
{
7589
"begin": "(?<=\\w)(?:\\s+)?<",
7590
"end": ">|(?=(?<!\\\\)\n)",
7591
"beginCaptures": {
7592
"0": {
7593
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
7594
}
7595
},
7596
"endCaptures": {
7597
"0": {
7598
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
7599
}
7600
},
7601
"patterns": [
7602
{
7603
"include": "#template_call_context"
7604
}
7605
]
7606
},
7607
{
7608
"include": "#template_definition_context"
7609
}
7610
]
7611
},
7612
"template_definition_context": {
7613
"patterns": [
7614
{
7615
"include": "source.cpp#scope_resolution_template_definition_inner_generated"
7616
},
7617
{
7618
"include": "source.cpp#template_definition_argument"
7619
},
7620
{
7621
"include": "source.cpp#template_argument_defaulted"
7622
},
7623
{
7624
"include": "source.cpp#template_call_innards"
7625
},
7626
{
7627
"include": "#evaluation_context"
7628
}
7629
]
7630
},
7631
"ternary_operator": {
7632
"begin": "\\?",
7633
"end": ":|(?=(?<!\\\\)\n)",
7634
"beginCaptures": {
7635
"0": {
7636
"name": "keyword.operator.ternary.cpp"
7637
}
7638
},
7639
"endCaptures": {
7640
"0": {
7641
"name": "keyword.operator.ternary.cpp"
7642
}
7643
},
7644
"patterns": [
7645
{
7646
"include": "#ever_present_context"
7647
},
7648
{
7649
"include": "#string_context"
7650
},
7651
{
7652
"include": "source.cpp#number_literal"
7653
},
7654
{
7655
"include": "#method_access"
7656
},
7657
{
7658
"include": "source.cpp#member_access"
7659
},
7660
{
7661
"include": "source.cpp#predefined_macros"
7662
},
7663
{
7664
"include": "#operators"
7665
},
7666
{
7667
"include": "source.cpp#memory_operators"
7668
},
7669
{
7670
"include": "source.cpp#wordlike_operators"
7671
},
7672
{
7673
"include": "source.cpp#type_casting_operators"
7674
},
7675
{
7676
"include": "source.cpp#control_flow_keywords"
7677
},
7678
{
7679
"include": "source.cpp#exception_keywords"
7680
},
7681
{
7682
"include": "source.cpp#the_this_keyword"
7683
},
7684
{
7685
"include": "source.cpp#language_constants"
7686
},
7687
{
7688
"include": "#builtin_storage_type_initilizer"
7689
},
7690
{
7691
"include": "source.cpp#qualifiers_and_specifiers_post_parameters"
7692
},
7693
{
7694
"include": "source.cpp#functional_specifiers_pre_parameters"
7695
},
7696
{
7697
"include": "#storage_types"
7698
},
7699
{
7700
"include": "#lambdas"
7701
},
7702
{
7703
"include": "#attributes_context"
7704
},
7705
{
7706
"include": "#parentheses"
7707
},
7708
{
7709
"include": "#function_call"
7710
},
7711
{
7712
"include": "source.cpp#scope_resolution_inner_generated"
7713
},
7714
{
7715
"include": "#square_brackets"
7716
},
7717
{
7718
"include": "source.cpp#semicolon"
7719
},
7720
{
7721
"include": "source.cpp#comma"
7722
}
7723
],
7724
"applyEndPatternLast": 1
7725
},
7726
"typedef_class": {
7727
"begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)class(?!\\w))",
7728
"end": "(?<=;)|(?=(?<!\\\\)\n)",
7729
"beginCaptures": {
7730
"1": {
7731
"name": "keyword.other.typedef.cpp"
7732
}
7733
},
7734
"endCaptures": {},
7735
"patterns": [
7736
{
7737
"begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)",
7738
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
7739
"beginCaptures": {
7740
"0": {
7741
"name": "meta.head.class.cpp"
7742
},
7743
"1": {
7744
"name": "storage.type.$1.cpp"
7745
},
7746
"2": {
7747
"patterns": [
7748
{
7749
"include": "source.cpp#inline_comment"
7750
}
7751
]
7752
},
7753
"3": {
7754
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7755
},
7756
"4": {
7757
"name": "comment.block.cpp"
7758
},
7759
"5": {
7760
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7761
},
7762
"6": {
7763
"patterns": [
7764
{
7765
"include": "#attributes_context"
7766
},
7767
{
7768
"include": "source.cpp#number_literal"
7769
}
7770
]
7771
},
7772
"7": {
7773
"patterns": [
7774
{
7775
"include": "source.cpp#inline_comment"
7776
}
7777
]
7778
},
7779
"8": {
7780
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7781
},
7782
"9": {
7783
"name": "comment.block.cpp"
7784
},
7785
"10": {
7786
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7787
},
7788
"11": {
7789
"patterns": [
7790
{
7791
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
7792
"captures": {
7793
"1": {
7794
"name": "storage.type.modifier.final.cpp"
7795
},
7796
"2": {
7797
"patterns": [
7798
{
7799
"include": "source.cpp#inline_comment"
7800
}
7801
]
7802
},
7803
"3": {
7804
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7805
},
7806
"4": {
7807
"name": "comment.block.cpp"
7808
},
7809
"5": {
7810
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7811
}
7812
}
7813
},
7814
{
7815
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)",
7816
"captures": {
7817
"1": {
7818
"name": "entity.name.type.class.cpp"
7819
},
7820
"2": {
7821
"patterns": [
7822
{
7823
"include": "source.cpp#inline_comment"
7824
}
7825
]
7826
},
7827
"3": {
7828
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7829
},
7830
"4": {
7831
"name": "comment.block.cpp"
7832
},
7833
"5": {
7834
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7835
},
7836
"6": {
7837
"name": "storage.type.modifier.final.cpp"
7838
},
7839
"7": {
7840
"patterns": [
7841
{
7842
"include": "source.cpp#inline_comment"
7843
}
7844
]
7845
},
7846
"8": {
7847
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7848
},
7849
"9": {
7850
"name": "comment.block.cpp"
7851
},
7852
"10": {
7853
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7854
}
7855
}
7856
},
7857
{
7858
"match": "DLLEXPORT",
7859
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
7860
},
7861
{
7862
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
7863
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
7864
}
7865
]
7866
},
7867
"12": {
7868
"patterns": [
7869
{
7870
"include": "source.cpp#inline_comment"
7871
}
7872
]
7873
},
7874
"13": {
7875
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7876
},
7877
"14": {
7878
"name": "comment.block.cpp"
7879
},
7880
"15": {
7881
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7882
},
7883
"16": {
7884
"patterns": [
7885
{
7886
"include": "source.cpp#inline_comment"
7887
}
7888
]
7889
},
7890
"17": {
7891
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7892
},
7893
"18": {
7894
"name": "comment.block.cpp"
7895
},
7896
"19": {
7897
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7898
},
7899
"20": {
7900
"name": "punctuation.separator.colon.inheritance.cpp"
7901
}
7902
},
7903
"endCaptures": {
7904
"1": {
7905
"name": "punctuation.terminator.statement.cpp"
7906
},
7907
"2": {
7908
"name": "punctuation.terminator.statement.cpp"
7909
}
7910
},
7911
"name": "meta.block.class.cpp",
7912
"patterns": [
7913
{
7914
"begin": "\\G ?",
7915
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
7916
"beginCaptures": {},
7917
"endCaptures": {
7918
"0": {
7919
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
7920
}
7921
},
7922
"name": "meta.head.class.cpp",
7923
"patterns": [
7924
{
7925
"include": "#ever_present_context"
7926
},
7927
{
7928
"include": "#inheritance_context"
7929
},
7930
{
7931
"include": "#template_call_range"
7932
}
7933
]
7934
},
7935
{
7936
"begin": "(?<=\\{|<%|\\?\\?<)",
7937
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
7938
"beginCaptures": {},
7939
"endCaptures": {
7940
"0": {
7941
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
7942
}
7943
},
7944
"name": "meta.body.class.cpp",
7945
"patterns": [
7946
{
7947
"include": "#function_pointer"
7948
},
7949
{
7950
"include": "#static_assert"
7951
},
7952
{
7953
"include": "#constructor_inline"
7954
},
7955
{
7956
"include": "#destructor_inline"
7957
},
7958
{
7959
"include": "$self"
7960
}
7961
]
7962
},
7963
{
7964
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
7965
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
7966
"beginCaptures": {},
7967
"endCaptures": {},
7968
"name": "meta.tail.class.cpp",
7969
"patterns": [
7970
{
7971
"match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
7972
"captures": {
7973
"1": {
7974
"patterns": [
7975
{
7976
"match": "\\*",
7977
"name": "storage.modifier.pointer.cpp"
7978
},
7979
{
7980
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
7981
"captures": {
7982
"1": {
7983
"patterns": [
7984
{
7985
"include": "source.cpp#inline_comment"
7986
}
7987
]
7988
},
7989
"2": {
7990
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7991
},
7992
"3": {
7993
"name": "comment.block.cpp"
7994
},
7995
"4": {
7996
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7997
}
7998
},
7999
"name": "invalid.illegal.reference-type.cpp"
8000
},
8001
{
8002
"match": "\\&",
8003
"name": "storage.modifier.reference.cpp"
8004
}
8005
]
8006
},
8007
"2": {
8008
"patterns": [
8009
{
8010
"include": "source.cpp#inline_comment"
8011
}
8012
]
8013
},
8014
"3": {
8015
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8016
},
8017
"4": {
8018
"name": "comment.block.cpp"
8019
},
8020
"5": {
8021
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8022
},
8023
"6": {
8024
"patterns": [
8025
{
8026
"include": "source.cpp#inline_comment"
8027
}
8028
]
8029
},
8030
"7": {
8031
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8032
},
8033
"8": {
8034
"name": "comment.block.cpp"
8035
},
8036
"9": {
8037
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8038
},
8039
"10": {
8040
"patterns": [
8041
{
8042
"include": "source.cpp#inline_comment"
8043
}
8044
]
8045
},
8046
"11": {
8047
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8048
},
8049
"12": {
8050
"name": "comment.block.cpp"
8051
},
8052
"13": {
8053
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8054
},
8055
"14": {
8056
"name": "entity.name.type.alias.cpp"
8057
}
8058
}
8059
},
8060
{
8061
"match": ","
8062
}
8063
]
8064
}
8065
]
8066
}
8067
]
8068
},
8069
"typedef_function_pointer": {
8070
"begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))",
8071
"end": "(?<=;)|(?=(?<!\\\\)\n)",
8072
"beginCaptures": {
8073
"1": {
8074
"name": "keyword.other.typedef.cpp"
8075
}
8076
},
8077
"endCaptures": {},
8078
"patterns": [
8079
{
8080
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
8081
"end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
8082
"beginCaptures": {
8083
"1": {
8084
"name": "meta.qualified_type.cpp",
8085
"patterns": [
8086
{
8087
"match": "::",
8088
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
8089
},
8090
{
8091
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
8092
"name": "storage.type.$0.cpp"
8093
},
8094
{
8095
"include": "#attributes_context"
8096
},
8097
{
8098
"include": "#storage_types"
8099
},
8100
{
8101
"include": "source.cpp#number_literal"
8102
},
8103
{
8104
"include": "#string_context"
8105
},
8106
{
8107
"include": "source.cpp#comma"
8108
},
8109
{
8110
"include": "source.cpp#scope_resolution_inner_generated"
8111
},
8112
{
8113
"begin": "<",
8114
"end": ">|(?=(?<!\\\\)\n)",
8115
"beginCaptures": {
8116
"0": {
8117
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
8118
}
8119
},
8120
"endCaptures": {
8121
"0": {
8122
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
8123
}
8124
},
8125
"name": "meta.template.call.cpp",
8126
"patterns": [
8127
{
8128
"include": "#template_call_context"
8129
}
8130
]
8131
},
8132
{
8133
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
8134
"name": "entity.name.type.cpp"
8135
}
8136
]
8137
},
8138
"2": {
8139
"patterns": [
8140
{
8141
"include": "#attributes_context"
8142
},
8143
{
8144
"include": "source.cpp#number_literal"
8145
}
8146
]
8147
},
8148
"3": {
8149
"patterns": [
8150
{
8151
"include": "source.cpp#inline_comment"
8152
}
8153
]
8154
},
8155
"4": {
8156
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8157
},
8158
"5": {
8159
"name": "comment.block.cpp"
8160
},
8161
"6": {
8162
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8163
},
8164
"7": {
8165
"patterns": [
8166
{
8167
"include": "source.cpp#inline_comment"
8168
}
8169
]
8170
},
8171
"8": {
8172
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8173
},
8174
"9": {
8175
"name": "comment.block.cpp"
8176
},
8177
"10": {
8178
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8179
},
8180
"11": {
8181
"patterns": [
8182
{
8183
"match": "::",
8184
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
8185
},
8186
{
8187
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
8188
"name": "entity.name.scope-resolution.type.cpp"
8189
},
8190
{
8191
"include": "#template_call_range"
8192
}
8193
]
8194
},
8195
"12": {
8196
"patterns": [
8197
{
8198
"include": "#template_call_range"
8199
}
8200
]
8201
},
8202
"13": {},
8203
"14": {
8204
"patterns": [
8205
{
8206
"include": "source.cpp#inline_comment"
8207
}
8208
]
8209
},
8210
"15": {
8211
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8212
},
8213
"16": {
8214
"name": "comment.block.cpp"
8215
},
8216
"17": {
8217
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8218
},
8219
"18": {},
8220
"19": {
8221
"patterns": [
8222
{
8223
"match": "\\*",
8224
"name": "storage.modifier.pointer.cpp"
8225
},
8226
{
8227
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
8228
"captures": {
8229
"1": {
8230
"patterns": [
8231
{
8232
"include": "source.cpp#inline_comment"
8233
}
8234
]
8235
},
8236
"2": {
8237
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8238
},
8239
"3": {
8240
"name": "comment.block.cpp"
8241
},
8242
"4": {
8243
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8244
}
8245
},
8246
"name": "invalid.illegal.reference-type.cpp"
8247
},
8248
{
8249
"match": "\\&",
8250
"name": "storage.modifier.reference.cpp"
8251
}
8252
]
8253
},
8254
"20": {
8255
"patterns": [
8256
{
8257
"include": "source.cpp#inline_comment"
8258
}
8259
]
8260
},
8261
"21": {
8262
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8263
},
8264
"22": {
8265
"name": "comment.block.cpp"
8266
},
8267
"23": {
8268
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8269
},
8270
"24": {
8271
"patterns": [
8272
{
8273
"include": "source.cpp#inline_comment"
8274
}
8275
]
8276
},
8277
"25": {
8278
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8279
},
8280
"26": {
8281
"name": "comment.block.cpp"
8282
},
8283
"27": {
8284
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8285
},
8286
"28": {
8287
"patterns": [
8288
{
8289
"include": "source.cpp#inline_comment"
8290
}
8291
]
8292
},
8293
"29": {
8294
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8295
},
8296
"30": {
8297
"name": "comment.block.cpp"
8298
},
8299
"31": {
8300
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8301
},
8302
"32": {
8303
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
8304
},
8305
"33": {
8306
"name": "punctuation.definition.function.pointer.dereference.cpp"
8307
},
8308
"34": {
8309
"name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
8310
},
8311
"35": {
8312
"name": "punctuation.definition.begin.bracket.square.cpp"
8313
},
8314
"36": {
8315
"patterns": [
8316
{
8317
"include": "#evaluation_context"
8318
}
8319
]
8320
},
8321
"37": {
8322
"name": "punctuation.definition.end.bracket.square.cpp"
8323
},
8324
"38": {
8325
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
8326
},
8327
"39": {
8328
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
8329
}
8330
},
8331
"endCaptures": {
8332
"1": {
8333
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
8334
},
8335
"2": {
8336
"patterns": [
8337
{
8338
"include": "source.cpp#inline_comment"
8339
}
8340
]
8341
},
8342
"3": {
8343
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8344
},
8345
"4": {
8346
"name": "comment.block.cpp"
8347
},
8348
"5": {
8349
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8350
}
8351
},
8352
"patterns": [
8353
{
8354
"include": "#function_parameter_context"
8355
}
8356
]
8357
}
8358
]
8359
},
8360
"typedef_struct": {
8361
"begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)struct(?!\\w))",
8362
"end": "(?<=;)|(?=(?<!\\\\)\n)",
8363
"beginCaptures": {
8364
"1": {
8365
"name": "keyword.other.typedef.cpp"
8366
}
8367
},
8368
"endCaptures": {},
8369
"patterns": [
8370
{
8371
"begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)",
8372
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8373
"beginCaptures": {
8374
"0": {
8375
"name": "meta.head.struct.cpp"
8376
},
8377
"1": {
8378
"name": "storage.type.$1.cpp"
8379
},
8380
"2": {
8381
"patterns": [
8382
{
8383
"include": "source.cpp#inline_comment"
8384
}
8385
]
8386
},
8387
"3": {
8388
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8389
},
8390
"4": {
8391
"name": "comment.block.cpp"
8392
},
8393
"5": {
8394
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8395
},
8396
"6": {
8397
"patterns": [
8398
{
8399
"include": "#attributes_context"
8400
},
8401
{
8402
"include": "source.cpp#number_literal"
8403
}
8404
]
8405
},
8406
"7": {
8407
"patterns": [
8408
{
8409
"include": "source.cpp#inline_comment"
8410
}
8411
]
8412
},
8413
"8": {
8414
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8415
},
8416
"9": {
8417
"name": "comment.block.cpp"
8418
},
8419
"10": {
8420
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8421
},
8422
"11": {
8423
"patterns": [
8424
{
8425
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
8426
"captures": {
8427
"1": {
8428
"name": "storage.type.modifier.final.cpp"
8429
},
8430
"2": {
8431
"patterns": [
8432
{
8433
"include": "source.cpp#inline_comment"
8434
}
8435
]
8436
},
8437
"3": {
8438
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8439
},
8440
"4": {
8441
"name": "comment.block.cpp"
8442
},
8443
"5": {
8444
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8445
}
8446
}
8447
},
8448
{
8449
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)",
8450
"captures": {
8451
"1": {
8452
"name": "entity.name.type.struct.cpp"
8453
},
8454
"2": {
8455
"patterns": [
8456
{
8457
"include": "source.cpp#inline_comment"
8458
}
8459
]
8460
},
8461
"3": {
8462
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8463
},
8464
"4": {
8465
"name": "comment.block.cpp"
8466
},
8467
"5": {
8468
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8469
},
8470
"6": {
8471
"name": "storage.type.modifier.final.cpp"
8472
},
8473
"7": {
8474
"patterns": [
8475
{
8476
"include": "source.cpp#inline_comment"
8477
}
8478
]
8479
},
8480
"8": {
8481
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8482
},
8483
"9": {
8484
"name": "comment.block.cpp"
8485
},
8486
"10": {
8487
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8488
}
8489
}
8490
},
8491
{
8492
"match": "DLLEXPORT",
8493
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
8494
},
8495
{
8496
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
8497
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
8498
}
8499
]
8500
},
8501
"12": {
8502
"patterns": [
8503
{
8504
"include": "source.cpp#inline_comment"
8505
}
8506
]
8507
},
8508
"13": {
8509
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8510
},
8511
"14": {
8512
"name": "comment.block.cpp"
8513
},
8514
"15": {
8515
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8516
},
8517
"16": {
8518
"patterns": [
8519
{
8520
"include": "source.cpp#inline_comment"
8521
}
8522
]
8523
},
8524
"17": {
8525
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8526
},
8527
"18": {
8528
"name": "comment.block.cpp"
8529
},
8530
"19": {
8531
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8532
},
8533
"20": {
8534
"name": "punctuation.separator.colon.inheritance.cpp"
8535
}
8536
},
8537
"endCaptures": {
8538
"1": {
8539
"name": "punctuation.terminator.statement.cpp"
8540
},
8541
"2": {
8542
"name": "punctuation.terminator.statement.cpp"
8543
}
8544
},
8545
"name": "meta.block.struct.cpp",
8546
"patterns": [
8547
{
8548
"begin": "\\G ?",
8549
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
8550
"beginCaptures": {},
8551
"endCaptures": {
8552
"0": {
8553
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
8554
}
8555
},
8556
"name": "meta.head.struct.cpp",
8557
"patterns": [
8558
{
8559
"include": "#ever_present_context"
8560
},
8561
{
8562
"include": "#inheritance_context"
8563
},
8564
{
8565
"include": "#template_call_range"
8566
}
8567
]
8568
},
8569
{
8570
"begin": "(?<=\\{|<%|\\?\\?<)",
8571
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
8572
"beginCaptures": {},
8573
"endCaptures": {
8574
"0": {
8575
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
8576
}
8577
},
8578
"name": "meta.body.struct.cpp",
8579
"patterns": [
8580
{
8581
"include": "#function_pointer"
8582
},
8583
{
8584
"include": "#static_assert"
8585
},
8586
{
8587
"include": "#constructor_inline"
8588
},
8589
{
8590
"include": "#destructor_inline"
8591
},
8592
{
8593
"include": "$self"
8594
}
8595
]
8596
},
8597
{
8598
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
8599
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
8600
"beginCaptures": {},
8601
"endCaptures": {},
8602
"name": "meta.tail.struct.cpp",
8603
"patterns": [
8604
{
8605
"match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
8606
"captures": {
8607
"1": {
8608
"patterns": [
8609
{
8610
"match": "\\*",
8611
"name": "storage.modifier.pointer.cpp"
8612
},
8613
{
8614
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
8615
"captures": {
8616
"1": {
8617
"patterns": [
8618
{
8619
"include": "source.cpp#inline_comment"
8620
}
8621
]
8622
},
8623
"2": {
8624
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8625
},
8626
"3": {
8627
"name": "comment.block.cpp"
8628
},
8629
"4": {
8630
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8631
}
8632
},
8633
"name": "invalid.illegal.reference-type.cpp"
8634
},
8635
{
8636
"match": "\\&",
8637
"name": "storage.modifier.reference.cpp"
8638
}
8639
]
8640
},
8641
"2": {
8642
"patterns": [
8643
{
8644
"include": "source.cpp#inline_comment"
8645
}
8646
]
8647
},
8648
"3": {
8649
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8650
},
8651
"4": {
8652
"name": "comment.block.cpp"
8653
},
8654
"5": {
8655
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8656
},
8657
"6": {
8658
"patterns": [
8659
{
8660
"include": "source.cpp#inline_comment"
8661
}
8662
]
8663
},
8664
"7": {
8665
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8666
},
8667
"8": {
8668
"name": "comment.block.cpp"
8669
},
8670
"9": {
8671
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8672
},
8673
"10": {
8674
"patterns": [
8675
{
8676
"include": "source.cpp#inline_comment"
8677
}
8678
]
8679
},
8680
"11": {
8681
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8682
},
8683
"12": {
8684
"name": "comment.block.cpp"
8685
},
8686
"13": {
8687
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8688
},
8689
"14": {
8690
"name": "entity.name.type.alias.cpp"
8691
}
8692
}
8693
},
8694
{
8695
"match": ","
8696
}
8697
]
8698
}
8699
]
8700
}
8701
]
8702
},
8703
"typedef_union": {
8704
"begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)union(?!\\w))",
8705
"end": "(?<=;)|(?=(?<!\\\\)\n)",
8706
"beginCaptures": {
8707
"1": {
8708
"name": "keyword.other.typedef.cpp"
8709
}
8710
},
8711
"endCaptures": {},
8712
"patterns": [
8713
{
8714
"begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)",
8715
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8716
"beginCaptures": {
8717
"0": {
8718
"name": "meta.head.union.cpp"
8719
},
8720
"1": {
8721
"name": "storage.type.$1.cpp"
8722
},
8723
"2": {
8724
"patterns": [
8725
{
8726
"include": "source.cpp#inline_comment"
8727
}
8728
]
8729
},
8730
"3": {
8731
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8732
},
8733
"4": {
8734
"name": "comment.block.cpp"
8735
},
8736
"5": {
8737
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8738
},
8739
"6": {
8740
"patterns": [
8741
{
8742
"include": "#attributes_context"
8743
},
8744
{
8745
"include": "source.cpp#number_literal"
8746
}
8747
]
8748
},
8749
"7": {
8750
"patterns": [
8751
{
8752
"include": "source.cpp#inline_comment"
8753
}
8754
]
8755
},
8756
"8": {
8757
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8758
},
8759
"9": {
8760
"name": "comment.block.cpp"
8761
},
8762
"10": {
8763
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8764
},
8765
"11": {
8766
"patterns": [
8767
{
8768
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
8769
"captures": {
8770
"1": {
8771
"name": "storage.type.modifier.final.cpp"
8772
},
8773
"2": {
8774
"patterns": [
8775
{
8776
"include": "source.cpp#inline_comment"
8777
}
8778
]
8779
},
8780
"3": {
8781
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8782
},
8783
"4": {
8784
"name": "comment.block.cpp"
8785
},
8786
"5": {
8787
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8788
}
8789
}
8790
},
8791
{
8792
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)",
8793
"captures": {
8794
"1": {
8795
"name": "entity.name.type.union.cpp"
8796
},
8797
"2": {
8798
"patterns": [
8799
{
8800
"include": "source.cpp#inline_comment"
8801
}
8802
]
8803
},
8804
"3": {
8805
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8806
},
8807
"4": {
8808
"name": "comment.block.cpp"
8809
},
8810
"5": {
8811
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8812
},
8813
"6": {
8814
"name": "storage.type.modifier.final.cpp"
8815
},
8816
"7": {
8817
"patterns": [
8818
{
8819
"include": "source.cpp#inline_comment"
8820
}
8821
]
8822
},
8823
"8": {
8824
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8825
},
8826
"9": {
8827
"name": "comment.block.cpp"
8828
},
8829
"10": {
8830
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8831
}
8832
}
8833
},
8834
{
8835
"match": "DLLEXPORT",
8836
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
8837
},
8838
{
8839
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
8840
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
8841
}
8842
]
8843
},
8844
"12": {
8845
"patterns": [
8846
{
8847
"include": "source.cpp#inline_comment"
8848
}
8849
]
8850
},
8851
"13": {
8852
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8853
},
8854
"14": {
8855
"name": "comment.block.cpp"
8856
},
8857
"15": {
8858
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8859
},
8860
"16": {
8861
"patterns": [
8862
{
8863
"include": "source.cpp#inline_comment"
8864
}
8865
]
8866
},
8867
"17": {
8868
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8869
},
8870
"18": {
8871
"name": "comment.block.cpp"
8872
},
8873
"19": {
8874
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8875
},
8876
"20": {
8877
"name": "punctuation.separator.colon.inheritance.cpp"
8878
}
8879
},
8880
"endCaptures": {
8881
"1": {
8882
"name": "punctuation.terminator.statement.cpp"
8883
},
8884
"2": {
8885
"name": "punctuation.terminator.statement.cpp"
8886
}
8887
},
8888
"name": "meta.block.union.cpp",
8889
"patterns": [
8890
{
8891
"begin": "\\G ?",
8892
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
8893
"beginCaptures": {},
8894
"endCaptures": {
8895
"0": {
8896
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
8897
}
8898
},
8899
"name": "meta.head.union.cpp",
8900
"patterns": [
8901
{
8902
"include": "#ever_present_context"
8903
},
8904
{
8905
"include": "#inheritance_context"
8906
},
8907
{
8908
"include": "#template_call_range"
8909
}
8910
]
8911
},
8912
{
8913
"begin": "(?<=\\{|<%|\\?\\?<)",
8914
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
8915
"beginCaptures": {},
8916
"endCaptures": {
8917
"0": {
8918
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
8919
}
8920
},
8921
"name": "meta.body.union.cpp",
8922
"patterns": [
8923
{
8924
"include": "#function_pointer"
8925
},
8926
{
8927
"include": "#static_assert"
8928
},
8929
{
8930
"include": "#constructor_inline"
8931
},
8932
{
8933
"include": "#destructor_inline"
8934
},
8935
{
8936
"include": "$self"
8937
}
8938
]
8939
},
8940
{
8941
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
8942
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
8943
"beginCaptures": {},
8944
"endCaptures": {},
8945
"name": "meta.tail.union.cpp",
8946
"patterns": [
8947
{
8948
"match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
8949
"captures": {
8950
"1": {
8951
"patterns": [
8952
{
8953
"match": "\\*",
8954
"name": "storage.modifier.pointer.cpp"
8955
},
8956
{
8957
"match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",
8958
"captures": {
8959
"1": {
8960
"patterns": [
8961
{
8962
"include": "source.cpp#inline_comment"
8963
}
8964
]
8965
},
8966
"2": {
8967
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8968
},
8969
"3": {
8970
"name": "comment.block.cpp"
8971
},
8972
"4": {
8973
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8974
}
8975
},
8976
"name": "invalid.illegal.reference-type.cpp"
8977
},
8978
{
8979
"match": "\\&",
8980
"name": "storage.modifier.reference.cpp"
8981
}
8982
]
8983
},
8984
"2": {
8985
"patterns": [
8986
{
8987
"include": "source.cpp#inline_comment"
8988
}
8989
]
8990
},
8991
"3": {
8992
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8993
},
8994
"4": {
8995
"name": "comment.block.cpp"
8996
},
8997
"5": {
8998
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8999
},
9000
"6": {
9001
"patterns": [
9002
{
9003
"include": "source.cpp#inline_comment"
9004
}
9005
]
9006
},
9007
"7": {
9008
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9009
},
9010
"8": {
9011
"name": "comment.block.cpp"
9012
},
9013
"9": {
9014
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9015
},
9016
"10": {
9017
"patterns": [
9018
{
9019
"include": "source.cpp#inline_comment"
9020
}
9021
]
9022
},
9023
"11": {
9024
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9025
},
9026
"12": {
9027
"name": "comment.block.cpp"
9028
},
9029
"13": {
9030
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9031
},
9032
"14": {
9033
"name": "entity.name.type.alias.cpp"
9034
}
9035
}
9036
},
9037
{
9038
"match": ","
9039
}
9040
]
9041
}
9042
]
9043
}
9044
]
9045
},
9046
"typeid_operator": {
9047
"begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()",
9048
"end": "\\)|(?=(?<!\\\\)\n)",
9049
"beginCaptures": {
9050
"1": {
9051
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
9052
},
9053
"2": {
9054
"patterns": [
9055
{
9056
"include": "source.cpp#inline_comment"
9057
}
9058
]
9059
},
9060
"3": {
9061
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9062
},
9063
"4": {
9064
"name": "comment.block.cpp"
9065
},
9066
"5": {
9067
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9068
},
9069
"6": {
9070
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
9071
}
9072
},
9073
"endCaptures": {
9074
"0": {
9075
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
9076
}
9077
},
9078
"contentName": "meta.arguments.operator.typeid",
9079
"patterns": [
9080
{
9081
"include": "#evaluation_context"
9082
}
9083
]
9084
},
9085
"union_block": {
9086
"begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)",
9087
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
9088
"beginCaptures": {
9089
"0": {
9090
"name": "meta.head.union.cpp"
9091
},
9092
"1": {
9093
"name": "storage.type.$1.cpp"
9094
},
9095
"2": {
9096
"patterns": [
9097
{
9098
"include": "source.cpp#inline_comment"
9099
}
9100
]
9101
},
9102
"3": {
9103
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9104
},
9105
"4": {
9106
"name": "comment.block.cpp"
9107
},
9108
"5": {
9109
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9110
},
9111
"6": {
9112
"patterns": [
9113
{
9114
"include": "#attributes_context"
9115
},
9116
{
9117
"include": "source.cpp#number_literal"
9118
}
9119
]
9120
},
9121
"7": {
9122
"patterns": [
9123
{
9124
"include": "source.cpp#inline_comment"
9125
}
9126
]
9127
},
9128
"8": {
9129
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9130
},
9131
"9": {
9132
"name": "comment.block.cpp"
9133
},
9134
"10": {
9135
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9136
},
9137
"11": {
9138
"patterns": [
9139
{
9140
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))",
9141
"captures": {
9142
"1": {
9143
"name": "storage.type.modifier.final.cpp"
9144
},
9145
"2": {
9146
"patterns": [
9147
{
9148
"include": "source.cpp#inline_comment"
9149
}
9150
]
9151
},
9152
"3": {
9153
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9154
},
9155
"4": {
9156
"name": "comment.block.cpp"
9157
},
9158
"5": {
9159
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9160
}
9161
}
9162
},
9163
{
9164
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)",
9165
"captures": {
9166
"1": {
9167
"name": "entity.name.type.union.cpp"
9168
},
9169
"2": {
9170
"patterns": [
9171
{
9172
"include": "source.cpp#inline_comment"
9173
}
9174
]
9175
},
9176
"3": {
9177
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9178
},
9179
"4": {
9180
"name": "comment.block.cpp"
9181
},
9182
"5": {
9183
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9184
},
9185
"6": {
9186
"name": "storage.type.modifier.final.cpp"
9187
},
9188
"7": {
9189
"patterns": [
9190
{
9191
"include": "source.cpp#inline_comment"
9192
}
9193
]
9194
},
9195
"8": {
9196
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9197
},
9198
"9": {
9199
"name": "comment.block.cpp"
9200
},
9201
"10": {
9202
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9203
}
9204
}
9205
},
9206
{
9207
"match": "DLLEXPORT",
9208
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
9209
},
9210
{
9211
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
9212
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
9213
}
9214
]
9215
},
9216
"12": {
9217
"patterns": [
9218
{
9219
"include": "source.cpp#inline_comment"
9220
}
9221
]
9222
},
9223
"13": {
9224
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9225
},
9226
"14": {
9227
"name": "comment.block.cpp"
9228
},
9229
"15": {
9230
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9231
},
9232
"16": {
9233
"patterns": [
9234
{
9235
"include": "source.cpp#inline_comment"
9236
}
9237
]
9238
},
9239
"17": {
9240
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9241
},
9242
"18": {
9243
"name": "comment.block.cpp"
9244
},
9245
"19": {
9246
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9247
},
9248
"20": {
9249
"name": "punctuation.separator.colon.inheritance.cpp"
9250
}
9251
},
9252
"endCaptures": {
9253
"1": {
9254
"name": "punctuation.terminator.statement.cpp"
9255
},
9256
"2": {
9257
"name": "punctuation.terminator.statement.cpp"
9258
}
9259
},
9260
"name": "meta.block.union.cpp",
9261
"patterns": [
9262
{
9263
"begin": "\\G ?",
9264
"end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
9265
"beginCaptures": {},
9266
"endCaptures": {
9267
"0": {
9268
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
9269
}
9270
},
9271
"name": "meta.head.union.cpp",
9272
"patterns": [
9273
{
9274
"include": "#ever_present_context"
9275
},
9276
{
9277
"include": "#inheritance_context"
9278
},
9279
{
9280
"include": "#template_call_range"
9281
}
9282
]
9283
},
9284
{
9285
"begin": "(?<=\\{|<%|\\?\\?<)",
9286
"end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
9287
"beginCaptures": {},
9288
"endCaptures": {
9289
"0": {
9290
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
9291
}
9292
},
9293
"name": "meta.body.union.cpp",
9294
"patterns": [
9295
{
9296
"include": "#function_pointer"
9297
},
9298
{
9299
"include": "#static_assert"
9300
},
9301
{
9302
"include": "#constructor_inline"
9303
},
9304
{
9305
"include": "#destructor_inline"
9306
},
9307
{
9308
"include": "$self"
9309
}
9310
]
9311
},
9312
{
9313
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
9314
"end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
9315
"beginCaptures": {},
9316
"endCaptures": {},
9317
"name": "meta.tail.union.cpp",
9318
"patterns": [
9319
{
9320
"include": "$self"
9321
}
9322
]
9323
}
9324
]
9325
},
9326
"using_namespace": {
9327
"begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<6>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)",
9328
"end": ";|(?=(?<!\\\\)\n)",
9329
"beginCaptures": {
9330
"1": {
9331
"name": "keyword.other.using.directive.cpp"
9332
},
9333
"2": {
9334
"name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp"
9335
},
9336
"3": {
9337
"patterns": [
9338
{
9339
"include": "source.cpp#scope_resolution_namespace_using_inner_generated"
9340
}
9341
]
9342
},
9343
"4": {
9344
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
9345
},
9346
"5": {
9347
"patterns": [
9348
{
9349
"include": "#template_call_range"
9350
}
9351
]
9352
},
9353
"6": {},
9354
"7": {
9355
"name": "entity.name.namespace.cpp"
9356
}
9357
},
9358
"endCaptures": {
9359
"0": {
9360
"name": "punctuation.terminator.statement.cpp"
9361
}
9362
},
9363
"name": "meta.using-namespace.cpp"
9364
}
9365
}
9366
}
9367