github-linguist 5.0.6 → 5.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/source.bsl.json +196 -162
  3. data/grammars/source.ceylon.json +43 -21
  4. data/grammars/source.coffee.json +46 -21
  5. data/grammars/source.cs.json +2 -2
  6. data/grammars/source.csound-score.json +41 -18
  7. data/grammars/source.csound.json +63 -7
  8. data/grammars/source.css.json +2 -2
  9. data/grammars/source.css.less.json +22 -91
  10. data/grammars/source.ditroff.json +114 -116
  11. data/grammars/source.gfm.clean.json +28 -0
  12. data/grammars/source.gfm.json +1 -0
  13. data/grammars/source.jison.json +678 -0
  14. data/grammars/source.jisonlex-injection.json +11 -0
  15. data/grammars/source.jisonlex.json +432 -0
  16. data/grammars/source.js.json +12 -67
  17. data/grammars/source.jsdoc.json +485 -0
  18. data/grammars/source.p4.json +15 -0
  19. data/grammars/source.perl6fe.json +37 -1
  20. data/grammars/source.puppet.json +1 -1
  21. data/grammars/source.python.json +6 -3
  22. data/grammars/source.quoting.perl6fe.json +101 -0
  23. data/grammars/source.rpm-spec.json +7 -3
  24. data/grammars/source.scad.json +152 -0
  25. data/grammars/source.shaderlab.json +42 -15
  26. data/grammars/source.terraform.json +18 -0
  27. data/grammars/source.yaml.json +57 -32
  28. data/grammars/text.html.php.blade.json +1 -1
  29. data/grammars/text.marko.json +1522 -0
  30. data/grammars/text.roff.json +9 -6
  31. data/lib/linguist.rb +2 -2
  32. data/lib/linguist/documentation.yml +4 -3
  33. data/lib/linguist/heuristics.rb +2 -0
  34. data/lib/linguist/languages.json +1 -1
  35. data/lib/linguist/languages.yml +33 -1
  36. data/lib/linguist/samples.json +423 -48
  37. data/lib/linguist/version.rb +1 -1
  38. metadata +13 -7
  39. data/grammars/module.ceylon.json +0 -54
@@ -0,0 +1,485 @@
1
+ {
2
+ "scopeName": "source.jsdoc",
3
+ "name": "JSDoc",
4
+ "patterns": [
5
+ {
6
+ "captures": {
7
+ "1": {
8
+ "name": "storage.type.class.jsdoc"
9
+ },
10
+ "2": {
11
+ "name": "punctuation.definition.block.tag.jsdoc"
12
+ },
13
+ "3": {
14
+ "name": "constant.language.access-type.jsdoc"
15
+ }
16
+ },
17
+ "match": "(?x)\n((@)access)\n\\s+\n(private|protected|public)\n\\b"
18
+ },
19
+ {
20
+ "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",
21
+ "captures": {
22
+ "1": {
23
+ "name": "storage.type.class.jsdoc"
24
+ },
25
+ "2": {
26
+ "name": "punctuation.definition.block.tag.jsdoc"
27
+ },
28
+ "3": {
29
+ "name": "entity.name.type.instance.jsdoc"
30
+ },
31
+ "4": {
32
+ "name": "punctuation.definition.bracket.angle.begin.jsdoc"
33
+ },
34
+ "5": {
35
+ "name": "constant.other.email.link.underline.jsdoc"
36
+ },
37
+ "6": {
38
+ "name": "punctuation.definition.bracket.angle.end.jsdoc"
39
+ }
40
+ }
41
+ },
42
+ {
43
+ "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>",
44
+ "captures": {
45
+ "1": {
46
+ "name": "storage.type.class.jsdoc"
47
+ },
48
+ "2": {
49
+ "name": "punctuation.definition.block.tag.jsdoc"
50
+ },
51
+ "3": {
52
+ "name": "entity.name.type.instance.jsdoc"
53
+ },
54
+ "4": {
55
+ "name": "keyword.operator.control.jsdoc"
56
+ },
57
+ "5": {
58
+ "name": "entity.name.type.instance.jsdoc"
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "name": "meta.example.jsdoc",
64
+ "begin": "((@)example)\\s+",
65
+ "end": "(?=@|\\*/)",
66
+ "beginCaptures": {
67
+ "1": {
68
+ "name": "storage.type.class.jsdoc"
69
+ },
70
+ "2": {
71
+ "name": "punctuation.definition.block.tag.jsdoc"
72
+ }
73
+ },
74
+ "patterns": [
75
+ {
76
+ "match": "^\\s\\*\\s+"
77
+ },
78
+ {
79
+ "begin": "\\G(<)caption(>)",
80
+ "beginCaptures": {
81
+ "0": {
82
+ "name": "entity.name.tag.inline.jsdoc"
83
+ },
84
+ "1": {
85
+ "name": "punctuation.definition.bracket.angle.begin.jsdoc"
86
+ },
87
+ "2": {
88
+ "name": "punctuation.definition.bracket.angle.end.jsdoc"
89
+ }
90
+ },
91
+ "contentName": "constant.other.description.jsdoc",
92
+ "end": "(</)caption(>)|(?=\\*/)",
93
+ "endCaptures": {
94
+ "0": {
95
+ "name": "entity.name.tag.inline.jsdoc"
96
+ },
97
+ "1": {
98
+ "name": "punctuation.definition.bracket.angle.begin.jsdoc"
99
+ },
100
+ "2": {
101
+ "name": "punctuation.definition.bracket.angle.end.jsdoc"
102
+ }
103
+ }
104
+ },
105
+ {
106
+ "match": "[^\\s@*](?:[^*]|\\*[^/])*",
107
+ "captures": {
108
+ "0": {
109
+ "name": "source.embedded.js",
110
+ "patterns": [
111
+ {
112
+ "include": "source.js"
113
+ }
114
+ ]
115
+ }
116
+ }
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ "captures": {
122
+ "1": {
123
+ "name": "storage.type.class.jsdoc"
124
+ },
125
+ "2": {
126
+ "name": "punctuation.definition.block.tag.jsdoc"
127
+ },
128
+ "3": {
129
+ "name": "constant.language.symbol-type.jsdoc"
130
+ }
131
+ },
132
+ "match": "(?x)\n((@)kind)\n\\s+\n(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\n\\b"
133
+ },
134
+ {
135
+ "captures": {
136
+ "1": {
137
+ "name": "storage.type.class.jsdoc"
138
+ },
139
+ "2": {
140
+ "name": "punctuation.definition.block.tag.jsdoc"
141
+ },
142
+ "3": {
143
+ "name": "variable.other.link.underline.jsdoc"
144
+ },
145
+ "4": {
146
+ "name": "entity.name.type.instance.jsdoc"
147
+ }
148
+ },
149
+ "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!https?://)\n (?:[^@\\s*/]|\\*[^/])+\n )\n)"
150
+ },
151
+ {
152
+ "captures": {
153
+ "1": {
154
+ "name": "storage.type.class.jsdoc"
155
+ },
156
+ "2": {
157
+ "name": "punctuation.definition.block.tag.jsdoc"
158
+ },
159
+ "3": {
160
+ "name": "variable.other.jsdoc",
161
+ "patterns": [
162
+ {
163
+ "match": ",",
164
+ "name": "punctuation.delimiter.object.comma.jsdoc"
165
+ }
166
+ ]
167
+ }
168
+ },
169
+ "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)"
170
+ },
171
+ {
172
+ "captures": {
173
+ "1": {
174
+ "name": "storage.type.class.jsdoc"
175
+ },
176
+ "2": {
177
+ "name": "punctuation.definition.block.tag.jsdoc"
178
+ },
179
+ "3": {
180
+ "name": "variable.other.jsdoc"
181
+ }
182
+ },
183
+ "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)"
184
+ },
185
+ {
186
+ "begin": "((@)typedef)\\s+(?={)",
187
+ "beginCaptures": {
188
+ "1": {
189
+ "name": "storage.type.class.jsdoc"
190
+ },
191
+ "2": {
192
+ "name": "punctuation.definition.block.tag.jsdoc"
193
+ }
194
+ },
195
+ "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
196
+ "patterns": [
197
+ {
198
+ "include": "#type"
199
+ },
200
+ {
201
+ "name": "entity.name.type.instance.jsdoc",
202
+ "match": "(?:[^@\\s*/]|\\*[^/])+"
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",
208
+ "beginCaptures": {
209
+ "1": {
210
+ "name": "storage.type.class.jsdoc"
211
+ },
212
+ "2": {
213
+ "name": "punctuation.definition.block.tag.jsdoc"
214
+ }
215
+ },
216
+ "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
217
+ "patterns": [
218
+ {
219
+ "include": "#type"
220
+ },
221
+ {
222
+ "match": "([A-Za-z_$][\\w$.\\[\\]]*)",
223
+ "name": "variable.other.jsdoc"
224
+ },
225
+ {
226
+ "name": "variable.other.jsdoc",
227
+ "begin": "\\[",
228
+ "end": "\\]|(?=\\*/)",
229
+ "patterns": [
230
+ {
231
+ "match": "(=)((?:[^\\]*]|\\*[^/])*)",
232
+ "captures": {
233
+ "1": {
234
+ "name": "keyword.operator.assignment.jsdoc"
235
+ },
236
+ "2": {
237
+ "name": "source.embedded.js",
238
+ "patterns": [
239
+ {
240
+ "include": "#inline-tags"
241
+ },
242
+ {
243
+ "include": "source.js"
244
+ }
245
+ ]
246
+ }
247
+ }
248
+ },
249
+ {
250
+ "include": "#brackets"
251
+ },
252
+ {
253
+ "include": "#quotes"
254
+ }
255
+ ]
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "begin": "((@)(?:define|enum|exception|implements|modifies|namespace|private|protected|returns?|suppress|throws|type))\\s+(?={)",
261
+ "beginCaptures": {
262
+ "1": {
263
+ "name": "storage.type.class.jsdoc"
264
+ },
265
+ "2": {
266
+ "name": "punctuation.definition.block.tag.jsdoc"
267
+ }
268
+ },
269
+ "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
270
+ "patterns": [
271
+ {
272
+ "include": "#type"
273
+ }
274
+ ]
275
+ },
276
+ {
277
+ "captures": {
278
+ "1": {
279
+ "name": "storage.type.class.jsdoc"
280
+ },
281
+ "2": {
282
+ "name": "punctuation.definition.block.tag.jsdoc"
283
+ },
284
+ "3": {
285
+ "name": "entity.name.type.instance.jsdoc"
286
+ }
287
+ },
288
+ "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)"
289
+ },
290
+ {
291
+ "begin": "((@)(?:default(?:value)?|license|version))\\s+((['\"]))",
292
+ "beginCaptures": {
293
+ "1": {
294
+ "name": "storage.type.class.jsdoc"
295
+ },
296
+ "2": {
297
+ "name": "punctuation.definition.block.tag.jsdoc"
298
+ },
299
+ "3": {
300
+ "name": "variable.other.jsdoc"
301
+ },
302
+ "4": {
303
+ "name": "punctuation.definition.string.begin.jsdoc"
304
+ }
305
+ },
306
+ "contentName": "variable.other.jsdoc",
307
+ "end": "(\\3)|(?=$|\\*/)",
308
+ "endCaptures": {
309
+ "0": {
310
+ "name": "variable.other.jsdoc"
311
+ },
312
+ "1": {
313
+ "name": "punctuation.definition.string.end.jsdoc"
314
+ }
315
+ }
316
+ },
317
+ {
318
+ "captures": {
319
+ "1": {
320
+ "name": "storage.type.class.jsdoc"
321
+ },
322
+ "2": {
323
+ "name": "punctuation.definition.block.tag.jsdoc"
324
+ },
325
+ "3": {
326
+ "name": "variable.other.jsdoc"
327
+ }
328
+ },
329
+ "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"
330
+ },
331
+ {
332
+ "captures": {
333
+ "1": {
334
+ "name": "punctuation.definition.block.tag.jsdoc"
335
+ }
336
+ },
337
+ "match": "(?x) (@)\n(?:abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbles\n|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright\n|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception\n|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func\n|function|global|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|kind\n|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace\n|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|preserve|private|prop\n|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule\n|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation\n|version|virtual|writeOnce)\n\\b",
338
+ "name": "storage.type.class.jsdoc"
339
+ },
340
+ {
341
+ "include": "#inline-tags"
342
+ }
343
+ ],
344
+ "repository": {
345
+ "brackets": {
346
+ "patterns": [
347
+ {
348
+ "begin": "{",
349
+ "end": "}|(?=\\*/)",
350
+ "patterns": [
351
+ {
352
+ "include": "#brackets"
353
+ }
354
+ ]
355
+ },
356
+ {
357
+ "begin": "\\[",
358
+ "end": "\\]|(?=\\*/)",
359
+ "patterns": [
360
+ {
361
+ "include": "#brackets"
362
+ }
363
+ ]
364
+ }
365
+ ]
366
+ },
367
+ "inline-tags": {
368
+ "patterns": [
369
+ {
370
+ "captures": {
371
+ "1": {
372
+ "name": "punctuation.definition.bracket.square.begin.jsdoc"
373
+ },
374
+ "2": {
375
+ "name": "punctuation.definition.bracket.square.end.jsdoc"
376
+ }
377
+ },
378
+ "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",
379
+ "name": "constant.other.description.jsdoc"
380
+ },
381
+ {
382
+ "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*",
383
+ "beginCaptures": {
384
+ "1": {
385
+ "name": "punctuation.definition.bracket.curly.begin.jsdoc"
386
+ },
387
+ "2": {
388
+ "name": "storage.type.class.jsdoc"
389
+ },
390
+ "3": {
391
+ "name": "punctuation.definition.inline.tag.jsdoc"
392
+ }
393
+ },
394
+ "end": "}|(?=\\*/)",
395
+ "endCaptures": {
396
+ "0": {
397
+ "name": "punctuation.definition.bracket.curly.end.jsdoc"
398
+ }
399
+ },
400
+ "name": "entity.name.type.instance.jsdoc",
401
+ "patterns": [
402
+ {
403
+ "captures": {
404
+ "1": {
405
+ "name": "variable.other.link.underline.jsdoc"
406
+ },
407
+ "2": {
408
+ "name": "punctuation.separator.pipe.jsdoc"
409
+ }
410
+ },
411
+ "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"
412
+ },
413
+ {
414
+ "captures": {
415
+ "1": {
416
+ "name": "variable.other.description.jsdoc"
417
+ },
418
+ "2": {
419
+ "name": "punctuation.separator.pipe.jsdoc"
420
+ }
421
+ },
422
+ "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"
423
+ }
424
+ ]
425
+ }
426
+ ]
427
+ },
428
+ "quotes": {
429
+ "patterns": [
430
+ {
431
+ "begin": "'",
432
+ "end": "'|(?=\\*/)",
433
+ "patterns": [
434
+ {
435
+ "include": "#quotes"
436
+ }
437
+ ]
438
+ },
439
+ {
440
+ "begin": "\"",
441
+ "end": "\"|(?=\\*/)",
442
+ "patterns": [
443
+ {
444
+ "include": "#quotes"
445
+ }
446
+ ]
447
+ }
448
+ ]
449
+ },
450
+ "type": {
451
+ "patterns": [
452
+ {
453
+ "match": "\\G{(?:[^}*]|\\*[^/}])+$",
454
+ "name": "invalid.illegal.type.jsdoc"
455
+ },
456
+ {
457
+ "begin": "\\G({)",
458
+ "beginCaptures": {
459
+ "0": {
460
+ "name": "entity.name.type.instance.jsdoc"
461
+ },
462
+ "1": {
463
+ "name": "punctuation.definition.bracket.curly.begin.jsdoc"
464
+ }
465
+ },
466
+ "contentName": "entity.name.type.instance.jsdoc",
467
+ "end": "((}))\\s*|(?=\\*/)",
468
+ "endCaptures": {
469
+ "1": {
470
+ "name": "entity.name.type.instance.jsdoc"
471
+ },
472
+ "2": {
473
+ "name": "punctuation.definition.bracket.curly.end.jsdoc"
474
+ }
475
+ },
476
+ "patterns": [
477
+ {
478
+ "include": "#brackets"
479
+ }
480
+ ]
481
+ }
482
+ ]
483
+ }
484
+ }
485
+ }