github-linguist 4.8.5 → 4.8.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/{source.sas_log.json → source.SASLog.json} +5 -6
  3. data/grammars/source.ahk.json +81 -57
  4. data/grammars/source.assembly.json +1 -1
  5. data/grammars/source.bro.json +4 -4
  6. data/grammars/source.clojure.json +32 -8
  7. data/grammars/source.coq.json +1 -1
  8. data/grammars/source.crystal.json +21 -6
  9. data/grammars/source.csound-document.json +71 -0
  10. data/grammars/source.csound-score.json +65 -0
  11. data/grammars/source.csound.json +494 -0
  12. data/grammars/source.elm.json +27 -2
  13. data/grammars/source.fsharp.json +1 -1
  14. data/grammars/source.glsl.json +96 -6
  15. data/grammars/source.js.jsx.json +664 -524
  16. data/grammars/source.nu.json +526 -0
  17. data/grammars/source.pawn.json +8 -109
  18. data/grammars/source.pony.json +1 -1
  19. data/grammars/source.python.json +4 -4
  20. data/grammars/source.regexp.babel.json +1 -1
  21. data/grammars/source.shell.json +4 -1
  22. data/grammars/source.swift.json +2 -2
  23. data/grammars/source.wavefront.mtl.json +1177 -0
  24. data/grammars/source.wavefront.obj.json +1344 -0
  25. data/grammars/text.html.creole.json +329 -0
  26. data/grammars/text.html.ecr.json +52 -0
  27. data/grammars/text.html.handlebars.json +1 -1
  28. data/grammars/text.html.mako.json +17 -2
  29. data/grammars/text.html.vue.json +36 -1
  30. data/grammars/text.slim.json +1 -4
  31. data/grammars/text.tex.latex.json +2 -2
  32. data/lib/linguist/languages.json +1 -1
  33. data/lib/linguist/languages.yml +75 -6
  34. data/lib/linguist/samples.json +1856 -71
  35. data/lib/linguist/version.rb +1 -1
  36. metadata +11 -4
  37. data/grammars/source.fan.json +0 -188
@@ -0,0 +1,1344 @@
1
+ {
2
+ "name": "Wavefront Object",
3
+ "scopeName": "source.wavefront.obj",
4
+ "fileTypes": [
5
+ "obj"
6
+ ],
7
+ "patterns": [
8
+ {
9
+ "include": "#main"
10
+ }
11
+ ],
12
+ "repository": {
13
+ "main": {
14
+ "patterns": [
15
+ {
16
+ "include": "#comment"
17
+ },
18
+ {
19
+ "include": "#line-continuation"
20
+ },
21
+ {
22
+ "include": "#general"
23
+ },
24
+ {
25
+ "include": "#vertex"
26
+ },
27
+ {
28
+ "include": "#elements"
29
+ },
30
+ {
31
+ "include": "#attributes"
32
+ },
33
+ {
34
+ "include": "#freeform"
35
+ },
36
+ {
37
+ "include": "#body-statements"
38
+ },
39
+ {
40
+ "include": "#connect"
41
+ },
42
+ {
43
+ "include": "#grouping"
44
+ },
45
+ {
46
+ "include": "#display"
47
+ },
48
+ {
49
+ "include": "#superseded"
50
+ },
51
+ {
52
+ "include": "#number"
53
+ }
54
+ ]
55
+ },
56
+ "global": {
57
+ "patterns": [
58
+ {
59
+ "include": "#comment"
60
+ },
61
+ {
62
+ "include": "#number"
63
+ },
64
+ {
65
+ "include": "#line-continuation"
66
+ }
67
+ ]
68
+ },
69
+ "comment": {
70
+ "name": "comment.line.number-sign.wavefront.obj",
71
+ "begin": "#",
72
+ "end": "$",
73
+ "beginCaptures": {
74
+ "0": {
75
+ "name": "punctuation.definition.comment.wavefront.obj"
76
+ }
77
+ }
78
+ },
79
+ "line-continuation": {
80
+ "name": "constant.character.escape.newline.wavefront.obj",
81
+ "match": "\\\\\n"
82
+ },
83
+ "number": {
84
+ "patterns": [
85
+ {
86
+ "name": "constant.numeric.integer.wavefront.obj",
87
+ "match": "(?<=[\\s,]|^)-?\\d+(?![-\\d.])"
88
+ },
89
+ {
90
+ "name": "constant.numeric.float.wavefront.obj",
91
+ "match": "(?<=[\\s,]|^)-?(\\d+)(?:(\\.)(\\d+))?\\b",
92
+ "captures": {
93
+ "1": {
94
+ "name": "leading.decimal"
95
+ },
96
+ "2": {
97
+ "name": "decimal.separator"
98
+ },
99
+ "3": {
100
+ "name": "trailing.decimal"
101
+ }
102
+ }
103
+ },
104
+ {
105
+ "name": "constant.numeric.float.no-leading-digits.wavefront.obj",
106
+ "match": "(?<=[\\s,]|^)-?(\\.)(\\d+)\\b",
107
+ "captures": {
108
+ "1": {
109
+ "name": "decimal.separator"
110
+ },
111
+ "2": {
112
+ "name": "trailing.decimal"
113
+ }
114
+ }
115
+ }
116
+ ]
117
+ },
118
+ "args": {
119
+ "name": "meta.arguments.wavefront.obj",
120
+ "begin": "\\G",
121
+ "end": "(?<!\\\\)$",
122
+ "patterns": [
123
+ {
124
+ "include": "#global"
125
+ },
126
+ {
127
+ "name": "variable.language.substituted.wavefront.obj",
128
+ "match": "\\$[1-9]+"
129
+ }
130
+ ]
131
+ },
132
+ "xyzw": {
133
+ "name": "meta.vector.xyzw.wavefront.obj",
134
+ "match": "\\G\\s*(?!#)(\\S+)(?<!#)\\s+(?!#)(\\S+)(?<!#)\\s+(?!#)(\\S+)(?<!#)(?:\\s+(?!#)(\\S+)(?<!#))?",
135
+ "captures": {
136
+ "1": {
137
+ "name": "entity.x.coordinate.wavefront.obj",
138
+ "patterns": [
139
+ {
140
+ "include": "#number"
141
+ }
142
+ ]
143
+ },
144
+ "2": {
145
+ "name": "entity.y.coordinate.wavefront.obj",
146
+ "patterns": [
147
+ {
148
+ "include": "#number"
149
+ }
150
+ ]
151
+ },
152
+ "3": {
153
+ "name": "entity.z.coordinate.wavefront.obj",
154
+ "patterns": [
155
+ {
156
+ "include": "#number"
157
+ }
158
+ ]
159
+ },
160
+ "4": {
161
+ "name": "entity.w.weight.wavefront.obj",
162
+ "patterns": [
163
+ {
164
+ "include": "#number"
165
+ }
166
+ ]
167
+ }
168
+ }
169
+ },
170
+ "uvw": {
171
+ "name": "meta.vector.uvw.wavefront.obj",
172
+ "match": "\\G\\s*(?!#)(\\S+)(?<!#)\\s+(?!#)(\\S+)(?<!#)\\s+(?!#)(\\S+)(?<!#)",
173
+ "captures": {
174
+ "1": {
175
+ "name": "entity.u.coordinate.wavefront.obj",
176
+ "patterns": [
177
+ {
178
+ "include": "#number"
179
+ }
180
+ ]
181
+ },
182
+ "2": {
183
+ "name": "entity.v.coordinate.wavefront.obj",
184
+ "patterns": [
185
+ {
186
+ "include": "#number"
187
+ }
188
+ ]
189
+ },
190
+ "3": {
191
+ "name": "entity.w.coordinate.wavefront.obj",
192
+ "patterns": [
193
+ {
194
+ "include": "#number"
195
+ }
196
+ ]
197
+ }
198
+ }
199
+ },
200
+ "ijk": {
201
+ "name": "meta.vector.ijk.wavefront.obj",
202
+ "match": "\\G\\s*(?!#)(\\S+)(?<!#)\\s+(?!#)(\\S+)(?<!#)\\s+(?!#)(\\S+)(?<!#)",
203
+ "captures": {
204
+ "1": {
205
+ "name": "entity.i.coordinate.wavefront.obj",
206
+ "patterns": [
207
+ {
208
+ "include": "#number"
209
+ }
210
+ ]
211
+ },
212
+ "2": {
213
+ "name": "entity.j.coordinate.wavefront.obj",
214
+ "patterns": [
215
+ {
216
+ "include": "#number"
217
+ }
218
+ ]
219
+ },
220
+ "3": {
221
+ "name": "entity.k.coordinate.wavefront.obj",
222
+ "patterns": [
223
+ {
224
+ "include": "#number"
225
+ }
226
+ ]
227
+ }
228
+ }
229
+ },
230
+ "vertref": {
231
+ "patterns": [
232
+ {
233
+ "include": "#vertref-triple"
234
+ },
235
+ {
236
+ "include": "#vertref-double"
237
+ },
238
+ {
239
+ "include": "#vertref-single"
240
+ }
241
+ ]
242
+ },
243
+ "vertref-single": {
244
+ "patterns": [
245
+ {
246
+ "match": "-\\d+",
247
+ "name": "constant.numeric.vertex-reference.relative.wavefront.obj"
248
+ },
249
+ {
250
+ "match": "\\d+",
251
+ "name": "constant.numeric.vertex-reference.absolute.wavefront.obj"
252
+ }
253
+ ]
254
+ },
255
+ "vertref-double": {
256
+ "name": "meta.vertex-reference.double.wavefront.obj",
257
+ "match": "(?<=\\s)(-?\\d+)(\\/)(-?\\d+)(?=\\s|$)",
258
+ "captures": {
259
+ "1": {
260
+ "name": "meta.first.wavefront.obj",
261
+ "patterns": [
262
+ {
263
+ "include": "#vertref"
264
+ }
265
+ ]
266
+ },
267
+ "2": {
268
+ "name": "punctuation.separator.slash.wavefront.obj"
269
+ },
270
+ "3": {
271
+ "name": "meta.second.wavefront.obj",
272
+ "patterns": [
273
+ {
274
+ "include": "#vertref"
275
+ }
276
+ ]
277
+ }
278
+ }
279
+ },
280
+ "vertref-triple": {
281
+ "name": "meta.vertex-reference.triple.wavefront.obj",
282
+ "match": "(?<=\\s)(-?\\d+)(\\/)(-?\\d+)?(\\/)(-?\\d+)(?=\\s|$)",
283
+ "captures": {
284
+ "1": {
285
+ "name": "meta.first.wavefront.obj",
286
+ "patterns": [
287
+ {
288
+ "include": "#vertref"
289
+ }
290
+ ]
291
+ },
292
+ "2": {
293
+ "name": "punctuation.separator.slash.wavefront.obj"
294
+ },
295
+ "3": {
296
+ "name": "meta.second.wavefront.obj",
297
+ "patterns": [
298
+ {
299
+ "include": "#vertref"
300
+ }
301
+ ]
302
+ },
303
+ "4": {
304
+ "name": "punctuation.separator.slash.wavefront.obj"
305
+ },
306
+ "5": {
307
+ "name": "meta.third.wavefront.obj",
308
+ "patterns": [
309
+ {
310
+ "include": "#vertref"
311
+ }
312
+ ]
313
+ }
314
+ }
315
+ },
316
+ "curveref": {
317
+ "name": "meta.curve-reference.wavefront.obj",
318
+ "match": "([-\\d.]+)\\s+([-\\d.]+)\\s+(\\d+)",
319
+ "captures": {
320
+ "1": {
321
+ "name": "constant.numeric.start-value.wavefront.obj",
322
+ "patterns": [
323
+ {
324
+ "include": "#number"
325
+ }
326
+ ]
327
+ },
328
+ "2": {
329
+ "name": "constant.numeric.end-value.wavefront.obj",
330
+ "patterns": [
331
+ {
332
+ "include": "#number"
333
+ }
334
+ ]
335
+ },
336
+ "3": {
337
+ "name": "constant.numeric.curve-index.wavefront.obj",
338
+ "patterns": [
339
+ {
340
+ "include": "#number"
341
+ }
342
+ ]
343
+ }
344
+ }
345
+ },
346
+ "general": {
347
+ "patterns": [
348
+ {
349
+ "name": "meta.function-call.$1.wavefront.obj",
350
+ "begin": "^\\s*(call)(?:\\s+(?!#)(\\S+)?)?",
351
+ "end": "$",
352
+ "beginCaptures": {
353
+ "1": {
354
+ "name": "keyword.function.$1.wavefront.obj"
355
+ },
356
+ "2": {
357
+ "name": "string.filename.wavefront.obj"
358
+ }
359
+ },
360
+ "patterns": [
361
+ {
362
+ "include": "#args"
363
+ }
364
+ ]
365
+ },
366
+ {
367
+ "name": "meta.function-call.$1.ignore-errors.wavefront.obj",
368
+ "begin": "^\\s*(csh)(?:\\s+(-)(\\w*))",
369
+ "end": "$",
370
+ "beginCaptures": {
371
+ "1": {
372
+ "name": "keyword.function.$1.wavefront.obj"
373
+ },
374
+ "2": {
375
+ "name": "punctuation.definition.dash.wavefront.obj"
376
+ },
377
+ "3": {
378
+ "name": "string.command-name.wavefront.obj"
379
+ }
380
+ },
381
+ "patterns": [
382
+ {
383
+ "include": "#args"
384
+ }
385
+ ]
386
+ },
387
+ {
388
+ "name": "meta.function-call.$1.wavefront.obj",
389
+ "begin": "^\\s*(csh)(?:\\s+(\\w+))?",
390
+ "end": "$",
391
+ "beginCaptures": {
392
+ "1": {
393
+ "name": "keyword.function.$1.wavefront.obj"
394
+ },
395
+ "2": {
396
+ "name": "string.command-name.wavefront.obj"
397
+ }
398
+ },
399
+ "patterns": [
400
+ {
401
+ "include": "#args"
402
+ }
403
+ ]
404
+ }
405
+ ]
406
+ },
407
+ "vertex": {
408
+ "patterns": [
409
+ {
410
+ "name": "meta.vertex.geometric.wavefront.obj",
411
+ "begin": "^\\s*(v)(?=\\s|$|#)",
412
+ "end": "(?=$|#)",
413
+ "beginCaptures": {
414
+ "1": {
415
+ "name": "keyword.function.$1.wavefront.obj"
416
+ }
417
+ },
418
+ "patterns": [
419
+ {
420
+ "include": "#xyzw"
421
+ },
422
+ {
423
+ "include": "#global"
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ "name": "meta.vertex.parameter-space.wavefront.obj",
429
+ "begin": "^\\s*(vp)(?=\\s|$)",
430
+ "end": "$",
431
+ "beginCaptures": {
432
+ "1": {
433
+ "name": "keyword.function.$1.wavefront.obj"
434
+ }
435
+ },
436
+ "patterns": [
437
+ {
438
+ "include": "#uvw"
439
+ },
440
+ {
441
+ "include": "#global"
442
+ }
443
+ ]
444
+ },
445
+ {
446
+ "name": "meta.vertex.normal.wavefront.obj",
447
+ "begin": "^\\s*(vn)(?=\\s|$)",
448
+ "end": "$",
449
+ "beginCaptures": {
450
+ "1": {
451
+ "name": "keyword.function.$1.wavefront.obj"
452
+ }
453
+ },
454
+ "patterns": [
455
+ {
456
+ "include": "#ijk"
457
+ },
458
+ {
459
+ "include": "#global"
460
+ }
461
+ ]
462
+ },
463
+ {
464
+ "name": "meta.vertex.texture.wavefront.obj",
465
+ "begin": "^\\s*(vt)(?=\\s|$)",
466
+ "end": "$",
467
+ "beginCaptures": {
468
+ "1": {
469
+ "name": "keyword.function.$1.wavefront.obj"
470
+ }
471
+ },
472
+ "patterns": [
473
+ {
474
+ "include": "#uvw"
475
+ },
476
+ {
477
+ "include": "#global"
478
+ }
479
+ ]
480
+ }
481
+ ]
482
+ },
483
+ "attributes": {
484
+ "patterns": [
485
+ {
486
+ "name": "meta.free-form.attribute.type.wavefront.obj",
487
+ "match": "^\\s*(cstype)(?:\\s+(rat(?=\\s|$))?\\s*(?:(bmatrix|bezier|bspline|cardinal|taylor))?)?(?=\\s|$)",
488
+ "captures": {
489
+ "1": {
490
+ "name": "keyword.function.$1.wavefront.obj"
491
+ },
492
+ "2": {
493
+ "name": "entity.rational-form.wavefront.obj"
494
+ },
495
+ "3": {
496
+ "name": "entity.value.wavefront.obj"
497
+ }
498
+ }
499
+ },
500
+ {
501
+ "name": "meta.free-form.attribute.polynomial-degree.wavefront.obj",
502
+ "match": "^\\s*(deg)(?:\\s+(\\d+)(?=\\s|$))?(?:\\s+(\\d+))?(?=\\s|$)",
503
+ "captures": {
504
+ "1": {
505
+ "name": "keyword.function.$1.wavefront.obj"
506
+ },
507
+ "2": {
508
+ "name": "constant.numeric.u-degree.wavefront.obj"
509
+ },
510
+ "3": {
511
+ "name": "constant.numeric.v-degree.wavefront.obj"
512
+ }
513
+ }
514
+ },
515
+ {
516
+ "name": "meta.free-form.attribute.$2.basis-matrix.wavefront.obj",
517
+ "begin": "^\\s*(bmat)(?:\\s+(u|v)(?=\\s|$)\\s*)?",
518
+ "end": "(?<!\\\\)$|(?=#)",
519
+ "contentName": "meta.matrix.wavefront.obj",
520
+ "beginCaptures": {
521
+ "1": {
522
+ "name": "keyword.function.$1.wavefront.obj"
523
+ },
524
+ "2": {
525
+ "name": "entity.type.wavefront.obj"
526
+ }
527
+ },
528
+ "patterns": [
529
+ {
530
+ "include": "#global"
531
+ }
532
+ ]
533
+ },
534
+ {
535
+ "name": "meta.free-form.attribute.step-size.wavefront.obj",
536
+ "match": "^\\s*(step)(?:\\s+(\\d+))?(?:\\s+(\\d+))?(?=\\s|$)",
537
+ "captures": {
538
+ "1": {
539
+ "name": "keyword.function.$1.wavefront.obj"
540
+ },
541
+ "2": {
542
+ "name": "constant.numeric.u-size.wavefront.obj"
543
+ },
544
+ "3": {
545
+ "name": "constant.numeric.v-size.wavefront.obj"
546
+ }
547
+ }
548
+ }
549
+ ]
550
+ },
551
+ "elements": {
552
+ "patterns": [
553
+ {
554
+ "name": "meta.polygonal.element.point.wavefront.obj",
555
+ "begin": "^\\s*(p)(?:\\s|$|#)",
556
+ "end": "(?<!\\\\)$",
557
+ "beginCaptures": {
558
+ "1": {
559
+ "name": "keyword.function.$1.wavefront.obj"
560
+ }
561
+ },
562
+ "patterns": [
563
+ {
564
+ "include": "#vertref-single"
565
+ },
566
+ {
567
+ "include": "#global"
568
+ }
569
+ ]
570
+ },
571
+ {
572
+ "name": "meta.polygonal.element.line.wavefront.obj",
573
+ "begin": "^\\s*(l)(?:\\s|$|#)",
574
+ "end": "(?<!\\\\)$",
575
+ "beginCaptures": {
576
+ "1": {
577
+ "name": "keyword.function.$1.wavefront.obj"
578
+ }
579
+ },
580
+ "patterns": [
581
+ {
582
+ "include": "#vertref-double"
583
+ },
584
+ {
585
+ "include": "#vertref-single"
586
+ },
587
+ {
588
+ "include": "#global"
589
+ }
590
+ ]
591
+ },
592
+ {
593
+ "name": "meta.polygonal.element.face.wavefront.obj",
594
+ "begin": "^\\s*(?:(f)|(fo))(?:\\s|$|#)",
595
+ "end": "(?<!\\\\)$",
596
+ "beginCaptures": {
597
+ "1": {
598
+ "name": "keyword.function.$1.wavefront.obj"
599
+ },
600
+ "2": {
601
+ "name": "invalid.deprecated.wavefront.obj"
602
+ }
603
+ },
604
+ "patterns": [
605
+ {
606
+ "include": "#vertref"
607
+ },
608
+ {
609
+ "include": "#global"
610
+ }
611
+ ]
612
+ },
613
+ {
614
+ "name": "meta.free-form.element.curve.wavefront.obj",
615
+ "begin": "^\\s*(curv)\\s+([-\\d.]+)\\s+([-\\d.]+)",
616
+ "end": "(?<!\\\\)$",
617
+ "beginCaptures": {
618
+ "1": {
619
+ "name": "keyword.function.$1.wavefront.obj"
620
+ },
621
+ "2": {
622
+ "name": "entity.value.start-value.wavefront.obj",
623
+ "patterns": [
624
+ {
625
+ "include": "#number"
626
+ }
627
+ ]
628
+ },
629
+ "3": {
630
+ "name": "entity.value.end-value.wavefront.obj",
631
+ "patterns": [
632
+ {
633
+ "include": "#number"
634
+ }
635
+ ]
636
+ }
637
+ },
638
+ "patterns": [
639
+ {
640
+ "include": "#vertref-single"
641
+ },
642
+ {
643
+ "include": "#global"
644
+ }
645
+ ]
646
+ },
647
+ {
648
+ "name": "meta.free-form.element.curve-2d.wavefront.obj",
649
+ "begin": "^\\s*(curv2)(?:\\s|$|#)",
650
+ "end": "(?<!\\\\)$",
651
+ "beginCaptures": {
652
+ "1": {
653
+ "name": "keyword.function.$1.wavefront.obj"
654
+ }
655
+ },
656
+ "patterns": [
657
+ {
658
+ "include": "#vertref-single"
659
+ },
660
+ {
661
+ "include": "#global"
662
+ }
663
+ ]
664
+ },
665
+ {
666
+ "name": "meta.free-form.element.surface.wavefront.obj",
667
+ "begin": "^\\s*(surf)\\s+([-\\d.]+)\\s+([-\\d.]+)\\s+([-\\d.]+)\\s+([-\\d.]+)",
668
+ "end": "(?<!\\\\)$",
669
+ "beginCaptures": {
670
+ "1": {
671
+ "name": "keyword.function.$1.wavefront.obj"
672
+ },
673
+ "2": {
674
+ "name": "entity.value.u-start.wavefront.obj",
675
+ "patterns": [
676
+ {
677
+ "include": "#number"
678
+ }
679
+ ]
680
+ },
681
+ "3": {
682
+ "name": "entity.value.u-end.wavefront.obj",
683
+ "patterns": [
684
+ {
685
+ "include": "#number"
686
+ }
687
+ ]
688
+ },
689
+ "4": {
690
+ "name": "entity.value.v-start.wavefront.obj",
691
+ "patterns": [
692
+ {
693
+ "include": "#number"
694
+ }
695
+ ]
696
+ },
697
+ "5": {
698
+ "name": "entity.value.v-end.wavefront.obj",
699
+ "patterns": [
700
+ {
701
+ "include": "#number"
702
+ }
703
+ ]
704
+ }
705
+ },
706
+ "patterns": [
707
+ {
708
+ "include": "#vertref"
709
+ },
710
+ {
711
+ "include": "#global"
712
+ }
713
+ ]
714
+ }
715
+ ]
716
+ },
717
+ "body-statements": {
718
+ "patterns": [
719
+ {
720
+ "name": "meta.body-statement.parameter.$2-direction.wavefront.obj",
721
+ "begin": "^\\s*(parm)\\s+(u|v)(?=\\s|$|#)",
722
+ "end": "(?<!\\\\)$",
723
+ "beginCaptures": {
724
+ "1": {
725
+ "name": "keyword.function.$1.wavefront.obj"
726
+ },
727
+ "2": {
728
+ "name": "entity.direction.wavefront.obj"
729
+ }
730
+ },
731
+ "patterns": [
732
+ {
733
+ "include": "#global"
734
+ }
735
+ ]
736
+ },
737
+ {
738
+ "name": "meta.body-statement.trimming-loop.wavefront.obj",
739
+ "begin": "^\\s*(trim)(?:\\s+|$|#)",
740
+ "end": "(?<!\\\\)$",
741
+ "beginCaptures": {
742
+ "1": {
743
+ "name": "keyword.function.$1.wavefront.obj"
744
+ }
745
+ },
746
+ "patterns": [
747
+ {
748
+ "include": "#curveref"
749
+ },
750
+ {
751
+ "include": "#global"
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ "name": "meta.body-statement.special-curve.wavefront.obj",
757
+ "begin": "^\\s*(scrv)(?:\\s+|$|#)",
758
+ "end": "(?<!\\\\)$",
759
+ "beginCaptures": {
760
+ "1": {
761
+ "name": "keyword.function.$1.wavefront.obj"
762
+ }
763
+ },
764
+ "patterns": [
765
+ {
766
+ "include": "#curveref"
767
+ },
768
+ {
769
+ "include": "#global"
770
+ }
771
+ ]
772
+ },
773
+ {
774
+ "name": "meta.body-statement.special-point.wavefront.obj",
775
+ "begin": "^\\s*(sp)(?:\\s+|$|#)",
776
+ "end": "(?<!\\\\)$",
777
+ "beginCaptures": {
778
+ "1": {
779
+ "name": "keyword.function.$1.wavefront.obj"
780
+ }
781
+ },
782
+ "patterns": [
783
+ {
784
+ "include": "#vertref-single"
785
+ },
786
+ {
787
+ "include": "#global"
788
+ }
789
+ ]
790
+ },
791
+ {
792
+ "name": "keyword.control.body-statement.end.wavefront.obj",
793
+ "match": "^\\s*end(?=\\s|$|#)"
794
+ }
795
+ ]
796
+ },
797
+ "connect": {
798
+ "name": "meta.free-form.connectivity.wavefront.obj",
799
+ "match": "(?x)\n^\\s*\n\n(con) # 1: keyword.function.$1.wavefront.obj\n\n\\s+(\\d+) # 2: entity.value.first-surface.index.wavefront.obj\n\\s+([-\\d.]+) # 3: entity.value.first-surface.start.wavefront.obj\n\\s+([-\\d.]+) # 4: entity.value.first-surface.end.wavefront.obj\n\\s+(\\d+) # 5: entity.value.first-surface.curve.wavefront.obj\n\n\\s+(\\d+) # 6: entity.value.second-surface.index.wavefront.obj\n\\s+([-\\d.]+) # 7: entity.value.second-surface.start.wavefront.obj\n\\s+([-\\d.]+) # 8: entity.value.second-surface.end.wavefront.obj\n\\s+(\\d+) # 9: entity.value.second-surface.curve.wavefront.obj",
800
+ "captures": {
801
+ "1": {
802
+ "name": "keyword.function.$1.wavefront.obj"
803
+ },
804
+ "2": {
805
+ "name": "entity.value.first-surface.index.wavefront.obj",
806
+ "patterns": [
807
+ {
808
+ "include": "#number"
809
+ }
810
+ ]
811
+ },
812
+ "3": {
813
+ "name": "entity.value.first-surface.start.wavefront.obj",
814
+ "patterns": [
815
+ {
816
+ "include": "#number"
817
+ }
818
+ ]
819
+ },
820
+ "4": {
821
+ "name": "entity.value.first-surface.end.wavefront.obj",
822
+ "patterns": [
823
+ {
824
+ "include": "#number"
825
+ }
826
+ ]
827
+ },
828
+ "5": {
829
+ "name": "entity.value.first-surface.curve.wavefront.obj",
830
+ "patterns": [
831
+ {
832
+ "include": "#number"
833
+ }
834
+ ]
835
+ },
836
+ "6": {
837
+ "name": "entity.value.first-surface.index.wavefront.obj",
838
+ "patterns": [
839
+ {
840
+ "include": "#number"
841
+ }
842
+ ]
843
+ },
844
+ "7": {
845
+ "name": "entity.value.first-surface.start.wavefront.obj",
846
+ "patterns": [
847
+ {
848
+ "include": "#number"
849
+ }
850
+ ]
851
+ },
852
+ "8": {
853
+ "name": "entity.value.first-surface.end.wavefront.obj",
854
+ "patterns": [
855
+ {
856
+ "include": "#number"
857
+ }
858
+ ]
859
+ },
860
+ "9": {
861
+ "name": "entity.value.first-surface.curve.wavefront.obj",
862
+ "patterns": [
863
+ {
864
+ "include": "#number"
865
+ }
866
+ ]
867
+ }
868
+ }
869
+ },
870
+ "grouping": {
871
+ "patterns": [
872
+ {
873
+ "name": "meta.grouping-statement.group.wavefront.obj",
874
+ "begin": "^\\s*(g)(?:\\s|$|#)",
875
+ "end": "(?<!\\\\)$|(?=#)",
876
+ "contentName": "meta.group-names.wavefront.obj",
877
+ "beginCaptures": {
878
+ "1": {
879
+ "name": "keyword.function.$1.wavefront.obj"
880
+ }
881
+ },
882
+ "patterns": [
883
+ {
884
+ "name": "variable.parameter.group-name.wavefront.obj",
885
+ "match": "(?!#)\\S+(?<!#)"
886
+ },
887
+ {
888
+ "include": "#global"
889
+ }
890
+ ]
891
+ },
892
+ {
893
+ "name": "meta.grouping-statement.smoothing-group.wavefront.obj",
894
+ "match": "^\\s*(s)\\s+(?:(\\d+)|(off))(?=\\s|$|#)",
895
+ "captures": {
896
+ "1": {
897
+ "name": "keyword.function.$1.wavefront.obj"
898
+ },
899
+ "2": {
900
+ "name": "constant.numeric.wavefront.obj"
901
+ },
902
+ "3": {
903
+ "name": "constant.language.boolean.off.wavefront.obj"
904
+ }
905
+ }
906
+ },
907
+ {
908
+ "name": "meta.free-form.grouping-statement.merge-group.wavefront.obj",
909
+ "match": "^\\s*(mg)\\s+(?:(off)(?=\\s|$|#)|(\\d+)\\s+([-\\d.]+))",
910
+ "captures": {
911
+ "1": {
912
+ "name": "keyword.function.$1.wavefront.obj"
913
+ },
914
+ "2": {
915
+ "name": "constant.language.boolean.off.wavefront.obj"
916
+ },
917
+ "3": {
918
+ "name": "entity.group-number.wavefront.obj",
919
+ "patterns": [
920
+ {
921
+ "include": "#number"
922
+ }
923
+ ]
924
+ },
925
+ "4": {
926
+ "name": "entity.max-distance.wavefront.obj",
927
+ "patterns": [
928
+ {
929
+ "include": "#number"
930
+ }
931
+ ]
932
+ }
933
+ }
934
+ },
935
+ {
936
+ "name": "meta.grouping-statement.user-defined.wavefront.obj",
937
+ "match": "^\\s*(o)\\s+(?!#)(\\S+)(?<!#)",
938
+ "captures": {
939
+ "1": {
940
+ "name": "keyword.function.$1.wavefront.obj"
941
+ },
942
+ "2": {
943
+ "name": "variable.parameter.object-name.wavefront.obj"
944
+ }
945
+ }
946
+ }
947
+ ]
948
+ },
949
+ "display": {
950
+ "patterns": [
951
+ {
952
+ "name": "meta.display.polygonal.attribute.bevel.wavefront.obj",
953
+ "match": "^\\s*(bevel)\\s+(on|off)(?=\\s|$|#)",
954
+ "captures": {
955
+ "1": {
956
+ "name": "keyword.function.$1.wavefront.obj"
957
+ },
958
+ "2": {
959
+ "name": "constant.language.boolean.$2.wavefront.obj"
960
+ }
961
+ }
962
+ },
963
+ {
964
+ "name": "meta.display.polygonal.attribute.colour-interpolation.wavefront.obj",
965
+ "match": "^\\s*(c_interp)\\s+(on|off)(?=\\s|$|#)",
966
+ "captures": {
967
+ "1": {
968
+ "name": "keyword.function.$1.wavefront.obj"
969
+ },
970
+ "2": {
971
+ "name": "constant.language.boolean.$2.wavefront.obj"
972
+ }
973
+ }
974
+ },
975
+ {
976
+ "name": "meta.display.polygonal.attribute.dissolve-interpolation.wavefront.obj",
977
+ "match": "^\\s*(d_interp)\\s+(on|off)(?=\\s|$|#)",
978
+ "captures": {
979
+ "1": {
980
+ "name": "keyword.function.$1.wavefront.obj"
981
+ },
982
+ "2": {
983
+ "name": "constant.language.boolean.$2.wavefront.obj"
984
+ }
985
+ }
986
+ },
987
+ {
988
+ "name": "meta.display.attribute.level-of-detail.wavefront.obj",
989
+ "match": "^\\s*(lod)\\s+([-\\d.]+)",
990
+ "captures": {
991
+ "1": {
992
+ "name": "keyword.function.$1.wavefront.obj"
993
+ },
994
+ "2": {
995
+ "name": "entity.value.wavefront.obj",
996
+ "patterns": [
997
+ {
998
+ "include": "#number"
999
+ }
1000
+ ]
1001
+ }
1002
+ }
1003
+ },
1004
+ {
1005
+ "name": "meta.display.attribute.map-library.wavefront.obj",
1006
+ "begin": "^\\s*(maplib)(?=\\s|$|#)",
1007
+ "end": "(?<!\\\\)$|(?=#)",
1008
+ "beginCaptures": {
1009
+ "1": {
1010
+ "name": "keyword.function.$1.wavefront.obj"
1011
+ }
1012
+ },
1013
+ "patterns": [
1014
+ {
1015
+ "name": "string.filename.wavefront.obj",
1016
+ "match": "(?!#)\\S+(?<!#)"
1017
+ },
1018
+ {
1019
+ "include": "#global"
1020
+ }
1021
+ ]
1022
+ },
1023
+ {
1024
+ "name": "meta.display.attribute.use-map.wavefront.obj",
1025
+ "match": "^\\s*(usemap)\\s+(?:(off)|(?!#)(\\S+)(?<!#))",
1026
+ "captures": {
1027
+ "1": {
1028
+ "name": "keyword.function.$1.wavefront.obj"
1029
+ },
1030
+ "2": {
1031
+ "name": "constant.language.boolean.off.wavefront.obj"
1032
+ },
1033
+ "3": {
1034
+ "name": "variable.parameter.map-name.wavefront.obj"
1035
+ }
1036
+ }
1037
+ },
1038
+ {
1039
+ "name": "meta.display.attribute.use-material.wavefront.obj",
1040
+ "match": "^\\s*(usemtl)\\s+(?!#)(\\S+)(?<!#)",
1041
+ "captures": {
1042
+ "1": {
1043
+ "name": "keyword.function.$1.wavefront.obj"
1044
+ },
1045
+ "2": {
1046
+ "name": "variable.parameter.material-name.wavefront.obj"
1047
+ }
1048
+ }
1049
+ },
1050
+ {
1051
+ "name": "meta.display.attribute.material-library.wavefront.obj",
1052
+ "begin": "^\\s*(mtllib)(?=\\s|$|#)",
1053
+ "end": "(?<!\\\\)$|(?=#)",
1054
+ "beginCaptures": {
1055
+ "1": {
1056
+ "name": "keyword.function.$1.wavefront.obj"
1057
+ }
1058
+ },
1059
+ "patterns": [
1060
+ {
1061
+ "name": "string.filename.wavefront.obj",
1062
+ "match": "(?!#)\\S+(?<!#)"
1063
+ },
1064
+ {
1065
+ "include": "#global"
1066
+ }
1067
+ ]
1068
+ },
1069
+ {
1070
+ "name": "meta.display.attribute.shadow-object.wavefront.obj",
1071
+ "match": "^\\s*(shadow_obj)\\s+(?!#)(\\S+)(?<!#)",
1072
+ "captures": {
1073
+ "1": {
1074
+ "name": "keyword.function.$1.wavefront.obj"
1075
+ },
1076
+ "2": {
1077
+ "name": "string.filename.wavefront.obj"
1078
+ }
1079
+ }
1080
+ },
1081
+ {
1082
+ "name": "meta.display.attribute.trace-object.wavefront.obj",
1083
+ "match": "^\\s*(trace_obj)\\s+(?!#)(\\S+)(?<!#)",
1084
+ "captures": {
1085
+ "1": {
1086
+ "name": "keyword.function.$1.wavefront.obj"
1087
+ },
1088
+ "2": {
1089
+ "name": "string.filename.wavefront.obj"
1090
+ }
1091
+ }
1092
+ },
1093
+ {
1094
+ "name": "meta.display.free-form.attribute.curve-technique.wavefront.obj",
1095
+ "begin": "^\\s*(ctech)\\s+(cparm|cspace|curv)(?=\\s|$|#)",
1096
+ "end": "(?<!\\\\)$|(?=#)",
1097
+ "beginCaptures": {
1098
+ "1": {
1099
+ "name": "keyword.function.$1.wavefront.obj"
1100
+ },
1101
+ "2": {
1102
+ "name": "constant.language.$2.wavefront.obj"
1103
+ }
1104
+ },
1105
+ "patterns": [
1106
+ {
1107
+ "match": "\\G(?<=cparm)\\s+([-\\d.]+)",
1108
+ "name": "entity.value.resolution.wavefront.obj",
1109
+ "captures": {
1110
+ "1": {
1111
+ "patterns": [
1112
+ {
1113
+ "include": "#number"
1114
+ }
1115
+ ]
1116
+ }
1117
+ }
1118
+ },
1119
+ {
1120
+ "match": "\\G(?<=cspace)\\s+([-\\d.]+)",
1121
+ "name": "entity.value.max-length.wavefront.obj",
1122
+ "captures": {
1123
+ "1": {
1124
+ "patterns": [
1125
+ {
1126
+ "include": "#number"
1127
+ }
1128
+ ]
1129
+ }
1130
+ }
1131
+ },
1132
+ {
1133
+ "match": "\\G(?<=curv)\\s+([-\\d.]+)\\s+([-\\d.]+)",
1134
+ "captures": {
1135
+ "1": {
1136
+ "name": "entity.value.max-distance.wavefront.obj",
1137
+ "patterns": [
1138
+ {
1139
+ "include": "#number"
1140
+ }
1141
+ ]
1142
+ },
1143
+ "2": {
1144
+ "name": "entity.value.max-angle.wavefront.obj",
1145
+ "patterns": [
1146
+ {
1147
+ "include": "#number"
1148
+ }
1149
+ ]
1150
+ }
1151
+ }
1152
+ },
1153
+ {
1154
+ "include": "#global"
1155
+ }
1156
+ ]
1157
+ },
1158
+ {
1159
+ "name": "meta.display.free-form.attribute.surface-technique.wavefront.obj",
1160
+ "begin": "^\\s*(stech)\\s+(cparma|cparmb|cspace|curv)(?=\\s|$|#)",
1161
+ "end": "(?<!\\\\)$|(?=#)",
1162
+ "beginCaptures": {
1163
+ "1": {
1164
+ "name": "keyword.function.$1.wavefront.obj"
1165
+ },
1166
+ "2": {
1167
+ "name": "constant.language.$2.wavefront.obj"
1168
+ }
1169
+ },
1170
+ "patterns": [
1171
+ {
1172
+ "match": "\\G(?<=cparma)\\s+([-\\d.]+)\\s+([-\\d.]+)",
1173
+ "captures": {
1174
+ "1": {
1175
+ "name": "entity.value.u-resolution.wavefront.obj",
1176
+ "patterns": [
1177
+ {
1178
+ "include": "#number"
1179
+ }
1180
+ ]
1181
+ },
1182
+ "2": {
1183
+ "name": "entity.value.v-resolution.wavefront.obj",
1184
+ "patterns": [
1185
+ {
1186
+ "include": "#number"
1187
+ }
1188
+ ]
1189
+ }
1190
+ }
1191
+ },
1192
+ {
1193
+ "match": "\\G(?<=cparmb)\\s+([-\\d.]+)",
1194
+ "name": "entity.value.uv-resolution.wavefront.obj",
1195
+ "captures": {
1196
+ "1": {
1197
+ "patterns": [
1198
+ {
1199
+ "include": "#number"
1200
+ }
1201
+ ]
1202
+ }
1203
+ }
1204
+ },
1205
+ {
1206
+ "match": "\\G(?<=cspace)\\s+([-\\d.]+)",
1207
+ "name": "entity.value.max-length.wavefront.obj",
1208
+ "captures": {
1209
+ "1": {
1210
+ "patterns": [
1211
+ {
1212
+ "include": "#number"
1213
+ }
1214
+ ]
1215
+ }
1216
+ }
1217
+ },
1218
+ {
1219
+ "match": "\\G(?<=curv)\\s+([-\\d.]+)\\s+([-\\d.]+)",
1220
+ "captures": {
1221
+ "1": {
1222
+ "name": "entity.value.max-distance.wavefront.obj",
1223
+ "patterns": [
1224
+ {
1225
+ "include": "#number"
1226
+ }
1227
+ ]
1228
+ },
1229
+ "2": {
1230
+ "name": "entity.value.max-angle.wavefront.obj",
1231
+ "patterns": [
1232
+ {
1233
+ "include": "#number"
1234
+ }
1235
+ ]
1236
+ }
1237
+ }
1238
+ },
1239
+ {
1240
+ "include": "#global"
1241
+ }
1242
+ ]
1243
+ }
1244
+ ]
1245
+ },
1246
+ "superseded": {
1247
+ "patterns": [
1248
+ {
1249
+ "name": "invalid.deprecated.b-spline-patch.wavefront.obj",
1250
+ "match": "^\\s*(bsp)(?:$|((?:\\s+\\d+(?=\\s)){0,16}))",
1251
+ "captures": {
1252
+ "1": {
1253
+ "name": "keyword.function.$1.wavefront.obj"
1254
+ },
1255
+ "2": {
1256
+ "name": "meta.arguments.wavefront.obj",
1257
+ "patterns": [
1258
+ {
1259
+ "include": "#vertref-single"
1260
+ }
1261
+ ]
1262
+ }
1263
+ }
1264
+ },
1265
+ {
1266
+ "name": "invalid.deprecated.bezier-patch.wavefront.obj",
1267
+ "match": "^\\s*(bzp)(?:$|((?:\\s+\\d+(?=\\s)){0,16}))",
1268
+ "captures": {
1269
+ "1": {
1270
+ "name": "keyword.function.$1.wavefront.obj"
1271
+ },
1272
+ "2": {
1273
+ "name": "meta.arguments.wavefront.obj",
1274
+ "patterns": [
1275
+ {
1276
+ "include": "#vertref-single"
1277
+ }
1278
+ ]
1279
+ }
1280
+ }
1281
+ },
1282
+ {
1283
+ "name": "invalid.deprecated.cardinal-curve.wavefront.obj",
1284
+ "match": "^\\s*(cdc)(?:$|((?:\\s+\\d+(?=\\s))*))",
1285
+ "captures": {
1286
+ "1": {
1287
+ "name": "keyword.function.$1.wavefront.obj"
1288
+ },
1289
+ "2": {
1290
+ "name": "meta.arguments.wavefront.obj",
1291
+ "patterns": [
1292
+ {
1293
+ "include": "#vertref-single"
1294
+ }
1295
+ ]
1296
+ }
1297
+ }
1298
+ },
1299
+ {
1300
+ "name": "invalid.deprecated.cardinal-patch.wavefront.obj",
1301
+ "match": "^\\s*(cdp)(?:$|((?:\\s+\\d+(?=\\s)){0,16}))",
1302
+ "captures": {
1303
+ "1": {
1304
+ "name": "keyword.function.$1.wavefront.obj"
1305
+ },
1306
+ "2": {
1307
+ "name": "meta.arguments.wavefront.obj",
1308
+ "patterns": [
1309
+ {
1310
+ "include": "#vertref-single"
1311
+ }
1312
+ ]
1313
+ }
1314
+ }
1315
+ },
1316
+ {
1317
+ "name": "invalid.deprecated.display.attribute.segment-resolution.wavefront.obj",
1318
+ "match": "^\\s*(res)\\s+([-\\d.]+)\\s+([-\\d.]+)",
1319
+ "captures": {
1320
+ "1": {
1321
+ "name": "keyword.function.$1.wavefront.obj"
1322
+ },
1323
+ "2": {
1324
+ "name": "entity.value.u-segments.wavefront.obj",
1325
+ "patterns": [
1326
+ {
1327
+ "include": "#vertref-single"
1328
+ }
1329
+ ]
1330
+ },
1331
+ "3": {
1332
+ "name": "entity.value.v-segments.wavefront.obj",
1333
+ "patterns": [
1334
+ {
1335
+ "include": "#vertref-single"
1336
+ }
1337
+ ]
1338
+ }
1339
+ }
1340
+ }
1341
+ ]
1342
+ }
1343
+ }
1344
+ }