github-linguist 5.1.0 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a47f48cf24ba776e2b1a5d2475ec24726bacf148
4
- data.tar.gz: e5cddf4df71675871bfde8e4395e7d62847f4d53
3
+ metadata.gz: c61558c7cd259354fbf2f09965a735e466c9edda
4
+ data.tar.gz: 498dac3af4d916ecdcc8eb577763cdac9410406e
5
5
  SHA512:
6
- metadata.gz: d869d8a34a654ea64bbeb516a8b20b5a1d9f4e16aa5bfff5f28cd8eb2f9ca79aa22226fa1c2756989dfd4928eb894aa37089c67ace43223ee50ad804879ff7a8
7
- data.tar.gz: deb447016d559c267a3d453e21d17f4452f2ad3f0e62ee2f3b36a984706784a4c54cc7201128b7017d91c82bc47c4ae3b1fcdcb03e16e41868bdd809606c1260
6
+ metadata.gz: 7d5ec375099a61965dd526607dbf992b3dbd197ebc31119dcad3fc4e4960ceb6b1d2bba2f4902f10ca105bdd9328c7b7b9307d4744464db9544d3a393e470597
7
+ data.tar.gz: c73c65a2770baa1b5ac0b99f37ada2f5bdc6182c2d173b3b8c181daf0fefceb62e8c447bb3934a5e7d93b83f42e6318f293b5a22a95ae1a7ca3cf723d618cec6
@@ -0,0 +1,1198 @@
1
+ {
2
+ "name": "Adobe Font Metrics",
3
+ "scopeName": "source.afm",
4
+ "fileTypes": [
5
+ "afm",
6
+ "amfm",
7
+ "acfm"
8
+ ],
9
+ "firstLineMatch": "\\AStart(?:Comp|Master)?FontMetrics\\s+(?:\\d+(?:\\.\\d+)?)\\s*$",
10
+ "patterns": [
11
+ {
12
+ "include": "#resources"
13
+ },
14
+ {
15
+ "include": "#main"
16
+ }
17
+ ],
18
+ "repository": {
19
+ "main": {
20
+ "patterns": [
21
+ {
22
+ "include": "#comment"
23
+ },
24
+ {
25
+ "include": "#real"
26
+ },
27
+ {
28
+ "include": "#integer"
29
+ },
30
+ {
31
+ "include": "#array"
32
+ },
33
+ {
34
+ "include": "#globalInfo"
35
+ },
36
+ {
37
+ "include": "#kerningData"
38
+ },
39
+ {
40
+ "include": "#charMetrics"
41
+ },
42
+ {
43
+ "include": "#compositesData"
44
+ },
45
+ {
46
+ "include": "#amfmSpecific"
47
+ },
48
+ {
49
+ "include": "#direction"
50
+ },
51
+ {
52
+ "include": "#primaryFonts"
53
+ },
54
+ {
55
+ "include": "#reserved"
56
+ },
57
+ {
58
+ "include": "#userDefined"
59
+ }
60
+ ]
61
+ },
62
+ "array": {
63
+ "begin": "\\[",
64
+ "end": "\\]|(?=$)",
65
+ "beginCaptures": {
66
+ "0": {
67
+ "name": "punctuation.definition.list.bracket.square.begin.afm"
68
+ }
69
+ },
70
+ "endCaptures": {
71
+ "0": {
72
+ "name": "punctuation.definition.list.bracket.square.end.afm"
73
+ }
74
+ },
75
+ "patterns": [
76
+ {
77
+ "include": "#array"
78
+ },
79
+ {
80
+ "include": "#numbers"
81
+ },
82
+ {
83
+ "include": "#psLiteral"
84
+ }
85
+ ]
86
+ },
87
+ "boolean": {
88
+ "name": "constant.language.boolean.$1.afm",
89
+ "match": "(?<!\\w)(true|false)(?!\\w)"
90
+ },
91
+ "bracketedString": {
92
+ "name": "string.quoted.double.bracketed.afm",
93
+ "begin": "\\(",
94
+ "end": "\\)|(?=$)",
95
+ "beginCaptures": {
96
+ "0": {
97
+ "name": "punctuation.definition.bracket.round.begin.afm"
98
+ }
99
+ },
100
+ "endCaptures": {
101
+ "0": {
102
+ "name": "punctuation.definition.bracket.round.end.afm"
103
+ }
104
+ },
105
+ "patterns": [
106
+ {
107
+ "include": "#bracketedString"
108
+ }
109
+ ]
110
+ },
111
+ "comment": {
112
+ "contentName": "comment.line.afm",
113
+ "begin": "^Comment(?=\\s|$)",
114
+ "end": "$",
115
+ "beginCaptures": {
116
+ "0": {
117
+ "name": "keyword.operator.start-comment.afm"
118
+ }
119
+ }
120
+ },
121
+ "delimiter": {
122
+ "name": "punctuation.delimiter.metrics.semicolon.afm",
123
+ "match": ";"
124
+ },
125
+ "hex": {
126
+ "name": "constant.numeric.integer.hexadecimal.afm",
127
+ "match": "(<)(?:[A-Fa-f0-9]+|([^>\\s]+))(>)",
128
+ "captures": {
129
+ "1": {
130
+ "name": "punctuation.definition.hex.bracket.angle.begin.afm"
131
+ },
132
+ "2": {
133
+ "name": "invalid.illegal.syntax.bad-characters.afm"
134
+ },
135
+ "3": {
136
+ "name": "punctuation.definition.hex.bracket.angle.end.afm"
137
+ }
138
+ }
139
+ },
140
+ "integer": {
141
+ "patterns": [
142
+ {
143
+ "match": "(?<!\\w)[-+]?(?=0)\\d+",
144
+ "name": "constant.numeric.integer.octal.afm"
145
+ },
146
+ {
147
+ "match": "(?<!\\w)[-+]?\\d+",
148
+ "name": "constant.numeric.integer.decimal.afm"
149
+ }
150
+ ]
151
+ },
152
+ "name": {
153
+ "match": "[^;\\s]+",
154
+ "name": "string.unquoted.parameter.identifier.afm"
155
+ },
156
+ "numbers": {
157
+ "patterns": [
158
+ {
159
+ "include": "#real"
160
+ },
161
+ {
162
+ "include": "#integer"
163
+ }
164
+ ]
165
+ },
166
+ "psLiteral": {
167
+ "name": "support.language.constant.literal.afm",
168
+ "match": "(/)[^\\s\\[\\];]+",
169
+ "captures": {
170
+ "1": {
171
+ "name": "punctuation.definition.literal.slash.afm"
172
+ }
173
+ }
174
+ },
175
+ "real": {
176
+ "name": "constant.numeric.float.afm",
177
+ "match": "(?<!\\w)[-+]?\\d*\\.\\d+"
178
+ },
179
+ "globalInfo": {
180
+ "patterns": [
181
+ {
182
+ "name": "meta.${1:/downcase}-name.afm",
183
+ "begin": "^(Font|Full|Family)Name(?=\\s|$)",
184
+ "end": "^|$",
185
+ "patterns": [
186
+ {
187
+ "include": "#paramName"
188
+ }
189
+ ],
190
+ "beginCaptures": {
191
+ "0": {
192
+ "name": "keyword.operator.${1:/downcase}-name.afm"
193
+ }
194
+ }
195
+ },
196
+ {
197
+ "name": "meta.writing-directions.afm",
198
+ "begin": "^MetricsSets(?=\\s|$)",
199
+ "end": "^|$",
200
+ "patterns": [
201
+ {
202
+ "include": "#paramInteger"
203
+ }
204
+ ],
205
+ "beginCaptures": {
206
+ "0": {
207
+ "name": "keyword.operator.metrics-sets.afm"
208
+ }
209
+ }
210
+ },
211
+ {
212
+ "name": "meta.is-monospaced-font.afm",
213
+ "begin": "^IsFixedPitch(?=\\s|$)",
214
+ "end": "^|$",
215
+ "patterns": [
216
+ {
217
+ "include": "#paramBoolean"
218
+ }
219
+ ],
220
+ "beginCaptures": {
221
+ "0": {
222
+ "name": "keyword.operator.is-fixed-pitch.afm"
223
+ }
224
+ }
225
+ },
226
+ {
227
+ "name": "meta.notice.afm",
228
+ "begin": "^Notice(?=\\s|$)",
229
+ "end": "^|$",
230
+ "patterns": [
231
+ {
232
+ "include": "#paramString"
233
+ }
234
+ ],
235
+ "beginCaptures": {
236
+ "0": {
237
+ "name": "keyword.operator.notice.afm"
238
+ }
239
+ }
240
+ },
241
+ {
242
+ "name": "meta.revision.afm",
243
+ "begin": "^Version(?=\\s|$)",
244
+ "end": "^|$",
245
+ "patterns": [
246
+ {
247
+ "include": "#paramString"
248
+ }
249
+ ],
250
+ "beginCaptures": {
251
+ "0": {
252
+ "name": "keyword.operator.version.afm"
253
+ }
254
+ }
255
+ },
256
+ {
257
+ "name": "meta.weight.afm",
258
+ "begin": "^Weight(?=\\s|$)",
259
+ "end": "^|$",
260
+ "patterns": [
261
+ {
262
+ "include": "#paramString"
263
+ }
264
+ ],
265
+ "beginCaptures": {
266
+ "0": {
267
+ "name": "keyword.operator.weight.afm"
268
+ }
269
+ }
270
+ },
271
+ {
272
+ "name": "meta.italic-angle.afm",
273
+ "begin": "^ItalicAngle(?=\\s|$)",
274
+ "end": "^|$",
275
+ "patterns": [
276
+ {
277
+ "include": "#paramNumber"
278
+ }
279
+ ],
280
+ "beginCaptures": {
281
+ "0": {
282
+ "name": "keyword.operator.italic-angle.afm"
283
+ }
284
+ }
285
+ },
286
+ {
287
+ "name": "meta.bounding-box.afm",
288
+ "begin": "^FontBBox(?=\\s|$)",
289
+ "end": "^|$",
290
+ "patterns": [
291
+ {
292
+ "include": "#paramNumbers"
293
+ }
294
+ ],
295
+ "beginCaptures": {
296
+ "0": {
297
+ "name": "keyword.operator.font-bbox.afm"
298
+ }
299
+ }
300
+ },
301
+ {
302
+ "name": "meta.encoding-scheme.afm",
303
+ "begin": "^EncodingScheme(?=\\s|$)",
304
+ "end": "^|$",
305
+ "patterns": [
306
+ {
307
+ "include": "#paramString"
308
+ }
309
+ ],
310
+ "beginCaptures": {
311
+ "0": {
312
+ "name": "keyword.operator.encoding-scheme.afm"
313
+ }
314
+ }
315
+ },
316
+ {
317
+ "name": "meta.underline-property.${1:/downcase}.afm",
318
+ "begin": "^Underline(Position|Thickness)(?=\\s|$)",
319
+ "end": "^|$",
320
+ "patterns": [
321
+ {
322
+ "include": "#paramNumber"
323
+ }
324
+ ],
325
+ "beginCaptures": {
326
+ "0": {
327
+ "name": "keyword.operator.underline-${1:/downcase}.afm"
328
+ }
329
+ }
330
+ },
331
+ {
332
+ "name": "meta.metric.${1:/downcase}-height.afm",
333
+ "begin": "^(Cap|X)Height(?=\\s|$)",
334
+ "end": "^|$",
335
+ "patterns": [
336
+ {
337
+ "include": "#paramNumber"
338
+ }
339
+ ],
340
+ "beginCaptures": {
341
+ "0": {
342
+ "name": "keyword.operator.${1:/downcase}-height.afm"
343
+ }
344
+ }
345
+ },
346
+ {
347
+ "name": "meta.metric.${1:/downcase}.afm",
348
+ "begin": "^(Descender|Ascender)(?=\\s|$)",
349
+ "end": "^|$",
350
+ "patterns": [
351
+ {
352
+ "include": "#paramNumber"
353
+ }
354
+ ],
355
+ "beginCaptures": {
356
+ "0": {
357
+ "name": "keyword.operator.${1:/downcase}.afm"
358
+ }
359
+ }
360
+ },
361
+ {
362
+ "name": "meta.metric.${1:/downcase}.afm",
363
+ "begin": "^(CharacterSet|AxisType|AxisLabel)(?=\\s|$)",
364
+ "end": "^|$",
365
+ "patterns": [
366
+ {
367
+ "include": "#paramString"
368
+ }
369
+ ],
370
+ "beginCaptures": {
371
+ "0": {
372
+ "name": "keyword.operator.metadata.afm"
373
+ }
374
+ }
375
+ },
376
+ {
377
+ "name": "meta.metadata.${1:/downcase}.afm",
378
+ "begin": "^(Characters|EscChar|MappingScheme)(?=\\s|$)",
379
+ "end": "^|$",
380
+ "patterns": [
381
+ {
382
+ "include": "#paramNumber"
383
+ }
384
+ ],
385
+ "beginCaptures": {
386
+ "1": {
387
+ "name": "keyword.operator.metadata.afm"
388
+ }
389
+ }
390
+ },
391
+ {
392
+ "name": "meta.metadata.${1:/downcase}.afm",
393
+ "begin": "^(IsBaseFont|IsFixedV)(?=\\s|$)",
394
+ "end": "^|$",
395
+ "patterns": [
396
+ {
397
+ "include": "#paramBoolean"
398
+ }
399
+ ],
400
+ "beginCaptures": {
401
+ "1": {
402
+ "name": "keyword.operator.metadata.afm"
403
+ }
404
+ }
405
+ },
406
+ {
407
+ "name": "meta.metadata.${1:/downcase}.afm",
408
+ "begin": "^(CharWidth|VVector|Masters|Axes|Std[HV]W)(?=\\s|$)",
409
+ "end": "^|$",
410
+ "patterns": [
411
+ {
412
+ "include": "#paramNumbers"
413
+ }
414
+ ],
415
+ "beginCaptures": {
416
+ "1": {
417
+ "name": "keyword.operator.metadata.afm"
418
+ }
419
+ }
420
+ },
421
+ {
422
+ "name": "meta.metadata.${1:/downcase}.afm",
423
+ "begin": "^(WeightVector|BlendDesign(Positions|Map)|BlendAxisTypes)(?=\\s|$)",
424
+ "end": "^|$",
425
+ "patterns": [
426
+ {
427
+ "include": "#array"
428
+ },
429
+ {
430
+ "include": "#numbers"
431
+ },
432
+ {
433
+ "include": "#psLiteral"
434
+ }
435
+ ],
436
+ "beginCaptures": {
437
+ "1": {
438
+ "name": "keyword.operator.metadata.afm"
439
+ }
440
+ }
441
+ }
442
+ ]
443
+ },
444
+ "charMetrics": {
445
+ "name": "meta.metrics-list.afm",
446
+ "begin": "^(StartCharMetrics)(?:\\s+(\\d+))?\\s*$",
447
+ "end": "^EndCharMetrics\\s*$",
448
+ "beginCaptures": {
449
+ "1": {
450
+ "name": "keyword.control.start.metrics.afm"
451
+ },
452
+ "2": {
453
+ "name": "constant.numeric.decimal.integer.afm"
454
+ }
455
+ },
456
+ "endCaptures": {
457
+ "0": {
458
+ "name": "keyword.control.end.metrics.afm"
459
+ }
460
+ },
461
+ "patterns": [
462
+ {
463
+ "include": "#comment"
464
+ },
465
+ {
466
+ "name": "meta.unencoded.character.metrics.afm",
467
+ "begin": "^\\s*(?=C\\s+-\\d)",
468
+ "end": "$",
469
+ "patterns": [
470
+ {
471
+ "include": "#charMetricInnards"
472
+ }
473
+ ]
474
+ },
475
+ {
476
+ "name": "meta.character.metrics.afm",
477
+ "begin": "^\\s*",
478
+ "end": "$",
479
+ "patterns": [
480
+ {
481
+ "include": "#charMetricInnards"
482
+ }
483
+ ]
484
+ }
485
+ ]
486
+ },
487
+ "charMetricInnards": {
488
+ "patterns": [
489
+ {
490
+ "include": "#delimiter"
491
+ },
492
+ {
493
+ "name": "meta.character.code.hexadecimal.afm",
494
+ "match": "\\G(CH)\\s+(<[^>\\s]++>)\\s*(?=;|$)",
495
+ "captures": {
496
+ "1": {
497
+ "name": "variable.assignment.codepoint.afm"
498
+ },
499
+ "2": {
500
+ "patterns": [
501
+ {
502
+ "include": "#hex"
503
+ }
504
+ ]
505
+ }
506
+ }
507
+ },
508
+ {
509
+ "name": "meta.character.code.decimal.afm",
510
+ "match": "\\G(C)\\s+([-+]?\\d+)\\s*(?=;|$)",
511
+ "captures": {
512
+ "1": {
513
+ "name": "variable.assignment.codepoint.afm"
514
+ },
515
+ "2": {
516
+ "patterns": [
517
+ {
518
+ "include": "#integer"
519
+ }
520
+ ]
521
+ }
522
+ }
523
+ },
524
+ {
525
+ "name": "meta.metric.character.width.afm",
526
+ "begin": "(?<=\\s|^|;)(W[01]?|VV)(?=\\s|;|$)",
527
+ "end": "(?=;|$)",
528
+ "beginCaptures": {
529
+ "1": {
530
+ "name": "variable.assignment.character-width.afm"
531
+ }
532
+ },
533
+ "patterns": [
534
+ {
535
+ "include": "#numbers"
536
+ }
537
+ ]
538
+ },
539
+ {
540
+ "name": "meta.metric.character.width.afm",
541
+ "match": "(?<=\\s|^|;)(W[01]?(X|Y))(?:\\s+([-+]?[\\d.]+)\\s*)(?=\\s|$|;)",
542
+ "captures": {
543
+ "1": {
544
+ "name": "variable.assignment.${2:/downcase}-width.afm"
545
+ },
546
+ "3": {
547
+ "patterns": [
548
+ {
549
+ "include": "#integer"
550
+ }
551
+ ]
552
+ }
553
+ }
554
+ },
555
+ {
556
+ "name": "meta.metric.character.name.afm",
557
+ "match": "(?<=\\s|^|;)(N)(?:\\s+([^;\\s]+))?\\s*(?=\\s|$|;)",
558
+ "captures": {
559
+ "1": {
560
+ "name": "variable.assignment.character.name.afm"
561
+ },
562
+ "2": {
563
+ "name": "string.unquoted.parameter.identifier.afm"
564
+ }
565
+ }
566
+ },
567
+ {
568
+ "name": "meta.metric.bounding-box.afm",
569
+ "begin": "(?<=\\s|^|;)(B)(?=\\s|$|;)",
570
+ "end": "(?=$|;)",
571
+ "beginCaptures": {
572
+ "1": {
573
+ "name": "variable.assignment.metric.afm"
574
+ }
575
+ },
576
+ "patterns": [
577
+ {
578
+ "include": "#numbers"
579
+ }
580
+ ]
581
+ },
582
+ {
583
+ "name": "meta.metric.next-ligature.afm",
584
+ "begin": "(?<=\\s|^|;)(L)(?=\\s|$|;)",
585
+ "end": "(?=$|;)",
586
+ "beginCaptures": {
587
+ "1": {
588
+ "name": "variable.assignment.metric.afm"
589
+ }
590
+ },
591
+ "patterns": [
592
+ {
593
+ "include": "#name"
594
+ }
595
+ ]
596
+ }
597
+ ]
598
+ },
599
+ "compositesData": {
600
+ "name": "meta.composites.afm",
601
+ "begin": "^(StartComposites)(?:\\s+([-+]?\\d+))?\\s*$",
602
+ "end": "^EndComposites",
603
+ "beginCaptures": {
604
+ "1": {
605
+ "name": "keyword.control.start.metrics.afm"
606
+ },
607
+ "2": {
608
+ "patterns": [
609
+ {
610
+ "include": "#integer"
611
+ }
612
+ ]
613
+ }
614
+ },
615
+ "endCaptures": {
616
+ "0": {
617
+ "name": "keyword.control.end.metrics.afm"
618
+ }
619
+ },
620
+ "patterns": [
621
+ {
622
+ "include": "#comment"
623
+ },
624
+ {
625
+ "name": "meta.composition.afm",
626
+ "begin": "^CC(?=\\s|$|;)",
627
+ "end": "$",
628
+ "beginCaptures": {
629
+ "0": {
630
+ "name": "keyword.operator.char-comp.afm"
631
+ }
632
+ },
633
+ "patterns": [
634
+ {
635
+ "include": "#delimiter"
636
+ },
637
+ {
638
+ "match": "\\G\\s+([^;\\s]+)(?:\\s+([-+]?\\d+))?",
639
+ "captures": {
640
+ "1": {
641
+ "name": "string.unquoted.parameter.identifier.afm"
642
+ },
643
+ "2": {
644
+ "patterns": [
645
+ {
646
+ "include": "#integer"
647
+ }
648
+ ]
649
+ }
650
+ }
651
+ },
652
+ {
653
+ "match": "(?<=;|\\s)(PCC)\\s+([^;\\s]+)",
654
+ "captures": {
655
+ "1": {
656
+ "name": "keyword.operator.char-comp.afm"
657
+ },
658
+ "2": {
659
+ "name": "string.unquoted.parameter.identifier.afm"
660
+ }
661
+ }
662
+ },
663
+ {
664
+ "include": "#numbers"
665
+ }
666
+ ]
667
+ }
668
+ ]
669
+ },
670
+ "kerningData": {
671
+ "name": "meta.kerning-data.afm",
672
+ "begin": "^(StartKernData)\\s*$",
673
+ "end": "^EndKernData\\s*$",
674
+ "beginCaptures": {
675
+ "1": {
676
+ "name": "keyword.control.start.metrics.afm"
677
+ }
678
+ },
679
+ "endCaptures": {
680
+ "0": {
681
+ "name": "keyword.control.end.metrics.afm"
682
+ }
683
+ },
684
+ "patterns": [
685
+ {
686
+ "begin": "^(StartTrackKern)(?:\\s+([-+]?\\d+))?\\s*$",
687
+ "end": "^EndTrackKern\\s*$",
688
+ "beginCaptures": {
689
+ "1": {
690
+ "name": "keyword.control.start.metrics.afm"
691
+ },
692
+ "2": {
693
+ "patterns": [
694
+ {
695
+ "include": "#integer"
696
+ }
697
+ ]
698
+ }
699
+ },
700
+ "endCaptures": {
701
+ "0": {
702
+ "name": "keyword.control.end.metrics.afm"
703
+ }
704
+ },
705
+ "patterns": [
706
+ {
707
+ "include": "#comment"
708
+ },
709
+ {
710
+ "include": "#kerningTrack"
711
+ }
712
+ ]
713
+ },
714
+ {
715
+ "begin": "^(StartKernPairs[0-1]?)(?:\\s+([-+]?\\d+))?\\s*$",
716
+ "end": "^EndKernPairs\\s*$",
717
+ "beginCaptures": {
718
+ "1": {
719
+ "name": "keyword.control.start.metrics.afm"
720
+ },
721
+ "2": {
722
+ "patterns": [
723
+ {
724
+ "include": "#integer"
725
+ }
726
+ ]
727
+ }
728
+ },
729
+ "endCaptures": {
730
+ "0": {
731
+ "name": "keyword.control.end.metrics.afm"
732
+ }
733
+ },
734
+ "patterns": [
735
+ {
736
+ "include": "#comment"
737
+ },
738
+ {
739
+ "include": "#kerningPairs"
740
+ }
741
+ ]
742
+ }
743
+ ]
744
+ },
745
+ "kerningPairs": {
746
+ "patterns": [
747
+ {
748
+ "name": "meta.kerning-pair.by-codepoint.afm",
749
+ "begin": "^KPH(?=\\s|$)",
750
+ "end": "^|$",
751
+ "beginCaptures": {
752
+ "0": {
753
+ "name": "keyword.operator.kern-pair.afm"
754
+ }
755
+ },
756
+ "patterns": [
757
+ {
758
+ "match": "\\G((?:\\s+<[^>\\s]*>)+)\\s+",
759
+ "captures": {
760
+ "1": {
761
+ "patterns": [
762
+ {
763
+ "include": "#hex"
764
+ }
765
+ ]
766
+ }
767
+ }
768
+ },
769
+ {
770
+ "include": "#numbers"
771
+ }
772
+ ]
773
+ },
774
+ {
775
+ "name": "meta.kerning-pair.by-name.afm",
776
+ "begin": "^KP[XY]?(?=\\s|$)",
777
+ "end": "^|$",
778
+ "beginCaptures": {
779
+ "0": {
780
+ "name": "keyword.operator.kern-pair.afm"
781
+ }
782
+ },
783
+ "patterns": [
784
+ {
785
+ "match": "\\G((?:\\s+\\S+){1,2})",
786
+ "captures": {
787
+ "1": {
788
+ "patterns": [
789
+ {
790
+ "include": "#name"
791
+ }
792
+ ]
793
+ }
794
+ }
795
+ },
796
+ {
797
+ "include": "#numbers"
798
+ }
799
+ ]
800
+ }
801
+ ]
802
+ },
803
+ "kerningTrack": {
804
+ "begin": "^(TrackKern)(?=\\s|$)",
805
+ "end": "^|$",
806
+ "patterns": [
807
+ {
808
+ "include": "#numbers"
809
+ }
810
+ ],
811
+ "beginCaptures": {
812
+ "1": {
813
+ "name": "keyword.operator.track-kern.afm"
814
+ }
815
+ }
816
+ },
817
+ "amfmSpecific": {
818
+ "name": "meta.${2:/downcase}.afm",
819
+ "begin": "^(Start(Direction|Axis|Master))(?:\\s+([-+]?\\d+))?\\s*$",
820
+ "end": "^End\\2\\s*$",
821
+ "patterns": [
822
+ {
823
+ "include": "#main"
824
+ }
825
+ ],
826
+ "beginCaptures": {
827
+ "1": {
828
+ "name": "keyword.control.start.${2:/downcase}.afm"
829
+ }
830
+ },
831
+ "endCaptures": {
832
+ "0": {
833
+ "name": "keyword.control.end.${2:/downcase}.afm"
834
+ }
835
+ }
836
+ },
837
+ "primaryFonts": {
838
+ "name": "meta.primary-fonts.afm",
839
+ "begin": "^(StartPrimaryFonts)(?:\\s+([-+]?\\d+))?\\s*$",
840
+ "end": "^EndPrimaryFonts\\s*$",
841
+ "beginCaptures": {
842
+ "1": {
843
+ "name": "keyword.control.start.font-list.afm"
844
+ },
845
+ "2": {
846
+ "patterns": [
847
+ {
848
+ "include": "#integer"
849
+ }
850
+ ]
851
+ }
852
+ },
853
+ "endCaptures": {
854
+ "0": {
855
+ "name": "keyword.control.end.font-list.afm"
856
+ }
857
+ },
858
+ "patterns": [
859
+ {
860
+ "include": "#comment"
861
+ },
862
+ {
863
+ "include": "#delimiter"
864
+ },
865
+ {
866
+ "include": "#primaryFontLine"
867
+ }
868
+ ]
869
+ },
870
+ "primaryFontLine": {
871
+ "begin": "^\\s*",
872
+ "end": "$",
873
+ "patterns": [
874
+ {
875
+ "match": "\\G(PC)((?:\\s+[-+]?\\d+)+)",
876
+ "captures": {
877
+ "1": {
878
+ "name": "variable.assignment.metadata.afm"
879
+ },
880
+ "2": {
881
+ "patterns": [
882
+ {
883
+ "include": "#integer"
884
+ }
885
+ ]
886
+ }
887
+ }
888
+ },
889
+ {
890
+ "begin": "(?<=\\s|;)(P[LN])\\s+",
891
+ "end": "(?=;|$)",
892
+ "beginCaptures": {
893
+ "1": {
894
+ "name": "variable.assignment.metadata.afm"
895
+ }
896
+ },
897
+ "patterns": [
898
+ {
899
+ "include": "#bracketedString"
900
+ },
901
+ {
902
+ "include": "#delimiter"
903
+ }
904
+ ]
905
+ },
906
+ {
907
+ "include": "#delimiter"
908
+ }
909
+ ]
910
+ },
911
+ "paramBoolean": {
912
+ "patterns": [
913
+ {
914
+ "match": "\\G\\s+(true|false)\\s*$",
915
+ "captures": {
916
+ "1": {
917
+ "patterns": [
918
+ {
919
+ "include": "#boolean"
920
+ }
921
+ ]
922
+ }
923
+ }
924
+ },
925
+ {
926
+ "include": "#paramInvalid"
927
+ }
928
+ ]
929
+ },
930
+ "paramInteger": {
931
+ "patterns": [
932
+ {
933
+ "match": "\\G\\s+([-+]?[0-9]+)\\s*$",
934
+ "captures": {
935
+ "1": {
936
+ "patterns": [
937
+ {
938
+ "include": "#integer"
939
+ }
940
+ ]
941
+ }
942
+ }
943
+ },
944
+ {
945
+ "include": "#paramInvalid"
946
+ }
947
+ ]
948
+ },
949
+ "paramInvalid": {
950
+ "match": "\\G\\s+(\\S+.+)\\s*$",
951
+ "captures": {
952
+ "1": {
953
+ "name": "invalid.illegal.syntax.type.afm"
954
+ }
955
+ }
956
+ },
957
+ "paramName": {
958
+ "match": "\\G\\s+(\\S+.*)\\s*$",
959
+ "captures": {
960
+ "1": {
961
+ "name": "entity.name.identifier.afm"
962
+ }
963
+ }
964
+ },
965
+ "paramNumber": {
966
+ "patterns": [
967
+ {
968
+ "match": "\\G\\s+([-+]?(?:\\d*\\.\\d+|\\d+))\\s*$",
969
+ "captures": {
970
+ "1": {
971
+ "patterns": [
972
+ {
973
+ "include": "#real"
974
+ },
975
+ {
976
+ "include": "#integer"
977
+ }
978
+ ]
979
+ }
980
+ }
981
+ },
982
+ {
983
+ "include": "#paramInvalid"
984
+ }
985
+ ]
986
+ },
987
+ "paramNumbers": {
988
+ "patterns": [
989
+ {
990
+ "include": "#real"
991
+ },
992
+ {
993
+ "include": "#integer"
994
+ },
995
+ {
996
+ "match": "(?![-+0-9.])\\S+",
997
+ "name": "invalid.illegal.syntax.type.afm"
998
+ }
999
+ ]
1000
+ },
1001
+ "paramString": {
1002
+ "name": "variable.assignment.afm",
1003
+ "match": "\\G\\s+(\\S.*)\\s*$",
1004
+ "captures": {
1005
+ "1": {
1006
+ "name": "string.unquoted.afm"
1007
+ }
1008
+ }
1009
+ },
1010
+ "paramVar": {
1011
+ "match": "\\G\\s+(\\S.*)\\s*$",
1012
+ "captures": {
1013
+ "1": {
1014
+ "name": "variable.assignment.afm"
1015
+ }
1016
+ }
1017
+ },
1018
+ "resources": {
1019
+ "patterns": [
1020
+ {
1021
+ "name": "meta.metrics.file-resource.afm",
1022
+ "begin": "^(StartFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$",
1023
+ "end": "^(EndFontMetrics)\\s*$",
1024
+ "beginCaptures": {
1025
+ "1": {
1026
+ "name": "keyword.control.start.file.afm"
1027
+ },
1028
+ "2": {
1029
+ "name": "constant.numeric.float.decimal.version-number.afm"
1030
+ }
1031
+ },
1032
+ "endCaptures": {
1033
+ "1": {
1034
+ "name": "keyword.control.end.file.afm"
1035
+ }
1036
+ },
1037
+ "patterns": [
1038
+ {
1039
+ "include": "#main"
1040
+ }
1041
+ ]
1042
+ },
1043
+ {
1044
+ "name": "meta.composite.metrics.file-resource.afm",
1045
+ "begin": "^(StartCompFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$",
1046
+ "end": "^(EndCompFontMetrics)\\s*$",
1047
+ "beginCaptures": {
1048
+ "1": {
1049
+ "name": "keyword.control.start.file.afm"
1050
+ },
1051
+ "2": {
1052
+ "name": "constant.numeric.float.decimal.version-number.afm"
1053
+ }
1054
+ },
1055
+ "endCaptures": {
1056
+ "1": {
1057
+ "name": "keyword.control.end.file.afm"
1058
+ }
1059
+ },
1060
+ "patterns": [
1061
+ {
1062
+ "include": "#main"
1063
+ }
1064
+ ]
1065
+ },
1066
+ {
1067
+ "name": "meta.master.metrics.file-resource.afm",
1068
+ "begin": "^(StartMasterFontMetrics)\\s+(\\d+(?:\\.\\d+)?)?\\s*$",
1069
+ "end": "^(EndMasterFontMetrics)\\s*$",
1070
+ "beginCaptures": {
1071
+ "1": {
1072
+ "name": "keyword.control.start.file.afm"
1073
+ },
1074
+ "2": {
1075
+ "name": "constant.numeric.float.decimal.version-number.afm"
1076
+ }
1077
+ },
1078
+ "endCaptures": {
1079
+ "1": {
1080
+ "name": "keyword.control.end.file.afm"
1081
+ }
1082
+ },
1083
+ "patterns": [
1084
+ {
1085
+ "include": "#main"
1086
+ }
1087
+ ]
1088
+ }
1089
+ ]
1090
+ },
1091
+ "userDefined": {
1092
+ "match": "^([a-z][A-Za-z0-9]+)(?=\\s)(.*)$",
1093
+ "captures": {
1094
+ "1": {
1095
+ "name": "variable.other.custom.afm"
1096
+ },
1097
+ "2": {
1098
+ "patterns": [
1099
+ {
1100
+ "include": "#bestGuessHighlights"
1101
+ }
1102
+ ]
1103
+ }
1104
+ }
1105
+ },
1106
+ "reserved": {
1107
+ "match": "^([A-Z][A-Za-z0-9]+)(?=\\s)(.*)$",
1108
+ "captures": {
1109
+ "1": {
1110
+ "name": "variable.other.reserved.afm"
1111
+ },
1112
+ "2": {
1113
+ "patterns": [
1114
+ {
1115
+ "include": "#bestGuessHighlights"
1116
+ }
1117
+ ]
1118
+ }
1119
+ }
1120
+ },
1121
+ "bestGuessHighlights": {
1122
+ "patterns": [
1123
+ {
1124
+ "match": "\\G\\s*(true|false)(?=\\s|$)",
1125
+ "captures": {
1126
+ "1": {
1127
+ "patterns": [
1128
+ {
1129
+ "include": "#boolean"
1130
+ }
1131
+ ]
1132
+ }
1133
+ }
1134
+ },
1135
+ {
1136
+ "match": "^(?:\\s+[-+]?[.\\d]+)+\\s*$",
1137
+ "captures": {
1138
+ "0": {
1139
+ "patterns": [
1140
+ {
1141
+ "include": "#numbers"
1142
+ }
1143
+ ]
1144
+ }
1145
+ }
1146
+ },
1147
+ {
1148
+ "match": "^\\s*(\\[.*\\])\\s*$",
1149
+ "captures": {
1150
+ "0": {
1151
+ "patterns": [
1152
+ {
1153
+ "include": "#array"
1154
+ },
1155
+ {
1156
+ "include": "#main"
1157
+ }
1158
+ ]
1159
+ }
1160
+ }
1161
+ },
1162
+ {
1163
+ "match": "^\\s*<[A-Fa-f0-9]+>\\s*$",
1164
+ "captures": {
1165
+ "0": {
1166
+ "patterns": [
1167
+ {
1168
+ "include": "#hex"
1169
+ }
1170
+ ]
1171
+ }
1172
+ }
1173
+ },
1174
+ {
1175
+ "match": "(?:(?:^|\\s+)/[^\\s\\[\\];]+)+\\s*$",
1176
+ "captures": {
1177
+ "0": {
1178
+ "patterns": [
1179
+ {
1180
+ "include": "#psLiteral"
1181
+ }
1182
+ ]
1183
+ }
1184
+ }
1185
+ },
1186
+ {
1187
+ "match": "^.+$",
1188
+ "name": "variable.assignment.afm",
1189
+ "captures": {
1190
+ "0": {
1191
+ "name": "string.unquoted.afm"
1192
+ }
1193
+ }
1194
+ }
1195
+ ]
1196
+ }
1197
+ }
1198
+ }