github-linguist 7.4.0 → 7.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/grammars/annotation.liquidhaskell.haskell.json +15 -4
- data/grammars/hint.haskell.json +15 -4
- data/grammars/hint.message.haskell.json +15 -4
- data/grammars/hint.type.haskell.json +15 -4
- data/grammars/source.abap.json +14 -3
- data/grammars/source.apl.json +19 -2
- data/grammars/source.ats.json +17 -87
- data/grammars/source.ballerina.json +14 -19
- data/grammars/source.crystal.json +14 -2
- data/grammars/source.csound.json +37 -0
- data/grammars/source.css.json +25 -1
- data/grammars/source.css.scss.json +1724 -0
- data/grammars/source.gf.json +51 -0
- data/grammars/source.glsl.json +1 -1
- data/grammars/source.hack.json +2523 -0
- data/grammars/source.haskell.json +15 -4
- data/grammars/source.hc.json +709 -0
- data/grammars/source.hsig.json +15 -4
- data/grammars/source.hx.json +10 -6
- data/grammars/source.jolie.json +1 -1
- data/grammars/source.julia.json +114 -6
- data/grammars/source.m68k.json +412 -0
- data/grammars/source.mcfunction.json +62 -18
- data/grammars/source.objectscript.json +309 -0
- data/grammars/source.objectscript_class.json +674 -0
- data/grammars/source.objectscript_csp.json +19 -0
- data/grammars/source.objectscript_macros.json +226 -0
- data/grammars/source.powershell.json +21 -57
- data/grammars/source.rust.json +1 -1
- data/grammars/source.sass.json +836 -142
- data/grammars/source.sassdoc.json +346 -0
- data/grammars/source.scala.json +110 -10
- data/grammars/source.sqf.json +2 -1
- data/grammars/source.svelte.json +827 -0
- data/grammars/source.ts.json +8 -4
- data/grammars/source.tsql.json +507 -0
- data/grammars/source.tsx.json +8 -4
- data/grammars/source.viml.json +1 -1
- data/grammars/source.vtt.json +702 -0
- data/grammars/source.wollok.json +100 -0
- data/grammars/source.xojo.json +85 -0
- data/grammars/source.yara.json +3 -2
- data/grammars/source.zeek.json +412 -0
- data/grammars/source.zenscript.json +282 -0
- data/grammars/source.zig.json +2 -11
- data/grammars/text.haml.json +1 -1
- data/grammars/text.html.php.blade.json +3 -3
- data/grammars/text.html.vue.json +41 -1
- data/grammars/text.slim.json +1 -1
- data/grammars/text.tex.latex.haskell.json +15 -4
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +5 -10
- data/lib/linguist/generated.rb +10 -2
- data/lib/linguist/heuristics.yml +14 -3
- data/lib/linguist/language.rb +3 -2
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +151 -16
- data/lib/linguist/samples.json +9844 -1711
- data/lib/linguist/samples.rb +8 -5
- data/lib/linguist/shebang.rb +6 -0
- data/lib/linguist/vendor.yml +3 -0
- metadata +25 -10
- data/grammars/source.bro.json +0 -403
- data/grammars/source.scss.json +0 -1287
@@ -0,0 +1,346 @@
|
|
1
|
+
{
|
2
|
+
"name": "SassDoc",
|
3
|
+
"scopeName": "source.sassdoc",
|
4
|
+
"patterns": [
|
5
|
+
{
|
6
|
+
"match": "(?x)\n((@)(?:access))\n\\s+\n(private|public)\n\\b",
|
7
|
+
"captures": {
|
8
|
+
"1": {
|
9
|
+
"name": "storage.type.class.sassdoc"
|
10
|
+
},
|
11
|
+
"2": {
|
12
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
13
|
+
},
|
14
|
+
"3": {
|
15
|
+
"name": "constant.language.access-type.sassdoc"
|
16
|
+
}
|
17
|
+
}
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s\u003c\u003e*/]\n (?:[^@\u003c\u003e*/]|\\*[^/])*\n)\n(?:\n \\s*\n (\u003c)\n ([^\u003e\\s]+)\n (\u003e)\n)?",
|
21
|
+
"captures": {
|
22
|
+
"1": {
|
23
|
+
"name": "storage.type.class.sassdoc"
|
24
|
+
},
|
25
|
+
"2": {
|
26
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
27
|
+
},
|
28
|
+
"3": {
|
29
|
+
"name": "entity.name.type.instance.sassdoc"
|
30
|
+
},
|
31
|
+
"4": {
|
32
|
+
"name": "punctuation.definition.bracket.angle.begin.sassdoc"
|
33
|
+
},
|
34
|
+
"5": {
|
35
|
+
"name": "constant.other.email.link.underline.sassdoc"
|
36
|
+
},
|
37
|
+
"6": {
|
38
|
+
"name": "punctuation.definition.bracket.angle.end.sassdoc"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"name": "meta.example.css.scss.sassdoc",
|
44
|
+
"begin": "(?x)\n((@)example)\n\\s+\n(css|scss)",
|
45
|
+
"end": "(?=@|///$)",
|
46
|
+
"patterns": [
|
47
|
+
{
|
48
|
+
"match": "^///\\s+"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"match": "[^\\s@*](?:[^*]|\\*[^/])*",
|
52
|
+
"captures": {
|
53
|
+
"0": {
|
54
|
+
"name": "source.embedded.css.scss",
|
55
|
+
"patterns": [
|
56
|
+
{
|
57
|
+
"include": "source.css.scss"
|
58
|
+
}
|
59
|
+
]
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
],
|
64
|
+
"beginCaptures": {
|
65
|
+
"1": {
|
66
|
+
"name": "storage.type.class.sassdoc"
|
67
|
+
},
|
68
|
+
"2": {
|
69
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
70
|
+
},
|
71
|
+
"3": {
|
72
|
+
"name": "variable.other.sassdoc"
|
73
|
+
}
|
74
|
+
}
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"name": "meta.example.html.sassdoc",
|
78
|
+
"begin": "(?x)\n((@)example)\n\\s+\n(markup)",
|
79
|
+
"end": "(?=@|///$)",
|
80
|
+
"patterns": [
|
81
|
+
{
|
82
|
+
"match": "^///\\s+"
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"match": "[^\\s@*](?:[^*]|\\*[^/])*",
|
86
|
+
"captures": {
|
87
|
+
"0": {
|
88
|
+
"name": "source.embedded.html",
|
89
|
+
"patterns": [
|
90
|
+
{}
|
91
|
+
]
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
95
|
+
],
|
96
|
+
"beginCaptures": {
|
97
|
+
"1": {
|
98
|
+
"name": "storage.type.class.sassdoc"
|
99
|
+
},
|
100
|
+
"2": {
|
101
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
102
|
+
},
|
103
|
+
"3": {
|
104
|
+
"name": "variable.other.sassdoc"
|
105
|
+
}
|
106
|
+
}
|
107
|
+
},
|
108
|
+
{
|
109
|
+
"name": "meta.example.js.sassdoc",
|
110
|
+
"begin": "(?x)\n((@)example)\n\\s+\n(javascript)",
|
111
|
+
"end": "(?=@|///$)",
|
112
|
+
"patterns": [
|
113
|
+
{
|
114
|
+
"match": "^///\\s+"
|
115
|
+
},
|
116
|
+
{
|
117
|
+
"match": "[^\\s@*](?:[^*]|\\*[^/])*",
|
118
|
+
"captures": {
|
119
|
+
"0": {
|
120
|
+
"name": "source.embedded.js",
|
121
|
+
"patterns": [
|
122
|
+
{
|
123
|
+
"include": "source.js"
|
124
|
+
}
|
125
|
+
]
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
],
|
130
|
+
"beginCaptures": {
|
131
|
+
"1": {
|
132
|
+
"name": "storage.type.class.sassdoc"
|
133
|
+
},
|
134
|
+
"2": {
|
135
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
136
|
+
},
|
137
|
+
"3": {
|
138
|
+
"name": "variable.other.sassdoc"
|
139
|
+
}
|
140
|
+
}
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"match": "(?x)\n((@)link)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n)",
|
144
|
+
"captures": {
|
145
|
+
"1": {
|
146
|
+
"name": "storage.type.class.sassdoc"
|
147
|
+
},
|
148
|
+
"2": {
|
149
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
150
|
+
},
|
151
|
+
"3": {
|
152
|
+
"name": "variable.other.link.underline.sassdoc"
|
153
|
+
},
|
154
|
+
"4": {
|
155
|
+
"name": "entity.name.type.instance.sassdoc"
|
156
|
+
}
|
157
|
+
}
|
158
|
+
},
|
159
|
+
{
|
160
|
+
"match": "(?x)\n(\n (@)\n (?:arg|argument|param|parameter|requires?|see|colors?|fonts?|ratios?|sizes?)\n)\n\\s+\n(\n [A-Za-z_$%]\n [\\-\\w$.\\[\\]]*\n)",
|
161
|
+
"captures": {
|
162
|
+
"1": {
|
163
|
+
"name": "storage.type.class.sassdoc"
|
164
|
+
},
|
165
|
+
"2": {
|
166
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
167
|
+
},
|
168
|
+
"3": {
|
169
|
+
"name": "variable.other.sassdoc"
|
170
|
+
}
|
171
|
+
}
|
172
|
+
},
|
173
|
+
{
|
174
|
+
"begin": "((@)(?:arg|argument|param|parameter|prop|property|requires?|see|sizes?))\\s+(?={)",
|
175
|
+
"end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
|
176
|
+
"patterns": [
|
177
|
+
{
|
178
|
+
"include": "#sassdoctype"
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"name": "variable.other.sassdoc",
|
182
|
+
"match": "([A-Za-z_$%][\\-\\w$.\\[\\]]*)"
|
183
|
+
},
|
184
|
+
{
|
185
|
+
"name": "variable.other.sassdoc",
|
186
|
+
"match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?\u003e\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else (sorry)\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",
|
187
|
+
"captures": {
|
188
|
+
"1": {
|
189
|
+
"name": "punctuation.definition.optional-value.begin.bracket.square.sassdoc"
|
190
|
+
},
|
191
|
+
"2": {
|
192
|
+
"name": "keyword.operator.assignment.sassdoc"
|
193
|
+
},
|
194
|
+
"3": {
|
195
|
+
"name": "source.embedded.js",
|
196
|
+
"patterns": [
|
197
|
+
{
|
198
|
+
"include": "source.js"
|
199
|
+
}
|
200
|
+
]
|
201
|
+
},
|
202
|
+
"4": {
|
203
|
+
"name": "punctuation.definition.optional-value.end.bracket.square.sassdoc"
|
204
|
+
},
|
205
|
+
"5": {
|
206
|
+
"name": "invalid.illegal.syntax.sassdoc"
|
207
|
+
}
|
208
|
+
}
|
209
|
+
}
|
210
|
+
],
|
211
|
+
"beginCaptures": {
|
212
|
+
"1": {
|
213
|
+
"name": "storage.type.class.sassdoc"
|
214
|
+
},
|
215
|
+
"2": {
|
216
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
217
|
+
}
|
218
|
+
}
|
219
|
+
},
|
220
|
+
{
|
221
|
+
"begin": "(?x)\n(\n (@)\n (?:returns?|throws?|exception|outputs?)\n)\n\\s+(?={)",
|
222
|
+
"end": "(?=\\s|[^{}\\[\\]A-Za-z_$])",
|
223
|
+
"patterns": [
|
224
|
+
{
|
225
|
+
"include": "#sassdoctype"
|
226
|
+
}
|
227
|
+
],
|
228
|
+
"beginCaptures": {
|
229
|
+
"1": {
|
230
|
+
"name": "storage.type.class.sassdoc"
|
231
|
+
},
|
232
|
+
"2": {
|
233
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
234
|
+
}
|
235
|
+
}
|
236
|
+
},
|
237
|
+
{
|
238
|
+
"match": "(?x)\n(\n (@)\n (?:type)\n)\n\\s+\n(\n (?:\n [A-Za-z |]+\n )\n)",
|
239
|
+
"captures": {
|
240
|
+
"1": {
|
241
|
+
"name": "storage.type.class.sassdoc"
|
242
|
+
},
|
243
|
+
"2": {
|
244
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
245
|
+
},
|
246
|
+
"3": {
|
247
|
+
"name": "entity.name.type.instance.sassdoc",
|
248
|
+
"patterns": [
|
249
|
+
{
|
250
|
+
"include": "#sassdoctypedelimiter"
|
251
|
+
}
|
252
|
+
]
|
253
|
+
}
|
254
|
+
}
|
255
|
+
},
|
256
|
+
{
|
257
|
+
"match": "(?x)\n(\n (@)\n (?:alias|group|name|requires?|see|icons?)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",
|
258
|
+
"captures": {
|
259
|
+
"1": {
|
260
|
+
"name": "storage.type.class.sassdoc"
|
261
|
+
},
|
262
|
+
"2": {
|
263
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
264
|
+
},
|
265
|
+
"3": {
|
266
|
+
"name": "entity.name.type.instance.sassdoc"
|
267
|
+
}
|
268
|
+
}
|
269
|
+
},
|
270
|
+
{
|
271
|
+
"name": "storage.type.class.sassdoc",
|
272
|
+
"match": "(?x)\n(@)\n(?:access|alias|author|content|deprecated|example|exception|group\n|ignore|name|prop|property|requires?|returns?|see|since|throws?|todo\n|type|outputs?)\n\\b",
|
273
|
+
"captures": {
|
274
|
+
"1": {
|
275
|
+
"name": "punctuation.definition.block.tag.sassdoc"
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
279
|
+
],
|
280
|
+
"repository": {
|
281
|
+
"brackets": {
|
282
|
+
"patterns": [
|
283
|
+
{
|
284
|
+
"begin": "{",
|
285
|
+
"end": "}|(?=$)",
|
286
|
+
"patterns": [
|
287
|
+
{
|
288
|
+
"include": "#brackets"
|
289
|
+
}
|
290
|
+
]
|
291
|
+
},
|
292
|
+
{
|
293
|
+
"begin": "\\[",
|
294
|
+
"end": "\\]|(?=$)",
|
295
|
+
"patterns": [
|
296
|
+
{
|
297
|
+
"include": "#brackets"
|
298
|
+
}
|
299
|
+
]
|
300
|
+
}
|
301
|
+
]
|
302
|
+
},
|
303
|
+
"sassdoctype": {
|
304
|
+
"patterns": [
|
305
|
+
{
|
306
|
+
"name": "invalid.illegal.type.sassdoc",
|
307
|
+
"match": "\\G{(?:[^}*]|\\*[^/}])+$"
|
308
|
+
},
|
309
|
+
{
|
310
|
+
"contentName": "entity.name.type.instance.sassdoc",
|
311
|
+
"begin": "\\G({)",
|
312
|
+
"end": "((}))\\s*|(?=$)",
|
313
|
+
"patterns": [
|
314
|
+
{
|
315
|
+
"include": "#brackets"
|
316
|
+
}
|
317
|
+
],
|
318
|
+
"beginCaptures": {
|
319
|
+
"0": {
|
320
|
+
"name": "entity.name.type.instance.sassdoc"
|
321
|
+
},
|
322
|
+
"1": {
|
323
|
+
"name": "punctuation.definition.bracket.curly.begin.sassdoc"
|
324
|
+
}
|
325
|
+
},
|
326
|
+
"endCaptures": {
|
327
|
+
"1": {
|
328
|
+
"name": "entity.name.type.instance.sassdoc"
|
329
|
+
},
|
330
|
+
"2": {
|
331
|
+
"name": "punctuation.definition.bracket.curly.end.sassdoc"
|
332
|
+
}
|
333
|
+
}
|
334
|
+
}
|
335
|
+
]
|
336
|
+
},
|
337
|
+
"sassdoctypedelimiter": {
|
338
|
+
"match": "(\\|)",
|
339
|
+
"captures": {
|
340
|
+
"1": {
|
341
|
+
"name": "punctuation.definition.delimiter.sassdoc"
|
342
|
+
}
|
343
|
+
}
|
344
|
+
}
|
345
|
+
}
|
346
|
+
}
|
data/grammars/source.scala.json
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
"include": "#block-comments"
|
17
17
|
},
|
18
18
|
{
|
19
|
-
"match": "(?x)
|
19
|
+
"match": "(?x)(?! /\\*)(?! \\*/)"
|
20
20
|
}
|
21
21
|
]
|
22
22
|
},
|
@@ -248,7 +248,7 @@
|
|
248
248
|
"declarations": {
|
249
249
|
"patterns": [
|
250
250
|
{
|
251
|
-
"match": "(?x)
|
251
|
+
"match": "(?x)\\b(def)\\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}]])+))",
|
252
252
|
"captures": {
|
253
253
|
"1": {
|
254
254
|
"name": "keyword.declaration.scala"
|
@@ -284,7 +284,7 @@
|
|
284
284
|
}
|
285
285
|
},
|
286
286
|
{
|
287
|
-
"match": "\\b(type)\\s+(`[^`]+`|[
|
287
|
+
"match": "\\b(type)\\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}]])+))",
|
288
288
|
"captures": {
|
289
289
|
"1": {
|
290
290
|
"name": "keyword.declaration.scala"
|
@@ -295,7 +295,7 @@
|
|
295
295
|
}
|
296
296
|
},
|
297
297
|
{
|
298
|
-
"match": "\\b(val)\\s+(?:
|
298
|
+
"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",
|
299
299
|
"captures": {
|
300
300
|
"1": {
|
301
301
|
"name": "keyword.declaration.stable.scala"
|
@@ -306,7 +306,7 @@
|
|
306
306
|
}
|
307
307
|
},
|
308
308
|
{
|
309
|
-
"match": "\\b(?:(val)|(var))\\s+(?:(`[^`]+`|[
|
309
|
+
"match": "\\b(?:(val)|(var))\\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}]])+))|(?=\\())",
|
310
310
|
"captures": {
|
311
311
|
"1": {
|
312
312
|
"name": "keyword.declaration.stable.scala"
|
@@ -343,7 +343,7 @@
|
|
343
343
|
},
|
344
344
|
{
|
345
345
|
"name": "entity.name.package.scala",
|
346
|
-
"match": "(`[^`]+`|[
|
346
|
+
"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}]])+))"
|
347
347
|
},
|
348
348
|
{
|
349
349
|
"name": "punctuation.definition.package",
|
@@ -377,7 +377,7 @@
|
|
377
377
|
},
|
378
378
|
{
|
379
379
|
"name": "entity.name.import.scala",
|
380
|
-
"match": "(`[^`]+`|[
|
380
|
+
"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}]])+))"
|
381
381
|
},
|
382
382
|
{
|
383
383
|
"name": "punctuation.definition.import",
|
@@ -389,7 +389,7 @@
|
|
389
389
|
"end": "}",
|
390
390
|
"patterns": [
|
391
391
|
{
|
392
|
-
"match": "(?x)
|
392
|
+
"match": "(?x)\\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*(=\u003e)\\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*",
|
393
393
|
"captures": {
|
394
394
|
"1": {
|
395
395
|
"name": "entity.name.import.renamed-from.scala"
|
@@ -518,7 +518,7 @@
|
|
518
518
|
"parameter-list": {
|
519
519
|
"patterns": [
|
520
520
|
{
|
521
|
-
"match": "(?\u003c=[^\\._$a-zA-Z0-9])(`[^`]+`|[
|
521
|
+
"match": "(?\u003c=[^\\._$a-zA-Z0-9])(`[^`]+`|[_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}]]+)?)\\s*(:)\\s+",
|
522
522
|
"captures": {
|
523
523
|
"1": {
|
524
524
|
"name": "variable.parameter.scala"
|
@@ -544,7 +544,7 @@
|
|
544
544
|
},
|
545
545
|
"scala-symbol": {
|
546
546
|
"name": "constant.other.symbol.scala",
|
547
|
-
"match": "'\\
|
547
|
+
"match": "(?\u003e'(?:[[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}]])+))(?!')"
|
548
548
|
},
|
549
549
|
"script-header": {
|
550
550
|
"name": "comment.block.shebang.scala",
|
@@ -570,6 +570,42 @@
|
|
570
570
|
}
|
571
571
|
]
|
572
572
|
},
|
573
|
+
"string-interpolation": {
|
574
|
+
"patterns": [
|
575
|
+
{
|
576
|
+
"name": "constant.character.escape.interpolation.scala",
|
577
|
+
"match": "\\$\\$"
|
578
|
+
},
|
579
|
+
{
|
580
|
+
"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])*)",
|
581
|
+
"captures": {
|
582
|
+
"1": {
|
583
|
+
"name": "punctuation.definition.template-expression.begin.scala"
|
584
|
+
}
|
585
|
+
}
|
586
|
+
},
|
587
|
+
{
|
588
|
+
"name": "punctuation.definition.template-expression.scala",
|
589
|
+
"begin": "\\$\\{",
|
590
|
+
"end": "\\}",
|
591
|
+
"patterns": [
|
592
|
+
{
|
593
|
+
"include": "#code"
|
594
|
+
}
|
595
|
+
],
|
596
|
+
"beginCaptures": {
|
597
|
+
"0": {
|
598
|
+
"name": "punctuation.definition.template-expression.begin.scala"
|
599
|
+
}
|
600
|
+
},
|
601
|
+
"endCaptures": {
|
602
|
+
"0": {
|
603
|
+
"name": "punctuation.definition.template-expression.end.scala"
|
604
|
+
}
|
605
|
+
}
|
606
|
+
}
|
607
|
+
]
|
608
|
+
},
|
573
609
|
"strings": {
|
574
610
|
"patterns": [
|
575
611
|
{
|
@@ -593,6 +629,36 @@
|
|
593
629
|
}
|
594
630
|
}
|
595
631
|
},
|
632
|
+
{
|
633
|
+
"begin": "\\b([[A-Z\\p{Lt}\\p{Lu}][_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}]]+)(\"\"\")",
|
634
|
+
"end": "\"\"\"(?!\")",
|
635
|
+
"patterns": [
|
636
|
+
{
|
637
|
+
"include": "#string-interpolation"
|
638
|
+
},
|
639
|
+
{
|
640
|
+
"name": "constant.character.escape.scala",
|
641
|
+
"match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}"
|
642
|
+
},
|
643
|
+
{
|
644
|
+
"name": "string.quoted.triple.interpolated.scala",
|
645
|
+
"match": "."
|
646
|
+
}
|
647
|
+
],
|
648
|
+
"beginCaptures": {
|
649
|
+
"1": {
|
650
|
+
"name": "keyword.interpolation.scala"
|
651
|
+
},
|
652
|
+
"2": {
|
653
|
+
"name": "string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"
|
654
|
+
}
|
655
|
+
},
|
656
|
+
"endCaptures": {
|
657
|
+
"0": {
|
658
|
+
"name": "string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"
|
659
|
+
}
|
660
|
+
}
|
661
|
+
},
|
596
662
|
{
|
597
663
|
"name": "string.quoted.double.scala",
|
598
664
|
"begin": "\"",
|
@@ -617,6 +683,40 @@
|
|
617
683
|
"name": "punctuation.definition.string.end.scala"
|
618
684
|
}
|
619
685
|
}
|
686
|
+
},
|
687
|
+
{
|
688
|
+
"begin": "\\b([[A-Z\\p{Lt}\\p{Lu}][_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}]]+)(\")",
|
689
|
+
"end": "\"",
|
690
|
+
"patterns": [
|
691
|
+
{
|
692
|
+
"include": "#string-interpolation"
|
693
|
+
},
|
694
|
+
{
|
695
|
+
"name": "constant.character.escape.scala",
|
696
|
+
"match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"
|
697
|
+
},
|
698
|
+
{
|
699
|
+
"name": "invalid.illegal.unrecognized-string-escape.scala",
|
700
|
+
"match": "\\\\."
|
701
|
+
},
|
702
|
+
{
|
703
|
+
"name": "string.quoted.double.interpolated.scala",
|
704
|
+
"match": "."
|
705
|
+
}
|
706
|
+
],
|
707
|
+
"beginCaptures": {
|
708
|
+
"1": {
|
709
|
+
"name": "keyword.interpolation.scala"
|
710
|
+
},
|
711
|
+
"2": {
|
712
|
+
"name": "string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"
|
713
|
+
}
|
714
|
+
},
|
715
|
+
"endCaptures": {
|
716
|
+
"0": {
|
717
|
+
"name": "string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"
|
718
|
+
}
|
719
|
+
}
|
620
720
|
}
|
621
721
|
]
|
622
722
|
},
|