tm-grammars 1.13.4 → 1.13.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,1633 @@
1
1
  {
2
- "displayName": "YAML Ain't Markup Language",
2
+ "displayName": "YAML",
3
3
  "name": "yaml",
4
4
  "patterns": [
5
5
  {
6
- "comment": "Default to YAML version 1.2",
7
- "include": "source.yaml.1.2"
6
+ "include": "#stream"
8
7
  }
9
8
  ],
10
9
  "repository": {
11
- "parity": {
12
- "comment": "Yes... That is right. Due to the changes with \\x2028, \\x2029, \\x85 and 'tags'. This is all the code I was able to reuse between all versions 1.3, 1.2, 1.1 and 1.0"
10
+ "alias": {
11
+ "begin": "(\\*)([\\x{85}[^ ,\\[\\]{}\\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]++)|(\\*)",
12
+ "captures": {
13
+ "0": {
14
+ "name": "keyword.control.flow.alias.yaml"
15
+ },
16
+ "1": {
17
+ "name": "punctuation.definition.alias.yaml"
18
+ },
19
+ "2": {
20
+ "name": "variable.other.alias.yaml"
21
+ },
22
+ "3": {
23
+ "name": "invalid.illegal.flow.alias.yaml"
24
+ }
25
+ },
26
+ "end": "(?=:[\n,\\[\\]{}]|[,\\[\\]{}])",
27
+ "patterns": [
28
+ {
29
+ "include": "#presentation-detail"
30
+ }
31
+ ]
32
+ },
33
+ "anchor-property": {
34
+ "captures": {
35
+ "0": {
36
+ "name": "keyword.control.flow.anchor.yaml"
37
+ },
38
+ "1": {
39
+ "name": "punctuation.definition.anchor.yaml"
40
+ },
41
+ "2": {
42
+ "name": "variable.other.anchor.yaml"
43
+ },
44
+ "3": {
45
+ "name": "invalid.illegal.flow.anchor.yaml"
46
+ }
47
+ },
48
+ "match": "(&)([\\x{85}[^ ,\\[\\]{}\\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]++)|(&)"
49
+ },
50
+ "block-map-key-double": {
51
+ "begin": "\\G\"",
52
+ "beginCaptures": {
53
+ "0": {
54
+ "name": "punctuation.definition.string.begin.yaml"
55
+ }
56
+ },
57
+ "comment": "https://yaml.org/spec/1.2.2/#double-quoted-style (BLOCK-KEY)",
58
+ "end": "\"",
59
+ "endCaptures": {
60
+ "0": {
61
+ "name": "punctuation.definition.string.end.yaml"
62
+ }
63
+ },
64
+ "name": "meta.map.key.yaml string.quoted.double.yaml entity.name.tag.yaml",
65
+ "patterns": [
66
+ {
67
+ "match": ".[\t ]*+$",
68
+ "name": "invalid.illegal.multiline-key.yaml"
69
+ },
70
+ {
71
+ "match": "[^\t -\\x{10FFFF}]++",
72
+ "name": "invalid.illegal.character.yaml"
73
+ },
74
+ {
75
+ "include": "#double-escape"
76
+ }
77
+ ]
78
+ },
79
+ "block-map-key-explicit": {
80
+ "begin": "(?=((?<=[-?:]) )?+)\\G( *+)(\\?)(?=[\n])",
81
+ "beginCaptures": {
82
+ "2": {
83
+ "name": "punctuation.whitespace.indentation.yaml"
84
+ },
85
+ "3": {
86
+ "name": "punctuation.definition.map.key.yaml"
87
+ },
88
+ "4": {
89
+ "name": "punctuation.whitespace.separator.yaml"
90
+ }
91
+ },
92
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-l-block-map-explicit-key",
93
+ "name": "meta.map.explicit.yaml",
94
+ "patterns": [
95
+ {
96
+ "include": "#key-double"
97
+ },
98
+ {
99
+ "include": "source.yaml#key-single"
100
+ },
101
+ {
102
+ "include": "#flow-key-plain-out"
103
+ },
104
+ {
105
+ "include": "#block-map-value"
106
+ },
107
+ {
108
+ "include": "#block-node"
109
+ }
110
+ ],
111
+ "while": "\\G(?>(\\1\\2)(?![?:0-9A-Za-z$()+./;<=\\\\^_~\\x{85}\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}&&[^\\x{FEFF}]])((?>\t[\t ]*+)?+[^\r\n\t #\\-\\[\\]{}])?+|(?!\\1\\2)( *+)([\t ]*+[^\r\n#])?+)",
112
+ "whileCaptures": {
113
+ "1": {
114
+ "name": "punctuation.whitespace.indentation.yaml"
115
+ },
116
+ "2": {
117
+ "name": "invalid.illegal.expected-indentation.yaml"
118
+ },
119
+ "3": {
120
+ "name": "punctuation.whitespace.indentation.yaml"
121
+ },
122
+ "4": {
123
+ "name": "invalid.illegal.expected-indentation.yaml"
124
+ }
125
+ }
126
+ },
127
+ "block-map-key-plain": {
128
+ "begin": "\\G(?=[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n]))",
129
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-one-line (BLOCK-KEY)",
130
+ "end": "(?=[\t ]*+:[\n]|(?>[\t ]++|\\G)#)",
131
+ "name": "meta.map.key.yaml string.unquoted.plain.yaml entity.name.tag.yaml",
132
+ "patterns": [
133
+ {
134
+ "include": "#tag-implicit-plain-out"
135
+ },
136
+ {
137
+ "captures": {
138
+ "1": {
139
+ "name": "punctuation.whitespace.separator.yaml"
140
+ },
141
+ "2": {
142
+ "name": "invalid.illegal.multiline-key.yaml"
143
+ }
144
+ },
145
+ "match": "\\G([\t ]++)(.)"
146
+ },
147
+ {
148
+ "match": "[\t ]++$",
149
+ "name": "punctuation.whitespace.separator.yaml"
150
+ },
151
+ {
152
+ "match": "\\x{FEFF}",
153
+ "name": "invalid.illegal.bom.yaml"
154
+ },
155
+ {
156
+ "include": "source.yaml#non-printable"
157
+ }
158
+ ]
159
+ },
160
+ "block-map-value": {
161
+ "begin": ":(?=[\n])",
162
+ "beginCaptures": {
163
+ "0": {
164
+ "name": "punctuation.separator.map.value.yaml"
165
+ }
166
+ },
167
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-l-block-map-implicit-value",
168
+ "name": "meta.map.value.yaml",
169
+ "patterns": [
170
+ {
171
+ "include": "#block-node"
172
+ }
173
+ ],
174
+ "while": "\\G(?![?:!\"'0-9A-Za-z$()+./;<=\\\\^_~\\[{\\x{85}\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}&&[^\\x{FEFF}]]|-[^\r\n\t ])"
175
+ },
176
+ "block-mapping": {
177
+ "//": "The check for plain keys is expensive",
178
+ "begin": "(?=((?<=[-?:]) )?+)(?<![^\t ][\t ]*+:|---)\\G( *+)([\t ]*+)(?>((?>[!&*][^\n]*+[\t ]++)*+)(?=(?>(?#Double Quote)\"(?>[^\\\\\"]++|\\\\.)*+\"|(?#Single Quote)'(?>[^']++|'')*+'|(?#Flow-Map){(?>[^}]++|}[ \t]*+(?!:[\n]))++}|(?#Flow-Seq)\\[(?>[^]]++|][ \t]*+(?!:[\n]))++]|(?#Plain)(?>[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n]))(?>[^:#]++|:(?![\n])|(?<! |\t)#++)*+)?+(?#Map Value)[\t ]*+:[\n])|(?#Explicit)(?=\\?[\n]))",
179
+ "beginCaptures": {
180
+ "2": {
181
+ "name": "punctuation.whitespace.indentation.yaml"
182
+ },
183
+ "3": {
184
+ "name": "punctuation.whitespace.separator.yaml"
185
+ },
186
+ "4": {
187
+ "comment": "May cause lag on long lines starting with a tag, anchor or alias",
188
+ "patterns": [
189
+ {
190
+ "include": "#tag-property"
191
+ },
192
+ {
193
+ "include": "#anchor-property"
194
+ },
195
+ {
196
+ "include": "#alias"
197
+ },
198
+ {
199
+ "include": "#presentation-detail"
200
+ }
201
+ ]
202
+ }
203
+ },
204
+ "name": "meta.mapping.yaml",
205
+ "patterns": [
206
+ {
207
+ "include": "#block-map-key-double"
208
+ },
209
+ {
210
+ "include": "source.yaml#block-map-key-single"
211
+ },
212
+ {
213
+ "include": "#block-map-key-plain"
214
+ },
215
+ {
216
+ "include": "#block-map-key-explicit"
217
+ },
218
+ {
219
+ "include": "#block-map-value"
220
+ },
221
+ {
222
+ "include": "#flow-mapping"
223
+ },
224
+ {
225
+ "include": "#flow-sequence"
226
+ },
227
+ {
228
+ "include": "#presentation-detail"
229
+ }
230
+ ],
231
+ "while": "\\G(?>(\\1\\2)((?>[!&*][^\r\n\t ]*+[\t ]++)*+)((?>\t[\t ]*+)?+[^\r\n\t ?:\\-#!&*\"'\\[\\]{}0-9A-Za-z$()+./;<=\\\\^_~\\x{85}\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}])?+|( *+)([\t ]*+[^\r\n#])?+)",
232
+ "whileCaptures": {
233
+ "1": {
234
+ "name": "punctuation.whitespace.indentation.yaml"
235
+ },
236
+ "2": {
237
+ "comment": "May cause lag on long lines starting with a tag, anchor or alias",
238
+ "patterns": [
239
+ {
240
+ "include": "#tag-property"
241
+ },
242
+ {
243
+ "include": "#anchor-property"
244
+ },
245
+ {
246
+ "include": "#alias"
247
+ },
248
+ {
249
+ "include": "#presentation-detail"
250
+ }
251
+ ]
252
+ },
253
+ "3": {
254
+ "name": "invalid.illegal.expected-indentation.yaml"
255
+ },
256
+ "4": {
257
+ "name": "punctuation.whitespace.indentation.yaml"
258
+ },
259
+ "5": {
260
+ "name": "invalid.illegal.expected-indentation.yaml"
261
+ }
262
+ }
263
+ },
264
+ "block-node": {
265
+ "patterns": [
266
+ {
267
+ "include": "#block-sequence"
268
+ },
269
+ {
270
+ "include": "#block-mapping"
271
+ },
272
+ {
273
+ "include": "#block-scalar"
274
+ },
275
+ {
276
+ "include": "#anchor-property"
277
+ },
278
+ {
279
+ "include": "#tag-property"
280
+ },
281
+ {
282
+ "include": "#alias"
283
+ },
284
+ {
285
+ "begin": "(?=\"|')",
286
+ "patterns": [
287
+ {
288
+ "begin": "(?!\\G)",
289
+ "patterns": [
290
+ {
291
+ "include": "#presentation-detail"
292
+ }
293
+ ],
294
+ "while": "\\G"
295
+ },
296
+ {
297
+ "include": "#double"
298
+ },
299
+ {
300
+ "include": "#single"
301
+ }
302
+ ],
303
+ "while": "\\G"
304
+ },
305
+ {
306
+ "begin": "(?={)",
307
+ "end": "$",
308
+ "patterns": [
309
+ {
310
+ "include": "#flow-mapping"
311
+ },
312
+ {
313
+ "include": "#presentation-detail"
314
+ }
315
+ ]
316
+ },
317
+ {
318
+ "begin": "(?=\\[)",
319
+ "end": "$",
320
+ "patterns": [
321
+ {
322
+ "include": "#flow-sequence"
323
+ },
324
+ {
325
+ "include": "#presentation-detail"
326
+ }
327
+ ]
328
+ },
329
+ {
330
+ "include": "#block-plain-out"
331
+ },
332
+ {
333
+ "include": "#presentation-detail"
334
+ }
335
+ ]
336
+ },
337
+ "block-plain-out": {
338
+ "begin": "(?=[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n]))",
339
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-multi-line (FLOW-OUT)",
340
+ "patterns": [
341
+ {
342
+ "begin": "\\G",
343
+ "end": "(?=(?>[\t ]++|\\G)#)",
344
+ "name": "string.unquoted.plain.out.yaml",
345
+ "patterns": [
346
+ {
347
+ "include": "#tag-implicit-plain-out"
348
+ },
349
+ {
350
+ "match": ":(?=[\n])",
351
+ "name": "invalid.illegal.multiline-key.yaml"
352
+ },
353
+ {
354
+ "match": "\\G[\t ]++",
355
+ "name": "punctuation.whitespace.separator.yaml"
356
+ },
357
+ {
358
+ "match": "[\t ]++$",
359
+ "name": "punctuation.whitespace.separator.yaml"
360
+ },
361
+ {
362
+ "match": "\\x{FEFF}",
363
+ "name": "invalid.illegal.bom.yaml"
364
+ },
365
+ {
366
+ "include": "source.yaml#non-printable"
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ "begin": "(?!\\G)",
372
+ "patterns": [
373
+ {
374
+ "include": "#presentation-detail"
375
+ }
376
+ ],
377
+ "while": "\\G"
378
+ }
379
+ ],
380
+ "while": "\\G"
381
+ },
382
+ "block-scalar": {
383
+ "comment": "https://yaml.org/spec/1.2.2/#81-block-scalar-styles",
384
+ "patterns": [
385
+ {
386
+ "begin": "([\t ]*+)(?>(\\|)|(>))(?<chomp>[+-])?+((1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9))(?(<chomp>)|([+-]))?+",
387
+ "beginCaptures": {
388
+ "1": {
389
+ "name": "punctuation.whitespace.separator.yaml"
390
+ },
391
+ "15": {
392
+ "name": "storage.modifier.chomping-indicator.yaml"
393
+ },
394
+ "2": {
395
+ "name": "keyword.control.flow.block-scalar.literal.yaml"
396
+ },
397
+ "3": {
398
+ "name": "keyword.control.flow.block-scalar.folded.yaml"
399
+ },
400
+ "4": {
401
+ "name": "storage.modifier.chomping-indicator.yaml"
402
+ },
403
+ "5": {
404
+ "name": "constant.numeric.indentation-indicator.yaml"
405
+ }
406
+ },
407
+ "comment": "https://yaml.org/spec/1.2.2/#8111-block-indentation-indicator",
408
+ "name": "meta.scalar.yaml",
409
+ "patterns": [
410
+ {
411
+ "begin": "$",
412
+ "contentName": "string.unquoted.block.yaml",
413
+ "patterns": [
414
+ {
415
+ "include": "source.yaml#non-printable"
416
+ }
417
+ ],
418
+ "while": "\\G"
419
+ },
420
+ {
421
+ "begin": "\\G",
422
+ "end": "$",
423
+ "patterns": [
424
+ {
425
+ "include": "#presentation-detail"
426
+ }
427
+ ]
428
+ }
429
+ ],
430
+ "while": "\\G(?>(?>(?!\\6) |(?!\\7) {2}|(?!\\8) {3}|(?!\\9) {4}|(?!\\10) {5}|(?!\\11) {6}|(?!\\12) {7}|(?!\\13) {8}|(?!\\14) {9})| *+($|[^#]))",
431
+ "whileCaptures": {
432
+ "0": {
433
+ "name": "punctuation.whitespace.indentation.yaml"
434
+ },
435
+ "1": {
436
+ "name": "invalid.illegal.expected-indentation.yaml"
437
+ }
438
+ }
439
+ },
440
+ {
441
+ "//": "Soooooooo many edge cases",
442
+ "begin": "([\t ]*+)(?>(\\|)|(>))([+-]?+)",
443
+ "beginCaptures": {
444
+ "1": {
445
+ "name": "punctuation.whitespace.separator.yaml"
446
+ },
447
+ "2": {
448
+ "name": "keyword.control.flow.block-scalar.literal.yaml"
449
+ },
450
+ "3": {
451
+ "name": "keyword.control.flow.block-scalar.folded.yaml"
452
+ },
453
+ "4": {
454
+ "name": "storage.modifier.chomping-indicator.yaml"
455
+ }
456
+ },
457
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-b-block-header",
458
+ "name": "meta.scalar.yaml",
459
+ "patterns": [
460
+ {
461
+ "begin": "$",
462
+ "comment": "https://yaml.org/spec/1.2.2/#rule-l-literal-content",
463
+ "patterns": [
464
+ {
465
+ "//": "Find the highest indented line",
466
+ "begin": "\\G( ++)$",
467
+ "captures": {
468
+ "1": {
469
+ "name": "punctuation.whitespace.indentation.yaml"
470
+ },
471
+ "2": {
472
+ "name": "punctuation.whitespace.indentation.yaml"
473
+ },
474
+ "3": {
475
+ "name": "invalid.illegal.expected-indentation.yaml"
476
+ }
477
+ },
478
+ "comment": "https://yaml.org/spec/1.2.2/#rule-l-nb-literal-text",
479
+ "contentName": "string.unquoted.block.yaml",
480
+ "patterns": [
481
+ {
482
+ "include": "source.yaml#non-printable"
483
+ }
484
+ ],
485
+ "while": "\\G(?>(\\1)$|(?!\\1)( *+)($|.))"
486
+ },
487
+ {
488
+ "//": [
489
+ "Funky wrapper function",
490
+ "The `end` pattern clears the parent `\\G` anchor",
491
+ "Affectively forcing this rule to only match at most once",
492
+ "https://github.com/microsoft/vscode-textmate/issues/114"
493
+ ],
494
+ "begin": "\\G(?!$)(?=( *+))",
495
+ "comment": "https://yaml.org/spec/1.2.2/#rule-b-nb-literal-next",
496
+ "end": "\\G(?!\\1)(?=[\t ]*+#)",
497
+ "patterns": [
498
+ {
499
+ "begin": "\\G( *+)",
500
+ "captures": {
501
+ "1": {
502
+ "name": "punctuation.whitespace.indentation.yaml"
503
+ },
504
+ "2": {
505
+ "name": "punctuation.whitespace.indentation.yaml"
506
+ },
507
+ "3": {
508
+ "name": "invalid.illegal.expected-indentation.yaml"
509
+ }
510
+ },
511
+ "comment": "https://yaml.org/spec/1.2.2/#rule-l-nb-literal-text",
512
+ "contentName": "string.unquoted.block.yaml",
513
+ "patterns": [
514
+ {
515
+ "include": "source.yaml#non-printable"
516
+ }
517
+ ],
518
+ "while": "\\G(?>(\\1)|( *+)($|[^\t#]|[\t ]++[^#]))"
519
+ }
520
+ ]
521
+ },
522
+ {
523
+ "begin": "(?!\\G)(?=[\t ]*+#)",
524
+ "comment": "https://yaml.org/spec/1.2.2/#rule-l-chomped-empty",
525
+ "patterns": [
526
+ {
527
+ "include": "#presentation-detail"
528
+ }
529
+ ],
530
+ "while": "\\G"
531
+ }
532
+ ],
533
+ "while": "\\G"
534
+ },
535
+ {
536
+ "begin": "\\G",
537
+ "comment": "Header Comment",
538
+ "end": "$",
539
+ "patterns": [
540
+ {
541
+ "include": "#presentation-detail"
542
+ }
543
+ ]
544
+ }
545
+ ],
546
+ "while": "\\G"
547
+ }
548
+ ]
549
+ },
550
+ "block-sequence": {
551
+ "begin": "(?=((?<=[-?:]) )?+)(?<![^\t ][\t ]*+:|---)\\G( *+)(-)(?=[\n])",
552
+ "beginCaptures": {
553
+ "2": {
554
+ "name": "punctuation.whitespace.indentation.yaml"
555
+ },
556
+ "3": {
557
+ "name": "punctuation.definition.block.sequence.item.yaml"
558
+ }
559
+ },
560
+ "comment": "https://yaml.org/spec/1.2.2/#rule-l+block-sequence",
561
+ "name": "meta.block.sequence.yaml",
562
+ "patterns": [
563
+ {
564
+ "include": "#block-node"
565
+ }
566
+ ],
567
+ "while": "\\G(?>(\\1\\2)(?!-[\r\n\t ])((?>\t[\t ]*+)?+[^\r\n\t #\\]}])?+|(?!\\1\\2)( *+)([\t ]*+[^\r\n#])?+)",
568
+ "whileCaptures": {
569
+ "1": {
570
+ "name": "punctuation.whitespace.indentation.yaml"
571
+ },
572
+ "2": {
573
+ "name": "invalid.illegal.expected-indentation.yaml"
574
+ },
575
+ "3": {
576
+ "name": "punctuation.whitespace.indentation.yaml"
577
+ },
578
+ "4": {
579
+ "name": "invalid.illegal.expected-indentation.yaml"
580
+ }
581
+ }
582
+ },
583
+ "byte-order-mark": {
584
+ "comment": "",
585
+ "match": "\\G\\x{FEFF}++",
586
+ "name": "byte-order-mark.yaml"
587
+ },
588
+ "comment": {
589
+ "begin": "(?<=[\\x{FEFF}\t ]|^)#",
590
+ "captures": {
591
+ "0": {
592
+ "name": "punctuation.definition.comment.yaml"
593
+ }
594
+ },
595
+ "comment": "Comments must be separated from other tokens by white space characters. `space`, `tab`, `newline` or `carriage-return`. `#(.*)` causes performance issues",
596
+ "end": "|\n",
597
+ "name": "comment.line.number-sign.yaml",
598
+ "patterns": [
599
+ {
600
+ "include": "source.yaml#non-printable"
601
+ }
602
+ ]
603
+ },
604
+ "directive-YAML": {
605
+ "begin": "(?=%YAML[\t ]+1\\.2(?=[\n]))",
606
+ "comment": "https://yaml.org/spec/1.2.2/#681-yaml-directives",
607
+ "end": "\\G(?=(?>\\.{3}|---)[\n])",
608
+ "name": "meta.1.2.yaml",
609
+ "patterns": [
610
+ {
611
+ "begin": "\\G(%)(YAML)([\t ]+)(1\\.2)",
612
+ "beginCaptures": {
613
+ "1": {
614
+ "name": "punctuation.definition.directive.begin.yaml"
615
+ },
616
+ "2": {
617
+ "name": "keyword.other.directive.yaml.yaml"
618
+ },
619
+ "3": {
620
+ "name": "punctuation.whitespace.separator.yaml"
621
+ },
622
+ "4": {
623
+ "name": "constant.numeric.yaml-version.yaml"
624
+ }
625
+ },
626
+ "comment": "https://yaml.org/spec/1.2.2/#681-yaml-directives",
627
+ "end": "\\G(?=---[\n])",
628
+ "name": "meta.directives.yaml",
629
+ "patterns": [
630
+ {
631
+ "include": "#directive-invalid"
632
+ },
633
+ {
634
+ "include": "#directives"
635
+ },
636
+ {
637
+ "include": "#presentation-detail"
638
+ }
639
+ ]
640
+ },
641
+ {
642
+ "include": "#document"
643
+ }
644
+ ]
645
+ },
646
+ "directive-invalid": {
647
+ "patterns": [
648
+ {
649
+ "match": "\\G\\.{3}(?=[\n])",
650
+ "name": "invalid.illegal.entity.other.document.end.yaml"
651
+ },
652
+ {
653
+ "begin": "\\G(%)(YAML)",
654
+ "beginCaptures": {
655
+ "1": {
656
+ "name": "punctuation.definition.directive.begin.yaml"
657
+ },
658
+ "2": {
659
+ "name": "invalid.illegal.keyword.other.directive.yaml.yaml"
660
+ }
661
+ },
662
+ "end": "$",
663
+ "name": "meta.directive.yaml",
664
+ "patterns": [
665
+ {
666
+ "captures": {
667
+ "1": {
668
+ "name": "punctuation.whitespace.separator.yaml"
669
+ },
670
+ "2": {
671
+ "name": "constant.numeric.yaml-version.yaml"
672
+ }
673
+ },
674
+ "match": "\\G([\t ]++|:)([0-9]++\\.[0-9]++)?+"
675
+ },
676
+ {
677
+ "include": "#presentation-detail"
678
+ }
679
+ ]
680
+ }
681
+ ]
682
+ },
683
+ "directives": {
684
+ "comment": "https://yaml.org/spec/1.2.2/#68-directives",
685
+ "patterns": [
686
+ {
687
+ "include": "source.yaml.1.3#directive-YAML"
688
+ },
689
+ {
690
+ "include": "source.yaml.1.2#directive-YAML"
691
+ },
692
+ {
693
+ "include": "source.yaml.1.1#directive-YAML"
694
+ },
695
+ {
696
+ "include": "source.yaml.1.0#directive-YAML"
697
+ },
698
+ {
699
+ "begin": "(?=%)",
700
+ "name": "meta.directives.yaml",
701
+ "patterns": [
702
+ {
703
+ "applyEndPatternLast": true,
704
+ "begin": "\\G(%)(TAG)(?>([\t ]++)((!)(?>[0-9A-Za-z-]*+(!))?+))?+",
705
+ "beginCaptures": {
706
+ "1": {
707
+ "name": "punctuation.definition.directive.begin.yaml"
708
+ },
709
+ "2": {
710
+ "name": "keyword.other.directive.tag.yaml"
711
+ },
712
+ "3": {
713
+ "name": "punctuation.whitespace.separator.yaml"
714
+ },
715
+ "4": {
716
+ "name": "storage.type.tag-handle.yaml"
717
+ },
718
+ "5": {
719
+ "name": "punctuation.definition.tag.begin.yaml"
720
+ },
721
+ "6": {
722
+ "name": "punctuation.definition.tag.end.yaml"
723
+ },
724
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-tag-handle"
725
+ },
726
+ "comment": "https://yaml.org/spec/1.2.2/#682-tag-directives",
727
+ "end": "$",
728
+ "patterns": [
729
+ {
730
+ "begin": "\\G[\t ]++(?!#)",
731
+ "beginCaptures": {
732
+ "0": {
733
+ "name": "punctuation.whitespace.separator.yaml"
734
+ }
735
+ },
736
+ "comment": "technically the beginning should only validate against a valid uri scheme [A-Za-z][A-Za-z0-9.+-]*",
737
+ "contentName": "support.type.tag-prefix.yaml",
738
+ "end": "(?=[\n])",
739
+ "patterns": [
740
+ {
741
+ "match": "%[0-9a-fA-F]{2}",
742
+ "name": "constant.character.escape.unicode.8-bit.yaml"
743
+ },
744
+ {
745
+ "match": "%[^\n]{2,0}",
746
+ "name": "invalid.illegal.constant.character.escape.unicode.8-bit.yaml"
747
+ },
748
+ {
749
+ "match": "\\G[,\\[\\]{}]",
750
+ "name": "invalid.illegal.character.uri.yaml"
751
+ },
752
+ {
753
+ "include": "source.yaml#non-printable"
754
+ },
755
+ {
756
+ "match": "[^\na-zA-Z0-9-#;/?:@&=+$,_.!~*'()\\[\\]]++",
757
+ "name": "invalid.illegal.unrecognized.yaml"
758
+ }
759
+ ]
760
+ },
761
+ {
762
+ "include": "#presentation-detail"
763
+ }
764
+ ]
765
+ },
766
+ {
767
+ "begin": "(%)([\\x{85}[^ \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]++)",
768
+ "beginCaptures": {
769
+ "1": {
770
+ "name": "punctuation.definition.directive.begin.yaml"
771
+ },
772
+ "2": {
773
+ "name": "keyword.other.directive.other.yaml"
774
+ }
775
+ },
776
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-reserved-directive",
777
+ "end": "$",
778
+ "patterns": [
779
+ {
780
+ "captures": {
781
+ "1": {
782
+ "name": "punctuation.whitespace.separator.yaml"
783
+ },
784
+ "2": {
785
+ "name": "string.unquoted.directive-name.yaml"
786
+ }
787
+ },
788
+ "match": "\\G([\t ]++)([\\x{85}[^ \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]++)"
789
+ },
790
+ {
791
+ "captures": {
792
+ "1": {
793
+ "name": "punctuation.whitespace.separator.yaml"
794
+ },
795
+ "2": {
796
+ "name": "string.unquoted.directive-parameter.yaml"
797
+ }
798
+ },
799
+ "match": "([\t ]++)([\\x{85}[^ \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]++)"
800
+ },
801
+ {
802
+ "include": "#presentation-detail"
803
+ }
804
+ ]
805
+ },
806
+ {
807
+ "match": "\\G\\.{3}(?=[\n])",
808
+ "name": "invalid.illegal.entity.other.document.end.yaml"
809
+ },
810
+ {
811
+ "include": "#presentation-detail"
812
+ }
813
+ ],
814
+ "while": "\\G(?!%|---[\r\n\t ])"
815
+ }
816
+ ]
817
+ },
818
+ "document": {
819
+ "comment": "https://yaml.org/spec/1.2.2/#91-documents",
820
+ "patterns": [
821
+ {
822
+ "begin": "---(?=[\n])",
823
+ "beginCaptures": {
824
+ "0": {
825
+ "name": "entity.other.document.begin.yaml"
826
+ }
827
+ },
828
+ "name": "meta.document.yaml",
829
+ "patterns": [
830
+ {
831
+ "include": "#block-node"
832
+ }
833
+ ],
834
+ "while": "\\G(?!(?>\\.{3}|---)[\r\n\t ])"
835
+ },
836
+ {
837
+ "begin": "(?=\\.{3}[\n])",
838
+ "patterns": [
839
+ {
840
+ "begin": "\\G\\.{3}",
841
+ "beginCaptures": {
842
+ "0": {
843
+ "name": "entity.other.document.end.yaml"
844
+ }
845
+ },
846
+ "end": "$",
847
+ "patterns": [
848
+ {
849
+ "include": "#presentation-detail"
850
+ }
851
+ ]
852
+ },
853
+ {
854
+ "include": "#byte-order-mark"
855
+ },
856
+ {
857
+ "include": "#presentation-detail"
858
+ }
859
+ ],
860
+ "while": "\\G(?=[\t \\x{FEFF}]*+(?>#|$))"
861
+ },
862
+ {
863
+ "begin": "\\G(?!%|[\t \\x{FEFF}]*+(?>#|$))",
864
+ "name": "meta.document.yaml",
865
+ "patterns": [
866
+ {
867
+ "include": "#block-node"
868
+ }
869
+ ],
870
+ "while": "\\G(?!(?>\\.{3}|---)[\r\n\t ])"
871
+ }
872
+ ]
873
+ },
874
+ "double": {
875
+ "begin": "\"",
876
+ "beginCaptures": {
877
+ "0": {
878
+ "name": "punctuation.definition.string.begin.yaml"
879
+ }
880
+ },
881
+ "comment": "https://yaml.org/spec/1.2.2/#double-quoted-style",
882
+ "end": "\"",
883
+ "endCaptures": {
884
+ "0": {
885
+ "name": "punctuation.definition.string.end.yaml"
886
+ }
887
+ },
888
+ "name": "string.quoted.double.yaml",
889
+ "patterns": [
890
+ {
891
+ "match": "(?<!\")\\G[\t ]++",
892
+ "name": "punctuation.whitespace.separator.yaml"
893
+ },
894
+ {
895
+ "match": "[\t ]++$",
896
+ "name": "punctuation.whitespace.separator.yaml"
897
+ },
898
+ {
899
+ "match": "[^\n-\\x{10FFFF}]++",
900
+ "name": "invalid.illegal.character.yaml"
901
+ },
902
+ {
903
+ "include": "#double-escape"
904
+ }
905
+ ]
906
+ },
907
+ "double-escape": {
908
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-esc-char",
909
+ "patterns": [
910
+ {
911
+ "match": "\\\\[\n0abtnvfre \"/\\\\N_LP]",
912
+ "name": "constant.character.escape.yaml"
913
+ },
914
+ {
915
+ "match": "\\\\x[0-9a-fA-F]{2}",
916
+ "name": "constant.character.escape.unicode.8-bit.yaml"
917
+ },
918
+ {
919
+ "match": "\\\\u[0-9a-fA-F]{4}",
920
+ "name": "constant.character.escape.unicode.16-bit.yaml"
921
+ },
922
+ {
923
+ "match": "\\\\U[0-9a-fA-F]{8}",
924
+ "name": "constant.character.escape.unicode.32-bit.yaml"
925
+ },
926
+ {
927
+ "match": "\\\\(?>x[^\"]{2,0}|u[^\"]{4,0}|U[^\"]{8,0}|.)",
928
+ "name": "invalid.illegal.constant.character.escape.yaml"
929
+ }
930
+ ]
931
+ },
932
+ "flow-key-plain-in": {
933
+ "begin": "\\G(?![\n",
934
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-s-implicit-yaml-key (FLOW-KEY)",
935
+ "end": "(?=[\t ]*+(?>:[\n,\\[\\]{}]|[,\\[\\]{}])|[\t ]++#)",
936
+ "name": "meta.flow.map.key.yaml string.unquoted.plain.in.yaml entity.name.tag.yaml",
937
+ "patterns": [
938
+ {
939
+ "include": "#tag-implicit-plain-in"
940
+ },
941
+ {
942
+ "match": "\\x{FEFF}",
943
+ "name": "invalid.illegal.bom.yaml"
944
+ },
945
+ {
946
+ "include": "source.yaml#non-printable"
947
+ }
948
+ ]
949
+ },
950
+ "flow-key-plain-out": {
951
+ "begin": "(?=[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n]))",
952
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-one-line (FLOW-OUT)",
953
+ "end": "(?=[\t ]*+:[\n]|[\t ]++#)",
954
+ "name": "meta.map.key.yaml string.unquoted.plain.yaml entity.name.tag.yaml",
955
+ "patterns": [
956
+ {
957
+ "include": "#tag-implicit-plain-out"
958
+ },
959
+ {
960
+ "match": "\\G[\t ]++",
961
+ "name": "punctuation.whitespace.separator.yaml"
962
+ },
963
+ {
964
+ "match": "[\t ]++$",
965
+ "name": "punctuation.whitespace.separator.yaml"
966
+ },
967
+ {
968
+ "match": "\\x{FEFF}",
969
+ "name": "invalid.illegal.bom.yaml"
970
+ },
971
+ {
972
+ "include": "source.yaml#non-printable"
973
+ }
974
+ ]
975
+ },
976
+ "flow-map-value-json": {
977
+ "begin": "(?<=(?>[\"'\\]}]|^)[\t ]*+):",
978
+ "beginCaptures": {
979
+ "0": {
980
+ "name": "punctuation.separator.map.value.yaml"
981
+ }
982
+ },
983
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-flow-map-separate-value (FLOW-IN)",
984
+ "end": "(?=[,\\]}])",
985
+ "name": "meta.flow.pair.value.yaml",
986
+ "patterns": [
987
+ {
988
+ "include": "#flow-node"
989
+ }
990
+ ]
991
+ },
992
+ "flow-map-value-yaml": {
993
+ "begin": ":(?=[\n,\\[\\]{}])",
994
+ "beginCaptures": {
995
+ "0": {
996
+ "name": "punctuation.separator.map.value.yaml"
997
+ }
998
+ },
999
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-flow-map-separate-value (FLOW-IN)",
1000
+ "end": "(?=[,\\]}])",
1001
+ "name": "meta.flow.pair.value.yaml",
1002
+ "patterns": [
1003
+ {
1004
+ "include": "#flow-node"
1005
+ }
1006
+ ]
1007
+ },
1008
+ "flow-mapping": {
1009
+ "begin": "{",
1010
+ "beginCaptures": {
1011
+ "0": {
1012
+ "name": "punctuation.definition.mapping.begin.yaml"
1013
+ }
1014
+ },
1015
+ "comment": "https://yaml.org/spec/1.2.2/#742-flow-mappings",
1016
+ "end": "}",
1017
+ "endCaptures": {
1018
+ "0": {
1019
+ "name": "punctuation.definition.mapping.end.yaml"
1020
+ }
1021
+ },
1022
+ "name": "meta.flow.mapping.yaml",
1023
+ "patterns": [
1024
+ {
1025
+ "begin": "(?<={)\\G(?=[\n,#])|,",
1026
+ "beginCaptures": {
1027
+ "0": {
1028
+ "name": "punctuation.separator.mapping.yaml"
1029
+ }
1030
+ },
1031
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-s-flow-map-entries",
1032
+ "end": "(?=[^\n,#])",
1033
+ "patterns": [
1034
+ {
1035
+ "match": ",++",
1036
+ "name": "invalid.illegal.separator.sequence.yaml"
1037
+ },
1038
+ {
1039
+ "include": "#presentation-detail"
1040
+ }
1041
+ ]
1042
+ },
1043
+ {
1044
+ "include": "#flow-mapping-map-key"
1045
+ },
1046
+ {
1047
+ "include": "#flow-map-value-yaml"
1048
+ },
1049
+ {
1050
+ "include": "#flow-map-value-json"
1051
+ },
1052
+ {
1053
+ "include": "#flow-node"
1054
+ }
1055
+ ]
1056
+ },
1057
+ "flow-mapping-map-key": {
1058
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-entry (FLOW-IN)",
1059
+ "patterns": [
1060
+ {
1061
+ "begin": "\\?(?=[\n,\\[\\]{}])",
1062
+ "beginCaptures": {
1063
+ "0": {
1064
+ "name": "punctuation.definition.map.key.yaml"
1065
+ }
1066
+ },
1067
+ "end": "(?=[,\\[\\]{}])",
1068
+ "name": "meta.flow.map.explicit.yaml",
1069
+ "patterns": [
1070
+ {
1071
+ "include": "#flow-mapping-map-key"
1072
+ },
1073
+ {
1074
+ "include": "#flow-map-value-yaml"
1075
+ },
1076
+ {
1077
+ "include": "#flow-map-value-json"
1078
+ },
1079
+ {
1080
+ "include": "#flow-node"
1081
+ }
1082
+ ]
1083
+ },
1084
+ {
1085
+ "begin": "(?=(?>[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n,\\[\\]{}])))",
1086
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
1087
+ "end": "(?=[,\\[\\]{}])",
1088
+ "name": "meta.flow.map.implicit.yaml",
1089
+ "patterns": [
1090
+ {
1091
+ "include": "#flow-key-plain-in"
1092
+ },
1093
+ {
1094
+ "match": ":(?=\\[|{)",
1095
+ "name": "invalid.illegal.separator.map.yaml"
1096
+ },
1097
+ {
1098
+ "include": "#flow-map-value-yaml"
1099
+ },
1100
+ {
1101
+ "include": "#presentation-detail"
1102
+ }
1103
+ ]
1104
+ },
1105
+ {
1106
+ "begin": "(?=\"|')",
1107
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
1108
+ "end": "(?=[,\\[\\]{}])",
1109
+ "name": "meta.flow.map.implicit.yaml",
1110
+ "patterns": [
1111
+ {
1112
+ "include": "#key-double"
1113
+ },
1114
+ {
1115
+ "include": "source.yaml#key-single"
1116
+ },
1117
+ {
1118
+ "include": "#flow-map-value-json"
1119
+ },
1120
+ {
1121
+ "include": "#presentation-detail"
1122
+ }
1123
+ ]
1124
+ }
1125
+ ]
1126
+ },
1127
+ "flow-node": {
1128
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-seq-entry (FLOW-IN)",
1129
+ "patterns": [
1130
+ {
1131
+ "begin": "(?=\\[|{)",
1132
+ "end": "(?=[:,\\]}])",
1133
+ "patterns": [
1134
+ {
1135
+ "begin": "(?!\\G)",
1136
+ "end": "(?=[:,\\]}])",
1137
+ "patterns": [
1138
+ {
1139
+ "include": "#presentation-detail"
1140
+ }
1141
+ ]
1142
+ },
1143
+ {
1144
+ "include": "#flow-mapping"
1145
+ },
1146
+ {
1147
+ "include": "#flow-sequence"
1148
+ }
1149
+ ]
1150
+ },
1151
+ {
1152
+ "include": "#anchor-property"
1153
+ },
1154
+ {
1155
+ "include": "#tag-property"
1156
+ },
1157
+ {
1158
+ "include": "#alias"
1159
+ },
1160
+ {
1161
+ "begin": "(?=\"|')",
1162
+ "end": "(?=[:,\\]}])",
1163
+ "patterns": [
1164
+ {
1165
+ "begin": "(?!\\G)",
1166
+ "end": "(?=[:,\\]}])",
1167
+ "patterns": [
1168
+ {
1169
+ "include": "#presentation-detail"
1170
+ }
1171
+ ]
1172
+ },
1173
+ {
1174
+ "include": "#double"
1175
+ },
1176
+ {
1177
+ "include": "#single"
1178
+ }
1179
+ ]
1180
+ },
1181
+ {
1182
+ "include": "#flow-plain-in"
1183
+ },
1184
+ {
1185
+ "include": "#presentation-detail"
1186
+ }
1187
+ ]
1188
+ },
1189
+ "flow-plain-in": {
1190
+ "begin": "(?=[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n,\\[\\]{}]))",
1191
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-multi-line (FLOW-IN)",
1192
+ "end": "(?=(?>[\t ]++|\\G)#|[\t ]*+[,\\[\\]{}])",
1193
+ "name": "string.unquoted.plain.in.yaml",
1194
+ "patterns": [
1195
+ {
1196
+ "include": "#tag-implicit-plain-in"
1197
+ },
1198
+ {
1199
+ "match": "\\G[\t ]++",
1200
+ "name": "punctuation.whitespace.separator.yaml"
1201
+ },
1202
+ {
1203
+ "match": "[\t ]++$",
1204
+ "name": "punctuation.whitespace.separator.yaml"
1205
+ },
1206
+ {
1207
+ "match": ":(?=[\n,\\[\\]{}])",
1208
+ "name": "invalid.illegal.multiline-key.yaml"
1209
+ },
1210
+ {
1211
+ "match": "\\x{FEFF}",
1212
+ "name": "invalid.illegal.bom.yaml"
1213
+ },
1214
+ {
1215
+ "include": "source.yaml#non-printable"
1216
+ }
1217
+ ]
1218
+ },
1219
+ "flow-sequence": {
1220
+ "begin": "\\[",
1221
+ "beginCaptures": {
1222
+ "0": {
1223
+ "name": "punctuation.definition.sequence.begin.yaml"
1224
+ }
1225
+ },
1226
+ "comment": "https://yaml.org/spec/1.2.2/#741-flow-sequences",
1227
+ "end": "]",
1228
+ "endCaptures": {
1229
+ "0": {
1230
+ "name": "punctuation.definition.sequence.end.yaml"
1231
+ }
1232
+ },
1233
+ "name": "meta.flow.sequence.yaml",
1234
+ "patterns": [
1235
+ {
1236
+ "begin": "(?<=\\[)\\G(?=[\n,#])|,",
1237
+ "beginCaptures": {
1238
+ "0": {
1239
+ "name": "punctuation.separator.sequence.yaml"
1240
+ }
1241
+ },
1242
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-s-flow-seq-entries",
1243
+ "end": "(?=[^\n,#])",
1244
+ "patterns": [
1245
+ {
1246
+ "match": ",++",
1247
+ "name": "invalid.illegal.separator.sequence.yaml"
1248
+ },
1249
+ {
1250
+ "include": "#presentation-detail"
1251
+ }
1252
+ ]
1253
+ },
1254
+ {
1255
+ "include": "#flow-sequence-map-key"
1256
+ },
1257
+ {
1258
+ "include": "#flow-map-value-yaml"
1259
+ },
1260
+ {
1261
+ "include": "#flow-map-value-json"
1262
+ },
1263
+ {
1264
+ "include": "#flow-node"
1265
+ }
1266
+ ]
1267
+ },
1268
+ "flow-sequence-map-key": {
1269
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-entry (FLOW-IN)",
1270
+ "patterns": [
1271
+ {
1272
+ "begin": "\\?(?=[\n,\\[\\]{}])",
1273
+ "beginCaptures": {
1274
+ "0": {
1275
+ "name": "punctuation.definition.map.key.yaml"
1276
+ }
1277
+ },
1278
+ "end": "(?=[,\\[\\]{}])",
1279
+ "name": "meta.flow.map.explicit.yaml",
1280
+ "patterns": [
1281
+ {
1282
+ "include": "#flow-mapping-map-key"
1283
+ },
1284
+ {
1285
+ "include": "#flow-map-value-yaml"
1286
+ },
1287
+ {
1288
+ "include": "#flow-map-value-json"
1289
+ },
1290
+ {
1291
+ "include": "#flow-node"
1292
+ }
1293
+ ]
1294
+ },
1295
+ {
1296
+ "begin": "(?<=[\t ,\\[{]|^)(?=(?>[\\x{85}[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FEFF FFFE FFFF}]]|[?:-](?![\n,\\[\\]{}]))(?>[^:#,\\[\\]{}]++|:(?![\n,\\[\\]{}])|(?<! |\t)#++)*+:[\n,\\[\\]{}])",
1297
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
1298
+ "end": "(?=[,\\[\\]{}])",
1299
+ "name": "meta.flow.map.implicit.yaml",
1300
+ "patterns": [
1301
+ {
1302
+ "include": "#flow-key-plain-in"
1303
+ },
1304
+ {
1305
+ "match": ":(?=\\[|{)",
1306
+ "name": "invalid.illegal.separator.map.yaml"
1307
+ },
1308
+ {
1309
+ "include": "#flow-map-value-yaml"
1310
+ },
1311
+ {
1312
+ "include": "#presentation-detail"
1313
+ }
1314
+ ]
1315
+ },
1316
+ {
1317
+ "begin": "(?=(?>\"(?>[^\\\\\"]++|\\\\.)*+\"|'(?>[^']++|'')*+')[\t ]*+:)",
1318
+ "comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
1319
+ "end": "(?=[,\\[\\]{}])",
1320
+ "name": "meta.flow.map.implicit.yaml",
1321
+ "patterns": [
1322
+ {
1323
+ "include": "#key-double"
1324
+ },
1325
+ {
1326
+ "include": "source.yaml#key-single"
1327
+ },
1328
+ {
1329
+ "include": "#flow-map-value-json"
1330
+ },
1331
+ {
1332
+ "include": "#presentation-detail"
1333
+ }
1334
+ ]
1335
+ }
1336
+ ]
1337
+ },
1338
+ "key-double": {
1339
+ "begin": "\"",
1340
+ "beginCaptures": {
1341
+ "0": {
1342
+ "name": "punctuation.definition.string.begin.yaml"
1343
+ }
1344
+ },
1345
+ "comment": "https://yaml.org/spec/1.2.2/#double-quoted-style (FLOW-OUT)",
1346
+ "end": "\"",
1347
+ "endCaptures": {
1348
+ "0": {
1349
+ "name": "punctuation.definition.string.end.yaml"
1350
+ }
1351
+ },
1352
+ "name": "meta.map.key.yaml string.quoted.double.yaml entity.name.tag.yaml",
1353
+ "patterns": [
1354
+ {
1355
+ "match": "[^\t -\\x{10FFFF}]++",
1356
+ "name": "invalid.illegal.character.yaml"
1357
+ },
1358
+ {
1359
+ "include": "#double-escape"
1360
+ }
1361
+ ]
1362
+ },
1363
+ "presentation-detail": {
1364
+ "patterns": [
1365
+ {
1366
+ "match": "[\t ]++",
1367
+ "name": "punctuation.whitespace.separator.yaml"
1368
+ },
1369
+ {
1370
+ "include": "source.yaml#non-printable"
1371
+ },
1372
+ {
1373
+ "include": "#comment"
1374
+ },
1375
+ {
1376
+ "include": "#unknown"
1377
+ }
1378
+ ]
1379
+ },
1380
+ "single": {
1381
+ "begin": "'",
1382
+ "beginCaptures": {
1383
+ "0": {
1384
+ "name": "punctuation.definition.string.begin.yaml"
1385
+ }
1386
+ },
1387
+ "comment": "https://yaml.org/spec/1.2.2/#single-quoted-style",
1388
+ "end": "'(?!')",
1389
+ "endCaptures": {
1390
+ "0": {
1391
+ "name": "punctuation.definition.string.end.yaml"
1392
+ }
1393
+ },
1394
+ "name": "string.quoted.single.yaml",
1395
+ "patterns": [
1396
+ {
1397
+ "match": "(?<!')\\G[\t ]++",
1398
+ "name": "punctuation.whitespace.separator.yaml"
1399
+ },
1400
+ {
1401
+ "match": "[\t ]++$",
1402
+ "name": "punctuation.whitespace.separator.yaml"
1403
+ },
1404
+ {
1405
+ "match": "[^\n-\\x{10FFFF}]++",
1406
+ "name": "invalid.illegal.character.yaml"
1407
+ },
1408
+ {
1409
+ "match": "''",
1410
+ "name": "constant.character.escape.single-quote.yaml"
1411
+ }
1412
+ ]
1413
+ },
1414
+ "stream": {
1415
+ "patterns": [
1416
+ {
1417
+ "begin": "^(?!\\G)",
1418
+ "comment": "allows me to just use `\\G` instead of the performance heavy `(^|\\G)`",
1419
+ "name": "meta.stream.yaml",
1420
+ "patterns": [
1421
+ {
1422
+ "include": "#byte-order-mark"
1423
+ },
1424
+ {
1425
+ "include": "#directives"
1426
+ },
1427
+ {
1428
+ "include": "#document"
1429
+ },
1430
+ {
1431
+ "include": "#presentation-detail"
1432
+ }
1433
+ ],
1434
+ "while": "^"
1435
+ },
1436
+ {
1437
+ "begin": "\\G",
1438
+ "name": "meta.stream.yaml",
1439
+ "patterns": [
1440
+ {
1441
+ "include": "#byte-order-mark"
1442
+ },
1443
+ {
1444
+ "include": "#directives"
1445
+ },
1446
+ {
1447
+ "include": "#document"
1448
+ },
1449
+ {
1450
+ "include": "#presentation-detail"
1451
+ }
1452
+ ],
1453
+ "while": "\\G"
1454
+ }
1455
+ ]
1456
+ },
1457
+ "tag-implicit-plain-in": {
1458
+ "comment": "https://yaml.org/spec/1.2.2/#103-core-schema",
1459
+ "patterns": [
1460
+ {
1461
+ "match": "\\G(?>null|Null|NULL|~)(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1462
+ "name": "constant.language.null.yaml"
1463
+ },
1464
+ {
1465
+ "match": "\\G(?>true|True|TRUE|false|False|FALSE)(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1466
+ "name": "constant.language.boolean.yaml"
1467
+ },
1468
+ {
1469
+ "match": "\\G[+-]?+[0-9]++(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1470
+ "name": "constant.numeric.integer.decimal.yaml"
1471
+ },
1472
+ {
1473
+ "match": "\\G0o[0-7]++(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1474
+ "name": "constant.numeric.integer.octal.yaml"
1475
+ },
1476
+ {
1477
+ "match": "\\G0x[0-9a-fA-F]++(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1478
+ "name": "constant.numeric.integer.hexadecimal.yaml"
1479
+ },
1480
+ {
1481
+ "match": "\\G[+-]?+(?>\\.[0-9]++|[0-9]++(?>\\.[0-9]*+)?+)(?>[eE][+-]?+[0-9]++)?+(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1482
+ "name": "constant.numeric.float.yaml"
1483
+ },
1484
+ {
1485
+ "match": "\\G[+-]?+\\.(?>inf|Inf|INF)(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1486
+ "name": "constant.numeric.float.inf.yaml"
1487
+ },
1488
+ {
1489
+ "match": "\\G\\.(?>nan|NaN|NAN)(?=[\t ]++#|[\t ]*+(?>[\n,\\]}]|:[\n,\\[\\]{}]))",
1490
+ "name": "constant.numeric.float.nan.yaml"
1491
+ }
1492
+ ]
1493
+ },
1494
+ "tag-implicit-plain-out": {
1495
+ "comment": "https://yaml.org/spec/1.2.2/#103-core-schema",
1496
+ "patterns": [
1497
+ {
1498
+ "match": "\\G(?>null|Null|NULL|~)(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1499
+ "name": "constant.language.null.yaml"
1500
+ },
1501
+ {
1502
+ "match": "\\G(?>true|True|TRUE|false|False|FALSE)(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1503
+ "name": "constant.language.boolean.yaml"
1504
+ },
1505
+ {
1506
+ "match": "\\G[+-]?+[0-9]++(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1507
+ "name": "constant.numeric.integer.decimal.yaml"
1508
+ },
1509
+ {
1510
+ "match": "\\G0o[0-7]++(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1511
+ "name": "constant.numeric.integer.octal.yaml"
1512
+ },
1513
+ {
1514
+ "match": "\\G0x[0-9a-fA-F]++(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1515
+ "name": "constant.numeric.integer.hexadecimal.yaml"
1516
+ },
1517
+ {
1518
+ "match": "\\G[+-]?+(?>\\.[0-9]++|[0-9]++(?>\\.[0-9]*+)?+)(?>[eE][+-]?+[0-9]++)?+(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1519
+ "name": "constant.numeric.float.yaml"
1520
+ },
1521
+ {
1522
+ "match": "\\G[+-]?+\\.(?>inf|Inf|INF)(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1523
+ "name": "constant.numeric.float.inf.yaml"
1524
+ },
1525
+ {
1526
+ "match": "\\G\\.(?>nan|NaN|NAN)(?=[\t ]++#|[\t ]*+(?>$|:[\n]))",
1527
+ "name": "constant.numeric.float.nan.yaml"
1528
+ }
1529
+ ]
1530
+ },
1531
+ "tag-property": {
1532
+ "//": [
1533
+ "!",
1534
+ "!!",
1535
+ "!<>",
1536
+ "!...",
1537
+ "!!...",
1538
+ "!<...>",
1539
+ "!...!..."
1540
+ ],
1541
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-tag-property",
1542
+ "patterns": [
1543
+ {
1544
+ "match": "!(?=[\n])",
1545
+ "name": "storage.type.tag.non-specific.yaml punctuation.definition.tag.non-specific.yaml"
1546
+ },
1547
+ {
1548
+ "begin": "!<",
1549
+ "beginCaptures": {
1550
+ "0": {
1551
+ "name": "punctuation.definition.tag.begin.yaml"
1552
+ }
1553
+ },
1554
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-verbatim-tag",
1555
+ "end": ">",
1556
+ "endCaptures": {
1557
+ "0": {
1558
+ "name": "punctuation.definition.tag.end.yaml"
1559
+ }
1560
+ },
1561
+ "name": "storage.type.tag.verbatim.yaml",
1562
+ "patterns": [
1563
+ {
1564
+ "match": "%[0-9a-fA-F]{2}",
1565
+ "name": "constant.character.escape.unicode.8-bit.yaml"
1566
+ },
1567
+ {
1568
+ "match": "%[^\n]{2,0}",
1569
+ "name": "invalid.illegal.constant.character.escape.unicode.8-bit.yaml"
1570
+ },
1571
+ {
1572
+ "include": "source.yaml#non-printable"
1573
+ },
1574
+ {
1575
+ "match": "[^\na-zA-Z0-9-#;/?:@&=+$,_.!~*'()\\[\\]%>]++",
1576
+ "name": "invalid.illegal.unrecognized.yaml"
1577
+ }
1578
+ ]
1579
+ },
1580
+ {
1581
+ "begin": "(?=!)",
1582
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-shorthand-tag",
1583
+ "end": "(?=[\n,\\[\\]{}])",
1584
+ "name": "storage.type.tag.shorthand.yaml",
1585
+ "patterns": [
1586
+ {
1587
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-secondary-tag-handle",
1588
+ "match": "\\G!!",
1589
+ "name": "punctuation.definition.tag.secondary.yaml"
1590
+ },
1591
+ {
1592
+ "captures": {
1593
+ "1": {
1594
+ "name": "punctuation.definition.tag.named.yaml"
1595
+ },
1596
+ "2": {
1597
+ "name": "punctuation.definition.tag.named.yaml"
1598
+ }
1599
+ },
1600
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-secondary-tag-handle",
1601
+ "match": "\\G(!)[0-9A-Za-z-]++(!)"
1602
+ },
1603
+ {
1604
+ "comment": "https://yaml.org/spec/1.2.2/#rule-c-primary-tag-handle",
1605
+ "match": "\\G!",
1606
+ "name": "punctuation.definition.tag.primary.yaml"
1607
+ },
1608
+ {
1609
+ "match": "%[0-9a-fA-F]{2}",
1610
+ "name": "constant.character.escape.unicode.8-bit.yaml"
1611
+ },
1612
+ {
1613
+ "match": "%[^\n]{2,0}",
1614
+ "name": "invalid.illegal.constant.character.escape.unicode.8-bit.yaml"
1615
+ },
1616
+ {
1617
+ "include": "source.yaml#non-printable"
1618
+ },
1619
+ {
1620
+ "match": "[^\na-zA-Z0-9-#;/?:@&=+$_.~*'()%]++",
1621
+ "name": "invalid.illegal.unrecognized.yaml"
1622
+ }
1623
+ ]
1624
+ }
1625
+ ]
1626
+ },
1627
+ "unknown": {
1628
+ "match": ".[[^\"':,\\[\\]{}]&&!-~\\x{85}\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}]*+",
1629
+ "name": "invalid.illegal.unrecognized.yaml"
13
1630
  }
14
1631
  },
15
- "scopeName": "source.yaml"
1632
+ "scopeName": "source.yaml.1.2"
16
1633
  }