github-linguist 7.5.1 → 7.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +122 -24
  3. data/grammars/etc.json +7 -0
  4. data/grammars/hint.haskell.json +122 -24
  5. data/grammars/hint.message.haskell.json +122 -24
  6. data/grammars/hint.type.haskell.json +122 -24
  7. data/grammars/injections.etc.json +48 -10
  8. data/grammars/source.abnf.json +180 -353
  9. data/grammars/source.ballerina.json +205 -50
  10. data/grammars/source.bnf.json +191 -0
  11. data/grammars/source.cabal.json +1 -1
  12. data/grammars/source.ditroff.desc.json +1 -1
  13. data/grammars/source.ebnf.json +157 -147
  14. data/grammars/source.editorconfig.json +30 -5
  15. data/grammars/source.emacs.lisp.json +4 -4
  16. data/grammars/source.gremlin.json +200 -0
  17. data/grammars/source.haproxy-config.json +65 -13
  18. data/grammars/source.haskell.json +122 -24
  19. data/grammars/source.hql.json +1 -1
  20. data/grammars/source.hsig.json +122 -24
  21. data/grammars/source.hx.json +5 -5
  22. data/grammars/source.hxml.json +4 -4
  23. data/grammars/source.ideal.json +4 -4
  24. data/grammars/source.igor.json +325 -0
  25. data/grammars/source.jlex.json +322 -0
  26. data/grammars/source.julia.json +132 -1
  27. data/grammars/source.lean.json +103 -54
  28. data/grammars/source.lex.json +232 -0
  29. data/grammars/source.lex.regexp.json +269 -0
  30. data/grammars/source.logos.json +1 -1
  31. data/grammars/source.meson.json +1 -1
  32. data/grammars/source.mlir.json +389 -0
  33. data/grammars/source.nanorc.json +3 -0
  34. data/grammars/source.pic.json +19 -19
  35. data/grammars/source.plist.json +336 -0
  36. data/grammars/source.powershell.json +2 -2
  37. data/grammars/source.purescript.json +2 -2
  38. data/grammars/source.rascal.json +1 -0
  39. data/grammars/source.regexp.extended.json +544 -6
  40. data/grammars/source.regexp.json +408 -31
  41. data/grammars/source.renpy.json +3 -1
  42. data/grammars/source.scala.json +199 -97
  43. data/grammars/source.smpl.json +314 -0
  44. data/grammars/source.solidity.json +1 -1
  45. data/grammars/source.sourcepawn.json +654 -0
  46. data/grammars/source.sqf.json +5 -1
  47. data/grammars/source.swift.json +56 -11
  48. data/grammars/source.sy.json +800 -0
  49. data/grammars/source.ts.json +64 -47
  50. data/grammars/source.tsx.json +65 -48
  51. data/grammars/source.v.json +1184 -0
  52. data/grammars/source.viml.json +31 -31
  53. data/grammars/source.wollok.json +1 -1
  54. data/grammars/source.xojo.json +2 -2
  55. data/grammars/source.yacc.json +626 -0
  56. data/grammars/source.yara.json +1 -1
  57. data/grammars/source.yasnippet.json +15 -25
  58. data/grammars/source.zeek.json +4 -4
  59. data/grammars/source.zig.json +594 -195
  60. data/grammars/text.eml.basic.json +19 -6
  61. data/grammars/text.html.php.blade.json +3 -3
  62. data/grammars/text.plain.json +18 -0
  63. data/grammars/text.roff.json +926 -437
  64. data/grammars/text.runoff.json +3 -3
  65. data/grammars/text.tex.latex.haskell.json +122 -24
  66. data/grammars/text.texinfo.json +1525 -0
  67. data/grammars/text.xml.plist.json +664 -0
  68. data/grammars/text.xml.svg.json +556 -0
  69. data/grammars/version +1 -1
  70. data/lib/linguist.rb +3 -1
  71. data/lib/linguist/VERSION +1 -1
  72. data/lib/linguist/generated.rb +62 -17
  73. data/lib/linguist/heuristics.yml +13 -0
  74. data/lib/linguist/language.rb +1 -11
  75. data/lib/linguist/languages.json +1 -1
  76. data/lib/linguist/languages.yml +179 -19
  77. data/lib/linguist/samples.json +2778 -732
  78. data/lib/linguist/strategy/manpage.rb +42 -0
  79. metadata +22 -5
  80. data/grammars/source.bison.json +0 -55
  81. data/grammars/source.sp.json +0 -113
@@ -0,0 +1,556 @@
1
+ {
2
+ "name": "SVG",
3
+ "scopeName": "text.xml.svg",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "attr": {
11
+ "name": "meta.attribute.${0:/downcase}.xml.svg",
12
+ "begin": "[A-Za-z_:][-\\w.:]*",
13
+ "end": "(?=\\s*(?:/?\u003e|[^\\s=]))|(?\u003c=[\"'])",
14
+ "patterns": [
15
+ {
16
+ "include": "#attrValueCSS"
17
+ },
18
+ {
19
+ "include": "#attrValuePlain"
20
+ }
21
+ ],
22
+ "beginCaptures": {
23
+ "0": {
24
+ "patterns": [
25
+ {
26
+ "include": "#attrName"
27
+ }
28
+ ]
29
+ }
30
+ }
31
+ },
32
+ "attrName": {
33
+ "patterns": [
34
+ {
35
+ "match": "(?:^|\\G)([-\\w.]+)(:)(?=[-\\w.:])",
36
+ "captures": {
37
+ "1": {
38
+ "name": "entity.other.attribute-name.namespace.xml.svg"
39
+ },
40
+ "2": {
41
+ "name": "punctuation.separator.namespace.xml.svg"
42
+ }
43
+ }
44
+ },
45
+ {
46
+ "name": "entity.other.attribute-name.localname.xml.svg",
47
+ "match": "[A-Za-z_:][-\\w.:]*"
48
+ }
49
+ ]
50
+ },
51
+ "attrValueCSS": {
52
+ "begin": "(?i)(?\u003c=style)\\G\\s*(=)",
53
+ "end": "(?=\\s*(?:[%?/]?\u003e))|([^\\s\"'\u003e]+)|(?\u003c=[\"'])",
54
+ "patterns": [
55
+ {
56
+ "match": "(?:\\G|^)\\s+(?!/?\u003e)"
57
+ },
58
+ {
59
+ "name": "string.quoted.double.xml.svg",
60
+ "begin": "\"",
61
+ "end": "\"",
62
+ "patterns": [
63
+ {
64
+ "name": "source.css.style.xml.svg",
65
+ "match": "[^\"]+",
66
+ "captures": {
67
+ "0": {
68
+ "patterns": [
69
+ {
70
+ "include": "#entity"
71
+ },
72
+ {
73
+ "include": "source.css#rule-list-innards"
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ }
79
+ ],
80
+ "beginCaptures": {
81
+ "0": {
82
+ "name": "punctuation.definition.string.begin.xml.svg"
83
+ }
84
+ },
85
+ "endCaptures": {
86
+ "0": {
87
+ "name": "punctuation.definition.string.end.xml.svg"
88
+ }
89
+ }
90
+ },
91
+ {
92
+ "name": "string.quoted.single.xml.svg",
93
+ "begin": "'",
94
+ "end": "'",
95
+ "patterns": [
96
+ {
97
+ "name": "source.css.style.xml.svg",
98
+ "match": "[^']+",
99
+ "captures": {
100
+ "0": {
101
+ "patterns": [
102
+ {
103
+ "include": "#entity"
104
+ },
105
+ {
106
+ "include": "source.css#rule-list-innards"
107
+ }
108
+ ]
109
+ }
110
+ }
111
+ }
112
+ ],
113
+ "beginCaptures": {
114
+ "0": {
115
+ "name": "punctuation.definition.string.begin.xml.svg"
116
+ }
117
+ },
118
+ "endCaptures": {
119
+ "0": {
120
+ "name": "punctuation.definition.string.end.xml.svg"
121
+ }
122
+ }
123
+ }
124
+ ],
125
+ "beginCaptures": {
126
+ "1": {
127
+ "name": "punctuation.separator.key-value.xml.svg"
128
+ }
129
+ },
130
+ "endCaptures": {
131
+ "1": {
132
+ "name": "string.unquoted.xml.svg",
133
+ "patterns": [
134
+ {
135
+ "include": "source.css#rule-list-innards"
136
+ }
137
+ ]
138
+ }
139
+ }
140
+ },
141
+ "attrValuePlain": {
142
+ "begin": "\\s*(=)",
143
+ "end": "(?=\\s*(?:[%?/]?\u003e))|([^\\s\"'\u003e]+)|(?\u003c=[\"'])",
144
+ "patterns": [
145
+ {
146
+ "match": "(?:\\G|^)\\s+(?!/?\u003e)"
147
+ },
148
+ {
149
+ "name": "string.quoted.double.xml.svg",
150
+ "begin": "\"",
151
+ "end": "\"",
152
+ "patterns": [
153
+ {
154
+ "include": "#entity"
155
+ }
156
+ ],
157
+ "beginCaptures": {
158
+ "0": {
159
+ "name": "punctuation.definition.string.begin.xml.svg"
160
+ }
161
+ },
162
+ "endCaptures": {
163
+ "0": {
164
+ "name": "punctuation.definition.string.end.xml.svg"
165
+ }
166
+ }
167
+ },
168
+ {
169
+ "name": "string.quoted.single.xml.svg",
170
+ "begin": "'",
171
+ "end": "'",
172
+ "patterns": [
173
+ {
174
+ "include": "#entity"
175
+ }
176
+ ],
177
+ "beginCaptures": {
178
+ "0": {
179
+ "name": "punctuation.definition.string.begin.xml.svg"
180
+ }
181
+ },
182
+ "endCaptures": {
183
+ "0": {
184
+ "name": "punctuation.definition.string.end.xml.svg"
185
+ }
186
+ }
187
+ }
188
+ ],
189
+ "beginCaptures": {
190
+ "1": {
191
+ "name": "punctuation.separator.key-value.xml.svg"
192
+ }
193
+ },
194
+ "endCaptures": {
195
+ "1": {
196
+ "name": "string.unquoted.xml.svg"
197
+ }
198
+ }
199
+ },
200
+ "cdata": {
201
+ "name": "string.unquoted.cdata.xml.svg",
202
+ "begin": "\u003c!\\[CDATA\\[",
203
+ "end": "\\]\\]\u003e",
204
+ "beginCaptures": {
205
+ "0": {
206
+ "name": "punctuation.definition.string.begin.xml.svg"
207
+ }
208
+ },
209
+ "endCaptures": {
210
+ "0": {
211
+ "name": "punctuation.definition.string.end.xml.svg"
212
+ }
213
+ }
214
+ },
215
+ "comment": {
216
+ "name": "comment.block.xml.svg",
217
+ "begin": "\u003c!--",
218
+ "end": "--\u003e",
219
+ "patterns": [
220
+ {
221
+ "name": "invalid.illegal.bad-comment.xml.svg",
222
+ "match": "--(?!\u003e)"
223
+ }
224
+ ],
225
+ "beginCaptures": {
226
+ "0": {
227
+ "name": "punctuation.definition.comment.begin.xml.svg"
228
+ }
229
+ },
230
+ "endCaptures": {
231
+ "0": {
232
+ "name": "punctuation.definition.comment.end.xml.svg"
233
+ }
234
+ }
235
+ },
236
+ "entity": {
237
+ "patterns": [
238
+ {
239
+ "include": "text.xml#entity"
240
+ },
241
+ {
242
+ "include": "text.xml#bare-ampersand"
243
+ }
244
+ ]
245
+ },
246
+ "main": {
247
+ "patterns": [
248
+ {
249
+ "include": "#comment"
250
+ },
251
+ {
252
+ "include": "#cdata"
253
+ },
254
+ {
255
+ "include": "text.xml#EntityDecl"
256
+ },
257
+ {
258
+ "include": "text.xml#parameterEntity"
259
+ },
260
+ {
261
+ "include": "#entity"
262
+ },
263
+ {
264
+ "include": "#preprocessor"
265
+ },
266
+ {
267
+ "include": "#scriptTag"
268
+ },
269
+ {
270
+ "include": "#styleTag"
271
+ },
272
+ {
273
+ "include": "#tag"
274
+ },
275
+ {
276
+ "include": "#unmatchedTag"
277
+ }
278
+ ]
279
+ },
280
+ "preprocessor": {
281
+ "name": "meta.tag.preprocessor.xml.svg",
282
+ "begin": "(\u003c\\?)\\s*",
283
+ "end": "\\?\u003e",
284
+ "patterns": [
285
+ {
286
+ "begin": "\\G",
287
+ "end": "([-\\w]+)|(?=\\s*\\?\u003e)",
288
+ "endCaptures": {
289
+ "1": {
290
+ "name": "entity.name.tag.xml.svg"
291
+ }
292
+ }
293
+ },
294
+ {
295
+ "include": "#attr"
296
+ }
297
+ ],
298
+ "beginCaptures": {
299
+ "1": {
300
+ "name": "punctuation.definition.tag.begin.xml.svg"
301
+ }
302
+ },
303
+ "endCaptures": {
304
+ "0": {
305
+ "name": "punctuation.definition.tag.end.xml.svg"
306
+ }
307
+ }
308
+ },
309
+ "scriptTag": {
310
+ "patterns": [
311
+ {
312
+ "include": "#scriptTagPlain"
313
+ },
314
+ {
315
+ "include": "#scriptTagJS"
316
+ }
317
+ ]
318
+ },
319
+ "scriptTagJS": {
320
+ "name": "meta.tag.script.xml.svg",
321
+ "begin": "(?i)(\u003c)(script)(?=$|\\s|/?\u003e)",
322
+ "end": "(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)",
323
+ "patterns": [
324
+ {
325
+ "include": "#tagAttr"
326
+ },
327
+ {
328
+ "contentName": "source.js.embedded.xml.svg",
329
+ "begin": "(?\u003c=\u003e)",
330
+ "end": "(?i)(?=\\s*\u003c/script\\s*\u003e)",
331
+ "patterns": [
332
+ {
333
+ "include": "source.js"
334
+ },
335
+ {
336
+ "include": "#entity"
337
+ }
338
+ ]
339
+ }
340
+ ],
341
+ "beginCaptures": {
342
+ "1": {
343
+ "name": "punctuation.definition.tag.opening.begin.xml.svg"
344
+ },
345
+ "2": {
346
+ "patterns": [
347
+ {
348
+ "include": "#tagName"
349
+ }
350
+ ]
351
+ }
352
+ },
353
+ "endCaptures": {
354
+ "1": {
355
+ "name": "punctuation.definition.tag.closing.begin.xml.svg"
356
+ },
357
+ "2": {
358
+ "patterns": [
359
+ {
360
+ "include": "#tagName"
361
+ }
362
+ ]
363
+ },
364
+ "3": {
365
+ "name": "punctuation.definition.tag.closing.end.xml.svg"
366
+ },
367
+ "4": {
368
+ "name": "punctuation.definition.tag.self-closing.end.xml.svg"
369
+ }
370
+ }
371
+ },
372
+ "scriptTagPlain": {
373
+ "name": "meta.tag.script.xml.svg",
374
+ "begin": "(?x)\n(\u003c)((?i)script)\n(\n\t\\s+[^\u003e]*?\n\t(?\u003c=\\s)(?i:type)\\s*=\\s*\n\t([\"'])?\n\t(?! module\n\t| application/(?:x-)?(?:ecma|java)script\n\t| text/\n\t\t(?: javascript(?:1.[0-5])?\n\t\t| (?:j|ecma|live)script\n\t\t| x-(?:ecma|java)script\n\t\t)\n\t)\n\t(?: (?\u003c=\")(?:[^\"\u003e]+)\"\n\t| (?\u003c=')(?:[^'\u003e]+)'\n\t| [^\\s\"'\u003e]+\n\t)\n\t(?=\\s|/?\u003e)\n)",
375
+ "end": "(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)",
376
+ "patterns": [
377
+ {
378
+ "include": "#tagAttr"
379
+ },
380
+ {
381
+ "include": "#main"
382
+ }
383
+ ],
384
+ "beginCaptures": {
385
+ "1": {
386
+ "name": "punctuation.definition.tag.opening.begin.xml.svg"
387
+ },
388
+ "2": {
389
+ "patterns": [
390
+ {
391
+ "include": "#tagName"
392
+ }
393
+ ]
394
+ },
395
+ "3": {
396
+ "patterns": [
397
+ {
398
+ "include": "#attr"
399
+ }
400
+ ]
401
+ }
402
+ },
403
+ "endCaptures": {
404
+ "1": {
405
+ "name": "punctuation.definition.tag.closing.begin.xml.svg"
406
+ },
407
+ "2": {
408
+ "patterns": [
409
+ {
410
+ "include": "#tagName"
411
+ }
412
+ ]
413
+ },
414
+ "3": {
415
+ "name": "punctuation.definition.tag.closing.end.xml.svg"
416
+ },
417
+ "4": {
418
+ "name": "punctuation.definition.tag.self-closing.end.xml.svg"
419
+ }
420
+ }
421
+ },
422
+ "styleTag": {
423
+ "name": "meta.tag.style.xml.svg",
424
+ "begin": "(?i)(\u003c)(style)(?=$|\\s|/?\u003e)",
425
+ "end": "(?i)(\u003c/)(style)\\s*(\u003e)|(/\u003e)",
426
+ "patterns": [
427
+ {
428
+ "include": "#tagAttr"
429
+ },
430
+ {
431
+ "contentName": "source.css.embedded.xml.svg",
432
+ "begin": "(?\u003c=\u003e)",
433
+ "end": "(?i)(?=\\s*\u003c/style\\s*\u003e)",
434
+ "patterns": [
435
+ {
436
+ "include": "source.css"
437
+ },
438
+ {
439
+ "include": "#entity"
440
+ }
441
+ ]
442
+ }
443
+ ],
444
+ "beginCaptures": {
445
+ "1": {
446
+ "name": "punctuation.definition.tag.opening.begin.xml.svg"
447
+ },
448
+ "2": {
449
+ "patterns": [
450
+ {
451
+ "include": "#tagName"
452
+ }
453
+ ]
454
+ }
455
+ },
456
+ "endCaptures": {
457
+ "1": {
458
+ "name": "punctuation.definition.tag.closing.begin.xml.svg"
459
+ },
460
+ "2": {
461
+ "patterns": [
462
+ {
463
+ "include": "#tagName"
464
+ }
465
+ ]
466
+ },
467
+ "3": {
468
+ "name": "punctuation.definition.tag.closing.end.xml.svg"
469
+ },
470
+ "4": {
471
+ "name": "punctuation.definition.tag.self-closing.end.xml.svg"
472
+ }
473
+ }
474
+ },
475
+ "tag": {
476
+ "name": "meta.tag.${2:/downcase}.xml.svg",
477
+ "begin": "(?i)(\u003c)([A-Za-z_:][-\\w.:]*)(?=$|\\s|/?\u003e)",
478
+ "end": "(?i)(\u003c/)(\\2)\\s*(\u003e)|(/\u003e)",
479
+ "patterns": [
480
+ {
481
+ "include": "#tagAttr"
482
+ },
483
+ {
484
+ "include": "#main"
485
+ }
486
+ ],
487
+ "beginCaptures": {
488
+ "1": {
489
+ "name": "punctuation.definition.tag.opening.begin.xml.svg"
490
+ },
491
+ "2": {
492
+ "patterns": [
493
+ {
494
+ "include": "#tagName"
495
+ }
496
+ ]
497
+ }
498
+ },
499
+ "endCaptures": {
500
+ "1": {
501
+ "name": "punctuation.definition.tag.closing.begin.xml.svg"
502
+ },
503
+ "2": {
504
+ "patterns": [
505
+ {
506
+ "include": "#tagName"
507
+ }
508
+ ]
509
+ },
510
+ "3": {
511
+ "name": "punctuation.definition.tag.closing.end.xml.svg"
512
+ },
513
+ "4": {
514
+ "name": "punctuation.definition.tag.self-closing.end.xml.svg"
515
+ }
516
+ }
517
+ },
518
+ "tagAttr": {
519
+ "begin": "\\G",
520
+ "end": "\u003e|(?=\\s*/\u003e)",
521
+ "patterns": [
522
+ {
523
+ "include": "#attr"
524
+ }
525
+ ],
526
+ "endCaptures": {
527
+ "0": {
528
+ "name": "punctuation.definition.tag.opening.end.xml.svg"
529
+ }
530
+ }
531
+ },
532
+ "tagName": {
533
+ "patterns": [
534
+ {
535
+ "match": "(?:^|\\G)([A-Za-z_][-\\w.]*)(:)(?=[-\\w.:])",
536
+ "captures": {
537
+ "1": {
538
+ "name": "entity.name.tag.namespace.xml.svg"
539
+ },
540
+ "2": {
541
+ "name": "punctuation.separator.namespace.xml.svg"
542
+ }
543
+ }
544
+ },
545
+ {
546
+ "name": "entity.name.tag.localname.xml.svg",
547
+ "match": "[A-Za-z_:][-\\w.:]*"
548
+ }
549
+ ]
550
+ },
551
+ "unmatchedTag": {
552
+ "name": "invalid.illegal.unmatched-tag.xml.svg",
553
+ "match": "(\u003c/)([A-Za-z_:][-\\w.:]*)\\s*(\u003e)"
554
+ }
555
+ }
556
+ }