github-linguist 6.4.1 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/bin/{linguist → github-linguist} +0 -0
  3. data/grammars/source.abap.json +35 -6
  4. data/grammars/source.apl.json +4 -8
  5. data/grammars/source.ballerina.json +82 -3
  6. data/grammars/source.bdf.json +419 -0
  7. data/grammars/source.c++.json +25 -3
  8. data/grammars/source.c.json +6 -3
  9. data/grammars/source.chapel.json +3 -3
  10. data/grammars/source.coq.json +2 -2
  11. data/grammars/source.cs.json +83 -73
  12. data/grammars/source.csound.json +1 -1
  13. data/grammars/source.dart.json +1 -1
  14. data/grammars/source.elixir.json +112 -137
  15. data/grammars/source.emacs.lisp.json +179 -4
  16. data/grammars/source.figctrl.json +252 -0
  17. data/grammars/source.figfont.json +121 -0
  18. data/grammars/source.fontdir.json +99 -0
  19. data/grammars/source.fstar.json +439 -0
  20. data/grammars/source.hx.json +27 -9
  21. data/grammars/source.j.json +260 -0
  22. data/grammars/source.julia.json +24 -12
  23. data/grammars/source.lisp.json +3 -3
  24. data/grammars/source.mupad.json +1 -1
  25. data/grammars/source.pony.json +3 -3
  26. data/grammars/source.powershell.json +2 -2
  27. data/grammars/source.protobuf.json +87 -5
  28. data/grammars/source.purescript.json +5 -2
  29. data/grammars/source.python.json +17 -12
  30. data/grammars/source.rascal.json +0 -1
  31. data/grammars/source.reg.json +159 -0
  32. data/grammars/source.slice.json +2755 -0
  33. data/grammars/source.solidity.json +2 -2
  34. data/grammars/source.ts.json +225 -132
  35. data/grammars/source.tsx.json +235 -142
  36. data/grammars/source.viml.json +4 -4
  37. data/grammars/source.xlfd.json +462 -0
  38. data/grammars/source.yasnippet.json +387 -0
  39. data/grammars/text.elixir.json +17 -5
  40. data/grammars/text.html.basic.json +622 -2264
  41. data/grammars/text.html.elixir.json +10 -1
  42. data/grammars/text.html.php.blade.json +7 -3
  43. data/grammars/version +1 -0
  44. data/lib/linguist.rb +2 -0
  45. data/lib/linguist/VERSION +1 -1
  46. data/lib/linguist/generated.rb +14 -1
  47. data/lib/linguist/heuristics.rb +77 -468
  48. data/lib/linguist/heuristics.yml +404 -0
  49. data/lib/linguist/languages.json +1 -1
  50. data/lib/linguist/languages.yml +86 -6
  51. data/lib/linguist/samples.json +2624 -483
  52. data/lib/linguist/strategy/xml.rb +30 -0
  53. metadata +20 -7
@@ -0,0 +1,439 @@
1
+ {
2
+ "name": "F*",
3
+ "scopeName": "source.fstar",
4
+ "patterns": [
5
+ {
6
+ "include": "#comments"
7
+ },
8
+ {
9
+ "include": "#modules"
10
+ },
11
+ {
12
+ "include": "#options"
13
+ },
14
+ {
15
+ "include": "#expr"
16
+ }
17
+ ],
18
+ "repository": {
19
+ "commentblock": {
20
+ "patterns": [
21
+ {
22
+ "name": "comment.block.fstar",
23
+ "begin": "\\(\\*",
24
+ "end": "\\*\\)",
25
+ "patterns": [
26
+ {
27
+ "include": "#commentblock"
28
+ }
29
+ ],
30
+ "beginCaptures": {
31
+ "0": {
32
+ "name": "punctuation.definition.comment.begin.fstar"
33
+ }
34
+ },
35
+ "endCaptures": {
36
+ "0": {
37
+ "name": "punctuation.definition.comment.end.fstar"
38
+ }
39
+ }
40
+ }
41
+ ]
42
+ },
43
+ "comments": {
44
+ "patterns": [
45
+ {
46
+ "name": "comment.line.fstar",
47
+ "match": "//.*"
48
+ },
49
+ {
50
+ "include": "#commentblock"
51
+ }
52
+ ]
53
+ },
54
+ "expr": {
55
+ "patterns": [
56
+ {
57
+ "include": "#comments"
58
+ },
59
+ {
60
+ "name": "variable.other.generic-type.fstar",
61
+ "match": "'[a-zA-Z0-9_]+\\b"
62
+ },
63
+ {
64
+ "include": "#strings"
65
+ },
66
+ {
67
+ "name": "support.class.base.fstar",
68
+ "match": "\\b(int|nat|pos|bool|unit|string|Type|Type0|eqtype)\\b"
69
+ },
70
+ {
71
+ "name": "support.class.base.fstar",
72
+ "match": "(/\\\\|\\\\/|\u003c:|\u003c@|[(][|]|[|][)]|u#|~\u003e|-\u003e|\u003c--|\u003c-|\u003c==\u003e|==\u003e|[?][.]|[.]\\[|[.]\\(|[{][:]pattern|::|:=|;;|[!][{]|\\[[|]|[|]\u003e|[|]\\]|[~+^\u0026?$|#,.:;=\\[\\](){}-])"
73
+ },
74
+ {
75
+ "name": "constant.language.monad.fstar",
76
+ "match": "\\b(Pure|PURE|Tot|STATE|ST|St|Stack|StackInline|HST|ALL|All|EXN|Exn|Ex|DIV|Div|GHOST|Ghost|GTot|Lemma)\\b"
77
+ },
78
+ {
79
+ "name": "constant.language.fstar",
80
+ "match": "\\b(_|[(]\\s*[)]|\\[\\s*\\])\\b"
81
+ },
82
+ {
83
+ "name": "keyword.other.fstar",
84
+ "match": "\\b(let|in|type|kind|val|rec|and|if|then|else|assume|admit|assert|assert_norm|squash|failwith|SMTPat|SMTPatOr|hasEq|fun|function|forall|exists|exception|by|new_effect|reify|try|synth|with|when)\\b"
85
+ },
86
+ {
87
+ "name": "storage.modifier.fstar",
88
+ "match": "\\b(abstract|attributes|noeq|unopteq|inline|inline_for_extraction|irreducible|logic|mutable|new|noextract|private|reifiable|reflectable|total|unfold|unfoldable)\\b"
89
+ },
90
+ {
91
+ "name": "constant.language.boolean.fstar",
92
+ "match": "\\b([tT]rue|[fF]alse)\\b"
93
+ },
94
+ {
95
+ "name": "constant.numeric.hex.js",
96
+ "match": "\\b0[xX][0-9a-fA-F]+[uU]?[zyslL]?\\b"
97
+ },
98
+ {
99
+ "name": "constant.numeric.decimal.js",
100
+ "match": "\\b[0-9]+[uU]?[zyslL]?\\b"
101
+ },
102
+ {
103
+ "match": "(?x)\n(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)[L]?[fF]?",
104
+ "captures": {
105
+ "0": {
106
+ "name": "constant.numeric.decimal.fstar"
107
+ },
108
+ "1": {
109
+ "name": "meta.delimiter.decimal.period.fstar"
110
+ },
111
+ "2": {
112
+ "name": "meta.delimiter.decimal.period.fstar"
113
+ },
114
+ "3": {
115
+ "name": "meta.delimiter.decimal.period.fstar"
116
+ },
117
+ "4": {
118
+ "name": "meta.delimiter.decimal.period.fstar"
119
+ },
120
+ "5": {
121
+ "name": "meta.delimiter.decimal.period.fstar"
122
+ },
123
+ "6": {
124
+ "name": "meta.delimiter.decimal.period.fstar"
125
+ }
126
+ }
127
+ },
128
+ {
129
+ "begin": "([(])\\s*(requires|ensures|decreases)?",
130
+ "end": "([)])",
131
+ "patterns": [
132
+ {
133
+ "include": "#expr"
134
+ }
135
+ ],
136
+ "beginCaptures": {
137
+ "1": {
138
+ "name": "punctuation.definition.scope.begin.bracket.round.fstar"
139
+ },
140
+ "2": {
141
+ "name": "keyword.other.fstar"
142
+ }
143
+ },
144
+ "endCaptures": {
145
+ "1": {
146
+ "name": "punctuation.definition.scope.end.bracket.round.fstar"
147
+ }
148
+ }
149
+ },
150
+ {
151
+ "begin": "([(])",
152
+ "end": "([)])",
153
+ "patterns": [
154
+ {
155
+ "include": "#expr"
156
+ }
157
+ ],
158
+ "beginCaptures": {
159
+ "1": {
160
+ "name": "punctuation.definition.clause.begin.bracket.round.fstar"
161
+ }
162
+ },
163
+ "endCaptures": {
164
+ "1": {
165
+ "name": "punctuation.definition.clause.end.bracket.round.fstar"
166
+ }
167
+ }
168
+ },
169
+ {
170
+ "begin": "([%]\\[)",
171
+ "end": "(\\])",
172
+ "patterns": [
173
+ {
174
+ "include": "#expr"
175
+ }
176
+ ],
177
+ "beginCaptures": {
178
+ "1": {
179
+ "name": "constant.language.termorder.begin.fstar"
180
+ }
181
+ },
182
+ "endCaptures": {
183
+ "1": {
184
+ "name": "constant.language.termorder.end.fstar"
185
+ }
186
+ }
187
+ },
188
+ {
189
+ "begin": "(\\[[@])",
190
+ "end": "(\\])",
191
+ "patterns": [
192
+ {
193
+ "include": "#expr"
194
+ }
195
+ ],
196
+ "beginCaptures": {
197
+ "1": {
198
+ "name": "storage.modifier.attributes.begin.fstar"
199
+ }
200
+ },
201
+ "endCaptures": {
202
+ "1": {
203
+ "name": "storage.modifier.attributes.end.fstar"
204
+ }
205
+ }
206
+ },
207
+ {
208
+ "begin": "\\b(match)\\b",
209
+ "end": "\\b(with)\\b",
210
+ "patterns": [
211
+ {
212
+ "include": "#expr"
213
+ }
214
+ ],
215
+ "beginCaptures": {
216
+ "1": {
217
+ "name": "keyword.control.match.fstar"
218
+ }
219
+ },
220
+ "endCaptures": {
221
+ "1": {
222
+ "name": "keyword.control.with.fstar"
223
+ }
224
+ }
225
+ },
226
+ {
227
+ "begin": "\\b(begin)\\b",
228
+ "end": "\\b(end)\\b",
229
+ "patterns": [
230
+ {
231
+ "include": "#expr"
232
+ }
233
+ ],
234
+ "beginCaptures": {
235
+ "1": {
236
+ "name": "keyword.control.begin.fstar"
237
+ }
238
+ },
239
+ "endCaptures": {
240
+ "1": {
241
+ "name": "keyword.control.end.fstar"
242
+ }
243
+ }
244
+ },
245
+ {
246
+ "match": "\\b([\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)\\b(?!\\s*[.])",
247
+ "captures": {
248
+ "1": {
249
+ "name": "support.function.constructor.fstar"
250
+ }
251
+ }
252
+ },
253
+ {
254
+ "match": "\\b((?:[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*[.])+)",
255
+ "captures": {
256
+ "1": {
257
+ "name": "variable.other.module.fstar"
258
+ }
259
+ }
260
+ },
261
+ {
262
+ "match": "\\b([\\p{Ll}_][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)",
263
+ "captures": {
264
+ "1": {
265
+ "name": "entity.name.function.fstar"
266
+ }
267
+ }
268
+ }
269
+ ]
270
+ },
271
+ "modules": {
272
+ "patterns": [
273
+ {
274
+ "begin": "\\b(module)\\s+([\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)\\s*(=)",
275
+ "end": "\\b((?\u003cname\u003e[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)(?:[.]\\g\u003cname\u003e)*)\\b",
276
+ "beginCaptures": {
277
+ "1": {
278
+ "name": "keyword.control.module.fstar"
279
+ },
280
+ "2": {
281
+ "name": "variable.other.module-alias.fstar"
282
+ },
283
+ "3": {
284
+ "name": "keyword.operator.assignment.fstar"
285
+ }
286
+ },
287
+ "endCaptures": {
288
+ "1": {
289
+ "name": "variable.other.module.fstar"
290
+ }
291
+ }
292
+ },
293
+ {
294
+ "begin": "\\b(module|open|include)\\b",
295
+ "end": "\\b((?\u003cname\u003e[\\p{Lu}\\p{Lt}][\\p{Lu}\\p{Lt}\\p{Ll}\\p{Lo}\\p{Lm}\\d'_]*)(?:[.]\\g\u003cname\u003e)*)\\b",
296
+ "beginCaptures": {
297
+ "1": {
298
+ "name": "keyword.control.module.fstar"
299
+ }
300
+ },
301
+ "endCaptures": {
302
+ "1": {
303
+ "name": "variable.other.module.fstar"
304
+ }
305
+ }
306
+ }
307
+ ]
308
+ },
309
+ "op_names": {
310
+ "patterns": [
311
+ {
312
+ "name": "entity.name.tag.fstar",
313
+ "match": "\\bop(?:_(?:Multiply|Star|Slash|Percent|Plus|Substraction|Equals|Less|Greater|Bang|Dollar|Amp|Dot|Hat|Colon|Pipe|Question))+\\b"
314
+ }
315
+ ]
316
+ },
317
+ "options": {
318
+ "patterns": [
319
+ {
320
+ "match": "(#(?:re)?set-options)\\s*([\"])((?:[^\"]|\\\\\")*)([\"])",
321
+ "captures": {
322
+ "1": {
323
+ "name": "keyword.control.setoption.fstar"
324
+ },
325
+ "2": {
326
+ "name": "punctuation.definition.options.begin.fstar"
327
+ },
328
+ "3": {
329
+ "name": "string.quoted.double.fstar"
330
+ },
331
+ "4": {
332
+ "name": "punctuation.definition.options.end.fstar"
333
+ }
334
+ }
335
+ }
336
+ ]
337
+ },
338
+ "string_escapes": {
339
+ "patterns": [
340
+ {
341
+ "name": "invalid.illegal.unicode-escape.fstar",
342
+ "match": "\\\\u(?![A-Fa-f0-9]{4}|{[A-Fa-f0-9]+})[^'\"]*"
343
+ },
344
+ {
345
+ "name": "constant.character.escape.js",
346
+ "match": "\\\\u(?:[A-Fa-f0-9]{4}|({)([A-Fa-f0-9]+)(}))",
347
+ "captures": {
348
+ "1": {
349
+ "name": "punctuation.definition.unicode-escape.begin.bracket.curly.fstar"
350
+ },
351
+ "2": {
352
+ "patterns": [
353
+ {
354
+ "name": "invalid.illegal.unicode-escape.fstar",
355
+ "match": "[A-Fa-f\\d]{7,}|(?!10)[A-Fa-f\\d]{6}"
356
+ }
357
+ ]
358
+ },
359
+ "3": {
360
+ "name": "punctuation.definition.unicode-escape.end.bracket.curly.fstar"
361
+ }
362
+ }
363
+ },
364
+ {
365
+ "name": "constant.character.escape.fstar",
366
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"
367
+ }
368
+ ]
369
+ },
370
+ "strings": {
371
+ "patterns": [
372
+ {
373
+ "name": "string.quoted.double.fstar",
374
+ "begin": "\"",
375
+ "end": "\"",
376
+ "patterns": [
377
+ {
378
+ "include": "#string_escapes"
379
+ }
380
+ ],
381
+ "beginCaptures": {
382
+ "0": {
383
+ "name": "punctuation.definition.string.begin.fstar"
384
+ }
385
+ },
386
+ "endCaptures": {
387
+ "0": {
388
+ "name": "punctuation.definition.string.end.fstar"
389
+ }
390
+ }
391
+ },
392
+ {
393
+ "name": "string.quoted.single.fstar",
394
+ "begin": "'",
395
+ "end": "'",
396
+ "patterns": [
397
+ {
398
+ "include": "#string_escapes"
399
+ },
400
+ {
401
+ "name": "invalid.illegal.string.js",
402
+ "match": ".{2,}"
403
+ }
404
+ ],
405
+ "beginCaptures": {
406
+ "0": {
407
+ "name": "punctuation.definition.char.begin.fstar"
408
+ }
409
+ },
410
+ "endCaptures": {
411
+ "0": {
412
+ "name": "punctuation.definition.char.end.fstar"
413
+ }
414
+ }
415
+ },
416
+ {
417
+ "name": "string.quoted.template.fstar",
418
+ "begin": "`",
419
+ "end": "`",
420
+ "patterns": [
421
+ {
422
+ "include": "#op_names"
423
+ }
424
+ ],
425
+ "beginCaptures": {
426
+ "0": {
427
+ "name": "punctuation.definition.operator.begin.fstar"
428
+ }
429
+ },
430
+ "endCaptures": {
431
+ "0": {
432
+ "name": "punctuation.definition.operator.end.fstar"
433
+ }
434
+ }
435
+ }
436
+ ]
437
+ }
438
+ }
439
+ }
@@ -121,6 +121,10 @@
121
121
  {
122
122
  "include": "#using"
123
123
  },
124
+ {
125
+ "name": "storage.modifier.hx",
126
+ "match": "\\b(final)\\b(?=\\s+(class|interface|extern|private))"
127
+ },
124
128
  {
125
129
  "include": "#abstract"
126
130
  },
@@ -662,9 +666,13 @@
662
666
  }
663
667
  },
664
668
  "for-loop": {
665
- "begin": "\\b(for)\\b\\s*(\\()\\s*\\b([_A-Za-z]\\w*)\\b\\s+(in)",
669
+ "begin": "\\b(for)\\b\\s*(\\()",
666
670
  "end": "(\\))",
667
671
  "patterns": [
672
+ {
673
+ "name": "keyword.other.in.hx",
674
+ "match": "\\b(in)\\b"
675
+ },
668
676
  {
669
677
  "include": "#block"
670
678
  },
@@ -678,12 +686,6 @@
678
686
  },
679
687
  "2": {
680
688
  "name": "meta.brace.round.hx"
681
- },
682
- "3": {
683
- "name": "variable.other.hx"
684
- },
685
- "4": {
686
- "name": "keyword.other.in.hx"
687
689
  }
688
690
  },
689
691
  "endCaptures": {
@@ -1028,7 +1030,10 @@
1028
1030
  "include": "#global"
1029
1031
  },
1030
1032
  {
1031
- "match": "\\b(var)\\b\\s*([_a-zA-Z]\\w*)\\b",
1033
+ "include": "#metadata"
1034
+ },
1035
+ {
1036
+ "match": "\\b(var|final)\\b\\s*([_a-zA-Z]\\w*)\\b",
1032
1037
  "captures": {
1033
1038
  "1": {
1034
1039
  "name": "storage.type.variable.hx"
@@ -1064,6 +1069,12 @@
1064
1069
  {
1065
1070
  "include": "#punctuation-comma"
1066
1071
  },
1072
+ {
1073
+ "include": "#keywords"
1074
+ },
1075
+ {
1076
+ "include": "#method-call"
1077
+ },
1067
1078
  {
1068
1079
  "include": "#identifiers"
1069
1080
  }
@@ -1136,7 +1147,7 @@
1136
1147
  }
1137
1148
  },
1138
1149
  {
1139
- "match": "((\\$)([a-zA-Z.]*))",
1150
+ "match": "((\\$)([a-zA-Z]*))",
1140
1151
  "captures": {
1141
1152
  "2": {
1142
1153
  "name": "punctuation.definition.reification.hx"
@@ -1443,6 +1454,10 @@
1443
1454
  "name": "keyword.operator.intiterator.hx",
1444
1455
  "match": "\\.\\.\\."
1445
1456
  },
1457
+ {
1458
+ "name": "keyword.operator.arrow.hx",
1459
+ "match": "=\u003e"
1460
+ },
1446
1461
  {
1447
1462
  "begin": "\\?",
1448
1463
  "end": ":",
@@ -2293,6 +2308,9 @@
2293
2308
  "begin": "\\(",
2294
2309
  "end": "\\)",
2295
2310
  "patterns": [
2311
+ {
2312
+ "include": "#global"
2313
+ },
2296
2314
  {
2297
2315
  "include": "#keywords-accessor"
2298
2316
  },