github-linguist 7.6.1 → 7.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +58 -11
  4. data/grammars/etc.json +212 -3
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hint.haskell.json +58 -11
  7. data/grammars/hint.message.haskell.json +58 -11
  8. data/grammars/hint.type.haskell.json +58 -11
  9. data/grammars/injections.etc.json +601 -1
  10. data/grammars/markdown.plantuml.codeblock.json +26 -0
  11. data/grammars/source.4dm.json +1100 -0
  12. data/grammars/source.abap.json +7 -7
  13. data/grammars/source.abnf.json +23 -1
  14. data/grammars/source.agda.json +32 -202
  15. data/grammars/source.ahk.json +9 -5
  16. data/grammars/source.angelscript.json +1 -1
  17. data/grammars/source.ballerina.json +54 -18
  18. data/grammars/source.chapel.json +4 -4
  19. data/grammars/source.csound.json +1 -1
  20. data/grammars/source.css.json +2 -2
  21. data/grammars/source.css.scss.json +164 -15
  22. data/grammars/source.curlrc.json +869 -65
  23. data/grammars/source.dart.json +58 -32
  24. data/grammars/source.dircolors.json +137 -0
  25. data/grammars/source.direct-x.json +135 -0
  26. data/grammars/source.ebnf.json +67 -39
  27. data/grammars/source.editorconfig.json +23 -5
  28. data/grammars/source.elixir.json +51 -0
  29. data/grammars/source.elm.json +1 -1
  30. data/grammars/source.emacs.lisp.json +10 -0
  31. data/grammars/source.faust.json +119 -0
  32. data/grammars/source.gcode.json +166 -8
  33. data/grammars/source.gfm.json +1 -1
  34. data/grammars/source.gitconfig.json +1 -1
  35. data/grammars/source.hack.json +200 -98
  36. data/grammars/source.haskell.json +58 -11
  37. data/grammars/source.hlsl.json +9 -5
  38. data/grammars/source.hosts.json +40 -0
  39. data/grammars/source.hsig.json +58 -11
  40. data/grammars/source.hx.json +4 -0
  41. data/grammars/source.igor.json +46 -2
  42. data/grammars/source.ini.npmrc.json +311 -0
  43. data/grammars/source.inno.json +133 -0
  44. data/grammars/source.inputrc.json +500 -0
  45. data/grammars/source.js.json +4 -4
  46. data/grammars/source.julia.json +69 -23
  47. data/grammars/source.kotlin.json +1 -1
  48. data/grammars/source.lean.json +19 -3
  49. data/grammars/source.lean.markdown.json +2598 -0
  50. data/grammars/source.lex.json +4 -4
  51. data/grammars/source.m4.json +141 -99
  52. data/grammars/source.man-conf.json +46 -34
  53. data/grammars/source.matlab.json +437 -184
  54. data/grammars/source.mcfunction-snapshot.json +21388 -561
  55. data/grammars/source.mcfunction.json +55 -5
  56. data/grammars/source.meson.json +1 -1
  57. data/grammars/source.mlir.json +37 -317
  58. data/grammars/source.mrc.json +740 -0
  59. data/grammars/source.nasl.json +155 -0
  60. data/grammars/source.nextflow.json +2 -2
  61. data/grammars/source.odin-ehr.json +806 -0
  62. data/grammars/source.odin.json +402 -0
  63. data/grammars/source.opts.json +12 -2
  64. data/grammars/source.p4.json +21 -5
  65. data/grammars/source.prisma.json +435 -0
  66. data/grammars/source.python.json +2 -0
  67. data/grammars/source.qasm.json +66 -0
  68. data/grammars/source.ql.json +1408 -0
  69. data/grammars/source.reason.json +28 -16
  70. data/grammars/source.rego.json +124 -0
  71. data/grammars/source.sass.json +158 -3
  72. data/grammars/source.scala.json +53 -18
  73. data/grammars/source.ssh-config.json +1 -14
  74. data/grammars/source.swift.json +162 -2
  75. data/grammars/source.sy.json +2088 -183
  76. data/grammars/source.terraform.json +576 -132
  77. data/grammars/source.tnsaudit.json +256 -0
  78. data/grammars/source.ts.json +159 -51
  79. data/grammars/source.tsx.json +160 -52
  80. data/grammars/source.v.json +559 -764
  81. data/grammars/source.vim-snippet.json +645 -0
  82. data/grammars/source.viml.json +6 -6
  83. data/grammars/source.webassembly.json +10 -0
  84. data/grammars/source.wgetrc.json +1640 -0
  85. data/grammars/source.wsd.json +775 -0
  86. data/grammars/source.zig.json +169 -304
  87. data/grammars/text.html.php.blade.json +1 -1
  88. data/grammars/text.html.riot.json +788 -0
  89. data/grammars/text.muse.json +1471 -0
  90. data/grammars/text.tex.latex.haskell.json +58 -11
  91. data/grammars/text.vim-help.json +383 -0
  92. data/grammars/version +1 -1
  93. data/lib/linguist/VERSION +1 -1
  94. data/lib/linguist/blob_helper.rb +4 -2
  95. data/lib/linguist/file_blob.rb +1 -1
  96. data/lib/linguist/generated.rb +60 -13
  97. data/lib/linguist/heuristics.yml +64 -4
  98. data/lib/linguist/languages.json +1 -1
  99. data/lib/linguist/languages.yml +336 -45
  100. data/lib/linguist/lazy_blob.rb +10 -10
  101. data/lib/linguist/linguist.bundle +0 -0
  102. data/lib/linguist/samples.json +43560 -31457
  103. data/lib/linguist/shebang.rb +5 -3
  104. data/lib/linguist/vendor.yml +9 -0
  105. metadata +29 -10
  106. data/grammars/source.LS.json +0 -85
  107. data/grammars/source.MCPOST.json +0 -54
  108. data/grammars/source.MOD.json +0 -55
  109. data/grammars/source.apt.json +0 -18
  110. data/grammars/source.jlex.json +0 -322
  111. data/grammars/source.yaml-ext.json +0 -324
@@ -0,0 +1,645 @@
1
+ {
2
+ "name": "Vim Snippet",
3
+ "scopeName": "source.vim-snippet",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "comment": {
11
+ "name": "comment.line.number-sign.vim-snippet",
12
+ "begin": "^#",
13
+ "end": "$",
14
+ "beginCaptures": {
15
+ "0": {
16
+ "name": "punctuation.definition.comment.number-sign.vim-snippet"
17
+ }
18
+ }
19
+ },
20
+ "escape": {
21
+ "name": "constant.character.escape.dollar-sign.vim-snippet",
22
+ "match": "(\\\\).",
23
+ "captures": {
24
+ "1": {
25
+ "name": "punctuation.definition.escape.vim-snippet"
26
+ }
27
+ }
28
+ },
29
+ "expression": {
30
+ "patterns": [
31
+ {
32
+ "name": "string.interpolated.python-code.vim-snippet",
33
+ "begin": "(`)(!p)",
34
+ "end": "`",
35
+ "patterns": [
36
+ {
37
+ "name": "source.embedded.python",
38
+ "match": "(?:[^\\\\`]|\\\\.)+",
39
+ "captures": {
40
+ "0": {
41
+ "patterns": [
42
+ {
43
+ "include": "source.python"
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ }
49
+ ],
50
+ "beginCaptures": {
51
+ "1": {
52
+ "name": "punctuation.section.begin.embedded.vim-snippet"
53
+ },
54
+ "2": {
55
+ "name": "keyword.operator.use-python.vim-snippet"
56
+ }
57
+ },
58
+ "endCaptures": {
59
+ "0": {
60
+ "name": "punctuation.section.end.embedded.vim-snippet"
61
+ }
62
+ }
63
+ },
64
+ {
65
+ "name": "string.interpolated.viml-code.vim-snippet",
66
+ "begin": "(`)(!v)",
67
+ "end": "`",
68
+ "patterns": [
69
+ {
70
+ "name": "source.embedded.viml",
71
+ "match": "(?:[^\\\\`]|\\\\.)+",
72
+ "captures": {
73
+ "0": {
74
+ "patterns": [
75
+ {
76
+ "include": "source.viml"
77
+ }
78
+ ]
79
+ }
80
+ }
81
+ }
82
+ ],
83
+ "beginCaptures": {
84
+ "1": {
85
+ "name": "punctuation.section.begin.embedded.vim-snippet"
86
+ },
87
+ "2": {
88
+ "name": "keyword.operator.use-viml.vim-snippet"
89
+ }
90
+ },
91
+ "endCaptures": {
92
+ "0": {
93
+ "name": "punctuation.section.end.embedded.vim-snippet"
94
+ }
95
+ }
96
+ },
97
+ {
98
+ "name": "string.interpolated.vim-snippet",
99
+ "begin": "`",
100
+ "end": "`",
101
+ "patterns": [
102
+ {
103
+ "name": "source.embedded.viml",
104
+ "match": "(?:[^\\\\`]|\\\\.)+",
105
+ "captures": {
106
+ "0": {
107
+ "patterns": [
108
+ {
109
+ "include": "source.viml"
110
+ }
111
+ ]
112
+ }
113
+ }
114
+ }
115
+ ],
116
+ "beginCaptures": {
117
+ "0": {
118
+ "name": "punctuation.section.begin.embedded.vim-snippet"
119
+ }
120
+ },
121
+ "endCaptures": {
122
+ "0": {
123
+ "name": "punctuation.section.end.embedded.vim-snippet"
124
+ }
125
+ }
126
+ }
127
+ ]
128
+ },
129
+ "extends": {
130
+ "name": "meta.$1.directive.vim-snippet",
131
+ "begin": "^(extends|include|source)(?=\\s|$)",
132
+ "end": "$",
133
+ "patterns": [
134
+ {
135
+ "name": "punctuation.separator.delimiter.comma.vim-snippet",
136
+ "match": ","
137
+ },
138
+ {
139
+ "name": "entity.other.inherited-class.vim-snippet",
140
+ "match": "[^,\\s]+"
141
+ }
142
+ ],
143
+ "beginCaptures": {
144
+ "1": {
145
+ "name": "keyword.control.$1.directive.vim-snippet"
146
+ }
147
+ }
148
+ },
149
+ "global": {
150
+ "name": "meta.ultisnip.global.vim-snippet",
151
+ "contentName": "source.embedded.python",
152
+ "begin": "^(global)\\s+(!p)[ \\t]*$",
153
+ "end": "^(endglobal)(?=\\s|$)",
154
+ "patterns": [
155
+ {
156
+ "include": "source.python"
157
+ }
158
+ ],
159
+ "beginCaptures": {
160
+ "1": {
161
+ "name": "keyword.control.global.begin.vim-snippet"
162
+ },
163
+ "2": {
164
+ "name": "keyword.operator.use-python.vim-snippet"
165
+ }
166
+ },
167
+ "endCaptures": {
168
+ "1": {
169
+ "name": "keyword.control.global.end.vim-snippet"
170
+ }
171
+ }
172
+ },
173
+ "main": {
174
+ "patterns": [
175
+ {
176
+ "include": "#snippet"
177
+ },
178
+ {
179
+ "include": "#comment"
180
+ },
181
+ {
182
+ "include": "#extends"
183
+ },
184
+ {
185
+ "include": "#global"
186
+ },
187
+ {
188
+ "include": "#priority"
189
+ },
190
+ {
191
+ "include": "#expression"
192
+ },
193
+ {
194
+ "include": "#version"
195
+ },
196
+ {
197
+ "include": "#ultisnips"
198
+ },
199
+ {
200
+ "include": "#neosnippet"
201
+ }
202
+ ]
203
+ },
204
+ "neosnippet": {
205
+ "patterns": [
206
+ {
207
+ "name": "meta.neosnippet-field.vim-snippet",
208
+ "match": "(?:\\G|^)(abbr|alias|delete|options)\\s+(\\S.*)",
209
+ "captures": {
210
+ "1": {
211
+ "name": "keyword.operator.$1.vim-snippet"
212
+ },
213
+ "2": {
214
+ "name": "entity.other.neosnippet-keyword.vim-snippet"
215
+ }
216
+ }
217
+ },
218
+ {
219
+ "name": "meta.neosnippet-field.vim-snippet",
220
+ "match": "(?x) (?:\\G|^)\n(regexp) \\s+\n( (')([^']*)(') # Single-quoted\n| (\")([^\"]*)(\") # Double-quoted\n| ([^'\"\\s]\\.) # Unquoted (?)\n)",
221
+ "captures": {
222
+ "1": {
223
+ "name": "keyword.operator.regex.vim-snippet"
224
+ },
225
+ "2": {
226
+ "name": "string.regexp.quoted.single.vim-snippet"
227
+ },
228
+ "3": {
229
+ "name": "punctuation.definition.string.regexp.begin.vim-snippet"
230
+ },
231
+ "4": {
232
+ "patterns": [
233
+ {
234
+ "include": "source.regexp"
235
+ }
236
+ ]
237
+ },
238
+ "5": {
239
+ "name": "punctuation.definition.string.regexp.end.vim-snippet"
240
+ },
241
+ "6": {
242
+ "name": "punctuation.definition.string.regexp.begin.vim-snippet"
243
+ },
244
+ "7": {
245
+ "patterns": [
246
+ {
247
+ "include": "source.regexp"
248
+ }
249
+ ]
250
+ },
251
+ "8": {
252
+ "name": "punctuation.definition.string.regexp.end.vim-snippet"
253
+ },
254
+ "9": {
255
+ "patterns": [
256
+ {
257
+ "include": "source.regexp"
258
+ }
259
+ ]
260
+ }
261
+ }
262
+ }
263
+ ]
264
+ },
265
+ "priority": {
266
+ "begin": "^priority(?=\\s|$)",
267
+ "end": "$",
268
+ "patterns": [
269
+ {
270
+ "name": "constant.numeric.integer.int.vim-snippet",
271
+ "match": "[-+]?[\\d.]+"
272
+ }
273
+ ],
274
+ "beginCaptures": {
275
+ "0": {
276
+ "name": "keyword.control.version.directive.vim-snippet"
277
+ }
278
+ }
279
+ },
280
+ "snippet": {
281
+ "name": "meta.snippet.vim-snippet",
282
+ "begin": "^(snippet)(!{0,2})(?=[ \\t]|$)",
283
+ "end": "^(endsnippet)\\s*$|(?=^\\S)|(?\u003c=endsnippet)(?=\\s|$)",
284
+ "patterns": [
285
+ {
286
+ "include": "#snippetHead"
287
+ },
288
+ {
289
+ "include": "#snippetNeck"
290
+ },
291
+ {
292
+ "include": "#snippetBody"
293
+ }
294
+ ],
295
+ "beginCaptures": {
296
+ "1": {
297
+ "name": "storage.type.class.vim-snippet"
298
+ },
299
+ "2": {
300
+ "name": "keyword.operator.scope.modifier.vim-snippet"
301
+ }
302
+ },
303
+ "endCaptures": {
304
+ "1": {
305
+ "name": "storage.type.class.end.vim-snippet"
306
+ }
307
+ }
308
+ },
309
+ "snippetBody": {
310
+ "patterns": [
311
+ {
312
+ "include": "#escape"
313
+ },
314
+ {
315
+ "include": "#expression"
316
+ },
317
+ {
318
+ "include": "#tabStop"
319
+ }
320
+ ]
321
+ },
322
+ "snippetHead": {
323
+ "begin": "\\G",
324
+ "end": "(?=^)|(?=\\s*$)",
325
+ "patterns": [
326
+ {
327
+ "begin": "\\G\\s*((\\S+))",
328
+ "end": "(?=^|\\S)",
329
+ "patterns": [
330
+ {
331
+ "include": "#snippetNeck"
332
+ }
333
+ ],
334
+ "beginCaptures": {
335
+ "1": {
336
+ "name": "entity.name.trigger.vim-snippet"
337
+ },
338
+ "2": {
339
+ "name": "markup.heading.vim-snippet"
340
+ }
341
+ }
342
+ },
343
+ {
344
+ "begin": "(?\u003c=\\s)(\")[^\"]*(\")",
345
+ "end": "(?=^|\\S)",
346
+ "patterns": [
347
+ {
348
+ "include": "#snippetNeck"
349
+ }
350
+ ],
351
+ "beginCaptures": {
352
+ "0": {
353
+ "name": "string.quoted.double.description.vim-snippet"
354
+ },
355
+ "1": {
356
+ "name": "punctuation.definition.string.begin.vim-snippet"
357
+ },
358
+ "2": {
359
+ "name": "punctuation.definition.string.end.vim-snippet"
360
+ }
361
+ }
362
+ },
363
+ {
364
+ "begin": "(?\u003c=\\s)[Abeimrstw]+(?=\\s*$)",
365
+ "end": "(?=^|\\S)",
366
+ "patterns": [
367
+ {
368
+ "include": "#snippetNeck"
369
+ }
370
+ ],
371
+ "beginCaptures": {
372
+ "0": {
373
+ "name": "constant.language.other.options.vim-snippet"
374
+ }
375
+ }
376
+ },
377
+ {
378
+ "begin": "(?\u003c=\\s)\\S+",
379
+ "end": "(?=^|\\S)",
380
+ "patterns": [
381
+ {
382
+ "include": "#snippetNeck"
383
+ }
384
+ ],
385
+ "beginCaptures": {
386
+ "0": {
387
+ "name": "entity.other.description.vim-snippet"
388
+ }
389
+ }
390
+ },
391
+ {
392
+ "include": "#snippetNeck"
393
+ }
394
+ ]
395
+ },
396
+ "snippetNeck": {
397
+ "contentName": "meta.snippet-body.vim-snippet",
398
+ "begin": "\\G\\s*$\\s*",
399
+ "end": "^(endsnippet)\\s*$|(?=^\\s)|(?\u003c=endsnippet)(?=\\s|$)",
400
+ "patterns": [
401
+ {
402
+ "begin": "(?\u003c=^)(?=\\S)(?!endsnippet|(?:abbr|alias|regexp|options)\\s+\\S)",
403
+ "end": "^(endsnippet)(?=$|[ \\t])",
404
+ "patterns": [
405
+ {
406
+ "include": "#snippetBody"
407
+ }
408
+ ],
409
+ "endCaptures": {
410
+ "1": {
411
+ "name": "storage.type.class.end.vim-snippet"
412
+ }
413
+ }
414
+ },
415
+ {
416
+ "begin": "(?\u003c=^)(?=(?:abbr|alias|regexp|options)\\s+\\S)",
417
+ "end": "(?=^\\s)",
418
+ "patterns": [
419
+ {
420
+ "include": "#neosnippet"
421
+ }
422
+ ]
423
+ }
424
+ ],
425
+ "endCaptures": {
426
+ "1": {
427
+ "name": "storage.type.class.end.vim-snippet"
428
+ }
429
+ }
430
+ },
431
+ "tabStop": {
432
+ "patterns": [
433
+ {
434
+ "name": "variable.language.tab-stop.$2-nth.vim-snippet",
435
+ "match": "(\\$)([0-9]+)",
436
+ "captures": {
437
+ "1": {
438
+ "name": "punctuation.definition.variable.vim-snippet"
439
+ }
440
+ }
441
+ },
442
+ {
443
+ "name": "variable.language.tab-stop.$2-nth.vim-snippet",
444
+ "match": "(\\${)([0-9]+)(})",
445
+ "captures": {
446
+ "1": {
447
+ "name": "punctuation.definition.variable.begin.vim-snippet"
448
+ },
449
+ "3": {
450
+ "name": "punctuation.definition.variable.end.vim-snippet"
451
+ }
452
+ }
453
+ },
454
+ {
455
+ "name": "variable.language.tab-stop.$2-nth.placeholder.vim-snippet",
456
+ "contentName": "markup.inserted.placeholder.vim-snippet",
457
+ "begin": "(\\${)([0-9]+)(:)",
458
+ "end": "}",
459
+ "patterns": [
460
+ {
461
+ "include": "#visual"
462
+ },
463
+ {
464
+ "include": "#escape"
465
+ },
466
+ {
467
+ "include": "#tabStop"
468
+ }
469
+ ],
470
+ "beginCaptures": {
471
+ "1": {
472
+ "name": "punctuation.definition.variable.begin.vim-snippet"
473
+ },
474
+ "3": {
475
+ "name": "keyword.operator.assignment.key-value.vim-snippet"
476
+ }
477
+ },
478
+ "endCaptures": {
479
+ "0": {
480
+ "name": "punctuation.definition.variable.end.vim-snippet"
481
+ }
482
+ }
483
+ },
484
+ {
485
+ "name": "meta.transform.tab-stop.$2-nth.vim-snippet",
486
+ "begin": "(\\${)([0-9]+)(?=/)",
487
+ "end": "}",
488
+ "patterns": [
489
+ {
490
+ "name": "string.regexp.transform.vim-snippet",
491
+ "contentName": "markup.deleted.transform.vim-snippet",
492
+ "begin": "\\G/",
493
+ "end": "/",
494
+ "patterns": [
495
+ {
496
+ "include": "source.regexp"
497
+ }
498
+ ],
499
+ "beginCaptures": {
500
+ "0": {
501
+ "name": "keyword.control.transform.begin.vim-snippet"
502
+ }
503
+ },
504
+ "endCaptures": {
505
+ "0": {
506
+ "name": "keyword.control.transform.middle.vim-snippet"
507
+ }
508
+ }
509
+ },
510
+ {
511
+ "contentName": "markup.inserted.transform.vim-snippet",
512
+ "begin": "(?\u003c=/)",
513
+ "end": "(/)([gima]*)",
514
+ "patterns": [
515
+ {
516
+ "include": "source.regexp"
517
+ }
518
+ ],
519
+ "endCaptures": {
520
+ "1": {
521
+ "name": "keyword.control.transform.end.vim-snippet"
522
+ },
523
+ "2": {
524
+ "name": "storage.modifier.transform.option.vim-snippet"
525
+ }
526
+ }
527
+ }
528
+ ],
529
+ "beginCaptures": {
530
+ "1": {
531
+ "name": "punctuation.definition.variable.begin.vim-snippet"
532
+ },
533
+ "2": {
534
+ "name": "variable.language.tab-stop.vim-snippet"
535
+ }
536
+ },
537
+ "endCaptures": {
538
+ "0": {
539
+ "name": "punctuation.definition.variable.end.vim-snippet"
540
+ }
541
+ }
542
+ }
543
+ ]
544
+ },
545
+ "ultisnips": {
546
+ "patterns": [
547
+ {
548
+ "name": "meta.clear.directive.vim-snippet",
549
+ "begin": "^(clearsnippets)(?=\\s|$)",
550
+ "end": "$",
551
+ "patterns": [
552
+ {
553
+ "name": "variable.parameter.function.vim-snippet",
554
+ "match": "[^\\s]+"
555
+ }
556
+ ],
557
+ "beginCaptures": {
558
+ "1": {
559
+ "name": "keyword.control.clearsnippets.directive.vim-snippet"
560
+ }
561
+ }
562
+ },
563
+ {
564
+ "name": "meta.$1.directive.vim-snippet",
565
+ "begin": "^(context|pre_expand|post_expand|post_jump)(?=[ \\t]|$)",
566
+ "end": "$",
567
+ "patterns": [
568
+ {
569
+ "name": "string.quoted.double.python-code.vim-snippet",
570
+ "match": "(\")([^\"]*)(\")",
571
+ "captures": {
572
+ "1": {
573
+ "name": "punctuation.definition.string.begin.vim-snippet"
574
+ },
575
+ "2": {
576
+ "patterns": [
577
+ {
578
+ "include": "source.python"
579
+ }
580
+ ]
581
+ },
582
+ "3": {
583
+ "name": "punctuation.definition.string.end.vim-snippet"
584
+ }
585
+ }
586
+ }
587
+ ],
588
+ "beginCaptures": {
589
+ "1": {
590
+ "name": "keyword.control.$1.directive.vim-snippet"
591
+ }
592
+ }
593
+ }
594
+ ]
595
+ },
596
+ "version": {
597
+ "match": "^(version)\\s+(\\d)",
598
+ "captures": {
599
+ "1": {
600
+ "name": "keyword.control.version.directive.vim-snippet"
601
+ },
602
+ "2": {
603
+ "name": "constant.numeric.integer.int.vim-snippet"
604
+ }
605
+ }
606
+ },
607
+ "visual": {
608
+ "patterns": [
609
+ {
610
+ "name": "constant.language.visual-content.unbraced.vim-snippet",
611
+ "match": "(\\$)VISUAL",
612
+ "captures": {
613
+ "1": {
614
+ "name": "punctuation.definition.vim-snippet"
615
+ }
616
+ }
617
+ },
618
+ {
619
+ "name": "constant.language.visual-content.braced.vim-snippet",
620
+ "match": "(\\${)VISUAL(})",
621
+ "captures": {
622
+ "1": {
623
+ "name": "punctuation.definition.begin.vim-snippet"
624
+ },
625
+ "2": {
626
+ "name": "punctuation.definition.end.vim-snippet"
627
+ }
628
+ }
629
+ },
630
+ {
631
+ "name": "constant.language.visual-content.v0-syntax.vim-snippet",
632
+ "match": "({)VISUAL(})",
633
+ "captures": {
634
+ "1": {
635
+ "name": "punctuation.definition.begin.vim-snippet"
636
+ },
637
+ "2": {
638
+ "name": "punctuation.definition.end.vim-snippet"
639
+ }
640
+ }
641
+ }
642
+ ]
643
+ }
644
+ }
645
+ }