github-linguist 7.6.1 → 7.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +11 -11
  4. data/grammars/etc.json +212 -3
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hint.haskell.json +11 -11
  7. data/grammars/hint.message.haskell.json +11 -11
  8. data/grammars/hint.type.haskell.json +11 -11
  9. data/grammars/injections.etc.json +601 -1
  10. data/grammars/source.abap.json +7 -7
  11. data/grammars/source.abnf.json +23 -1
  12. data/grammars/source.ahk.json +3 -3
  13. data/grammars/source.angelscript.json +1 -1
  14. data/grammars/source.ballerina.json +54 -18
  15. data/grammars/source.csound.json +1 -1
  16. data/grammars/source.css.json +2 -2
  17. data/grammars/source.css.scss.json +164 -15
  18. data/grammars/source.curlrc.json +869 -65
  19. data/grammars/source.dart.json +1 -1
  20. data/grammars/source.dircolors.json +39 -0
  21. data/grammars/source.direct-x.json +135 -0
  22. data/grammars/source.ebnf.json +67 -39
  23. data/grammars/source.elixir.json +43 -0
  24. data/grammars/source.gfm.json +1 -1
  25. data/grammars/source.gitconfig.json +1 -1
  26. data/grammars/source.hack.json +196 -80
  27. data/grammars/source.haskell.json +11 -11
  28. data/grammars/source.hosts.json +40 -0
  29. data/grammars/source.hsig.json +11 -11
  30. data/grammars/source.igor.json +2 -2
  31. data/grammars/source.ini.npmrc.json +311 -0
  32. data/grammars/source.inno.json +133 -0
  33. data/grammars/source.inputrc.json +500 -0
  34. data/grammars/source.js.json +4 -4
  35. data/grammars/source.julia.json +45 -3
  36. data/grammars/source.kotlin.json +1 -1
  37. data/grammars/source.lex.json +4 -4
  38. data/grammars/source.m4.json +141 -99
  39. data/grammars/source.man-conf.json +46 -34
  40. data/grammars/source.matlab.json +225 -35
  41. data/grammars/source.mcfunction-snapshot.json +21388 -561
  42. data/grammars/source.mcfunction.json +55 -5
  43. data/grammars/source.mlir.json +37 -317
  44. data/grammars/source.mrc.json +858 -0
  45. data/grammars/source.opts.json +12 -2
  46. data/grammars/source.p4.json +21 -5
  47. data/grammars/source.prisma.json +428 -0
  48. data/grammars/source.python.json +2 -0
  49. data/grammars/source.reason.json +28 -16
  50. data/grammars/source.rego.json +124 -0
  51. data/grammars/source.sass.json +158 -3
  52. data/grammars/source.scala.json +26 -15
  53. data/grammars/source.ssh-config.json +1 -14
  54. data/grammars/source.swift.json +162 -2
  55. data/grammars/source.ts.json +74 -25
  56. data/grammars/source.tsx.json +75 -26
  57. data/grammars/source.v.json +58 -16
  58. data/grammars/source.vim-snippet.json +645 -0
  59. data/grammars/source.viml.json +5 -5
  60. data/grammars/source.wgetrc.json +1640 -0
  61. data/grammars/source.zig.json +169 -304
  62. data/grammars/text.html.php.blade.json +1 -1
  63. data/grammars/text.html.riot.json +788 -0
  64. data/grammars/text.muse.json +1471 -0
  65. data/grammars/text.tex.latex.haskell.json +11 -11
  66. data/grammars/text.vim-help.json +383 -0
  67. data/grammars/version +1 -1
  68. data/lib/linguist/VERSION +1 -1
  69. data/lib/linguist/blob_helper.rb +4 -2
  70. data/lib/linguist/generated.rb +39 -12
  71. data/lib/linguist/heuristics.yml +16 -1
  72. data/lib/linguist/languages.json +1 -1
  73. data/lib/linguist/languages.yml +183 -14
  74. data/lib/linguist/linguist.bundle +0 -0
  75. data/lib/linguist/samples.json +6910 -536
  76. data/lib/linguist/vendor.yml +6 -0
  77. metadata +18 -5
  78. data/grammars/source.jlex.json +0 -322
@@ -2979,6 +2979,7 @@
2979
2979
  }
2980
2980
  },
2981
2981
  "member-access": {
2982
+ "name": "meta.member.access.python",
2982
2983
  "begin": "(\\.)\\s*(?!\\.)",
2983
2984
  "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?\u003c=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?\u003c=\\s))(?=[^\\\\\\w\\s]) |\n $\n",
2984
2985
  "patterns": [
@@ -3018,6 +3019,7 @@
3018
3019
  ]
3019
3020
  },
3020
3021
  "member-access-class": {
3022
+ "name": "meta.member.access.python",
3021
3023
  "begin": "(\\.)\\s*(?!\\.)",
3022
3024
  "end": "(?\u003c=\\S)(?=\\W)|$",
3023
3025
  "patterns": [
@@ -138,7 +138,6 @@
138
138
  }
139
139
  },
140
140
  "comment": {
141
- "name": "comment",
142
141
  "patterns": [
143
142
  {
144
143
  "include": "#comment-line"
@@ -155,31 +154,44 @@
155
154
  "name": "comment.block",
156
155
  "begin": "/\\*",
157
156
  "end": "\\*/",
158
- "patterns": [
159
- {
160
- "include": "#comment"
157
+ "beginCaptures": {
158
+ "0": {
159
+ "name": "punctuation.definition.comment.begin"
161
160
  }
162
- ]
161
+ },
162
+ "endCaptures": {
163
+ "0": {
164
+ "name": "punctuation.definition.comment.end"
165
+ }
166
+ }
163
167
  },
164
168
  "comment-block-doc": {
165
169
  "name": "comment.block.documentation",
166
170
  "begin": "/\\*\\*(?!/)",
167
171
  "end": "\\*/",
168
- "patterns": [
169
- {
170
- "include": "#comment"
172
+ "beginCaptures": {
173
+ "0": {
174
+ "name": "punctuation.definition.comment.begin"
171
175
  }
172
- ]
176
+ },
177
+ "endCaptures": {
178
+ "0": {
179
+ "name": "punctuation.definition.comment.end"
180
+ }
181
+ }
173
182
  },
174
183
  "comment-line": {
175
- "name": "comment.line",
176
- "begin": "(^[ \\t]+)?((//))",
177
- "end": "(?=^)",
178
- "patterns": [
179
- {
180
- "include": "#comment"
184
+ "name": "comment.line.double-slash",
185
+ "begin": "(^[ \\t]+)?(//)",
186
+ "end": "$",
187
+ "beginCaptures": {
188
+ "1": {
189
+ "name": "punctuation.whitespace.leading"
190
+ },
191
+ "2": {
192
+ "name": "punctuation.definition.comment"
181
193
  }
182
- ]
194
+ }
183
195
  },
184
196
  "condition-lhs": {
185
197
  "begin": "(?\u003c![#\\-:!?.@*/\u0026%^+\u003c=\u003e|~$\\\\])([\\?])(?![#\\-:!?.@*/\u0026%^+\u003c=\u003e|~$\\\\])",
@@ -0,0 +1,124 @@
1
+ {
2
+ "name": "Rego",
3
+ "scopeName": "source.rego",
4
+ "patterns": [
5
+ {
6
+ "include": "#comment"
7
+ },
8
+ {
9
+ "include": "#keyword"
10
+ },
11
+ {
12
+ "include": "#operator"
13
+ },
14
+ {
15
+ "include": "#head"
16
+ },
17
+ {
18
+ "include": "#term"
19
+ }
20
+ ],
21
+ "repository": {
22
+ "call": {
23
+ "name": "meta.function-call.rego",
24
+ "match": "([a-zA-Z_][a-zA-Z0-9_]*)\\(",
25
+ "captures": {
26
+ "1": {
27
+ "name": "support.function.any-method.rego"
28
+ }
29
+ }
30
+ },
31
+ "comment": {
32
+ "name": "comment.line.number-sign.rego",
33
+ "match": "(#).*$\\n?",
34
+ "captures": {
35
+ "1": {
36
+ "name": "punctuation.definition.comment.rego"
37
+ }
38
+ }
39
+ },
40
+ "constant": {
41
+ "name": "constant.language.rego",
42
+ "match": "\\b(?:true|false|null)\\b"
43
+ },
44
+ "head": {
45
+ "name": "meta.function.rego",
46
+ "begin": "^([[:alpha:]_][[:alnum:]_]*)",
47
+ "end": "(=|{|\\n)",
48
+ "patterns": [
49
+ {
50
+ "include": "#term"
51
+ }
52
+ ],
53
+ "beginCaptures": {
54
+ "1": {
55
+ "name": "entity.name.function.declaration"
56
+ }
57
+ }
58
+ },
59
+ "keyword": {
60
+ "name": "keyword.other.rego",
61
+ "match": "(^|\\s+)(?:(default|not|package|import|as|with|else|some))\\s+"
62
+ },
63
+ "number": {
64
+ "name": "constant.numeric.rego",
65
+ "match": "(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"
66
+ },
67
+ "operator": {
68
+ "patterns": [
69
+ {
70
+ "name": "keyword.operator.comparison.rego",
71
+ "match": "\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026|:\\="
72
+ }
73
+ ]
74
+ },
75
+ "string": {
76
+ "name": "string.quoted.double.rego",
77
+ "begin": "\"",
78
+ "end": "\"",
79
+ "patterns": [
80
+ {
81
+ "name": "constant.character.escape.rego",
82
+ "match": "(?x: # turn on extended mode\n\t \\\\ # a literal backslash\n\t (?: # ...followed by...\n\t [\"\\\\/bfnrt] # one of these characters\n\t | # ...or...\n\t u # a u\n\t [0-9a-fA-F]{4} # and four hex digits\n\t )\n\t )"
83
+ },
84
+ {
85
+ "name": "invalid.illegal.unrecognized-string-escape.rego",
86
+ "match": "\\\\."
87
+ }
88
+ ],
89
+ "beginCaptures": {
90
+ "0": {
91
+ "name": "punctuation.definition.string.begin.rego"
92
+ }
93
+ },
94
+ "endCaptures": {
95
+ "0": {
96
+ "name": "punctuation.definition.string.end.rego"
97
+ }
98
+ }
99
+ },
100
+ "term": {
101
+ "patterns": [
102
+ {
103
+ "include": "#constant"
104
+ },
105
+ {
106
+ "include": "#string"
107
+ },
108
+ {
109
+ "include": "#number"
110
+ },
111
+ {
112
+ "include": "#call"
113
+ },
114
+ {
115
+ "include": "#variable"
116
+ }
117
+ ]
118
+ },
119
+ "variable": {
120
+ "name": "meta.identifier.rego",
121
+ "match": "\\b[[:alpha:]_][[:alnum:]_]*\\b"
122
+ }
123
+ }
124
+ }
@@ -258,7 +258,7 @@
258
258
  },
259
259
  {
260
260
  "name": "meta.function.include.sass",
261
- "begin": "^\\s*(\\+(?!\\s+)|(?:(@)include(?=\\s+)))\\s*([a-zA-Z0-9_-]+)",
261
+ "begin": "^\\s*(\\+(?!\\s+)|(?:(@)include(?=\\s+)))\\s*(?:([\\w-]+)(\\.))?([a-zA-Z0-9_-]+)",
262
262
  "end": "(;)?$",
263
263
  "patterns": [
264
264
  {
@@ -273,6 +273,12 @@
273
273
  "name": "punctuation.definition.entity.sass"
274
274
  },
275
275
  "3": {
276
+ "name": "variable.sass"
277
+ },
278
+ "4": {
279
+ "name": "punctuation.access.module.sass"
280
+ },
281
+ "5": {
276
282
  "name": "variable.other.sass"
277
283
  }
278
284
  },
@@ -354,6 +360,112 @@
354
360
  }
355
361
  }
356
362
  },
363
+ {
364
+ "name": "meta.at-rule.use.sass",
365
+ "begin": "^\\s*((@)use\\b)\\s*",
366
+ "end": "(;)?$",
367
+ "patterns": [
368
+ {
369
+ "name": "keyword.control.operator",
370
+ "match": "\\b(as|with)\\b"
371
+ },
372
+ {
373
+ "name": "variable.sass",
374
+ "match": "\\b[\\w-]+\\b"
375
+ },
376
+ {
377
+ "name": "variable.language.expanded-namespace.sass",
378
+ "match": "\\*"
379
+ },
380
+ {
381
+ "include": "#string-single"
382
+ },
383
+ {
384
+ "include": "#string-double"
385
+ },
386
+ {
387
+ "include": "#comments"
388
+ },
389
+ {
390
+ "begin": "\\(",
391
+ "end": "\\)",
392
+ "patterns": [
393
+ {
394
+ "include": "#property-value"
395
+ }
396
+ ],
397
+ "beginCaptures": {
398
+ "0": {
399
+ "name": "punctuation.definition.module.begin.bracket.round.sass"
400
+ }
401
+ },
402
+ "endCaptures": {
403
+ "0": {
404
+ "name": "punctuation.definition.module.end.bracket.round.sass"
405
+ }
406
+ }
407
+ }
408
+ ],
409
+ "beginCaptures": {
410
+ "1": {
411
+ "name": "keyword.control.at-rule.use.sass"
412
+ },
413
+ "2": {
414
+ "name": "punctuation.definition.keyword.sass"
415
+ }
416
+ },
417
+ "endCaptures": {
418
+ "1": {
419
+ "name": "invalid.illegal.punctuation.sass"
420
+ }
421
+ }
422
+ },
423
+ {
424
+ "name": "meta.at-rule.forward.sass",
425
+ "begin": "\\s*((@)forward\\b)\\s*",
426
+ "end": "\\s*(?=;)",
427
+ "patterns": [
428
+ {
429
+ "name": "keyword.control.operator",
430
+ "match": "\\b(as|hide|show)\\b"
431
+ },
432
+ {
433
+ "match": "\\b([\\w-]+)(\\*)",
434
+ "captures": {
435
+ "1": {
436
+ "name": "entity.other.attribute-name.module.sass"
437
+ },
438
+ "2": {
439
+ "name": "punctuation.definition.wildcard.sass"
440
+ }
441
+ }
442
+ },
443
+ {
444
+ "name": "entity.name.function.sass",
445
+ "match": "\\b[\\w-]+\\b"
446
+ },
447
+ {
448
+ "include": "#variable-usage"
449
+ },
450
+ {
451
+ "include": "#string-single"
452
+ },
453
+ {
454
+ "include": "#string-double"
455
+ },
456
+ {
457
+ "include": "#comments"
458
+ }
459
+ ],
460
+ "captures": {
461
+ "1": {
462
+ "name": "keyword.control.at-rule.forward.sass"
463
+ },
464
+ "2": {
465
+ "name": "punctuation.definition.keyword.sass"
466
+ }
467
+ }
468
+ },
357
469
  {
358
470
  "name": "meta.variable-usage.sass",
359
471
  "begin": "^\\s*(\\+)([a-zA-Z0-9_-]+)",
@@ -826,6 +938,43 @@
826
938
  {
827
939
  "include": "#string-single"
828
940
  },
941
+ {
942
+ "begin": "([\\w-]+)(\\.)([\\w-]+)(\\()",
943
+ "end": "(\\))",
944
+ "patterns": [
945
+ {
946
+ "include": "#string-double"
947
+ },
948
+ {
949
+ "include": "#string-single"
950
+ },
951
+ {
952
+ "include": "#variable-usage"
953
+ },
954
+ {
955
+ "include": "source.css#numeric-values"
956
+ }
957
+ ],
958
+ "beginCaptures": {
959
+ "1": {
960
+ "name": "variable.sass"
961
+ },
962
+ "2": {
963
+ "name": "punctuation.access.module.sass"
964
+ },
965
+ "3": {
966
+ "name": "support.function.misc.sass"
967
+ },
968
+ "4": {
969
+ "name": "punctuation.section.function.sass"
970
+ }
971
+ },
972
+ "endCaptures": {
973
+ "1": {
974
+ "name": "punctuation.section.function.sass"
975
+ }
976
+ }
977
+ },
829
978
  {
830
979
  "begin": "(rgb|url|attr|counter|counters|local|format)\\s*(\\()",
831
980
  "end": "(\\))",
@@ -920,12 +1069,18 @@
920
1069
  },
921
1070
  "variable-usage": {
922
1071
  "name": "meta.variable-usage.sass",
923
- "match": "(!|\\$)([a-zA-Z0-9_-]+)",
1072
+ "match": "(?:([\\w-]+)(\\.)(?=\\$))?(!|\\$)([a-zA-Z0-9_-]+)",
924
1073
  "captures": {
925
1074
  "1": {
926
- "name": "punctuation.definition.entity.css"
1075
+ "name": "variable.sass"
927
1076
  },
928
1077
  "2": {
1078
+ "name": "punctuation.access.module.sass"
1079
+ },
1080
+ "3": {
1081
+ "name": "punctuation.definition.entity.css"
1082
+ },
1083
+ "4": {
929
1084
  "name": "variable.other.sass"
930
1085
  }
931
1086
  }
@@ -101,7 +101,7 @@
101
101
  "char-literal": {
102
102
  "name": "string.quoted.other constant.character.literal.scala",
103
103
  "begin": "'",
104
- "end": "'",
104
+ "end": "'|$",
105
105
  "patterns": [
106
106
  {
107
107
  "name": "constant.character.escape.scala",
@@ -230,7 +230,7 @@
230
230
  "patterns": [
231
231
  {
232
232
  "name": "constant.language.scala",
233
- "match": "\\b(false|null|true|Nil|None)\\b"
233
+ "match": "\\b(false|null|true)\\b"
234
234
  },
235
235
  {
236
236
  "name": "constant.numeric.scala",
@@ -238,15 +238,7 @@
238
238
  },
239
239
  {
240
240
  "name": "variable.language.scala",
241
- "match": "\\b(this|super|self)\\b"
242
- },
243
- {
244
- "name": "storage.type.primitive.scala",
245
- "match": "\\b(Unit|Boolean|Byte|Char|Short|Int|Float|Long|Double)\\b"
246
- },
247
- {
248
- "name": "storage.type.scala",
249
- "match": "\\b(String|Symbol)\\b"
241
+ "match": "\\b(this|super)\\b"
250
242
  }
251
243
  ]
252
244
  },
@@ -300,7 +292,7 @@
300
292
  }
301
293
  },
302
294
  {
303
- "match": "\\b(val)\\s+([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)\\b",
295
+ "match": "\\b(val)\\s+([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?(\\s*,\\s*[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)*)\\b",
304
296
  "captures": {
305
297
  "1": {
306
298
  "name": "keyword.declaration.stable.scala"
@@ -380,6 +372,10 @@
380
372
  {
381
373
  "include": "#comments"
382
374
  },
375
+ {
376
+ "name": "keyword.given.import.scala",
377
+ "match": "(given)(?=\\s)"
378
+ },
383
379
  {
384
380
  "name": "entity.name.import.scala",
385
381
  "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"
@@ -407,6 +403,17 @@
407
403
  }
408
404
  }
409
405
  },
406
+ {
407
+ "match": "(given)(\\s+(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*[,}])",
408
+ "captures": {
409
+ "1": {
410
+ "name": "keyword.given.import.scala"
411
+ },
412
+ "2": {
413
+ "name": "entity.name.type.import.scala"
414
+ }
415
+ }
416
+ },
410
417
  {
411
418
  "name": "entity.name.import.scala",
412
419
  "match": "([^\\s.,}]+)"
@@ -433,7 +440,7 @@
433
440
  "inheritance": {
434
441
  "patterns": [
435
442
  {
436
- "match": "(extends|with|derives|as)\\s+([^\\s\\{\\(\\[\\]]+)",
443
+ "match": "(extends|with|derives)\\s+([^\\s\\{\\(\\[\\]]+)",
437
444
  "captures": {
438
445
  "1": {
439
446
  "name": "keyword.declaration.scala"
@@ -468,7 +475,11 @@
468
475
  },
469
476
  {
470
477
  "name": "keyword.control.flow.scala",
471
- "match": "\\b(else|if|do|while|for|yield|match|case)\\b"
478
+ "match": "\\b(else|if|then|do|while|for|yield|match|case)\\b"
479
+ },
480
+ {
481
+ "name": "keyword.control.flow.end.scala",
482
+ "match": "^\\s*end(?=\\s+(if|while|for|match|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"
472
483
  },
473
484
  {
474
485
  "name": "keyword.control.exception.scala",
@@ -545,7 +556,7 @@
545
556
  },
546
557
  "scala-quoted": {
547
558
  "name": "constant.other.quoted.scala",
548
- "match": "'\\{'|'\\('|'\\['|'\\{|'\\(|'\\["
559
+ "match": "('\\{|'\\[)(?!')"
549
560
  },
550
561
  "scala-symbol": {
551
562
  "name": "constant.other.symbol.scala",