github-linguist 4.8.9 → 4.8.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +2 -2
  3. data/grammars/source.ats.json +58 -128
  4. data/grammars/source.autoit.json +158 -153
  5. data/grammars/source.awk.json +333 -383
  6. data/grammars/source.batchfile.json +194 -0
  7. data/grammars/source.c.platform.json +359 -22
  8. data/grammars/source.changelogs.rpm-spec.json +99 -0
  9. data/grammars/source.clojure.json +9 -3
  10. data/grammars/source.dockerfile.json +67 -78
  11. data/grammars/source.elm.json +20 -379
  12. data/grammars/source.emacs.lisp.json +656 -0
  13. data/grammars/source.gdscript.json +233 -228
  14. data/grammars/source.graphql.json +75 -10
  15. data/grammars/source.js.json +2 -2
  16. data/grammars/source.js.jsx.json +247 -839
  17. data/grammars/source.js.regexp.json +1 -1
  18. data/grammars/source.nginx.json +882 -768
  19. data/grammars/source.nsis.json +151 -143
  20. data/grammars/source.objc.json +3 -0
  21. data/grammars/source.objc.platform.json +174 -104
  22. data/grammars/source.puppet.json +429 -396
  23. data/grammars/source.pyjade.json +11 -0
  24. data/grammars/source.regexp.babel.json +1 -1
  25. data/grammars/source.rpm-spec.json +770 -0
  26. data/grammars/source.systemverilog.json +1110 -961
  27. data/grammars/source.ts.json +57 -57
  28. data/grammars/source.tsx.json +57 -57
  29. data/grammars/text.dart-analysis-output.json +67 -152
  30. data/grammars/text.error-list.json +54 -0
  31. data/grammars/text.find-refs.json +927 -0
  32. data/grammars/text.html.basic.json +1 -1
  33. data/grammars/text.html.mediawiki.elm-build-output.json +108 -0
  34. data/grammars/text.html.mediawiki.elm-documentation.json +22 -0
  35. data/grammars/text.html.vue.json +35 -0
  36. data/grammars/text.jade.json +34 -12
  37. data/grammars/text.roff.json +1 -1
  38. data/lib/linguist/heuristics.rb +16 -4
  39. data/lib/linguist/languages.json +1 -1
  40. data/lib/linguist/languages.yml +25 -5
  41. data/lib/linguist/samples.json +1367 -163
  42. data/lib/linguist/version.rb +1 -1
  43. metadata +10 -3
  44. data/grammars/source.dosbatch.json +0 -70
@@ -1,388 +1,338 @@
1
1
  {
2
- "fileTypes": [
3
- "awk"
4
- ],
5
2
  "name": "AWK",
6
- "patterns": [
7
- {
8
- "include": "#comment"
9
- },
10
- {
11
- "include": "#procedure"
12
- },
13
- {
14
- "include": "#pattern"
15
- }
3
+ "scope": "source.awk",
4
+ "file_extensions": [
5
+ "awk"
16
6
  ],
17
- "repository": {
18
- "builtin-pattern": {
19
- "match": "\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b",
20
- "name": "constant.language.awk"
21
- },
22
- "command": {
23
- "patterns": [
24
- {
25
- "match": "\\b(?:next|print|printf)\\b",
26
- "name": "keyword.other.command.awk"
27
- },
28
- {
29
- "match": "\\b(?:close|getline|delete|system)\\b",
30
- "name": "keyword.other.command.nawk"
31
- },
32
- {
33
- "match": "\\b(?:fflush|nextfile)\\b",
34
- "name": "keyword.other.command.bell-awk"
35
- }
36
- ]
37
- },
38
- "comment": {
39
- "match": "#.*",
40
- "name": "comment.line.number-sign.awk"
41
- },
42
- "constant": {
43
- "patterns": [
44
- {
45
- "include": "#numeric-constant"
46
- },
47
- {
48
- "include": "#string-constant"
49
- }
50
- ]
51
- },
52
- "escaped-char": {
53
- "match": "\\\\(?:[\\\\abfnrtv/\"]|x[0-9A-Fa-f]{2}|[0-7]{3})",
54
- "name": "constant.character.escape.awk"
55
- },
56
- "expression": {
57
- "patterns": [
58
- {
59
- "include": "#command"
60
- },
61
- {
62
- "include": "#function"
63
- },
64
- {
65
- "include": "#constant"
66
- },
67
- {
68
- "include": "#variable"
69
- },
70
- {
71
- "include": "#regexp-in-expression"
72
- },
73
- {
74
- "include": "#operator"
75
- },
76
- {
77
- "include": "#groupings"
78
- }
79
- ]
80
- },
81
- "function": {
82
- "patterns": [
83
- {
84
- "match": "\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b",
85
- "name": "support.function.awk"
86
- },
87
- {
88
- "match": "\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b",
89
- "name": "support.function.nawk"
90
- },
91
- {
92
- "match": "\\b(?:gensub|strftime|systime)\\b",
93
- "name": "support.function.gawk"
94
- }
95
- ]
96
- },
97
- "function-definition": {
98
- "begin": "\\b(function)\\s+(\\w+)(\\()",
99
- "beginCaptures": {
100
- "1": {
101
- "name": "storage.type.function.awk"
102
- },
103
- "2": {
104
- "name": "entity.name.function.awk"
105
- },
106
- "3": {
107
- "name": "punctuation.definition.parameters.begin.awk"
108
- }
109
- },
110
- "end": "\\)",
111
- "endCaptures": {
112
- "0": {
113
- "name": "punctuation.definition.parameters.end.awk"
114
- }
115
- },
116
- "patterns": [
117
- {
118
- "match": "\\b(\\w+)\\b",
119
- "name": "variable.parameter.function.awk"
120
- },
121
- {
122
- "match": "\\b(,)\\b",
123
- "name": "punctuation.separator.parameters.awk"
124
- }
125
- ]
126
- },
127
- "groupings": {
128
- "patterns": [
129
- {
130
- "match": "\\(",
131
- "name": "meta.brace.round.awk"
132
- },
133
- {
134
- "match": "\\)",
135
- "name": "meta.brace.round.awk"
136
- },
137
- {
138
- "match": "\\,",
139
- "name": "punctuation.separator.parameters.awk"
140
- }
141
- ]
142
- },
143
- "keyword": {
144
- "match": "\\b(?:break|continue|do|while|exit|for|if|else|return)\\b",
145
- "name": "keyword.control.awk"
146
- },
147
- "numeric-constant": {
148
- "match": "\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b",
149
- "name": "constant.numeric.awk"
150
- },
151
- "operator": {
152
- "patterns": [
153
- {
154
- "match": "(!?~|[=<>!]=|[<>])",
155
- "name": "keyword.operator.comparison.awk"
156
- },
157
- {
158
- "match": "\\b(in)\\b",
159
- "name": "keyword.operator.comparison.awk"
160
- },
161
- {
162
- "match": "([+\\-*/%^]=|\\+\\+|--|>>|=)",
163
- "name": "keyword.operator.assignment.awk"
164
- },
165
- {
166
- "match": "(\\|\\||&&|!)",
167
- "name": "keyword.operator.boolean.awk"
168
- },
169
- {
170
- "match": "([+\\-*/%^])",
171
- "name": "keyword.operator.arithmetic.awk"
172
- },
173
- {
174
- "match": "([?:])",
175
- "name": "keyword.operator.trinary.awk"
176
- },
177
- {
178
- "match": "(\\[|\\])",
179
- "name": "keyword.operator.index.awk"
180
- }
181
- ]
182
- },
183
- "pattern": {
184
- "patterns": [
185
- {
186
- "include": "#regexp-as-pattern"
187
- },
188
- {
189
- "include": "#function-definition"
190
- },
191
- {
192
- "include": "#builtin-pattern"
193
- },
194
- {
195
- "include": "#expression"
196
- }
197
- ]
198
- },
199
- "procedure": {
200
- "begin": "\\{",
201
- "end": "\\}",
202
- "patterns": [
203
- {
204
- "include": "#comment"
205
- },
206
- {
207
- "include": "#procedure"
208
- },
209
- {
210
- "include": "#keyword"
211
- },
212
- {
213
- "include": "#expression"
214
- }
215
- ]
216
- },
217
- "regex-as-assignment": {
218
- "begin": "([^=<>!+\\-*/%^]=)\\s*(/)",
219
- "beginCaptures": {
220
- "1": {
221
- "name": "keyword.operator.assignment.awk"
222
- },
223
- "2": {
224
- "name": "punctuation.definition.regex.begin.awk"
225
- }
226
- },
227
- "contentName": "string.regexp",
228
- "end": "/",
229
- "endCaptures": {
230
- "0": {
231
- "name": "punctuation.definition.regex.end.awk"
232
- }
233
- },
234
- "patterns": [
235
- {
236
- "include": "source.regexp"
237
- }
238
- ]
239
- },
240
- "regex-as-comparison": {
241
- "begin": "(!?~)\\s*(/)",
242
- "beginCaptures": {
243
- "1": {
244
- "name": "keyword.operator.comparison.awk"
245
- },
246
- "2": {
247
- "name": "punctuation.definition.regex.begin.awk"
248
- }
249
- },
250
- "contentName": "string.regexp",
251
- "end": "/",
252
- "endCaptures": {
253
- "0": {
254
- "name": "punctuation.definition.regex.end.awk"
255
- }
256
- },
257
- "patterns": [
258
- {
259
- "include": "source.regexp"
260
- }
261
- ]
262
- },
263
- "regex-as-first-argument": {
264
- "begin": "(\\()\\s*(/)",
265
- "beginCaptures": {
266
- "1": {
267
- "name": "meta.brace.round.awk"
268
- },
269
- "2": {
270
- "name": "punctuation.definition.regex.begin.awk"
271
- }
272
- },
273
- "contentName": "string.regexp",
274
- "end": "/",
275
- "endCaptures": {
276
- "0": {
277
- "name": "punctuation.definition.regex.end.awk"
278
- }
279
- },
280
- "patterns": [
281
- {
282
- "include": "source.regexp"
283
- }
284
- ]
285
- },
286
- "regex-as-nth-argument": {
287
- "begin": "(,)\\s*(/)",
288
- "beginCaptures": {
289
- "1": {
290
- "name": "punctuation.separator.parameters.awk"
291
- },
292
- "2": {
293
- "name": "punctuation.definition.regex.begin.awk"
294
- }
295
- },
296
- "contentName": "string.regexp",
297
- "end": "/",
298
- "endCaptures": {
299
- "0": {
300
- "name": "punctuation.definition.regex.end.awk"
301
- }
302
- },
303
- "patterns": [
304
- {
305
- "include": "source.regexp"
306
- }
307
- ]
308
- },
309
- "regexp-as-pattern": {
310
- "begin": "/",
311
- "beginCaptures": {
312
- "0": {
313
- "name": "punctuation.definition.regex.begin.awk"
314
- }
315
- },
316
- "contentName": "string.regexp",
317
- "end": "/",
318
- "endCaptures": {
319
- "0": {
320
- "name": "punctuation.definition.regex.end.awk"
321
- }
322
- },
323
- "patterns": [
324
- {
325
- "include": "source.regexp"
326
- }
327
- ]
328
- },
329
- "regexp-in-expression": {
330
- "patterns": [
331
- {
332
- "include": "#regex-as-assignment"
333
- },
334
- {
335
- "include": "#regex-as-comparison"
336
- },
337
- {
338
- "include": "#regex-as-first-argument"
339
- },
340
- {
341
- "include": "#regex-as-nth-argument"
342
- }
343
- ]
344
- },
345
- "string-constant": {
346
- "begin": "\"",
347
- "beginCaptures": {
348
- "0": {
349
- "name": "punctuation.definition.string.begin.awk"
350
- }
351
- },
352
- "end": "\"",
353
- "endCaptures": {
354
- "0": {
355
- "name": "punctuation.definition.string.end.awk"
356
- }
357
- },
358
- "name": "string.quoted.double.awk",
359
- "patterns": [
360
- {
361
- "include": "#escaped-char"
362
- }
363
- ]
364
- },
365
- "variable": {
366
- "patterns": [
367
- {
368
- "match": "\\$[0-9]+",
369
- "name": "variable.language.awk"
370
- },
371
- {
372
- "match": "\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b",
373
- "name": "variable.language.awk"
374
- },
375
- {
376
- "match": "\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b",
377
- "name": "variable.language.nawk"
378
- },
379
- {
380
- "match": "\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b",
381
- "name": "variable.language.gawk"
382
- }
383
- ]
384
- }
7
+ "variables": {
8
+ "NAME": "[A-Za-z_][A-Za-z_0-9]*"
385
9
  },
386
- "scopeName": "source.awk",
387
- "uuid": "67bd1ff0-006b-4c32-8b97-8bc198777582"
10
+ "contexts": {
11
+ "main": [
12
+ {
13
+ "include": "comment"
14
+ },
15
+ {
16
+ "include": "procedure"
17
+ },
18
+ {
19
+ "include": "pattern"
20
+ }
21
+ ],
22
+ "comment": [
23
+ {
24
+ "match": "#.*",
25
+ "scope": "punctuation.definition.comment.awk"
26
+ }
27
+ ],
28
+ "procedure": [
29
+ {
30
+ "match": "{",
31
+ "scope": "meta.brace.curly.awk",
32
+ "push": [
33
+ {
34
+ "match": "}",
35
+ "scope": "meta.brace.curly.awk",
36
+ "pop": true
37
+ },
38
+ {
39
+ "include": "comment"
40
+ },
41
+ {
42
+ "include": "procedure"
43
+ },
44
+ {
45
+ "include": "keyword"
46
+ },
47
+ {
48
+ "include": "expression"
49
+ }
50
+ ]
51
+ }
52
+ ],
53
+ "pattern": [
54
+ {
55
+ "include": "function-definition"
56
+ },
57
+ {
58
+ "include": "builtin-pattern"
59
+ },
60
+ {
61
+ "include": "expression"
62
+ }
63
+ ],
64
+ "expression": [
65
+ {
66
+ "include": "comment"
67
+ },
68
+ {
69
+ "include": "command"
70
+ },
71
+ {
72
+ "include": "function"
73
+ },
74
+ {
75
+ "include": "constant"
76
+ },
77
+ {
78
+ "include": "variable"
79
+ },
80
+ {
81
+ "include": "groupings"
82
+ },
83
+ {
84
+ "include": "prefix-operator"
85
+ },
86
+ {
87
+ "include": "regexp"
88
+ },
89
+ {
90
+ "match": "(?=[\\S])",
91
+ "pop": true
92
+ }
93
+ ],
94
+ "groupings": [
95
+ {
96
+ "match": "\\(",
97
+ "scope": "meta.brace.round.awk"
98
+ },
99
+ {
100
+ "match": "\\)(?=\\s*{)",
101
+ "scope": "meta.brace.round.awk"
102
+ },
103
+ {
104
+ "match": "\\)",
105
+ "scope": "meta.brace.round.awk",
106
+ "push": "infix-operator"
107
+ },
108
+ {
109
+ "match": "\\,",
110
+ "scope": "punctuation.separator.parameters.awk"
111
+ }
112
+ ],
113
+ "builtin-pattern": [
114
+ {
115
+ "match": "\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b",
116
+ "scope": "constant.language.awk"
117
+ }
118
+ ],
119
+ "function-definition": [
120
+ {
121
+ "match": "\\b(function)\\s+({{NAME}})(\\()",
122
+ "captures": {
123
+ "1": "storage.type.function.awk",
124
+ "2": "entity.name.function.awk",
125
+ "3": "punctuation.definition.parameters.begin.awk"
126
+ },
127
+ "push": [
128
+ {
129
+ "match": "\\)",
130
+ "captures": {
131
+ "0": "punctuation.definition.parameters.end.awk"
132
+ },
133
+ "pop": true
134
+ },
135
+ {
136
+ "match": "\\b(\\w+)\\b",
137
+ "scope": "variable.parameter.function.awk"
138
+ },
139
+ {
140
+ "match": "\\b(,)\\b",
141
+ "scope": "punctuation.separator.parameters.awk"
142
+ }
143
+ ]
144
+ }
145
+ ],
146
+ "constant": [
147
+ {
148
+ "include": "numeric-constant"
149
+ },
150
+ {
151
+ "include": "string-constant"
152
+ }
153
+ ],
154
+ "numeric-constant": [
155
+ {
156
+ "match": "\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b",
157
+ "scope": "constant.numeric.awk",
158
+ "push": "infix-operator"
159
+ }
160
+ ],
161
+ "string-constant": [
162
+ {
163
+ "match": "\"",
164
+ "scope": "punctuation.definition.string.begin.awk",
165
+ "push": [
166
+ {
167
+ "meta_scope": "string.quoted.double.awk"
168
+ },
169
+ {
170
+ "match": "\"",
171
+ "scope": "punctuation.definition.string.end.awk",
172
+ "pop": true
173
+ },
174
+ {
175
+ "include": "escaped-char"
176
+ }
177
+ ]
178
+ }
179
+ ],
180
+ "escaped-char": [
181
+ {
182
+ "match": "\\\\(?:[\\\\abfnrtv/\"]|x[0-9A-Fa-f]{2}|[0-7]{3})",
183
+ "scope": "constant.character.escape.awk"
184
+ }
185
+ ],
186
+ "regexp": [
187
+ {
188
+ "match": "/",
189
+ "scope": "punctuation.definition.regex.begin.awk",
190
+ "push": [
191
+ {
192
+ "meta_content_scope": "string.regexp"
193
+ },
194
+ {
195
+ "match": "(/)([gimy]*)",
196
+ "captures": {
197
+ "1": "punctuation.definition.regex.end.awk",
198
+ "2": "keyword.other.awk"
199
+ },
200
+ "set": "infix-operator"
201
+ },
202
+ {
203
+ "match": "(?=.|\\n)",
204
+ "with_prototype": [
205
+ {
206
+ "match": "(?=/)",
207
+ "pop": true
208
+ }
209
+ ],
210
+ "push": [
211
+ {
212
+ "include": "scope:source.regexp"
213
+ }
214
+ ]
215
+ }
216
+ ]
217
+ }
218
+ ],
219
+ "variable": [
220
+ {
221
+ "match": "\\$[0-9]+",
222
+ "scope": "variable.language.awk",
223
+ "push": "infix-operator"
224
+ },
225
+ {
226
+ "match": "\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b",
227
+ "scope": "variable.language.awk",
228
+ "push": "infix-operator"
229
+ },
230
+ {
231
+ "match": "\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b",
232
+ "scope": "variable.language.nawk",
233
+ "push": "infix-operator"
234
+ },
235
+ {
236
+ "match": "\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b",
237
+ "scope": "variable.language.gawk",
238
+ "push": "infix-operator"
239
+ },
240
+ {
241
+ "match": "\\b{{NAME}}\\b",
242
+ "scope": "variable.other.readwrite.awk",
243
+ "push": "infix-operator"
244
+ }
245
+ ],
246
+ "keyword": [
247
+ {
248
+ "match": "\\b(?:break|continue|do|while|exit|for|if|else|return)\\b",
249
+ "scope": "keyword.control.awk"
250
+ }
251
+ ],
252
+ "command": [
253
+ {
254
+ "match": "\\b(?:next|print|printf)\\b",
255
+ "scope": "keyword.other.command.awk"
256
+ },
257
+ {
258
+ "match": "\\b(?:close|getline|delete|system)\\b",
259
+ "scope": "keyword.other.command.nawk"
260
+ },
261
+ {
262
+ "match": "\\b(?:fflush|nextfile)\\b",
263
+ "scope": "keyword.other.command.bell-awk"
264
+ }
265
+ ],
266
+ "function": [
267
+ {
268
+ "match": "\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b",
269
+ "scope": "support.function.awk"
270
+ },
271
+ {
272
+ "match": "\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b",
273
+ "scope": "support.function.nawk"
274
+ },
275
+ {
276
+ "match": "\\b(?:gensub|strftime|systime)\\b",
277
+ "scope": "support.function.gawk"
278
+ },
279
+ {
280
+ "match": "\\b{{NAME}}(?=\\s*\\()",
281
+ "scope": "entity.name.function.awk"
282
+ }
283
+ ],
284
+ "prefix-operator": [
285
+ {
286
+ "match": "[+-]",
287
+ "scope": "keyword.operator.arithmetic.awk",
288
+ "set": "expression"
289
+ }
290
+ ],
291
+ "infix-operator": [
292
+ {
293
+ "match": "!?~|[=<>!]=|[<>]",
294
+ "scope": "keyword.operator.comparison.awk",
295
+ "set": "expression"
296
+ },
297
+ {
298
+ "match": "\\b(in)\\b",
299
+ "scope": "keyword.operator.comparison.awk",
300
+ "set": "expression"
301
+ },
302
+ {
303
+ "match": "[+\\-*/%^]=|\\+\\+|--|>>|=",
304
+ "scope": "keyword.operator.assignment.awk",
305
+ "set": "expression"
306
+ },
307
+ {
308
+ "match": "\\|\\||&&|!",
309
+ "scope": "keyword.operator.boolean.awk",
310
+ "set": "expression"
311
+ },
312
+ {
313
+ "match": "[+\\-*/%^]",
314
+ "scope": "keyword.operator.arithmetic.awk",
315
+ "set": "expression"
316
+ },
317
+ {
318
+ "match": "[?:]",
319
+ "scope": "keyword.operator.trinary.awk",
320
+ "set": "expression"
321
+ },
322
+ {
323
+ "match": "\\[",
324
+ "scope": "keyword.operator.index.awk",
325
+ "set": "expression"
326
+ },
327
+ {
328
+ "match": "\\]",
329
+ "scope": "keyword.operator.index.awk",
330
+ "set": "expression"
331
+ },
332
+ {
333
+ "match": "(?=[\\S])",
334
+ "pop": true
335
+ }
336
+ ]
337
+ }
388
338
  }