feat add 15 more language grammars (48 total)

New grammars: clojure, dart, dune, elixir, erlang, fortran, groovy, julia, lisp, objective-c, opam, powershell, protobuf, terraform/hcl, vue Also improves language detection in syntax.ml: - Add file extensions for all new languages (.clj, .dart, .ex, .erl, .f90, .gradle, .jl, .m, .opam, .proto, .ps1, .tf, .vue, etc.) - Detect extensionless files by basename: Makefile, Dockerfile, dune, dune-project, Jenkinsfile - Fix: .toml now returns "toml" (not "ini"), .html returns "html" (not "xml") - Add .kts, .hrl, .sc, .scm, .ss, .dune extensions The grammar registry now covers 48 languages, handling the vast majority of source files encountered in typical repositories.

Commit
0a9b5530027ed7a693f970e86072adcd9ac911f2
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
lib/grammars/clojure.json
index 00000000..6a4ab390 000000..100644
@@ -0,0 +1,431 @@
1 Added: {
2 Added: "information_for_contributors": [
3 Added: "This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson",
4 Added: "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 Added: "Once accepted there, we are happy to receive an update request."
6 Added: ],
7 Added: "version": "https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03",
8 Added: "name": "Clojure",
9 Added: "scopeName": "source.clojure",
10 Added: "patterns": [
11 Added: {
12 Added: "include": "#comment"
13 Added: },
14 Added: {
15 Added: "include": "#shebang-comment"
16 Added: },
17 Added: {
18 Added: "include": "#quoted-sexp"
19 Added: },
20 Added: {
21 Added: "include": "#sexp"
22 Added: },
23 Added: {
24 Added: "include": "#keyfn"
25 Added: },
26 Added: {
27 Added: "include": "#string"
28 Added: },
29 Added: {
30 Added: "include": "#vector"
31 Added: },
32 Added: {
33 Added: "include": "#set"
34 Added: },
35 Added: {
36 Added: "include": "#map"
37 Added: },
38 Added: {
39 Added: "include": "#regexp"
40 Added: },
41 Added: {
42 Added: "include": "#var"
43 Added: },
44 Added: {
45 Added: "include": "#constants"
46 Added: },
47 Added: {
48 Added: "include": "#dynamic-variables"
49 Added: },
50 Added: {
51 Added: "include": "#metadata"
52 Added: },
53 Added: {
54 Added: "include": "#namespace-symbol"
55 Added: },
56 Added: {
57 Added: "include": "#symbol"
58 Added: }
59 Added: ],
60 Added: "repository": {
61 Added: "comment": {
62 Added: "begin": "(?<!\\\\);",
63 Added: "beginCaptures": {
64 Added: "0": {
65 Added: "name": "punctuation.definition.comment.clojure"
66 Added: }
67 Added: },
68 Added: "end": "$",
69 Added: "name": "comment.line.semicolon.clojure"
70 Added: },
71 Added: "constants": {
72 Added: "patterns": [
73 Added: {
74 Added: "match": "(nil)(?=(\\s|\\)|\\]|\\}))",
75 Added: "name": "constant.language.nil.clojure"
76 Added: },
77 Added: {
78 Added: "match": "(true|false)",
79 Added: "name": "constant.language.boolean.clojure"
80 Added: },
81 Added: {
82 Added: "match": "(##(?:Inf|-Inf|NaN))",
83 Added: "name": "constant.numeric.symbol.clojure"
84 Added: },
85 Added: {
86 Added: "match": "([-+]?\\d+/\\d+)",
87 Added: "name": "constant.numeric.ratio.clojure"
88 Added: },
89 Added: {
90 Added: "match": "([-+]?(?:(?:3[0-6])|(?:[12]\\d)|[2-9])[rR][0-9A-Za-z]+N?)",
91 Added: "name": "constant.numeric.arbitrary-radix.clojure"
92 Added: },
93 Added: {
94 Added: "match": "([-+]?0[xX][0-9a-fA-F]+N?)",
95 Added: "name": "constant.numeric.hexadecimal.clojure"
96 Added: },
97 Added: {
98 Added: "match": "([-+]?0[0-7]+N?)",
99 Added: "name": "constant.numeric.octal.clojure"
100 Added: },
101 Added: {
102 Added: "match": "([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)",
103 Added: "name": "constant.numeric.double.clojure"
104 Added: },
105 Added: {
106 Added: "match": "([-+]?\\d+N?)",
107 Added: "name": "constant.numeric.long.clojure"
108 Added: },
109 Added: {
110 Added: "include": "#keyword"
111 Added: }
112 Added: ]
113 Added: },
114 Added: "keyword": {
115 Added: "match": "(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",
116 Added: "name": "constant.keyword.clojure"
117 Added: },
118 Added: "keyfn": {
119 Added: "patterns": [
120 Added: {
121 Added: "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))",
122 Added: "name": "storage.control.clojure"
123 Added: },
124 Added: {
125 Added: "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))",
126 Added: "name": "keyword.control.clojure"
127 Added: }
128 Added: ]
129 Added: },
130 Added: "dynamic-variables": {
131 Added: "match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*",
132 Added: "name": "meta.symbol.dynamic.clojure"
133 Added: },
134 Added: "map": {
135 Added: "begin": "(\\{)",
136 Added: "beginCaptures": {
137 Added: "1": {
138 Added: "name": "punctuation.section.map.begin.clojure"
139 Added: }
140 Added: },
141 Added: "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
142 Added: "endCaptures": {
143 Added: "1": {
144 Added: "name": "punctuation.section.map.end.trailing.clojure"
145 Added: },
146 Added: "2": {
147 Added: "name": "punctuation.section.map.end.clojure"
148 Added: }
149 Added: },
150 Added: "name": "meta.map.clojure",
151 Added: "patterns": [
152 Added: {
153 Added: "include": "$self"
154 Added: }
155 Added: ]
156 Added: },
157 Added: "metadata": {
158 Added: "patterns": [
159 Added: {
160 Added: "begin": "(\\^\\{)",
161 Added: "beginCaptures": {
162 Added: "1": {
163 Added: "name": "punctuation.section.metadata.map.begin.clojure"
164 Added: }
165 Added: },
166 Added: "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
167 Added: "endCaptures": {
168 Added: "1": {
169 Added: "name": "punctuation.section.metadata.map.end.trailing.clojure"
170 Added: },
171 Added: "2": {
172 Added: "name": "punctuation.section.metadata.map.end.clojure"
173 Added: }
174 Added: },
175 Added: "name": "meta.metadata.map.clojure",
176 Added: "patterns": [
177 Added: {
178 Added: "include": "$self"
179 Added: }
180 Added: ]
181 Added: },
182 Added: {
183 Added: "begin": "(\\^)",
184 Added: "end": "(\\s)",
185 Added: "name": "meta.metadata.simple.clojure",
186 Added: "patterns": [
187 Added: {
188 Added: "include": "#keyword"
189 Added: },
190 Added: {
191 Added: "include": "$self"
192 Added: }
193 Added: ]
194 Added: }
195 Added: ]
196 Added: },
197 Added: "quoted-sexp": {
198 Added: "begin": "(['``]\\()",
199 Added: "beginCaptures": {
200 Added: "1": {
201 Added: "name": "punctuation.section.expression.begin.clojure"
202 Added: }
203 Added: },
204 Added: "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
205 Added: "endCaptures": {
206 Added: "1": {
207 Added: "name": "punctuation.section.expression.end.trailing.clojure"
208 Added: },
209 Added: "2": {
210 Added: "name": "punctuation.section.expression.end.trailing.clojure"
211 Added: },
212 Added: "3": {
213 Added: "name": "punctuation.section.expression.end.clojure"
214 Added: }
215 Added: },
216 Added: "name": "meta.quoted-expression.clojure",
217 Added: "patterns": [
218 Added: {
219 Added: "include": "$self"
220 Added: }
221 Added: ]
222 Added: },
223 Added: "regexp": {
224 Added: "begin": "#\"",
225 Added: "beginCaptures": {
226 Added: "0": {
227 Added: "name": "punctuation.definition.regexp.begin.clojure"
228 Added: }
229 Added: },
230 Added: "end": "\"",
231 Added: "endCaptures": {
232 Added: "0": {
233 Added: "name": "punctuation.definition.regexp.end.clojure"
234 Added: }
235 Added: },
236 Added: "name": "string.regexp.clojure",
237 Added: "patterns": [
238 Added: {
239 Added: "include": "#regexp_escaped_char"
240 Added: }
241 Added: ]
242 Added: },
243 Added: "regexp_escaped_char": {
244 Added: "match": "\\\\.",
245 Added: "name": "constant.character.escape.clojure"
246 Added: },
247 Added: "set": {
248 Added: "begin": "(\\#\\{)",
249 Added: "beginCaptures": {
250 Added: "1": {
251 Added: "name": "punctuation.section.set.begin.clojure"
252 Added: }
253 Added: },
254 Added: "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
255 Added: "endCaptures": {
256 Added: "1": {
257 Added: "name": "punctuation.section.set.end.trailing.clojure"
258 Added: },
259 Added: "2": {
260 Added: "name": "punctuation.section.set.end.clojure"
261 Added: }
262 Added: },
263 Added: "name": "meta.set.clojure",
264 Added: "patterns": [
265 Added: {
266 Added: "include": "$self"
267 Added: }
268 Added: ]
269 Added: },
270 Added: "sexp": {
271 Added: "begin": "(\\()",
272 Added: "beginCaptures": {
273 Added: "1": {
274 Added: "name": "punctuation.section.expression.begin.clojure"
275 Added: }
276 Added: },
277 Added: "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
278 Added: "endCaptures": {
279 Added: "1": {
280 Added: "name": "punctuation.section.expression.end.trailing.clojure"
281 Added: },
282 Added: "2": {
283 Added: "name": "punctuation.section.expression.end.trailing.clojure"
284 Added: },
285 Added: "3": {
286 Added: "name": "punctuation.section.expression.end.clojure"
287 Added: }
288 Added: },
289 Added: "name": "meta.expression.clojure",
290 Added: "patterns": [
291 Added: {
292 Added: "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=><!?*-]*|[\\w._:+=><!?*-][\\w\\d._:+=><!?*-]*/def[\\w\\d._:+=><!?*-]*)\\s+",
293 Added: "beginCaptures": {
294 Added: "1": {
295 Added: "name": "keyword.control.clojure"
296 Added: }
297 Added: },
298 Added: "end": "(?=\\))",
299 Added: "name": "meta.definition.global.clojure",
300 Added: "patterns": [
301 Added: {
302 Added: "include": "#metadata"
303 Added: },
304 Added: {
305 Added: "include": "#dynamic-variables"
306 Added: },
307 Added: {
308 Added: "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",
309 Added: "name": "entity.global.clojure"
310 Added: },
311 Added: {
312 Added: "include": "$self"
313 Added: }
314 Added: ]
315 Added: },
316 Added: {
317 Added: "include": "#keyfn"
318 Added: },
319 Added: {
320 Added: "include": "#constants"
321 Added: },
322 Added: {
323 Added: "include": "#vector"
324 Added: },
325 Added: {
326 Added: "include": "#map"
327 Added: },
328 Added: {
329 Added: "include": "#set"
330 Added: },
331 Added: {
332 Added: "include": "#sexp"
333 Added: },
334 Added: {
335 Added: "match": "(?<=\\()(.+?)(?=\\s|\\))",
336 Added: "captures": {
337 Added: "1": {
338 Added: "name": "entity.name.function.clojure"
339 Added: }
340 Added: },
341 Added: "patterns": [
342 Added: {
343 Added: "include": "$self"
344 Added: }
345 Added: ]
346 Added: },
347 Added: {
348 Added: "include": "$self"
349 Added: }
350 Added: ]
351 Added: },
352 Added: "shebang-comment": {
353 Added: "begin": "^(#!)",
354 Added: "beginCaptures": {
355 Added: "1": {
356 Added: "name": "punctuation.definition.comment.shebang.clojure"
357 Added: }
358 Added: },
359 Added: "end": "$",
360 Added: "name": "comment.line.shebang.clojure"
361 Added: },
362 Added: "string": {
363 Added: "begin": "(?<!\\\\)(\")",
364 Added: "beginCaptures": {
365 Added: "1": {
366 Added: "name": "punctuation.definition.string.begin.clojure"
367 Added: }
368 Added: },
369 Added: "end": "(\")",
370 Added: "endCaptures": {
371 Added: "1": {
372 Added: "name": "punctuation.definition.string.end.clojure"
373 Added: }
374 Added: },
375 Added: "name": "string.quoted.double.clojure",
376 Added: "patterns": [
377 Added: {
378 Added: "match": "\\\\.",
379 Added: "name": "constant.character.escape.clojure"
380 Added: }
381 Added: ]
382 Added: },
383 Added: "namespace-symbol": {
384 Added: "patterns": [
385 Added: {
386 Added: "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/",
387 Added: "captures": {
388 Added: "1": {
389 Added: "name": "meta.symbol.namespace.clojure"
390 Added: }
391 Added: }
392 Added: }
393 Added: ]
394 Added: },
395 Added: "symbol": {
396 Added: "patterns": [
397 Added: {
398 Added: "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",
399 Added: "name": "meta.symbol.clojure"
400 Added: }
401 Added: ]
402 Added: },
403 Added: "var": {
404 Added: "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",
405 Added: "name": "meta.var.clojure"
406 Added: },
407 Added: "vector": {
408 Added: "begin": "(\\[)",
409 Added: "beginCaptures": {
410 Added: "1": {
411 Added: "name": "punctuation.section.vector.begin.clojure"
412 Added: }
413 Added: },
414 Added: "end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",
415 Added: "endCaptures": {
416 Added: "1": {
417 Added: "name": "punctuation.section.vector.end.trailing.clojure"
418 Added: },
419 Added: "2": {
420 Added: "name": "punctuation.section.vector.end.clojure"
421 Added: }
422 Added: },
423 Added: "name": "meta.vector.clojure",
424 Added: "patterns": [
425 Added: {
426 Added: "include": "$self"
427 Added: }
428 Added: ]
429 Added: }
430 Added: }
431 Added: }
lib/grammars/dart.json
index 00000000..f05d62d8 000000..100644
@@ -0,0 +1,609 @@
1 Added: {
2 Added: "name": "Dart",
3 Added: "version": "1.6.0",
4 Added: "fileTypes": [
5 Added: "dart"
6 Added: ],
7 Added: "scopeName": "source.dart",
8 Added:
9 Added: "foldingStartMarker": "\\{\\s*$",
10 Added: "foldingStopMarker": "^\\s*\\}",
11 Added:
12 Added: "patterns": [
13 Added: {
14 Added: "name": "meta.preprocessor.script.dart",
15 Added: "match": "^(#!.*)$"
16 Added: },
17 Added: {
18 Added: "name": "meta.declaration.dart",
19 Added: "begin": "^\\w*\\b(augment\\s+library|library|import\\s+augment|import|part\\s+of|part|export)\\b",
20 Added: "beginCaptures": {
21 Added: "0": {
22 Added: "name": "keyword.other.import.dart"
23 Added: }
24 Added: },
25 Added: "end": ";",
26 Added: "endCaptures": {
27 Added: "0": {
28 Added: "name": "punctuation.terminator.dart"
29 Added: }
30 Added: },
31 Added: "patterns": [
32 Added: {
33 Added: "include": "#strings"
34 Added: },
35 Added: {
36 Added: "include": "#comments"
37 Added: },
38 Added: {
39 Added: "name": "keyword.other.import.dart",
40 Added: "match": "\\b(as|show|hide)\\b"
41 Added: },
42 Added: {
43 Added: "name": "keyword.control.dart",
44 Added: "match": "\\b(if)\\b"
45 Added: }
46 Added: ]
47 Added: },
48 Added: {
49 Added: "include": "#comments"
50 Added: },
51 Added: {
52 Added: "include": "#punctuation"
53 Added: },
54 Added: {
55 Added: "include": "#annotations"
56 Added: },
57 Added: {
58 Added: "include": "#keywords"
59 Added: },
60 Added: {
61 Added: "include": "#constants-and-special-vars"
62 Added: },
63 Added: {
64 Added: "include": "#class-identifier-with-optional-factory-method"
65 Added: },
66 Added: {
67 Added: "include": "#function-identifier"
68 Added: },
69 Added: {
70 Added: "include": "#operators"
71 Added: },
72 Added: {
73 Added: "include": "#strings"
74 Added: }
75 Added: ],
76 Added:
77 Added: "repository": {
78 Added: "dartdoc-codeblock-triple": {
79 Added: "begin": "^\\s*///\\s*(?!\\s*```)",
80 Added: "end": "$",
81 Added: "contentName": "variable.other.source.dart"
82 Added: },
83 Added: "dartdoc-codeblock-block": {
84 Added: "begin": "^\\s*\\*\\s*(?!(\\s*```|\/))",
85 Added: "end": "$",
86 Added: "contentName": "variable.other.source.dart"
87 Added: },
88 Added: "dartdoc": {
89 Added: "patterns": [
90 Added: {
91 Added: "match": "(\\[.*?\\])",
92 Added: "captures": {
93 Added: "0": {
94 Added: "name": "variable.name.source.dart"
95 Added: }
96 Added: }
97 Added: },
98 Added: {
99 Added: "begin": "^\\s*///\\s*(```)",
100 Added: "end": "^\\s*///\\s*(```)|^(?!\\s*///)",
101 Added: "patterns": [
102 Added: {
103 Added: "include": "#dartdoc-codeblock-triple"
104 Added: }
105 Added: ]
106 Added: },
107 Added: {
108 Added: "begin": "^\\s*\\*\\s*(```)",
109 Added: "end": "^\\s*\\*\\s*(```)|^(?=\\s*\\*\/)",
110 Added: "patterns": [
111 Added: {
112 Added: "include": "#dartdoc-codeblock-block"
113 Added: }
114 Added: ]
115 Added: },
116 Added: {
117 Added: "match": "`[^`\n]+`",
118 Added: "name": "variable.other.source.dart"
119 Added: },
120 Added: {
121 Added: "match": "(?:\\*|\\/\\/)\\s{4,}(.*?)(?=($|\\*\\/))",
122 Added: "captures": {
123 Added: "1": {
124 Added: "name": "variable.other.source.dart"
125 Added: }
126 Added: }
127 Added: }
128 Added: ]
129 Added: },
130 Added: "comments": {
131 Added: "patterns": [
132 Added: {
133 Added: "name": "comment.block.empty.dart",
134 Added: "match": "/\\*\\*/",
135 Added: "captures": {
136 Added: "0": {
137 Added: "name": "punctuation.definition.comment.dart"
138 Added: }
139 Added: }
140 Added: },
141 Added: {
142 Added: "include": "#comments-doc-oldschool"
143 Added: },
144 Added: {
145 Added: "include": "#comments-doc"
146 Added: },
147 Added: {
148 Added: "include": "#comments-inline"
149 Added: }
150 Added: ]
151 Added: },
152 Added: "comments-doc-oldschool": {
153 Added: "patterns": [
154 Added: {
155 Added: "name": "comment.block.documentation.dart",
156 Added: "begin": "/\\*\\*",
157 Added: "end": "\\*/",
158 Added: "patterns": [
159 Added: {
160 Added: "include": "#comments-doc-oldschool"
161 Added: },
162 Added: {
163 Added: "include": "#comments-block"
164 Added: },
165 Added: {
166 Added: "include": "#dartdoc"
167 Added: }
168 Added: ]
169 Added: }
170 Added: ]
171 Added: },
172 Added: "comments-doc": {
173 Added: "patterns": [
174 Added: {
175 Added: "name": "comment.block.documentation.dart",
176 Added: "begin": "///",
177 Added: "end": "^(?!\\s*///)",
178 Added: "patterns": [
179 Added: {
180 Added: "include": "#dartdoc"
181 Added: }
182 Added: ]
183 Added: }
184 Added: ]
185 Added: },
186 Added: "comments-inline": {
187 Added: "patterns": [
188 Added: {
189 Added: "include": "#comments-block"
190 Added: },
191 Added: {
192 Added: "match": "((//).*)$",
193 Added: "captures": {
194 Added: "1": {
195 Added: "name": "comment.line.double-slash.dart"
196 Added: }
197 Added: }
198 Added: }
199 Added: ]
200 Added: },
201 Added: "comments-block": {
202 Added: "patterns": [
203 Added: {
204 Added: "name": "comment.block.dart",
205 Added: "begin": "/\\*",
206 Added: "end": "\\*/",
207 Added: "patterns": [
208 Added: {
209 Added: "include": "#comments-block"
210 Added: }
211 Added: ]
212 Added: }
213 Added: ]
214 Added: },
215 Added: "annotations": {
216 Added: "patterns": [
217 Added: {
218 Added: "name": "storage.type.annotation.dart",
219 Added: "match": "@[a-zA-Z]+"
220 Added: }
221 Added: ]
222 Added: },
223 Added: "constants-and-special-vars": {
224 Added: "patterns": [
225 Added: {
226 Added: "name": "constant.language.dart",
227 Added: "match": "(?<!\\$)\\b(true|false|null)\\b(?!\\$)"
228 Added: },
229 Added: {
230 Added: "name": "variable.language.dart",
231 Added: "match": "(?<!\\$)\\b(this|super|augmented)\\b(?!\\$)"
232 Added: },
233 Added: {
234 Added: "name": "constant.numeric.dart",
235 Added: "match": "(?<!\\$)\\b((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(([0-9][0-9_]*\\.?[0-9_]*)|(\\.[0-9][0-9_]*))((e|E)(\\+|-)?[0-9][0-9_]*)?)\\b(?!\\$)"
236 Added: }
237 Added: ]
238 Added: },
239 Added: "class-identifier-with-optional-factory-method": {
240 Added: "patterns": [
241 Added: {
242 Added: "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)\\s*(factory\\b)?",
243 Added: "captures": {
244 Added: "1": {
245 Added: "name": "support.class.dart"
246 Added: },
247 Added: "2": {
248 Added: "name": "entity.name.function.dart"
249 Added: }
250 Added: }
251 Added: },
252 Added: {
253 Added: "match": "(?<!\\$)\\b(void)\\b(?!\\$)\\s*(factory\\b)?",
254 Added: "captures": {
255 Added: "1": {
256 Added: "name": "storage.type.primitive.dart"
257 Added: },
258 Added: "2": {
259 Added: "name": "entity.name.function.dart"
260 Added: }
261 Added: }
262 Added: },
263 Added: {
264 Added: "begin": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b\\s*(factory\\b)?",
265 Added: "end": "(?!<)",
266 Added: "beginCaptures": {
267 Added: "1": {
268 Added: "name": "support.class.dart"
269 Added: },
270 Added: "2": {
271 Added: "name": "entity.name.function.dart"
272 Added: }
273 Added: },
274 Added: "patterns": [
275 Added: {
276 Added: "include": "#type-args"
277 Added: }
278 Added: ]
279 Added: }
280 Added: ]
281 Added: },
282 Added: "class-identifier": {
283 Added: "patterns": [
284 Added: {
285 Added: "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)",
286 Added: "name": "support.class.dart"
287 Added: },
288 Added: {
289 Added: "match": "(?<!\\$)\\bvoid\\b(?!\\$)",
290 Added: "name": "storage.type.primitive.dart"
291 Added: },
292 Added: {
293 Added: "begin": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b",
294 Added: "end": "(?!<)",
295 Added: "beginCaptures": {
296 Added: "1": {
297 Added: "name": "support.class.dart"
298 Added: }
299 Added: },
300 Added: "patterns": [
301 Added: {
302 Added: "include": "#type-args"
303 Added: }
304 Added: ]
305 Added: }
306 Added: ]
307 Added: },
308 Added: "function-identifier": {
309 Added: "patterns": [
310 Added: {
311 Added: "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(",
312 Added: "captures": {
313 Added: "1": {
314 Added: "name": "entity.name.function.dart"
315 Added: },
316 Added: "2": {
317 Added: "patterns": [
318 Added: {
319 Added: "include": "#type-args"
320 Added: }
321 Added: ]
322 Added: }
323 Added: }
324 Added: },
325 Added: {
326 Added: "match": "(?<=\\.)new\\b",
327 Added: "name": "entity.name.function.dart"
328 Added: }
329 Added: ]
330 Added: },
331 Added: "type-args": {
332 Added: "begin": "(<)",
333 Added: "end": "(>)",
334 Added: "beginCaptures": {
335 Added: "1": {
336 Added: "name": "other.source.dart"
337 Added: }
338 Added: },
339 Added: "endCaptures": {
340 Added: "1": {
341 Added: "name": "other.source.dart"
342 Added: }
343 Added: },
344 Added: "patterns": [
345 Added: {
346 Added: "include": "#class-identifier"
347 Added: },
348 Added: {
349 Added: "match": ","
350 Added: },
351 Added: {
352 Added: "name": "keyword.declaration.dart",
353 Added: "match": "extends"
354 Added: },
355 Added: {
356 Added: "include": "#comments"
357 Added: }
358 Added: ]
359 Added: },
360 Added: "keywords": {
361 Added: "patterns": [
362 Added: {
363 Added: "name": "keyword.cast.dart",
364 Added: "match": "(?<!\\$)\\bas\\b(?!\\$)"
365 Added: },
366 Added: {
367 Added: "name": "keyword.control.catch-exception.dart",
368 Added: "match": "(?<!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)"
369 Added: },
370 Added: {
371 Added: "name": "keyword.control.dart",
372 Added: "match": "(?<!\\$)\\b(break|case|continue|default|do|else|for|if|in|switch|while|when)\\b(?!\\$)"
373 Added: },
374 Added: {
375 Added: "name": "keyword.control.dart",
376 Added: "match": "(?<!\\$)\\b(sync(\\*)?|async(\\*)?|await|yield(\\*)?)\\b(?!\\$)"
377 Added: },
378 Added: {
379 Added: "name": "keyword.control.dart",
380 Added: "match": "(?<!\\$)\\bassert\\b(?!\\$)"
381 Added: },
382 Added: {
383 Added: "name": "keyword.new.dart",
384 Added: "match": "(?<![\\$\\.])\\b(new)\\b(?!\\$)"
385 Added: },
386 Added: {
387 Added: "name": "keyword.control.return.dart",
388 Added: "match": "(?<!\\$)\\b(return)\\b(?!\\$)"
389 Added: },
390 Added: {
391 Added: "name": "keyword.declaration.dart",
392 Added: "match": "(?<!\\$)\\b(abstract|sealed|base|interface|class|enum|extends|extension\\s+type|extension|external|factory|implements|get(?![(<])|mixin|native|operator|set(?![(<])|typedef|with|covariant)\\b(?!\\$)"
393 Added: },
394 Added: {
395 Added: "name": "storage.modifier.dart",
396 Added: "match": "(?<!\\$)\\b(macro|augment|static|final|const|required|late)\\b(?!\\$)"
397 Added: },
398 Added: {
399 Added: "name": "storage.type.primitive.dart",
400 Added: "match": "(?<!\\$)\\b(?:var)\\b(?!\\$)"
401 Added: }
402 Added: ]
403 Added: },
404 Added: "operators": {
405 Added: "patterns": [
406 Added: {
407 Added: "name": "keyword.operator.dart",
408 Added: "match": "(?<!\\$)\\b(is\\!?)\\b(?!\\$)"
409 Added: },
410 Added: {
411 Added: "name": "keyword.operator.ternary.dart",
412 Added: "match": "\\?|:"
413 Added: },
414 Added: {
415 Added: "name": "keyword.operator.bitwise.dart",
416 Added: "match": "(<<|>>>?|~|\\^|\\||&)"
417 Added: },
418 Added: {
419 Added: "name": "keyword.operator.assignment.bitwise.dart",
420 Added: "match": "((&|\\^|\\||<<|>>>?)=)"
421 Added: },
422 Added: {
423 Added: "name": "keyword.operator.closure.dart",
424 Added: "match": "(=>)"
425 Added: },
426 Added: {
427 Added: "name": "keyword.operator.comparison.dart",
428 Added: "match": "(==|!=|<=?|>=?)"
429 Added: },
430 Added: {
431 Added: "name": "keyword.operator.assignment.arithmetic.dart",
432 Added: "match": "(([+*/%-]|\\~)=)"
433 Added: },
434 Added: {
435 Added: "name": "keyword.operator.assignment.dart",
436 Added: "match": "(=)"
437 Added: },
438 Added: {
439 Added: "name": "keyword.operator.increment-decrement.dart",
440 Added: "match": "(\\-\\-|\\+\\+)"
441 Added: },
442 Added: {
443 Added: "name": "keyword.operator.arithmetic.dart",
444 Added: "match": "(\\-|\\+|\\*|\\/|\\~\\/|%)"
445 Added: },
446 Added: {
447 Added: "name": "keyword.operator.logical.dart",
448 Added: "match": "(!|&&|\\|\\|)"
449 Added: }
450 Added: ]
451 Added: },
452 Added: "expression": {
453 Added: "patterns": [
454 Added: {
455 Added: "include": "#constants-and-special-vars"
456 Added: },
457 Added: {
458 Added: "include": "#class-identifier-with-optional-factory-method"
459 Added: },
460 Added: {
461 Added: "include": "#function-identifier"
462 Added: },
463 Added: {
464 Added: "include": "#strings"
465 Added: },
466 Added: {
467 Added: "name": "variable.parameter.dart",
468 Added: "match": "[a-zA-Z0-9_]+"
469 Added: },
470 Added: {
471 Added: "begin": "\\{",
472 Added: "end": "\\}",
473 Added: "patterns": [
474 Added: {
475 Added: "include": "#expression"
476 Added: }
477 Added: ]
478 Added: }
479 Added: ]
480 Added: },
481 Added: "string-interp": {
482 Added: "patterns": [
483 Added: {
484 Added: "name": "meta.embedded.expression.dart",
485 Added: "match": "\\$([a-zA-Z0-9_]+)",
486 Added: "captures": {
487 Added: "1": {
488 Added: "name": "variable.parameter.dart"
489 Added: }
490 Added: }
491 Added: },
492 Added: {
493 Added: "name": "meta.embedded.expression.dart",
494 Added: "begin": "\\$\\{",
495 Added: "end": "\\}",
496 Added: "patterns": [
497 Added: {
498 Added: "include": "#expression"
499 Added: }
500 Added: ]
501 Added: },
502 Added: {
503 Added: "name": "constant.character.escape.dart",
504 Added: "match": "\\\\."
505 Added: }
506 Added: ]
507 Added: },
508 Added: "strings": {
509 Added: "patterns": [
510 Added: {
511 Added: "name": "string.interpolated.triple.double.dart",
512 Added: "begin": "(?<!r)\"\"\"",
513 Added: "end": "\"\"\"(?!\")",
514 Added: "patterns": [
515 Added: {
516 Added: "include": "#string-interp"
517 Added: }
518 Added: ]
519 Added: },
520 Added: {
521 Added: "name": "string.interpolated.triple.single.dart",
522 Added: "begin": "(?<!r)'''",
523 Added: "end": "'''(?!')",
524 Added: "patterns": [
525 Added: {
526 Added: "include": "#string-interp"
527 Added: }
528 Added: ]
529 Added: },
530 Added: {
531 Added: "name": "string.quoted.triple.double.dart",
532 Added: "begin": "r\"\"\"",
533 Added: "end": "\"\"\"(?!\")"
534 Added: },
535 Added: {
536 Added: "name": "string.quoted.triple.single.dart",
537 Added: "begin": "r'''",
538 Added: "end": "'''(?!')"
539 Added: },
540 Added: {
541 Added: "name": "string.interpolated.double.dart",
542 Added: "begin": "(?<!\\|r)\"",
543 Added: "end": "\"",
544 Added: "patterns": [
545 Added: {
546 Added: "name": "invalid.string.newline",
547 Added: "match": "\\n"
548 Added: },
549 Added: {
550 Added: "include": "#string-interp"
551 Added: }
552 Added: ]
553 Added: },
554 Added: {
555 Added: "name": "string.quoted.double.dart",
556 Added: "begin": "r\"",
557 Added: "end": "\"",
558 Added: "patterns": [
559 Added: {
560 Added: "name": "invalid.string.newline",
561 Added: "match": "\\n"
562 Added: }
563 Added: ]
564 Added: },
565 Added: {
566 Added: "name": "string.interpolated.single.dart",
567 Added: "begin": "(?<!\\|r)'",
568 Added: "end": "'",
569 Added: "patterns": [
570 Added: {
571 Added: "name": "invalid.string.newline",
572 Added: "match": "\\n"
573 Added: },
574 Added: {
575 Added: "include": "#string-interp"
576 Added: }
577 Added: ]
578 Added: },
579 Added: {
580 Added: "name": "string.quoted.single.dart",
581 Added: "begin": "r'",
582 Added: "end": "'",
583 Added: "patterns": [
584 Added: {
585 Added: "name": "invalid.string.newline",
586 Added: "match": "\\n"
587 Added: }
588 Added: ]
589 Added: }
590 Added: ]
591 Added: },
592 Added: "punctuation": {
593 Added: "patterns": [
594 Added: {
595 Added: "name": "punctuation.comma.dart",
596 Added: "match": ","
597 Added: },
598 Added: {
599 Added: "name": "punctuation.terminator.dart",
600 Added: "match": ";"
601 Added: },
602 Added: {
603 Added: "name": "punctuation.dot.dart",
604 Added: "match": "\\."
605 Added: }
606 Added: ]
607 Added: }
608 Added: }
609 Added: }
lib/grammars/dune.json
index 00000000..1b5b3b29 000000..100644
@@ -0,0 +1,352 @@
1 Added: {
2 Added: "name": "dune",
3 Added: "scopeName": "source.dune",
4 Added: "fileTypes": [
5 Added: "dune",
6 Added: "jbuild"
7 Added: ],
8 Added: "patterns": [
9 Added: {
10 Added: "include": "#comments"
11 Added: },
12 Added: {
13 Added: "name": "meta.stanza.dune",
14 Added: "begin": "\\([[:space:]]*(library|rule|executable|executables|rule|ocamllex|ocamlyacc|menhir|install|alias|copy_files|copy_files#|jbuild_version|include)[[:space:]]",
15 Added: "end": "\\)",
16 Added: "beginCaptures": {
17 Added: "1": {
18 Added: "name": "meta.class.stanza.dune"
19 Added: }
20 Added: },
21 Added: "patterns": [
22 Added: {
23 Added: "include": "$self"
24 Added: }
25 Added: ]
26 Added: },
27 Added: {
28 Added: "name": "meta.stanza.library.field.dune",
29 Added: "begin": "\\([[:space:]]*(name|public_name|synopsis|install_c_headers|ppx_runtime_libraries|c_flags|cxx_flags|c_names|cxx_names|library_flags|c_library_flags|virtual_deps|modes|kind|wrapped|optional|self_build_stubs_archive|no_dynlink|ppx\\.driver)[[:space:]]",
30 Added: "end": "\\)",
31 Added: "beginCaptures": {
32 Added: "1": {
33 Added: "name": "keyword.other.dune"
34 Added: }
35 Added: },
36 Added: "patterns": [
37 Added: {
38 Added: "include": "$self"
39 Added: }
40 Added: ]
41 Added: },
42 Added: {
43 Added: "name": "meta.stanza.rule.dune",
44 Added: "begin": "\\([[:space:]]*(targets|deps|locks|loc|mode|action)[[:space:]]",
45 Added: "beginCaptures": {
46 Added: "1": {
47 Added: "name": "keyword.other.dune"
48 Added: }
49 Added: },
50 Added: "end": "\\)",
51 Added: "patterns": [
52 Added: {
53 Added: "include": "$self"
54 Added: }
55 Added: ]
56 Added: },
57 Added: {
58 Added: "name": "meta.mono-sexp.dune",
59 Added: "match": "\\([[:space:]]*(fallback|optional)[[:space:]]*\\)",
60 Added: "captures": {
61 Added: "1": {
62 Added: "name": "keyword.other.dune"
63 Added: }
64 Added: }
65 Added: },
66 Added: {
67 Added: "name": "meta.stanza.rule.action.dune",
68 Added: "begin": "\\([[:space:]]*(run|chdir|setenv|with-stdout-to|with-stderr-to|with-outputs-to|ignore-stdout|ignore-stderr|ignore-outputs|progn|echo|cat|copy|copy#|system|bash|write-file|diff|diff\\?)[[:space:]]",
69 Added: "end": "\\)",
70 Added: "beginCaptures": {
71 Added: "1": {
72 Added: "name": "entity.name.function.action.dune"
73 Added: }
74 Added: },
75 Added: "patterns": [
76 Added: {
77 Added: "include": "$self"
78 Added: }
79 Added: ]
80 Added: },
81 Added: {
82 Added: "name": "meta.stanza.install.dune",
83 Added: "begin": "\\([[:space:]]*(section)[[:space:]]",
84 Added: "end": "\\)",
85 Added: "beginCaptures": {
86 Added: "1": {
87 Added: "name": "keyword.other.dune"
88 Added: }
89 Added: },
90 Added: "patterns": [
91 Added: {
92 Added: "name": "constant.language.rule.mode.dune",
93 Added: "match": "\\b(lib|libexec|bin|sbin|toplevel|share|share_root|etc|doc|stublibs|man|misc)\\b"
94 Added: }
95 Added: ]
96 Added: },
97 Added: {
98 Added: "name": "meta.stanza.install.dune",
99 Added: "begin": "\\([[:space:]]*(files)[[:space:]]",
100 Added: "end": "\\)",
101 Added: "beginCaptures": {
102 Added: "1": {
103 Added: "name": "keyword.other.dune"
104 Added: }
105 Added: },
106 Added: "patterns": [
107 Added: {
108 Added: "include": "$self"
109 Added: }
110 Added: ]
111 Added: },
112 Added: {
113 Added: "name": "meta.library.kind.dune",
114 Added: "begin": "\\([[:space:]]*(normal|ppx_deriver|ppx_rewriter)[[:space:]]",
115 Added: "end": "\\)",
116 Added: "beginCaptures": {
117 Added: "1": {
118 Added: "name": "constant.language.rule.mode.dune"
119 Added: }
120 Added: }
121 Added: },
122 Added: {
123 Added: "name": "meta.stanza.executables.dune",
124 Added: "begin": "\\([[:space:]]*(name|link_executables|link_flags|modes)[[:space:]]",
125 Added: "end": "\\)",
126 Added: "beginCaptures": {
127 Added: "1": {
128 Added: "name": "keyword.other.dune"
129 Added: }
130 Added: },
131 Added: "patterns": [
132 Added: {
133 Added: "include": "$self"
134 Added: }
135 Added: ]
136 Added: },
137 Added: {
138 Added: "name": "meta.stanza.lib-or-exec.buildable.dune",
139 Added: "begin": "\\([[:space:]]*(preprocess|preprocessor_deps|lint|modules|modules_without_implementation|libraries|flags|ocamlc_flags|ocamlopt_flags|js_of_ocaml|allow_overlapping_dependencies|per_module)[[:space:]]",
140 Added: "end": "\\)",
141 Added: "beginCaptures": {
142 Added: "1": {
143 Added: "name": "keyword.other.dune"
144 Added: }
145 Added: },
146 Added: "patterns": [
147 Added: {
148 Added: "include": "$self"
149 Added: }
150 Added: ]
151 Added: },
152 Added: {
153 Added: "name": "meta.stanza.lib-or-exec.buildable.preprocess.dune",
154 Added: "begin": "\\([[:space:]]*(no_preprocessing|action|pps)[[:space:]]",
155 Added: "end": "\\)",
156 Added: "beginCaptures": {
157 Added: "1": {
158 Added: "name": "keyword.other.dune"
159 Added: }
160 Added: },
161 Added: "patterns": [
162 Added: {
163 Added: "include": "$self"
164 Added: }
165 Added: ]
166 Added: },
167 Added: {
168 Added: "name": "meta.stanza.lib-or-exec.buildable.preprocess_deps.dune",
169 Added: "begin": "\\([[:space:]]*(file|alias|alias_rec|glob_files|files_recursively_in)[[:space:]]",
170 Added: "end": "\\)",
171 Added: "beginCaptures": {
172 Added: "1": {
173 Added: "name": "keyword.other.dune"
174 Added: }
175 Added: },
176 Added: "patterns": [
177 Added: {
178 Added: "include": "$self"
179 Added: }
180 Added: ]
181 Added: },
182 Added: {
183 Added: "name": "meta.stanza.lib-or-exec.buildable.libraries.dune",
184 Added: "begin": "\\([[:space:]]*(select)[[:space:]]",
185 Added: "end": "\\)",
186 Added: "beginCaptures": {
187 Added: "1": {
188 Added: "name": "keyword.other.dune"
189 Added: }
190 Added: },
191 Added: "patterns": [
192 Added: {
193 Added: "include": "$self"
194 Added: }
195 Added: ]
196 Added: },
197 Added: {
198 Added: "name": "constant.numeric.dune",
199 Added: "match": "\\b\\d+\\b"
200 Added: },
201 Added: {
202 Added: "name": "constant.language.dune",
203 Added: "match": "(true|false)"
204 Added: },
205 Added: {
206 Added: "name": "keyword.other.dune",
207 Added: "match": "[[:space:]](as|from|->)[[:space:]]"
208 Added: },
209 Added: {
210 Added: "name": "keyword.other.dune",
211 Added: "match": "(\\!)"
212 Added: },
213 Added: {
214 Added: "name": "constant.language.flag.dune",
215 Added: "match": "(:\\w+)\\b"
216 Added: },
217 Added: {
218 Added: "name": "constant.language.rule.mode.dune",
219 Added: "match": "\\b(standard|fallback|promote|promote-until-then)\\b"
220 Added: },
221 Added: {
222 Added: "include": "#string"
223 Added: },
224 Added: {
225 Added: "include": "#variable"
226 Added: },
227 Added: {
228 Added: "include": "#list"
229 Added: },
230 Added: {
231 Added: "include": "#atom"
232 Added: }
233 Added: ],
234 Added: "repository": {
235 Added: "comments": {
236 Added: "patterns": [
237 Added: {
238 Added: "name": "comment.block.dune",
239 Added: "begin": "#\\|",
240 Added: "beginCaptures": {
241 Added: "0": {
242 Added: "name": "punctuation.definition.comment.begin.dune"
243 Added: }
244 Added: },
245 Added: "end": "\\|#",
246 Added: "endCaptures": {
247 Added: "0": {
248 Added: "name": "punctuation.definition.comment.end.dune"
249 Added: }
250 Added: },
251 Added: "patterns": [
252 Added: {
253 Added: "include": "#comments"
254 Added: }
255 Added: ]
256 Added: },
257 Added: {
258 Added: "name": "comment.sexp.dune",
259 Added: "begin": "#;[[:space:]]*\\(",
260 Added: "end": "\\)",
261 Added: "patterns": [
262 Added: {
263 Added: "include": "#comment-inner"
264 Added: }
265 Added: ]
266 Added: },
267 Added: {
268 Added: "name": "comment.line.dune",
269 Added: "match": ";.*$"
270 Added: }
271 Added: ]
272 Added: },
273 Added: "comment-inner": {
274 Added: "patterns": [
275 Added: {
276 Added: "name": "comment.sexp.inner.dune",
277 Added: "begin": "\\(",
278 Added: "end": "\\)",
279 Added: "patterns": [
280 Added: {
281 Added: "include": "#comment-inner"
282 Added: }
283 Added: ]
284 Added: }
285 Added: ]
286 Added: },
287 Added: "string": {
288 Added: "patterns": [
289 Added: {
290 Added: "name": "string.quoted.double.dune",
291 Added: "begin": "(?=[^\\\\])(\")",
292 Added: "beginCaptures": {
293 Added: "1": {
294 Added: "name": "punctuation.definition.string.begin.dune"
295 Added: }
296 Added: },
297 Added: "end": "(\")",
298 Added: "endCaptures": {
299 Added: "1": {
300 Added: "name": "punctuation.definition.string.end.dune"
301 Added: }
302 Added: },
303 Added: "patterns": [
304 Added: {
305 Added: "name": "constant.character.string.escape.dune",
306 Added: "match": "\\\\\""
307 Added: },
308 Added: {
309 Added: "include": "#variable"
310 Added: }
311 Added: ]
312 Added: }
313 Added: ]
314 Added: },
315 Added: "variable": {
316 Added: "patterns": [
317 Added: {
318 Added: "name": "variable.other.dune",
319 Added: "match": "\\${[^}]*}"
320 Added: }
321 Added: ]
322 Added: },
323 Added: "list": {
324 Added: "patterns": [
325 Added: {
326 Added: "name": "meta.list.dune",
327 Added: "begin": "(\\()",
328 Added: "end": "(\\))",
329 Added: "captures": {
330 Added: "1": {
331 Added: "name": "entity.tag.list.parenthesis.dune"
332 Added: }
333 Added: },
334 Added: "comment": "ok, for this one, I didn't know what to choose",
335 Added: "patterns": [
336 Added: {
337 Added: "include": "$self"
338 Added: }
339 Added: ]
340 Added: }
341 Added: ]
342 Added: },
343 Added: "atom": {
344 Added: "patterns": [
345 Added: {
346 Added: "name": "meta.atom.dune",
347 Added: "match": "\\b[^[[:space:]]]+\\b"
348 Added: }
349 Added: ]
350 Added: }
351 Added: }
352 Added: }
lib/grammars/elixir.json
index 00000000..eb5adb1a 000000..100644
@@ -0,0 +1,2736 @@
1 Added: {
2 Added: "comment": "Syntax Parser for Elixir Programming Language.",
3 Added: "fileTypes": ["ex", "exs"],
4 Added: "firstLineMatch": "^#!/.*\\belixir",
5 Added: "foldingStartMarker": "(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$",
6 Added: "foldingStopMarker": "^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)",
7 Added: "name": "Elixir",
8 Added: "injections": {
9 Added: "R:text.html.elixir meta.tag meta.attribute string.quoted": {
10 Added: "comment": "Uses R: to ensure this matches after any other injections.",
11 Added: "patterns": [
12 Added: {
13 Added: "include": "text.elixir"
14 Added: }
15 Added: ]
16 Added: }
17 Added: },
18 Added: "patterns": [
19 Added: {
20 Added: "captures": {
21 Added: "1": {
22 Added: "name": "keyword.control.module.elixir"
23 Added: },
24 Added: "2": {
25 Added: "name": "entity.name.type.module.elixir"
26 Added: }
27 Added: },
28 Added: "match": "^\\s*(defmodule|defprotocol|defimpl)\\s+(([A-Z][A-Za-z0-9_]*\\s*(\\.)\\s*)*[A-Z][A-Za-z0-9_]*)",
29 Added: "name": "meta.module.elixir"
30 Added: },
31 Added: {
32 Added: "begin": "@(module|type)?doc\\s*(~s)?\"\"\"",
33 Added: "comment": "@doc with interpolated heredocs",
34 Added: "end": "\\s*\"\"\"",
35 Added: "name": "comment.documentation.heredoc.elixir",
36 Added: "patterns": [
37 Added: {
38 Added: "include": "#interpolated_elixir"
39 Added: },
40 Added: {
41 Added: "include": "#escaped_char"
42 Added: }
43 Added: ]
44 Added: },
45 Added: {
46 Added: "begin": "@(module|type)?doc\\s*(~s)?'''",
47 Added: "comment": "@doc with interpolated single quoted heredocs",
48 Added: "end": "\\s*'''",
49 Added: "name": "comment.documentation.heredoc.elixir",
50 Added: "patterns": [
51 Added: {
52 Added: "include": "#interpolated_elixir"
53 Added: },
54 Added: {
55 Added: "include": "#escaped_char"
56 Added: }
57 Added: ]
58 Added: },
59 Added: {
60 Added: "begin": "@(module|type)?doc\\s*~S\"\"\"",
61 Added: "comment": "@doc with heredocs is treated as documentation",
62 Added: "end": "\\s*\"\"\"",
63 Added: "name": "comment.documentation.heredoc.elixir",
64 Added: "patterns": [
65 Added: {
66 Added: "include": "#escaped_char"
67 Added: }
68 Added: ]
69 Added: },
70 Added: {
71 Added: "begin": "@(module|type)?doc\\s*~S'''",
72 Added: "comment": "@doc with heredocs is treated as documentation",
73 Added: "end": "\\s*'''",
74 Added: "name": "comment.documentation.heredoc.elixir",
75 Added: "patterns": [
76 Added: {
77 Added: "include": "#escaped_char"
78 Added: }
79 Added: ]
80 Added: },
81 Added: {
82 Added: "comment": "@doc false is treated as documentation",
83 Added: "match": "@(module|type)?doc\\s*false",
84 Added: "name": "comment.documentation.false"
85 Added: },
86 Added: {
87 Added: "comment": "@doc since|deprecated is treated as documentation",
88 Added: "begin": "@(module|type)?doc\\s*(since|deprecated): '",
89 Added: "end": "'",
90 Added: "name": "comment.documentation.false"
91 Added: },
92 Added: {
93 Added: "comment": "@doc since|deprecated is treated as documentation",
94 Added: "begin": "@(module|type)?doc\\s*(since|deprecated): \"",
95 Added: "end": "\"",
96 Added: "name": "comment.documentation.false"
97 Added: },
98 Added: {
99 Added: "comment": "@deprecated is treated as documentation",
100 Added: "begin": "@deprecated\\s*'",
101 Added: "end": "'",
102 Added: "name": "comment.documentation.false"
103 Added: },
104 Added: {
105 Added: "comment": "@deprecated is treated as documentation",
106 Added: "begin": "@deprecated\\s*\"",
107 Added: "end": "\"",
108 Added: "name": "comment.documentation.false"
109 Added: },
110 Added: {
111 Added: "begin": "@(module|type)?doc\\s*\"",
112 Added: "comment": "@doc with string is treated as documentation",
113 Added: "end": "\"",
114 Added: "name": "comment.documentation.string",
115 Added: "patterns": [
116 Added: {
117 Added: "include": "#interpolated_elixir"
118 Added: },
119 Added: {
120 Added: "include": "#escaped_char"
121 Added: }
122 Added: ]
123 Added: },
124 Added: {
125 Added: "begin": "@(module|type)?doc\\s*'",
126 Added: "comment": "@doc with string is treated as documentation",
127 Added: "end": "'",
128 Added: "name": "comment.documentation.string",
129 Added: "patterns": [
130 Added: {
131 Added: "include": "#interpolated_elixir"
132 Added: },
133 Added: {
134 Added: "include": "#escaped_char"
135 Added: }
136 Added: ]
137 Added: },
138 Added: {
139 Added: "match": "(?<!\\.)\\b(alias|require|import|use)\\b(?![?!])",
140 Added: "name": "keyword.other.special-method.elixir"
141 Added: },
142 Added: {
143 Added: "captures": {
144 Added: "1": {
145 Added: "name": "punctuation.definition.constant.elixir"
146 Added: }
147 Added: },
148 Added: "comment": "Atom key",
149 Added: "match": "(?:<<<|<<>>|<<~|<~>|<>|<=|<-|<~|<|>>>|>=|>|\\+\\+\\+|\\+\\+|\\+|---|--|->|-|\\*\\*|\\*|\\|\\|\\||\\|\\||\\|>|\\||%{}|%|&&&|&&|&|===|==|=~|=>|=|!==|!=|!|\\.\\.|\\.|~>>|~>|\\^|{}|@|\\/|\\\\\\\\|[\\p{L}_][\\p{L}\\p{N}_@]*[?!]?)(:)(?!:|\\b)",
150 Added: "name": "constant.language.symbol.elixir"
151 Added: },
152 Added: {
153 Added: "match": "(?<!\\.)\\b(do|end|case|for|if|cond|with|unless|try|receive|fn|defmodule|defprotocol|defimpl|defrecordp?|defstruct|defcallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|reraise|throw|quote|unquote|unquote_splicing|super|when|and|or|not|in)\\b(?![?!])",
154 Added: "name": "keyword.control.elixir"
155 Added: },
156 Added: {
157 Added: "comment": "Function with parameters",
158 Added: "begin": "\\b(defp?|defmacrop?|defguardp?|defdelegate)\\b\\s*([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*\\(",
159 Added: "name": "meta.function.definition.elixir",
160 Added: "beginCaptures": {
161 Added: "1": {
162 Added: "name": "keyword.control.elixir"
163 Added: },
164 Added: "2": {
165 Added: "name": "entity.name.function.elixir"
166 Added: }
167 Added: },
168 Added: "end": "\\)",
169 Added: "patterns": [
170 Added: {
171 Added: "include": "$self"
172 Added: }
173 Added: ]
174 Added: },
175 Added: {
176 Added: "comment": "Function without parameters",
177 Added: "match": "\\b(defp?|defmacrop?|defguardp?|defdelegate)\\b\\s*([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
178 Added: "name": "meta.function.definition.elixir",
179 Added: "captures": {
180 Added: "1": {
181 Added: "name": "keyword.control.elixir"
182 Added: },
183 Added: "2": {
184 Added: "name": "entity.name.function.elixir"
185 Added: }
186 Added: }
187 Added: },
188 Added: {
189 Added: "comment": "Typespec with parameters",
190 Added: "begin": "((@)(callback|macrocallback|spec|typep?|opaque))\\b\\s*([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*\\(",
191 Added: "name": "meta.type.definition.elixir",
192 Added: "beginCaptures": {
193 Added: "2": {
194 Added: "name": "punctuation.definition.variable.elixir"
195 Added: },
196 Added: "1": {
197 Added: "name": "variable.other.constant.elixir"
198 Added: },
199 Added: "4": {
200 Added: "name": "entity.name.function.typespec.elixir"
201 Added: }
202 Added: },
203 Added: "end": "\\)",
204 Added: "patterns": [
205 Added: {
206 Added: "include": "$self"
207 Added: }
208 Added: ]
209 Added: },
210 Added: {
211 Added: "comment": "Typespec without parameters",
212 Added: "match": "((@)(callback|macrocallback|spec|typep?|opaque))\\b\\s*([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
213 Added: "name": "meta.type.definition.elixir",
214 Added: "captures": {
215 Added: "2": {
216 Added: "name": "punctuation.definition.variable.elixir"
217 Added: },
218 Added: "1": {
219 Added: "name": "variable.other.constant.elixir"
220 Added: },
221 Added: "4": {
222 Added: "name": "entity.name.function.typespec.elixir"
223 Added: }
224 Added: }
225 Added: },
226 Added: {
227 Added: "comment": " as above, just doesn't need a 'end' and does a logic operation",
228 Added: "match": "(?<!\\.)\\b(and|not|or|when|in)\\b",
229 Added: "name": "keyword.operator.elixir"
230 Added: },
231 Added: {
232 Added: "comment": "Keyword",
233 Added: "match": "\\b(nil|true|false)\\b(?![?!])",
234 Added: "name": "constant.language.elixir"
235 Added: },
236 Added: {
237 Added: "comment": "Access",
238 Added: "match": "((@)[_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*(\\.)\\s*\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*(\\.)\\s*\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)(?!\\s*\\.)",
239 Added: "captures": {
240 Added: "2": {
241 Added: "name": "punctuation.definition.variable.elixir"
242 Added: },
243 Added: "1": {
244 Added: "name": "variable.other.constant.elixir"
245 Added: },
246 Added: "3": {
247 Added: "name": "punctuation.separator.method.elixir"
248 Added: },
249 Added: "4": {
250 Added: "name": "variable.other.readwrite.elixir"
251 Added: },
252 Added: "5": {
253 Added: "name": "punctuation.separator.method.elixir"
254 Added: },
255 Added: "6": {
256 Added: "name": "variable.other.readwrite.elixir"
257 Added: }
258 Added: }
259 Added: },
260 Added: {
261 Added: "comment": "Access",
262 Added: "match": "((@)[_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*(\\.)\\s*\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
263 Added: "captures": {
264 Added: "2": {
265 Added: "name": "punctuation.definition.variable.elixir"
266 Added: },
267 Added: "1": {
268 Added: "name": "variable.other.constant.elixir"
269 Added: },
270 Added: "3": {
271 Added: "name": "punctuation.separator.method.elixir"
272 Added: },
273 Added: "4": {
274 Added: "name": "variable.other.readwrite.elixir"
275 Added: }
276 Added: }
277 Added: },
278 Added: {
279 Added: "comment": "Access",
280 Added: "match": "\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*(\\.)\\s*\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*(\\.)\\s*\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)(?!\\s*\\.)",
281 Added: "captures": {
282 Added: "1": {
283 Added: "name": "variable.other.readwrite.elixir"
284 Added: },
285 Added: "2": {
286 Added: "name": "punctuation.separator.method.elixir"
287 Added: },
288 Added: "3": {
289 Added: "name": "variable.other.readwrite.elixir"
290 Added: },
291 Added: "4": {
292 Added: "name": "punctuation.separator.method.elixir"
293 Added: },
294 Added: "5": {
295 Added: "name": "variable.other.readwrite.elixir"
296 Added: }
297 Added: }
298 Added: },
299 Added: {
300 Added: "comment": "Access",
301 Added: "match": "\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)\\s*(\\.)\\s*\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
302 Added: "captures": {
303 Added: "1": {
304 Added: "name": "variable.other.readwrite.elixir"
305 Added: },
306 Added: "2": {
307 Added: "name": "punctuation.separator.method.elixir"
308 Added: },
309 Added: "3": {
310 Added: "name": "variable.other.readwrite.elixir"
311 Added: }
312 Added: }
313 Added: },
314 Added: {
315 Added: "comment": "Dot call",
316 Added: "match": "\\b(?<=\\.)\\s*([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)(?!\\s*\\.)",
317 Added: "name": "entity.name.function.call.dot.elixir"
318 Added: },
319 Added: {
320 Added: "begin": "(?<=\\.)\\s*\"",
321 Added: "captures": {
322 Added: "1": {
323 Added: "name": "punctuation.definition.constant.elixir"
324 Added: }
325 Added: },
326 Added: "end": "\"(?!\\s*\\.)",
327 Added: "name": "entity.name.function.call.dot.elixir",
328 Added: "patterns": [
329 Added: {
330 Added: "include": "#escaped_char"
331 Added: }
332 Added: ]
333 Added: },
334 Added: {
335 Added: "begin": "(?<=\\.)\\s*'",
336 Added: "captures": {
337 Added: "1": {
338 Added: "name": "punctuation.definition.constant.elixir"
339 Added: }
340 Added: },
341 Added: "end": "'(?!\\s*\\.)",
342 Added: "name": "entity.name.function.call.dot.elixir",
343 Added: "patterns": [
344 Added: {
345 Added: "include": "#escaped_char"
346 Added: }
347 Added: ]
348 Added: },
349 Added: {
350 Added: "comment": "Local function capture",
351 Added: "match": "(\\&)([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)(\\/)([0-9]+)",
352 Added: "captures": {
353 Added: "1": {
354 Added: "name": "keyword.operator.other.elixir"
355 Added: },
356 Added: "2": {
357 Added: "name": "entity.name.function.call.capture.elixir"
358 Added: },
359 Added: "3": {
360 Added: "name": "keyword.operator.arithmetic.elixir"
361 Added: },
362 Added: "4": {
363 Added: "name": "constant.numeric.elixir"
364 Added: }
365 Added: }
366 Added: },
367 Added: {
368 Added: "comment": "Local function call",
369 Added: "match": "\\b([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)(?=\\s*?\\()",
370 Added: "name": "entity.name.function.call.local.elixir"
371 Added: },
372 Added: {
373 Added: "comment": "Pipe into no parens local function call",
374 Added: "match": "(?<=\\|\\>\\s*)([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
375 Added: "name": "entity.name.function.call.local.pipe.elixir"
376 Added: },
377 Added: {
378 Added: "match": "\\b(__(CALLER|ENV|MODULE|DIR|STACKTRACE)__)\\b(?![?!])",
379 Added: "name": "variable.language.elixir"
380 Added: },
381 Added: {
382 Added: "match": "\\b[A-Z][A-Za-z0-9_]*\\b",
383 Added: "name": "entity.name.type.module.elixir"
384 Added: },
385 Added: {
386 Added: "match": "\\b(0[xX]\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0b[01](?:[_01]*[01]+|[01]*)|0o[0-7](?:[_0-7]*[0-7]+|[0-7]*))\\b",
387 Added: "name": "constant.numeric.elixir"
388 Added: },
389 Added: {
390 Added: "comment": "Regex sigil with curlies",
391 Added: "begin": "~r\\{",
392 Added: "beginCaptures": {
393 Added: "0": {
394 Added: "name": "punctuation.section.regexp.begin.elixir"
395 Added: }
396 Added: },
397 Added: "end": "\\}[eimnosux]*",
398 Added: "endCaptures": {
399 Added: "0": {
400 Added: "name": "punctuation.section.regexp.end.elixir"
401 Added: }
402 Added: },
403 Added: "name": "string.regexp.interpolated.elixir",
404 Added: "patterns": [
405 Added: {
406 Added: "include": "#regex_sub"
407 Added: },
408 Added: {
409 Added: "include": "#nest_curly"
410 Added: }
411 Added: ]
412 Added: },
413 Added: {
414 Added: "comment": "Regex sigil with pipes",
415 Added: "begin": "~r\\|",
416 Added: "beginCaptures": {
417 Added: "0": {
418 Added: "name": "punctuation.section.regexp.begin.elixir"
419 Added: }
420 Added: },
421 Added: "end": "\\|[eimnosux]*",
422 Added: "endCaptures": {
423 Added: "0": {
424 Added: "name": "punctuation.section.regexp.end.elixir"
425 Added: }
426 Added: },
427 Added: "name": "string.regexp.interpolated.elixir",
428 Added: "patterns": [
429 Added: {
430 Added: "include": "#regex_sub"
431 Added: }
432 Added: ]
433 Added: },
434 Added: {
435 Added: "comment": "Regex sigil with parens",
436 Added: "begin": "~r\\(",
437 Added: "beginCaptures": {
438 Added: "0": {
439 Added: "name": "punctuation.section.regexp.begin.elixir"
440 Added: }
441 Added: },
442 Added: "end": "\\)[eimnosux]*",
443 Added: "endCaptures": {
444 Added: "0": {
445 Added: "name": "punctuation.section.regexp.end.elixir"
446 Added: }
447 Added: },
448 Added: "name": "string.regexp.interpolated.elixir",
449 Added: "patterns": [
450 Added: {
451 Added: "include": "#regex_sub"
452 Added: }
453 Added: ]
454 Added: },
455 Added: {
456 Added: "comment": "Regex sigil with slashes",
457 Added: "begin": "~r\\/",
458 Added: "beginCaptures": {
459 Added: "0": {
460 Added: "name": "punctuation.section.regexp.begin.elixir"
461 Added: }
462 Added: },
463 Added: "end": "\\/[eimnosux]*",
464 Added: "endCaptures": {
465 Added: "0": {
466 Added: "name": "punctuation.section.regexp.end.elixir"
467 Added: }
468 Added: },
469 Added: "name": "string.regexp.interpolated.elixir",
470 Added: "patterns": [
471 Added: {
472 Added: "include": "#regex_sub"
473 Added: }
474 Added: ]
475 Added: },
476 Added: {
477 Added: "comment": "Regex sigil with brackets",
478 Added: "begin": "~r\\[",
479 Added: "beginCaptures": {
480 Added: "0": {
481 Added: "name": "punctuation.section.regexp.begin.elixir"
482 Added: }
483 Added: },
484 Added: "end": "\\][eimnosux]*",
485 Added: "endCaptures": {
486 Added: "0": {
487 Added: "name": "punctuation.section.regexp.end.elixir"
488 Added: }
489 Added: },
490 Added: "name": "string.regexp.interpolated.elixir",
491 Added: "patterns": [
492 Added: {
493 Added: "include": "#regex_sub"
494 Added: },
495 Added: {
496 Added: "include": "#nest_brackets"
497 Added: }
498 Added: ]
499 Added: },
500 Added: {
501 Added: "comment": "Regex sigil with ltgt",
502 Added: "begin": "~r\\<",
503 Added: "beginCaptures": {
504 Added: "0": {
505 Added: "name": "punctuation.section.regexp.begin.elixir"
506 Added: }
507 Added: },
508 Added: "end": "\\>[eimnosux]*",
509 Added: "endCaptures": {
510 Added: "0": {
511 Added: "name": "punctuation.section.regexp.end.elixir"
512 Added: }
513 Added: },
514 Added: "name": "string.regexp.interpolated.elixir",
515 Added: "patterns": [
516 Added: {
517 Added: "include": "#regex_sub"
518 Added: }
519 Added: ]
520 Added: },
521 Added: {
522 Added: "comment": "Regex sigil with single quoted heredocs",
523 Added: "begin": "~r\\'\\'\\'",
524 Added: "beginCaptures": {
525 Added: "0": {
526 Added: "name": "punctuation.section.regexp.begin.elixir"
527 Added: }
528 Added: },
529 Added: "end": "\\'\\'\\'[eimnosux]*",
530 Added: "endCaptures": {
531 Added: "0": {
532 Added: "name": "punctuation.section.regexp.end.elixir"
533 Added: }
534 Added: },
535 Added: "name": "string.regexp.interpolated.elixir",
536 Added: "patterns": [
537 Added: {
538 Added: "include": "#regex_sub"
539 Added: }
540 Added: ]
541 Added: },
542 Added: {
543 Added: "comment": "Regex sigil with double quotes heredocs",
544 Added: "begin": "~r\\\"\\\"\\\"",
545 Added: "beginCaptures": {
546 Added: "0": {
547 Added: "name": "punctuation.section.regexp.begin.elixir"
548 Added: }
549 Added: },
550 Added: "end": "\\\"\\\"\\\"[eimnosux]*",
551 Added: "endCaptures": {
552 Added: "0": {
553 Added: "name": "punctuation.section.regexp.end.elixir"
554 Added: }
555 Added: },
556 Added: "name": "string.regexp.interpolated.elixir",
557 Added: "patterns": [
558 Added: {
559 Added: "include": "#regex_sub"
560 Added: }
561 Added: ]
562 Added: },
563 Added: {
564 Added: "comment": "Regex sigil with double quotes",
565 Added: "begin": "~r\\\"",
566 Added: "beginCaptures": {
567 Added: "0": {
568 Added: "name": "punctuation.section.regexp.begin.elixir"
569 Added: }
570 Added: },
571 Added: "end": "\\\"[eimnosux]*",
572 Added: "endCaptures": {
573 Added: "0": {
574 Added: "name": "punctuation.section.regexp.end.elixir"
575 Added: }
576 Added: },
577 Added: "name": "string.regexp.interpolated.elixir",
578 Added: "patterns": [
579 Added: {
580 Added: "include": "#regex_sub"
581 Added: }
582 Added: ]
583 Added: },
584 Added: {
585 Added: "comment": "Regex sigil with single quotes",
586 Added: "begin": "~r\\'",
587 Added: "beginCaptures": {
588 Added: "0": {
589 Added: "name": "punctuation.section.regexp.begin.elixir"
590 Added: }
591 Added: },
592 Added: "end": "\\'[eimnosux]*",
593 Added: "endCaptures": {
594 Added: "0": {
595 Added: "name": "punctuation.section.regexp.end.elixir"
596 Added: }
597 Added: },
598 Added: "name": "string.regexp.interpolated.elixir",
599 Added: "patterns": [
600 Added: {
601 Added: "include": "#regex_sub"
602 Added: }
603 Added: ]
604 Added: },
605 Added: {
606 Added: "comment": "Literal regex sigil with curlies",
607 Added: "begin": "~R\\{",
608 Added: "beginCaptures": {
609 Added: "0": {
610 Added: "name": "punctuation.section.regexp.begin.elixir"
611 Added: }
612 Added: },
613 Added: "end": "\\}[eimnosux]*",
614 Added: "endCaptures": {
615 Added: "0": {
616 Added: "name": "punctuation.section.regexp.end.elixir"
617 Added: }
618 Added: },
619 Added: "name": "string.regexp.literal.elixir",
620 Added: "patterns": [
621 Added: {
622 Added: "include": "#nest_curly"
623 Added: }
624 Added: ]
625 Added: },
626 Added: {
627 Added: "comment": "Literal regex sigil with pipes",
628 Added: "begin": "~R\\|",
629 Added: "beginCaptures": {
630 Added: "0": {
631 Added: "name": "punctuation.section.regexp.begin.elixir"
632 Added: }
633 Added: },
634 Added: "end": "\\|[eimnosux]*",
635 Added: "endCaptures": {
636 Added: "0": {
637 Added: "name": "punctuation.section.regexp.end.elixir"
638 Added: }
639 Added: },
640 Added: "name": "string.regexp.literal.elixir"
641 Added: },
642 Added: {
643 Added: "comment": "Literal regex sigil with parens",
644 Added: "begin": "~R\\(",
645 Added: "beginCaptures": {
646 Added: "0": {
647 Added: "name": "punctuation.section.regexp.begin.elixir"
648 Added: }
649 Added: },
650 Added: "end": "\\)[eimnosux]*",
651 Added: "endCaptures": {
652 Added: "0": {
653 Added: "name": "punctuation.section.regexp.end.elixir"
654 Added: }
655 Added: },
656 Added: "name": "string.regexp.literal.elixir",
657 Added: "patterns": [
658 Added: {
659 Added: "include": "#nest_parens"
660 Added: }
661 Added: ]
662 Added: },
663 Added: {
664 Added: "comment": "Literal regex sigil with slashes",
665 Added: "begin": "~R\\/",
666 Added: "beginCaptures": {
667 Added: "0": {
668 Added: "name": "punctuation.section.regexp.begin.elixir"
669 Added: }
670 Added: },
671 Added: "end": "\\/[eimnosux]*",
672 Added: "endCaptures": {
673 Added: "0": {
674 Added: "name": "punctuation.section.regexp.end.elixir"
675 Added: }
676 Added: },
677 Added: "name": "string.regexp.literal.elixir"
678 Added: },
679 Added: {
680 Added: "comment": "Literal regex sigil with brackets",
681 Added: "begin": "~R\\[",
682 Added: "beginCaptures": {
683 Added: "0": {
684 Added: "name": "punctuation.section.regexp.begin.elixir"
685 Added: }
686 Added: },
687 Added: "end": "\\][eimnosux]*",
688 Added: "endCaptures": {
689 Added: "0": {
690 Added: "name": "punctuation.section.regexp.end.elixir"
691 Added: }
692 Added: },
693 Added: "name": "string.regexp.literal.elixir",
694 Added: "patterns": [
695 Added: {
696 Added: "include": "#nest_brackets"
697 Added: }
698 Added: ]
699 Added: },
700 Added: {
701 Added: "comment": "Literal regex sigil with ltgt",
702 Added: "begin": "~R\\<",
703 Added: "beginCaptures": {
704 Added: "0": {
705 Added: "name": "punctuation.section.regexp.begin.elixir"
706 Added: }
707 Added: },
708 Added: "end": "\\>[eimnosux]*",
709 Added: "endCaptures": {
710 Added: "0": {
711 Added: "name": "punctuation.section.regexp.end.elixir"
712 Added: }
713 Added: },
714 Added: "name": "string.regexp.literal.elixir"
715 Added: },
716 Added: {
717 Added: "comment": "Literal regex sigil with single quoted heredoc",
718 Added: "begin": "~R\\'\\'\\'",
719 Added: "beginCaptures": {
720 Added: "0": {
721 Added: "name": "punctuation.section.regexp.begin.elixir"
722 Added: }
723 Added: },
724 Added: "end": "\\'\\'\\'[eimnosux]*",
725 Added: "endCaptures": {
726 Added: "0": {
727 Added: "name": "punctuation.section.regexp.end.elixir"
728 Added: }
729 Added: },
730 Added: "name": "string.regexp.literal.elixir"
731 Added: },
732 Added: {
733 Added: "comment": "Literal regex sigil with double quoted heredoc",
734 Added: "begin": "~R\\\"\\\"\\\"",
735 Added: "beginCaptures": {
736 Added: "0": {
737 Added: "name": "punctuation.section.regexp.begin.elixir"
738 Added: }
739 Added: },
740 Added: "end": "\\\"\\\"\\\"[eimnosux]*",
741 Added: "endCaptures": {
742 Added: "0": {
743 Added: "name": "punctuation.section.regexp.end.elixir"
744 Added: }
745 Added: },
746 Added: "name": "string.regexp.literal.elixir"
747 Added: },
748 Added: {
749 Added: "comment": "Literal regex sigil with double quotes",
750 Added: "begin": "~R\\\"",
751 Added: "beginCaptures": {
752 Added: "0": {
753 Added: "name": "punctuation.section.regexp.begin.elixir"
754 Added: }
755 Added: },
756 Added: "end": "\\\"[eimnosux]*",
757 Added: "endCaptures": {
758 Added: "0": {
759 Added: "name": "punctuation.section.regexp.end.elixir"
760 Added: }
761 Added: },
762 Added: "name": "string.regexp.literal.elixir"
763 Added: },
764 Added: {
765 Added: "comment": "Literal regex sigil with single quotes",
766 Added: "begin": "~R\\'",
767 Added: "beginCaptures": {
768 Added: "0": {
769 Added: "name": "punctuation.section.regexp.begin.elixir"
770 Added: }
771 Added: },
772 Added: "end": "\\'[eimnosux]*",
773 Added: "endCaptures": {
774 Added: "0": {
775 Added: "name": "punctuation.section.regexp.end.elixir"
776 Added: }
777 Added: },
778 Added: "name": "string.regexp.literal.elixir"
779 Added: },
780 Added: {
781 Added: "comment": "Character list sigil with curlies",
782 Added: "begin": "~c\\{",
783 Added: "beginCaptures": {
784 Added: "0": {
785 Added: "name": "punctuation.definition.string.begin.elixir"
786 Added: }
787 Added: },
788 Added: "end": "\\}[a-z]*",
789 Added: "endCaptures": {
790 Added: "0": {
791 Added: "name": "punctuation.definition.string.end.elixir"
792 Added: }
793 Added: },
794 Added: "name": "string.quoted.single.elixir",
795 Added: "patterns": [
796 Added: {
797 Added: "include": "#interpolated_elixir"
798 Added: },
799 Added: {
800 Added: "include": "#escaped_char"
801 Added: }
802 Added: ]
803 Added: },
804 Added: {
805 Added: "comment": "Character list sigil with pipes",
806 Added: "begin": "~c\\|",
807 Added: "beginCaptures": {
808 Added: "0": {
809 Added: "name": "punctuation.definition.string.begin.elixir"
810 Added: }
811 Added: },
812 Added: "end": "\\|[a-z]*",
813 Added: "endCaptures": {
814 Added: "0": {
815 Added: "name": "punctuation.definition.string.end.elixir"
816 Added: }
817 Added: },
818 Added: "name": "string.quoted.single.elixir",
819 Added: "patterns": [
820 Added: {
821 Added: "include": "#interpolated_elixir"
822 Added: },
823 Added: {
824 Added: "include": "#escaped_char"
825 Added: }
826 Added: ]
827 Added: },
828 Added: {
829 Added: "comment": "Character list sigil with parens",
830 Added: "begin": "~c\\(",
831 Added: "beginCaptures": {
832 Added: "0": {
833 Added: "name": "punctuation.definition.string.begin.elixir"
834 Added: }
835 Added: },
836 Added: "end": "\\)[a-z]*",
837 Added: "endCaptures": {
838 Added: "0": {
839 Added: "name": "punctuation.definition.string.end.elixir"
840 Added: }
841 Added: },
842 Added: "name": "string.quoted.single.elixir",
843 Added: "patterns": [
844 Added: {
845 Added: "include": "#interpolated_elixir"
846 Added: },
847 Added: {
848 Added: "include": "#escaped_char"
849 Added: }
850 Added: ]
851 Added: },
852 Added: {
853 Added: "comment": "Character list sigil with curlies",
854 Added: "begin": "~c\\<",
855 Added: "beginCaptures": {
856 Added: "0": {
857 Added: "name": "punctuation.definition.string.begin.elixir"
858 Added: }
859 Added: },
860 Added: "end": "\\>[a-z]*",
861 Added: "endCaptures": {
862 Added: "0": {
863 Added: "name": "punctuation.definition.string.end.elixir"
864 Added: }
865 Added: },
866 Added: "name": "string.quoted.single.elixir",
867 Added: "patterns": [
868 Added: {
869 Added: "include": "#interpolated_elixir"
870 Added: },
871 Added: {
872 Added: "include": "#escaped_char"
873 Added: }
874 Added: ]
875 Added: },
876 Added: {
877 Added: "comment": "Character list sigil with curlies",
878 Added: "begin": "~c\\[",
879 Added: "beginCaptures": {
880 Added: "0": {
881 Added: "name": "punctuation.definition.string.begin.elixir"
882 Added: }
883 Added: },
884 Added: "end": "\\][a-z]*",
885 Added: "endCaptures": {
886 Added: "0": {
887 Added: "name": "punctuation.definition.string.end.elixir"
888 Added: }
889 Added: },
890 Added: "name": "string.quoted.single.elixir",
891 Added: "patterns": [
892 Added: {
893 Added: "include": "#interpolated_elixir"
894 Added: },
895 Added: {
896 Added: "include": "#escaped_char"
897 Added: }
898 Added: ]
899 Added: },
900 Added: {
901 Added: "comment": "Character list sigil with curlies",
902 Added: "begin": "~c\\/",
903 Added: "beginCaptures": {
904 Added: "0": {
905 Added: "name": "punctuation.definition.string.begin.elixir"
906 Added: }
907 Added: },
908 Added: "end": "\\/[a-z]*",
909 Added: "endCaptures": {
910 Added: "0": {
911 Added: "name": "punctuation.definition.string.end.elixir"
912 Added: }
913 Added: },
914 Added: "name": "string.quoted.single.elixir",
915 Added: "patterns": [
916 Added: {
917 Added: "include": "#interpolated_elixir"
918 Added: },
919 Added: {
920 Added: "include": "#escaped_char"
921 Added: }
922 Added: ]
923 Added: },
924 Added: {
925 Added: "comment": "Character list sigil with single quoted heredoc",
926 Added: "begin": "~c\\'\\'\\'",
927 Added: "beginCaptures": {
928 Added: "0": {
929 Added: "name": "punctuation.definition.string.begin.elixir"
930 Added: }
931 Added: },
932 Added: "end": "\\'\\'\\'[a-z]*",
933 Added: "endCaptures": {
934 Added: "0": {
935 Added: "name": "punctuation.definition.string.end.elixir"
936 Added: }
937 Added: },
938 Added: "name": "string.quoted.single.elixir",
939 Added: "patterns": [
940 Added: {
941 Added: "include": "#interpolated_elixir"
942 Added: },
943 Added: {
944 Added: "include": "#escaped_char"
945 Added: }
946 Added: ]
947 Added: },
948 Added: {
949 Added: "comment": "Character list sigil with double quoted heredoc",
950 Added: "begin": "~c\\\"\\\"\\\"",
951 Added: "beginCaptures": {
952 Added: "0": {
953 Added: "name": "punctuation.definition.string.begin.elixir"
954 Added: }
955 Added: },
956 Added: "end": "\\\"\\\"\\\"[a-z]*",
957 Added: "endCaptures": {
958 Added: "0": {
959 Added: "name": "punctuation.definition.string.end.elixir"
960 Added: }
961 Added: },
962 Added: "name": "string.quoted.single.elixir",
963 Added: "patterns": [
964 Added: {
965 Added: "include": "#interpolated_elixir"
966 Added: },
967 Added: {
968 Added: "include": "#escaped_char"
969 Added: }
970 Added: ]
971 Added: },
972 Added: {
973 Added: "comment": "Character list sigil with curlies",
974 Added: "begin": "~c\\'",
975 Added: "beginCaptures": {
976 Added: "0": {
977 Added: "name": "punctuation.definition.string.begin.elixir"
978 Added: }
979 Added: },
980 Added: "end": "\\'[a-z]*",
981 Added: "endCaptures": {
982 Added: "0": {
983 Added: "name": "punctuation.definition.string.end.elixir"
984 Added: }
985 Added: },
986 Added: "name": "string.quoted.single.elixir",
987 Added: "patterns": [
988 Added: {
989 Added: "include": "#interpolated_elixir"
990 Added: },
991 Added: {
992 Added: "include": "#escaped_char"
993 Added: }
994 Added: ]
995 Added: },
996 Added: {
997 Added: "comment": "Character list sigil with curlies",
998 Added: "begin": "~c\\\"",
999 Added: "beginCaptures": {
1000 Added: "0": {
1001 Added: "name": "punctuation.definition.string.begin.elixir"
1002 Added: }
1003 Added: },
1004 Added: "end": "\\\"[a-z]*",
1005 Added: "endCaptures": {
1006 Added: "0": {
1007 Added: "name": "punctuation.definition.string.end.elixir"
1008 Added: }
1009 Added: },
1010 Added: "name": "string.quoted.single.elixir",
1011 Added: "patterns": [
1012 Added: {
1013 Added: "include": "#interpolated_elixir"
1014 Added: },
1015 Added: {
1016 Added: "include": "#escaped_char"
1017 Added: }
1018 Added: ]
1019 Added: },
1020 Added: {
1021 Added: "comment": "Literal Character list sigil with curlies",
1022 Added: "begin": "~C\\{",
1023 Added: "beginCaptures": {
1024 Added: "0": {
1025 Added: "name": "punctuation.definition.string.begin.elixir"
1026 Added: }
1027 Added: },
1028 Added: "end": "\\}[a-z]*",
1029 Added: "endCaptures": {
1030 Added: "0": {
1031 Added: "name": "punctuation.definition.string.end.elixir"
1032 Added: }
1033 Added: },
1034 Added: "name": "string.quoted.single.elixir"
1035 Added: },
1036 Added: {
1037 Added: "comment": "Literal Character list sigil with pipes",
1038 Added: "begin": "~C\\|",
1039 Added: "beginCaptures": {
1040 Added: "0": {
1041 Added: "name": "punctuation.definition.string.begin.elixir"
1042 Added: }
1043 Added: },
1044 Added: "end": "\\|[a-z]*",
1045 Added: "endCaptures": {
1046 Added: "0": {
1047 Added: "name": "punctuation.definition.string.end.elixir"
1048 Added: }
1049 Added: },
1050 Added: "name": "string.quoted.single.elixir"
1051 Added: },
1052 Added: {
1053 Added: "comment": "Literal Character list sigil with parens",
1054 Added: "begin": "~C\\(",
1055 Added: "beginCaptures": {
1056 Added: "0": {
1057 Added: "name": "punctuation.definition.string.begin.elixir"
1058 Added: }
1059 Added: },
1060 Added: "end": "\\)[a-z]*",
1061 Added: "endCaptures": {
1062 Added: "0": {
1063 Added: "name": "punctuation.definition.string.end.elixir"
1064 Added: }
1065 Added: },
1066 Added: "name": "string.quoted.single.elixir"
1067 Added: },
1068 Added: {
1069 Added: "comment": "Literal Character list sigil with curlies",
1070 Added: "begin": "~C\\<",
1071 Added: "beginCaptures": {
1072 Added: "0": {
1073 Added: "name": "punctuation.definition.string.begin.elixir"
1074 Added: }
1075 Added: },
1076 Added: "end": "\\>[a-z]*",
1077 Added: "endCaptures": {
1078 Added: "0": {
1079 Added: "name": "punctuation.definition.string.end.elixir"
1080 Added: }
1081 Added: },
1082 Added: "name": "string.quoted.single.elixir"
1083 Added: },
1084 Added: {
1085 Added: "comment": "Literal Character list sigil with curlies",
1086 Added: "begin": "~C\\[",
1087 Added: "beginCaptures": {
1088 Added: "0": {
1089 Added: "name": "punctuation.definition.string.begin.elixir"
1090 Added: }
1091 Added: },
1092 Added: "end": "\\][a-z]*",
1093 Added: "endCaptures": {
1094 Added: "0": {
1095 Added: "name": "punctuation.definition.string.end.elixir"
1096 Added: }
1097 Added: },
1098 Added: "name": "string.quoted.single.elixir"
1099 Added: },
1100 Added: {
1101 Added: "comment": "Literal Character list sigil with curlies",
1102 Added: "begin": "~C\\/",
1103 Added: "beginCaptures": {
1104 Added: "0": {
1105 Added: "name": "punctuation.definition.string.begin.elixir"
1106 Added: }
1107 Added: },
1108 Added: "end": "\\/[a-z]*",
1109 Added: "endCaptures": {
1110 Added: "0": {
1111 Added: "name": "punctuation.definition.string.end.elixir"
1112 Added: }
1113 Added: },
1114 Added: "name": "string.quoted.single.elixir"
1115 Added: },
1116 Added: {
1117 Added: "comment": "Literal Character list sigil with single quoted heredoc",
1118 Added: "begin": "~C\\'\\'\\'",
1119 Added: "beginCaptures": {
1120 Added: "0": {
1121 Added: "name": "punctuation.definition.string.begin.elixir"
1122 Added: }
1123 Added: },
1124 Added: "end": "\\'\\'\\'[a-z]*",
1125 Added: "endCaptures": {
1126 Added: "0": {
1127 Added: "name": "punctuation.definition.string.end.elixir"
1128 Added: }
1129 Added: },
1130 Added: "name": "string.quoted.single.elixir"
1131 Added: },
1132 Added: {
1133 Added: "comment": "Literal Character list sigil with double quoted heredoc",
1134 Added: "begin": "~C\\\"\\\"\\\"",
1135 Added: "beginCaptures": {
1136 Added: "0": {
1137 Added: "name": "punctuation.definition.string.begin.elixir"
1138 Added: }
1139 Added: },
1140 Added: "end": "\\\"\\\"\\\"[a-z]*",
1141 Added: "endCaptures": {
1142 Added: "0": {
1143 Added: "name": "punctuation.definition.string.end.elixir"
1144 Added: }
1145 Added: },
1146 Added: "name": "string.quoted.single.elixir"
1147 Added: },
1148 Added: {
1149 Added: "comment": "Literal Character list sigil with curlies",
1150 Added: "begin": "~C\\'",
1151 Added: "beginCaptures": {
1152 Added: "0": {
1153 Added: "name": "punctuation.definition.string.begin.elixir"
1154 Added: }
1155 Added: },
1156 Added: "end": "\\'[a-z]*",
1157 Added: "endCaptures": {
1158 Added: "0": {
1159 Added: "name": "punctuation.definition.string.end.elixir"
1160 Added: }
1161 Added: },
1162 Added: "name": "string.quoted.single.elixir"
1163 Added: },
1164 Added: {
1165 Added: "comment": "Literal Character list sigil with curlies",
1166 Added: "begin": "~C\\\"",
1167 Added: "beginCaptures": {
1168 Added: "0": {
1169 Added: "name": "punctuation.definition.string.begin.elixir"
1170 Added: }
1171 Added: },
1172 Added: "end": "\\\"[a-z]*",
1173 Added: "endCaptures": {
1174 Added: "0": {
1175 Added: "name": "punctuation.definition.string.end.elixir"
1176 Added: }
1177 Added: },
1178 Added: "name": "string.quoted.single.elixir"
1179 Added: },
1180 Added: {
1181 Added: "begin": "~w\\{",
1182 Added: "beginCaptures": {
1183 Added: "0": {
1184 Added: "name": "punctuation.section.list.begin.elixir"
1185 Added: }
1186 Added: },
1187 Added: "comment": "sigil (allow for interpolation)",
1188 Added: "end": "\\}[acs]*",
1189 Added: "endCaptures": {
1190 Added: "0": {
1191 Added: "name": "punctuation.section.list.end.elixir"
1192 Added: }
1193 Added: },
1194 Added: "name": "string.quoted.double.interpolated.elixir",
1195 Added: "patterns": [
1196 Added: {
1197 Added: "include": "#interpolated_elixir"
1198 Added: },
1199 Added: {
1200 Added: "include": "#escaped_char"
1201 Added: },
1202 Added: {
1203 Added: "include": "#nest_curly"
1204 Added: }
1205 Added: ]
1206 Added: },
1207 Added: {
1208 Added: "begin": "~w\\[",
1209 Added: "beginCaptures": {
1210 Added: "0": {
1211 Added: "name": "punctuation.section.list.begin.elixir"
1212 Added: }
1213 Added: },
1214 Added: "comment": "sigil (allow for interpolation)",
1215 Added: "end": "\\][acs]*",
1216 Added: "endCaptures": {
1217 Added: "0": {
1218 Added: "name": "punctuation.section.list.end.elixir"
1219 Added: }
1220 Added: },
1221 Added: "name": "string.quoted.double.interpolated.elixir",
1222 Added: "patterns": [
1223 Added: {
1224 Added: "include": "#interpolated_elixir"
1225 Added: },
1226 Added: {
1227 Added: "include": "#escaped_char"
1228 Added: },
1229 Added: {
1230 Added: "include": "#nest_brackets"
1231 Added: }
1232 Added: ]
1233 Added: },
1234 Added: {
1235 Added: "begin": "~w\\<",
1236 Added: "beginCaptures": {
1237 Added: "0": {
1238 Added: "name": "punctuation.section.list.begin.elixir"
1239 Added: }
1240 Added: },
1241 Added: "comment": "sigil (allow for interpolation)",
1242 Added: "end": "\\>[acs]*",
1243 Added: "endCaptures": {
1244 Added: "0": {
1245 Added: "name": "punctuation.section.list.end.elixir"
1246 Added: }
1247 Added: },
1248 Added: "name": "string.quoted.double.interpolated.elixir",
1249 Added: "patterns": [
1250 Added: {
1251 Added: "include": "#interpolated_elixir"
1252 Added: },
1253 Added: {
1254 Added: "include": "#escaped_char"
1255 Added: },
1256 Added: {
1257 Added: "include": "#nest_ltgt"
1258 Added: }
1259 Added: ]
1260 Added: },
1261 Added: {
1262 Added: "begin": "~w\\(",
1263 Added: "beginCaptures": {
1264 Added: "0": {
1265 Added: "name": "punctuation.section.list.begin.elixir"
1266 Added: }
1267 Added: },
1268 Added: "comment": "sigil (allow for interpolation)",
1269 Added: "end": "\\)[acs]*",
1270 Added: "endCaptures": {
1271 Added: "0": {
1272 Added: "name": "punctuation.section.list.end.elixir"
1273 Added: }
1274 Added: },
1275 Added: "name": "string.quoted.double.interpolated.elixir",
1276 Added: "patterns": [
1277 Added: {
1278 Added: "include": "#interpolated_elixir"
1279 Added: },
1280 Added: {
1281 Added: "include": "#escaped_char"
1282 Added: },
1283 Added: {
1284 Added: "include": "#nest_parens"
1285 Added: }
1286 Added: ]
1287 Added: },
1288 Added: {
1289 Added: "begin": "~w\\/",
1290 Added: "beginCaptures": {
1291 Added: "0": {
1292 Added: "name": "punctuation.section.list.begin.elixir"
1293 Added: }
1294 Added: },
1295 Added: "comment": "sigil (allow for interpolation)",
1296 Added: "end": "\\/[acs]*",
1297 Added: "endCaptures": {
1298 Added: "0": {
1299 Added: "name": "punctuation.section.list.end.elixir"
1300 Added: }
1301 Added: },
1302 Added: "name": "string.quoted.double.interpolated.elixir",
1303 Added: "patterns": [
1304 Added: {
1305 Added: "include": "#interpolated_elixir"
1306 Added: },
1307 Added: {
1308 Added: "include": "#escaped_char"
1309 Added: }
1310 Added: ]
1311 Added: },
1312 Added: {
1313 Added: "begin": "~w\\|",
1314 Added: "beginCaptures": {
1315 Added: "0": {
1316 Added: "name": "punctuation.section.list.begin.elixir"
1317 Added: }
1318 Added: },
1319 Added: "comment": "sigil (allow for interpolation)",
1320 Added: "end": "\\|[acs]*",
1321 Added: "endCaptures": {
1322 Added: "0": {
1323 Added: "name": "punctuation.section.list.end.elixir"
1324 Added: }
1325 Added: },
1326 Added: "name": "string.quoted.double.interpolated.elixir",
1327 Added: "patterns": [
1328 Added: {
1329 Added: "include": "#interpolated_elixir"
1330 Added: },
1331 Added: {
1332 Added: "include": "#escaped_char"
1333 Added: }
1334 Added: ]
1335 Added: },
1336 Added: {
1337 Added: "comment": "Interpolated word list sigil with single quoted heredoc",
1338 Added: "begin": "~w\\'\\'\\'",
1339 Added: "beginCaptures": {
1340 Added: "0": {
1341 Added: "name": "punctuation.section.list.begin.elixir"
1342 Added: }
1343 Added: },
1344 Added: "end": "\\'\\'\\'[acs]*",
1345 Added: "endCaptures": {
1346 Added: "0": {
1347 Added: "name": "punctuation.section.list.end.elixir"
1348 Added: }
1349 Added: },
1350 Added: "name": "string.quoted.double.interpolated.elixir",
1351 Added: "patterns": [
1352 Added: {
1353 Added: "include": "#interpolated_elixir"
1354 Added: },
1355 Added: {
1356 Added: "include": "#escaped_char"
1357 Added: }
1358 Added: ]
1359 Added: },
1360 Added: {
1361 Added: "comment": "Interpolated word list sigil with double quoted heredoc",
1362 Added: "begin": "~w\\\"\\\"\\\"",
1363 Added: "beginCaptures": {
1364 Added: "0": {
1365 Added: "name": "punctuation.section.list.begin.elixir"
1366 Added: }
1367 Added: },
1368 Added: "end": "\\\"\\\"\\\"[acs]*",
1369 Added: "endCaptures": {
1370 Added: "0": {
1371 Added: "name": "punctuation.section.list.end.elixir"
1372 Added: }
1373 Added: },
1374 Added: "name": "string.quoted.double.interpolated.elixir",
1375 Added: "patterns": [
1376 Added: {
1377 Added: "include": "#interpolated_elixir"
1378 Added: },
1379 Added: {
1380 Added: "include": "#escaped_char"
1381 Added: }
1382 Added: ]
1383 Added: },
1384 Added: {
1385 Added: "begin": "~w\\'",
1386 Added: "beginCaptures": {
1387 Added: "0": {
1388 Added: "name": "punctuation.section.list.begin.elixir"
1389 Added: }
1390 Added: },
1391 Added: "comment": "sigil (allow for interpolation)",
1392 Added: "end": "\\'[acs]*",
1393 Added: "endCaptures": {
1394 Added: "0": {
1395 Added: "name": "punctuation.section.list.end.elixir"
1396 Added: }
1397 Added: },
1398 Added: "name": "string.quoted.double.interpolated.elixir",
1399 Added: "patterns": [
1400 Added: {
1401 Added: "include": "#interpolated_elixir"
1402 Added: },
1403 Added: {
1404 Added: "include": "#escaped_char"
1405 Added: }
1406 Added: ]
1407 Added: },
1408 Added: {
1409 Added: "begin": "~w\\\"",
1410 Added: "beginCaptures": {
1411 Added: "0": {
1412 Added: "name": "punctuation.section.list.begin.elixir"
1413 Added: }
1414 Added: },
1415 Added: "comment": "sigil (allow for interpolation)",
1416 Added: "end": "\\\"[acs]*",
1417 Added: "endCaptures": {
1418 Added: "0": {
1419 Added: "name": "punctuation.section.list.end.elixir"
1420 Added: }
1421 Added: },
1422 Added: "name": "string.quoted.double.interpolated.elixir",
1423 Added: "patterns": [
1424 Added: {
1425 Added: "include": "#interpolated_elixir"
1426 Added: },
1427 Added: {
1428 Added: "include": "#escaped_char"
1429 Added: }
1430 Added: ]
1431 Added: },
1432 Added: {
1433 Added: "begin": "~W\\{",
1434 Added: "beginCaptures": {
1435 Added: "0": {
1436 Added: "name": "punctuation.section.list.begin.elixir"
1437 Added: }
1438 Added: },
1439 Added: "comment": "sigil (without interpolation)",
1440 Added: "end": "\\}[acs]*",
1441 Added: "endCaptures": {
1442 Added: "0": {
1443 Added: "name": "punctuation.section.list.end.elixir"
1444 Added: }
1445 Added: },
1446 Added: "name": "string.quoted.double.literal.elixir"
1447 Added: },
1448 Added: {
1449 Added: "begin": "~W\\[",
1450 Added: "beginCaptures": {
1451 Added: "0": {
1452 Added: "name": "punctuation.section.list.begin.elixir"
1453 Added: }
1454 Added: },
1455 Added: "comment": "sigil (without interpolation)",
1456 Added: "end": "\\][acs]*",
1457 Added: "endCaptures": {
1458 Added: "0": {
1459 Added: "name": "punctuation.section.list.end.elixir"
1460 Added: }
1461 Added: },
1462 Added: "name": "string.quoted.double.literal.elixir",
1463 Added: "patterns": [
1464 Added: {
1465 Added: "include": "#nest_brackets"
1466 Added: }
1467 Added: ]
1468 Added: },
1469 Added: {
1470 Added: "begin": "~W\\<",
1471 Added: "beginCaptures": {
1472 Added: "0": {
1473 Added: "name": "punctuation.section.list.begin.elixir"
1474 Added: }
1475 Added: },
1476 Added: "comment": "sigil (without interpolation)",
1477 Added: "end": "\\>[acs]*",
1478 Added: "endCaptures": {
1479 Added: "0": {
1480 Added: "name": "punctuation.section.list.end.elixir"
1481 Added: }
1482 Added: },
1483 Added: "name": "string.quoted.double.literal.elixir",
1484 Added: "patterns": [
1485 Added: {
1486 Added: "include": "#nest_ltgt"
1487 Added: }
1488 Added: ]
1489 Added: },
1490 Added: {
1491 Added: "begin": "~W\\(",
1492 Added: "beginCaptures": {
1493 Added: "0": {
1494 Added: "name": "punctuation.section.list.begin.elixir"
1495 Added: }
1496 Added: },
1497 Added: "comment": "sigil (without interpolation)",
1498 Added: "end": "\\)[acs]*",
1499 Added: "endCaptures": {
1500 Added: "0": {
1501 Added: "name": "punctuation.section.list.end.elixir"
1502 Added: }
1503 Added: },
1504 Added: "name": "string.quoted.double.literal.elixir",
1505 Added: "patterns": [
1506 Added: {
1507 Added: "include": "#nest_parens"
1508 Added: }
1509 Added: ]
1510 Added: },
1511 Added: {
1512 Added: "begin": "~W\\/",
1513 Added: "beginCaptures": {
1514 Added: "0": {
1515 Added: "name": "punctuation.section.list.begin.elixir"
1516 Added: }
1517 Added: },
1518 Added: "comment": "sigil (without interpolation)",
1519 Added: "end": "\\/[acs]*",
1520 Added: "endCaptures": {
1521 Added: "0": {
1522 Added: "name": "punctuation.section.list.end.elixir"
1523 Added: }
1524 Added: },
1525 Added: "name": "string.quoted.double.literal.elixir"
1526 Added: },
1527 Added: {
1528 Added: "begin": "~W\\|",
1529 Added: "beginCaptures": {
1530 Added: "0": {
1531 Added: "name": "punctuation.section.list.begin.elixir"
1532 Added: }
1533 Added: },
1534 Added: "comment": "sigil (without interpolation)",
1535 Added: "end": "\\|[acs]*",
1536 Added: "endCaptures": {
1537 Added: "0": {
1538 Added: "name": "punctuation.section.list.end.elixir"
1539 Added: }
1540 Added: },
1541 Added: "name": "string.quoted.double.literal.elixir"
1542 Added: },
1543 Added: {
1544 Added: "comment": "Literal word list sigil with single quoted heredoc",
1545 Added: "begin": "~W\\'\\'\\'",
1546 Added: "beginCaptures": {
1547 Added: "0": {
1548 Added: "name": "punctuation.section.list.begin.elixir"
1549 Added: }
1550 Added: },
1551 Added: "end": "\\'\\'\\'[acs]*",
1552 Added: "endCaptures": {
1553 Added: "0": {
1554 Added: "name": "punctuation.section.list.end.elixir"
1555 Added: }
1556 Added: },
1557 Added: "name": "string.quoted.double.literal.elixir"
1558 Added: },
1559 Added: {
1560 Added: "comment": "Literal word list sigil with double quoted heredoc",
1561 Added: "begin": "~W\\\"\\\"\\\"",
1562 Added: "beginCaptures": {
1563 Added: "0": {
1564 Added: "name": "punctuation.section.list.begin.elixir"
1565 Added: }
1566 Added: },
1567 Added: "end": "\\\"\\\"\\\"[acs]*",
1568 Added: "endCaptures": {
1569 Added: "0": {
1570 Added: "name": "punctuation.section.list.end.elixir"
1571 Added: }
1572 Added: },
1573 Added: "name": "string.quoted.double.literal.elixir"
1574 Added: },
1575 Added: {
1576 Added: "begin": "~W\\'",
1577 Added: "beginCaptures": {
1578 Added: "0": {
1579 Added: "name": "punctuation.section.list.begin.elixir"
1580 Added: }
1581 Added: },
1582 Added: "comment": "sigil (without interpolation)",
1583 Added: "end": "\\'[acs]*",
1584 Added: "endCaptures": {
1585 Added: "0": {
1586 Added: "name": "punctuation.section.list.end.elixir"
1587 Added: }
1588 Added: },
1589 Added: "name": "string.quoted.double.literal.elixir"
1590 Added: },
1591 Added: {
1592 Added: "begin": "~W\\\"",
1593 Added: "beginCaptures": {
1594 Added: "0": {
1595 Added: "name": "punctuation.section.list.begin.elixir"
1596 Added: }
1597 Added: },
1598 Added: "comment": "sigil (without interpolation)",
1599 Added: "end": "\\\"[acs]*",
1600 Added: "endCaptures": {
1601 Added: "0": {
1602 Added: "name": "punctuation.section.list.end.elixir"
1603 Added: }
1604 Added: },
1605 Added: "name": "string.quoted.double.literal.elixir"
1606 Added: },
1607 Added: {
1608 Added: "comment": "String Eex heredoc with double quotes",
1609 Added: "begin": "\\s?(~E\"\"\")$",
1610 Added: "beginCaptures": {
1611 Added: "0": {
1612 Added: "name": "punctuation.definition.string.begin.elixir"
1613 Added: },
1614 Added: "1": {
1615 Added: "name": "string.quoted.double.heredoc.elixir"
1616 Added: }
1617 Added: },
1618 Added: "end": "^\\s*(\"\"\"[a-z]*)$",
1619 Added: "endCaptures": {
1620 Added: "0": {
1621 Added: "name": "punctuation.definition.string.end.elixir"
1622 Added: },
1623 Added: "1": {
1624 Added: "name": "string.quoted.double.heredoc.elixir"
1625 Added: }
1626 Added: },
1627 Added: "name": "text.html.elixir",
1628 Added: "patterns": [
1629 Added: {
1630 Added: "include": "text.html.elixir"
1631 Added: }
1632 Added: ]
1633 Added: },
1634 Added: {
1635 Added: "comment": "String Eex heredoc with double quotes",
1636 Added: "begin": "\\s?(~e\"\"\")$",
1637 Added: "beginCaptures": {
1638 Added: "0": {
1639 Added: "name": "punctuation.definition.string.begin.elixir"
1640 Added: },
1641 Added: "1": {
1642 Added: "name": "string.quoted.double.heredoc.elixir"
1643 Added: }
1644 Added: },
1645 Added: "end": "^\\s*(\"\"\"[a-z]*)$",
1646 Added: "endCaptures": {
1647 Added: "0": {
1648 Added: "name": "punctuation.definition.string.end.elixir"
1649 Added: },
1650 Added: "1": {
1651 Added: "name": "string.quoted.double.heredoc.elixir"
1652 Added: }
1653 Added: },
1654 Added: "name": "text.html.elixir",
1655 Added: "patterns": [
1656 Added: {
1657 Added: "include": "text.html.elixir"
1658 Added: }
1659 Added: ]
1660 Added: },
1661 Added: {
1662 Added: "comment": "String Eex heredoc with single quotes",
1663 Added: "begin": "\\s?(~E''')$",
1664 Added: "beginCaptures": {
1665 Added: "0": {
1666 Added: "name": "punctuation.definition.string.begin.elixir"
1667 Added: },
1668 Added: "1": {
1669 Added: "name": "string.quoted.double.heredoc.elixir"
1670 Added: }
1671 Added: },
1672 Added: "end": "^\\s*('''[a-z]*)$",
1673 Added: "endCaptures": {
1674 Added: "0": {
1675 Added: "name": "punctuation.definition.string.end.elixir"
1676 Added: },
1677 Added: "1": {
1678 Added: "name": "string.quoted.double.heredoc.elixir"
1679 Added: }
1680 Added: },
1681 Added: "name": "text.html.elixir",
1682 Added: "patterns": [
1683 Added: {
1684 Added: "include": "text.html.elixir"
1685 Added: }
1686 Added: ]
1687 Added: },
1688 Added: {
1689 Added: "comment": "String Eex heredoc with single quotes",
1690 Added: "begin": "\\s?(~e''')$",
1691 Added: "beginCaptures": {
1692 Added: "0": {
1693 Added: "name": "punctuation.definition.string.begin.elixir"
1694 Added: },
1695 Added: "1": {
1696 Added: "name": "string.quoted.double.heredoc.elixir"
1697 Added: }
1698 Added: },
1699 Added: "end": "^\\s*('''[a-z]*)$",
1700 Added: "endCaptures": {
1701 Added: "0": {
1702 Added: "name": "punctuation.definition.string.end.elixir"
1703 Added: },
1704 Added: "1": {
1705 Added: "name": "string.quoted.double.heredoc.elixir"
1706 Added: }
1707 Added: },
1708 Added: "name": "text.html.elixir",
1709 Added: "patterns": [
1710 Added: {
1711 Added: "include": "text.html.elixir"
1712 Added: }
1713 Added: ]
1714 Added: },
1715 Added: {
1716 Added: "comment": "Embedded LiveView heredoc with double quotes",
1717 Added: "begin": "\\s?(~L\"\"\")$",
1718 Added: "beginCaptures": {
1719 Added: "0": {
1720 Added: "name": "punctuation.definition.string.begin.elixir"
1721 Added: },
1722 Added: "1": {
1723 Added: "name": "string.quoted.double.heredoc.elixir"
1724 Added: }
1725 Added: },
1726 Added: "end": "^\\s*(\"\"\"[a-z]*)$",
1727 Added: "endCaptures": {
1728 Added: "0": {
1729 Added: "name": "punctuation.definition.string.end.elixir"
1730 Added: },
1731 Added: "1": {
1732 Added: "name": "string.quoted.double.heredoc.elixir"
1733 Added: }
1734 Added: },
1735 Added: "name": "text.html.elixir",
1736 Added: "patterns": [
1737 Added: {
1738 Added: "include": "text.html.elixir"
1739 Added: }
1740 Added: ]
1741 Added: },
1742 Added: {
1743 Added: "comment": "Embedded LiveView heredoc with double quotes",
1744 Added: "begin": "\\s?(~l\"\"\")$",
1745 Added: "beginCaptures": {
1746 Added: "0": {
1747 Added: "name": "punctuation.definition.string.begin.elixir"
1748 Added: },
1749 Added: "1": {
1750 Added: "name": "string.quoted.double.heredoc.elixir"
1751 Added: }
1752 Added: },
1753 Added: "end": "^\\s*(\"\"\"[a-z]*)$",
1754 Added: "endCaptures": {
1755 Added: "0": {
1756 Added: "name": "punctuation.definition.string.end.elixir"
1757 Added: },
1758 Added: "1": {
1759 Added: "name": "string.quoted.double.heredoc.elixir"
1760 Added: }
1761 Added: },
1762 Added: "name": "text.html.elixir",
1763 Added: "patterns": [
1764 Added: {
1765 Added: "include": "text.html.elixir"
1766 Added: }
1767 Added: ]
1768 Added: },
1769 Added: {
1770 Added: "comment": "Embedded LiveView heredoc with single quotes",
1771 Added: "begin": "\\s?(~L''')$",
1772 Added: "beginCaptures": {
1773 Added: "0": {
1774 Added: "name": "punctuation.definition.string.begin.elixir"
1775 Added: },
1776 Added: "1": {
1777 Added: "name": "string.quoted.double.heredoc.elixir"
1778 Added: }
1779 Added: },
1780 Added: "end": "^\\s*('''[a-z]*)$",
1781 Added: "endCaptures": {
1782 Added: "0": {
1783 Added: "name": "punctuation.definition.string.end.elixir"
1784 Added: },
1785 Added: "1": {
1786 Added: "name": "string.quoted.double.heredoc.elixir"
1787 Added: }
1788 Added: },
1789 Added: "name": "text.html.elixir",
1790 Added: "patterns": [
1791 Added: {
1792 Added: "include": "text.html.elixir"
1793 Added: }
1794 Added: ]
1795 Added: },
1796 Added: {
1797 Added: "comment": "Embedded LiveView heredoc with single quotes",
1798 Added: "begin": "\\s?(~l''')$",
1799 Added: "beginCaptures": {
1800 Added: "0": {
1801 Added: "name": "punctuation.definition.string.begin.elixir"
1802 Added: },
1803 Added: "1": {
1804 Added: "name": "string.quoted.double.heredoc.elixir"
1805 Added: }
1806 Added: },
1807 Added: "end": "^\\s*('''[a-z]*)$",
1808 Added: "endCaptures": {
1809 Added: "0": {
1810 Added: "name": "punctuation.definition.string.end.elixir"
1811 Added: },
1812 Added: "1": {
1813 Added: "name": "string.quoted.double.heredoc.elixir"
1814 Added: }
1815 Added: },
1816 Added: "name": "text.html.elixir",
1817 Added: "patterns": [
1818 Added: {
1819 Added: "include": "text.html.elixir"
1820 Added: }
1821 Added: ]
1822 Added: },
1823 Added: {
1824 Added: "begin": "~[a-z](?>\"\"\")",
1825 Added: "beginCaptures": {
1826 Added: "0": {
1827 Added: "name": "punctuation.definition.string.begin.elixir"
1828 Added: }
1829 Added: },
1830 Added: "comment": "Double-quoted heredocs sigils",
1831 Added: "end": "^\\s*\"\"\"",
1832 Added: "endCaptures": {
1833 Added: "0": {
1834 Added: "name": "punctuation.definition.string.end.elixir"
1835 Added: }
1836 Added: },
1837 Added: "name": "string.quoted.double.heredoc.elixir",
1838 Added: "patterns": [
1839 Added: {
1840 Added: "include": "#interpolated_elixir"
1841 Added: },
1842 Added: {
1843 Added: "include": "#escaped_char"
1844 Added: }
1845 Added: ]
1846 Added: },
1847 Added: {
1848 Added: "begin": "~[a-z](?>''')",
1849 Added: "beginCaptures": {
1850 Added: "0": {
1851 Added: "name": "punctuation.definition.string.begin.elixir"
1852 Added: }
1853 Added: },
1854 Added: "comment": "Double-quoted heredocs sigils",
1855 Added: "end": "^\\s*'''",
1856 Added: "endCaptures": {
1857 Added: "0": {
1858 Added: "name": "punctuation.definition.string.end.elixir"
1859 Added: }
1860 Added: },
1861 Added: "name": "string.quoted.double.heredoc.elixir",
1862 Added: "patterns": [
1863 Added: {
1864 Added: "include": "#interpolated_elixir"
1865 Added: },
1866 Added: {
1867 Added: "include": "#escaped_char"
1868 Added: }
1869 Added: ]
1870 Added: },
1871 Added: {
1872 Added: "begin": "~[a-z]\\{",
1873 Added: "beginCaptures": {
1874 Added: "0": {
1875 Added: "name": "punctuation.definition.string.begin.elixir"
1876 Added: }
1877 Added: },
1878 Added: "comment": "sigil (allow for interpolation)",
1879 Added: "end": "\\}[a-z]*",
1880 Added: "endCaptures": {
1881 Added: "0": {
1882 Added: "name": "punctuation.definition.string.end.elixir"
1883 Added: }
1884 Added: },
1885 Added: "name": "string.quoted.double.interpolated.elixir",
1886 Added: "patterns": [
1887 Added: {
1888 Added: "include": "#interpolated_elixir"
1889 Added: },
1890 Added: {
1891 Added: "include": "#escaped_char"
1892 Added: },
1893 Added: {
1894 Added: "include": "#nest_curly"
1895 Added: }
1896 Added: ]
1897 Added: },
1898 Added: {
1899 Added: "begin": "~[a-z]\\[",
1900 Added: "beginCaptures": {
1901 Added: "0": {
1902 Added: "name": "punctuation.definition.string.begin.elixir"
1903 Added: }
1904 Added: },
1905 Added: "comment": "sigil (allow for interpolation)",
1906 Added: "end": "\\][a-z]*",
1907 Added: "endCaptures": {
1908 Added: "0": {
1909 Added: "name": "punctuation.definition.string.end.elixir"
1910 Added: }
1911 Added: },
1912 Added: "name": "string.quoted.double.interpolated.elixir",
1913 Added: "patterns": [
1914 Added: {
1915 Added: "include": "#interpolated_elixir"
1916 Added: },
1917 Added: {
1918 Added: "include": "#escaped_char"
1919 Added: },
1920 Added: {
1921 Added: "include": "#nest_brackets"
1922 Added: }
1923 Added: ]
1924 Added: },
1925 Added: {
1926 Added: "begin": "~[a-z]\\<",
1927 Added: "beginCaptures": {
1928 Added: "0": {
1929 Added: "name": "punctuation.definition.string.begin.elixir"
1930 Added: }
1931 Added: },
1932 Added: "comment": "sigil (allow for interpolation)",
1933 Added: "end": "\\>[a-z]*",
1934 Added: "endCaptures": {
1935 Added: "0": {
1936 Added: "name": "punctuation.definition.string.end.elixir"
1937 Added: }
1938 Added: },
1939 Added: "name": "string.quoted.double.interpolated.elixir",
1940 Added: "patterns": [
1941 Added: {
1942 Added: "include": "#interpolated_elixir"
1943 Added: },
1944 Added: {
1945 Added: "include": "#escaped_char"
1946 Added: },
1947 Added: {
1948 Added: "include": "#nest_ltgt"
1949 Added: }
1950 Added: ]
1951 Added: },
1952 Added: {
1953 Added: "begin": "~[a-z]\\(",
1954 Added: "beginCaptures": {
1955 Added: "0": {
1956 Added: "name": "punctuation.definition.string.begin.elixir"
1957 Added: }
1958 Added: },
1959 Added: "comment": "sigil (allow for interpolation)",
1960 Added: "end": "\\)[a-z]*",
1961 Added: "endCaptures": {
1962 Added: "0": {
1963 Added: "name": "punctuation.definition.string.end.elixir"
1964 Added: }
1965 Added: },
1966 Added: "name": "string.quoted.double.interpolated.elixir",
1967 Added: "patterns": [
1968 Added: {
1969 Added: "include": "#interpolated_elixir"
1970 Added: },
1971 Added: {
1972 Added: "include": "#escaped_char"
1973 Added: },
1974 Added: {
1975 Added: "include": "#nest_parens"
1976 Added: }
1977 Added: ]
1978 Added: },
1979 Added: {
1980 Added: "begin": "~[a-z]\\/",
1981 Added: "beginCaptures": {
1982 Added: "0": {
1983 Added: "name": "punctuation.definition.string.begin.elixir"
1984 Added: }
1985 Added: },
1986 Added: "comment": "sigil (allow for interpolation)",
1987 Added: "end": "\\/[a-z]*",
1988 Added: "endCaptures": {
1989 Added: "0": {
1990 Added: "name": "punctuation.definition.string.end.elixir"
1991 Added: }
1992 Added: },
1993 Added: "name": "string.quoted.double.interpolated.elixir",
1994 Added: "patterns": [
1995 Added: {
1996 Added: "include": "#interpolated_elixir"
1997 Added: },
1998 Added: {
1999 Added: "include": "#escaped_char"
2000 Added: }
2001 Added: ]
2002 Added: },
2003 Added: {
2004 Added: "begin": "~[a-z]\\'",
2005 Added: "beginCaptures": {
2006 Added: "0": {
2007 Added: "name": "punctuation.definition.string.begin.elixir"
2008 Added: }
2009 Added: },
2010 Added: "comment": "sigil (allow for interpolation)",
2011 Added: "end": "\\'[a-z]*",
2012 Added: "endCaptures": {
2013 Added: "0": {
2014 Added: "name": "punctuation.definition.string.end.elixir"
2015 Added: }
2016 Added: },
2017 Added: "name": "string.quoted.double.interpolated.elixir",
2018 Added: "patterns": [
2019 Added: {
2020 Added: "include": "#interpolated_elixir"
2021 Added: },
2022 Added: {
2023 Added: "include": "#escaped_char"
2024 Added: }
2025 Added: ]
2026 Added: },
2027 Added: {
2028 Added: "begin": "~[a-z]\\\"",
2029 Added: "beginCaptures": {
2030 Added: "0": {
2031 Added: "name": "punctuation.definition.string.begin.elixir"
2032 Added: }
2033 Added: },
2034 Added: "comment": "sigil (allow for interpolation)",
2035 Added: "end": "\\\"[a-z]*",
2036 Added: "endCaptures": {
2037 Added: "0": {
2038 Added: "name": "punctuation.definition.string.end.elixir"
2039 Added: }
2040 Added: },
2041 Added: "name": "string.quoted.double.interpolated.elixir",
2042 Added: "patterns": [
2043 Added: {
2044 Added: "include": "#interpolated_elixir"
2045 Added: },
2046 Added: {
2047 Added: "include": "#escaped_char"
2048 Added: }
2049 Added: ]
2050 Added: },
2051 Added: {
2052 Added: "begin": "~[a-z]\\|",
2053 Added: "beginCaptures": {
2054 Added: "0": {
2055 Added: "name": "punctuation.definition.string.begin.elixir"
2056 Added: }
2057 Added: },
2058 Added: "comment": "sigil (allow for interpolation)",
2059 Added: "end": "\\|[a-z]*",
2060 Added: "endCaptures": {
2061 Added: "0": {
2062 Added: "name": "punctuation.definition.string.end.elixir"
2063 Added: }
2064 Added: },
2065 Added: "name": "string.quoted.double.interpolated.elixir",
2066 Added: "patterns": [
2067 Added: {
2068 Added: "include": "#interpolated_elixir"
2069 Added: },
2070 Added: {
2071 Added: "include": "#escaped_char"
2072 Added: }
2073 Added: ]
2074 Added: },
2075 Added: {
2076 Added: "begin": "~[A-Z][A-Z0-9]*(?>\"\"\")",
2077 Added: "beginCaptures": {
2078 Added: "0": {
2079 Added: "name": "punctuation.definition.string.begin.elixir"
2080 Added: }
2081 Added: },
2082 Added: "comment": "Double-quoted heredocs sigils",
2083 Added: "end": "^\\s*\"\"\"",
2084 Added: "endCaptures": {
2085 Added: "0": {
2086 Added: "name": "punctuation.definition.string.end.elixir"
2087 Added: }
2088 Added: },
2089 Added: "name": "string.quoted.other.literal.elixir"
2090 Added: },
2091 Added: {
2092 Added: "begin": "~[A-Z][A-Z0-9]*(?>''')",
2093 Added: "beginCaptures": {
2094 Added: "0": {
2095 Added: "name": "punctuation.definition.string.begin.elixir"
2096 Added: }
2097 Added: },
2098 Added: "comment": "Double-quoted heredocs sigils",
2099 Added: "end": "^\\s*'''",
2100 Added: "endCaptures": {
2101 Added: "0": {
2102 Added: "name": "punctuation.definition.string.end.elixir"
2103 Added: }
2104 Added: },
2105 Added: "name": "string.quoted.other.literal.elixir"
2106 Added: },
2107 Added: {
2108 Added: "begin": "~[A-Z][A-Z0-9]*\\{",
2109 Added: "beginCaptures": {
2110 Added: "0": {
2111 Added: "name": "punctuation.definition.string.begin.elixir"
2112 Added: }
2113 Added: },
2114 Added: "comment": "sigil (without interpolation)",
2115 Added: "end": "\\}[a-z]*",
2116 Added: "endCaptures": {
2117 Added: "0": {
2118 Added: "name": "punctuation.definition.string.end.elixir"
2119 Added: }
2120 Added: },
2121 Added: "name": "string.quoted.double.literal.elixir"
2122 Added: },
2123 Added: {
2124 Added: "begin": "~[A-Z][A-Z0-9]*\\[",
2125 Added: "beginCaptures": {
2126 Added: "0": {
2127 Added: "name": "punctuation.definition.string.begin.elixir"
2128 Added: }
2129 Added: },
2130 Added: "comment": "sigil (without interpolation)",
2131 Added: "end": "\\][a-z]*",
2132 Added: "endCaptures": {
2133 Added: "0": {
2134 Added: "name": "punctuation.definition.string.end.elixir"
2135 Added: }
2136 Added: },
2137 Added: "name": "string.quoted.double.literal.elixir",
2138 Added: "patterns": [
2139 Added: {
2140 Added: "include": "#nest_brackets"
2141 Added: }
2142 Added: ]
2143 Added: },
2144 Added: {
2145 Added: "begin": "~[A-Z][A-Z0-9]*\\<",
2146 Added: "beginCaptures": {
2147 Added: "0": {
2148 Added: "name": "punctuation.definition.string.begin.elixir"
2149 Added: }
2150 Added: },
2151 Added: "comment": "sigil (without interpolation)",
2152 Added: "end": "\\>[a-z]*",
2153 Added: "endCaptures": {
2154 Added: "0": {
2155 Added: "name": "punctuation.definition.string.end.elixir"
2156 Added: }
2157 Added: },
2158 Added: "name": "string.quoted.double.literal.elixir",
2159 Added: "patterns": [
2160 Added: {
2161 Added: "include": "#nest_ltgt"
2162 Added: }
2163 Added: ]
2164 Added: },
2165 Added: {
2166 Added: "begin": "~[A-Z][A-Z0-9]*\\(",
2167 Added: "beginCaptures": {
2168 Added: "0": {
2169 Added: "name": "punctuation.definition.string.begin.elixir"
2170 Added: }
2171 Added: },
2172 Added: "comment": "sigil (without interpolation)",
2173 Added: "end": "\\)[a-z]*",
2174 Added: "endCaptures": {
2175 Added: "0": {
2176 Added: "name": "punctuation.definition.string.end.elixir"
2177 Added: }
2178 Added: },
2179 Added: "name": "string.quoted.double.literal.elixir",
2180 Added: "patterns": [
2181 Added: {
2182 Added: "include": "#nest_parens"
2183 Added: }
2184 Added: ]
2185 Added: },
2186 Added: {
2187 Added: "begin": "~[A-Z][A-Z0-9]*\\/",
2188 Added: "beginCaptures": {
2189 Added: "0": {
2190 Added: "name": "punctuation.definition.string.begin.elixir"
2191 Added: }
2192 Added: },
2193 Added: "comment": "sigil (without interpolation)",
2194 Added: "end": "\\/[a-z]*",
2195 Added: "endCaptures": {
2196 Added: "0": {
2197 Added: "name": "punctuation.definition.string.end.elixir"
2198 Added: }
2199 Added: },
2200 Added: "name": "string.quoted.double.literal.elixir"
2201 Added: },
2202 Added: {
2203 Added: "begin": "~[A-Z][A-Z0-9]*\\'",
2204 Added: "beginCaptures": {
2205 Added: "0": {
2206 Added: "name": "punctuation.definition.string.begin.elixir"
2207 Added: }
2208 Added: },
2209 Added: "comment": "sigil (without interpolation)",
2210 Added: "end": "\\'[a-z]*",
2211 Added: "endCaptures": {
2212 Added: "0": {
2213 Added: "name": "punctuation.definition.string.end.elixir"
2214 Added: }
2215 Added: },
2216 Added: "name": "string.quoted.double.literal.elixir"
2217 Added: },
2218 Added: {
2219 Added: "begin": "~[A-Z][A-Z0-9]*\\\"",
2220 Added: "beginCaptures": {
2221 Added: "0": {
2222 Added: "name": "punctuation.definition.string.begin.elixir"
2223 Added: }
2224 Added: },
2225 Added: "comment": "sigil (without interpolation)",
2226 Added: "end": "\\\"[a-z]*",
2227 Added: "endCaptures": {
2228 Added: "0": {
2229 Added: "name": "punctuation.definition.string.end.elixir"
2230 Added: }
2231 Added: },
2232 Added: "name": "string.quoted.double.literal.elixir"
2233 Added: },
2234 Added: {
2235 Added: "begin": "~[A-Z][A-Z0-9]*\\|",
2236 Added: "beginCaptures": {
2237 Added: "0": {
2238 Added: "name": "punctuation.definition.string.begin.elixir"
2239 Added: }
2240 Added: },
2241 Added: "comment": "sigil (without interpolation)",
2242 Added: "end": "\\|[a-z]*",
2243 Added: "endCaptures": {
2244 Added: "0": {
2245 Added: "name": "punctuation.definition.string.end.elixir"
2246 Added: }
2247 Added: },
2248 Added: "name": "string.quoted.double.literal.elixir"
2249 Added: },
2250 Added: {
2251 Added: "begin": ":'",
2252 Added: "captures": {
2253 Added: "0": {
2254 Added: "name": "punctuation.definition.constant.elixir"
2255 Added: }
2256 Added: },
2257 Added: "end": "'",
2258 Added: "name": "constant.language.symbol.single-quoted.elixir",
2259 Added: "patterns": [
2260 Added: {
2261 Added: "include": "#interpolated_elixir"
2262 Added: },
2263 Added: {
2264 Added: "include": "#escaped_char"
2265 Added: }
2266 Added: ]
2267 Added: },
2268 Added: {
2269 Added: "comment": "symbols with single-quoted string, used as keys in Keyword lists.",
2270 Added: "match": "(')((?:[^'\\\\]*(?:\\\\.[^'\\\\]*)*))(':)(?!:)",
2271 Added: "name": "constant.language.symbol.single-quoted.elixir",
2272 Added: "captures": {
2273 Added: "1": {
2274 Added: "name": "punctuation.definition.constant.elixir"
2275 Added: },
2276 Added: "2": {
2277 Added: "patterns": [
2278 Added: {
2279 Added: "include": "#interpolated_elixir"
2280 Added: },
2281 Added: {
2282 Added: "include": "#escaped_char"
2283 Added: }
2284 Added: ]
2285 Added: },
2286 Added: "3": {
2287 Added: "name": "punctuation.definition.constant.elixir"
2288 Added: }
2289 Added: }
2290 Added: },
2291 Added: {
2292 Added: "begin": ":\"",
2293 Added: "captures": {
2294 Added: "0": {
2295 Added: "name": "punctuation.definition.constant.elixir"
2296 Added: }
2297 Added: },
2298 Added: "end": "\"",
2299 Added: "name": "constant.language.symbol.double-quoted.elixir",
2300 Added: "patterns": [
2301 Added: {
2302 Added: "include": "#interpolated_elixir"
2303 Added: },
2304 Added: {
2305 Added: "include": "#escaped_char"
2306 Added: }
2307 Added: ]
2308 Added: },
2309 Added: {
2310 Added: "begin": "(?>''')",
2311 Added: "beginCaptures": {
2312 Added: "0": {
2313 Added: "name": "punctuation.definition.string.begin.elixir"
2314 Added: }
2315 Added: },
2316 Added: "comment": "Single-quoted heredocs",
2317 Added: "end": "^\\s*'''",
2318 Added: "endCaptures": {
2319 Added: "0": {
2320 Added: "name": "punctuation.definition.string.end.elixir"
2321 Added: }
2322 Added: },
2323 Added: "name": "string.quoted.single.heredoc.elixir",
2324 Added: "patterns": [
2325 Added: {
2326 Added: "include": "#interpolated_elixir"
2327 Added: },
2328 Added: {
2329 Added: "include": "#escaped_char"
2330 Added: }
2331 Added: ]
2332 Added: },
2333 Added: {
2334 Added: "begin": "'",
2335 Added: "beginCaptures": {
2336 Added: "0": {
2337 Added: "name": "punctuation.definition.string.begin.elixir"
2338 Added: }
2339 Added: },
2340 Added: "comment": "single quoted string (allows for interpolation)",
2341 Added: "end": "'",
2342 Added: "endCaptures": {
2343 Added: "0": {
2344 Added: "name": "punctuation.definition.string.end.elixir"
2345 Added: }
2346 Added: },
2347 Added: "name": "string.quoted.single.elixir",
2348 Added: "patterns": [
2349 Added: {
2350 Added: "include": "#interpolated_elixir"
2351 Added: },
2352 Added: {
2353 Added: "include": "#escaped_char"
2354 Added: }
2355 Added: ]
2356 Added: },
2357 Added: {
2358 Added: "begin": "(?>\"\"\")",
2359 Added: "beginCaptures": {
2360 Added: "0": {
2361 Added: "name": "punctuation.definition.string.begin.elixir"
2362 Added: }
2363 Added: },
2364 Added: "comment": "Double-quoted heredocs",
2365 Added: "end": "^\\s*\"\"\"",
2366 Added: "endCaptures": {
2367 Added: "0": {
2368 Added: "name": "punctuation.definition.string.end.elixir"
2369 Added: }
2370 Added: },
2371 Added: "name": "string.quoted.double.heredoc.elixir",
2372 Added: "patterns": [
2373 Added: {
2374 Added: "include": "#interpolated_elixir"
2375 Added: },
2376 Added: {
2377 Added: "include": "#escaped_char"
2378 Added: }
2379 Added: ]
2380 Added: },
2381 Added: {
2382 Added: "comment": "symbols defined by double-quoted string, used as keys in Keyword lists.",
2383 Added: "match": "(\")((?:[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*))(\":)(?!:)",
2384 Added: "name": "constant.language.symbol.double-quoted.elixir",
2385 Added: "captures": {
2386 Added: "1": {
2387 Added: "name": "punctuation.definition.constant.elixir"
2388 Added: },
2389 Added: "2": {
2390 Added: "patterns": [
2391 Added: {
2392 Added: "include": "#interpolated_elixir"
2393 Added: },
2394 Added: {
2395 Added: "include": "#escaped_char"
2396 Added: }
2397 Added: ]
2398 Added: },
2399 Added: "3": {
2400 Added: "name": "punctuation.definition.constant.elixir"
2401 Added: }
2402 Added: }
2403 Added: },
2404 Added: {
2405 Added: "begin": "\"",
2406 Added: "beginCaptures": {
2407 Added: "0": {
2408 Added: "name": "punctuation.definition.string.begin.elixir"
2409 Added: }
2410 Added: },
2411 Added: "comment": "double quoted string (allows for interpolation)",
2412 Added: "end": "\"",
2413 Added: "endCaptures": {
2414 Added: "0": {
2415 Added: "name": "punctuation.definition.string.end.elixir"
2416 Added: }
2417 Added: },
2418 Added: "name": "string.quoted.double.elixir",
2419 Added: "patterns": [
2420 Added: {
2421 Added: "include": "#interpolated_elixir"
2422 Added: },
2423 Added: {
2424 Added: "include": "#escaped_char"
2425 Added: }
2426 Added: ]
2427 Added: },
2428 Added: {
2429 Added: "begin": "#",
2430 Added: "beginCaptures": {
2431 Added: "0": {
2432 Added: "name": "punctuation.definition.comment.elixir"
2433 Added: }
2434 Added: },
2435 Added: "end": "\\n",
2436 Added: "name": "comment.line.number-sign.elixir"
2437 Added: },
2438 Added: {
2439 Added: "match": "\\b_([\\w]+[?!]?)",
2440 Added: "name": "comment.unused.elixir"
2441 Added: },
2442 Added: {
2443 Added: "match": "\\b_\\b",
2444 Added: "name": "comment.wildcard.elixir"
2445 Added: },
2446 Added: {
2447 Added: "comment": "matches question mark letters.\n\nexamples (1st alternation = hex):\n?\\x1 ?\\x61\n\nexamples (2nd alternation = octal):\n?\\0 ?\\07 ?\\017\n\nexamples (3rd alternation = escaped):\n?\\n ?\\b\n\nexamples (4th alternation = meta-ctrl):\n?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\nexamples (4th alternation = normal):\n?a ?A ?0\n?* ?\" ?(\n?. ?#\n\n\nthe negative lookbehind prevents against matching\np(42.tainted?)",
2448 Added: "match": "(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",
2449 Added: "name": "constant.numeric.elixir"
2450 Added: },
2451 Added: {
2452 Added: "match": "(\\|\\|\\||&&&|\\^\\^\\^|<<<|>>>|~~~)",
2453 Added: "name": "keyword.operator.bitwise.elixir"
2454 Added: },
2455 Added: {
2456 Added: "comment": "matches: <<~ ~>>",
2457 Added: "match": "~>>|<\\<\\~",
2458 Added: "name": "keyword.operator.other.unbalanced.elixir"
2459 Added: },
2460 Added: {
2461 Added: "comment": "matches: | ++ -- ** \\ <- <> << >> :: .. ... |> => -> <|> <~> <~ ~>",
2462 Added: "match": "\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.\\.?|\\|>|=>|<\\|\\>|<~>|->|~>|<~|(?<!\\|)\\|(?!\\|)",
2463 Added: "name": "keyword.operator.other.elixir"
2464 Added: },
2465 Added: {
2466 Added: "match": "===?|!==?|<=?|>=?|=~",
2467 Added: "name": "keyword.operator.comparison.elixir"
2468 Added: },
2469 Added: {
2470 Added: "match": "(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b",
2471 Added: "name": "keyword.operator.logical.elixir"
2472 Added: },
2473 Added: {
2474 Added: "match": "(\\^)",
2475 Added: "name": "keyword.operator.other.elixir"
2476 Added: },
2477 Added: {
2478 Added: "match": "(\\*|\\+|\\-|/)",
2479 Added: "name": "keyword.operator.arithmetic.elixir"
2480 Added: },
2481 Added: {
2482 Added: "match": "=",
2483 Added: "name": "keyword.operator.assignment.elixir"
2484 Added: },
2485 Added: {
2486 Added: "match": "\\;",
2487 Added: "name": "punctuation.separator.statement.elixir"
2488 Added: },
2489 Added: {
2490 Added: "match": ",",
2491 Added: "name": "punctuation.separator.object.elixir"
2492 Added: },
2493 Added: {
2494 Added: "match": "\\.",
2495 Added: "name": "punctuation.separator.method.elixir"
2496 Added: },
2497 Added: {
2498 Added: "match": "%",
2499 Added: "name": "punctuation.definition.map.elixir"
2500 Added: },
2501 Added: {
2502 Added: "match": "\\{|\\}",
2503 Added: "name": "punctuation.section.scope.elixir"
2504 Added: },
2505 Added: {
2506 Added: "match": "\\[\\]|\\[|\\]",
2507 Added: "name": "punctuation.section.array.elixir"
2508 Added: },
2509 Added: {
2510 Added: "match": "\\(|\\)",
2511 Added: "name": "punctuation.section.function.elixir"
2512 Added: },
2513 Added: {
2514 Added: "match": "(@)([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
2515 Added: "name": "variable.other.constant.elixir",
2516 Added: "captures": {
2517 Added: "1": {
2518 Added: "name": "punctuation.definition.variable.elixir"
2519 Added: }
2520 Added: }
2521 Added: },
2522 Added: {
2523 Added: "match": "([_\\p{Ll}\\p{Lo}][\\p{L}\\p{N}_]*[?!]?)",
2524 Added: "name": "variable.other.readwrite.elixir"
2525 Added: },
2526 Added: {
2527 Added: "match": "(&)\\d+",
2528 Added: "name": "variable.other.anonymous.elixir"
2529 Added: },
2530 Added: {
2531 Added: "match": "(&)",
2532 Added: "name": "keyword.operator.other.elixir"
2533 Added: },
2534 Added: {
2535 Added: "captures": {
2536 Added: "1": {
2537 Added: "name": "punctuation.definition.constant.elixir"
2538 Added: }
2539 Added: },
2540 Added: "comment": "Atom",
2541 Added: "match": "(?<!:)(:)(?:<<<|<<>>|<<~|<~>|<>|<=|<-|<~|<|>>>|>=|>|\\+\\+\\+|\\+\\+|\\+|---|--|->|-|\\*\\*|\\*|\\|\\|\\||\\|\\||\\|>|\\||%{}|%|&&&|&&|&|===|==|=~|=>|=|!==|!=|!|\\.\\.|\\.|~>>|~>|\\^|{}|@|\\/|\\\\\\\\|[\\p{L}_][\\p{L}\\p{N}_@]*[?!]?)",
2542 Added: "name": "constant.language.symbol.elixir"
2543 Added: },
2544 Added: {
2545 Added: "match": ":",
2546 Added: "name": "punctuation.separator.other.elixir"
2547 Added: }
2548 Added: ],
2549 Added: "repository": {
2550 Added: "escaped_char": {
2551 Added: "match": "\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",
2552 Added: "name": "constant.character.escape.elixir"
2553 Added: },
2554 Added: "interpolated_elixir": {
2555 Added: "patterns": [
2556 Added: {
2557 Added: "captures": {
2558 Added: "0": {
2559 Added: "name": "punctuation.section.embedded.elixir"
2560 Added: },
2561 Added: "1": {
2562 Added: "name": "meta.embedded.line.empty.elixir"
2563 Added: }
2564 Added: },
2565 Added: "match": "#\\{(\\})",
2566 Added: "name": "meta.embedded.line.elixir"
2567 Added: },
2568 Added: {
2569 Added: "begin": "#\\{",
2570 Added: "captures": {
2571 Added: "0": {
2572 Added: "name": "punctuation.section.embedded.elixir"
2573 Added: }
2574 Added: },
2575 Added: "end": "\\}",
2576 Added: "name": "meta.embedded.line.elixir",
2577 Added: "patterns": [
2578 Added: {
2579 Added: "include": "#nest_curly_and_self"
2580 Added: },
2581 Added: {
2582 Added: "include": "$self"
2583 Added: }
2584 Added: ]
2585 Added: }
2586 Added: ]
2587 Added: },
2588 Added: "nest_brackets": {
2589 Added: "begin": "\\[",
2590 Added: "captures": {
2591 Added: "0": {
2592 Added: "name": "punctuation.section.scope.elixir"
2593 Added: }
2594 Added: },
2595 Added: "end": "\\]",
2596 Added: "patterns": [
2597 Added: {
2598 Added: "include": "#nest_brackets"
2599 Added: }
2600 Added: ]
2601 Added: },
2602 Added: "nest_curly": {
2603 Added: "begin": "\\{",
2604 Added: "captures": {
2605 Added: "0": {
2606 Added: "name": "punctuation.section.scope.elixir"
2607 Added: }
2608 Added: },
2609 Added: "end": "\\}",
2610 Added: "patterns": [
2611 Added: {
2612 Added: "include": "#nest_curly"
2613 Added: }
2614 Added: ]
2615 Added: },
2616 Added: "nest_curly_and_self": {
2617 Added: "patterns": [
2618 Added: {
2619 Added: "begin": "\\{",
2620 Added: "captures": {
2621 Added: "0": {
2622 Added: "name": "punctuation.section.scope.elixir"
2623 Added: }
2624 Added: },
2625 Added: "end": "\\}",
2626 Added: "patterns": [
2627 Added: {
2628 Added: "include": "#nest_curly_and_self"
2629 Added: }
2630 Added: ]
2631 Added: },
2632 Added: {
2633 Added: "include": "$self"
2634 Added: }
2635 Added: ]
2636 Added: },
2637 Added: "nest_ltgt": {
2638 Added: "begin": "\\<",
2639 Added: "captures": {
2640 Added: "0": {
2641 Added: "name": "punctuation.section.scope.elixir"
2642 Added: }
2643 Added: },
2644 Added: "end": "\\>",
2645 Added: "patterns": [
2646 Added: {
2647 Added: "include": "#nest_ltgt"
2648 Added: }
2649 Added: ]
2650 Added: },
2651 Added: "nest_parens": {
2652 Added: "begin": "\\(",
2653 Added: "captures": {
2654 Added: "0": {
2655 Added: "name": "punctuation.section.scope.elixir"
2656 Added: }
2657 Added: },
2658 Added: "end": "\\)",
2659 Added: "patterns": [
2660 Added: {
2661 Added: "include": "#nest_parens"
2662 Added: }
2663 Added: ]
2664 Added: },
2665 Added: "regex_sub": {
2666 Added: "name": "string.interpolated.regexp.elixir",
2667 Added: "patterns": [
2668 Added: {
2669 Added: "include": "#interpolated_elixir"
2670 Added: },
2671 Added: {
2672 Added: "include": "#escaped_char"
2673 Added: },
2674 Added: {
2675 Added: "name": "string.regexp.arbitrary-repitition.elixir",
2676 Added: "match": "(\\{)\\d+(,\\d+)?(\\})",
2677 Added: "captures": {
2678 Added: "1": {
2679 Added: "name": "punctuation.definition.arbitrary-repitition.elixir"
2680 Added: },
2681 Added: "3": {
2682 Added: "name": "punctuation.definition.arbitrary-repitition.elixir"
2683 Added: }
2684 Added: }
2685 Added: },
2686 Added: {
2687 Added: "name": "string.regexp.character-class.elixir",
2688 Added: "begin": "\\[(?:\\^?\\])?",
2689 Added: "end": "\\]",
2690 Added: "captures": {
2691 Added: "0": {
2692 Added: "name": "punctuation.definition.character-class.elixir"
2693 Added: }
2694 Added: },
2695 Added: "patterns": [
2696 Added: {
2697 Added: "include": "#escaped_char"
2698 Added: }
2699 Added: ]
2700 Added: },
2701 Added: {
2702 Added: "begin": "\\(",
2703 Added: "captures": {
2704 Added: "0": {
2705 Added: "name": "punctuation.definition.group.elixir"
2706 Added: }
2707 Added: },
2708 Added: "end": "\\)",
2709 Added: "name": "string.regexp.group.elixir",
2710 Added: "patterns": [
2711 Added: {
2712 Added: "include": "#regex_sub"
2713 Added: }
2714 Added: ]
2715 Added: },
2716 Added: {
2717 Added: "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",
2718 Added: "beginCaptures": {
2719 Added: "1": {
2720 Added: "name": "punctuation.definition.comment.elixir"
2721 Added: }
2722 Added: },
2723 Added: "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",
2724 Added: "end": "$\\n?",
2725 Added: "endCaptures": {
2726 Added: "0": {
2727 Added: "name": "punctuation.definition.comment.elixir"
2728 Added: }
2729 Added: },
2730 Added: "name": "comment.line.number-sign.elixir"
2731 Added: }
2732 Added: ]
2733 Added: }
2734 Added: },
2735 Added: "scopeName": "source.elixir"
2736 Added: }
lib/grammars/erlang.json
index 00000000..3787af0b 000000..100644
@@ -0,0 +1,2285 @@
1 Added: {
2 Added: "comment": "The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function/module/record/macro names must be given unquoted. -- desp",
3 Added: "fileTypes": [
4 Added: "erl",
5 Added: "escript",
6 Added: "hrl",
7 Added: "xrl",
8 Added: "yrl"
9 Added: ],
10 Added: "keyEquivalent": "^~E",
11 Added: "name": "Erlang",
12 Added: "patterns": [
13 Added: {
14 Added: "include": "#module-directive"
15 Added: },
16 Added: {
17 Added: "include": "#import-export-directive"
18 Added: },
19 Added: {
20 Added: "include": "#behaviour-directive"
21 Added: },
22 Added: {
23 Added: "include": "#record-directive"
24 Added: },
25 Added: {
26 Added: "include": "#define-directive"
27 Added: },
28 Added: {
29 Added: "include": "#macro-directive"
30 Added: },
31 Added: {
32 Added: "include": "#doc-directive"
33 Added: },
34 Added: {
35 Added: "include": "#directive"
36 Added: },
37 Added: {
38 Added: "include": "#function"
39 Added: },
40 Added: {
41 Added: "include": "#everything-else"
42 Added: }
43 Added: ],
44 Added: "repository": {
45 Added: "atom": {
46 Added: "patterns": [
47 Added: {
48 Added: "begin": "(')",
49 Added: "beginCaptures": {
50 Added: "1": {
51 Added: "name": "punctuation.definition.symbol.begin.erlang"
52 Added: }
53 Added: },
54 Added: "end": "(')",
55 Added: "endCaptures": {
56 Added: "1": {
57 Added: "name": "punctuation.definition.symbol.end.erlang"
58 Added: }
59 Added: },
60 Added: "name": "constant.other.symbol.quoted.single.erlang",
61 Added: "patterns": [
62 Added: {
63 Added: "captures": {
64 Added: "1": {
65 Added: "name": "punctuation.definition.escape.erlang"
66 Added: },
67 Added: "3": {
68 Added: "name": "punctuation.definition.escape.erlang"
69 Added: }
70 Added: },
71 Added: "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",
72 Added: "name": "constant.other.symbol.escape.erlang"
73 Added: },
74 Added: {
75 Added: "match": "\\\\\\^?.?",
76 Added: "name": "invalid.illegal.atom.erlang"
77 Added: }
78 Added: ]
79 Added: },
80 Added: {
81 Added: "match": "[a-z][a-zA-Z\\d@_]*+",
82 Added: "name": "constant.other.symbol.unquoted.erlang"
83 Added: }
84 Added: ]
85 Added: },
86 Added: "behaviour-directive": {
87 Added: "captures": {
88 Added: "1": {
89 Added: "name": "punctuation.section.directive.begin.erlang"
90 Added: },
91 Added: "2": {
92 Added: "name": "keyword.control.directive.behaviour.erlang"
93 Added: },
94 Added: "3": {
95 Added: "name": "punctuation.definition.parameters.begin.erlang"
96 Added: },
97 Added: "4": {
98 Added: "name": "entity.name.type.class.behaviour.definition.erlang"
99 Added: },
100 Added: "5": {
101 Added: "name": "punctuation.definition.parameters.end.erlang"
102 Added: },
103 Added: "6": {
104 Added: "name": "punctuation.section.directive.end.erlang"
105 Added: }
106 Added: },
107 Added: "match": "^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
108 Added: "name": "meta.directive.behaviour.erlang"
109 Added: },
110 Added: "binary": {
111 Added: "begin": "(<<)",
112 Added: "beginCaptures": {
113 Added: "1": {
114 Added: "name": "punctuation.definition.binary.begin.erlang"
115 Added: }
116 Added: },
117 Added: "end": "(>>)",
118 Added: "endCaptures": {
119 Added: "1": {
120 Added: "name": "punctuation.definition.binary.end.erlang"
121 Added: }
122 Added: },
123 Added: "name": "meta.structure.binary.erlang",
124 Added: "patterns": [
125 Added: {
126 Added: "captures": {
127 Added: "1": {
128 Added: "name": "punctuation.separator.binary.erlang"
129 Added: },
130 Added: "2": {
131 Added: "name": "punctuation.separator.value-size.erlang"
132 Added: }
133 Added: },
134 Added: "match": "(,)|(:)"
135 Added: },
136 Added: {
137 Added: "include": "#internal-type-specifiers"
138 Added: },
139 Added: {
140 Added: "include": "#everything-else"
141 Added: }
142 Added: ]
143 Added: },
144 Added: "character": {
145 Added: "patterns": [
146 Added: {
147 Added: "captures": {
148 Added: "1": {
149 Added: "name": "punctuation.definition.character.erlang"
150 Added: },
151 Added: "2": {
152 Added: "name": "constant.character.escape.erlang"
153 Added: },
154 Added: "3": {
155 Added: "name": "punctuation.definition.escape.erlang"
156 Added: },
157 Added: "5": {
158 Added: "name": "punctuation.definition.escape.erlang"
159 Added: }
160 Added: },
161 Added: "match": "(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))",
162 Added: "name": "constant.character.erlang"
163 Added: },
164 Added: {
165 Added: "match": "\\$\\\\\\^?.?",
166 Added: "name": "invalid.illegal.character.erlang"
167 Added: },
168 Added: {
169 Added: "captures": {
170 Added: "1": {
171 Added: "name": "punctuation.definition.character.erlang"
172 Added: }
173 Added: },
174 Added: "match": "(\\$)[ \\S]",
175 Added: "name": "constant.character.erlang"
176 Added: },
177 Added: {
178 Added: "match": "\\$.?",
179 Added: "name": "invalid.illegal.character.erlang"
180 Added: }
181 Added: ]
182 Added: },
183 Added: "comment": {
184 Added: "begin": "(^[ \\t]+)?(?=%)",
185 Added: "beginCaptures": {
186 Added: "1": {
187 Added: "name": "punctuation.whitespace.comment.leading.erlang"
188 Added: }
189 Added: },
190 Added: "end": "(?!\\G)",
191 Added: "patterns": [
192 Added: {
193 Added: "begin": "%",
194 Added: "beginCaptures": {
195 Added: "0": {
196 Added: "name": "punctuation.definition.comment.erlang"
197 Added: }
198 Added: },
199 Added: "end": "\\n",
200 Added: "name": "comment.line.percentage.erlang"
201 Added: }
202 Added: ]
203 Added: },
204 Added: "define-directive": {
205 Added: "patterns": [
206 Added: {
207 Added: "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+",
208 Added: "beginCaptures": {
209 Added: "1": {
210 Added: "name": "punctuation.section.directive.begin.erlang"
211 Added: },
212 Added: "2": {
213 Added: "name": "keyword.control.directive.define.erlang"
214 Added: },
215 Added: "3": {
216 Added: "name": "punctuation.definition.parameters.begin.erlang"
217 Added: },
218 Added: "4": {
219 Added: "name": "entity.name.function.macro.definition.erlang"
220 Added: }
221 Added: },
222 Added: "end": "(\\))\\s*+(\\.)",
223 Added: "endCaptures": {
224 Added: "1": {
225 Added: "name": "punctuation.definition.parameters.end.erlang"
226 Added: },
227 Added: "2": {
228 Added: "name": "punctuation.section.directive.end.erlang"
229 Added: }
230 Added: },
231 Added: "name": "meta.directive.define.erlang",
232 Added: "patterns": [
233 Added: {
234 Added: "include": "#everything-else"
235 Added: }
236 Added: ]
237 Added: },
238 Added: {
239 Added: "begin": "(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",
240 Added: "end": "(\\))\\s*+(\\.)",
241 Added: "endCaptures": {
242 Added: "1": {
243 Added: "name": "punctuation.definition.parameters.end.erlang"
244 Added: },
245 Added: "2": {
246 Added: "name": "punctuation.section.directive.end.erlang"
247 Added: }
248 Added: },
249 Added: "name": "meta.directive.define.erlang",
250 Added: "patterns": [
251 Added: {
252 Added: "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",
253 Added: "beginCaptures": {
254 Added: "1": {
255 Added: "name": "punctuation.section.directive.begin.erlang"
256 Added: },
257 Added: "2": {
258 Added: "name": "keyword.control.directive.define.erlang"
259 Added: },
260 Added: "3": {
261 Added: "name": "punctuation.definition.parameters.begin.erlang"
262 Added: },
263 Added: "4": {
264 Added: "name": "entity.name.function.macro.definition.erlang"
265 Added: },
266 Added: "5": {
267 Added: "name": "punctuation.definition.parameters.begin.erlang"
268 Added: }
269 Added: },
270 Added: "end": "(\\))\\s*(,)",
271 Added: "endCaptures": {
272 Added: "1": {
273 Added: "name": "punctuation.definition.parameters.end.erlang"
274 Added: },
275 Added: "2": {
276 Added: "name": "punctuation.separator.parameters.erlang"
277 Added: }
278 Added: },
279 Added: "patterns": [
280 Added: {
281 Added: "match": ",",
282 Added: "name": "punctuation.separator.parameters.erlang"
283 Added: },
284 Added: {
285 Added: "include": "#everything-else"
286 Added: }
287 Added: ]
288 Added: },
289 Added: {
290 Added: "match": "\\|\\||\\||:|;|,|\\.|->",
291 Added: "name": "punctuation.separator.define.erlang"
292 Added: },
293 Added: {
294 Added: "include": "#everything-else"
295 Added: }
296 Added: ]
297 Added: }
298 Added: ]
299 Added: },
300 Added: "directive": {
301 Added: "patterns": [
302 Added: {
303 Added: "begin": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)",
304 Added: "beginCaptures": {
305 Added: "1": {
306 Added: "name": "punctuation.section.directive.begin.erlang"
307 Added: },
308 Added: "2": {
309 Added: "name": "keyword.control.directive.erlang"
310 Added: },
311 Added: "3": {
312 Added: "name": "punctuation.definition.parameters.begin.erlang"
313 Added: }
314 Added: },
315 Added: "end": "(\\)?)\\s*+(\\.)",
316 Added: "endCaptures": {
317 Added: "1": {
318 Added: "name": "punctuation.definition.parameters.end.erlang"
319 Added: },
320 Added: "2": {
321 Added: "name": "punctuation.section.directive.end.erlang"
322 Added: }
323 Added: },
324 Added: "name": "meta.directive.erlang",
325 Added: "patterns": [
326 Added: {
327 Added: "include": "#everything-else"
328 Added: }
329 Added: ]
330 Added: },
331 Added: {
332 Added: "captures": {
333 Added: "1": {
334 Added: "name": "punctuation.section.directive.begin.erlang"
335 Added: },
336 Added: "2": {
337 Added: "name": "keyword.control.directive.erlang"
338 Added: },
339 Added: "3": {
340 Added: "name": "punctuation.section.directive.end.erlang"
341 Added: }
342 Added: },
343 Added: "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",
344 Added: "name": "meta.directive.erlang"
345 Added: }
346 Added: ]
347 Added: },
348 Added: "doc-directive": {
349 Added: "begin": "^\\s*+(-)\\s*+((module)?doc)\\s*([(]\\s*)?(~[bBsS]?)?(([\"]{3,})\\s*)(\\S.*)?$",
350 Added: "beginCaptures": {
351 Added: "1": {
352 Added: "name": "punctuation.section.directive.begin.erlang"
353 Added: },
354 Added: "2": {
355 Added: "name": "keyword.control.directive.doc.erlang"
356 Added: },
357 Added: "4": {
358 Added: "name": "punctuation.definition.parameters.begin.erlang"
359 Added: },
360 Added: "5": {
361 Added: "name": "storage.type.string.erlang"
362 Added: },
363 Added: "6": {
364 Added: "name": "comment.block.documentation.erlang"
365 Added: },
366 Added: "7": {
367 Added: "name": "punctuation.definition.string.begin.erlang"
368 Added: },
369 Added: "8": {
370 Added: "name": "invalid.illegal.string.erlang"
371 Added: }
372 Added: },
373 Added: "end": "^(\\s*(\\7))\\s*([)]\\s*)?(\\.)",
374 Added: "endCaptures": {
375 Added: "1": {
376 Added: "name": "comment.block.documentation.erlang"
377 Added: },
378 Added: "2": {
379 Added: "name": "punctuation.definition.string.end.erlang"
380 Added: },
381 Added: "3": {
382 Added: "name": "punctuation.section.directive.end.Erlang"
383 Added: }
384 Added: },
385 Added: "name": "meta.directive.doc.erlang",
386 Added: "contentName": "meta.embedded.block.markdown",
387 Added: "patterns": [
388 Added: {
389 Added: "include": "text.html.markdown"
390 Added: }
391 Added: ]
392 Added: },
393 Added: "docstring": {
394 Added: "begin": "(?<!\")(([\"]{3,})\\s*)(\\S.*)?$",
395 Added: "beginCaptures": {
396 Added: "1": {
397 Added: "name": "meta.string.quoted.triple.begin.erlang"
398 Added: },
399 Added: "2": {
400 Added: "name": "punctuation.definition.string.begin.erlang"
401 Added: },
402 Added: "3": {
403 Added: "name": "invalid.illegal.string.erlang"
404 Added: }
405 Added: },
406 Added: "comment": "Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",
407 Added: "end": "^(\\s*(\\2))(?!\")",
408 Added: "endCaptures": {
409 Added: "1": {
410 Added: "name": "meta.string.quoted.triple.end.erlang"
411 Added: },
412 Added: "2": {
413 Added: "name": "punctuation.definition.string.end.erlang"
414 Added: }
415 Added: },
416 Added: "name": "string.quoted.triple.erlang",
417 Added: "patterns": [
418 Added: {
419 Added: "include": "#internal-string-body-verbatim"
420 Added: }
421 Added: ]
422 Added: },
423 Added: "everything-else": {
424 Added: "patterns": [
425 Added: {
426 Added: "include": "#comment"
427 Added: },
428 Added: {
429 Added: "include": "#record-usage"
430 Added: },
431 Added: {
432 Added: "include": "#macro-usage"
433 Added: },
434 Added: {
435 Added: "include": "#expression"
436 Added: },
437 Added: {
438 Added: "include": "#keyword"
439 Added: },
440 Added: {
441 Added: "include": "#textual-operator"
442 Added: },
443 Added: {
444 Added: "include": "#language-constant"
445 Added: },
446 Added: {
447 Added: "include": "#function-call"
448 Added: },
449 Added: {
450 Added: "include": "#tuple"
451 Added: },
452 Added: {
453 Added: "include": "#list"
454 Added: },
455 Added: {
456 Added: "include": "#binary"
457 Added: },
458 Added: {
459 Added: "include": "#parenthesized-expression"
460 Added: },
461 Added: {
462 Added: "include": "#character"
463 Added: },
464 Added: {
465 Added: "include": "#number"
466 Added: },
467 Added: {
468 Added: "include": "#atom"
469 Added: },
470 Added: {
471 Added: "include": "#sigil-docstring"
472 Added: },
473 Added: {
474 Added: "include": "#sigil-docstring-verbatim"
475 Added: },
476 Added: {
477 Added: "include": "#sigil-string"
478 Added: },
479 Added: {
480 Added: "include": "#docstring"
481 Added: },
482 Added: {
483 Added: "include": "#string"
484 Added: },
485 Added: {
486 Added: "include": "#symbolic-operator"
487 Added: },
488 Added: {
489 Added: "include": "#variable"
490 Added: }
491 Added: ]
492 Added: },
493 Added: "expression": {
494 Added: "patterns": [
495 Added: {
496 Added: "begin": "\\b(if)\\b",
497 Added: "beginCaptures": {
498 Added: "1": {
499 Added: "name": "keyword.control.if.erlang"
500 Added: }
501 Added: },
502 Added: "end": "\\b(end)\\b",
503 Added: "endCaptures": {
504 Added: "1": {
505 Added: "name": "keyword.control.end.erlang"
506 Added: }
507 Added: },
508 Added: "name": "meta.expression.if.erlang",
509 Added: "patterns": [
510 Added: {
511 Added: "include": "#internal-expression-punctuation"
512 Added: },
513 Added: {
514 Added: "include": "#everything-else"
515 Added: }
516 Added: ]
517 Added: },
518 Added: {
519 Added: "begin": "\\b(case)\\b",
520 Added: "beginCaptures": {
521 Added: "1": {
522 Added: "name": "keyword.control.case.erlang"
523 Added: }
524 Added: },
525 Added: "end": "\\b(end)\\b",
526 Added: "endCaptures": {
527 Added: "1": {
528 Added: "name": "keyword.control.end.erlang"
529 Added: }
530 Added: },
531 Added: "name": "meta.expression.case.erlang",
532 Added: "patterns": [
533 Added: {
534 Added: "include": "#internal-expression-punctuation"
535 Added: },
536 Added: {
537 Added: "include": "#everything-else"
538 Added: }
539 Added: ]
540 Added: },
541 Added: {
542 Added: "begin": "\\b(receive)\\b",
543 Added: "beginCaptures": {
544 Added: "1": {
545 Added: "name": "keyword.control.receive.erlang"
546 Added: }
547 Added: },
548 Added: "end": "\\b(end)\\b",
549 Added: "endCaptures": {
550 Added: "1": {
551 Added: "name": "keyword.control.end.erlang"
552 Added: }
553 Added: },
554 Added: "name": "meta.expression.receive.erlang",
555 Added: "patterns": [
556 Added: {
557 Added: "include": "#internal-expression-punctuation"
558 Added: },
559 Added: {
560 Added: "include": "#everything-else"
561 Added: }
562 Added: ]
563 Added: },
564 Added: {
565 Added: "captures": {
566 Added: "1": {
567 Added: "name": "keyword.control.fun.erlang"
568 Added: },
569 Added: "10": {
570 Added: "name": "punctuation.separator.function-arity.erlang"
571 Added: },
572 Added: "4": {
573 Added: "name": "entity.name.type.class.module.erlang"
574 Added: },
575 Added: "5": {
576 Added: "name": "variable.other.erlang"
577 Added: },
578 Added: "6": {
579 Added: "name": "punctuation.separator.module-function.erlang"
580 Added: },
581 Added: "8": {
582 Added: "name": "entity.name.function.erlang"
583 Added: },
584 Added: "9": {
585 Added: "name": "variable.other.erlang"
586 Added: }
587 Added: },
588 Added: "comment": "Implicit function expression with optional module qualifier when both module and function can be atom or variable",
589 Added: "match": "\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)",
590 Added: "name": "meta.expression.fun.implicit.erlang"
591 Added: },
592 Added: {
593 Added: "begin": "\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)",
594 Added: "beginCaptures": {
595 Added: "1": {
596 Added: "name": "keyword.control.fun.erlang"
597 Added: },
598 Added: "3": {
599 Added: "name": "entity.name.type.class.module.erlang"
600 Added: },
601 Added: "4": {
602 Added: "name": "variable.other.erlang"
603 Added: },
604 Added: "5": {
605 Added: "name": "punctuation.separator.module-function.erlang"
606 Added: }
607 Added: },
608 Added: "comment": "Implicit function expression with module qualifier when module can be atom or variable and function can by anything",
609 Added: "end": "(/)",
610 Added: "endCaptures": {
611 Added: "1": {
612 Added: "name": "punctuation.separator.function-arity.erlang"
613 Added: }
614 Added: },
615 Added: "name": "meta.expression.fun.implicit.erlang",
616 Added: "patterns": [
617 Added: {
618 Added: "include": "#everything-else"
619 Added: }
620 Added: ]
621 Added: },
622 Added: {
623 Added: "begin": "\\b(fun)\\s+(?!\\()",
624 Added: "beginCaptures": {
625 Added: "1": {
626 Added: "name": "keyword.control.fun.erlang"
627 Added: }
628 Added: },
629 Added: "comment": "Implicit function expression when both module and function can by anything",
630 Added: "end": "(/)",
631 Added: "endCaptures": {
632 Added: "1": {
633 Added: "name": "punctuation.separator.function-arity.erlang"
634 Added: }
635 Added: },
636 Added: "name": "meta.expression.fun.implicit.erlang",
637 Added: "patterns": [
638 Added: {
639 Added: "include": "#everything-else"
640 Added: }
641 Added: ]
642 Added: },
643 Added: {
644 Added: "begin": "\\b(fun)\\s*+(\\()(?=(\\s*+\\()|(\\)))",
645 Added: "beginCaptures": {
646 Added: "1": {
647 Added: "name": "entity.name.function.erlang"
648 Added: },
649 Added: "2": {
650 Added: "name": "punctuation.definition.parameters.begin.erlang"
651 Added: }
652 Added: },
653 Added: "comment": "Function type in type specification",
654 Added: "end": "(\\))",
655 Added: "endCaptures": {
656 Added: "1": {
657 Added: "name": "punctuation.definition.parameters.end.erlang"
658 Added: }
659 Added: },
660 Added: "patterns": [
661 Added: {
662 Added: "include": "#everything-else"
663 Added: }
664 Added: ]
665 Added: },
666 Added: {
667 Added: "begin": "\\b(fun)\\b",
668 Added: "beginCaptures": {
669 Added: "1": {
670 Added: "name": "keyword.control.fun.erlang"
671 Added: }
672 Added: },
673 Added: "comment": "Explicit function expression",
674 Added: "end": "\\b(end)\\b",
675 Added: "endCaptures": {
676 Added: "1": {
677 Added: "name": "keyword.control.end.erlang"
678 Added: }
679 Added: },
680 Added: "name": "meta.expression.fun.erlang",
681 Added: "patterns": [
682 Added: {
683 Added: "begin": "(?=\\()",
684 Added: "end": "(;)|(?=\\bend\\b)",
685 Added: "endCaptures": {
686 Added: "1": {
687 Added: "name": "punctuation.separator.clauses.erlang"
688 Added: }
689 Added: },
690 Added: "patterns": [
691 Added: {
692 Added: "include": "#internal-function-parts"
693 Added: }
694 Added: ]
695 Added: },
696 Added: {
697 Added: "include": "#everything-else"
698 Added: }
699 Added: ]
700 Added: },
701 Added: {
702 Added: "begin": "\\b(try)\\b",
703 Added: "beginCaptures": {
704 Added: "1": {
705 Added: "name": "keyword.control.try.erlang"
706 Added: }
707 Added: },
708 Added: "end": "\\b(end)\\b",
709 Added: "endCaptures": {
710 Added: "1": {
711 Added: "name": "keyword.control.end.erlang"
712 Added: }
713 Added: },
714 Added: "name": "meta.expression.try.erlang",
715 Added: "patterns": [
716 Added: {
717 Added: "include": "#internal-expression-punctuation"
718 Added: },
719 Added: {
720 Added: "include": "#everything-else"
721 Added: }
722 Added: ]
723 Added: },
724 Added: {
725 Added: "begin": "\\b(begin)\\b",
726 Added: "beginCaptures": {
727 Added: "1": {
728 Added: "name": "keyword.control.begin.erlang"
729 Added: }
730 Added: },
731 Added: "end": "\\b(end)\\b",
732 Added: "endCaptures": {
733 Added: "1": {
734 Added: "name": "keyword.control.end.erlang"
735 Added: }
736 Added: },
737 Added: "name": "meta.expression.begin.erlang",
738 Added: "patterns": [
739 Added: {
740 Added: "include": "#internal-expression-punctuation"
741 Added: },
742 Added: {
743 Added: "include": "#everything-else"
744 Added: }
745 Added: ]
746 Added: },
747 Added: {
748 Added: "begin": "\\b(maybe)\\b",
749 Added: "beginCaptures": {
750 Added: "1": {
751 Added: "name": "keyword.control.maybe.erlang"
752 Added: }
753 Added: },
754 Added: "end": "\\b(end)\\b",
755 Added: "endCaptures": {
756 Added: "1": {
757 Added: "name": "keyword.control.end.erlang"
758 Added: }
759 Added: },
760 Added: "name": "meta.expression.maybe.erlang",
761 Added: "patterns": [
762 Added: {
763 Added: "include": "#internal-expression-punctuation"
764 Added: },
765 Added: {
766 Added: "include": "#everything-else"
767 Added: }
768 Added: ]
769 Added: }
770 Added: ]
771 Added: },
772 Added: "function": {
773 Added: "begin": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()",
774 Added: "beginCaptures": {
775 Added: "1": {
776 Added: "name": "entity.name.function.definition.erlang"
777 Added: }
778 Added: },
779 Added: "end": "(\\.)",
780 Added: "endCaptures": {
781 Added: "1": {
782 Added: "name": "punctuation.terminator.function.erlang"
783 Added: }
784 Added: },
785 Added: "name": "meta.function.erlang",
786 Added: "patterns": [
787 Added: {
788 Added: "captures": {
789 Added: "1": {
790 Added: "name": "entity.name.function.erlang"
791 Added: }
792 Added: },
793 Added: "match": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()"
794 Added: },
795 Added: {
796 Added: "begin": "(?=\\()",
797 Added: "end": "(;)|(?=\\.)",
798 Added: "endCaptures": {
799 Added: "1": {
800 Added: "name": "punctuation.separator.clauses.erlang"
801 Added: }
802 Added: },
803 Added: "patterns": [
804 Added: {
805 Added: "include": "#parenthesized-expression"
806 Added: },
807 Added: {
808 Added: "include": "#internal-function-parts"
809 Added: }
810 Added: ]
811 Added: },
812 Added: {
813 Added: "include": "#everything-else"
814 Added: }
815 Added: ]
816 Added: },
817 Added: "function-call": {
818 Added: "begin": "(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())",
819 Added: "end": "(\\))",
820 Added: "endCaptures": {
821 Added: "1": {
822 Added: "name": "punctuation.definition.parameters.end.erlang"
823 Added: }
824 Added: },
825 Added: "name": "meta.function-call.erlang",
826 Added: "patterns": [
827 Added: {
828 Added: "begin": "((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()",
829 Added: "beginCaptures": {
830 Added: "2": {
831 Added: "name": "entity.name.type.class.module.erlang"
832 Added: },
833 Added: "3": {
834 Added: "name": "punctuation.separator.module-function.erlang"
835 Added: },
836 Added: "4": {
837 Added: "name": "entity.name.function.guard.erlang"
838 Added: },
839 Added: "5": {
840 Added: "name": "punctuation.definition.parameters.begin.erlang"
841 Added: }
842 Added: },
843 Added: "end": "(?=\\))",
844 Added: "patterns": [
845 Added: {
846 Added: "match": ",",
847 Added: "name": "punctuation.separator.parameters.erlang"
848 Added: },
849 Added: {
850 Added: "include": "#everything-else"
851 Added: }
852 Added: ]
853 Added: },
854 Added: {
855 Added: "begin": "((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()",
856 Added: "beginCaptures": {
857 Added: "3": {
858 Added: "name": "entity.name.type.class.module.erlang"
859 Added: },
860 Added: "4": {
861 Added: "name": "variable.other.erlang"
862 Added: },
863 Added: "5": {
864 Added: "name": "punctuation.separator.module-function.erlang"
865 Added: },
866 Added: "7": {
867 Added: "name": "entity.name.function.erlang"
868 Added: },
869 Added: "8": {
870 Added: "name": "variable.other.erlang"
871 Added: },
872 Added: "9": {
873 Added: "name": "punctuation.definition.parameters.begin.erlang"
874 Added: }
875 Added: },
876 Added: "end": "(?=\\))",
877 Added: "patterns": [
878 Added: {
879 Added: "match": ",",
880 Added: "name": "punctuation.separator.parameters.erlang"
881 Added: },
882 Added: {
883 Added: "include": "#everything-else"
884 Added: }
885 Added: ]
886 Added: }
887 Added: ]
888 Added: },
889 Added: "import-export-directive": {
890 Added: "patterns": [
891 Added: {
892 Added: "begin": "^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",
893 Added: "beginCaptures": {
894 Added: "1": {
895 Added: "name": "punctuation.section.directive.begin.erlang"
896 Added: },
897 Added: "2": {
898 Added: "name": "keyword.control.directive.import.erlang"
899 Added: },
900 Added: "3": {
901 Added: "name": "punctuation.definition.parameters.begin.erlang"
902 Added: },
903 Added: "4": {
904 Added: "name": "entity.name.type.class.module.erlang"
905 Added: },
906 Added: "5": {
907 Added: "name": "punctuation.separator.parameters.erlang"
908 Added: }
909 Added: },
910 Added: "end": "(\\))\\s*+(\\.)",
911 Added: "endCaptures": {
912 Added: "1": {
913 Added: "name": "punctuation.definition.parameters.end.erlang"
914 Added: },
915 Added: "2": {
916 Added: "name": "punctuation.section.directive.end.erlang"
917 Added: }
918 Added: },
919 Added: "name": "meta.directive.import.erlang",
920 Added: "patterns": [
921 Added: {
922 Added: "include": "#internal-function-list"
923 Added: }
924 Added: ]
925 Added: },
926 Added: {
927 Added: "begin": "^\\s*+(-)\\s*+(export)\\s*+(\\()",
928 Added: "beginCaptures": {
929 Added: "1": {
930 Added: "name": "punctuation.section.directive.begin.erlang"
931 Added: },
932 Added: "2": {
933 Added: "name": "keyword.control.directive.export.erlang"
934 Added: },
935 Added: "3": {
936 Added: "name": "punctuation.definition.parameters.begin.erlang"
937 Added: }
938 Added: },
939 Added: "end": "(\\))\\s*+(\\.)",
940 Added: "endCaptures": {
941 Added: "1": {
942 Added: "name": "punctuation.definition.parameters.end.erlang"
943 Added: },
944 Added: "2": {
945 Added: "name": "punctuation.section.directive.end.erlang"
946 Added: }
947 Added: },
948 Added: "name": "meta.directive.export.erlang",
949 Added: "patterns": [
950 Added: {
951 Added: "include": "#internal-function-list"
952 Added: }
953 Added: ]
954 Added: }
955 Added: ]
956 Added: },
957 Added: "internal-expression-punctuation": {
958 Added: "captures": {
959 Added: "1": {
960 Added: "name": "punctuation.separator.clause-head-body.erlang"
961 Added: },
962 Added: "2": {
963 Added: "name": "punctuation.separator.clauses.erlang"
964 Added: },
965 Added: "3": {
966 Added: "name": "punctuation.separator.expressions.erlang"
967 Added: }
968 Added: },
969 Added: "match": "(->)|(;)|(,)"
970 Added: },
971 Added: "internal-function-list": {
972 Added: "begin": "(\\[)",
973 Added: "beginCaptures": {
974 Added: "1": {
975 Added: "name": "punctuation.definition.list.begin.erlang"
976 Added: }
977 Added: },
978 Added: "end": "(\\])",
979 Added: "endCaptures": {
980 Added: "1": {
981 Added: "name": "punctuation.definition.list.end.erlang"
982 Added: }
983 Added: },
984 Added: "name": "meta.structure.list.function.erlang",
985 Added: "patterns": [
986 Added: {
987 Added: "begin": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)",
988 Added: "beginCaptures": {
989 Added: "1": {
990 Added: "name": "entity.name.function.erlang"
991 Added: },
992 Added: "2": {
993 Added: "name": "punctuation.separator.function-arity.erlang"
994 Added: }
995 Added: },
996 Added: "end": "(,)|(?=\\])",
997 Added: "endCaptures": {
998 Added: "1": {
999 Added: "name": "punctuation.separator.list.erlang"
1000 Added: }
1001 Added: },
1002 Added: "patterns": [
1003 Added: {
1004 Added: "include": "#everything-else"
1005 Added: }
1006 Added: ]
1007 Added: },
1008 Added: {
1009 Added: "include": "#everything-else"
1010 Added: }
1011 Added: ]
1012 Added: },
1013 Added: "internal-function-parts": {
1014 Added: "patterns": [
1015 Added: {
1016 Added: "begin": "(?=\\()",
1017 Added: "end": "(->)",
1018 Added: "endCaptures": {
1019 Added: "1": {
1020 Added: "name": "punctuation.separator.clause-head-body.erlang"
1021 Added: }
1022 Added: },
1023 Added: "patterns": [
1024 Added: {
1025 Added: "begin": "(\\()",
1026 Added: "beginCaptures": {
1027 Added: "1": {
1028 Added: "name": "punctuation.definition.parameters.begin.erlang"
1029 Added: }
1030 Added: },
1031 Added: "end": "(\\))",
1032 Added: "endCaptures": {
1033 Added: "1": {
1034 Added: "name": "punctuation.definition.parameters.end.erlang"
1035 Added: }
1036 Added: },
1037 Added: "patterns": [
1038 Added: {
1039 Added: "match": ",",
1040 Added: "name": "punctuation.separator.parameters.erlang"
1041 Added: },
1042 Added: {
1043 Added: "include": "#everything-else"
1044 Added: }
1045 Added: ]
1046 Added: },
1047 Added: {
1048 Added: "match": ",|;",
1049 Added: "name": "punctuation.separator.guards.erlang"
1050 Added: },
1051 Added: {
1052 Added: "include": "#everything-else"
1053 Added: }
1054 Added: ]
1055 Added: },
1056 Added: {
1057 Added: "match": ",",
1058 Added: "name": "punctuation.separator.expressions.erlang"
1059 Added: },
1060 Added: {
1061 Added: "include": "#everything-else"
1062 Added: }
1063 Added: ]
1064 Added: },
1065 Added: "internal-record-body": {
1066 Added: "begin": "(\\{)",
1067 Added: "beginCaptures": {
1068 Added: "1": {
1069 Added: "name": "punctuation.definition.class.record.begin.erlang"
1070 Added: }
1071 Added: },
1072 Added: "end": "(\\})",
1073 Added: "endCaptures": {
1074 Added: "1": {
1075 Added: "name": "punctuation.definition.class.record.end.erlang"
1076 Added: }
1077 Added: },
1078 Added: "name": "meta.structure.record.erlang",
1079 Added: "patterns": [
1080 Added: {
1081 Added: "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))",
1082 Added: "beginCaptures": {
1083 Added: "2": {
1084 Added: "name": "variable.other.field.erlang"
1085 Added: },
1086 Added: "3": {
1087 Added: "name": "variable.language.omitted.field.erlang"
1088 Added: }
1089 Added: },
1090 Added: "end": "(,)|(?=\\})",
1091 Added: "endCaptures": {
1092 Added: "1": {
1093 Added: "name": "punctuation.separator.class.record.erlang"
1094 Added: }
1095 Added: },
1096 Added: "patterns": [
1097 Added: {
1098 Added: "include": "#everything-else"
1099 Added: }
1100 Added: ]
1101 Added: },
1102 Added: {
1103 Added: "include": "#everything-else"
1104 Added: }
1105 Added: ]
1106 Added: },
1107 Added: "internal-string-body": {
1108 Added: "patterns": [
1109 Added: {
1110 Added: "captures": {
1111 Added: "1": {
1112 Added: "name": "punctuation.definition.escape.erlang"
1113 Added: },
1114 Added: "3": {
1115 Added: "name": "punctuation.definition.escape.erlang"
1116 Added: }
1117 Added: },
1118 Added: "comment": "escape sequence",
1119 Added: "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",
1120 Added: "name": "constant.character.escape.erlang"
1121 Added: },
1122 Added: {
1123 Added: "match": "\\\\\\^?.?",
1124 Added: "name": "invalid.illegal.string.erlang"
1125 Added: },
1126 Added: {
1127 Added: "include": "#internal-string-body-verbatim"
1128 Added: }
1129 Added: ]
1130 Added: },
1131 Added: "internal-string-body-verbatim": {
1132 Added: "patterns": [
1133 Added: {
1134 Added: "captures": {
1135 Added: "1": {
1136 Added: "name": "punctuation.definition.placeholder.erlang"
1137 Added: },
1138 Added: "10": {
1139 Added: "name": "punctuation.separator.placeholder-parts.erlang"
1140 Added: },
1141 Added: "6": {
1142 Added: "name": "punctuation.separator.placeholder-parts.erlang"
1143 Added: }
1144 Added: },
1145 Added: "comment": "io:fwrite format control sequence",
1146 Added: "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]",
1147 Added: "name": "constant.character.format.placeholder.other.erlang"
1148 Added: },
1149 Added: {
1150 Added: "captures": {
1151 Added: "1": {
1152 Added: "name": "punctuation.definition.placeholder.erlang"
1153 Added: }
1154 Added: },
1155 Added: "comment": "io:fread format control sequence",
1156 Added: "match": "(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]",
1157 Added: "name": "constant.character.format.placeholder.other.erlang"
1158 Added: },
1159 Added: {
1160 Added: "match": "~[^\"]?",
1161 Added: "name": "invalid.illegal.string.erlang"
1162 Added: }
1163 Added: ]
1164 Added: },
1165 Added: "internal-type-specifiers": {
1166 Added: "begin": "(/)",
1167 Added: "beginCaptures": {
1168 Added: "1": {
1169 Added: "name": "punctuation.separator.value-type.erlang"
1170 Added: }
1171 Added: },
1172 Added: "end": "(?=,|:|>>)",
1173 Added: "patterns": [
1174 Added: {
1175 Added: "captures": {
1176 Added: "1": {
1177 Added: "name": "storage.type.erlang"
1178 Added: },
1179 Added: "2": {
1180 Added: "name": "storage.modifier.signedness.erlang"
1181 Added: },
1182 Added: "3": {
1183 Added: "name": "storage.modifier.endianness.erlang"
1184 Added: },
1185 Added: "4": {
1186 Added: "name": "storage.modifier.unit.erlang"
1187 Added: },
1188 Added: "5": {
1189 Added: "name": "punctuation.separator.unit-specifiers.erlang"
1190 Added: },
1191 Added: "6": {
1192 Added: "name": "constant.numeric.integer.decimal.erlang"
1193 Added: },
1194 Added: "7": {
1195 Added: "name": "punctuation.separator.type-specifiers.erlang"
1196 Added: }
1197 Added: },
1198 Added: "match": "(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)"
1199 Added: }
1200 Added: ]
1201 Added: },
1202 Added: "keyword": {
1203 Added: "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b",
1204 Added: "name": "keyword.control.erlang"
1205 Added: },
1206 Added: "language-constant": {
1207 Added: "match": "\\b(false|true|undefined)\\b",
1208 Added: "name": "constant.language"
1209 Added: },
1210 Added: "list": {
1211 Added: "begin": "(\\[)",
1212 Added: "beginCaptures": {
1213 Added: "1": {
1214 Added: "name": "punctuation.definition.list.begin.erlang"
1215 Added: }
1216 Added: },
1217 Added: "end": "(\\])",
1218 Added: "endCaptures": {
1219 Added: "1": {
1220 Added: "name": "punctuation.definition.list.end.erlang"
1221 Added: }
1222 Added: },
1223 Added: "name": "meta.structure.list.erlang",
1224 Added: "patterns": [
1225 Added: {
1226 Added: "match": "\\||\\|\\||,",
1227 Added: "name": "punctuation.separator.list.erlang"
1228 Added: },
1229 Added: {
1230 Added: "include": "#everything-else"
1231 Added: }
1232 Added: ]
1233 Added: },
1234 Added: "macro-directive": {
1235 Added: "patterns": [
1236 Added: {
1237 Added: "captures": {
1238 Added: "1": {
1239 Added: "name": "punctuation.section.directive.begin.erlang"
1240 Added: },
1241 Added: "2": {
1242 Added: "name": "keyword.control.directive.ifdef.erlang"
1243 Added: },
1244 Added: "3": {
1245 Added: "name": "punctuation.definition.parameters.begin.erlang"
1246 Added: },
1247 Added: "4": {
1248 Added: "name": "entity.name.function.macro.erlang"
1249 Added: },
1250 Added: "5": {
1251 Added: "name": "punctuation.definition.parameters.end.erlang"
1252 Added: },
1253 Added: "6": {
1254 Added: "name": "punctuation.section.directive.end.erlang"
1255 Added: }
1256 Added: },
1257 Added: "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1258 Added: "name": "meta.directive.ifdef.erlang"
1259 Added: },
1260 Added: {
1261 Added: "captures": {
1262 Added: "1": {
1263 Added: "name": "punctuation.section.directive.begin.erlang"
1264 Added: },
1265 Added: "2": {
1266 Added: "name": "keyword.control.directive.ifndef.erlang"
1267 Added: },
1268 Added: "3": {
1269 Added: "name": "punctuation.definition.parameters.begin.erlang"
1270 Added: },
1271 Added: "4": {
1272 Added: "name": "entity.name.function.macro.erlang"
1273 Added: },
1274 Added: "5": {
1275 Added: "name": "punctuation.definition.parameters.end.erlang"
1276 Added: },
1277 Added: "6": {
1278 Added: "name": "punctuation.section.directive.end.erlang"
1279 Added: }
1280 Added: },
1281 Added: "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1282 Added: "name": "meta.directive.ifndef.erlang"
1283 Added: },
1284 Added: {
1285 Added: "captures": {
1286 Added: "1": {
1287 Added: "name": "punctuation.section.directive.begin.erlang"
1288 Added: },
1289 Added: "2": {
1290 Added: "name": "keyword.control.directive.undef.erlang"
1291 Added: },
1292 Added: "3": {
1293 Added: "name": "punctuation.definition.parameters.begin.erlang"
1294 Added: },
1295 Added: "4": {
1296 Added: "name": "entity.name.function.macro.erlang"
1297 Added: },
1298 Added: "5": {
1299 Added: "name": "punctuation.definition.parameters.end.erlang"
1300 Added: },
1301 Added: "6": {
1302 Added: "name": "punctuation.section.directive.end.erlang"
1303 Added: }
1304 Added: },
1305 Added: "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1306 Added: "name": "meta.directive.undef.erlang"
1307 Added: }
1308 Added: ]
1309 Added: },
1310 Added: "macro-usage": {
1311 Added: "captures": {
1312 Added: "1": {
1313 Added: "name": "keyword.operator.macro.erlang"
1314 Added: },
1315 Added: "2": {
1316 Added: "name": "entity.name.function.macro.erlang"
1317 Added: }
1318 Added: },
1319 Added: "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",
1320 Added: "name": "meta.macro-usage.erlang"
1321 Added: },
1322 Added: "module-directive": {
1323 Added: "captures": {
1324 Added: "1": {
1325 Added: "name": "punctuation.section.directive.begin.erlang"
1326 Added: },
1327 Added: "2": {
1328 Added: "name": "keyword.control.directive.module.erlang"
1329 Added: },
1330 Added: "3": {
1331 Added: "name": "punctuation.definition.parameters.begin.erlang"
1332 Added: },
1333 Added: "4": {
1334 Added: "name": "entity.name.type.class.module.definition.erlang"
1335 Added: },
1336 Added: "5": {
1337 Added: "name": "punctuation.definition.parameters.end.erlang"
1338 Added: },
1339 Added: "6": {
1340 Added: "name": "punctuation.section.directive.end.erlang"
1341 Added: }
1342 Added: },
1343 Added: "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
1344 Added: "name": "meta.directive.module.erlang"
1345 Added: },
1346 Added: "number": {
1347 Added: "begin": "(?=\\d)",
1348 Added: "end": "(?!\\d)",
1349 Added: "patterns": [
1350 Added: {
1351 Added: "captures": {
1352 Added: "1": {
1353 Added: "name": "punctuation.separator.integer-float.erlang"
1354 Added: },
1355 Added: "2": {
1356 Added: "name": "punctuation.separator.float-exponent.erlang"
1357 Added: }
1358 Added: },
1359 Added: "match": "\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",
1360 Added: "name": "constant.numeric.float.erlang"
1361 Added: },
1362 Added: {
1363 Added: "captures": {
1364 Added: "1": {
1365 Added: "name": "punctuation.separator.base-integer.erlang"
1366 Added: }
1367 Added: },
1368 Added: "match": "2(#)([0-1]++_)*[0-1]++",
1369 Added: "name": "constant.numeric.integer.binary.erlang"
1370 Added: },
1371 Added: {
1372 Added: "captures": {
1373 Added: "1": {
1374 Added: "name": "punctuation.separator.base-integer.erlang"
1375 Added: }
1376 Added: },
1377 Added: "match": "3(#)([0-2]++_)*[0-2]++",
1378 Added: "name": "constant.numeric.integer.base-3.erlang"
1379 Added: },
1380 Added: {
1381 Added: "captures": {
1382 Added: "1": {
1383 Added: "name": "punctuation.separator.base-integer.erlang"
1384 Added: }
1385 Added: },
1386 Added: "match": "4(#)([0-3]++_)*[0-3]++",
1387 Added: "name": "constant.numeric.integer.base-4.erlang"
1388 Added: },
1389 Added: {
1390 Added: "captures": {
1391 Added: "1": {
1392 Added: "name": "punctuation.separator.base-integer.erlang"
1393 Added: }
1394 Added: },
1395 Added: "match": "5(#)([0-4]++_)*[0-4]++",
1396 Added: "name": "constant.numeric.integer.base-5.erlang"
1397 Added: },
1398 Added: {
1399 Added: "captures": {
1400 Added: "1": {
1401 Added: "name": "punctuation.separator.base-integer.erlang"
1402 Added: }
1403 Added: },
1404 Added: "match": "6(#)([0-5]++_)*[0-5]++",
1405 Added: "name": "constant.numeric.integer.base-6.erlang"
1406 Added: },
1407 Added: {
1408 Added: "captures": {
1409 Added: "1": {
1410 Added: "name": "punctuation.separator.base-integer.erlang"
1411 Added: }
1412 Added: },
1413 Added: "match": "7(#)([0-6]++_)*[0-6]++",
1414 Added: "name": "constant.numeric.integer.base-7.erlang"
1415 Added: },
1416 Added: {
1417 Added: "captures": {
1418 Added: "1": {
1419 Added: "name": "punctuation.separator.base-integer.erlang"
1420 Added: }
1421 Added: },
1422 Added: "match": "8(#)([0-7]++_)*[0-7]++",
1423 Added: "name": "constant.numeric.integer.octal.erlang"
1424 Added: },
1425 Added: {
1426 Added: "captures": {
1427 Added: "1": {
1428 Added: "name": "punctuation.separator.base-integer.erlang"
1429 Added: }
1430 Added: },
1431 Added: "match": "9(#)([0-8]++_)*[0-8]++",
1432 Added: "name": "constant.numeric.integer.base-9.erlang"
1433 Added: },
1434 Added: {
1435 Added: "captures": {
1436 Added: "1": {
1437 Added: "name": "punctuation.separator.base-integer.erlang"
1438 Added: }
1439 Added: },
1440 Added: "match": "10(#)(\\d++_)*\\d++",
1441 Added: "name": "constant.numeric.integer.decimal.erlang"
1442 Added: },
1443 Added: {
1444 Added: "captures": {
1445 Added: "1": {
1446 Added: "name": "punctuation.separator.base-integer.erlang"
1447 Added: }
1448 Added: },
1449 Added: "match": "11(#)([\\daA]++_)*[\\daA]++",
1450 Added: "name": "constant.numeric.integer.base-11.erlang"
1451 Added: },
1452 Added: {
1453 Added: "captures": {
1454 Added: "1": {
1455 Added: "name": "punctuation.separator.base-integer.erlang"
1456 Added: }
1457 Added: },
1458 Added: "match": "12(#)([\\da-bA-B]++_)*[\\da-bA-B]++",
1459 Added: "name": "constant.numeric.integer.base-12.erlang"
1460 Added: },
1461 Added: {
1462 Added: "captures": {
1463 Added: "1": {
1464 Added: "name": "punctuation.separator.base-integer.erlang"
1465 Added: }
1466 Added: },
1467 Added: "match": "13(#)([\\da-cA-C]++_)*[\\da-cA-C]++",
1468 Added: "name": "constant.numeric.integer.base-13.erlang"
1469 Added: },
1470 Added: {
1471 Added: "captures": {
1472 Added: "1": {
1473 Added: "name": "punctuation.separator.base-integer.erlang"
1474 Added: }
1475 Added: },
1476 Added: "match": "14(#)([\\da-dA-D]++_)*[\\da-dA-D]++",
1477 Added: "name": "constant.numeric.integer.base-14.erlang"
1478 Added: },
1479 Added: {
1480 Added: "captures": {
1481 Added: "1": {
1482 Added: "name": "punctuation.separator.base-integer.erlang"
1483 Added: }
1484 Added: },
1485 Added: "match": "15(#)([\\da-eA-E]++_)*[\\da-eA-E]++",
1486 Added: "name": "constant.numeric.integer.base-15.erlang"
1487 Added: },
1488 Added: {
1489 Added: "captures": {
1490 Added: "1": {
1491 Added: "name": "punctuation.separator.base-integer.erlang"
1492 Added: }
1493 Added: },
1494 Added: "match": "16(#)([\\da-fA-F]++_)*[\\da-fA-F]++",
1495 Added: "name": "constant.numeric.integer.hexadecimal.erlang"
1496 Added: },
1497 Added: {
1498 Added: "captures": {
1499 Added: "1": {
1500 Added: "name": "punctuation.separator.base-integer.erlang"
1501 Added: }
1502 Added: },
1503 Added: "match": "17(#)([\\da-gA-G]++_)*[\\da-gA-G]++",
1504 Added: "name": "constant.numeric.integer.base-17.erlang"
1505 Added: },
1506 Added: {
1507 Added: "captures": {
1508 Added: "1": {
1509 Added: "name": "punctuation.separator.base-integer.erlang"
1510 Added: }
1511 Added: },
1512 Added: "match": "18(#)([\\da-hA-H]++_)*[\\da-hA-H]++",
1513 Added: "name": "constant.numeric.integer.base-18.erlang"
1514 Added: },
1515 Added: {
1516 Added: "captures": {
1517 Added: "1": {
1518 Added: "name": "punctuation.separator.base-integer.erlang"
1519 Added: }
1520 Added: },
1521 Added: "match": "19(#)([\\da-iA-I]++_)*[\\da-iA-I]++",
1522 Added: "name": "constant.numeric.integer.base-19.erlang"
1523 Added: },
1524 Added: {
1525 Added: "captures": {
1526 Added: "1": {
1527 Added: "name": "punctuation.separator.base-integer.erlang"
1528 Added: }
1529 Added: },
1530 Added: "match": "20(#)([\\da-jA-J]++_)*[\\da-jA-J]++",
1531 Added: "name": "constant.numeric.integer.base-20.erlang"
1532 Added: },
1533 Added: {
1534 Added: "captures": {
1535 Added: "1": {
1536 Added: "name": "punctuation.separator.base-integer.erlang"
1537 Added: }
1538 Added: },
1539 Added: "match": "21(#)([\\da-kA-K]++_)*[\\da-kA-K]++",
1540 Added: "name": "constant.numeric.integer.base-21.erlang"
1541 Added: },
1542 Added: {
1543 Added: "captures": {
1544 Added: "1": {
1545 Added: "name": "punctuation.separator.base-integer.erlang"
1546 Added: }
1547 Added: },
1548 Added: "match": "22(#)([\\da-lA-L]++_)*[\\da-lA-L]++",
1549 Added: "name": "constant.numeric.integer.base-22.erlang"
1550 Added: },
1551 Added: {
1552 Added: "captures": {
1553 Added: "1": {
1554 Added: "name": "punctuation.separator.base-integer.erlang"
1555 Added: }
1556 Added: },
1557 Added: "match": "23(#)([\\da-mA-M]++_)*[\\da-mA-M]++",
1558 Added: "name": "constant.numeric.integer.base-23.erlang"
1559 Added: },
1560 Added: {
1561 Added: "captures": {
1562 Added: "1": {
1563 Added: "name": "punctuation.separator.base-integer.erlang"
1564 Added: }
1565 Added: },
1566 Added: "match": "24(#)([\\da-nA-N]++_)*[\\da-nA-N]++",
1567 Added: "name": "constant.numeric.integer.base-24.erlang"
1568 Added: },
1569 Added: {
1570 Added: "captures": {
1571 Added: "1": {
1572 Added: "name": "punctuation.separator.base-integer.erlang"
1573 Added: }
1574 Added: },
1575 Added: "match": "25(#)([\\da-oA-O]++_)*[\\da-oA-O]++",
1576 Added: "name": "constant.numeric.integer.base-25.erlang"
1577 Added: },
1578 Added: {
1579 Added: "captures": {
1580 Added: "1": {
1581 Added: "name": "punctuation.separator.base-integer.erlang"
1582 Added: }
1583 Added: },
1584 Added: "match": "26(#)([\\da-pA-P]++_)*[\\da-pA-P]++",
1585 Added: "name": "constant.numeric.integer.base-26.erlang"
1586 Added: },
1587 Added: {
1588 Added: "captures": {
1589 Added: "1": {
1590 Added: "name": "punctuation.separator.base-integer.erlang"
1591 Added: }
1592 Added: },
1593 Added: "match": "27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++",
1594 Added: "name": "constant.numeric.integer.base-27.erlang"
1595 Added: },
1596 Added: {
1597 Added: "captures": {
1598 Added: "1": {
1599 Added: "name": "punctuation.separator.base-integer.erlang"
1600 Added: }
1601 Added: },
1602 Added: "match": "28(#)([\\da-rA-R]++_)*[\\da-rA-R]++",
1603 Added: "name": "constant.numeric.integer.base-28.erlang"
1604 Added: },
1605 Added: {
1606 Added: "captures": {
1607 Added: "1": {
1608 Added: "name": "punctuation.separator.base-integer.erlang"
1609 Added: }
1610 Added: },
1611 Added: "match": "29(#)([\\da-sA-S]++_)*[\\da-sA-S]++",
1612 Added: "name": "constant.numeric.integer.base-29.erlang"
1613 Added: },
1614 Added: {
1615 Added: "captures": {
1616 Added: "1": {
1617 Added: "name": "punctuation.separator.base-integer.erlang"
1618 Added: }
1619 Added: },
1620 Added: "match": "30(#)([\\da-tA-T]++_)*[\\da-tA-T]++",
1621 Added: "name": "constant.numeric.integer.base-30.erlang"
1622 Added: },
1623 Added: {
1624 Added: "captures": {
1625 Added: "1": {
1626 Added: "name": "punctuation.separator.base-integer.erlang"
1627 Added: }
1628 Added: },
1629 Added: "match": "31(#)([\\da-uA-U]++_)*[\\da-uA-U]++",
1630 Added: "name": "constant.numeric.integer.base-31.erlang"
1631 Added: },
1632 Added: {
1633 Added: "captures": {
1634 Added: "1": {
1635 Added: "name": "punctuation.separator.base-integer.erlang"
1636 Added: }
1637 Added: },
1638 Added: "match": "32(#)([\\da-vA-V]++_)*[\\da-vA-V]++",
1639 Added: "name": "constant.numeric.integer.base-32.erlang"
1640 Added: },
1641 Added: {
1642 Added: "captures": {
1643 Added: "1": {
1644 Added: "name": "punctuation.separator.base-integer.erlang"
1645 Added: }
1646 Added: },
1647 Added: "match": "33(#)([\\da-wA-W]++_)*[\\da-wA-W]++",
1648 Added: "name": "constant.numeric.integer.base-33.erlang"
1649 Added: },
1650 Added: {
1651 Added: "captures": {
1652 Added: "1": {
1653 Added: "name": "punctuation.separator.base-integer.erlang"
1654 Added: }
1655 Added: },
1656 Added: "match": "34(#)([\\da-xA-X]++_)*[\\da-xA-X]++",
1657 Added: "name": "constant.numeric.integer.base-34.erlang"
1658 Added: },
1659 Added: {
1660 Added: "captures": {
1661 Added: "1": {
1662 Added: "name": "punctuation.separator.base-integer.erlang"
1663 Added: }
1664 Added: },
1665 Added: "match": "35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++",
1666 Added: "name": "constant.numeric.integer.base-35.erlang"
1667 Added: },
1668 Added: {
1669 Added: "captures": {
1670 Added: "1": {
1671 Added: "name": "punctuation.separator.base-integer.erlang"
1672 Added: }
1673 Added: },
1674 Added: "match": "36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++",
1675 Added: "name": "constant.numeric.integer.base-36.erlang"
1676 Added: },
1677 Added: {
1678 Added: "match": "\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++",
1679 Added: "name": "invalid.illegal.integer.erlang"
1680 Added: },
1681 Added: {
1682 Added: "match": "(\\d++_)*\\d++",
1683 Added: "name": "constant.numeric.integer.decimal.erlang"
1684 Added: }
1685 Added: ]
1686 Added: },
1687 Added: "parenthesized-expression": {
1688 Added: "begin": "(\\()",
1689 Added: "beginCaptures": {
1690 Added: "1": {
1691 Added: "name": "punctuation.section.expression.begin.erlang"
1692 Added: }
1693 Added: },
1694 Added: "end": "(\\))",
1695 Added: "endCaptures": {
1696 Added: "1": {
1697 Added: "name": "punctuation.section.expression.end.erlang"
1698 Added: }
1699 Added: },
1700 Added: "name": "meta.expression.parenthesized",
1701 Added: "patterns": [
1702 Added: {
1703 Added: "include": "#everything-else"
1704 Added: }
1705 Added: ]
1706 Added: },
1707 Added: "record-directive": {
1708 Added: "begin": "^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",
1709 Added: "beginCaptures": {
1710 Added: "1": {
1711 Added: "name": "punctuation.section.directive.begin.erlang"
1712 Added: },
1713 Added: "2": {
1714 Added: "name": "keyword.control.directive.import.erlang"
1715 Added: },
1716 Added: "3": {
1717 Added: "name": "punctuation.definition.parameters.begin.erlang"
1718 Added: },
1719 Added: "4": {
1720 Added: "name": "entity.name.type.class.record.definition.erlang"
1721 Added: },
1722 Added: "5": {
1723 Added: "name": "punctuation.separator.parameters.erlang"
1724 Added: }
1725 Added: },
1726 Added: "end": "(\\))\\s*+(\\.)",
1727 Added: "endCaptures": {
1728 Added: "1": {
1729 Added: "name": "punctuation.definition.parameters.end.erlang"
1730 Added: },
1731 Added: "2": {
1732 Added: "name": "punctuation.section.directive.end.erlang"
1733 Added: }
1734 Added: },
1735 Added: "name": "meta.directive.record.erlang",
1736 Added: "patterns": [
1737 Added: {
1738 Added: "include": "#internal-record-body"
1739 Added: },
1740 Added: {
1741 Added: "include": "#comment"
1742 Added: }
1743 Added: ]
1744 Added: },
1745 Added: "record-usage": {
1746 Added: "patterns": [
1747 Added: {
1748 Added: "captures": {
1749 Added: "1": {
1750 Added: "name": "keyword.operator.record.erlang"
1751 Added: },
1752 Added: "2": {
1753 Added: "name": "entity.name.type.class.record.erlang"
1754 Added: },
1755 Added: "3": {
1756 Added: "name": "punctuation.separator.record-field.erlang"
1757 Added: },
1758 Added: "4": {
1759 Added: "name": "variable.other.field.erlang"
1760 Added: }
1761 Added: },
1762 Added: "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",
1763 Added: "name": "meta.record-usage.erlang"
1764 Added: },
1765 Added: {
1766 Added: "begin": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",
1767 Added: "beginCaptures": {
1768 Added: "1": {
1769 Added: "name": "keyword.operator.record.erlang"
1770 Added: },
1771 Added: "2": {
1772 Added: "name": "entity.name.type.class.record.erlang"
1773 Added: }
1774 Added: },
1775 Added: "end": "(?<=\\})",
1776 Added: "name": "meta.record-usage.erlang",
1777 Added: "patterns": [
1778 Added: {
1779 Added: "include": "#internal-record-body"
1780 Added: }
1781 Added: ]
1782 Added: }
1783 Added: ]
1784 Added: },
1785 Added: "sigil-docstring": {
1786 Added: "begin": "(~[bs])(([\"]{3,})\\s*)(\\S.*)?$",
1787 Added: "beginCaptures": {
1788 Added: "1": {
1789 Added: "name": "storage.type.string.erlang"
1790 Added: },
1791 Added: "2": {
1792 Added: "name": "meta.string.quoted.triple.begin.erlang"
1793 Added: },
1794 Added: "3": {
1795 Added: "name": "punctuation.definition.string.begin.erlang"
1796 Added: },
1797 Added: "4": {
1798 Added: "name": "invalid.illegal.string.erlang"
1799 Added: }
1800 Added: },
1801 Added: "comment": "Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",
1802 Added: "end": "^(\\s*(\\3))(?!\")",
1803 Added: "endCaptures": {
1804 Added: "1": {
1805 Added: "name": "meta.string.quoted.triple.end.erlang"
1806 Added: },
1807 Added: "2": {
1808 Added: "name": "punctuation.definition.string.end.erlang"
1809 Added: }
1810 Added: },
1811 Added: "name": "string.quoted.tripple.sigil.erlang",
1812 Added: "patterns": [
1813 Added: {
1814 Added: "include": "#internal-string-body"
1815 Added: }
1816 Added: ]
1817 Added: },
1818 Added: "sigil-docstring-verbatim": {
1819 Added: "begin": "(~[BS]?)(([\"]{3,})\\s*)(\\S.*)?$",
1820 Added: "beginCaptures": {
1821 Added: "1": {
1822 Added: "name": "storage.type.string.erlang"
1823 Added: },
1824 Added: "2": {
1825 Added: "name": "meta.string.quoted.triple.begin.erlang"
1826 Added: },
1827 Added: "3": {
1828 Added: "name": "punctuation.definition.string.begin.erlang"
1829 Added: },
1830 Added: "4": {
1831 Added: "name": "invalid.illegal.string.erlang"
1832 Added: }
1833 Added: },
1834 Added: "comment": "Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",
1835 Added: "end": "^(\\s*(\\3))(?!\")",
1836 Added: "endCaptures": {
1837 Added: "1": {
1838 Added: "name": "meta.string.quoted.triple.end.erlang"
1839 Added: },
1840 Added: "2": {
1841 Added: "name": "punctuation.definition.string.end.erlang"
1842 Added: }
1843 Added: },
1844 Added: "name": "string.quoted.tripple.sigil.erlang",
1845 Added: "patterns": [
1846 Added: {
1847 Added: "include": "#internal-string-body-verbatim"
1848 Added: }
1849 Added: ]
1850 Added: },
1851 Added: "sigil-string": {
1852 Added: "patterns": [
1853 Added: {
1854 Added: "include": "#sigil-string-parenthesis"
1855 Added: },
1856 Added: {
1857 Added: "include": "#sigil-string-parenthesis-verbatim"
1858 Added: },
1859 Added: {
1860 Added: "include": "#sigil-string-curly-brackets"
1861 Added: },
1862 Added: {
1863 Added: "include": "#sigil-string-curly-brackets-verbatim"
1864 Added: },
1865 Added: {
1866 Added: "include": "#sigil-string-square-brackets"
1867 Added: },
1868 Added: {
1869 Added: "include": "#sigil-string-square-brackets-verbatim"
1870 Added: },
1871 Added: {
1872 Added: "include": "#sigil-string-less-greater"
1873 Added: },
1874 Added: {
1875 Added: "include": "#sigil-string-less-greater-verbatim"
1876 Added: },
1877 Added: {
1878 Added: "include": "#sigil-string-single-character"
1879 Added: },
1880 Added: {
1881 Added: "include": "#sigil-string-single-character-verbatim"
1882 Added: },
1883 Added: {
1884 Added: "include": "#sigil-string-single-quote"
1885 Added: },
1886 Added: {
1887 Added: "include": "#sigil-string-single-quote-verbatim"
1888 Added: },
1889 Added: {
1890 Added: "include": "#sigil-string-double-quote"
1891 Added: },
1892 Added: {
1893 Added: "include": "#sigil-string-double-quote-verbatim"
1894 Added: }
1895 Added: ]
1896 Added: },
1897 Added: "sigil-string-curly-brackets": {
1898 Added: "begin": "(~[bs]?)([{])",
1899 Added: "beginCaptures": {
1900 Added: "1": {
1901 Added: "name": "storage.type.string.erlang"
1902 Added: },
1903 Added: "2": {
1904 Added: "name": "punctuation.definition.string.begin.erlang"
1905 Added: }
1906 Added: },
1907 Added: "end": "([}])",
1908 Added: "endCaptures": {
1909 Added: "1": {
1910 Added: "name": "punctuation.definition.string.end.erlang"
1911 Added: }
1912 Added: },
1913 Added: "name": "string.quoted.curly-brackets.sigil.erlang",
1914 Added: "patterns": [
1915 Added: {
1916 Added: "include": "#internal-string-body"
1917 Added: }
1918 Added: ]
1919 Added: },
1920 Added: "sigil-string-curly-brackets-verbatim": {
1921 Added: "begin": "(~[BS])([{])",
1922 Added: "beginCaptures": {
1923 Added: "1": {
1924 Added: "name": "storage.type.string.erlang"
1925 Added: },
1926 Added: "2": {
1927 Added: "name": "punctuation.definition.string.begin.erlang"
1928 Added: }
1929 Added: },
1930 Added: "end": "([}])",
1931 Added: "endCaptures": {
1932 Added: "1": {
1933 Added: "name": "punctuation.definition.string.end.erlang"
1934 Added: }
1935 Added: },
1936 Added: "name": "string.quoted.curly-brackets.sigil.erlang",
1937 Added: "patterns": [
1938 Added: {
1939 Added: "include": "#internal-string-body-verbatim"
1940 Added: }
1941 Added: ]
1942 Added: },
1943 Added: "sigil-string-double-quote": {
1944 Added: "begin": "(~[bs]?)(\")",
1945 Added: "beginCaptures": {
1946 Added: "1": {
1947 Added: "name": "storage.type.string.erlang"
1948 Added: },
1949 Added: "2": {
1950 Added: "name": "punctuation.definition.string.begin.erlang"
1951 Added: }
1952 Added: },
1953 Added: "end": "(\\2)",
1954 Added: "endCaptures": {
1955 Added: "1": {
1956 Added: "name": "punctuation.definition.string.end.erlang"
1957 Added: }
1958 Added: },
1959 Added: "name": "string.quoted.double.sigil.erlang",
1960 Added: "patterns": [
1961 Added: {
1962 Added: "include": "#internal-string-body"
1963 Added: }
1964 Added: ]
1965 Added: },
1966 Added: "sigil-string-double-quote-verbatim": {
1967 Added: "begin": "(~[BS])(\")",
1968 Added: "beginCaptures": {
1969 Added: "1": {
1970 Added: "name": "storage.type.string.erlang"
1971 Added: },
1972 Added: "2": {
1973 Added: "name": "punctuation.definition.string.begin.erlang"
1974 Added: }
1975 Added: },
1976 Added: "end": "(\\2)",
1977 Added: "endCaptures": {
1978 Added: "1": {
1979 Added: "name": "punctuation.definition.string.end.erlang"
1980 Added: }
1981 Added: },
1982 Added: "name": "string.quoted.double.sigil.erlang",
1983 Added: "patterns": [
1984 Added: {
1985 Added: "include": "#internal-string-body-verbatim"
1986 Added: }
1987 Added: ]
1988 Added: },
1989 Added: "sigil-string-less-greater": {
1990 Added: "begin": "(~[bs]?)(<)",
1991 Added: "beginCaptures": {
1992 Added: "1": {
1993 Added: "name": "storage.type.string.erlang"
1994 Added: },
1995 Added: "2": {
1996 Added: "name": "punctuation.definition.string.begin.erlang"
1997 Added: }
1998 Added: },
1999 Added: "end": "(>)",
2000 Added: "endCaptures": {
2001 Added: "1": {
2002 Added: "name": "punctuation.definition.string.end.erlang"
2003 Added: }
2004 Added: },
2005 Added: "name": "string.quoted.less-greater.sigil.erlang",
2006 Added: "patterns": [
2007 Added: {
2008 Added: "include": "#internal-string-body"
2009 Added: }
2010 Added: ]
2011 Added: },
2012 Added: "sigil-string-less-greater-verbatim": {
2013 Added: "begin": "(~[BS])(<)",
2014 Added: "beginCaptures": {
2015 Added: "1": {
2016 Added: "name": "storage.type.string.erlang"
2017 Added: },
2018 Added: "2": {
2019 Added: "name": "punctuation.definition.string.begin.erlang"
2020 Added: }
2021 Added: },
2022 Added: "end": "(>)",
2023 Added: "endCaptures": {
2024 Added: "1": {
2025 Added: "name": "punctuation.definition.string.end.erlang"
2026 Added: }
2027 Added: },
2028 Added: "name": "string.quoted.less-greater.sigil.erlang",
2029 Added: "patterns": [
2030 Added: {
2031 Added: "include": "#internal-string-body-verbatim"
2032 Added: }
2033 Added: ]
2034 Added: },
2035 Added: "sigil-string-parenthesis": {
2036 Added: "begin": "(~[bs]?)([(])",
2037 Added: "beginCaptures": {
2038 Added: "1": {
2039 Added: "name": "storage.type.string.erlang"
2040 Added: },
2041 Added: "2": {
2042 Added: "name": "punctuation.definition.string.begin.erlang"
2043 Added: }
2044 Added: },
2045 Added: "end": "([)])",
2046 Added: "endCaptures": {
2047 Added: "1": {
2048 Added: "name": "punctuation.definition.string.end.erlang"
2049 Added: }
2050 Added: },
2051 Added: "name": "string.quoted.parenthesis.sigil.erlang",
2052 Added: "patterns": [
2053 Added: {
2054 Added: "include": "#internal-string-body"
2055 Added: }
2056 Added: ]
2057 Added: },
2058 Added: "sigil-string-parenthesis-verbatim": {
2059 Added: "begin": "(~[BS])([(])",
2060 Added: "beginCaptures": {
2061 Added: "1": {
2062 Added: "name": "storage.type.string.erlang"
2063 Added: },
2064 Added: "2": {
2065 Added: "name": "punctuation.definition.string.begin.erlang"
2066 Added: }
2067 Added: },
2068 Added: "end": "([)])",
2069 Added: "endCaptures": {
2070 Added: "1": {
2071 Added: "name": "punctuation.definition.string.end.erlang"
2072 Added: }
2073 Added: },
2074 Added: "name": "string.quoted.parenthesis.sigil.erlang",
2075 Added: "patterns": [
2076 Added: {
2077 Added: "include": "#internal-string-body-verbatim"
2078 Added: }
2079 Added: ]
2080 Added: },
2081 Added: "sigil-string-single-character": {
2082 Added: "begin": "(~[bs]?)([/\\|`#])",
2083 Added: "beginCaptures": {
2084 Added: "1": {
2085 Added: "name": "storage.type.string.erlang"
2086 Added: },
2087 Added: "2": {
2088 Added: "name": "punctuation.definition.string.begin.erlang"
2089 Added: }
2090 Added: },
2091 Added: "end": "(\\2)",
2092 Added: "endCaptures": {
2093 Added: "1": {
2094 Added: "name": "punctuation.definition.string.end.erlang"
2095 Added: }
2096 Added: },
2097 Added: "name": "string.quoted.other.sigil.erlang",
2098 Added: "patterns": [
2099 Added: {
2100 Added: "include": "#internal-string-body"
2101 Added: }
2102 Added: ]
2103 Added: },
2104 Added: "sigil-string-single-character-verbatim": {
2105 Added: "begin": "(~[BS])([/\\|`#])",
2106 Added: "beginCaptures": {
2107 Added: "1": {
2108 Added: "name": "storage.type.string.erlang"
2109 Added: },
2110 Added: "2": {
2111 Added: "name": "punctuation.definition.string.begin.erlang"
2112 Added: }
2113 Added: },
2114 Added: "end": "(\\2)",
2115 Added: "endCaptures": {
2116 Added: "1": {
2117 Added: "name": "punctuation.definition.string.end.erlang"
2118 Added: }
2119 Added: },
2120 Added: "name": "string.quoted.other.sigil.erlang",
2121 Added: "patterns": [
2122 Added: {
2123 Added: "include": "#internal-string-body-verbatim"
2124 Added: }
2125 Added: ]
2126 Added: },
2127 Added: "sigil-string-single-quote": {
2128 Added: "begin": "(~[bs]?)(')",
2129 Added: "beginCaptures": {
2130 Added: "1": {
2131 Added: "name": "storage.type.string.erlang"
2132 Added: },
2133 Added: "2": {
2134 Added: "name": "punctuation.definition.string.begin.erlang"
2135 Added: }
2136 Added: },
2137 Added: "end": "(\\2)",
2138 Added: "endCaptures": {
2139 Added: "1": {
2140 Added: "name": "punctuation.definition.string.end.erlang"
2141 Added: }
2142 Added: },
2143 Added: "name": "string.quoted.single.sigil.erlang",
2144 Added: "patterns": [
2145 Added: {
2146 Added: "include": "#internal-string-body"
2147 Added: }
2148 Added: ]
2149 Added: },
2150 Added: "sigil-string-single-quote-verbatim": {
2151 Added: "begin": "(~[BS])(')",
2152 Added: "beginCaptures": {
2153 Added: "1": {
2154 Added: "name": "storage.type.string.erlang"
2155 Added: },
2156 Added: "2": {
2157 Added: "name": "punctuation.definition.string.begin.erlang"
2158 Added: }
2159 Added: },
2160 Added: "end": "(\\2)",
2161 Added: "endCaptures": {
2162 Added: "1": {
2163 Added: "name": "punctuation.definition.string.end.erlang"
2164 Added: }
2165 Added: },
2166 Added: "name": "string.quoted.single.sigil.erlang",
2167 Added: "patterns": [
2168 Added: {
2169 Added: "include": "#internal-string-body-verbatim"
2170 Added: }
2171 Added: ]
2172 Added: },
2173 Added: "sigil-string-square-brackets": {
2174 Added: "begin": "(~[bs]?)([\\[])",
2175 Added: "beginCaptures": {
2176 Added: "1": {
2177 Added: "name": "storage.type.string.erlang"
2178 Added: },
2179 Added: "2": {
2180 Added: "name": "punctuation.definition.string.begin.erlang"
2181 Added: }
2182 Added: },
2183 Added: "end": "([\\]])",
2184 Added: "endCaptures": {
2185 Added: "1": {
2186 Added: "name": "punctuation.definition.string.end.erlang"
2187 Added: }
2188 Added: },
2189 Added: "name": "string.quoted.square-brackets.sigil.erlang",
2190 Added: "patterns": [
2191 Added: {
2192 Added: "include": "#internal-string-body"
2193 Added: }
2194 Added: ]
2195 Added: },
2196 Added: "sigil-string-square-brackets-verbatim": {
2197 Added: "begin": "(~[BS])([\\[])",
2198 Added: "beginCaptures": {
2199 Added: "1": {
2200 Added: "name": "storage.type.string.erlang"
2201 Added: },
2202 Added: "2": {
2203 Added: "name": "punctuation.definition.string.begin.erlang"
2204 Added: }
2205 Added: },
2206 Added: "end": "([\\]])",
2207 Added: "endCaptures": {
2208 Added: "1": {
2209 Added: "name": "punctuation.definition.string.end.erlang"
2210 Added: }
2211 Added: },
2212 Added: "name": "string.quoted.square-brackets.sigil.erlang",
2213 Added: "patterns": [
2214 Added: {
2215 Added: "include": "#internal-string-body-verbatim"
2216 Added: }
2217 Added: ]
2218 Added: },
2219 Added: "string": {
2220 Added: "begin": "(\")",
2221 Added: "beginCaptures": {
2222 Added: "1": {
2223 Added: "name": "punctuation.definition.string.begin.erlang"
2224 Added: }
2225 Added: },
2226 Added: "end": "(\")",
2227 Added: "endCaptures": {
2228 Added: "1": {
2229 Added: "name": "punctuation.definition.string.end.erlang"
2230 Added: }
2231 Added: },
2232 Added: "name": "string.quoted.double.erlang",
2233 Added: "patterns": [
2234 Added: {
2235 Added: "include": "#internal-string-body"
2236 Added: }
2237 Added: ]
2238 Added: },
2239 Added: "symbolic-operator": {
2240 Added: "match": "\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=",
2241 Added: "name": "keyword.operator.symbolic.erlang"
2242 Added: },
2243 Added: "textual-operator": {
2244 Added: "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",
2245 Added: "name": "keyword.operator.textual.erlang"
2246 Added: },
2247 Added: "tuple": {
2248 Added: "begin": "(\\{)",
2249 Added: "beginCaptures": {
2250 Added: "1": {
2251 Added: "name": "punctuation.definition.tuple.begin.erlang"
2252 Added: }
2253 Added: },
2254 Added: "end": "(\\})",
2255 Added: "endCaptures": {
2256 Added: "1": {
2257 Added: "name": "punctuation.definition.tuple.end.erlang"
2258 Added: }
2259 Added: },
2260 Added: "name": "meta.structure.tuple.erlang",
2261 Added: "patterns": [
2262 Added: {
2263 Added: "match": ",",
2264 Added: "name": "punctuation.separator.tuple.erlang"
2265 Added: },
2266 Added: {
2267 Added: "include": "#everything-else"
2268 Added: }
2269 Added: ]
2270 Added: },
2271 Added: "variable": {
2272 Added: "captures": {
2273 Added: "1": {
2274 Added: "name": "variable.other.erlang"
2275 Added: },
2276 Added: "2": {
2277 Added: "name": "variable.language.omitted.erlang"
2278 Added: }
2279 Added: },
2280 Added: "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"
2281 Added: }
2282 Added: },
2283 Added: "scopeName": "source.erlang",
2284 Added: "uuid": "58EA597D-5158-4BF7-9FB2-B05135D1E166"
2285 Added: }
lib/grammars/fortran.json
index 00000000..8342930e 000000..100644
@@ -0,0 +1,5917 @@
1 Added: {
2 Added: "comment": "Specificities of Fortran >= 90",
3 Added: "name": "Fortran - Free Form",
4 Added: "scopeName": "source.fortran.free",
5 Added: "fileTypes": [
6 Added: "f90",
7 Added: "F90",
8 Added: "f95",
9 Added: "F95",
10 Added: "f03",
11 Added: "F03",
12 Added: "f08",
13 Added: "F08",
14 Added: "f18",
15 Added: "F18",
16 Added: "fpp",
17 Added: "FPP",
18 Added: ".pf",
19 Added: ".PF"
20 Added: ],
21 Added: "firstLineMatch": "(?i)-[*]- mode: fortran free -[*]-",
22 Added: "injections": {
23 Added: "source.fortran.free - ( string | comment | meta.preprocessor )": {
24 Added: "patterns": [
25 Added: {
26 Added: "include": "#line-continuation-operator"
27 Added: },
28 Added: {
29 Added: "include": "#preprocessor"
30 Added: }
31 Added: ]
32 Added: },
33 Added: "string.quoted.double.fortran": {
34 Added: "patterns": [
35 Added: {
36 Added: "include": "#string-line-continuation-operator"
37 Added: }
38 Added: ]
39 Added: },
40 Added: "string.quoted.single.fortran": {
41 Added: "patterns": [
42 Added: {
43 Added: "include": "#string-line-continuation-operator"
44 Added: }
45 Added: ]
46 Added: }
47 Added: },
48 Added: "patterns": [
49 Added: {
50 Added: "include": "#preprocessor"
51 Added: },
52 Added: {
53 Added: "include": "#comments"
54 Added: },
55 Added: {
56 Added: "include": "#constants"
57 Added: },
58 Added: {
59 Added: "include": "#operators"
60 Added: },
61 Added: {
62 Added: "include": "#array-constructor"
63 Added: },
64 Added: {
65 Added: "include": "#parentheses"
66 Added: },
67 Added: {
68 Added: "include": "#include-statement"
69 Added: },
70 Added: {
71 Added: "include": "#import-statement"
72 Added: },
73 Added: {
74 Added: "include": "#block-data-definition"
75 Added: },
76 Added: {
77 Added: "include": "#function-definition"
78 Added: },
79 Added: {
80 Added: "include": "#module-definition"
81 Added: },
82 Added: {
83 Added: "include": "#program-definition"
84 Added: },
85 Added: {
86 Added: "include": "#submodule-definition"
87 Added: },
88 Added: {
89 Added: "include": "#subroutine-definition"
90 Added: },
91 Added: {
92 Added: "include": "#procedure-definition"
93 Added: },
94 Added: {
95 Added: "include": "#derived-type-definition"
96 Added: },
97 Added: {
98 Added: "include": "#enum-block-construct"
99 Added: },
100 Added: {
101 Added: "include": "#interface-block-constructs"
102 Added: },
103 Added: {
104 Added: "include": "#procedure-specification-statement"
105 Added: },
106 Added: {
107 Added: "include": "#type-specification-statements"
108 Added: },
109 Added: {
110 Added: "include": "#specification-statements"
111 Added: },
112 Added: {
113 Added: "include": "#control-constructs"
114 Added: },
115 Added: {
116 Added: "include": "#control-statements"
117 Added: },
118 Added: {
119 Added: "include": "#execution-statements"
120 Added: },
121 Added: {
122 Added: "include": "#intrinsic-functions"
123 Added: },
124 Added: {
125 Added: "include": "#variable"
126 Added: }
127 Added: ],
128 Added: "repository": {
129 Added: "preprocessor": {
130 Added: "name": "meta.preprocessor",
131 Added: "begin": "^\\s*(#:?)",
132 Added: "beginCaptures": {
133 Added: "1": {
134 Added: "name": "keyword.control.preprocessor.indicator.fortran"
135 Added: }
136 Added: },
137 Added: "end": "\\n",
138 Added: "patterns": [
139 Added: {
140 Added: "include": "#preprocessor-if-construct"
141 Added: },
142 Added: {
143 Added: "include": "#preprocessor-statements"
144 Added: }
145 Added: ]
146 Added: },
147 Added: "preprocessor-comments": {
148 Added: "name": "comment.preprocessor",
149 Added: "begin": "/\\*",
150 Added: "end": "\\*/"
151 Added: },
152 Added: "preprocessor-constants": {
153 Added: "patterns": [
154 Added: {
155 Added: "include": "#cpp-numeric-constant"
156 Added: },
157 Added: {
158 Added: "include": "#preprocessor-string-constant"
159 Added: }
160 Added: ]
161 Added: },
162 Added: "cpp-numeric-constant": {
163 Added: "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*",
164 Added: "captures": {
165 Added: "0": {
166 Added: "patterns": [
167 Added: {
168 Added: "begin": "(?=.)",
169 Added: "end": "$",
170 Added: "beginCaptures": {},
171 Added: "endCaptures": {},
172 Added: "patterns": [
173 Added: {
174 Added: "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)",
175 Added: "captures": {
176 Added: "1": {
177 Added: "name": "keyword.other.unit.hexadecimal.cpp"
178 Added: },
179 Added: "2": {
180 Added: "name": "constant.numeric.hexadecimal.cpp",
181 Added: "patterns": [
182 Added: {
183 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
184 Added: "name": "punctuation.separator.constant.numeric.cpp"
185 Added: }
186 Added: ]
187 Added: },
188 Added: "3": {
189 Added: "name": "punctuation.separator.constant.numeric.cpp"
190 Added: },
191 Added: "4": {
192 Added: "name": "constant.numeric.hexadecimal.cpp"
193 Added: },
194 Added: "5": {
195 Added: "name": "constant.numeric.hexadecimal.cpp",
196 Added: "patterns": [
197 Added: {
198 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
199 Added: "name": "punctuation.separator.constant.numeric.cpp"
200 Added: }
201 Added: ]
202 Added: },
203 Added: "6": {
204 Added: "name": "punctuation.separator.constant.numeric.cpp"
205 Added: },
206 Added: "7": {
207 Added: "name": "keyword.other.unit.exponent.hexadecimal.cpp"
208 Added: },
209 Added: "8": {
210 Added: "name": "keyword.operator.plus.exponent.hexadecimal.cpp"
211 Added: },
212 Added: "9": {
213 Added: "name": "keyword.operator.minus.exponent.hexadecimal.cpp"
214 Added: },
215 Added: "10": {
216 Added: "name": "constant.numeric.exponent.hexadecimal.cpp",
217 Added: "patterns": [
218 Added: {
219 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
220 Added: "name": "punctuation.separator.constant.numeric.cpp"
221 Added: }
222 Added: ]
223 Added: },
224 Added: "11": {
225 Added: "name": "keyword.other.unit.suffix.floating-point.cpp"
226 Added: },
227 Added: "12": {
228 Added: "name": "keyword.other.unit.user-defined.cpp"
229 Added: }
230 Added: }
231 Added: },
232 Added: {
233 Added: "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)",
234 Added: "captures": {
235 Added: "1": {
236 Added: "name": "constant.numeric.decimal.cpp",
237 Added: "patterns": [
238 Added: {
239 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
240 Added: "name": "punctuation.separator.constant.numeric.cpp"
241 Added: }
242 Added: ]
243 Added: },
244 Added: "2": {
245 Added: "name": "punctuation.separator.constant.numeric.cpp"
246 Added: },
247 Added: "3": {
248 Added: "name": "constant.numeric.decimal.point.cpp"
249 Added: },
250 Added: "4": {
251 Added: "name": "constant.numeric.decimal.cpp",
252 Added: "patterns": [
253 Added: {
254 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
255 Added: "name": "punctuation.separator.constant.numeric.cpp"
256 Added: }
257 Added: ]
258 Added: },
259 Added: "5": {
260 Added: "name": "punctuation.separator.constant.numeric.cpp"
261 Added: },
262 Added: "6": {
263 Added: "name": "keyword.other.unit.exponent.decimal.cpp"
264 Added: },
265 Added: "7": {
266 Added: "name": "keyword.operator.plus.exponent.decimal.cpp"
267 Added: },
268 Added: "8": {
269 Added: "name": "keyword.operator.minus.exponent.decimal.cpp"
270 Added: },
271 Added: "9": {
272 Added: "name": "constant.numeric.exponent.decimal.cpp",
273 Added: "patterns": [
274 Added: {
275 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
276 Added: "name": "punctuation.separator.constant.numeric.cpp"
277 Added: }
278 Added: ]
279 Added: },
280 Added: "10": {
281 Added: "name": "keyword.other.unit.suffix.floating-point.cpp"
282 Added: },
283 Added: "11": {
284 Added: "name": "keyword.other.unit.user-defined.cpp"
285 Added: }
286 Added: }
287 Added: },
288 Added: {
289 Added: "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)",
290 Added: "captures": {
291 Added: "1": {
292 Added: "name": "keyword.other.unit.binary.cpp"
293 Added: },
294 Added: "2": {
295 Added: "name": "constant.numeric.binary.cpp",
296 Added: "patterns": [
297 Added: {
298 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
299 Added: "name": "punctuation.separator.constant.numeric.cpp"
300 Added: }
301 Added: ]
302 Added: },
303 Added: "3": {
304 Added: "name": "punctuation.separator.constant.numeric.cpp"
305 Added: },
306 Added: "4": {
307 Added: "name": "keyword.other.unit.suffix.integer.cpp"
308 Added: },
309 Added: "5": {
310 Added: "name": "keyword.other.unit.user-defined.cpp"
311 Added: }
312 Added: }
313 Added: },
314 Added: {
315 Added: "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)",
316 Added: "captures": {
317 Added: "1": {
318 Added: "name": "keyword.other.unit.octal.cpp"
319 Added: },
320 Added: "2": {
321 Added: "name": "constant.numeric.octal.cpp",
322 Added: "patterns": [
323 Added: {
324 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
325 Added: "name": "punctuation.separator.constant.numeric.cpp"
326 Added: }
327 Added: ]
328 Added: },
329 Added: "3": {
330 Added: "name": "punctuation.separator.constant.numeric.cpp"
331 Added: },
332 Added: "4": {
333 Added: "name": "keyword.other.unit.suffix.integer.cpp"
334 Added: },
335 Added: "5": {
336 Added: "name": "keyword.other.unit.user-defined.cpp"
337 Added: }
338 Added: }
339 Added: },
340 Added: {
341 Added: "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)",
342 Added: "captures": {
343 Added: "1": {
344 Added: "name": "keyword.other.unit.hexadecimal.cpp"
345 Added: },
346 Added: "2": {
347 Added: "name": "constant.numeric.hexadecimal.cpp",
348 Added: "patterns": [
349 Added: {
350 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
351 Added: "name": "punctuation.separator.constant.numeric.cpp"
352 Added: }
353 Added: ]
354 Added: },
355 Added: "3": {
356 Added: "name": "punctuation.separator.constant.numeric.cpp"
357 Added: },
358 Added: "4": {
359 Added: "name": "keyword.other.unit.exponent.hexadecimal.cpp"
360 Added: },
361 Added: "5": {
362 Added: "name": "keyword.operator.plus.exponent.hexadecimal.cpp"
363 Added: },
364 Added: "6": {
365 Added: "name": "keyword.operator.minus.exponent.hexadecimal.cpp"
366 Added: },
367 Added: "7": {
368 Added: "name": "constant.numeric.exponent.hexadecimal.cpp",
369 Added: "patterns": [
370 Added: {
371 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
372 Added: "name": "punctuation.separator.constant.numeric.cpp"
373 Added: }
374 Added: ]
375 Added: },
376 Added: "8": {
377 Added: "name": "keyword.other.unit.suffix.integer.cpp"
378 Added: },
379 Added: "9": {
380 Added: "name": "keyword.other.unit.user-defined.cpp"
381 Added: }
382 Added: }
383 Added: },
384 Added: {
385 Added: "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)",
386 Added: "captures": {
387 Added: "1": {
388 Added: "name": "constant.numeric.decimal.cpp",
389 Added: "patterns": [
390 Added: {
391 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
392 Added: "name": "punctuation.separator.constant.numeric.cpp"
393 Added: }
394 Added: ]
395 Added: },
396 Added: "2": {
397 Added: "name": "punctuation.separator.constant.numeric.cpp"
398 Added: },
399 Added: "3": {
400 Added: "name": "keyword.other.unit.exponent.decimal.cpp"
401 Added: },
402 Added: "4": {
403 Added: "name": "keyword.operator.plus.exponent.decimal.cpp"
404 Added: },
405 Added: "5": {
406 Added: "name": "keyword.operator.minus.exponent.decimal.cpp"
407 Added: },
408 Added: "6": {
409 Added: "name": "constant.numeric.exponent.decimal.cpp",
410 Added: "patterns": [
411 Added: {
412 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
413 Added: "name": "punctuation.separator.constant.numeric.cpp"
414 Added: }
415 Added: ]
416 Added: },
417 Added: "7": {
418 Added: "name": "keyword.other.unit.suffix.integer.cpp"
419 Added: },
420 Added: "8": {
421 Added: "name": "keyword.other.unit.user-defined.cpp"
422 Added: }
423 Added: }
424 Added: },
425 Added: {
426 Added: "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",
427 Added: "name": "invalid.illegal.constant.numeric.cpp"
428 Added: }
429 Added: ]
430 Added: }
431 Added: ]
432 Added: }
433 Added: }
434 Added: },
435 Added: "preprocessor-string-constant": {
436 Added: "patterns": [
437 Added: {
438 Added: "comment": "Double quote string",
439 Added: "name": "string.quoted.double.include.preprocessor.fortran",
440 Added: "begin": "\"",
441 Added: "beginCaptures": {
442 Added: "0": {
443 Added: "name": "punctuation.definition.string.begin.preprocessor.fortran"
444 Added: }
445 Added: },
446 Added: "end": "\"",
447 Added: "endCaptures": {
448 Added: "0": {
449 Added: "name": "punctuation.definition.string.end.preprocessor.fortran"
450 Added: }
451 Added: }
452 Added: },
453 Added: {
454 Added: "comment": "Single quote string",
455 Added: "name": "string.quoted.single.include.preprocessor.fortran",
456 Added: "begin": "'",
457 Added: "beginCaptures": {
458 Added: "0": {
459 Added: "name": "punctuation.definition.string.begin.preprocessor.fortran"
460 Added: }
461 Added: },
462 Added: "end": "'",
463 Added: "endCaptures": {
464 Added: "0": {
465 Added: "name": "punctuation.definition.string.end.preprocessor.fortran"
466 Added: }
467 Added: }
468 Added: }
469 Added: ]
470 Added: },
471 Added: "preprocessor-if-construct": {
472 Added: "patterns": [
473 Added: {
474 Added: "name": "meta.preprocessor.conditional.fortran",
475 Added: "begin": "(?i)\\G\\s*\\b(if)\\b",
476 Added: "beginCaptures": {
477 Added: "1": {
478 Added: "name": "keyword.control.preprocessor.if.fortran"
479 Added: }
480 Added: },
481 Added: "end": "(?=\\n)",
482 Added: "patterns": [
483 Added: {
484 Added: "include": "#preprocessor-comments"
485 Added: },
486 Added: {
487 Added: "include": "#cpp-numeric-constant"
488 Added: },
489 Added: {
490 Added: "include": "#preprocessor-logical-operators"
491 Added: },
492 Added: {
493 Added: "include": "#preprocessor-arithmetic-operators"
494 Added: },
495 Added: {
496 Added: "include": "#preprocessor-defined-function"
497 Added: },
498 Added: {
499 Added: "include": "#preprocessor-line-continuation-operator"
500 Added: }
501 Added: ]
502 Added: },
503 Added: {
504 Added: "begin": "(?i)\\G\\s*\\b(ifdef)\\b",
505 Added: "beginCaptures": {
506 Added: "1": {
507 Added: "name": "keyword.control.preprocessor.ifdef.fortran"
508 Added: }
509 Added: },
510 Added: "end": "(?=\\n)",
511 Added: "patterns": [
512 Added: {
513 Added: "include": "#preprocessor-comments"
514 Added: },
515 Added: {
516 Added: "include": "#cpp-numeric-constant"
517 Added: },
518 Added: {
519 Added: "include": "#preprocessor-logical-operators"
520 Added: },
521 Added: {
522 Added: "include": "#preprocessor-arithmetic-operators"
523 Added: },
524 Added: {
525 Added: "include": "#preprocessor-line-continuation-operator"
526 Added: }
527 Added: ]
528 Added: },
529 Added: {
530 Added: "begin": "(?i)\\G\\s*\\b(ifndef)\\b",
531 Added: "beginCaptures": {
532 Added: "1": {
533 Added: "name": "keyword.control.preprocessor.ifndef.fortran"
534 Added: }
535 Added: },
536 Added: "end": "(?=\\n)",
537 Added: "patterns": [
538 Added: {
539 Added: "include": "#preprocessor-comments"
540 Added: },
541 Added: {
542 Added: "include": "#cpp-numeric-constant"
543 Added: },
544 Added: {
545 Added: "include": "#preprocessor-logical-operators"
546 Added: },
547 Added: {
548 Added: "include": "#preprocessor-arithmetic-operators"
549 Added: },
550 Added: {
551 Added: "include": "#preprocessor-line-continuation-operator"
552 Added: }
553 Added: ]
554 Added: },
555 Added: {
556 Added: "begin": "(?i)\\G\\s*\\b(else)\\b",
557 Added: "beginCaptures": {
558 Added: "1": {
559 Added: "name": "keyword.control.preprocessor.else.fortran"
560 Added: }
561 Added: },
562 Added: "end": "(?=\\n)",
563 Added: "patterns": [
564 Added: {
565 Added: "include": "#preprocessor-comments"
566 Added: },
567 Added: {
568 Added: "include": "#cpp-numeric-constant"
569 Added: }
570 Added: ]
571 Added: },
572 Added: {
573 Added: "begin": "(?i)\\G\\s*\\b(elif)\\b",
574 Added: "beginCaptures": {
575 Added: "1": {
576 Added: "name": "keyword.control.preprocessor.elif.fortran"
577 Added: }
578 Added: },
579 Added: "end": "(?=\\n)",
580 Added: "patterns": [
581 Added: {
582 Added: "include": "#preprocessor-comments"
583 Added: },
584 Added: {
585 Added: "include": "#cpp-numeric-constant"
586 Added: },
587 Added: {
588 Added: "include": "#preprocessor-logical-operators"
589 Added: },
590 Added: {
591 Added: "include": "#preprocessor-arithmetic-operators"
592 Added: },
593 Added: {
594 Added: "include": "#preprocessor-defined-function"
595 Added: },
596 Added: {
597 Added: "include": "#preprocessor-line-continuation-operator"
598 Added: }
599 Added: ]
600 Added: },
601 Added: {
602 Added: "begin": "(?i)\\G\\s*\\b(endif)\\b",
603 Added: "beginCaptures": {
604 Added: "1": {
605 Added: "name": "keyword.control.preprocessor.endif.fortran"
606 Added: }
607 Added: },
608 Added: "end": "(?=\\n)",
609 Added: "patterns": [
610 Added: {
611 Added: "include": "#preprocessor-comments"
612 Added: }
613 Added: ]
614 Added: }
615 Added: ]
616 Added: },
617 Added: "preprocessor-defined-function": {
618 Added: "match": "(?i)\\b(defined)\\b",
619 Added: "captures": {
620 Added: "1": {
621 Added: "name": "keyword.control.preprocessor.defined.fortran"
622 Added: }
623 Added: }
624 Added: },
625 Added: "preprocessor-operators": {
626 Added: "patterns": [
627 Added: {
628 Added: "include": "#preprocessor-line-continuation-operator"
629 Added: },
630 Added: {
631 Added: "include": "#preprocessor-logical-operators"
632 Added: },
633 Added: {
634 Added: "include": "#preprocessor-arithmetic-operators"
635 Added: }
636 Added: ]
637 Added: },
638 Added: "preprocessor-assignment-operator": {
639 Added: "name": "keyword.operator.assignment.preprocessor.fortran",
640 Added: "comment": "assignments with = are not allowed",
641 Added: "match": "(?<!\\=)(\\=)(?!\\=)"
642 Added: },
643 Added: "preprocessor-line-continuation-operator": {
644 Added: "begin": "\\s*(\\\\)",
645 Added: "beginCaptures": {
646 Added: "1": {
647 Added: "name": "constant.character.escape.line-continuation.preprocessor.fortran"
648 Added: }
649 Added: },
650 Added: "end": "(?i)^"
651 Added: },
652 Added: "preprocessor-logical-operators": {
653 Added: "name": "keyword.operator.logical.preprocessor.fortran",
654 Added: "comment": "and:&&, bitand:&, or:||, bitor:|, not eq:!=, not:!, xor:^, compl:~",
655 Added: "match": "(&&)|(==)|(\\!=)|(\\|\\|)|(\\<\\=)|(\\>=)|(\\<)|(\\>)|(~)|(\\^)|(&)|(\\!)|(\\|)",
656 Added: "captures": {
657 Added: "1": {
658 Added: "name": "keyword.operator.logical.preprocessor.and.fortran"
659 Added: },
660 Added: "2": {
661 Added: "name": "keyword.operator.logical.preprocessor.equals.fortran"
662 Added: },
663 Added: "3": {
664 Added: "name": "keyword.operator.logical.preprocessor.not_equals.fortran"
665 Added: },
666 Added: "4": {
667 Added: "name": "keyword.operator.logical.preprocessor.or.fortran"
668 Added: },
669 Added: "5": {
670 Added: "name": "keyword.operator.logical.preprocessor.less_eq.fortran"
671 Added: },
672 Added: "6": {
673 Added: "name": "keyword.operator.logical.preprocessor.more_eq.fortran"
674 Added: },
675 Added: "7": {
676 Added: "name": "keyword.operator.logical.preprocessor.less.fortran"
677 Added: },
678 Added: "8": {
679 Added: "name": "keyword.operator.logical.preprocessor.more.fortran"
680 Added: },
681 Added: "9": {
682 Added: "name": "keyword.operator.logical.preprocessor.complementary.fortran"
683 Added: },
684 Added: "10": {
685 Added: "name": "keyword.operator.logical.preprocessor.xor.fortran"
686 Added: },
687 Added: "11": {
688 Added: "name": "keyword.operator.logical.preprocessor.bitand.fortran"
689 Added: },
690 Added: "12": {
691 Added: "name": "keyword.operator.logical.preprocessor.not.fortran"
692 Added: },
693 Added: "13": {
694 Added: "name": "keyword.operator.logical.preprocessor.bitor.fortran"
695 Added: }
696 Added: }
697 Added: },
698 Added: "preprocessor-arithmetic-operators": {
699 Added: "comment": "division regex is different than in main fortran",
700 Added: "match": "(\\-)|(\\+)|(\\/)|(\\*)",
701 Added: "captures": {
702 Added: "1": {
703 Added: "name": "keyword.operator.subtraction.fortran"
704 Added: },
705 Added: "2": {
706 Added: "name": "keyword.operator.addition.fortran"
707 Added: },
708 Added: "3": {
709 Added: "name": "keyword.operator.division.fortran"
710 Added: },
711 Added: "4": {
712 Added: "name": "keyword.operator.multiplication.fortran"
713 Added: }
714 Added: }
715 Added: },
716 Added: "preprocessor-statements": {
717 Added: "patterns": [
718 Added: {
719 Added: "include": "#preprocessor-define-statement"
720 Added: },
721 Added: {
722 Added: "include": "#preprocessor-error-statement"
723 Added: },
724 Added: {
725 Added: "include": "#preprocessor-include-statement"
726 Added: },
727 Added: {
728 Added: "include": "#preprocessor-preprocessor-pragma-statement"
729 Added: },
730 Added: {
731 Added: "include": "#preprocessor-undefine-statement"
732 Added: }
733 Added: ]
734 Added: },
735 Added: "preprocessor-define-statement": {
736 Added: "name": "meta.preprocessor.macro.fortran",
737 Added: "begin": "(?i)\\G\\s*\\b(define)\\b",
738 Added: "beginCaptures": {
739 Added: "1": {
740 Added: "name": "keyword.control.preprocessor.define.fortran"
741 Added: }
742 Added: },
743 Added: "end": "(?=\\n)",
744 Added: "patterns": [
745 Added: {
746 Added: "include": "#preprocessor-comments"
747 Added: },
748 Added: {
749 Added: "include": "#preprocessor-constants"
750 Added: },
751 Added: {
752 Added: "include": "#preprocessor-line-continuation-operator"
753 Added: }
754 Added: ]
755 Added: },
756 Added: "preprocessor-error-statement": {
757 Added: "name": "meta.preprocessor.macro.fortran",
758 Added: "begin": "(?i)\\G\\s*(error)\\b",
759 Added: "beginCaptures": {
760 Added: "1": {
761 Added: "name": "keyword.control.preprocessor.error.fortran"
762 Added: }
763 Added: },
764 Added: "end": "(?=\\n)",
765 Added: "patterns": [
766 Added: {
767 Added: "include": "#preprocessor-comments"
768 Added: },
769 Added: {
770 Added: "include": "#preprocessor-string-constant"
771 Added: },
772 Added: {
773 Added: "include": "#preprocessor-line-continuation-operator"
774 Added: }
775 Added: ]
776 Added: },
777 Added: "preprocessor-include-statement": {
778 Added: "name": "meta.preprocessor.include.fortran",
779 Added: "begin": "(?i)\\G\\s*(include)\\b",
780 Added: "beginCaptures": {
781 Added: "1": {
782 Added: "name": "keyword.control.preprocessor.include.fortran"
783 Added: }
784 Added: },
785 Added: "end": "(?=\\n)",
786 Added: "patterns": [
787 Added: {
788 Added: "include": "#preprocessor-comments"
789 Added: },
790 Added: {
791 Added: "include": "#preprocessor-string-constant"
792 Added: },
793 Added: {
794 Added: "name": "string.quoted.other.lt-gt.include.preprocessor.fortran",
795 Added: "begin": "<",
796 Added: "beginCaptures": {
797 Added: "0": {
798 Added: "name": "punctuation.definition.string.begin.preprocessor.fortran"
799 Added: }
800 Added: },
801 Added: "end": ">",
802 Added: "endCaptures": {
803 Added: "0": {
804 Added: "name": "punctuation.definition.string.end.preprocessor.fortran"
805 Added: }
806 Added: }
807 Added: },
808 Added: {
809 Added: "include": "#line-continuation-operator"
810 Added: }
811 Added: ]
812 Added: },
813 Added: "preprocessor-pragma-statement": {
814 Added: "name": "meta.preprocessor.pragma.fortran",
815 Added: "begin": "(?i)\\G\\s*\\b(pragma)\\b",
816 Added: "beginCaptures": {
817 Added: "1": {
818 Added: "name": "keyword.control.preprocessor.pragma.fortran"
819 Added: }
820 Added: },
821 Added: "end": "(?=\\n)",
822 Added: "patterns": [
823 Added: {
824 Added: "include": "#preprocessor-comments"
825 Added: },
826 Added: {
827 Added: "include": "#preprocessor-string-constant"
828 Added: }
829 Added: ]
830 Added: },
831 Added: "preprocessor-undefine-statement": {
832 Added: "name": "meta.preprocessor.undef.fortran",
833 Added: "begin": "(?i)\\G\\s*\\b(undef)\\b",
834 Added: "beginCaptures": {
835 Added: "1": {
836 Added: "name": "keyword.control.preprocessor.undef.fortran"
837 Added: }
838 Added: },
839 Added: "end": "(?=\\n)",
840 Added: "patterns": [
841 Added: {
842 Added: "include": "#preprocessor-comments"
843 Added: },
844 Added: {
845 Added: "include": "#preprocessor-line-continuation-operator"
846 Added: }
847 Added: ]
848 Added: },
849 Added: "abstract-attribute": {
850 Added: "comment": "Introduced in the Fortran 2003 standard.",
851 Added: "match": "(?i)\\G\\s*\\b(abstract)\\b",
852 Added: "captures": {
853 Added: "1": {
854 Added: "name": "storage.modifier.fortran.fortran"
855 Added: }
856 Added: }
857 Added: },
858 Added: "access-attribute": {
859 Added: "patterns": [
860 Added: {
861 Added: "include": "#private-attribute"
862 Added: },
863 Added: {
864 Added: "include": "#public-attribute"
865 Added: }
866 Added: ]
867 Added: },
868 Added: "allocatable-attribute": {
869 Added: "comment": "Introduced in the Fortran 1990 standard.",
870 Added: "match": "(?i)\\s*\\b(allocatable)\\b",
871 Added: "captures": {
872 Added: "1": {
873 Added: "name": "storage.modifier.allocatable.fortran"
874 Added: }
875 Added: }
876 Added: },
877 Added: "asynchronous-attribute": {
878 Added: "comment": "Introduced in the Fortran 2003 standard.",
879 Added: "match": "(?i)\\G\\s*\\b(asynchronous)\\b",
880 Added: "captures": {
881 Added: "1": {
882 Added: "name": "storage.modifier.asynchronous.fortran"
883 Added: }
884 Added: }
885 Added: },
886 Added: "codimension-attribute": {
887 Added: "comment": "Introduced in the Fortran 2008 standard.",
888 Added: "begin": "(?i)\\G\\s*\\b(codimension)(?=\\s*\\[)",
889 Added: "beginCaptures": {
890 Added: "1": {
891 Added: "name": "storage.modifier.codimension.fortran"
892 Added: }
893 Added: },
894 Added: "end": "(?<!\\G)",
895 Added: "patterns": [
896 Added: {
897 Added: "include": "#brackets"
898 Added: }
899 Added: ]
900 Added: },
901 Added: "contiguous-attribute": {
902 Added: "comment": "Introduced in the Fortran 2008 standard.",
903 Added: "match": "(?i)\\G\\s*\\b(contiguous)\\b",
904 Added: "captures": {
905 Added: "1": {
906 Added: "name": "storage.modifier.contigous.fortran"
907 Added: }
908 Added: }
909 Added: },
910 Added: "concurrent-attribute": {
911 Added: "comment": "Introduced in the Fortran 2003 standard.",
912 Added: "begin": "(?i)\\G\\s*\\b(concurrent)\\b",
913 Added: "beginCaptures": {
914 Added: "1": {
915 Added: "name": "keyword.control.while.fortran"
916 Added: }
917 Added: },
918 Added: "end": "(?=[;!\\n])",
919 Added: "patterns": [
920 Added: {
921 Added: "include": "#parentheses"
922 Added: },
923 Added: {
924 Added: "include": "#invalid-word"
925 Added: }
926 Added: ]
927 Added: },
928 Added: "deferred-attribute": {
929 Added: "comment": "Introduced in the Fortran 2003 standard.",
930 Added: "match": "(?i)\\s*\\b(deferred)\\b",
931 Added: "captures": {
932 Added: "1": {
933 Added: "name": "storage.modifier.deferred.fortran"
934 Added: }
935 Added: }
936 Added: },
937 Added: "dimension-attribute": {
938 Added: "comment": "Introduced in the Fortran 1977 standard.",
939 Added: "begin": "(?i)\\s*\\b(dimension)(?=\\s*\\()",
940 Added: "beginCaptures": {
941 Added: "1": {
942 Added: "name": "storage.modifier.dimension.fortran"
943 Added: }
944 Added: },
945 Added: "end": "(?<!\\G)",
946 Added: "patterns": [
947 Added: {
948 Added: "include": "#parentheses-dummy-variables"
949 Added: }
950 Added: ]
951 Added: },
952 Added: "elemental-attribute": {
953 Added: "comment": "Introduced in the Fortran 1990 standard.",
954 Added: "match": "(?i)\\s*\\b(elemental)\\b",
955 Added: "captures": {
956 Added: "1": {
957 Added: "name": "storage.modifier.elemental.fortran"
958 Added: }
959 Added: }
960 Added: },
961 Added: "extends-attribute": {
962 Added: "begin": "(?i)\\s*\\b(extends)\\s*\\(",
963 Added: "beginCaptures": {
964 Added: "1": {
965 Added: "name": "storage.modifier.extends.fortran"
966 Added: }
967 Added: },
968 Added: "end": "(?:\\)|(?=\\n))",
969 Added: "patterns": [
970 Added: {
971 Added: "name": "entity.name.type.fortran",
972 Added: "match": "(?i)\\s*\\b([a-z]\\w*)\\b"
973 Added: }
974 Added: ]
975 Added: },
976 Added: "external-attribute": {
977 Added: "comment": "Introduced in the Fortran 1977 standard.",
978 Added: "match": "(?i)\\s*\\b(external)\\b",
979 Added: "captures": {
980 Added: "1": {
981 Added: "name": "storage.modifier.external.fortran"
982 Added: }
983 Added: }
984 Added: },
985 Added: "intent-attribute": {
986 Added: "comment": "Introduced in the Fortran 1990 standard.",
987 Added: "begin": "(?i)\\s*\\b(intent)\\s*(\\()",
988 Added: "beginCaptures": {
989 Added: "1": {
990 Added: "name": "storage.modifier.intent.fortran"
991 Added: },
992 Added: "2": {
993 Added: "name": "punctuation.parentheses.left.fortran"
994 Added: }
995 Added: },
996 Added: "end": "(\\))|(?=[;!\\n])",
997 Added: "endCaptures": {
998 Added: "1": {
999 Added: "name": "punctuation.parentheses.left.fortran"
1000 Added: }
1001 Added: },
1002 Added: "patterns": [
1003 Added: {
1004 Added: "match": "(?i)\\b(?:(in\\s*out)|(in)|(out))\\b",
1005 Added: "captures": {
1006 Added: "1": {
1007 Added: "name": "storage.modifier.intent.in-out.fortran"
1008 Added: },
1009 Added: "2": {
1010 Added: "name": "storage.modifier.intent.in.fortran"
1011 Added: },
1012 Added: "3": {
1013 Added: "name": "storage.modifier.intent.out.fortran"
1014 Added: }
1015 Added: }
1016 Added: },
1017 Added: {
1018 Added: "include": "#invalid-word"
1019 Added: }
1020 Added: ]
1021 Added: },
1022 Added: "intrinsic-attribute": {
1023 Added: "comment": "Introduced in the Fortran 1977 standard.",
1024 Added: "match": "(?i)\\s*\\b(intrinsic)\\b",
1025 Added: "captures": {
1026 Added: "1": {
1027 Added: "name": "storage.modifier.intrinsic.fortran"
1028 Added: }
1029 Added: }
1030 Added: },
1031 Added: "language-binding-attribute": {
1032 Added: "comment": "Introduced in Fortran 2003 standard.",
1033 Added: "begin": "(?i)\\s*\\b(bind)\\s*\\(",
1034 Added: "beginCaptures": {
1035 Added: "1": {
1036 Added: "name": "storage.modifier.bind.fortran"
1037 Added: }
1038 Added: },
1039 Added: "end": "(?:\\)|(?=\\n))",
1040 Added: "patterns": [
1041 Added: {
1042 Added: "name": "variable.parameter.fortran",
1043 Added: "match": "(?i)\\b(c)\\b"
1044 Added: },
1045 Added: {
1046 Added: "include": "#dummy-variable"
1047 Added: },
1048 Added: {
1049 Added: "include": "$base"
1050 Added: }
1051 Added: ]
1052 Added: },
1053 Added: "module-attribute": {
1054 Added: "comment": "Introduced in the Fortran 1990 standard.",
1055 Added: "match": "(?ix)\\s*\\b(module)\\b(?=\\s*(?:[;!\\n]| [^'\";!\\n]*\\b(?:function|procedure|subroutine)\\b))",
1056 Added: "captures": {
1057 Added: "1": {
1058 Added: "name": "storage.modifier.module.fortran"
1059 Added: }
1060 Added: }
1061 Added: },
1062 Added: "non-intrinsic-attribute": {
1063 Added: "comment": "Introduced in the Fortran 1990 standard.",
1064 Added: "match": "(?i)\\s*\\b(non_intrinsic)\\b",
1065 Added: "captures": {
1066 Added: "1": {
1067 Added: "name": "storage.modifier.non-intrinsic.fortran"
1068 Added: }
1069 Added: }
1070 Added: },
1071 Added: "non-overridable-attribute": {
1072 Added: "comment": "Introduced in the Fortran 2003 standard.",
1073 Added: "match": "(?i)\\s*\\b(non_overridable)\\b",
1074 Added: "captures": {
1075 Added: "1": {
1076 Added: "name": "storage.modifier.non-overridable.fortran"
1077 Added: }
1078 Added: }
1079 Added: },
1080 Added: "nopass-attribute": {
1081 Added: "comment": "Introduced in the Fortran 2003 standard.",
1082 Added: "match": "(?i)\\s*\\b(nopass)\\b",
1083 Added: "captures": {
1084 Added: "1": {
1085 Added: "name": "storage.modifier.nopass.fortran"
1086 Added: }
1087 Added: }
1088 Added: },
1089 Added: "optional-attribute": {
1090 Added: "comment": "Introduced in the Fortran 1990 standard.",
1091 Added: "match": "(?i)\\s*\\b(optional)\\b",
1092 Added: "captures": {
1093 Added: "1": {
1094 Added: "name": "storage.modifier.optional.fortran"
1095 Added: }
1096 Added: }
1097 Added: },
1098 Added: "parameter-attribute": {
1099 Added: "comment": "Introduced in the Fortran 1977 standard.",
1100 Added: "match": "(?i)\\s*\\b(parameter)\\b",
1101 Added: "captures": {
1102 Added: "1": {
1103 Added: "name": "storage.modifier.parameter.fortran"
1104 Added: }
1105 Added: }
1106 Added: },
1107 Added: "pass-attribute": {
1108 Added: "comment": "Introduced in the Fortran 2003 standard.",
1109 Added: "patterns": [
1110 Added: {
1111 Added: "comment": "Pass attribute with argument.",
1112 Added: "begin": "(?i)\\s*\\b(pass)\\s*\\(",
1113 Added: "beginCaptures": {
1114 Added: "1": {
1115 Added: "name": "storage.modifier.pass.fortran"
1116 Added: }
1117 Added: },
1118 Added: "end": "\\)|(?=\\n)",
1119 Added: "patterns": []
1120 Added: },
1121 Added: {
1122 Added: "comment": "Pass attribute without argument.",
1123 Added: "match": "(?i)\\s*\\b(pass)\\b",
1124 Added: "captures": {
1125 Added: "1": {
1126 Added: "name": "storage.modifier.pass.fortran"
1127 Added: }
1128 Added: }
1129 Added: }
1130 Added: ]
1131 Added: },
1132 Added: "pointer-attribute": {
1133 Added: "comment": "Introduced in the Fortran 1990 standard.",
1134 Added: "match": "(?i)\\s*\\b(pointer)\\b",
1135 Added: "captures": {
1136 Added: "1": {
1137 Added: "name": "storage.modifier.pointer.fortran"
1138 Added: }
1139 Added: }
1140 Added: },
1141 Added: "private-attribute": {
1142 Added: "comment": "Introduced in the Fortran 1990 standard.",
1143 Added: "match": "(?i)\\s*\\b(private)\\b",
1144 Added: "captures": {
1145 Added: "1": {
1146 Added: "name": "storage.modifier.private.fortran"
1147 Added: }
1148 Added: }
1149 Added: },
1150 Added: "protected-attribute": {
1151 Added: "comment": "Introduced in the Fortran 2003 standard.",
1152 Added: "match": "(?i)\\s*\\b(protected)\\b",
1153 Added: "captures": {
1154 Added: "1": {
1155 Added: "name": "storage.modifier.protected.fortran"
1156 Added: }
1157 Added: }
1158 Added: },
1159 Added: "public-attribute": {
1160 Added: "comment": "Introduced in the Fortran 1990 standard.",
1161 Added: "match": "(?i)\\s*\\b(public)\\b",
1162 Added: "captures": {
1163 Added: "1": {
1164 Added: "name": "storage.modifier.public.fortran"
1165 Added: }
1166 Added: }
1167 Added: },
1168 Added: "pure-attribute": {
1169 Added: "comment": "Introduced in the Fortran 1995 standard.",
1170 Added: "match": "(?i)\\s*\\b(?:(impure)|(pure))\\b",
1171 Added: "captures": {
1172 Added: "1": {
1173 Added: "name": "storage.modifier.impure.fortran"
1174 Added: },
1175 Added: "2": {
1176 Added: "name": "storage.modifier.pure.fortran"
1177 Added: }
1178 Added: }
1179 Added: },
1180 Added: "recursive-attribute": {
1181 Added: "comment": "Introduced in the Fortran 1977 standard.",
1182 Added: "match": "(?i)\\s*\\b(?:(non_recursive)|(recursive))\\b",
1183 Added: "captures": {
1184 Added: "1": {
1185 Added: "name": "storage.modifier.non_recursive.fortran"
1186 Added: },
1187 Added: "2": {
1188 Added: "name": "storage.modifier.recursive.fortran"
1189 Added: }
1190 Added: }
1191 Added: },
1192 Added: "save-attribute": {
1193 Added: "comment": "Introduced in the Fortran 1977 standard.",
1194 Added: "match": "(?i)\\s*\\b(save)\\b",
1195 Added: "captures": {
1196 Added: "1": {
1197 Added: "name": "storage.modifier.save.fortran"
1198 Added: }
1199 Added: }
1200 Added: },
1201 Added: "sequence-attribute": {
1202 Added: "comment": "Introduced in the Fortran 20?? standard.",
1203 Added: "match": "(?i)\\s*\\b(sequence)\\b",
1204 Added: "captures": {
1205 Added: "1": {
1206 Added: "name": "storage.modifier.sequence.fortran"
1207 Added: }
1208 Added: }
1209 Added: },
1210 Added: "target-attribute": {
1211 Added: "comment": "Introduced in the Fortran 1990 standard.",
1212 Added: "match": "(?i)\\s*\\b(target)\\b",
1213 Added: "captures": {
1214 Added: "1": {
1215 Added: "name": "storage.modifier.target.fortran"
1216 Added: }
1217 Added: }
1218 Added: },
1219 Added: "value-attribute": {
1220 Added: "comment": "Introduced in the Fortran 2003 standard.",
1221 Added: "match": "(?i)\\s*\\b(value)\\b",
1222 Added: "captures": {
1223 Added: "1": {
1224 Added: "name": "storage.modifier.value.fortran"
1225 Added: }
1226 Added: }
1227 Added: },
1228 Added: "volatile-attribute": {
1229 Added: "comment": "Introduced in the Fortran 2003 standard.",
1230 Added: "match": "(?i)\\s*\\b(volatile)\\b",
1231 Added: "captures": {
1232 Added: "1": {
1233 Added: "name": "storage.modifier.volatile.fortran"
1234 Added: }
1235 Added: }
1236 Added: },
1237 Added: "while-attribute": {
1238 Added: "comment": "Introduced in the Fortran 1995 standard.",
1239 Added: "begin": "(?i)\\G\\s*\\b(while)\\b",
1240 Added: "beginCaptures": {
1241 Added: "1": {
1242 Added: "name": "keyword.control.while.fortran"
1243 Added: }
1244 Added: },
1245 Added: "end": "(?=[;!\\n])",
1246 Added: "patterns": [
1247 Added: {
1248 Added: "include": "#parentheses"
1249 Added: },
1250 Added: {
1251 Added: "include": "#invalid-word"
1252 Added: }
1253 Added: ]
1254 Added: },
1255 Added: "comments": {
1256 Added: "name": "comment.line.fortran",
1257 Added: "begin": "!",
1258 Added: "end": "(?=\\n)"
1259 Added: },
1260 Added: "constants": {
1261 Added: "patterns": [
1262 Added: {
1263 Added: "include": "#logical-constant"
1264 Added: },
1265 Added: {
1266 Added: "include": "#numeric-constant"
1267 Added: },
1268 Added: {
1269 Added: "include": "#string-constant"
1270 Added: }
1271 Added: ]
1272 Added: },
1273 Added: "logical-constant": {
1274 Added: "comment": "Logical constants",
1275 Added: "match": "(?i)\\s*(?:(\\.false\\.)|(\\.true\\.))",
1276 Added: "captures": {
1277 Added: "1": {
1278 Added: "name": "constant.language.logical.false.fortran"
1279 Added: },
1280 Added: "2": {
1281 Added: "name": "constant.language.logical.true.fortran"
1282 Added: }
1283 Added: }
1284 Added: },
1285 Added: "numeric-constant": {
1286 Added: "comment": "Numeric constants",
1287 Added: "name": "constant.numeric.fortran",
1288 Added: "match": "(?ix)[\\+\\-]?(\\b\\d+\\.?\\d*|\\.\\d+) (_\\w+|d[\\+\\-]?\\d+|e[\\+\\-]?\\d+(_\\w+)?)?(?![a-z_])"
1289 Added: },
1290 Added: "string-constant": {
1291 Added: "comment": "Introduced in the Fortran 1977 standard.",
1292 Added: "patterns": [
1293 Added: {
1294 Added: "comment": "String",
1295 Added: "name": "string.quoted.single.fortran",
1296 Added: "begin": "'",
1297 Added: "beginCaptures": {
1298 Added: "0": {
1299 Added: "name": "punctuation.definition.string.begin.fortran"
1300 Added: }
1301 Added: },
1302 Added: "end": "'",
1303 Added: "endCaptures": {
1304 Added: "0": {
1305 Added: "name": "punctuation.definition.string.end.fortran"
1306 Added: }
1307 Added: },
1308 Added: "applyEndPatternLast": 1,
1309 Added: "patterns": [
1310 Added: {
1311 Added: "name": "constant.character.escape.apostrophe.fortran",
1312 Added: "match": "''"
1313 Added: }
1314 Added: ]
1315 Added: },
1316 Added: {
1317 Added: "comment": "String",
1318 Added: "name": "string.quoted.double.fortran",
1319 Added: "begin": "\"",
1320 Added: "beginCaptures": {
1321 Added: "0": {
1322 Added: "name": "punctuation.definition.string.begin.fortran"
1323 Added: }
1324 Added: },
1325 Added: "end": "\"",
1326 Added: "endCaptures": {
1327 Added: "0": {
1328 Added: "name": "punctuation.definition.string.end.fortran"
1329 Added: }
1330 Added: },
1331 Added: "applyEndPatternLast": 1,
1332 Added: "patterns": [
1333 Added: {
1334 Added: "name": "constant.character.escape.quote.fortran",
1335 Added: "match": "\"\""
1336 Added: }
1337 Added: ]
1338 Added: }
1339 Added: ]
1340 Added: },
1341 Added: "control-constructs": {
1342 Added: "patterns": [
1343 Added: {
1344 Added: "include": "#named-control-constructs"
1345 Added: },
1346 Added: {
1347 Added: "include": "#unnamed-control-constructs"
1348 Added: }
1349 Added: ]
1350 Added: },
1351 Added: "named-control-constructs": {
1352 Added: "comment": "Introduced in the Fortran 1990 standard.",
1353 Added: "contentName": "meta.named-construct.fortran.modern",
1354 Added: "begin": "(?ix)([a-z]\\w*)\\s*(:)(?=\\s*(?:associate|block(?!\\s*data)|critical|do|forall|if|select\\s*case|select\\s*type|select\\s*rank|where)\\b)",
1355 Added: "end": "(?i)(?!\\s*\\b(?:associate|block(?!\\s*data)|critical|do|forall|if|select\\s*case|select\\s*type|select\\s*rank|where)\\b)(?:\\b(\\1)\\b)?([^\\s;!\\n]*?)?(?=\\s*[;!\\n])",
1356 Added: "endCaptures": {
1357 Added: "1": {
1358 Added: "name": "meta.label.end.name.fortran"
1359 Added: },
1360 Added: "2": {
1361 Added: "name": "invalid.error.named-control-constructs.fortran.modern"
1362 Added: }
1363 Added: },
1364 Added: "applyEndPatternLast": 1,
1365 Added: "patterns": [
1366 Added: {
1367 Added: "include": "#unnamed-control-constructs"
1368 Added: }
1369 Added: ]
1370 Added: },
1371 Added: "unnamed-control-constructs": {
1372 Added: "patterns": [
1373 Added: {
1374 Added: "include": "#associate-construct"
1375 Added: },
1376 Added: {
1377 Added: "include": "#block-construct"
1378 Added: },
1379 Added: {
1380 Added: "include": "#critical-construct"
1381 Added: },
1382 Added: {
1383 Added: "include": "#do-construct"
1384 Added: },
1385 Added: {
1386 Added: "include": "#forall-construct"
1387 Added: },
1388 Added: {
1389 Added: "include": "#if-construct"
1390 Added: },
1391 Added: {
1392 Added: "include": "#select-case-construct"
1393 Added: },
1394 Added: {
1395 Added: "include": "#select-type-construct"
1396 Added: },
1397 Added: {
1398 Added: "include": "#select-rank-construct"
1399 Added: },
1400 Added: {
1401 Added: "include": "#where-construct"
1402 Added: }
1403 Added: ]
1404 Added: },
1405 Added: "associate-construct": {
1406 Added: "comment": "Introduced in the Fortran 2003 standard.",
1407 Added: "contentName": "meta.block.associate.fortran",
1408 Added: "begin": "(?i)\\b(associate)\\b(?=\\s*\\()",
1409 Added: "beginCaptures": {
1410 Added: "1": {
1411 Added: "name": "keyword.control.associate.fortran"
1412 Added: }
1413 Added: },
1414 Added: "end": "(?i)\\b(end\\s*associate)\\b",
1415 Added: "endCaptures": {
1416 Added: "1": {
1417 Added: "name": "keyword.control.endassociate.fortran"
1418 Added: }
1419 Added: },
1420 Added: "patterns": [
1421 Added: {
1422 Added: "include": "$base"
1423 Added: }
1424 Added: ]
1425 Added: },
1426 Added: "block-construct": {
1427 Added: "comment": "Introduced in the Fortran 2008 standard.",
1428 Added: "contentName": "meta.block.block.fortran",
1429 Added: "begin": "(?i)\\b(block)\\b(?!\\s*\\bdata\\b)",
1430 Added: "beginCaptures": {
1431 Added: "1": {
1432 Added: "name": "keyword.control.associate.fortran"
1433 Added: }
1434 Added: },
1435 Added: "end": "(?i)\\b(end\\s*block)\\b",
1436 Added: "endCaptures": {
1437 Added: "1": {
1438 Added: "name": "keyword.control.endassociate.fortran"
1439 Added: }
1440 Added: },
1441 Added: "patterns": [
1442 Added: {
1443 Added: "include": "$base"
1444 Added: }
1445 Added: ]
1446 Added: },
1447 Added: "critical-construct": {
1448 Added: "comment": "Introduced in the Fortran 2008 standard.",
1449 Added: "contentName": "meta.block.critical.fortran",
1450 Added: "begin": "(?i)\\b(critical)\\b",
1451 Added: "beginCaptures": {
1452 Added: "1": {
1453 Added: "name": "keyword.control.associate.fortran"
1454 Added: }
1455 Added: },
1456 Added: "end": "(?i)\\b(end\\s*critical)\\b",
1457 Added: "endCaptures": {
1458 Added: "1": {
1459 Added: "name": "keyword.control.endassociate.fortran"
1460 Added: }
1461 Added: },
1462 Added: "patterns": [
1463 Added: {
1464 Added: "include": "$base"
1465 Added: }
1466 Added: ]
1467 Added: },
1468 Added: "do-construct": {
1469 Added: "patterns": [
1470 Added: {
1471 Added: "match": "(?i)\\b(end\\s*do)\\b",
1472 Added: "captures": {
1473 Added: "1": {
1474 Added: "name": "keyword.control.enddo.fortran"
1475 Added: }
1476 Added: }
1477 Added: },
1478 Added: {
1479 Added: "comment": "Introduced in the Fortran 1977 standard.",
1480 Added: "name": "meta.do.labeled.fortran",
1481 Added: "begin": "(?i)\\b(do)\\s+(\\d{1,5})",
1482 Added: "beginCaptures": {
1483 Added: "1": {
1484 Added: "name": "keyword.control.do.fortran"
1485 Added: },
1486 Added: "2": {
1487 Added: "name": "constant.numeric.fortran"
1488 Added: }
1489 Added: },
1490 Added: "end": "(?i)(?:^|(?<=;))(?=\\s*\\b\\2\\b)",
1491 Added: "patterns": [
1492 Added: {
1493 Added: "comment": "Loop control.",
1494 Added: "begin": "(?i)\\G(?:\\s*(,)|(?!\\s*[;!\\n]))",
1495 Added: "beginCaptures": {
1496 Added: "1": {
1497 Added: "name": "punctuation.comma.fortran"
1498 Added: }
1499 Added: },
1500 Added: "end": "(?=[;!\\n])",
1501 Added: "patterns": [
1502 Added: {
1503 Added: "include": "#concurrent-attribute"
1504 Added: },
1505 Added: {
1506 Added: "include": "#while-attribute"
1507 Added: },
1508 Added: {
1509 Added: "include": "$base"
1510 Added: }
1511 Added: ]
1512 Added: },
1513 Added: {
1514 Added: "include": "$base"
1515 Added: }
1516 Added: ]
1517 Added: },
1518 Added: {
1519 Added: "comment": "Introduced in the Fortran 1995 standard.",
1520 Added: "name": "meta.block.do.unlabeled.fortran",
1521 Added: "begin": "(?i)\\b(do)\\b",
1522 Added: "beginCaptures": {
1523 Added: "1": {
1524 Added: "name": "keyword.control.do.fortran"
1525 Added: }
1526 Added: },
1527 Added: "end": "(?i)\\b(?:(continue)|(end\\s*do))\\b",
1528 Added: "endCaptures": {
1529 Added: "1": {
1530 Added: "name": "keyword.control.continue.fortran"
1531 Added: },
1532 Added: "2": {
1533 Added: "name": "keyword.control.enddo.fortran"
1534 Added: }
1535 Added: },
1536 Added: "patterns": [
1537 Added: {
1538 Added: "comment": "Loop control.",
1539 Added: "name": "meta.loop-control.fortran",
1540 Added: "begin": "(?i)\\G(?:\\s*(,)|(?!\\s*[;!\\n]))",
1541 Added: "beginCaptures": {
1542 Added: "1": {
1543 Added: "name": "punctuation.comma.fortran"
1544 Added: }
1545 Added: },
1546 Added: "end": "(?=[;!\\n])",
1547 Added: "patterns": [
1548 Added: {
1549 Added: "include": "#concurrent-attribute"
1550 Added: },
1551 Added: {
1552 Added: "include": "#while-attribute"
1553 Added: },
1554 Added: {
1555 Added: "include": "$base"
1556 Added: }
1557 Added: ]
1558 Added: },
1559 Added: {
1560 Added: "comment": "Loop body.",
1561 Added: "begin": "(?i)(?!\\s*\\b(continue|end\\s*do)\\b)",
1562 Added: "end": "(?i)(?=\\s*\\b(continue|end\\s*do)\\b)",
1563 Added: "patterns": [
1564 Added: {
1565 Added: "include": "$base"
1566 Added: }
1567 Added: ]
1568 Added: }
1569 Added: ]
1570 Added: }
1571 Added: ]
1572 Added: },
1573 Added: "if-construct": {
1574 Added: "patterns": [
1575 Added: {
1576 Added: "begin": "(?i)\\b(if)\\b",
1577 Added: "beginCaptures": {
1578 Added: "1": {
1579 Added: "name": "keyword.control.if.fortran"
1580 Added: }
1581 Added: },
1582 Added: "end": "(?=[;!\\n])",
1583 Added: "patterns": [
1584 Added: {
1585 Added: "include": "#logical-control-expression"
1586 Added: },
1587 Added: {
1588 Added: "contentName": "meta.block.if.fortran",
1589 Added: "begin": "(?i)\\s*\\b(then)\\b",
1590 Added: "beginCaptures": {
1591 Added: "1": {
1592 Added: "name": "keyword.control.then.fortran"
1593 Added: }
1594 Added: },
1595 Added: "end": "(?i)\\b(end\\s*if)\\b",
1596 Added: "endCaptures": {
1597 Added: "1": {
1598 Added: "name": "keyword.control.endif.fortran"
1599 Added: }
1600 Added: },
1601 Added: "patterns": [
1602 Added: {
1603 Added: "comment": "else if statement",
1604 Added: "begin": "(?i)\\b(else\\s*if)\\b",
1605 Added: "beginCaptures": {
1606 Added: "1": {
1607 Added: "name": "keyword.control.elseif.fortran"
1608 Added: }
1609 Added: },
1610 Added: "end": "(?=[;!\\n])",
1611 Added: "patterns": [
1612 Added: {
1613 Added: "include": "#parentheses"
1614 Added: },
1615 Added: {
1616 Added: "comment": "capture the label if present",
1617 Added: "match": "(?i)\\b(then)\\b(\\s*[a-z]\\w*)?",
1618 Added: "captures": {
1619 Added: "1": {
1620 Added: "name": "keyword.control.then.fortran"
1621 Added: },
1622 Added: "2": {
1623 Added: "name": "meta.label.elseif.fortran"
1624 Added: }
1625 Added: }
1626 Added: },
1627 Added: {
1628 Added: "include": "#invalid-word"
1629 Added: }
1630 Added: ]
1631 Added: },
1632 Added: {
1633 Added: "comment": "else block",
1634 Added: "begin": "(?i)\\b(else)\\b",
1635 Added: "beginCaptures": {
1636 Added: "1": {
1637 Added: "name": "keyword.control.else.fortran"
1638 Added: }
1639 Added: },
1640 Added: "end": "(?i)(?=\\b(end\\s*if)\\b)",
1641 Added: "patterns": [
1642 Added: {
1643 Added: "comment": "rest of else line",
1644 Added: "begin": "(?!(\\s*(;|!|\\n)))",
1645 Added: "end": "\\s*(?=[;!\\n])",
1646 Added: "patterns": [
1647 Added: {
1648 Added: "comment": "capture the label if present",
1649 Added: "match": "(?i)\\s*([a-z]\\w*)?\\s*\\b(\\w*)\\b",
1650 Added: "captures": {
1651 Added: "1": {
1652 Added: "name": "meta.label.else.fortran"
1653 Added: },
1654 Added: "2": {
1655 Added: "name": "invalid.error.label.else.fortran"
1656 Added: }
1657 Added: }
1658 Added: },
1659 Added: {
1660 Added: "include": "#invalid-word"
1661 Added: }
1662 Added: ]
1663 Added: },
1664 Added: {
1665 Added: "begin": "(?i)(?!\\b(end\\s*if)\\b)",
1666 Added: "end": "(?i)(?=\\b(end\\s*if)\\b)",
1667 Added: "patterns": [
1668 Added: {
1669 Added: "include": "$base"
1670 Added: }
1671 Added: ]
1672 Added: }
1673 Added: ]
1674 Added: },
1675 Added: {
1676 Added: "include": "$base"
1677 Added: }
1678 Added: ]
1679 Added: },
1680 Added: {
1681 Added: "name": "meta.statement.control.if.fortran",
1682 Added: "begin": "(?i)(?=\\s*[a-z])",
1683 Added: "end": "(?=[;!\\n])",
1684 Added: "patterns": [
1685 Added: {
1686 Added: "include": "$base"
1687 Added: }
1688 Added: ]
1689 Added: }
1690 Added: ]
1691 Added: }
1692 Added: ]
1693 Added: },
1694 Added: "select-case-construct": {
1695 Added: "comment": "Select case construct. Introduced in the Fortran 1990 standard.",
1696 Added: "name": "meta.block.select.case.fortran",
1697 Added: "begin": "(?i)\\b(select\\s*case)\\b",
1698 Added: "beginCaptures": {
1699 Added: "1": {
1700 Added: "name": "keyword.control.selectcase.fortran"
1701 Added: }
1702 Added: },
1703 Added: "end": "(?i)\\b(end\\s*select)\\b",
1704 Added: "endCaptures": {
1705 Added: "1": {
1706 Added: "name": "keyword.control.endselect.fortran"
1707 Added: }
1708 Added: },
1709 Added: "patterns": [
1710 Added: {
1711 Added: "include": "#parentheses"
1712 Added: },
1713 Added: {
1714 Added: "begin": "(?i)\\b(case)\\b",
1715 Added: "beginCaptures": {
1716 Added: "1": {
1717 Added: "name": "keyword.control.case.fortran"
1718 Added: }
1719 Added: },
1720 Added: "end": "(?i)(?=[;!\\n])",
1721 Added: "patterns": [
1722 Added: {
1723 Added: "match": "(?i)\\G\\s*\\b(default)\\b",
1724 Added: "captures": {
1725 Added: "1": {
1726 Added: "name": "keyword.control.default.fortran"
1727 Added: }
1728 Added: }
1729 Added: },
1730 Added: {
1731 Added: "include": "#parentheses"
1732 Added: },
1733 Added: {
1734 Added: "include": "#invalid-word"
1735 Added: }
1736 Added: ]
1737 Added: },
1738 Added: {
1739 Added: "include": "$base"
1740 Added: }
1741 Added: ]
1742 Added: },
1743 Added: "select-type-construct": {
1744 Added: "comment": "Select type construct. Introduced in the Fortran 2003 standard.",
1745 Added: "name": "meta.block.select.type.fortran",
1746 Added: "begin": "(?i)\\b(select\\s*type)\\b",
1747 Added: "beginCaptures": {
1748 Added: "1": {
1749 Added: "name": "keyword.control.selecttype.fortran"
1750 Added: }
1751 Added: },
1752 Added: "end": "(?i)\\b(end\\s*select)\\b",
1753 Added: "endCaptures": {
1754 Added: "1": {
1755 Added: "name": "keyword.control.endselect.fortran"
1756 Added: }
1757 Added: },
1758 Added: "patterns": [
1759 Added: {
1760 Added: "include": "#parentheses"
1761 Added: },
1762 Added: {
1763 Added: "begin": "(?i)\\b(?:(class)|(type))\\b",
1764 Added: "beginCaptures": {
1765 Added: "1": {
1766 Added: "name": "keyword.control.class.fortran"
1767 Added: },
1768 Added: "2": {
1769 Added: "name": "keyword.control.type.fortran"
1770 Added: }
1771 Added: },
1772 Added: "end": "(?i)(?=[;!\\n])",
1773 Added: "patterns": [
1774 Added: {
1775 Added: "match": "(?i)\\G\\s*\\b(default)\\b",
1776 Added: "captures": {
1777 Added: "1": {
1778 Added: "name": "keyword.control.default.fortran"
1779 Added: }
1780 Added: }
1781 Added: },
1782 Added: {
1783 Added: "match": "(?i)\\G\\s*\\b(is)\\b",
1784 Added: "captures": {
1785 Added: "1": {
1786 Added: "name": "keyword.control.is.fortran"
1787 Added: }
1788 Added: }
1789 Added: },
1790 Added: {
1791 Added: "include": "#parentheses"
1792 Added: },
1793 Added: {
1794 Added: "include": "#invalid-word"
1795 Added: }
1796 Added: ]
1797 Added: },
1798 Added: {
1799 Added: "include": "$base"
1800 Added: }
1801 Added: ]
1802 Added: },
1803 Added: "select-rank-construct": {
1804 Added: "comment": "Select rank construct. Introduced in the Fortran 2008 standard.",
1805 Added: "name": "meta.block.select.rank.fortran",
1806 Added: "begin": "(?i)\\b(select\\s*rank)\\b",
1807 Added: "beginCaptures": {
1808 Added: "1": {
1809 Added: "name": "keyword.control.selectrank.fortran"
1810 Added: }
1811 Added: },
1812 Added: "end": "(?i)\\b(end\\s*select)\\b",
1813 Added: "endCaptures": {
1814 Added: "1": {
1815 Added: "name": "keyword.control.endselect.fortran"
1816 Added: }
1817 Added: },
1818 Added: "patterns": [
1819 Added: {
1820 Added: "include": "#parentheses"
1821 Added: },
1822 Added: {
1823 Added: "begin": "(?i)\\b(rank)\\b",
1824 Added: "beginCaptures": {
1825 Added: "1": {
1826 Added: "name": "keyword.control.rank.fortran"
1827 Added: }
1828 Added: },
1829 Added: "end": "(?i)(?=[;!\\n])",
1830 Added: "patterns": [
1831 Added: {
1832 Added: "match": "(?i)\\G\\s*\\b(default)\\b",
1833 Added: "captures": {
1834 Added: "1": {
1835 Added: "name": "keyword.control.default.fortran"
1836 Added: }
1837 Added: }
1838 Added: },
1839 Added: {
1840 Added: "include": "#parentheses"
1841 Added: },
1842 Added: {
1843 Added: "include": "#invalid-word"
1844 Added: }
1845 Added: ]
1846 Added: },
1847 Added: {
1848 Added: "include": "$base"
1849 Added: }
1850 Added: ]
1851 Added: },
1852 Added: "where-construct": {
1853 Added: "patterns": [
1854 Added: {
1855 Added: "comment": "Introduced in the Fortran 1990 standard.",
1856 Added: "begin": "(?i)\\b(where)\\b",
1857 Added: "beginCaptures": {
1858 Added: "1": {
1859 Added: "name": "keyword.control.where.fortran"
1860 Added: }
1861 Added: },
1862 Added: "end": "(?<!\\G)",
1863 Added: "applyEndPatternLast": 1,
1864 Added: "patterns": [
1865 Added: {
1866 Added: "include": "#logical-control-expression"
1867 Added: },
1868 Added: {
1869 Added: "name": "meta.block.where.fortran",
1870 Added: "begin": "(?<=\\))(?=\\s*[;!\\n])",
1871 Added: "end": "(?i)\\b(end\\s*where)\\b",
1872 Added: "endCaptures": {
1873 Added: "1": {
1874 Added: "name": "keyword.control.endwhere.fortran"
1875 Added: }
1876 Added: },
1877 Added: "patterns": [
1878 Added: {
1879 Added: "begin": "(?i)\\s*\\b(else\\s*where)\\b",
1880 Added: "beginCaptures": {
1881 Added: "1": {
1882 Added: "name": "keyword.control.elsewhere.fortran"
1883 Added: }
1884 Added: },
1885 Added: "end": "\\s*(?=[;!\\n])",
1886 Added: "patterns": [
1887 Added: {
1888 Added: "include": "#parentheses"
1889 Added: },
1890 Added: {
1891 Added: "comment": "capture the label if present",
1892 Added: "match": "(?i)(\\s*[a-z]\\w*)?",
1893 Added: "captures": {
1894 Added: "1": {
1895 Added: "name": "meta.label.elsewhere.fortran"
1896 Added: }
1897 Added: }
1898 Added: },
1899 Added: {
1900 Added: "include": "#invalid-word"
1901 Added: }
1902 Added: ]
1903 Added: },
1904 Added: {
1905 Added: "include": "$base"
1906 Added: }
1907 Added: ]
1908 Added: },
1909 Added: {
1910 Added: "name": "meta.statement.control.where.fortran",
1911 Added: "begin": "(?i)(?<=\\))(?!\\s*[;!\\n])",
1912 Added: "end": "\\n",
1913 Added: "patterns": [
1914 Added: {
1915 Added: "include": "$base"
1916 Added: }
1917 Added: ]
1918 Added: }
1919 Added: ]
1920 Added: }
1921 Added: ]
1922 Added: },
1923 Added: "forall-construct": {
1924 Added: "comment": "Introduced in the Fortran 1995 standard.",
1925 Added: "begin": "(?i)\\b(forall)\\b",
1926 Added: "beginCaptures": {
1927 Added: "1": {
1928 Added: "name": "keyword.control.forall.fortran"
1929 Added: }
1930 Added: },
1931 Added: "end": "(?<!\\G)",
1932 Added: "applyEndPatternLast": 1,
1933 Added: "patterns": [
1934 Added: {
1935 Added: "comment": "Loop control.",
1936 Added: "name": "meta.loop-control.fortran",
1937 Added: "begin": "(?i)\\G(?!\\s*[;!\\n])",
1938 Added: "end": "(?<!\\G)",
1939 Added: "patterns": [
1940 Added: {
1941 Added: "include": "#parentheses"
1942 Added: },
1943 Added: {
1944 Added: "include": "#invalid-word"
1945 Added: }
1946 Added: ]
1947 Added: },
1948 Added: {
1949 Added: "name": "meta.block.forall.fortran",
1950 Added: "begin": "(?<=\\))(?=\\s*[;!\\n])",
1951 Added: "end": "(?i)\\b(end\\s*forall)\\b",
1952 Added: "endCaptures": {
1953 Added: "1": {
1954 Added: "name": "keyword.control.endforall.fortran"
1955 Added: }
1956 Added: },
1957 Added: "patterns": [
1958 Added: {
1959 Added: "include": "$base"
1960 Added: }
1961 Added: ]
1962 Added: },
1963 Added: {
1964 Added: "name": "meta.statement.control.forall.fortran",
1965 Added: "begin": "(?i)(?<=\\))(?!\\s*[;!\\n])",
1966 Added: "end": "\\n",
1967 Added: "patterns": [
1968 Added: {
1969 Added: "include": "$base"
1970 Added: }
1971 Added: ]
1972 Added: }
1973 Added: ]
1974 Added: },
1975 Added: "control-statements": {
1976 Added: "comment": "Statements controlling the flow of the program",
1977 Added: "patterns": [
1978 Added: {
1979 Added: "include": "#assign-statement"
1980 Added: },
1981 Added: {
1982 Added: "include": "#call-statement"
1983 Added: },
1984 Added: {
1985 Added: "include": "#continue-statement"
1986 Added: },
1987 Added: {
1988 Added: "include": "#cycle-statement"
1989 Added: },
1990 Added: {
1991 Added: "include": "#entry-statement"
1992 Added: },
1993 Added: {
1994 Added: "include": "#error-stop-statement"
1995 Added: },
1996 Added: {
1997 Added: "include": "#exit-statement"
1998 Added: },
1999 Added: {
2000 Added: "include": "#goto-statement"
2001 Added: },
2002 Added: {
2003 Added: "include": "#pause-statement"
2004 Added: },
2005 Added: {
2006 Added: "include": "#return-statement"
2007 Added: },
2008 Added: {
2009 Added: "include": "#stop-statement"
2010 Added: },
2011 Added: {
2012 Added: "include": "#where-statement"
2013 Added: },
2014 Added: {
2015 Added: "include": "#image-control-statement"
2016 Added: }
2017 Added: ]
2018 Added: },
2019 Added: "assign-statement": {
2020 Added: "patterns": [
2021 Added: {
2022 Added: "comment": "Introduced in the Fortran 1977 standard.",
2023 Added: "name": "meta.statement.control.assign.fortran",
2024 Added: "begin": "(?i)\\b(assign)\\b",
2025 Added: "beginCaptures": {
2026 Added: "1": {
2027 Added: "name": "keyword.control.assign.fortran"
2028 Added: }
2029 Added: },
2030 Added: "end": "(?=[;!\\n])",
2031 Added: "patterns": [
2032 Added: {
2033 Added: "match": "(?i)\\s*\\b(to)\\b",
2034 Added: "captures": {
2035 Added: "1": {
2036 Added: "name": "keyword.control.to.fortran"
2037 Added: }
2038 Added: }
2039 Added: },
2040 Added: {
2041 Added: "include": "$base"
2042 Added: }
2043 Added: ]
2044 Added: }
2045 Added: ]
2046 Added: },
2047 Added: "call-statement": {
2048 Added: "patterns": [
2049 Added: {
2050 Added: "comment": "Introduced in the Fortran 1977 standard.",
2051 Added: "name": "meta.statement.control.call.fortran",
2052 Added: "begin": "(?i)\\s*\\b(call)\\b",
2053 Added: "beginCaptures": {
2054 Added: "1": {
2055 Added: "name": "keyword.control.call.fortran"
2056 Added: }
2057 Added: },
2058 Added: "end": "(?=[;!\\n])",
2059 Added: "applyEndPatternLast": 1,
2060 Added: "patterns": [
2061 Added: {
2062 Added: "comment": "type-bound subroutines",
2063 Added: "begin": "(?ix)(?=\\s*[a-z]\\w*\\s*%)",
2064 Added: "end": "(?=[;!\\n])",
2065 Added: "patterns": [
2066 Added: {
2067 Added: "include": "#comments"
2068 Added: },
2069 Added: {
2070 Added: "include": "#line-continuation-operator"
2071 Added: },
2072 Added: {
2073 Added: "comment": "Variable and accessor",
2074 Added: "match": "(?ix)\\s*([a-z]\\w*)\\s*(%)",
2075 Added: "captures": {
2076 Added: "1": {
2077 Added: "name": "variable.other.fortran"
2078 Added: },
2079 Added: "2": {
2080 Added: "name": "keyword.accessor.fortran"
2081 Added: }
2082 Added: }
2083 Added: },
2084 Added: {
2085 Added: "comment": "Final function",
2086 Added: "match": "(?ix)\\s*([a-z]\\w*)",
2087 Added: "captures": {
2088 Added: "1": {
2089 Added: "name": "entity.name.function.subroutine.fortran"
2090 Added: }
2091 Added: }
2092 Added: },
2093 Added: {
2094 Added: "include": "#parentheses-dummy-variables"
2095 Added: }
2096 Added: ]
2097 Added: },
2098 Added: {
2099 Added: "include": "#intrinsic-subroutines"
2100 Added: },
2101 Added: {
2102 Added: "comment": "User defined subroutine.",
2103 Added: "begin": "(?i)\\G\\s*\\b([a-z]\\w*)\\s*(?=\\()",
2104 Added: "beginCaptures": {
2105 Added: "1": {
2106 Added: "name": "entity.name.function.subroutine.fortran"
2107 Added: },
2108 Added: "2": {
2109 Added: "name": "punctuation.parentheses.left.fortran"
2110 Added: }
2111 Added: },
2112 Added: "end": "(?<!\\G)",
2113 Added: "endCaptures": {
2114 Added: "1": {
2115 Added: "name": "punctuation.parentheses.right.fortran"
2116 Added: }
2117 Added: },
2118 Added: "patterns": [
2119 Added: {
2120 Added: "include": "#parentheses-dummy-variables"
2121 Added: }
2122 Added: ]
2123 Added: },
2124 Added: {
2125 Added: "comment": "User defined subroutine.",
2126 Added: "match": "(?i)\\G\\s*\\b([a-z]\\w*)\\b(?=\\s*[;!\\n])",
2127 Added: "captures": {
2128 Added: "1": {
2129 Added: "name": "entity.name.function.subroutine.fortran"
2130 Added: }
2131 Added: }
2132 Added: },
2133 Added: {
2134 Added: "include": "$base"
2135 Added: }
2136 Added: ]
2137 Added: }
2138 Added: ]
2139 Added: },
2140 Added: "continue-statement": {
2141 Added: "patterns": [
2142 Added: {
2143 Added: "comment": "Introduced in the Fortran 1977 standard.",
2144 Added: "name": "meta.statement.control.continue.fortran",
2145 Added: "begin": "(?i)\\s*\\b(continue)\\b",
2146 Added: "beginCaptures": {
2147 Added: "1": {
2148 Added: "name": "keyword.control.continue.fortran"
2149 Added: }
2150 Added: },
2151 Added: "end": "(?=[;!\\n])",
2152 Added: "patterns": [
2153 Added: {
2154 Added: "include": "#invalid-character"
2155 Added: }
2156 Added: ]
2157 Added: }
2158 Added: ]
2159 Added: },
2160 Added: "cycle-statement": {
2161 Added: "patterns": [
2162 Added: {
2163 Added: "comment": "Introduced in the Fortran 1990 standard.",
2164 Added: "name": "meta.statement.control.fortran",
2165 Added: "begin": "(?i)\\s*\\b(cycle)\\b",
2166 Added: "beginCaptures": {
2167 Added: "1": {
2168 Added: "name": "keyword.control.cycle.fortran"
2169 Added: }
2170 Added: },
2171 Added: "end": "(?=[;!\\n])",
2172 Added: "patterns": []
2173 Added: }
2174 Added: ]
2175 Added: },
2176 Added: "entry-statement": {
2177 Added: "patterns": [
2178 Added: {
2179 Added: "comment": "Introduced in the Fortran 1977 standard.",
2180 Added: "name": "meta.statement.control.entry.fortran",
2181 Added: "begin": "(?i)\\s*\\b(entry)\\b",
2182 Added: "beginCaptures": {
2183 Added: "1": {
2184 Added: "name": "keyword.control.entry.fortran"
2185 Added: }
2186 Added: },
2187 Added: "end": "(?=[;!\\n])",
2188 Added: "patterns": [
2189 Added: {
2190 Added: "begin": "(?i)\\s*\\b([a-z]\\w*)\\b",
2191 Added: "beginCaptures": {
2192 Added: "1": {
2193 Added: "name": "entity.name.function.entry.fortran"
2194 Added: }
2195 Added: },
2196 Added: "end": "(?=[;!\\n])",
2197 Added: "patterns": [
2198 Added: {
2199 Added: "include": "#dummy-variable-list"
2200 Added: },
2201 Added: {
2202 Added: "include": "#result-statement"
2203 Added: },
2204 Added: {
2205 Added: "include": "#language-binding-attribute"
2206 Added: }
2207 Added: ]
2208 Added: }
2209 Added: ]
2210 Added: }
2211 Added: ]
2212 Added: },
2213 Added: "error-stop-statement": {
2214 Added: "comment": "Introduced in the Fortran 2008 standard.",
2215 Added: "name": "meta.statement.control.errorstop.fortran",
2216 Added: "begin": "(?i)\\s*\\b(error\\s+stop)\\b",
2217 Added: "beginCaptures": {
2218 Added: "1": {
2219 Added: "name": "keyword.control.errorstop.fortran"
2220 Added: }
2221 Added: },
2222 Added: "end": "(?=[;!\\n])",
2223 Added: "patterns": [
2224 Added: {
2225 Added: "include": "#constants"
2226 Added: },
2227 Added: {
2228 Added: "include": "#string-operators"
2229 Added: },
2230 Added: {
2231 Added: "include": "#variable"
2232 Added: },
2233 Added: {
2234 Added: "include": "#invalid-character"
2235 Added: }
2236 Added: ]
2237 Added: },
2238 Added: "exit-statement": {
2239 Added: "comment": "Introduced in the Fortran 1990 standard.",
2240 Added: "name": "meta.statement.control.exit.fortran",
2241 Added: "begin": "(?i)\\s*\\b(exit)\\b",
2242 Added: "beginCaptures": {
2243 Added: "1": {
2244 Added: "name": "keyword.control.exit.fortran"
2245 Added: }
2246 Added: },
2247 Added: "end": "(?=[;!\\n])",
2248 Added: "patterns": []
2249 Added: },
2250 Added: "goto-statement": {
2251 Added: "comment": "Introduced in the Fortran 1977 standard.",
2252 Added: "name": "meta.statement.control.goto.fortran",
2253 Added: "begin": "(?i)\\s*\\b(go\\s*to)\\b",
2254 Added: "beginCaptures": {
2255 Added: "1": {
2256 Added: "name": "keyword.control.goto.fortran"
2257 Added: }
2258 Added: },
2259 Added: "end": "(?=[;!\\n])",
2260 Added: "patterns": [
2261 Added: {
2262 Added: "include": "$base"
2263 Added: }
2264 Added: ]
2265 Added: },
2266 Added: "pause-statement": {
2267 Added: "comment": "Introduced in the Fortran 1977 standard.",
2268 Added: "name": "meta.statement.control.pause.fortran",
2269 Added: "begin": "(?i)\\s*\\b(pause)\\b",
2270 Added: "beginCaptures": {
2271 Added: "1": {
2272 Added: "name": "keyword.control.pause.fortran"
2273 Added: }
2274 Added: },
2275 Added: "end": "(?=[;!\\n])",
2276 Added: "patterns": [
2277 Added: {
2278 Added: "include": "#constants"
2279 Added: },
2280 Added: {
2281 Added: "include": "#invalid-character"
2282 Added: }
2283 Added: ]
2284 Added: },
2285 Added: "result-statement": {
2286 Added: "comment": "Introduced in the Fortran 1990 standard.",
2287 Added: "begin": "(?i)\\s*\\b(result)\\s*(\\()",
2288 Added: "beginCaptures": {
2289 Added: "1": {
2290 Added: "name": "keyword.control.result.fortran"
2291 Added: },
2292 Added: "2": {
2293 Added: "name": "punctuation.parentheses.left.fortran"
2294 Added: }
2295 Added: },
2296 Added: "end": "(\\))",
2297 Added: "endCaptures": {
2298 Added: "1": {
2299 Added: "name": "punctuation.parentheses.right.fortran"
2300 Added: }
2301 Added: },
2302 Added: "patterns": [
2303 Added: {
2304 Added: "include": "#dummy-variable"
2305 Added: }
2306 Added: ]
2307 Added: },
2308 Added: "return-statement": {
2309 Added: "comment": "Introduced in the Fortran 1977 standard.",
2310 Added: "name": "meta.statement.control.return.fortran",
2311 Added: "begin": "(?i)\\s*\\b(return)\\b",
2312 Added: "beginCaptures": {
2313 Added: "1": {
2314 Added: "name": "keyword.control.return.fortran"
2315 Added: }
2316 Added: },
2317 Added: "end": "(?=[;!\\n])",
2318 Added: "patterns": [
2319 Added: {
2320 Added: "include": "#invalid-character"
2321 Added: }
2322 Added: ]
2323 Added: },
2324 Added: "stop-statement": {
2325 Added: "comment": "Introduced in the Fortran 1977 standard.",
2326 Added: "name": "meta.statement.control.stop.fortran",
2327 Added: "begin": "(?i)\\s*\\b(stop)\\b(?:\\s*\\b([a-z]\\w*)\\b)?",
2328 Added: "beginCaptures": {
2329 Added: "1": {
2330 Added: "name": "keyword.control.stop.fortran"
2331 Added: },
2332 Added: "2": {
2333 Added: "name": "meta.label.stop.stop"
2334 Added: }
2335 Added: },
2336 Added: "end": "(?=[;!\\n])",
2337 Added: "patterns": [
2338 Added: {
2339 Added: "include": "#constants"
2340 Added: },
2341 Added: {
2342 Added: "include": "#string-operators"
2343 Added: },
2344 Added: {
2345 Added: "include": "#invalid-character"
2346 Added: }
2347 Added: ]
2348 Added: },
2349 Added: "derived-type-definition": {
2350 Added: "name": "meta.derived-type.definition.fortran",
2351 Added: "begin": "(?i)\\b(type)\\b(?!\\s*(\\(|is\\b|\\=))",
2352 Added: "beginCaptures": {
2353 Added: "1": {
2354 Added: "name": "keyword.control.type.fortran"
2355 Added: }
2356 Added: },
2357 Added: "end": "(?=[;!\\n])",
2358 Added: "patterns": [
2359 Added: {
2360 Added: "comment": "Attribute list.",
2361 Added: "contentName": "meta.attribute-list.derived-type.fortran",
2362 Added: "begin": "\\G(?=\\s*(,|::))",
2363 Added: "end": "(::)|(?=[;!\\n])",
2364 Added: "endCaptures": {
2365 Added: "1": {
2366 Added: "name": "keyword.operator.double-colon.fortran"
2367 Added: }
2368 Added: },
2369 Added: "patterns": [
2370 Added: {
2371 Added: "begin": "(,)",
2372 Added: "beginCaptures": {
2373 Added: "1": {
2374 Added: "name": "punctuation.comma.fortran"
2375 Added: }
2376 Added: },
2377 Added: "end": "(?=::|[,;!\\n])",
2378 Added: "patterns": [
2379 Added: {
2380 Added: "include": "#access-attribute"
2381 Added: },
2382 Added: {
2383 Added: "include": "#abstract-attribute"
2384 Added: },
2385 Added: {
2386 Added: "include": "#language-binding-attribute"
2387 Added: },
2388 Added: {
2389 Added: "include": "#extends-attribute"
2390 Added: },
2391 Added: {
2392 Added: "include": "#invalid-word"
2393 Added: }
2394 Added: ]
2395 Added: }
2396 Added: ]
2397 Added: },
2398 Added: {
2399 Added: "begin": "(?i)\\s*\\b([a-z]\\w*)\\b",
2400 Added: "beginCaptures": {
2401 Added: "1": {
2402 Added: "name": "entity.name.type.fortran"
2403 Added: }
2404 Added: },
2405 Added: "end": "(?i)(?:^|(?<=;))\\s*(end\\s*type)(?:\\s+(?:(\\1)|(\\w+)))?\\b",
2406 Added: "endCaptures": {
2407 Added: "1": {
2408 Added: "name": "keyword.control.endtype.fortran"
2409 Added: },
2410 Added: "2": {
2411 Added: "name": "entity.name.type.fortran"
2412 Added: },
2413 Added: "3": {
2414 Added: "name": "invalid.error.derived-type.fortran"
2415 Added: }
2416 Added: },
2417 Added: "patterns": [
2418 Added: {
2419 Added: "include": "#dummy-variable-list"
2420 Added: },
2421 Added: {
2422 Added: "include": "#comments"
2423 Added: },
2424 Added: {
2425 Added: "comment": "Derived type specification block.",
2426 Added: "name": "meta.block.specification.derived-type.fortran",
2427 Added: "begin": "(?i)^(?!\\s*\\b(?:contains|end\\s*type)\\b)",
2428 Added: "end": "(?i)^(?=\\s*\\b(?:contains|end\\s*type)\\b)",
2429 Added: "patterns": [
2430 Added: {
2431 Added: "include": "#comments"
2432 Added: },
2433 Added: {
2434 Added: "include": "#derived-type-component-attribute-specification"
2435 Added: },
2436 Added: {
2437 Added: "include": "#derived-type-component-parameter-specification"
2438 Added: },
2439 Added: {
2440 Added: "include": "#derived-type-component-procedure-specification"
2441 Added: },
2442 Added: {
2443 Added: "include": "#derived-type-component-type-specification"
2444 Added: }
2445 Added: ]
2446 Added: },
2447 Added: {
2448 Added: "comment": "Derived type contains block.",
2449 Added: "name": "meta.block.contains.fortran",
2450 Added: "begin": "(?i)\\b(contains)\\b",
2451 Added: "beginCaptures": {
2452 Added: "1": {
2453 Added: "name": "keyword.control.contains.fortran"
2454 Added: }
2455 Added: },
2456 Added: "end": "(?i)(?=\\s*end\\s*type\\b)",
2457 Added: "patterns": [
2458 Added: {
2459 Added: "include": "#comments"
2460 Added: },
2461 Added: {
2462 Added: "include": "#derived-type-contains-attribute-specification"
2463 Added: },
2464 Added: {
2465 Added: "include": "#derived-type-contains-final-procedure-specification"
2466 Added: },
2467 Added: {
2468 Added: "include": "#derived-type-contains-generic-procedure-specification"
2469 Added: },
2470 Added: {
2471 Added: "include": "#derived-type-contains-procedure-specification"
2472 Added: }
2473 Added: ]
2474 Added: }
2475 Added: ]
2476 Added: }
2477 Added: ]
2478 Added: },
2479 Added: "derived-type-component-attribute-specification": {
2480 Added: "comment": "Introduced in the Fortran 1995 standard.",
2481 Added: "name": "meta.statement.attribute-specification.fortran",
2482 Added: "begin": "(?i)(?=\\s*\\b(?:private|sequence)\\b)",
2483 Added: "end": "(?=[;!\\n])",
2484 Added: "patterns": [
2485 Added: {
2486 Added: "include": "#access-attribute"
2487 Added: },
2488 Added: {
2489 Added: "include": "#sequence-attribute"
2490 Added: },
2491 Added: {
2492 Added: "include": "#invalid-character"
2493 Added: }
2494 Added: ]
2495 Added: },
2496 Added: "derived-type-component-parameter-specification": {
2497 Added: "comment": "Derived type parameter.",
2498 Added: "match": "(?ix)\\b(integer)\\s*(,)\\s*(kind|len)\\s*(?:(::)\\s*([a-z]\\w*)?)?\\s*(?=[;!\\n])",
2499 Added: "captures": {
2500 Added: "1": {
2501 Added: "name": "storage.type.integer.fortran"
2502 Added: },
2503 Added: "2": {
2504 Added: "name": "punctuation.comma.fortran"
2505 Added: },
2506 Added: "3": {
2507 Added: "name": "keyword.other.attribute.derived-type.parameter.fortran"
2508 Added: },
2509 Added: "4": {
2510 Added: "name": "keyword.operator.double-colon.fortran"
2511 Added: },
2512 Added: "5": {
2513 Added: "name": "entity.name.derived-type.parameter.fortran"
2514 Added: }
2515 Added: }
2516 Added: },
2517 Added: "derived-type-component-procedure-specification": {
2518 Added: "comment": "Introduced in the Fortran 2003 standard.",
2519 Added: "name": "meta.specification.procedure.fortran",
2520 Added: "begin": "(?i)(?=\\b(?:procedure)\\b)",
2521 Added: "end": "(?=[;!\\n])",
2522 Added: "patterns": [
2523 Added: {
2524 Added: "include": "#procedure-type"
2525 Added: },
2526 Added: {
2527 Added: "comment": "Attribute list.",
2528 Added: "contentName": "meta.attribute-list.derived-type-component-procedure.fortran",
2529 Added: "begin": "(?=\\s*(,|::|\\())",
2530 Added: "end": "(::)|(?=[;!\\n])",
2531 Added: "endCaptures": {
2532 Added: "1": {
2533 Added: "name": "keyword.operator.double-colon.fortran"
2534 Added: }
2535 Added: },
2536 Added: "patterns": [
2537 Added: {
2538 Added: "begin": "(,)",
2539 Added: "beginCaptures": {
2540 Added: "1": {
2541 Added: "name": "punctuation.comma.fortran"
2542 Added: }
2543 Added: },
2544 Added: "end": "(?=::|[,;!\\n])",
2545 Added: "patterns": [
2546 Added: {
2547 Added: "include": "#access-attribute"
2548 Added: },
2549 Added: {
2550 Added: "include": "#pass-attribute"
2551 Added: },
2552 Added: {
2553 Added: "include": "#nopass-attribute"
2554 Added: },
2555 Added: {
2556 Added: "include": "#invalid-word"
2557 Added: },
2558 Added: {
2559 Added: "include": "#pointer-attribute"
2560 Added: }
2561 Added: ]
2562 Added: }
2563 Added: ]
2564 Added: },
2565 Added: {
2566 Added: "include": "#procedure-name-list"
2567 Added: }
2568 Added: ]
2569 Added: },
2570 Added: "derived-type-component-type-specification": {
2571 Added: "comment": "Introduced in the Fortran 1995 standard.",
2572 Added: "name": "meta.specification.derived-type.fortran",
2573 Added: "begin": "(?ix)(?=\\b(?:character|class|complex|double\\s*precision|double\\s*complex|integer|logical|real|type)\\b(?![^:'\";!\\n]*\\bfunction\\b))",
2574 Added: "end": "(?=[;!\\n])",
2575 Added: "patterns": [
2576 Added: {
2577 Added: "include": "#types"
2578 Added: },
2579 Added: {
2580 Added: "include": "#line-continuation-operator"
2581 Added: },
2582 Added: {
2583 Added: "comment": "Attribute list.",
2584 Added: "contentName": "meta.attribute-list.derived-type-component-type.fortran",
2585 Added: "begin": "(?=\\s*(,|::))",
2586 Added: "end": "(::)|(?=[;!\\n])",
2587 Added: "endCaptures": {
2588 Added: "1": {
2589 Added: "name": "keyword.operator.double-colon.fortran"
2590 Added: }
2591 Added: },
2592 Added: "patterns": [
2593 Added: {
2594 Added: "begin": "(,)",
2595 Added: "beginCaptures": {
2596 Added: "1": {
2597 Added: "name": "punctuation.comma.fortran"
2598 Added: }
2599 Added: },
2600 Added: "end": "(?=::|[,;!\\n])",
2601 Added: "patterns": [
2602 Added: {
2603 Added: "include": "#access-attribute"
2604 Added: },
2605 Added: {
2606 Added: "include": "#allocatable-attribute"
2607 Added: },
2608 Added: {
2609 Added: "include": "#codimension-attribute"
2610 Added: },
2611 Added: {
2612 Added: "include": "#contiguous-attribute"
2613 Added: },
2614 Added: {
2615 Added: "include": "#dimension-attribute"
2616 Added: },
2617 Added: {
2618 Added: "include": "#pointer-attribute"
2619 Added: },
2620 Added: {
2621 Added: "include": "#invalid-word"
2622 Added: }
2623 Added: ]
2624 Added: }
2625 Added: ]
2626 Added: },
2627 Added: {
2628 Added: "include": "#name-list"
2629 Added: }
2630 Added: ]
2631 Added: },
2632 Added: "derived-type-contains-attribute-specification": {
2633 Added: "comment": "Introduced in the Fortran 1995 standard.",
2634 Added: "name": "meta.statement.attribute-specification.fortran",
2635 Added: "begin": "(?i)(?=\\b(?:private)\\b)",
2636 Added: "end": "(?=[;!\\n])",
2637 Added: "patterns": [
2638 Added: {
2639 Added: "include": "#access-attribute"
2640 Added: },
2641 Added: {
2642 Added: "include": "#invalid-character"
2643 Added: }
2644 Added: ]
2645 Added: },
2646 Added: "derived-type-contains-final-procedure-specification": {
2647 Added: "comment": "Introduced in the Fortran 2003 standard.",
2648 Added: "name": "meta.specification.procedure.final.fortran",
2649 Added: "begin": "(?i)\\b(final)\\b",
2650 Added: "beginCaptures": {
2651 Added: "1": {
2652 Added: "name": "storage.type.final-procedure.fortran"
2653 Added: }
2654 Added: },
2655 Added: "end": "(?=[;!\\n])",
2656 Added: "patterns": [
2657 Added: {
2658 Added: "comment": "Attribute list.",
2659 Added: "name": "meta.attribute-list.derived-type-contains-final-procedure.fortran",
2660 Added: "begin": "(?=\\s*(::))",
2661 Added: "end": "(::)|(?=[;!\\n])",
2662 Added: "endCaptures": {
2663 Added: "1": {
2664 Added: "name": "keyword.operator.double-colon.fortran"
2665 Added: }
2666 Added: },
2667 Added: "patterns": [
2668 Added: {
2669 Added: "include": "#invalid-word"
2670 Added: }
2671 Added: ]
2672 Added: },
2673 Added: {
2674 Added: "include": "#procedure-name"
2675 Added: }
2676 Added: ]
2677 Added: },
2678 Added: "derived-type-contains-generic-procedure-specification": {
2679 Added: "comment": "Introduced in the Fortran 2003 standard.",
2680 Added: "name": "meta.specification.procedure.generic.fortran",
2681 Added: "begin": "(?i)\\b(generic)\\b",
2682 Added: "beginCaptures": {
2683 Added: "1": {
2684 Added: "name": "storage.type.procedure.generic.fortran"
2685 Added: }
2686 Added: },
2687 Added: "end": "(?=[;!\\n])",
2688 Added: "patterns": [
2689 Added: {
2690 Added: "comment": "Attribute list.",
2691 Added: "contentName": "meta.attribute-list.derived-type-contains-generic-procedure.fortran",
2692 Added: "begin": "(?=\\s*(,|::|\\())",
2693 Added: "end": "(::)|(?=[;!\\n])",
2694 Added: "endCaptures": {
2695 Added: "1": {
2696 Added: "name": "keyword.operator.double-colon.fortran"
2697 Added: }
2698 Added: },
2699 Added: "patterns": [
2700 Added: {
2701 Added: "begin": "(,)|^|(?<=&)",
2702 Added: "beginCaptures": {
2703 Added: "1": {
2704 Added: "name": "punctuation.comma.fortran"
2705 Added: }
2706 Added: },
2707 Added: "end": "(?=::|[,&;!\\n])",
2708 Added: "patterns": [
2709 Added: {
2710 Added: "include": "#access-attribute"
2711 Added: },
2712 Added: {
2713 Added: "include": "#invalid-word"
2714 Added: }
2715 Added: ]
2716 Added: }
2717 Added: ]
2718 Added: },
2719 Added: {
2720 Added: "comment": "Name list.",
2721 Added: "contentName": "meta.name-list.fortran",
2722 Added: "begin": "(?=\\s*[a-z])",
2723 Added: "end": "(?=[;!\\n])",
2724 Added: "patterns": [
2725 Added: {
2726 Added: "include": "#IO-keywords"
2727 Added: },
2728 Added: {
2729 Added: "include": "#assignment-keyword"
2730 Added: },
2731 Added: {
2732 Added: "include": "#operator-keyword"
2733 Added: },
2734 Added: {
2735 Added: "include": "#procedure-name"
2736 Added: },
2737 Added: {
2738 Added: "include": "#pointer-operators"
2739 Added: }
2740 Added: ]
2741 Added: }
2742 Added: ]
2743 Added: },
2744 Added: "derived-type-contains-procedure-specification": {
2745 Added: "comment": "Introduced in the Fortran 2003 standard.",
2746 Added: "name": "meta.specification.procedure.fortran",
2747 Added: "begin": "(?i)(?=\\b(?:procedure)\\b)",
2748 Added: "end": "(?=[;!\\n])",
2749 Added: "patterns": [
2750 Added: {
2751 Added: "include": "#procedure-type"
2752 Added: },
2753 Added: {
2754 Added: "comment": "Attribute list.",
2755 Added: "contentName": "meta.attribute-list.derived-type-contains-procedure.fortran",
2756 Added: "begin": "(?=\\s*(,|::|\\())",
2757 Added: "end": "(::)|(?=[;!\\n])",
2758 Added: "endCaptures": {
2759 Added: "1": {
2760 Added: "name": "keyword.operator.double-colon.fortran"
2761 Added: }
2762 Added: },
2763 Added: "patterns": [
2764 Added: {
2765 Added: "name": "meta.something.fortran",
2766 Added: "begin": "(,)|^|(?<=&)",
2767 Added: "beginCaptures": {
2768 Added: "1": {
2769 Added: "name": "punctuation.comma.fortran"
2770 Added: }
2771 Added: },
2772 Added: "end": "(?=::|[,&;!\\n])",
2773 Added: "patterns": [
2774 Added: {
2775 Added: "include": "#access-attribute"
2776 Added: },
2777 Added: {
2778 Added: "include": "#deferred-attribute"
2779 Added: },
2780 Added: {
2781 Added: "include": "#non-overridable-attribute"
2782 Added: },
2783 Added: {
2784 Added: "include": "#nopass-attribute"
2785 Added: },
2786 Added: {
2787 Added: "include": "#pass-attribute"
2788 Added: },
2789 Added: {
2790 Added: "include": "#invalid-word"
2791 Added: }
2792 Added: ]
2793 Added: }
2794 Added: ]
2795 Added: },
2796 Added: {
2797 Added: "include": "#procedure-name-list"
2798 Added: }
2799 Added: ]
2800 Added: },
2801 Added: "enum-block-construct": {
2802 Added: "comment": "Introduced in the Fortran 2003 standard.",
2803 Added: "name": "meta.enum.fortran",
2804 Added: "begin": "(?i)\\b(enum)\\b",
2805 Added: "beginCaptures": {
2806 Added: "1": {
2807 Added: "name": "keyword.control.enum.fortran"
2808 Added: }
2809 Added: },
2810 Added: "end": "(?i)\\b(end\\s*enum)\\b",
2811 Added: "endCaptures": {
2812 Added: "1": {
2813 Added: "name": "keyword.control.end-enum.fortran"
2814 Added: }
2815 Added: },
2816 Added: "patterns": [
2817 Added: {
2818 Added: "begin": "\\G\\s*(,)",
2819 Added: "beginCaptures": {
2820 Added: "1": {
2821 Added: "name": "punctuation.comma.fortran"
2822 Added: }
2823 Added: },
2824 Added: "end": "(?=[;!\\n])",
2825 Added: "patterns": [
2826 Added: {
2827 Added: "include": "#language-binding-attribute"
2828 Added: },
2829 Added: {
2830 Added: "include": "#invalid-word"
2831 Added: }
2832 Added: ]
2833 Added: },
2834 Added: {
2835 Added: "name": "meta.block.specification.enum.fortran",
2836 Added: "begin": "(?i)(?!\\s*\\b(end\\s*enum)\\b)",
2837 Added: "end": "(?i)(?=\\b(end\\s*enum)\\b)",
2838 Added: "patterns": [
2839 Added: {
2840 Added: "include": "#comments"
2841 Added: },
2842 Added: {
2843 Added: "name": "meta.statement.enumerator-specification.fortran",
2844 Added: "begin": "(?ix)\\b(enumerator)\\b",
2845 Added: "beginCaptures": {
2846 Added: "1": {
2847 Added: "name": "keyword.other.enumerator.fortran"
2848 Added: }
2849 Added: },
2850 Added: "end": "(?=[;!\\n])",
2851 Added: "patterns": [
2852 Added: {
2853 Added: "comment": "Attribute list.",
2854 Added: "contentName": "meta.attribute-list.enum.fortran",
2855 Added: "begin": "(?=\\s*(,|::))",
2856 Added: "end": "(::)|(?=[;!\\n])",
2857 Added: "endCaptures": {
2858 Added: "1": {
2859 Added: "name": "keyword.operator.double-colon.fortran"
2860 Added: }
2861 Added: },
2862 Added: "patterns": [
2863 Added: {
2864 Added: "include": "#invalid-word"
2865 Added: }
2866 Added: ]
2867 Added: },
2868 Added: {
2869 Added: "include": "#comments"
2870 Added: },
2871 Added: {
2872 Added: "include": "#name-list"
2873 Added: }
2874 Added: ]
2875 Added: }
2876 Added: ]
2877 Added: }
2878 Added: ]
2879 Added: },
2880 Added: "image-control-statement": {
2881 Added: "patterns": [
2882 Added: {
2883 Added: "include": "#sync-all-statement"
2884 Added: },
2885 Added: {
2886 Added: "include": "#sync-statement"
2887 Added: },
2888 Added: {
2889 Added: "include": "#event-statement"
2890 Added: },
2891 Added: {
2892 Added: "include": "#form-team-statement"
2893 Added: },
2894 Added: {
2895 Added: "include": "#fail-image-statement"
2896 Added: }
2897 Added: ]
2898 Added: },
2899 Added: "sync-all-statement": {
2900 Added: "comment": "Introduced in the Fortran 2018 standard.",
2901 Added: "name": "meta.statement.sync-all-memory.fortran",
2902 Added: "begin": "(?i)\\b(sync all|sync memory)(\\s*(?=\\())?",
2903 Added: "beginCaptures": {
2904 Added: "1": {
2905 Added: "name": "keyword.control.sync-all-memory.fortran"
2906 Added: },
2907 Added: "2": {
2908 Added: "name": "punctuation.parentheses.left.fortran"
2909 Added: }
2910 Added: },
2911 Added: "end": "(?<!\\G)",
2912 Added: "endCaptures": {
2913 Added: "1": {
2914 Added: "name": "punctuation.parentheses.right.fortran"
2915 Added: }
2916 Added: },
2917 Added: "patterns": [
2918 Added: {
2919 Added: "include": "#parentheses-dummy-variables"
2920 Added: }
2921 Added: ]
2922 Added: },
2923 Added: "sync-statement": {
2924 Added: "comment": "Introduced in the Fortran 2018 standard.",
2925 Added: "name": "meta.statement.sync-images-team.fortran",
2926 Added: "begin": "(?i)\\b(sync images|sync team)\\s*(?=\\()",
2927 Added: "beginCaptures": {
2928 Added: "1": {
2929 Added: "name": "keyword.control.sync-images-team.fortran"
2930 Added: },
2931 Added: "2": {
2932 Added: "name": "punctuation.parentheses.left.fortran"
2933 Added: }
2934 Added: },
2935 Added: "end": "(?<!\\G)",
2936 Added: "endCaptures": {
2937 Added: "1": {
2938 Added: "name": "punctuation.parentheses.right.fortran"
2939 Added: }
2940 Added: },
2941 Added: "patterns": [
2942 Added: {
2943 Added: "include": "#parentheses-dummy-variables"
2944 Added: }
2945 Added: ]
2946 Added: },
2947 Added: "event-statement": {
2948 Added: "comment": "Introduced in the Fortran 2018 standard.",
2949 Added: "name": "meta.statement.event.fortran",
2950 Added: "begin": "(?i)\\b(event post|event wait)\\s*(?=\\()",
2951 Added: "beginCaptures": {
2952 Added: "1": {
2953 Added: "name": "keyword.control.event.fortran"
2954 Added: },
2955 Added: "2": {
2956 Added: "name": "punctuation.parentheses.left.fortran"
2957 Added: }
2958 Added: },
2959 Added: "end": "(?<!\\G)",
2960 Added: "endCaptures": {
2961 Added: "1": {
2962 Added: "name": "punctuation.parentheses.right.fortran"
2963 Added: }
2964 Added: },
2965 Added: "patterns": [
2966 Added: {
2967 Added: "include": "#parentheses-dummy-variables"
2968 Added: }
2969 Added: ]
2970 Added: },
2971 Added: "form-team-statement": {
2972 Added: "comment": "Introduced in the Fortran 2018 standard.",
2973 Added: "name": "meta.statement.form-team.fortran",
2974 Added: "begin": "(?i)\\b(form team)\\s*(?=\\()",
2975 Added: "beginCaptures": {
2976 Added: "1": {
2977 Added: "name": "keyword.control.form-team.fortran"
2978 Added: },
2979 Added: "2": {
2980 Added: "name": "punctuation.parentheses.left.fortran"
2981 Added: }
2982 Added: },
2983 Added: "end": "(?<!\\G)",
2984 Added: "endCaptures": {
2985 Added: "1": {
2986 Added: "name": "punctuation.parentheses.right.fortran"
2987 Added: }
2988 Added: },
2989 Added: "patterns": [
2990 Added: {
2991 Added: "include": "#parentheses-dummy-variables"
2992 Added: }
2993 Added: ]
2994 Added: },
2995 Added: "fail-image-statement": {
2996 Added: "comment": "Introduced in the Fortran 2018 standard.",
2997 Added: "name": "meta.statement.fail-image.fortran",
2998 Added: "match": "\\b(fail image)\\b",
2999 Added: "captures": {
3000 Added: "1": {
3001 Added: "name": "keyword.control.fail-image.fortran"
3002 Added: }
3003 Added: }
3004 Added: },
3005 Added: "execution-statements": {
3006 Added: "patterns": [
3007 Added: {
3008 Added: "include": "#allocate-statement"
3009 Added: },
3010 Added: {
3011 Added: "include": "#deallocate-statement"
3012 Added: },
3013 Added: {
3014 Added: "include": "#IO-statements"
3015 Added: },
3016 Added: {
3017 Added: "include": "#nullify-statement"
3018 Added: }
3019 Added: ]
3020 Added: },
3021 Added: "allocate-statement": {
3022 Added: "comment": "Introduced in the Fortran 1990 standard.",
3023 Added: "name": "meta.statement.allocate.fortran",
3024 Added: "begin": "(?i)\\b(allocate)\\s*(?=\\()",
3025 Added: "beginCaptures": {
3026 Added: "1": {
3027 Added: "name": "keyword.control.allocate.fortran"
3028 Added: },
3029 Added: "2": {
3030 Added: "name": "punctuation.parentheses.left.fortran"
3031 Added: }
3032 Added: },
3033 Added: "end": "(?<!\\G)",
3034 Added: "endCaptures": {
3035 Added: "1": {
3036 Added: "name": "punctuation.parentheses.right.fortran"
3037 Added: }
3038 Added: },
3039 Added: "patterns": [
3040 Added: {
3041 Added: "include": "#parentheses-dummy-variables"
3042 Added: }
3043 Added: ]
3044 Added: },
3045 Added: "deallocate-statement": {
3046 Added: "comment": "Introduced in the Fortran 1990 standard.",
3047 Added: "name": "meta.statement.deallocate.fortran",
3048 Added: "begin": "(?i)\\b(deallocate)\\s*(?=\\()",
3049 Added: "beginCaptures": {
3050 Added: "1": {
3051 Added: "name": "keyword.control.deallocate.fortran"
3052 Added: },
3053 Added: "2": {
3054 Added: "name": "punctuation.parentheses.left.fortran"
3055 Added: }
3056 Added: },
3057 Added: "end": "(?<!\\G)",
3058 Added: "endCaptures": {
3059 Added: "1": {
3060 Added: "name": "punctuation.parentheses.right.fortran"
3061 Added: }
3062 Added: },
3063 Added: "patterns": [
3064 Added: {
3065 Added: "include": "#parentheses-dummy-variables"
3066 Added: }
3067 Added: ]
3068 Added: },
3069 Added: "IO-statements": {
3070 Added: "patterns": [
3071 Added: {
3072 Added: "comment": "Format statement Introduced in the Fortran 1977 standard.",
3073 Added: "name": "meta.statement.IO.fortran",
3074 Added: "begin": "(?ix)\\b(format)(?=\\s*(?:\\(|&|!))",
3075 Added: "beginCaptures": {
3076 Added: "1": {
3077 Added: "name": "keyword.control.format.fortran"
3078 Added: }
3079 Added: },
3080 Added: "end": "(?=[;!\\n])",
3081 Added: "patterns": [
3082 Added: {
3083 Added: "include": "#comments"
3084 Added: },
3085 Added: {
3086 Added: "include": "#line-continuation-operator"
3087 Added: },
3088 Added: {
3089 Added: "include": "#format-parentheses"
3090 Added: }
3091 Added: ]
3092 Added: },
3093 Added: {
3094 Added: "comment": "Introduced in the Fortran 1977 standard.",
3095 Added: "name": "meta.statement.IO.fortran",
3096 Added: "begin": "(?ix)\\b(?:(backspace)|(close)|(endfile)|(inquire)|(open)|(read)|(rewind)|(write))\\s*(?=\\()",
3097 Added: "beginCaptures": {
3098 Added: "1": {
3099 Added: "name": "keyword.control.backspace.fortran"
3100 Added: },
3101 Added: "2": {
3102 Added: "name": "keyword.control.close.fortran"
3103 Added: },
3104 Added: "3": {
3105 Added: "name": "keyword.control.endfile.fortran"
3106 Added: },
3107 Added: "4": {
3108 Added: "name": "keyword.control.inquire.fortran"
3109 Added: },
3110 Added: "5": {
3111 Added: "name": "keyword.control.open.fortran"
3112 Added: },
3113 Added: "6": {
3114 Added: "name": "keyword.control.read.fortran"
3115 Added: },
3116 Added: "7": {
3117 Added: "name": "keyword.control.rewind.fortran"
3118 Added: },
3119 Added: "8": {
3120 Added: "name": "keyword.control.write.fortran"
3121 Added: },
3122 Added: "9": {
3123 Added: "name": "punctuation.parentheses.left.fortran"
3124 Added: }
3125 Added: },
3126 Added: "end": "(?=[;!\\n])",
3127 Added: "endCaptures": {
3128 Added: "1": {
3129 Added: "name": "punctuation.parentheses.right.fortran"
3130 Added: }
3131 Added: },
3132 Added: "patterns": [
3133 Added: {
3134 Added: "include": "#parentheses-dummy-variables"
3135 Added: },
3136 Added: {
3137 Added: "include": "#IO-item-list"
3138 Added: }
3139 Added: ]
3140 Added: },
3141 Added: {
3142 Added: "comment": "Introduced in the Fortran 1977 standard.",
3143 Added: "match": "(?i)\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\b",
3144 Added: "captures": {
3145 Added: "1": {
3146 Added: "name": "keyword.control.backspace.fortran"
3147 Added: },
3148 Added: "2": {
3149 Added: "name": "keyword.control.endfile.fortran"
3150 Added: },
3151 Added: "3": {
3152 Added: "name": "keyword.control.format.fortran"
3153 Added: },
3154 Added: "4": {
3155 Added: "name": "keyword.control.print.fortran"
3156 Added: },
3157 Added: "5": {
3158 Added: "name": "keyword.control.read.fortran"
3159 Added: },
3160 Added: "6": {
3161 Added: "name": "keyword.control.rewind.fortran"
3162 Added: }
3163 Added: }
3164 Added: },
3165 Added: {
3166 Added: "comment": "Introduced in the Fortran 2003 standard.",
3167 Added: "begin": "(?i)\\b(?:(flush)|(wait))\\s*(?=\\()",
3168 Added: "beginCaptures": {
3169 Added: "1": {
3170 Added: "name": "keyword.control.flush.fortran"
3171 Added: },
3172 Added: "2": {
3173 Added: "name": "keyword.control.wait.fortran"
3174 Added: },
3175 Added: "3": {
3176 Added: "name": "punctuation.parentheses.left.fortran"
3177 Added: }
3178 Added: },
3179 Added: "end": "(?<!\\G)",
3180 Added: "endCaptures": {
3181 Added: "1": {
3182 Added: "name": "punctuation.parentheses.right.fortran"
3183 Added: }
3184 Added: },
3185 Added: "patterns": [
3186 Added: {
3187 Added: "include": "#parentheses-dummy-variables"
3188 Added: }
3189 Added: ]
3190 Added: },
3191 Added: {
3192 Added: "comment": "Introduced in the Fortran 2003 standard.",
3193 Added: "match": "(?i)\\b(flush)\\b",
3194 Added: "captures": {
3195 Added: "1": {
3196 Added: "name": "keyword.control.flush.fortran"
3197 Added: }
3198 Added: }
3199 Added: }
3200 Added: ]
3201 Added: },
3202 Added: "nullify-statement": {
3203 Added: "comment": "Introduced in the Fortran 1990 standard.",
3204 Added: "name": "meta.statement.nullify.fortran",
3205 Added: "begin": "(?i)\\b(nullify)\\s*(?=\\()",
3206 Added: "beginCaptures": {
3207 Added: "1": {
3208 Added: "name": "keyword.control.nullify.fortran"
3209 Added: },
3210 Added: "2": {
3211 Added: "name": "punctuation.parentheses.left.fortran"
3212 Added: }
3213 Added: },
3214 Added: "end": "(?<!\\G)",
3215 Added: "endCaptures": {
3216 Added: "1": {
3217 Added: "name": "punctuation.parentheses.right.fortran"
3218 Added: }
3219 Added: },
3220 Added: "patterns": [
3221 Added: {
3222 Added: "include": "#parentheses-dummy-variables"
3223 Added: }
3224 Added: ]
3225 Added: },
3226 Added: "include-statement": {
3227 Added: "comment": "Introduced in the Fortran 1990 standard.",
3228 Added: "name": "meta.statement.include.fortran",
3229 Added: "begin": "(?i)\\b(include)\\b",
3230 Added: "beginCaptures": {
3231 Added: "1": {
3232 Added: "name": "keyword.control.include.fortran"
3233 Added: }
3234 Added: },
3235 Added: "end": "(?=[;!\\n])",
3236 Added: "patterns": [
3237 Added: {
3238 Added: "include": "#string-constant"
3239 Added: },
3240 Added: {
3241 Added: "include": "#invalid-character"
3242 Added: }
3243 Added: ]
3244 Added: },
3245 Added: "import-statement": {
3246 Added: "comment": "Introduced in the Fortran 1990 standard.",
3247 Added: "name": "meta.statement.include.fortran",
3248 Added: "begin": "(?i)\\b(import)\\b",
3249 Added: "beginCaptures": {
3250 Added: "1": {
3251 Added: "name": "keyword.control.include.fortran"
3252 Added: }
3253 Added: },
3254 Added: "end": "(?=[;!\\n])",
3255 Added: "patterns": [
3256 Added: {
3257 Added: "begin": "(?i)\\G\\s*(?:(::)|(?=[a-z]))",
3258 Added: "beginCaptures": {
3259 Added: "1": {
3260 Added: "name": "keyword.operator.double-colon.fortran"
3261 Added: }
3262 Added: },
3263 Added: "end": "(?=[;!\\n])",
3264 Added: "patterns": [
3265 Added: {
3266 Added: "include": "#name-list"
3267 Added: }
3268 Added: ]
3269 Added: },
3270 Added: {
3271 Added: "begin": "\\G\\s*(,)",
3272 Added: "beginCaptures": {
3273 Added: "1": {
3274 Added: "name": "punctuation.comma.fortran"
3275 Added: }
3276 Added: },
3277 Added: "end": "(?=[;!\\n])",
3278 Added: "patterns": [
3279 Added: {
3280 Added: "match": "(?i)\\G\\s*\\b(all)\\b",
3281 Added: "captures": {
3282 Added: "1": {
3283 Added: "name": "keyword.other.all.fortran"
3284 Added: }
3285 Added: }
3286 Added: },
3287 Added: {
3288 Added: "match": "(?i)\\G\\s*\\b(none)\\b",
3289 Added: "captures": {
3290 Added: "1": {
3291 Added: "name": "keyword.other.none.fortran"
3292 Added: }
3293 Added: }
3294 Added: },
3295 Added: {
3296 Added: "begin": "(?i)\\G\\s*\\b(only)\\s*(:)",
3297 Added: "beginCaptures": {
3298 Added: "1": {
3299 Added: "name": "keyword.other.only.fortran"
3300 Added: },
3301 Added: "2": {
3302 Added: "name": "keyword.other.colon.fortran"
3303 Added: }
3304 Added: },
3305 Added: "end": "(?=[;!\\n])",
3306 Added: "patterns": [
3307 Added: {
3308 Added: "include": "#name-list"
3309 Added: }
3310 Added: ]
3311 Added: },
3312 Added: {
3313 Added: "include": "#invalid-word"
3314 Added: }
3315 Added: ]
3316 Added: }
3317 Added: ]
3318 Added: },
3319 Added: "interface-block-constructs": {
3320 Added: "patterns": [
3321 Added: {
3322 Added: "include": "#abstract-interface-block-construct"
3323 Added: },
3324 Added: {
3325 Added: "include": "#explicit-interface-block-construct"
3326 Added: },
3327 Added: {
3328 Added: "include": "#generic-interface-block-construct"
3329 Added: }
3330 Added: ]
3331 Added: },
3332 Added: "abstract-interface-block-construct": {
3333 Added: "comment": "Introduced in the Fortran 2003 standard.",
3334 Added: "name": "meta.interface.abstract.fortran",
3335 Added: "begin": "(?i)\\b(abstract)\\s+(interface)\\b",
3336 Added: "beginCaptures": {
3337 Added: "1": {
3338 Added: "name": "keyword.other.attribute.fortran.modern"
3339 Added: },
3340 Added: "2": {
3341 Added: "name": "keyword.control.interface.fortran"
3342 Added: }
3343 Added: },
3344 Added: "end": "(?i)\\b(end\\s*interface)\\b",
3345 Added: "endCaptures": {
3346 Added: "1": {
3347 Added: "name": "keyword.control.endinterface.fortran.modern"
3348 Added: }
3349 Added: },
3350 Added: "patterns": [
3351 Added: {
3352 Added: "include": "$base"
3353 Added: }
3354 Added: ]
3355 Added: },
3356 Added: "explicit-interface-block-construct": {
3357 Added: "comment": "Introduced in the Fortran 1990 standard.",
3358 Added: "name": "meta.interface.explicit.fortran",
3359 Added: "begin": "(?i)\\b(interface)\\b(?=\\s*[;!\\n])",
3360 Added: "beginCaptures": {
3361 Added: "1": {
3362 Added: "name": "keyword.control.interface.fortran"
3363 Added: }
3364 Added: },
3365 Added: "end": "(?i)\\b(end\\s*interface)\\b",
3366 Added: "endCaptures": {
3367 Added: "1": {
3368 Added: "name": "keyword.control.endinterface.fortran.modern"
3369 Added: }
3370 Added: },
3371 Added: "patterns": [
3372 Added: {
3373 Added: "include": "$base"
3374 Added: }
3375 Added: ]
3376 Added: },
3377 Added: "generic-interface-block-construct": {
3378 Added: "comment": "Introduced in the Fortran 1990 standard.",
3379 Added: "name": "meta.interface.generic.fortran",
3380 Added: "begin": "(?i)\\b(interface)\\b",
3381 Added: "beginCaptures": {
3382 Added: "1": {
3383 Added: "name": "keyword.control.interface.fortran"
3384 Added: }
3385 Added: },
3386 Added: "end": "(?=[;!\\n])",
3387 Added: "patterns": [
3388 Added: {
3389 Added: "comment": "Assignment generic interface.",
3390 Added: "begin": "(?ix)\\G\\s*\\b(assignment)\\s* (\\()\\s*(?:(\\=)|(\\S.*))\\s*(\\))",
3391 Added: "beginCaptures": {
3392 Added: "1": {
3393 Added: "name": "keyword.other.assignment.fortran"
3394 Added: },
3395 Added: "2": {
3396 Added: "name": "punctuation.parentheses.left.fortran"
3397 Added: },
3398 Added: "3": {
3399 Added: "name": "keyword.operator.assignment.fortran"
3400 Added: },
3401 Added: "4": {
3402 Added: "name": "invalid.error.generic-interface.fortran"
3403 Added: },
3404 Added: "5": {
3405 Added: "name": "punctuation.parentheses.right.fortran"
3406 Added: }
3407 Added: },
3408 Added: "end": "(?ix)\\b(end\\s*interface)\\b (?:\\s*\\b(\\1)\\b\\s*(\\()\\s*(?:(\\3)|(\\S.*))\\s*(\\)))?",
3409 Added: "endCaptures": {
3410 Added: "1": {
3411 Added: "name": "keyword.control.endinterface.fortran"
3412 Added: },
3413 Added: "2": {
3414 Added: "name": "keyword.other.assignment.fortran"
3415 Added: },
3416 Added: "3": {
3417 Added: "name": "punctuation.parentheses.left.fortran"
3418 Added: },
3419 Added: "4": {
3420 Added: "name": "keyword.operator.assignment.fortran"
3421 Added: },
3422 Added: "5": {
3423 Added: "name": "invalid.error.generic-interface-end.fortran"
3424 Added: },
3425 Added: "6": {
3426 Added: "name": "punctuation.parentheses.right.fortran"
3427 Added: }
3428 Added: },
3429 Added: "patterns": [
3430 Added: {
3431 Added: "include": "#interface-procedure-statement"
3432 Added: },
3433 Added: {
3434 Added: "include": "$base"
3435 Added: }
3436 Added: ]
3437 Added: },
3438 Added: {
3439 Added: "comment": "Operator generic interface.",
3440 Added: "begin": "(?ix)\\G\\s*\\b(operator)\\s* (\\()\\s*(?: (\\.[a-z]+\\.|\\=\\=|\\/\\=|\\>\\=|\\>|\\<|\\<\\=|\\-|\\+|\\/|\\/\\/|\\*\\*|\\*) |(\\S.*) )\\s*(\\))",
3441 Added: "beginCaptures": {
3442 Added: "1": {
3443 Added: "name": "keyword.other.operator.fortran"
3444 Added: },
3445 Added: "2": {
3446 Added: "name": "punctuation.parentheses.left.fortran"
3447 Added: },
3448 Added: "3": {
3449 Added: "name": "keyword.operator.fortran"
3450 Added: },
3451 Added: "4": {
3452 Added: "name": "invalid.error.generic-interface-block-op.fortran"
3453 Added: },
3454 Added: "5": {
3455 Added: "name": "punctuation.parentheses.right.fortran"
3456 Added: }
3457 Added: },
3458 Added: "end": "(?ix)\\b(end\\s*interface)\\b (?:\\s*\\b(\\1)\\b\\s*(\\()\\s*(?:(\\3)|(\\S.*))\\s*(\\)))?",
3459 Added: "endCaptures": {
3460 Added: "1": {
3461 Added: "name": "keyword.control.endinterface.fortran"
3462 Added: },
3463 Added: "2": {
3464 Added: "name": "keyword.other.operator.fortran"
3465 Added: },
3466 Added: "3": {
3467 Added: "name": "punctuation.parentheses.left.fortran"
3468 Added: },
3469 Added: "4": {
3470 Added: "name": "keyword.operator.fortran"
3471 Added: },
3472 Added: "5": {
3473 Added: "name": "invalid.error.generic-interface-block-op-end.fortran"
3474 Added: },
3475 Added: "6": {
3476 Added: "name": "punctuation.parentheses.right.fortran"
3477 Added: }
3478 Added: },
3479 Added: "patterns": [
3480 Added: {
3481 Added: "include": "#interface-procedure-statement"
3482 Added: },
3483 Added: {
3484 Added: "include": "$base"
3485 Added: }
3486 Added: ]
3487 Added: },
3488 Added: {
3489 Added: "comment": "Read/Write generic interface.",
3490 Added: "begin": "(?ix)\\G\\s*\\b(?:(read)|(write))\\s* (\\()\\s*(?:(formatted)|(unformatted)|(\\S.*))\\s*(\\))",
3491 Added: "beginCaptures": {
3492 Added: "1": {
3493 Added: "name": "keyword.other.read.fortran"
3494 Added: },
3495 Added: "2": {
3496 Added: "name": "keyword.other.write.fortran"
3497 Added: },
3498 Added: "3": {
3499 Added: "name": "punctuation.parentheses.left.fortran"
3500 Added: },
3501 Added: "4": {
3502 Added: "name": "keyword.other.formatted.fortran"
3503 Added: },
3504 Added: "5": {
3505 Added: "name": "keyword.other.unformatted.fortran"
3506 Added: },
3507 Added: "6": {
3508 Added: "name": "invalid.error.generic-interface-block.fortran"
3509 Added: },
3510 Added: "7": {
3511 Added: "name": "punctuation.parentheses.right.fortran"
3512 Added: }
3513 Added: },
3514 Added: "end": "(?ix)\\b(end\\s*interface)\\b(?:\\s*\\b(?:(\\2)|(\\3))\\b\\s* (\\()\\s*(?:(\\4)|(\\5)|(\\S.*))\\s*(\\)))?",
3515 Added: "endCaptures": {
3516 Added: "1": {
3517 Added: "name": "keyword.control.endinterface.fortran"
3518 Added: },
3519 Added: "2": {
3520 Added: "name": "keyword.other.read.fortran"
3521 Added: },
3522 Added: "3": {
3523 Added: "name": "keyword.other.write.fortran"
3524 Added: },
3525 Added: "4": {
3526 Added: "name": "punctuation.parentheses.left.fortran"
3527 Added: },
3528 Added: "5": {
3529 Added: "name": "keyword.other.formatted.fortran"
3530 Added: },
3531 Added: "6": {
3532 Added: "name": "keyword.other.unformatted.fortran"
3533 Added: },
3534 Added: "7": {
3535 Added: "name": "invalid.error.generic-interface-block-end.fortran"
3536 Added: },
3537 Added: "8": {
3538 Added: "name": "punctuation.parentheses.right.fortran"
3539 Added: }
3540 Added: },
3541 Added: "patterns": [
3542 Added: {
3543 Added: "include": "#interface-procedure-statement"
3544 Added: },
3545 Added: {
3546 Added: "include": "$base"
3547 Added: }
3548 Added: ]
3549 Added: },
3550 Added: {
3551 Added: "comment": "Generic interface.",
3552 Added: "begin": "(?i)\\G\\s*\\b([a-z]\\w*)\\b",
3553 Added: "beginCaptures": {
3554 Added: "1": {
3555 Added: "name": "entity.name.function.fortran"
3556 Added: }
3557 Added: },
3558 Added: "end": "(?i)\\b(end\\s*interface)\\b(?:\\s*\\b(\\1)\\b)?",
3559 Added: "endCaptures": {
3560 Added: "1": {
3561 Added: "name": "keyword.control.endinterface.fortran"
3562 Added: },
3563 Added: "2": {
3564 Added: "name": "entity.name.function.fortran"
3565 Added: }
3566 Added: },
3567 Added: "patterns": [
3568 Added: {
3569 Added: "include": "#interface-procedure-statement"
3570 Added: },
3571 Added: {
3572 Added: "include": "$base"
3573 Added: }
3574 Added: ]
3575 Added: }
3576 Added: ]
3577 Added: },
3578 Added: "interface-procedure-statement": {
3579 Added: "comment": "Introduced in the Fortran 1990 standard.",
3580 Added: "name": "meta.statement.procedure.fortran",
3581 Added: "begin": "(?i)(?=[^'\";!\\n]*\\bprocedure\\b)",
3582 Added: "end": "(?=[;!\\n])",
3583 Added: "patterns": [
3584 Added: {
3585 Added: "comment": "Attribute list.",
3586 Added: "name": "meta.attribute-list.interface.fortran",
3587 Added: "begin": "(?i)(?=\\G\\s*(?!\\bprocedure\\b))",
3588 Added: "end": "(?i)(?=\\bprocedure\\b)",
3589 Added: "patterns": [
3590 Added: {
3591 Added: "include": "#module-attribute"
3592 Added: },
3593 Added: {
3594 Added: "include": "#invalid-word"
3595 Added: }
3596 Added: ]
3597 Added: },
3598 Added: {
3599 Added: "comment": "Procedure statement.",
3600 Added: "begin": "(?i)\\s*\\b(procedure)\\b",
3601 Added: "beginCaptures": {
3602 Added: "1": {
3603 Added: "name": "keyword.other.procedure.fortran"
3604 Added: }
3605 Added: },
3606 Added: "end": "(?=[;!\\n])",
3607 Added: "patterns": [
3608 Added: {
3609 Added: "match": "\\G\\s*(::)",
3610 Added: "captures": {
3611 Added: "1": {
3612 Added: "name": "keyword.operator.double-colon.fortran"
3613 Added: }
3614 Added: }
3615 Added: },
3616 Added: {
3617 Added: "include": "#procedure-name-list"
3618 Added: }
3619 Added: ]
3620 Added: }
3621 Added: ]
3622 Added: },
3623 Added: "intrinsic-functions": {
3624 Added: "patterns": [
3625 Added: {
3626 Added: "comment": "Intrinsic functions introduced in the Fortran 2008 standard.",
3627 Added: "begin": "(?ix)\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr| findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound| leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar| shift[alr]|storage_size|this_image|trailz|ucobound)\\s*(?=\\()",
3628 Added: "beginCaptures": {
3629 Added: "1": {
3630 Added: "name": "support.function.intrinsic.fortran"
3631 Added: },
3632 Added: "2": {
3633 Added: "name": "punctuation.parentheses.left.fortran"
3634 Added: }
3635 Added: },
3636 Added: "end": "(?<!\\G)",
3637 Added: "endCaptures": {
3638 Added: "1": {
3639 Added: "name": "punctuation.parentheses.right.fortran"
3640 Added: }
3641 Added: },
3642 Added: "patterns": [
3643 Added: {
3644 Added: "include": "#parentheses-dummy-variables"
3645 Added: }
3646 Added: ]
3647 Added: },
3648 Added: {
3649 Added: "comment": "Functions accessable through the intrinsic FORTRAN_SPECIAL_FUNCTIONS module. Introduced in the Fortran 2008 standard.",
3650 Added: "begin": "(?ix)\\b(bessel_[jy][01n]|erf(c(_scaled)?)?|gamma|log_gamma)\\s*(?=\\()",
3651 Added: "beginCaptures": {
3652 Added: "1": {
3653 Added: "name": "support.function.intrinsic.fortran"
3654 Added: },
3655 Added: "2": {
3656 Added: "name": "punctuation.parentheses.left.fortran"
3657 Added: }
3658 Added: },
3659 Added: "end": "(?<!\\G)",
3660 Added: "endCaptures": {
3661 Added: "1": {
3662 Added: "name": "punctuation.parentheses.right.fortran"
3663 Added: }
3664 Added: },
3665 Added: "patterns": [
3666 Added: {
3667 Added: "include": "#parentheses-dummy-variables"
3668 Added: }
3669 Added: ]
3670 Added: },
3671 Added: {
3672 Added: "comment": "Intrinsic functions introduced in the Fortran 2003 standard.",
3673 Added: "begin": "(?ix)\\b(command_argument_count|extends_type_of|is_iostat_end| is_iostat_eor|new_line|same_type_as|selected_char_kind)\\s*(?=\\()",
3674 Added: "beginCaptures": {
3675 Added: "1": {
3676 Added: "name": "support.function.intrinsic.fortran"
3677 Added: },
3678 Added: "2": {
3679 Added: "name": "punctuation.parentheses.left.fortran"
3680 Added: }
3681 Added: },
3682 Added: "end": "(?<!\\G)",
3683 Added: "endCaptures": {
3684 Added: "1": {
3685 Added: "name": "punctuation.parentheses.right.fortran"
3686 Added: }
3687 Added: },
3688 Added: "patterns": [
3689 Added: {
3690 Added: "include": "#parentheses-dummy-variables"
3691 Added: }
3692 Added: ]
3693 Added: },
3694 Added: {
3695 Added: "comment": "Functions accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.",
3696 Added: "begin": "(?ix)\\b(ieee_( class|copy_sign|is_(finite|nan|negative|normal)|logb|next_after|rem| rint|scalb|selected_real_kind| support_(datatype|denormal|divide|inf|io|nan|rounding|sqrt|standard|underflow_control)| unordered|value))\\s*(?=\\()",
3697 Added: "beginCaptures": {
3698 Added: "1": {
3699 Added: "name": "support.function.intrinsic.fortran"
3700 Added: },
3701 Added: "2": {
3702 Added: "name": "punctuation.parentheses.left.fortran"
3703 Added: }
3704 Added: },
3705 Added: "end": "(?<!\\G)",
3706 Added: "endCaptures": {
3707 Added: "1": {
3708 Added: "name": "punctuation.parentheses.right.fortran"
3709 Added: }
3710 Added: },
3711 Added: "patterns": [
3712 Added: {
3713 Added: "include": "#parentheses-dummy-variables"
3714 Added: }
3715 Added: ]
3716 Added: },
3717 Added: {
3718 Added: "comment": "Functions accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.",
3719 Added: "begin": "(?ix)\\b(ieee_support_(flag|halting))\\s*(?=\\()",
3720 Added: "beginCaptures": {
3721 Added: "1": {
3722 Added: "name": "support.function.intrinsic.fortran"
3723 Added: },
3724 Added: "2": {
3725 Added: "name": "punctuation.parentheses.left.fortran"
3726 Added: }
3727 Added: },
3728 Added: "end": "(?<!\\G)",
3729 Added: "endCaptures": {
3730 Added: "1": {
3731 Added: "name": "punctuation.parentheses.right.fortran"
3732 Added: }
3733 Added: },
3734 Added: "patterns": [
3735 Added: {
3736 Added: "include": "#parentheses-dummy-variables"
3737 Added: }
3738 Added: ]
3739 Added: },
3740 Added: {
3741 Added: "comment": "Functions accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",
3742 Added: "begin": "(?ix)\\b(c_(associated|funloc|loc|sizeof))\\s*(?=\\()",
3743 Added: "beginCaptures": {
3744 Added: "1": {
3745 Added: "name": "support.function.intrinsic.fortran"
3746 Added: }
3747 Added: },
3748 Added: "end": "(?<!\\G)",
3749 Added: "endCaptures": {
3750 Added: "1": {
3751 Added: "name": "punctuation.parentheses.right.fortran"
3752 Added: }
3753 Added: },
3754 Added: "patterns": [
3755 Added: {
3756 Added: "include": "#parentheses-dummy-variables"
3757 Added: }
3758 Added: ]
3759 Added: },
3760 Added: {
3761 Added: "comment": "Functions accessable through the intrinsic ISO_FORTRAN_ENV module. Introduced in the Fortran 2003 standard.",
3762 Added: "begin": "(?ix)\\b(compiler_(options|version))\\s*(?=\\()",
3763 Added: "beginCaptures": {
3764 Added: "1": {
3765 Added: "name": "support.function.intrinsic.fortran"
3766 Added: },
3767 Added: "2": {
3768 Added: "name": "punctuation.parentheses.left.fortran"
3769 Added: }
3770 Added: },
3771 Added: "end": "(?<!\\G)",
3772 Added: "endCaptures": {
3773 Added: "1": {
3774 Added: "name": "punctuation.parentheses.right.fortran"
3775 Added: }
3776 Added: },
3777 Added: "patterns": [
3778 Added: {
3779 Added: "include": "#parentheses-dummy-variables"
3780 Added: }
3781 Added: ]
3782 Added: },
3783 Added: {
3784 Added: "comment": "Intrinsic functions introduced in the Fortran 1995 standard.",
3785 Added: "begin": "(?ix)\\b(null)\\s*(?=\\()",
3786 Added: "beginCaptures": {
3787 Added: "1": {
3788 Added: "name": "support.function.intrinsic.fortran"
3789 Added: },
3790 Added: "2": {
3791 Added: "name": "punctuation.parentheses.left.fortran"
3792 Added: }
3793 Added: },
3794 Added: "end": "(?<!\\G)",
3795 Added: "endCaptures": {
3796 Added: "1": {
3797 Added: "name": "punctuation.parentheses.right.fortran"
3798 Added: }
3799 Added: },
3800 Added: "patterns": [
3801 Added: {
3802 Added: "include": "#parentheses-dummy-variables"
3803 Added: }
3804 Added: ]
3805 Added: },
3806 Added: {
3807 Added: "comment": "Intrinsic functions introduced in the Fortran 1990 standard.",
3808 Added: "begin": "(?ix)\\b(achar|adjustl|adjustr|all|allocated|associated|any|bit_size|btest|ceiling|count|cshift|digits|dot_product|eoshift|epsilon|exponent|floor|fraction|huge|iachar|iand|ibclr|ibits|ibset|ieor|ior|ishftc?| kind|lbound|len_trim|logical|matmul|maxexponent|maxloc|maxval|merge|minexponent|minloc|minval|modulo|nearest|not|pack|precision|present|product|radix|range|repeat|reshape|rrspacing|scale|scan|selected_(int|real)_kind|set_exponent|shape|size|spacing|spread|sum|tiny|transfer|transpose|trim|ubound|unpack|verify)\\s*(?=\\()",
3809 Added: "beginCaptures": {
3810 Added: "1": {
3811 Added: "name": "support.function.intrinsic.fortran"
3812 Added: },
3813 Added: "2": {
3814 Added: "name": "punctuation.parentheses.left.fortran"
3815 Added: }
3816 Added: },
3817 Added: "end": "(?<!\\G)",
3818 Added: "endCaptures": {
3819 Added: "1": {
3820 Added: "name": "punctuation.parentheses.right.fortran"
3821 Added: }
3822 Added: },
3823 Added: "patterns": [
3824 Added: {
3825 Added: "include": "#parentheses-dummy-variables"
3826 Added: }
3827 Added: ]
3828 Added: },
3829 Added: {
3830 Added: "comment": "Intrinsic functions introduced in the Fortran 1977 standard.",
3831 Added: "begin": "(?ix)\\b([icd]?abs|acos|[ad]int|[ad]nint|aimag|amax[01]| amin[01]|d?asin|d?atan|d?atan2|char|conjg|[cd]?cos|d?cosh|cmplx|dble| i?dim|dmax1|dmin1|dprod|[cd]?exp|float|ichar|idint|ifix|index|int|len| lge|lgt|lle|llt|[acd]?log|[ad]?log10|max[01]?|min[01]?|[ad]?mod| (id)?nint|real|[di]?sign|[cd]?sin|d?sinh|sngl|[cd]?sqrt|d?tan|d?tanh) \\s*(?=\\()",
3832 Added: "beginCaptures": {
3833 Added: "1": {
3834 Added: "name": "support.function.intrinsic.fortran"
3835 Added: },
3836 Added: "2": {
3837 Added: "name": "punctuation.parentheses.left.fortran"
3838 Added: }
3839 Added: },
3840 Added: "end": "(?<!\\G)",
3841 Added: "endCaptures": {
3842 Added: "1": {
3843 Added: "name": "punctuation.parentheses.right.fortran"
3844 Added: }
3845 Added: },
3846 Added: "patterns": [
3847 Added: {
3848 Added: "include": "#parentheses-dummy-variables"
3849 Added: }
3850 Added: ]
3851 Added: }
3852 Added: ]
3853 Added: },
3854 Added: "intrinsic-subroutines": {
3855 Added: "patterns": [
3856 Added: {
3857 Added: "comment": "Intrinsic subroutines introduced in the Fortran 1990 standard.",
3858 Added: "begin": "(?ix)\\G\\s*\\b(date_and_time|mvbits|random_number|random_seed| system_clock)\\s*(?=\\()",
3859 Added: "beginCaptures": {
3860 Added: "1": {
3861 Added: "name": "entity.name.function.subroutine.fortran"
3862 Added: },
3863 Added: "2": {
3864 Added: "name": "punctuation.parentheses.left.fortran"
3865 Added: }
3866 Added: },
3867 Added: "end": "(?<!\\G)",
3868 Added: "endCaptures": {
3869 Added: "1": {
3870 Added: "name": "punctuation.parentheses.right.fortran"
3871 Added: }
3872 Added: },
3873 Added: "patterns": [
3874 Added: {
3875 Added: "include": "#parentheses-dummy-variables"
3876 Added: }
3877 Added: ]
3878 Added: },
3879 Added: {
3880 Added: "comment": "Intrinsic subroutines introduced in the Fortran 1995 standard.",
3881 Added: "begin": "(?i)\\G\\s*\\b(cpu_time)\\s*(?=\\()",
3882 Added: "beginCaptures": {
3883 Added: "1": {
3884 Added: "name": "entity.name.function.subroutine.fortran"
3885 Added: },
3886 Added: "2": {
3887 Added: "name": "punctuation.parentheses.left.fortran"
3888 Added: }
3889 Added: },
3890 Added: "end": "(?<!\\G)",
3891 Added: "endCaptures": {
3892 Added: "1": {
3893 Added: "name": "punctuation.parentheses.right.fortran"
3894 Added: }
3895 Added: },
3896 Added: "patterns": [
3897 Added: {
3898 Added: "include": "#parentheses-dummy-variables"
3899 Added: }
3900 Added: ]
3901 Added: },
3902 Added: {
3903 Added: "comment": "Subroutines accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.",
3904 Added: "begin": "(?i)\\G\\s*\\b(ieee_(get|set)_(rounding|underflow)_mode)\\s*(?=\\()",
3905 Added: "beginCaptures": {
3906 Added: "1": {
3907 Added: "name": "entity.name.function.subroutine.fortran"
3908 Added: },
3909 Added: "2": {
3910 Added: "name": "punctuation.parentheses.left.fortran"
3911 Added: }
3912 Added: },
3913 Added: "end": "(?<!\\G)",
3914 Added: "endCaptures": {
3915 Added: "1": {
3916 Added: "name": "punctuation.parentheses.right.fortran"
3917 Added: }
3918 Added: },
3919 Added: "patterns": [
3920 Added: {
3921 Added: "include": "#parentheses-dummy-variables"
3922 Added: }
3923 Added: ]
3924 Added: },
3925 Added: {
3926 Added: "comment": "Subroutines accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.",
3927 Added: "begin": "(?i)\\G\\s*\\b(ieee_(get|set)_(flag|halting_mode|status))\\s*(?=\\()",
3928 Added: "beginCaptures": {
3929 Added: "1": {
3930 Added: "name": "entity.name.function.subroutine.fortran"
3931 Added: },
3932 Added: "2": {
3933 Added: "name": "punctuation.parentheses.left.fortran"
3934 Added: }
3935 Added: },
3936 Added: "end": "(?<!\\G)",
3937 Added: "endCaptures": {
3938 Added: "1": {
3939 Added: "name": "punctuation.parentheses.right.fortran"
3940 Added: }
3941 Added: },
3942 Added: "patterns": [
3943 Added: {
3944 Added: "include": "#parentheses-dummy-variables"
3945 Added: }
3946 Added: ]
3947 Added: },
3948 Added: {
3949 Added: "comment": "Subroutines accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.",
3950 Added: "begin": "(?i)\\G\\s*\\b(c_f_(pointer|procpointer))\\s*(?=\\()",
3951 Added: "beginCaptures": {
3952 Added: "1": {
3953 Added: "name": "entity.name.function.subroutine.fortran"
3954 Added: },
3955 Added: "2": {
3956 Added: "name": "punctuation.parentheses.left.fortran"
3957 Added: }
3958 Added: },
3959 Added: "end": "(?<!\\G)",
3960 Added: "endCaptures": {
3961 Added: "1": {
3962 Added: "name": "punctuation.parentheses.right.fortran"
3963 Added: }
3964 Added: },
3965 Added: "patterns": [
3966 Added: {
3967 Added: "include": "#parentheses-dummy-variables"
3968 Added: }
3969 Added: ]
3970 Added: },
3971 Added: {
3972 Added: "comment": "Intrinsic subroutines introduced in the Fortran 2008 standard.",
3973 Added: "begin": "(?ix)\\G\\s*\\b(execute_command_line|get_command| get_command_argument|get_environment_variable|move_alloc)\\s*(?=\\()",
3974 Added: "beginCaptures": {
3975 Added: "1": {
3976 Added: "name": "entity.name.function.subroutine.fortran"
3977 Added: },
3978 Added: "2": {
3979 Added: "name": "punctuation.parentheses.left.fortran"
3980 Added: }
3981 Added: },
3982 Added: "end": "(?<!\\G)",
3983 Added: "endCaptures": {
3984 Added: "1": {
3985 Added: "name": "punctuation.parentheses.right.fortran"
3986 Added: }
3987 Added: },
3988 Added: "patterns": [
3989 Added: {
3990 Added: "include": "#parentheses-dummy-variables"
3991 Added: }
3992 Added: ]
3993 Added: }
3994 Added: ]
3995 Added: },
3996 Added: "operators": {
3997 Added: "patterns": [
3998 Added: {
3999 Added: "include": "#arithmetic-operators"
4000 Added: },
4001 Added: {
4002 Added: "include": "#assignment-operator"
4003 Added: },
4004 Added: {
4005 Added: "include": "#derived-type-operators"
4006 Added: },
4007 Added: {
4008 Added: "include": "#logical-operators"
4009 Added: },
4010 Added: {
4011 Added: "include": "#pointer-operators"
4012 Added: },
4013 Added: {
4014 Added: "include": "#string-operators"
4015 Added: },
4016 Added: {
4017 Added: "include": "#user-defined-operators"
4018 Added: }
4019 Added: ]
4020 Added: },
4021 Added: "arithmetic-operators": {
4022 Added: "comment": "Introduced in the Fortran 1977 standard.",
4023 Added: "match": "(\\-)|(\\+)|\\/(?!\\/|\\=|\\\\)|(\\*\\*)|(\\*)",
4024 Added: "captures": {
4025 Added: "1": {
4026 Added: "name": "keyword.operator.subtraction.fortran"
4027 Added: },
4028 Added: "2": {
4029 Added: "name": "keyword.operator.addition.fortran"
4030 Added: },
4031 Added: "3": {
4032 Added: "name": "keyword.operator.division.fortran"
4033 Added: },
4034 Added: "4": {
4035 Added: "name": "keyword.operator.power.fortran"
4036 Added: },
4037 Added: "5": {
4038 Added: "name": "keyword.operator.multiplication.fortran"
4039 Added: }
4040 Added: }
4041 Added: },
4042 Added: "assignment-operator": {
4043 Added: "comment": "Introduced in the Fortran 1977 standard.",
4044 Added: "name": "keyword.operator.assignment.fortran",
4045 Added: "match": "(?<!\\/|\\=|\\<|\\>)(\\=)(?!\\=|\\>)"
4046 Added: },
4047 Added: "derived-type-operators": {
4048 Added: "comment": "Introduced in the Fortran 1995 standard.",
4049 Added: "match": "\\s*(\\%)",
4050 Added: "captures": {
4051 Added: "1": {
4052 Added: "name": "keyword.other.selector.fortran"
4053 Added: }
4054 Added: }
4055 Added: },
4056 Added: "line-continuation-operator": {
4057 Added: "comment": "Operator that allows a line to be continued on the next line.",
4058 Added: "patterns": [
4059 Added: {
4060 Added: "match": "(?:^|(?<=;))\\s*(&)",
4061 Added: "captures": {
4062 Added: "1": {
4063 Added: "name": "keyword.operator.line-continuation.fortran"
4064 Added: }
4065 Added: }
4066 Added: },
4067 Added: {
4068 Added: "contentName": "meta.line-continuation.fortran",
4069 Added: "begin": "\\s*(&)",
4070 Added: "beginCaptures": {
4071 Added: "1": {
4072 Added: "name": "keyword.operator.line-continuation.fortran"
4073 Added: }
4074 Added: },
4075 Added: "end": "(?i)^(?:\\s*(&))?",
4076 Added: "endCaptures": {
4077 Added: "1": {
4078 Added: "name": "keyword.operator.line-continuation.fortran"
4079 Added: }
4080 Added: },
4081 Added: "patterns": [
4082 Added: {
4083 Added: "include": "#comments"
4084 Added: },
4085 Added: {
4086 Added: "name": "invalid.error.line-cont.fortran",
4087 Added: "match": "\\S[^!]*"
4088 Added: }
4089 Added: ]
4090 Added: }
4091 Added: ]
4092 Added: },
4093 Added: "logical-operators": {
4094 Added: "patterns": [
4095 Added: {
4096 Added: "comment": "Introduced in the Fortran 1977 standard.",
4097 Added: "match": "(?ix)(\\s*\\.(and|eq|eqv|le|lt|ge|gt|ne|neqv|not|or)\\.)",
4098 Added: "name": "keyword.logical.fortran"
4099 Added: },
4100 Added: {
4101 Added: "comment": "Introduced in the Fortran 1990 standard.",
4102 Added: "name": "keyword.logical.fortran.modern",
4103 Added: "match": "(\\=\\=|\\/\\=|\\>\\=|(?<!\\=)\\>|\\<\\=|\\<)"
4104 Added: }
4105 Added: ]
4106 Added: },
4107 Added: "pointer-operators": {
4108 Added: "comment": "Introduced in the Fortran 1990 standard.",
4109 Added: "name": "keyword.other.point.fortran",
4110 Added: "match": "(\\=\\>)"
4111 Added: },
4112 Added: "string-operators": {
4113 Added: "comment": "Introduced in the Fortran 19?? standard.",
4114 Added: "name": "keyword.other.concatination.fortran",
4115 Added: "match": "(\\/\\/)"
4116 Added: },
4117 Added: "string-line-continuation-operator": {
4118 Added: "comment": "Operator that allows a line to be continued on the next line.",
4119 Added: "begin": "(&)(?=\\s*\\n)",
4120 Added: "beginCaptures": {
4121 Added: "1": {
4122 Added: "name": "keyword.operator.line-continuation.fortran"
4123 Added: }
4124 Added: },
4125 Added: "end": "(?i)^(?:(?=\\s*[^\\s!&])|\\s*(&))",
4126 Added: "endCaptures": {
4127 Added: "1": {
4128 Added: "name": "keyword.operator.line-continuation.fortran"
4129 Added: }
4130 Added: },
4131 Added: "patterns": [
4132 Added: {
4133 Added: "include": "#comments"
4134 Added: },
4135 Added: {
4136 Added: "name": "invalid.error.string-line-cont.fortran",
4137 Added: "match": "\\S.*"
4138 Added: }
4139 Added: ]
4140 Added: },
4141 Added: "user-defined-operators": {
4142 Added: "match": "(?i)\\s*(\\.[a-z]+\\.)",
4143 Added: "captures": {
4144 Added: "1": {
4145 Added: "name": "keyword.operator.user-defined.fortran"
4146 Added: }
4147 Added: }
4148 Added: },
4149 Added: "block-data-definition": {
4150 Added: "name": "meta.block-data.fortran",
4151 Added: "begin": "(?i)\\b(block\\s*data)\\b(?:\\s+([a-z]\\w*)\\b)?",
4152 Added: "beginCaptures": {
4153 Added: "1": {
4154 Added: "name": "keyword.control.block-data.fortran"
4155 Added: },
4156 Added: "2": {
4157 Added: "name": "entity.name.block-data.fortran"
4158 Added: }
4159 Added: },
4160 Added: "end": "(?ix)\\b(?:(end\\s*block\\s*data)(?:\\s+(\\2))?|(end))\\b (?:\\s*(\\S((?!\\n).)*))?",
4161 Added: "endCaptures": {
4162 Added: "1": {
4163 Added: "name": "keyword.control.end-block-data.fortran"
4164 Added: },
4165 Added: "2": {
4166 Added: "name": "entity.name.block-data.fortran"
4167 Added: },
4168 Added: "3": {
4169 Added: "name": "keyword.control.end-block-data.fortran"
4170 Added: },
4171 Added: "4": {
4172 Added: "name": "invalid.error.block-data-definition.fortran"
4173 Added: }
4174 Added: },
4175 Added: "patterns": [
4176 Added: {
4177 Added: "include": "$base"
4178 Added: }
4179 Added: ]
4180 Added: },
4181 Added: "function-definition": {
4182 Added: "comment": "Function program unit. Introduced in the Fortran 1977 standard.",
4183 Added: "name": "meta.function.fortran",
4184 Added: "begin": "(?i)(?=([^:'\";!\\n](?!\\bend)(?!\\bsubroutine\\b))*\\bfunction\\b)",
4185 Added: "end": "(?=[;!\\n])",
4186 Added: "patterns": [
4187 Added: {
4188 Added: "comment": "Function attribute list.",
4189 Added: "name": "meta.attribute-list.function.fortran",
4190 Added: "begin": "(?i)(?=\\G\\s*(?!\\bfunction\\b))",
4191 Added: "end": "(?i)(?=\\bfunction\\b)",
4192 Added: "patterns": [
4193 Added: {
4194 Added: "include": "#elemental-attribute"
4195 Added: },
4196 Added: {
4197 Added: "include": "#module-attribute"
4198 Added: },
4199 Added: {
4200 Added: "include": "#pure-attribute"
4201 Added: },
4202 Added: {
4203 Added: "include": "#recursive-attribute"
4204 Added: },
4205 Added: {
4206 Added: "include": "#types"
4207 Added: },
4208 Added: {
4209 Added: "include": "#invalid-word"
4210 Added: }
4211 Added: ]
4212 Added: },
4213 Added: {
4214 Added: "comment": "Captures the function keyword",
4215 Added: "begin": "(?i)\\b(function)\\b",
4216 Added: "beginCaptures": {
4217 Added: "1": {
4218 Added: "name": "keyword.other.function.fortran"
4219 Added: }
4220 Added: },
4221 Added: "end": "(?=[;!\\n])",
4222 Added: "patterns": [
4223 Added: {
4224 Added: "comment": "Function body.",
4225 Added: "begin": "(?i)\\G\\s*\\b([a-z]\\w*)\\b",
4226 Added: "beginCaptures": {
4227 Added: "1": {
4228 Added: "name": "entity.name.function.fortran"
4229 Added: }
4230 Added: },
4231 Added: "end": "(?ix)\\s*\\b(?:(end\\s*function)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",
4232 Added: "endCaptures": {
4233 Added: "1": {
4234 Added: "name": "keyword.other.endfunction.fortran"
4235 Added: },
4236 Added: "2": {
4237 Added: "name": "entity.name.function.fortran"
4238 Added: },
4239 Added: "3": {
4240 Added: "name": "keyword.other.endfunction.fortran"
4241 Added: },
4242 Added: "4": {
4243 Added: "name": "invalid.error.function.fortran"
4244 Added: }
4245 Added: },
4246 Added: "patterns": [
4247 Added: {
4248 Added: "comment": "Rest of the first line in function construct.",
4249 Added: "name": "meta.function.first-line.fortran",
4250 Added: "begin": "\\G(?!\\s*[;!\\n])",
4251 Added: "end": "(?=[;!\\n])",
4252 Added: "patterns": [
4253 Added: {
4254 Added: "include": "#dummy-variable-list"
4255 Added: },
4256 Added: {
4257 Added: "include": "#result-statement"
4258 Added: },
4259 Added: {
4260 Added: "include": "#language-binding-attribute"
4261 Added: }
4262 Added: ]
4263 Added: },
4264 Added: {
4265 Added: "comment": "Specification and execution block.",
4266 Added: "name": "meta.block.specification.function.fortran",
4267 Added: "begin": "(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*function\\b))",
4268 Added: "end": "(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*function\\b))",
4269 Added: "patterns": [
4270 Added: {
4271 Added: "comment": "Contains block.",
4272 Added: "name": "meta.block.contains.fortran",
4273 Added: "begin": "(?i)\\b(contains)\\b",
4274 Added: "beginCaptures": {
4275 Added: "1": {
4276 Added: "name": "keyword.control.contains.fortran"
4277 Added: }
4278 Added: },
4279 Added: "end": "(?i)(?=(?:end\\s*[;!\\n]|end\\s*function\\b))",
4280 Added: "patterns": [
4281 Added: {
4282 Added: "include": "$base"
4283 Added: }
4284 Added: ]
4285 Added: },
4286 Added: {
4287 Added: "include": "$base"
4288 Added: }
4289 Added: ]
4290 Added: }
4291 Added: ]
4292 Added: }
4293 Added: ]
4294 Added: }
4295 Added: ]
4296 Added: },
4297 Added: "module-definition": {
4298 Added: "comment": "Introduced in the Fortran 1990 standard.",
4299 Added: "name": "meta.module.fortran",
4300 Added: "begin": "(?ix)(?=\\b(module)\\b)(?![^'\";!\\n]* \\b(?:function|procedure|subroutine)\\b)",
4301 Added: "end": "(?=[;!\\n])",
4302 Added: "patterns": [
4303 Added: {
4304 Added: "match": "(?i)\\G\\s*\\b(module)\\b",
4305 Added: "captures": {
4306 Added: "1": {
4307 Added: "name": "keyword.other.program.fortran"
4308 Added: }
4309 Added: }
4310 Added: },
4311 Added: {
4312 Added: "comment": "Module body.",
4313 Added: "begin": "(?i)\\s*\\b([a-z]\\w*)\\b",
4314 Added: "beginCaptures": {
4315 Added: "1": {
4316 Added: "name": "entity.name.class.module.fortran"
4317 Added: }
4318 Added: },
4319 Added: "end": "(?ix)\\b(?:(end\\s*module)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",
4320 Added: "endCaptures": {
4321 Added: "1": {
4322 Added: "name": "keyword.other.endmodule.fortran"
4323 Added: },
4324 Added: "2": {
4325 Added: "name": "entity.name.class.module.fortran"
4326 Added: },
4327 Added: "3": {
4328 Added: "name": "keyword.other.endmodule.fortran"
4329 Added: },
4330 Added: "4": {
4331 Added: "name": "invalid.error.module-definition.fortran"
4332 Added: }
4333 Added: },
4334 Added: "applyEndPatternLast": 1,
4335 Added: "patterns": [
4336 Added: {
4337 Added: "comment": "Module specification block.",
4338 Added: "name": "meta.block.specification.module.fortran",
4339 Added: "begin": "\\G",
4340 Added: "end": "(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*module\\b))",
4341 Added: "patterns": [
4342 Added: {
4343 Added: "comment": "Module contains block.",
4344 Added: "name": "meta.block.contains.fortran",
4345 Added: "begin": "(?i)\\b(contains)\\b",
4346 Added: "beginCaptures": {
4347 Added: "1": {
4348 Added: "name": "keyword.control.contains.fortran"
4349 Added: }
4350 Added: },
4351 Added: "end": "(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*module\\b))",
4352 Added: "patterns": [
4353 Added: {
4354 Added: "include": "$base"
4355 Added: }
4356 Added: ]
4357 Added: },
4358 Added: {
4359 Added: "include": "$base"
4360 Added: }
4361 Added: ]
4362 Added: }
4363 Added: ]
4364 Added: }
4365 Added: ]
4366 Added: },
4367 Added: "program-definition": {
4368 Added: "comment": "Introduced in the Fortran 1977 standard.",
4369 Added: "name": "meta.program.fortran",
4370 Added: "begin": "(?i)(?=\\b(program)\\b)",
4371 Added: "end": "(?=[;!\\n])",
4372 Added: "patterns": [
4373 Added: {
4374 Added: "match": "(?i)\\G\\s*\\b(program)\\b",
4375 Added: "captures": {
4376 Added: "1": {
4377 Added: "name": "keyword.control.program.fortran"
4378 Added: }
4379 Added: }
4380 Added: },
4381 Added: {
4382 Added: "comment": "Program body.",
4383 Added: "begin": "(?i)\\s*\\b([a-z]\\w*)\\b",
4384 Added: "beginCaptures": {
4385 Added: "1": {
4386 Added: "name": "entity.name.program.fortran"
4387 Added: }
4388 Added: },
4389 Added: "end": "(?ix)\\b(?:(end\\s*program)(?:\\s+([a-z_]\\w*))?|(end))\\b\\s*([^;!\\n]+)?(?=[;!\\n])",
4390 Added: "endCaptures": {
4391 Added: "1": {
4392 Added: "name": "keyword.control.endprogram.fortran"
4393 Added: },
4394 Added: "2": {
4395 Added: "name": "entity.name.program.fortran"
4396 Added: },
4397 Added: "3": {
4398 Added: "name": "keyword.control.endprogram.fortran"
4399 Added: },
4400 Added: "4": {
4401 Added: "name": "invalid.error.program-definition.fortran"
4402 Added: }
4403 Added: },
4404 Added: "applyEndPatternLast": 1,
4405 Added: "patterns": [
4406 Added: {
4407 Added: "comment": "Program specification block.",
4408 Added: "name": "meta.block.specification.program.fortran",
4409 Added: "begin": "\\G",
4410 Added: "end": "(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*program\\b))",
4411 Added: "patterns": [
4412 Added: {
4413 Added: "comment": "Program contains block.",
4414 Added: "name": "meta.block.contains.fortran",
4415 Added: "begin": "(?i)\\b(contains)\\b",
4416 Added: "beginCaptures": {
4417 Added: "1": {
4418 Added: "name": "keyword.control.contains.fortran"
4419 Added: }
4420 Added: },
4421 Added: "end": "(?i)(?=(?:end\\s*[;!\\n]|end\\s*program\\b))",
4422 Added: "patterns": [
4423 Added: {
4424 Added: "include": "$base"
4425 Added: }
4426 Added: ]
4427 Added: },
4428 Added: {
4429 Added: "include": "$base"
4430 Added: }
4431 Added: ]
4432 Added: }
4433 Added: ]
4434 Added: }
4435 Added: ]
4436 Added: },
4437 Added: "procedure-definition": {
4438 Added: "comment": "Procedure program unit. Introduced in the Fortran 2008 standard.",
4439 Added: "name": "meta.procedure.fortran",
4440 Added: "begin": "(?i)(?=[^'\";!\\n]*\\bmodule\\s+procedure\\b)",
4441 Added: "end": "(?=[;!\\n])",
4442 Added: "patterns": [
4443 Added: {
4444 Added: "begin": "(?i)\\s*\\b(module\\s+procedure)\\b",
4445 Added: "beginCaptures": {
4446 Added: "1": {
4447 Added: "name": "keyword.other.procedure.fortran"
4448 Added: }
4449 Added: },
4450 Added: "end": "(?=[;!\\n])",
4451 Added: "patterns": [
4452 Added: {
4453 Added: "comment": "Procedure body.",
4454 Added: "begin": "(?i)\\G\\s*\\b([a-z]\\w*)\\b",
4455 Added: "beginCaptures": {
4456 Added: "1": {
4457 Added: "name": "entity.name.function.procedure.fortran"
4458 Added: }
4459 Added: },
4460 Added: "end": "(?ix)\\s*\\b(?:(end\\s*procedure)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",
4461 Added: "endCaptures": {
4462 Added: "1": {
4463 Added: "name": "keyword.other.endprocedure.fortran"
4464 Added: },
4465 Added: "2": {
4466 Added: "name": "entity.name.function.procedure.fortran"
4467 Added: },
4468 Added: "3": {
4469 Added: "name": "keyword.other.endprocedure.fortran"
4470 Added: },
4471 Added: "4": {
4472 Added: "name": "invalid.error.procedure-definition.fortran"
4473 Added: }
4474 Added: },
4475 Added: "patterns": [
4476 Added: {
4477 Added: "comment": "Rest of the first line in procedure construct - should be empty.",
4478 Added: "name": "meta.first-line.fortran",
4479 Added: "begin": "\\G(?!\\s*[;!\\n])",
4480 Added: "end": "(?=[;!\\n])",
4481 Added: "patterns": [
4482 Added: {
4483 Added: "include": "#invalid-character"
4484 Added: }
4485 Added: ]
4486 Added: },
4487 Added: {
4488 Added: "comment": "Specification and execution block.",
4489 Added: "name": "meta.block.specification.procedure.fortran",
4490 Added: "begin": "(?i)(?!\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",
4491 Added: "end": "(?i)(?=\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",
4492 Added: "patterns": [
4493 Added: {
4494 Added: "include": "$self"
4495 Added: }
4496 Added: ]
4497 Added: },
4498 Added: {
4499 Added: "comment": "Contains block.",
4500 Added: "name": "meta.block.contains.fortran",
4501 Added: "begin": "(?i)\\s*(contains)\\b",
4502 Added: "beginCaptures": {
4503 Added: "1": {
4504 Added: "name": "keyword.control.contains.fortran"
4505 Added: }
4506 Added: },
4507 Added: "end": "(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*procedure\\b))",
4508 Added: "patterns": [
4509 Added: {
4510 Added: "include": "$self"
4511 Added: }
4512 Added: ]
4513 Added: }
4514 Added: ]
4515 Added: }
4516 Added: ]
4517 Added: }
4518 Added: ]
4519 Added: },
4520 Added: "subroutine-definition": {
4521 Added: "comment": "Subroutine program unit. Introduced in the Fortran 1977 standard.",
4522 Added: "name": "meta.subroutine.fortran",
4523 Added: "begin": "(?i)(?=([^:'\";!\\n](?!\\bend))*\\bsubroutine\\b)",
4524 Added: "end": "(?=[;!\\n])",
4525 Added: "patterns": [
4526 Added: {
4527 Added: "comment": "Attribute list.",
4528 Added: "name": "meta.attribute-list.subroutine.fortran",
4529 Added: "begin": "(?i)(?=\\G\\s*(?!\\bsubroutine\\b))",
4530 Added: "end": "(?i)(?=\\bsubroutine\\b)",
4531 Added: "patterns": [
4532 Added: {
4533 Added: "include": "#elemental-attribute"
4534 Added: },
4535 Added: {
4536 Added: "include": "#module-attribute"
4537 Added: },
4538 Added: {
4539 Added: "include": "#pure-attribute"
4540 Added: },
4541 Added: {
4542 Added: "include": "#recursive-attribute"
4543 Added: },
4544 Added: {
4545 Added: "include": "#invalid-word"
4546 Added: }
4547 Added: ]
4548 Added: },
4549 Added: {
4550 Added: "begin": "(?i)\\s*\\b(subroutine)\\b",
4551 Added: "beginCaptures": {
4552 Added: "1": {
4553 Added: "name": "keyword.other.subroutine.fortran"
4554 Added: }
4555 Added: },
4556 Added: "end": "(?=[;!\\n])",
4557 Added: "patterns": [
4558 Added: {
4559 Added: "comment": "Subroutine body.",
4560 Added: "begin": "(?i)\\G\\s*\\b([a-z]\\w*)\\b",
4561 Added: "beginCaptures": {
4562 Added: "1": {
4563 Added: "name": "entity.name.function.subroutine.fortran"
4564 Added: }
4565 Added: },
4566 Added: "end": "(?ix)\\b(?:(end\\s*subroutine)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",
4567 Added: "endCaptures": {
4568 Added: "1": {
4569 Added: "name": "keyword.other.endsubroutine.fortran"
4570 Added: },
4571 Added: "2": {
4572 Added: "name": "entity.name.function.subroutine.fortran"
4573 Added: },
4574 Added: "3": {
4575 Added: "name": "keyword.other.endsubroutine.fortran"
4576 Added: },
4577 Added: "4": {
4578 Added: "name": "invalid.error.subroutine.fortran"
4579 Added: }
4580 Added: },
4581 Added: "patterns": [
4582 Added: {
4583 Added: "comment": "Rest of the first line in subroutine construct.",
4584 Added: "name": "meta.first-line.fortran",
4585 Added: "begin": "\\G(?!\\s*[;!\\n])",
4586 Added: "end": "(?=[;!\\n])",
4587 Added: "patterns": [
4588 Added: {
4589 Added: "include": "#dummy-variable-list"
4590 Added: },
4591 Added: {
4592 Added: "include": "#language-binding-attribute"
4593 Added: }
4594 Added: ]
4595 Added: },
4596 Added: {
4597 Added: "comment": "Specification and execution block.",
4598 Added: "name": "meta.block.specification.subroutine.fortran",
4599 Added: "begin": "(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",
4600 Added: "end": "(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",
4601 Added: "patterns": [
4602 Added: {
4603 Added: "comment": "Contains block.",
4604 Added: "name": "meta.block.contains.fortran",
4605 Added: "begin": "(?i)\\b(contains)\\b",
4606 Added: "beginCaptures": {
4607 Added: "1": {
4608 Added: "name": "keyword.control.contains.fortran"
4609 Added: }
4610 Added: },
4611 Added: "end": "(?i)(?=(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",
4612 Added: "patterns": [
4613 Added: {
4614 Added: "include": "$base"
4615 Added: }
4616 Added: ]
4617 Added: },
4618 Added: {
4619 Added: "include": "$base"
4620 Added: }
4621 Added: ]
4622 Added: }
4623 Added: ]
4624 Added: }
4625 Added: ]
4626 Added: }
4627 Added: ]
4628 Added: },
4629 Added: "submodule-definition": {
4630 Added: "comment": "Introduced in the Fortran 2008 standard.",
4631 Added: "name": "meta.submodule.fortran",
4632 Added: "begin": "(?i)(?=\\b(submodule)\\s*\\()",
4633 Added: "end": "(?=[;!\\n])",
4634 Added: "patterns": [
4635 Added: {
4636 Added: "begin": "(?i)\\G\\s*\\b(submodule)\\s*(\\()\\s*(\\w+)",
4637 Added: "beginCaptures": {
4638 Added: "1": {
4639 Added: "name": "keyword.other.submodule.fortran"
4640 Added: },
4641 Added: "2": {
4642 Added: "name": "punctuation.parentheses.left.fortran"
4643 Added: },
4644 Added: "3": {
4645 Added: "name": "entity.name.class.submodule.fortran"
4646 Added: }
4647 Added: },
4648 Added: "end": "(\\))",
4649 Added: "endCaptures": {
4650 Added: "1": {
4651 Added: "name": "punctuation.parentheses.left.fortran"
4652 Added: }
4653 Added: },
4654 Added: "patterns": []
4655 Added: },
4656 Added: {
4657 Added: "comment": "Submodule body.",
4658 Added: "begin": "(?i)\\s*\\b([a-z]\\w*)\\b",
4659 Added: "beginCaptures": {
4660 Added: "1": {
4661 Added: "name": "entity.name.module.submodule.fortran"
4662 Added: }
4663 Added: },
4664 Added: "end": "(?ix)\\s*\\b(?:(end\\s*submodule)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",
4665 Added: "endCaptures": {
4666 Added: "1": {
4667 Added: "name": "keyword.other.endsubmodule.fortran"
4668 Added: },
4669 Added: "2": {
4670 Added: "name": "entity.name.module.submodule.fortran"
4671 Added: },
4672 Added: "3": {
4673 Added: "name": "keyword.other.endsubmodule.fortran"
4674 Added: },
4675 Added: "4": {
4676 Added: "name": "invalid.error.submodule.fortran"
4677 Added: }
4678 Added: },
4679 Added: "applyEndPatternLast": 1,
4680 Added: "patterns": [
4681 Added: {
4682 Added: "comment": "Submodule specification block.",
4683 Added: "name": "meta.block.specification.submodule.fortran",
4684 Added: "begin": "\\G",
4685 Added: "end": "(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*submodule\\b))",
4686 Added: "patterns": [
4687 Added: {
4688 Added: "comment": "Submodule contains block.",
4689 Added: "name": "meta.block.contains.fortran",
4690 Added: "begin": "(?i)\\b(contains)\\b",
4691 Added: "beginCaptures": {
4692 Added: "1": {
4693 Added: "name": "keyword.control.contains.fortran"
4694 Added: }
4695 Added: },
4696 Added: "end": "(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*submodule\\b))",
4697 Added: "patterns": [
4698 Added: {
4699 Added: "include": "$base"
4700 Added: }
4701 Added: ]
4702 Added: },
4703 Added: {
4704 Added: "include": "$base"
4705 Added: }
4706 Added: ]
4707 Added: }
4708 Added: ]
4709 Added: }
4710 Added: ]
4711 Added: },
4712 Added: "type-specification-statements": {
4713 Added: "name": "meta.specification.type.fortran",
4714 Added: "comment": "Supported types for function and escape :: if function is used as a variable name (which is bad practice).",
4715 Added: "begin": "(?ix)(?=\\b(?:character|class|complex|double\\s*precision|double\\s*complex|integer|logical|real|type|dimension)\\b(?![^'\";!\\n:]*\\bfunction\\b))",
4716 Added: "end": "(?=[\\);!\\n])",
4717 Added: "patterns": [
4718 Added: {
4719 Added: "include": "#types"
4720 Added: },
4721 Added: {
4722 Added: "comment": "Attribute list.",
4723 Added: "contentName": "meta.attribute-list.type-specification-statements.fortran",
4724 Added: "begin": "(?=\\s*(,|::))",
4725 Added: "end": "(::)|(?=[;!\\n])",
4726 Added: "endCaptures": {
4727 Added: "1": {
4728 Added: "name": "keyword.operator.double-colon.fortran"
4729 Added: }
4730 Added: },
4731 Added: "patterns": [
4732 Added: {
4733 Added: "begin": "(,)|^|(?<=&)",
4734 Added: "beginCaptures": {
4735 Added: "1": {
4736 Added: "name": "punctuation.comma.fortran"
4737 Added: }
4738 Added: },
4739 Added: "end": "(?=::|[,&;!\\n])",
4740 Added: "patterns": [
4741 Added: {
4742 Added: "include": "#access-attribute"
4743 Added: },
4744 Added: {
4745 Added: "include": "#allocatable-attribute"
4746 Added: },
4747 Added: {
4748 Added: "include": "#asynchronous-attribute"
4749 Added: },
4750 Added: {
4751 Added: "include": "#codimension-attribute"
4752 Added: },
4753 Added: {
4754 Added: "include": "#contiguous-attribute"
4755 Added: },
4756 Added: {
4757 Added: "include": "#dimension-attribute"
4758 Added: },
4759 Added: {
4760 Added: "include": "#external-attribute"
4761 Added: },
4762 Added: {
4763 Added: "include": "#intent-attribute"
4764 Added: },
4765 Added: {
4766 Added: "include": "#intrinsic-attribute"
4767 Added: },
4768 Added: {
4769 Added: "include": "#language-binding-attribute"
4770 Added: },
4771 Added: {
4772 Added: "include": "#optional-attribute"
4773 Added: },
4774 Added: {
4775 Added: "include": "#parameter-attribute"
4776 Added: },
4777 Added: {
4778 Added: "include": "#pointer-attribute"
4779 Added: },
4780 Added: {
4781 Added: "include": "#protected-attribute"
4782 Added: },
4783 Added: {
4784 Added: "include": "#save-attribute"
4785 Added: },
4786 Added: {
4787 Added: "include": "#target-attribute"
4788 Added: },
4789 Added: {
4790 Added: "include": "#value-attribute"
4791 Added: },
4792 Added: {
4793 Added: "include": "#volatile-attribute"
4794 Added: },
4795 Added: {
4796 Added: "include": "#invalid-word"
4797 Added: }
4798 Added: ]
4799 Added: }
4800 Added: ]
4801 Added: },
4802 Added: {
4803 Added: "include": "#name-list"
4804 Added: }
4805 Added: ]
4806 Added: },
4807 Added: "procedure-specification-statement": {
4808 Added: "comment": "Introduced in the Fortran 2003 standard.",
4809 Added: "name": "meta.specification.procedure.fortran",
4810 Added: "begin": "(?i)(?=\\b(?:procedure)\\b)",
4811 Added: "end": "(?=[;!\\n])",
4812 Added: "patterns": [
4813 Added: {
4814 Added: "include": "#procedure-type"
4815 Added: },
4816 Added: {
4817 Added: "comment": "Attribute list.",
4818 Added: "contentName": "meta.attribute-list.procedure.fortran",
4819 Added: "begin": "(?=\\s*(,|::|\\())",
4820 Added: "end": "(::)|(?=[;!\\n])",
4821 Added: "endCaptures": {
4822 Added: "1": {
4823 Added: "name": "keyword.operator.double-colon.fortran"
4824 Added: }
4825 Added: },
4826 Added: "patterns": [
4827 Added: {
4828 Added: "begin": "(,)|^|(?<=&)",
4829 Added: "beginCaptures": {
4830 Added: "1": {
4831 Added: "name": "punctuation.comma.fortran"
4832 Added: }
4833 Added: },
4834 Added: "end": "(?=::|[,&;!\\n])",
4835 Added: "patterns": [
4836 Added: {
4837 Added: "include": "#access-attribute"
4838 Added: },
4839 Added: {
4840 Added: "include": "#intent-attribute"
4841 Added: },
4842 Added: {
4843 Added: "include": "#optional-attribute"
4844 Added: },
4845 Added: {
4846 Added: "include": "#pointer-attribute"
4847 Added: },
4848 Added: {
4849 Added: "include": "#protected-attribute"
4850 Added: },
4851 Added: {
4852 Added: "include": "#save-attribute"
4853 Added: },
4854 Added: {
4855 Added: "include": "#invalid-word"
4856 Added: }
4857 Added: ]
4858 Added: }
4859 Added: ]
4860 Added: },
4861 Added: {
4862 Added: "include": "#procedure-name-list"
4863 Added: }
4864 Added: ]
4865 Added: },
4866 Added: "specification-statements": {
4867 Added: "patterns": [
4868 Added: {
4869 Added: "include": "#attribute-specification-statement"
4870 Added: },
4871 Added: {
4872 Added: "include": "#common-statement"
4873 Added: },
4874 Added: {
4875 Added: "include": "#data-statement"
4876 Added: },
4877 Added: {
4878 Added: "include": "#equivalence-statement"
4879 Added: },
4880 Added: {
4881 Added: "include": "#implicit-statement"
4882 Added: },
4883 Added: {
4884 Added: "include": "#namelist-statement"
4885 Added: },
4886 Added: {
4887 Added: "include": "#use-statement"
4888 Added: }
4889 Added: ]
4890 Added: },
4891 Added: "attribute-specification-statement": {
4892 Added: "name": "meta.statement.attribute-specification.fortran",
4893 Added: "begin": "(?ix)(?=\\b(?:allocatable|asynchronous|contiguous |external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\b |(bind|dimension|intent)\\s*\\( |(codimension)\\s*\\[)",
4894 Added: "end": "(?=[;!\\n])",
4895 Added: "patterns": [
4896 Added: {
4897 Added: "include": "#access-attribute"
4898 Added: },
4899 Added: {
4900 Added: "include": "#allocatable-attribute"
4901 Added: },
4902 Added: {
4903 Added: "include": "#asynchronous-attribute"
4904 Added: },
4905 Added: {
4906 Added: "include": "#codimension-attribute"
4907 Added: },
4908 Added: {
4909 Added: "include": "#contiguous-attribute"
4910 Added: },
4911 Added: {
4912 Added: "include": "#dimension-attribute"
4913 Added: },
4914 Added: {
4915 Added: "include": "#external-attribute"
4916 Added: },
4917 Added: {
4918 Added: "include": "#intent-attribute"
4919 Added: },
4920 Added: {
4921 Added: "include": "#intrinsic-attribute"
4922 Added: },
4923 Added: {
4924 Added: "include": "#language-binding-attribute"
4925 Added: },
4926 Added: {
4927 Added: "include": "#optional-attribute"
4928 Added: },
4929 Added: {
4930 Added: "include": "#parameter-attribute"
4931 Added: },
4932 Added: {
4933 Added: "include": "#pointer-attribute"
4934 Added: },
4935 Added: {
4936 Added: "include": "#protected-attribute"
4937 Added: },
4938 Added: {
4939 Added: "include": "#save-attribute"
4940 Added: },
4941 Added: {
4942 Added: "include": "#target-attribute"
4943 Added: },
4944 Added: {
4945 Added: "include": "#value-attribute"
4946 Added: },
4947 Added: {
4948 Added: "include": "#volatile-attribute"
4949 Added: },
4950 Added: {
4951 Added: "comment": "Attribute list.",
4952 Added: "contentName": "meta.attribute-list.normal.fortran",
4953 Added: "begin": "(?=\\s*::)",
4954 Added: "end": "(::)|(?=[;!\\n])",
4955 Added: "endCaptures": {
4956 Added: "1": {
4957 Added: "name": "keyword.operator.double-colon.fortran"
4958 Added: }
4959 Added: },
4960 Added: "patterns": [
4961 Added: {
4962 Added: "include": "#invalid-word"
4963 Added: }
4964 Added: ]
4965 Added: },
4966 Added: {
4967 Added: "include": "#name-list"
4968 Added: }
4969 Added: ]
4970 Added: },
4971 Added: "common-statement": {
4972 Added: "begin": "(?i)\\b(common)\\b",
4973 Added: "beginCaptures": {
4974 Added: "1": {
4975 Added: "name": "keyword.control.common.fortran"
4976 Added: }
4977 Added: },
4978 Added: "end": "(?=[;!\\n])",
4979 Added: "patterns": [
4980 Added: {
4981 Added: "include": "$base"
4982 Added: }
4983 Added: ]
4984 Added: },
4985 Added: "data-statement": {
4986 Added: "begin": "(?i)\\b(data)\\b",
4987 Added: "beginCaptures": {
4988 Added: "1": {
4989 Added: "name": "keyword.control.data.fortran"
4990 Added: }
4991 Added: },
4992 Added: "end": "(?=[;!\\n])",
4993 Added: "patterns": [
4994 Added: {
4995 Added: "include": "$base"
4996 Added: }
4997 Added: ]
4998 Added: },
4999 Added: "equivalence-statement": {
5000 Added: "begin": "(?i)\\b(equivalence)\\b",
5001 Added: "beginCaptures": {
5002 Added: "1": {
5003 Added: "name": "keyword.control.common.fortran"
5004 Added: }
5005 Added: },
5006 Added: "end": "(?=[;!\\n])",
5007 Added: "patterns": [
5008 Added: {
5009 Added: "begin": "(?:\\G|(,))",
5010 Added: "beginCaptures": {
5011 Added: "1": {
5012 Added: "name": "puntuation.comma.fortran"
5013 Added: }
5014 Added: },
5015 Added: "end": "(?=[,;!\\n])",
5016 Added: "patterns": [
5017 Added: {
5018 Added: "include": "#parentheses-dummy-variables"
5019 Added: }
5020 Added: ]
5021 Added: }
5022 Added: ]
5023 Added: },
5024 Added: "implicit-statement": {
5025 Added: "name": "meta.statement.implicit.fortran",
5026 Added: "begin": "(?i)\\b(implicit)\\b",
5027 Added: "beginCaptures": {
5028 Added: "1": {
5029 Added: "name": "keyword.other.implicit.fortran"
5030 Added: }
5031 Added: },
5032 Added: "end": "(?=[;!\\n])",
5033 Added: "patterns": [
5034 Added: {
5035 Added: "match": "(?i)\\s*\\b(none)\\b",
5036 Added: "captures": {
5037 Added: "1": {
5038 Added: "name": "keyword.other.none.fortran"
5039 Added: }
5040 Added: }
5041 Added: },
5042 Added: {
5043 Added: "include": "$base"
5044 Added: }
5045 Added: ]
5046 Added: },
5047 Added: "namelist-statement": {
5048 Added: "comment": "Introduced in the Fortran 1990 standard.",
5049 Added: "begin": "(?i)\\b(namelist)\\b",
5050 Added: "beginCaptures": {
5051 Added: "1": {
5052 Added: "name": "keyword.control.namelist.fortran"
5053 Added: }
5054 Added: },
5055 Added: "end": "(?=[;!\\n])",
5056 Added: "patterns": [
5057 Added: {
5058 Added: "include": "$base"
5059 Added: }
5060 Added: ]
5061 Added: },
5062 Added: "use-statement": {
5063 Added: "comment": "Introduced in the Fortran 1990 standard.",
5064 Added: "name": "meta.statement.use.fortran",
5065 Added: "begin": "(?i)\\b(use)\\b",
5066 Added: "beginCaptures": {
5067 Added: "1": {
5068 Added: "name": "keyword.control.use.fortran"
5069 Added: }
5070 Added: },
5071 Added: "end": "(?=[;!\\n])",
5072 Added: "patterns": [
5073 Added: {
5074 Added: "comment": "Attribute list.",
5075 Added: "contentName": "meta.attribute-list.namelist.fortran",
5076 Added: "begin": "(?=\\s*(,|::|\\())",
5077 Added: "end": "(::)|(?=[;!\\n])",
5078 Added: "endCaptures": {
5079 Added: "1": {
5080 Added: "name": "keyword.operator.double-colon.fortran"
5081 Added: }
5082 Added: },
5083 Added: "patterns": [
5084 Added: {
5085 Added: "begin": "(,)",
5086 Added: "beginCaptures": {
5087 Added: "1": {
5088 Added: "name": "punctuation.comma.fortran"
5089 Added: }
5090 Added: },
5091 Added: "end": "(?=::|[,;!\\n])",
5092 Added: "patterns": [
5093 Added: {
5094 Added: "include": "#intrinsic-attribute"
5095 Added: },
5096 Added: {
5097 Added: "include": "#non-intrinsic-attribute"
5098 Added: },
5099 Added: {
5100 Added: "include": "#invalid-word"
5101 Added: }
5102 Added: ]
5103 Added: }
5104 Added: ]
5105 Added: },
5106 Added: {
5107 Added: "begin": "(?i)\\s*\\b([a-z]\\w*)\\b",
5108 Added: "beginCaptures": {
5109 Added: "1": {
5110 Added: "name": "entity.name.class.module.fortran"
5111 Added: }
5112 Added: },
5113 Added: "end": "(?=[;!\\n])",
5114 Added: "patterns": [
5115 Added: {
5116 Added: "begin": "(,)",
5117 Added: "beginCaptures": {
5118 Added: "1": {
5119 Added: "name": "punctuation.comma.fortran"
5120 Added: }
5121 Added: },
5122 Added: "end": "(?=::|[;!\\n])",
5123 Added: "patterns": [
5124 Added: {
5125 Added: "begin": "(?i)\\s*\\b(only\\s*:)",
5126 Added: "beginCaptures": {
5127 Added: "1": {
5128 Added: "name": "keyword.control.only.fortran"
5129 Added: }
5130 Added: },
5131 Added: "end": "(?=[;!\\n])",
5132 Added: "patterns": [
5133 Added: {
5134 Added: "include": "#operator-keyword"
5135 Added: },
5136 Added: {
5137 Added: "include": "$base"
5138 Added: }
5139 Added: ]
5140 Added: },
5141 Added: {
5142 Added: "contentName": "meta.name-list.fortran",
5143 Added: "begin": "(?i)(?=\\s*[a-z])",
5144 Added: "end": "(?=[;!\\n])",
5145 Added: "patterns": [
5146 Added: {
5147 Added: "include": "#operator-keyword"
5148 Added: },
5149 Added: {
5150 Added: "include": "$base"
5151 Added: }
5152 Added: ]
5153 Added: }
5154 Added: ]
5155 Added: }
5156 Added: ]
5157 Added: }
5158 Added: ]
5159 Added: },
5160 Added: "types": {
5161 Added: "patterns": [
5162 Added: {
5163 Added: "include": "#character-type"
5164 Added: },
5165 Added: {
5166 Added: "include": "#derived-type"
5167 Added: },
5168 Added: {
5169 Added: "include": "#logical-type"
5170 Added: },
5171 Added: {
5172 Added: "include": "#numeric-type"
5173 Added: }
5174 Added: ]
5175 Added: },
5176 Added: "character-type": {
5177 Added: "comment": "Introduced in the Fortran 1977 standard.",
5178 Added: "patterns": [
5179 Added: {
5180 Added: "begin": "(?i)\\b(character)\\s*(?=\\()",
5181 Added: "beginCaptures": {
5182 Added: "1": {
5183 Added: "name": "storage.type.character.fortran"
5184 Added: },
5185 Added: "2": {
5186 Added: "name": "punctuation.parentheses.left.fortran"
5187 Added: }
5188 Added: },
5189 Added: "end": "(?<!\\G)",
5190 Added: "endCaptures": {
5191 Added: "1": {
5192 Added: "name": "punctuation.parentheses.right.fortran"
5193 Added: }
5194 Added: },
5195 Added: "contentName": "meta.type-spec.fortran",
5196 Added: "patterns": [
5197 Added: {
5198 Added: "include": "#parentheses-dummy-variables"
5199 Added: }
5200 Added: ]
5201 Added: },
5202 Added: {
5203 Added: "match": "(?i)\\b(character)\\b(?:\\s*(\\*)\\s*(\\d*))?",
5204 Added: "captures": {
5205 Added: "1": {
5206 Added: "name": "storage.type.character.fortran"
5207 Added: },
5208 Added: "2": {
5209 Added: "name": "keyword.operator.multiplication.fortran"
5210 Added: },
5211 Added: "3": {
5212 Added: "name": "constant.numeric.fortran"
5213 Added: }
5214 Added: }
5215 Added: }
5216 Added: ]
5217 Added: },
5218 Added: "derived-type": {
5219 Added: "comment": "Introduced in the Fortran 1995 standard.",
5220 Added: "name": "meta.specification.type.derived.fortran",
5221 Added: "begin": "(?i)\\b(?:(class)|(type))\\s*(\\()\\s*(([a-z]\\w*)|\\*)",
5222 Added: "beginCaptures": {
5223 Added: "1": {
5224 Added: "name": "storage.type.class.fortran"
5225 Added: },
5226 Added: "2": {
5227 Added: "name": "storage.type.type.fortran"
5228 Added: },
5229 Added: "3": {
5230 Added: "name": "punctuation.parentheses.left.fortran"
5231 Added: },
5232 Added: "4": {
5233 Added: "name": "entity.name.type.fortran"
5234 Added: }
5235 Added: },
5236 Added: "end": "(\\))",
5237 Added: "endCaptures": {
5238 Added: "1": {
5239 Added: "name": "punctuation.parentheses.right.fortran"
5240 Added: }
5241 Added: },
5242 Added: "contentName": "meta.type-spec.fortran",
5243 Added: "patterns": [
5244 Added: {
5245 Added: "include": "#parentheses-dummy-variables"
5246 Added: }
5247 Added: ]
5248 Added: },
5249 Added: "logical-type": {
5250 Added: "comment": "Introduced in the Fortran 1977 standard.",
5251 Added: "patterns": [
5252 Added: {
5253 Added: "begin": "(?i)\\b(logical)\\s*(?=\\()",
5254 Added: "beginCaptures": {
5255 Added: "1": {
5256 Added: "name": "storage.type.logical.fortran"
5257 Added: },
5258 Added: "2": {
5259 Added: "name": "punctuation.parentheses.left.fortran"
5260 Added: }
5261 Added: },
5262 Added: "end": "(?<!\\G)",
5263 Added: "endCaptures": {
5264 Added: "1": {
5265 Added: "name": "punctuation.parentheses.right.fortran"
5266 Added: }
5267 Added: },
5268 Added: "contentName": "meta.type-spec.fortran",
5269 Added: "patterns": [
5270 Added: {
5271 Added: "include": "#parentheses-dummy-variables"
5272 Added: }
5273 Added: ]
5274 Added: },
5275 Added: {
5276 Added: "match": "(?i)\\b(logical)\\b(?:\\s*(\\*)\\s*(\\d*))?",
5277 Added: "captures": {
5278 Added: "1": {
5279 Added: "name": "storage.type.character.fortran"
5280 Added: },
5281 Added: "2": {
5282 Added: "name": "keyword.operator.multiplication.fortran"
5283 Added: },
5284 Added: "3": {
5285 Added: "name": "constant.numeric.fortran"
5286 Added: }
5287 Added: }
5288 Added: }
5289 Added: ]
5290 Added: },
5291 Added: "numeric-type": {
5292 Added: "comment": "Introduced in the Fortran 1977 standard.",
5293 Added: "patterns": [
5294 Added: {
5295 Added: "begin": "(?i)\\b(?:(complex)|(double\\s*precision)|(double\\s*complex)|(integer)|(real))\\s*(?=\\()",
5296 Added: "beginCaptures": {
5297 Added: "1": {
5298 Added: "name": "storage.type.complex.fortran"
5299 Added: },
5300 Added: "2": {
5301 Added: "name": "storage.type.double.fortran"
5302 Added: },
5303 Added: "3": {
5304 Added: "name": "storage.type.doublecomplex.fortran"
5305 Added: },
5306 Added: "4": {
5307 Added: "name": "storage.type.integer.fortran"
5308 Added: },
5309 Added: "5": {
5310 Added: "name": "storage.type.real.fortran"
5311 Added: },
5312 Added: "6": {
5313 Added: "name": "punctuation.parentheses.left.fortran"
5314 Added: }
5315 Added: },
5316 Added: "end": "(?<!\\G)",
5317 Added: "endCaptures": {
5318 Added: "1": {
5319 Added: "name": "punctuation.parentheses.right.fortran"
5320 Added: }
5321 Added: },
5322 Added: "contentName": "meta.type-spec.fortran",
5323 Added: "patterns": [
5324 Added: {
5325 Added: "include": "#parentheses-dummy-variables"
5326 Added: }
5327 Added: ]
5328 Added: },
5329 Added: {
5330 Added: "match": "(?ix)\\b(?:(complex)|(double\\s*precision)|(double\\s*complex)|(integer)|(real)|(dimension))\\b(?:\\s*(\\*)\\s*(\\d*))?",
5331 Added: "captures": {
5332 Added: "1": {
5333 Added: "name": "storage.type.complex.fortran"
5334 Added: },
5335 Added: "2": {
5336 Added: "name": "storage.type.double.fortran"
5337 Added: },
5338 Added: "3": {
5339 Added: "name": "storage.type.doublecomplex.fortran"
5340 Added: },
5341 Added: "4": {
5342 Added: "name": "storage.type.integer.fortran"
5343 Added: },
5344 Added: "5": {
5345 Added: "name": "storage.type.real.fortran"
5346 Added: },
5347 Added: "6": {
5348 Added: "name": "storage.type.dimension.fortran"
5349 Added: },
5350 Added: "7": {
5351 Added: "name": "keyword.operator.multiplication.fortran"
5352 Added: },
5353 Added: "8": {
5354 Added: "name": "constant.numeric.fortran"
5355 Added: }
5356 Added: }
5357 Added: }
5358 Added: ]
5359 Added: },
5360 Added: "procedure-type": {
5361 Added: "comment": "Introduced in the Fortran ???? standard.",
5362 Added: "patterns": [
5363 Added: {
5364 Added: "begin": "(?i)\\b(procedure)\\s*(\\()",
5365 Added: "beginCaptures": {
5366 Added: "1": {
5367 Added: "name": "storage.type.procedure.fortran"
5368 Added: },
5369 Added: "2": {
5370 Added: "name": "punctuation.parentheses.left.fortran"
5371 Added: }
5372 Added: },
5373 Added: "end": "(\\))",
5374 Added: "endCaptures": {
5375 Added: "1": {
5376 Added: "name": "punctuation.parentheses.right.fortran"
5377 Added: }
5378 Added: },
5379 Added: "contentName": "meta.type-spec.fortran",
5380 Added: "patterns": [
5381 Added: {
5382 Added: "include": "#types"
5383 Added: },
5384 Added: {
5385 Added: "include": "#procedure-name"
5386 Added: }
5387 Added: ]
5388 Added: },
5389 Added: {
5390 Added: "match": "(?i)\\b(procedure)\\b",
5391 Added: "captures": {
5392 Added: "1": {
5393 Added: "name": "storage.type.procedure.fortran"
5394 Added: }
5395 Added: }
5396 Added: }
5397 Added: ]
5398 Added: },
5399 Added: "format-descriptor": {
5400 Added: "comment": "FORMAT descriptor content for FORMAT statements (avoids array constructor scoping)",
5401 Added: "contentName": "meta.format-descriptor.fortran",
5402 Added: "begin": "\\(\\/",
5403 Added: "beginCaptures": {
5404 Added: "0": { "name": "punctuation.bracket.left.fortran" }
5405 Added: },
5406 Added: "end": "\\)",
5407 Added: "endCaptures": {
5408 Added: "0": { "name": "punctuation.bracket.right.fortran" }
5409 Added: },
5410 Added: "patterns": [
5411 Added: { "include": "#comments" },
5412 Added: { "include": "#constants" },
5413 Added: { "include": "#operators" },
5414 Added: { "include": "#parentheses" },
5415 Added: { "include": "#intrinsic-functions" },
5416 Added: { "include": "#variable" }
5417 Added: ]
5418 Added: },
5419 Added: "array-constructor": {
5420 Added: "name": "meta.contructor.array",
5421 Added: "begin": "(?<!\\n)(?=\\s*(\\[|\\(\\/))",
5422 Added: "end": "(?<!\\G)",
5423 Added: "patterns": [
5424 Added: {
5425 Added: "include": "#brackets"
5426 Added: },
5427 Added: {
5428 Added: "begin": "\\s*(\\(\\/)",
5429 Added: "beginCaptures": {
5430 Added: "1": {
5431 Added: "name": "punctuation.bracket.left.fortran"
5432 Added: }
5433 Added: },
5434 Added: "end": "(\\/\\))",
5435 Added: "endCaptures": {
5436 Added: "1": {
5437 Added: "name": "punctuation.bracket.left.fortran"
5438 Added: }
5439 Added: },
5440 Added: "patterns": [
5441 Added: {
5442 Added: "include": "#comments"
5443 Added: },
5444 Added: {
5445 Added: "include": "#constants"
5446 Added: },
5447 Added: {
5448 Added: "include": "#operators"
5449 Added: },
5450 Added: {
5451 Added: "include": "#array-constructor"
5452 Added: },
5453 Added: {
5454 Added: "include": "#parentheses"
5455 Added: },
5456 Added: {
5457 Added: "include": "#intrinsic-functions"
5458 Added: },
5459 Added: {
5460 Added: "include": "#variable"
5461 Added: }
5462 Added: ]
5463 Added: }
5464 Added: ]
5465 Added: },
5466 Added: "brackets": {
5467 Added: "begin": "\\s*(\\[)",
5468 Added: "beginCaptures": {
5469 Added: "1": {
5470 Added: "name": "punctuation.bracket.left.fortran"
5471 Added: }
5472 Added: },
5473 Added: "end": "(\\])",
5474 Added: "endCaptures": {
5475 Added: "1": {
5476 Added: "name": "punctuation.bracket.left.fortran"
5477 Added: }
5478 Added: },
5479 Added: "patterns": [
5480 Added: {
5481 Added: "include": "#comments"
5482 Added: },
5483 Added: {
5484 Added: "include": "#constants"
5485 Added: },
5486 Added: {
5487 Added: "include": "#operators"
5488 Added: },
5489 Added: {
5490 Added: "include": "#array-constructor"
5491 Added: },
5492 Added: {
5493 Added: "include": "#parentheses"
5494 Added: },
5495 Added: {
5496 Added: "include": "#intrinsic-functions"
5497 Added: },
5498 Added: {
5499 Added: "include": "#variable"
5500 Added: }
5501 Added: ]
5502 Added: },
5503 Added: "dummy-variable-list": {
5504 Added: "name": "meta.dummy-variable-list",
5505 Added: "begin": "\\G\\s*(\\()",
5506 Added: "beginCaptures": {
5507 Added: "1": {
5508 Added: "name": "punctuation.definition.parameters.begin.fortran"
5509 Added: }
5510 Added: },
5511 Added: "end": "\\)|(?=\\n)",
5512 Added: "endCaptures": {
5513 Added: "0": {
5514 Added: "name": "punctuation.definition.parameters.end.fortran"
5515 Added: }
5516 Added: },
5517 Added: "patterns": [
5518 Added: {
5519 Added: "include": "#dummy-variable"
5520 Added: }
5521 Added: ]
5522 Added: },
5523 Added: "dummy-variable": {
5524 Added: "comment": "dummy variable",
5525 Added: "match": "(?i)(?:^|(?<=[&,\\(]))\\s*([a-z]\\w*)",
5526 Added: "captures": {
5527 Added: "1": {
5528 Added: "name": "variable.parameter.fortran"
5529 Added: }
5530 Added: }
5531 Added: },
5532 Added: "invalid-character": {
5533 Added: "name": "invalid.error.character.fortran",
5534 Added: "match": "(?i)[^\\s;!\\n]+"
5535 Added: },
5536 Added: "invalid-word": {
5537 Added: "name": "invalid.error.word.fortran",
5538 Added: "match": "(?i)\\b\\w+\\b"
5539 Added: },
5540 Added: "IO-item-list": {
5541 Added: "comment": "Name list.",
5542 Added: "contentName": "meta.name-list.fortran",
5543 Added: "begin": "(?i)(?=\\s*[a-z0-9\"'])",
5544 Added: "end": "(?=[\\);!\\n])",
5545 Added: "patterns": [
5546 Added: {
5547 Added: "include": "#constants"
5548 Added: },
5549 Added: {
5550 Added: "include": "#operators"
5551 Added: },
5552 Added: {
5553 Added: "include": "#intrinsic-functions"
5554 Added: },
5555 Added: {
5556 Added: "include": "#array-constructor"
5557 Added: },
5558 Added: {
5559 Added: "include": "#parentheses"
5560 Added: },
5561 Added: {
5562 Added: "include": "#brackets"
5563 Added: },
5564 Added: {
5565 Added: "include": "#assignment-keyword"
5566 Added: },
5567 Added: {
5568 Added: "include": "#operator-keyword"
5569 Added: },
5570 Added: {
5571 Added: "include": "#variable"
5572 Added: }
5573 Added: ]
5574 Added: },
5575 Added: "logical-control-expression": {
5576 Added: "name": "meta.expression.control.logical.fortran",
5577 Added: "begin": "\\G(?=\\s*\\()",
5578 Added: "end": "(?<!\\G)",
5579 Added: "patterns": [
5580 Added: {
5581 Added: "include": "#parentheses"
5582 Added: }
5583 Added: ]
5584 Added: },
5585 Added: "name-list": {
5586 Added: "comment": "Name list.",
5587 Added: "contentName": "meta.name-list.fortran",
5588 Added: "begin": "(?i)(?=\\s*[a-z])",
5589 Added: "end": "(?=[\\);!\\n])",
5590 Added: "patterns": [
5591 Added: {
5592 Added: "include": "#constants"
5593 Added: },
5594 Added: {
5595 Added: "include": "#operators"
5596 Added: },
5597 Added: {
5598 Added: "include": "#intrinsic-functions"
5599 Added: },
5600 Added: {
5601 Added: "include": "#array-constructor"
5602 Added: },
5603 Added: {
5604 Added: "include": "#parentheses"
5605 Added: },
5606 Added: {
5607 Added: "include": "#brackets"
5608 Added: },
5609 Added: {
5610 Added: "include": "#assignment-keyword"
5611 Added: },
5612 Added: {
5613 Added: "include": "#operator-keyword"
5614 Added: },
5615 Added: {
5616 Added: "include": "#variable"
5617 Added: }
5618 Added: ]
5619 Added: },
5620 Added: "assignment-keyword": {
5621 Added: "comment": "Assignment generic specification.",
5622 Added: "begin": "(?i)\\G\\s*\\b(assignment)\\s*(\\()",
5623 Added: "beginCaptures": {
5624 Added: "1": {
5625 Added: "name": "keyword.control.generic-spec.assignment.fortran"
5626 Added: },
5627 Added: "2": {
5628 Added: "name": "punctuation.parentheses.left.fortran"
5629 Added: }
5630 Added: },
5631 Added: "end": "(\\))",
5632 Added: "endCaptures": {
5633 Added: "1": {
5634 Added: "name": "punctuation.parentheses.right.fortran"
5635 Added: }
5636 Added: },
5637 Added: "patterns": [
5638 Added: {
5639 Added: "include": "#assignment-operator"
5640 Added: },
5641 Added: {
5642 Added: "include": "#invalid-word"
5643 Added: }
5644 Added: ]
5645 Added: },
5646 Added: "IO-keywords": {
5647 Added: "comment": "IO generic specification.",
5648 Added: "begin": "(?i)\\G\\s*\\b(?:(read)|(write))\\s*(\\()",
5649 Added: "beginCaptures": {
5650 Added: "1": {
5651 Added: "name": "keyword.control.generic-spec.read.fortran"
5652 Added: },
5653 Added: "2": {
5654 Added: "name": "keyword.control.generic-spec.write.fortran"
5655 Added: },
5656 Added: "3": {
5657 Added: "name": "punctuation.parentheses.left.fortran"
5658 Added: }
5659 Added: },
5660 Added: "end": "(\\))",
5661 Added: "endCaptures": {
5662 Added: "1": {
5663 Added: "name": "punctuation.parentheses.right.fortran"
5664 Added: }
5665 Added: },
5666 Added: "patterns": [
5667 Added: {
5668 Added: "match": "(?i)\\G\\s*\\b(?:(formatted)|(unformatted))\\b",
5669 Added: "captures": {
5670 Added: "1": {
5671 Added: "name": "keyword.control.generic-spec.formatted.fortran"
5672 Added: },
5673 Added: "2": {
5674 Added: "name": "keyword.control.generic-spec.unformatted.fortran"
5675 Added: }
5676 Added: }
5677 Added: },
5678 Added: {
5679 Added: "include": "#invalid-word"
5680 Added: }
5681 Added: ]
5682 Added: },
5683 Added: "operator-keyword": {
5684 Added: "comment": "Operator generic specification.",
5685 Added: "begin": "(?i)\\s*\\b(operator)\\s*(\\()",
5686 Added: "beginCaptures": {
5687 Added: "1": {
5688 Added: "name": "keyword.control.generic-spec.operator.fortran"
5689 Added: },
5690 Added: "2": {
5691 Added: "name": "punctuation.parentheses.left.fortran"
5692 Added: }
5693 Added: },
5694 Added: "end": "(\\))",
5695 Added: "endCaptures": {
5696 Added: "1": {
5697 Added: "name": "punctuation.parentheses.right.fortran"
5698 Added: }
5699 Added: },
5700 Added: "patterns": [
5701 Added: {
5702 Added: "include": "#arithmetic-operators"
5703 Added: },
5704 Added: {
5705 Added: "include": "#logical-operators"
5706 Added: },
5707 Added: {
5708 Added: "include": "#user-defined-operators"
5709 Added: },
5710 Added: {
5711 Added: "include": "#invalid-word"
5712 Added: }
5713 Added: ]
5714 Added: },
5715 Added: "format-descriptors": {
5716 Added: "patterns": [
5717 Added: {
5718 Added: "comment": "Format descriptors.",
5719 Added: "match": "(?i)(?:\\b|(?<=\\d)|(?<=P))(EN|ES|EX|DT|DC|DP|RC|RD|RN|RP|RU|RZ|BN|BZ|SP|SS|TL|TR|I|F|E|D|G|L|A|B|O|Z|T|X|Q|S|P)(?=$|[^A-Za-z_]|[EFDG](?i))",
5720 Added: "captures": {
5721 Added: "1": { "name": "keyword.other.format-descriptor.fortran" }
5722 Added: }
5723 Added: },
5724 Added: {
5725 Added: "match": "\\/",
5726 Added: "name": "keyword.operator.format.newline.fortran"
5727 Added: },
5728 Added: {
5729 Added: "match": ":",
5730 Added: "name": "keyword.operator.format.separator.fortran"
5731 Added: },
5732 Added: {
5733 Added: "comment": "Non-standard newline suppression",
5734 Added: "match": "\\$|\\\\",
5735 Added: "name": "keyword.other.format-descriptor.nonstandard.fortran"
5736 Added: },
5737 Added: {
5738 Added: "comment": "Legacy Hollerith constant (e.g. 4HText)",
5739 Added: "match": "(?i)(?:\\b|(?<=\\d))\\d+H",
5740 Added: "name": "keyword.other.format-descriptor.legacy.fortran"
5741 Added: }
5742 Added: ]
5743 Added: },
5744 Added: "parentheses-common": {
5745 Added: "patterns": [
5746 Added: {
5747 Added: "include": "#comments"
5748 Added: },
5749 Added: {
5750 Added: "include": "#constants"
5751 Added: },
5752 Added: {
5753 Added: "include": "#operators"
5754 Added: },
5755 Added: {
5756 Added: "include": "#intrinsic-functions"
5757 Added: },
5758 Added: {
5759 Added: "include": "#variable"
5760 Added: }
5761 Added: ]
5762 Added: },
5763 Added: "format-parentheses": {
5764 Added: "begin": "\\s*(\\()",
5765 Added: "beginCaptures": {
5766 Added: "1": {
5767 Added: "name": "punctuation.parentheses.left.fortran"
5768 Added: }
5769 Added: },
5770 Added: "end": "(\\))",
5771 Added: "endCaptures": {
5772 Added: "1": {
5773 Added: "name": "punctuation.parentheses.right.fortran"
5774 Added: }
5775 Added: },
5776 Added: "patterns": [
5777 Added: {
5778 Added: "include": "#comments"
5779 Added: },
5780 Added: {
5781 Added: "include": "#line-continuation-operator"
5782 Added: },
5783 Added: {
5784 Added: "match": "(?:\\b|\\+|-)\\d+(?=[A-Za-z])",
5785 Added: "name": "constant.numeric.fortran"
5786 Added: },
5787 Added: {
5788 Added: "include": "#format-descriptors"
5789 Added: },
5790 Added: {
5791 Added: "include": "#format-parentheses"
5792 Added: },
5793 Added: {
5794 Added: "include": "#parentheses-common"
5795 Added: }
5796 Added: ]
5797 Added: },
5798 Added: "parentheses": {
5799 Added: "begin": "\\s*(\\()",
5800 Added: "beginCaptures": {
5801 Added: "1": {
5802 Added: "name": "punctuation.parentheses.left.fortran"
5803 Added: }
5804 Added: },
5805 Added: "end": "(\\))",
5806 Added: "endCaptures": {
5807 Added: "1": {
5808 Added: "name": "punctuation.parentheses.right.fortran"
5809 Added: }
5810 Added: },
5811 Added: "patterns": [
5812 Added: {
5813 Added: "include": "#array-constructor"
5814 Added: },
5815 Added: {
5816 Added: "include": "#parentheses"
5817 Added: },
5818 Added: {
5819 Added: "include": "#parentheses-common"
5820 Added: }
5821 Added: ]
5822 Added: },
5823 Added: "parentheses-dummy-variables": {
5824 Added: "begin": "\\s*(\\()",
5825 Added: "beginCaptures": {
5826 Added: "1": {
5827 Added: "name": "punctuation.parentheses.left.fortran"
5828 Added: }
5829 Added: },
5830 Added: "end": "(\\))",
5831 Added: "endCaptures": {
5832 Added: "1": {
5833 Added: "name": "punctuation.parentheses.right.fortran"
5834 Added: }
5835 Added: },
5836 Added: "patterns": [
5837 Added: {
5838 Added: "include": "#procedure-call-dummy-variable"
5839 Added: },
5840 Added: {
5841 Added: "include": "#array-constructor"
5842 Added: },
5843 Added: {
5844 Added: "include": "#parentheses"
5845 Added: },
5846 Added: {
5847 Added: "include": "#parentheses-common"
5848 Added: }
5849 Added: ]
5850 Added: },
5851 Added: "procedure-call-dummy-variable": {
5852 Added: "name": "variable.parameter.dummy-variable.fortran.modern",
5853 Added: "match": "(?i)\\s*([a-z]\\w*)(?=\\s*\\=)(?!\\s*\\=\\=)"
5854 Added: },
5855 Added: "procedure-name": {
5856 Added: "comment": "Procedure name.",
5857 Added: "match": "(?i)\\s*\\b([a-z]\\w*)\\b",
5858 Added: "captures": {
5859 Added: "1": {
5860 Added: "name": "entity.name.function.procedure.fortran"
5861 Added: }
5862 Added: }
5863 Added: },
5864 Added: "procedure-name-list": {
5865 Added: "comment": "Name list.",
5866 Added: "contentName": "meta.name-list.fortran",
5867 Added: "begin": "(?i)(?=\\s*[a-z])",
5868 Added: "end": "(?=[;!\\n])",
5869 Added: "patterns": [
5870 Added: {
5871 Added: "begin": "(?!\\s*\\n)",
5872 Added: "end": "(,)|(?=[!;\\n])",
5873 Added: "endCaptures": {
5874 Added: "1": {
5875 Added: "name": "punctuation.comma.fortran"
5876 Added: }
5877 Added: },
5878 Added: "patterns": [
5879 Added: {
5880 Added: "include": "#procedure-name"
5881 Added: },
5882 Added: {
5883 Added: "include": "#pointer-operators"
5884 Added: }
5885 Added: ]
5886 Added: }
5887 Added: ]
5888 Added: },
5889 Added: "variable": {
5890 Added: "name": "meta.parameter.fortran",
5891 Added: "begin": "(?i)\\b(?=[a-z])",
5892 Added: "end": "(?<!\\G)",
5893 Added: "applyEndPatternLast": 1,
5894 Added: "patterns": [
5895 Added: {
5896 Added: "include": "#brackets"
5897 Added: },
5898 Added: {
5899 Added: "include": "#derived-type-operators"
5900 Added: },
5901 Added: {
5902 Added: "include": "#parentheses-dummy-variables"
5903 Added: },
5904 Added: {
5905 Added: "include": "#word"
5906 Added: }
5907 Added: ]
5908 Added: },
5909 Added: "word": {
5910 Added: "patterns": [
5911 Added: {
5912 Added: "match": "(?i)(?:\\G|(?<=\\%))\\s*\\b([a-z]\\w*)\\b"
5913 Added: }
5914 Added: ]
5915 Added: }
5916 Added: }
5917 Added: }
lib/grammars/groovy.json
index 00000000..3c4a2a20 000000..100644
@@ -0,0 +1,1385 @@
1 Added: {
2 Added: "fileTypes": [
3 Added: "groovy",
4 Added: "gvy"
5 Added: ],
6 Added: "foldingStartMarker": "(\\{\\s*$|^\\s*// \\{\\{\\{)",
7 Added: "foldingStopMarker": "^\\s*(\\}|// \\}\\}\\}$)",
8 Added: "keyEquivalent": "^~G",
9 Added: "name": "Groovy",
10 Added: "patterns": [
11 Added: {
12 Added: "captures": {
13 Added: "1": {
14 Added: "name": "punctuation.definition.comment.groovy"
15 Added: }
16 Added: },
17 Added: "match": "^(#!).+$\\n",
18 Added: "name": "comment.line.hashbang.groovy"
19 Added: },
20 Added: {
21 Added: "captures": {
22 Added: "1": {
23 Added: "name": "keyword.other.package.groovy"
24 Added: },
25 Added: "2": {
26 Added: "name": "storage.modifier.package.groovy"
27 Added: },
28 Added: "3": {
29 Added: "name": "punctuation.terminator.groovy"
30 Added: }
31 Added: },
32 Added: "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
33 Added: "name": "meta.package.groovy"
34 Added: },
35 Added: {
36 Added: "begin": "(import static)\\b\\s*",
37 Added: "beginCaptures": {
38 Added: "1": {
39 Added: "name": "keyword.other.import.static.groovy"
40 Added: }
41 Added: },
42 Added: "captures": {
43 Added: "1": {
44 Added: "name": "keyword.other.import.groovy"
45 Added: },
46 Added: "2": {
47 Added: "name": "storage.modifier.import.groovy"
48 Added: },
49 Added: "3": {
50 Added: "name": "punctuation.terminator.groovy"
51 Added: }
52 Added: },
53 Added: "contentName": "storage.modifier.import.groovy",
54 Added: "end": "\\s*(?:$|(?=%>)(;))",
55 Added: "endCaptures": {
56 Added: "1": {
57 Added: "name": "punctuation.terminator.groovy"
58 Added: }
59 Added: },
60 Added: "name": "meta.import.groovy",
61 Added: "patterns": [
62 Added: {
63 Added: "match": "\\.",
64 Added: "name": "punctuation.separator.groovy"
65 Added: },
66 Added: {
67 Added: "match": "\\s",
68 Added: "name": "invalid.illegal.character_not_allowed_here.groovy"
69 Added: }
70 Added: ]
71 Added: },
72 Added: {
73 Added: "begin": "(import)\\b\\s*",
74 Added: "beginCaptures": {
75 Added: "1": {
76 Added: "name": "keyword.other.import.groovy"
77 Added: }
78 Added: },
79 Added: "captures": {
80 Added: "1": {
81 Added: "name": "keyword.other.import.groovy"
82 Added: },
83 Added: "2": {
84 Added: "name": "storage.modifier.import.groovy"
85 Added: },
86 Added: "3": {
87 Added: "name": "punctuation.terminator.groovy"
88 Added: }
89 Added: },
90 Added: "contentName": "storage.modifier.import.groovy",
91 Added: "end": "\\s*(?:$|(?=%>)|(;))",
92 Added: "endCaptures": {
93 Added: "1": {
94 Added: "name": "punctuation.terminator.groovy"
95 Added: }
96 Added: },
97 Added: "name": "meta.import.groovy",
98 Added: "patterns": [
99 Added: {
100 Added: "match": "\\.",
101 Added: "name": "punctuation.separator.groovy"
102 Added: },
103 Added: {
104 Added: "match": "\\s",
105 Added: "name": "invalid.illegal.character_not_allowed_here.groovy"
106 Added: }
107 Added: ]
108 Added: },
109 Added: {
110 Added: "captures": {
111 Added: "1": {
112 Added: "name": "keyword.other.import.groovy"
113 Added: },
114 Added: "2": {
115 Added: "name": "keyword.other.import.static.groovy"
116 Added: },
117 Added: "3": {
118 Added: "name": "storage.modifier.import.groovy"
119 Added: },
120 Added: "4": {
121 Added: "name": "punctuation.terminator.groovy"
122 Added: }
123 Added: },
124 Added: "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
125 Added: "name": "meta.import.groovy"
126 Added: },
127 Added: {
128 Added: "include": "#groovy"
129 Added: }
130 Added: ],
131 Added: "repository": {
132 Added: "annotations": {
133 Added: "patterns": [
134 Added: {
135 Added: "begin": "(?<!\\.)(@[^ (]+)(\\()",
136 Added: "beginCaptures": {
137 Added: "1": {
138 Added: "name": "storage.type.annotation.groovy"
139 Added: },
140 Added: "2": {
141 Added: "name": "punctuation.definition.annotation-arguments.begin.groovy"
142 Added: }
143 Added: },
144 Added: "end": "(\\))",
145 Added: "endCaptures": {
146 Added: "1": {
147 Added: "name": "punctuation.definition.annotation-arguments.end.groovy"
148 Added: }
149 Added: },
150 Added: "name": "meta.declaration.annotation.groovy",
151 Added: "patterns": [
152 Added: {
153 Added: "captures": {
154 Added: "1": {
155 Added: "name": "constant.other.key.groovy"
156 Added: },
157 Added: "2": {
158 Added: "name": "keyword.operator.assignment.groovy"
159 Added: }
160 Added: },
161 Added: "match": "(\\w*)\\s*(=)"
162 Added: },
163 Added: {
164 Added: "include": "#values"
165 Added: },
166 Added: {
167 Added: "match": ",",
168 Added: "name": "punctuation.definition.seperator.groovy"
169 Added: }
170 Added: ]
171 Added: },
172 Added: {
173 Added: "match": "(?<!\\.)@\\S+",
174 Added: "name": "storage.type.annotation.groovy"
175 Added: }
176 Added: ]
177 Added: },
178 Added: "anonymous-classes-and-new": {
179 Added: "begin": "\\bnew\\b",
180 Added: "beginCaptures": {
181 Added: "0": {
182 Added: "name": "keyword.control.new.groovy"
183 Added: }
184 Added: },
185 Added: "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=[;])|$",
186 Added: "patterns": [
187 Added: {
188 Added: "begin": "(\\w+)\\s*(?=\\[)",
189 Added: "beginCaptures": {
190 Added: "1": {
191 Added: "name": "storage.type.groovy"
192 Added: }
193 Added: },
194 Added: "end": "}|(?=\\s*(?:,|;|\\)))|$",
195 Added: "patterns": [
196 Added: {
197 Added: "begin": "\\[",
198 Added: "end": "\\]",
199 Added: "patterns": [
200 Added: {
201 Added: "include": "#groovy"
202 Added: }
203 Added: ]
204 Added: },
205 Added: {
206 Added: "begin": "{",
207 Added: "end": "(?=})",
208 Added: "patterns": [
209 Added: {
210 Added: "include": "#groovy"
211 Added: }
212 Added: ]
213 Added: }
214 Added: ]
215 Added: },
216 Added: {
217 Added: "begin": "(?=\\w.*\\(?)",
218 Added: "end": "(?<=\\))|$",
219 Added: "patterns": [
220 Added: {
221 Added: "include": "#object-types"
222 Added: },
223 Added: {
224 Added: "begin": "\\(",
225 Added: "beginCaptures": {
226 Added: "1": {
227 Added: "name": "storage.type.groovy"
228 Added: }
229 Added: },
230 Added: "end": "\\)",
231 Added: "patterns": [
232 Added: {
233 Added: "include": "#groovy"
234 Added: }
235 Added: ]
236 Added: }
237 Added: ]
238 Added: },
239 Added: {
240 Added: "begin": "{",
241 Added: "end": "}",
242 Added: "name": "meta.inner-class.groovy",
243 Added: "patterns": [
244 Added: {
245 Added: "include": "#class-body"
246 Added: }
247 Added: ]
248 Added: }
249 Added: ]
250 Added: },
251 Added: "braces": {
252 Added: "begin": "\\{",
253 Added: "end": "\\}",
254 Added: "patterns": [
255 Added: {
256 Added: "include": "#groovy-code"
257 Added: }
258 Added: ]
259 Added: },
260 Added: "class": {
261 Added: "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",
262 Added: "end": "}",
263 Added: "endCaptures": {
264 Added: "0": {
265 Added: "name": "punctuation.section.class.end.groovy"
266 Added: }
267 Added: },
268 Added: "name": "meta.definition.class.groovy",
269 Added: "patterns": [
270 Added: {
271 Added: "include": "#storage-modifiers"
272 Added: },
273 Added: {
274 Added: "include": "#comments"
275 Added: },
276 Added: {
277 Added: "captures": {
278 Added: "1": {
279 Added: "name": "storage.modifier.groovy"
280 Added: },
281 Added: "2": {
282 Added: "name": "entity.name.type.class.groovy"
283 Added: }
284 Added: },
285 Added: "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
286 Added: "name": "meta.class.identifier.groovy"
287 Added: },
288 Added: {
289 Added: "begin": "extends",
290 Added: "beginCaptures": {
291 Added: "0": {
292 Added: "name": "storage.modifier.extends.groovy"
293 Added: }
294 Added: },
295 Added: "end": "(?={|implements)",
296 Added: "name": "meta.definition.class.inherited.classes.groovy",
297 Added: "patterns": [
298 Added: {
299 Added: "include": "#object-types-inherited"
300 Added: },
301 Added: {
302 Added: "include": "#comments"
303 Added: }
304 Added: ]
305 Added: },
306 Added: {
307 Added: "begin": "(implements)\\s",
308 Added: "beginCaptures": {
309 Added: "1": {
310 Added: "name": "storage.modifier.implements.groovy"
311 Added: }
312 Added: },
313 Added: "end": "(?=\\s*extends|\\{)",
314 Added: "name": "meta.definition.class.implemented.interfaces.groovy",
315 Added: "patterns": [
316 Added: {
317 Added: "include": "#object-types-inherited"
318 Added: },
319 Added: {
320 Added: "include": "#comments"
321 Added: }
322 Added: ]
323 Added: },
324 Added: {
325 Added: "begin": "{",
326 Added: "end": "(?=})",
327 Added: "name": "meta.class.body.groovy",
328 Added: "patterns": [
329 Added: {
330 Added: "include": "#class-body"
331 Added: }
332 Added: ]
333 Added: }
334 Added: ]
335 Added: },
336 Added: "class-body": {
337 Added: "patterns": [
338 Added: {
339 Added: "include": "#enum-values"
340 Added: },
341 Added: {
342 Added: "include": "#constructors"
343 Added: },
344 Added: {
345 Added: "include": "#groovy"
346 Added: }
347 Added: ]
348 Added: },
349 Added: "closures": {
350 Added: "begin": "\\{(?=.*?->)",
351 Added: "end": "\\}",
352 Added: "patterns": [
353 Added: {
354 Added: "begin": "(?<=\\{)(?=[^\\}]*?->)",
355 Added: "end": "->",
356 Added: "endCaptures": {
357 Added: "0": {
358 Added: "name": "keyword.operator.groovy"
359 Added: }
360 Added: },
361 Added: "patterns": [
362 Added: {
363 Added: "begin": "(?!->)",
364 Added: "end": "(?=->)",
365 Added: "name": "meta.closure.parameters.groovy",
366 Added: "patterns": [
367 Added: {
368 Added: "begin": "(?!,|->)",
369 Added: "end": "(?=,|->)",
370 Added: "name": "meta.closure.parameter.groovy",
371 Added: "patterns": [
372 Added: {
373 Added: "begin": "=",
374 Added: "beginCaptures": {
375 Added: "0": {
376 Added: "name": "keyword.operator.assignment.groovy"
377 Added: }
378 Added: },
379 Added: "end": "(?=,|->)",
380 Added: "name": "meta.parameter.default.groovy",
381 Added: "patterns": [
382 Added: {
383 Added: "include": "#groovy-code"
384 Added: }
385 Added: ]
386 Added: },
387 Added: {
388 Added: "include": "#parameters"
389 Added: }
390 Added: ]
391 Added: }
392 Added: ]
393 Added: }
394 Added: ]
395 Added: },
396 Added: {
397 Added: "begin": "(?=[^}])",
398 Added: "end": "(?=\\})",
399 Added: "patterns": [
400 Added: {
401 Added: "include": "#groovy-code"
402 Added: }
403 Added: ]
404 Added: }
405 Added: ]
406 Added: },
407 Added: "comment-block": {
408 Added: "begin": "/\\*",
409 Added: "captures": {
410 Added: "0": {
411 Added: "name": "punctuation.definition.comment.groovy"
412 Added: }
413 Added: },
414 Added: "end": "\\*/",
415 Added: "name": "comment.block.groovy"
416 Added: },
417 Added: "comments": {
418 Added: "patterns": [
419 Added: {
420 Added: "captures": {
421 Added: "0": {
422 Added: "name": "punctuation.definition.comment.groovy"
423 Added: }
424 Added: },
425 Added: "match": "/\\*\\*/",
426 Added: "name": "comment.block.empty.groovy"
427 Added: },
428 Added: {
429 Added: "include": "text.html.javadoc"
430 Added: },
431 Added: {
432 Added: "include": "#comment-block"
433 Added: },
434 Added: {
435 Added: "captures": {
436 Added: "1": {
437 Added: "name": "punctuation.definition.comment.groovy"
438 Added: }
439 Added: },
440 Added: "match": "(//).*$\\n?",
441 Added: "name": "comment.line.double-slash.groovy"
442 Added: }
443 Added: ]
444 Added: },
445 Added: "constants": {
446 Added: "patterns": [
447 Added: {
448 Added: "match": "\\b([A-Z][A-Z0-9_]+)\\b",
449 Added: "name": "constant.other.groovy"
450 Added: },
451 Added: {
452 Added: "match": "\\b(true|false|null)\\b",
453 Added: "name": "constant.language.groovy"
454 Added: }
455 Added: ]
456 Added: },
457 Added: "constructors": {
458 Added: "applyEndPatternLast": 1,
459 Added: "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",
460 Added: "end": "}",
461 Added: "patterns": [
462 Added: {
463 Added: "include": "#method-content"
464 Added: }
465 Added: ]
466 Added: },
467 Added: "enum-values": {
468 Added: "patterns": [
469 Added: {
470 Added: "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",
471 Added: "beginCaptures": {
472 Added: "1": {
473 Added: "name": "constant.enum.name.groovy"
474 Added: }
475 Added: },
476 Added: "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",
477 Added: "patterns": [
478 Added: {
479 Added: "begin": "\\(",
480 Added: "end": "\\)",
481 Added: "name": "meta.enum.value.groovy",
482 Added: "patterns": [
483 Added: {
484 Added: "match": ",",
485 Added: "name": "punctuation.definition.seperator.parameter.groovy"
486 Added: },
487 Added: {
488 Added: "include": "#groovy-code"
489 Added: }
490 Added: ]
491 Added: }
492 Added: ]
493 Added: }
494 Added: ]
495 Added: },
496 Added: "groovy": {
497 Added: "patterns": [
498 Added: {
499 Added: "include": "#comments"
500 Added: },
501 Added: {
502 Added: "include": "#class"
503 Added: },
504 Added: {
505 Added: "include": "#variables"
506 Added: },
507 Added: {
508 Added: "include": "#methods"
509 Added: },
510 Added: {
511 Added: "include": "#annotations"
512 Added: },
513 Added: {
514 Added: "include": "#groovy-code"
515 Added: }
516 Added: ]
517 Added: },
518 Added: "groovy-code": {
519 Added: "patterns": [
520 Added: {
521 Added: "include": "#groovy-code-minus-map-keys"
522 Added: },
523 Added: {
524 Added: "include": "#map-keys"
525 Added: }
526 Added: ]
527 Added: },
528 Added: "groovy-code-minus-map-keys": {
529 Added: "comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that",
530 Added: "patterns": [
531 Added: {
532 Added: "include": "#comments"
533 Added: },
534 Added: {
535 Added: "include": "#annotations"
536 Added: },
537 Added: {
538 Added: "include": "#support-functions"
539 Added: },
540 Added: {
541 Added: "include": "#keyword-language"
542 Added: },
543 Added: {
544 Added: "include": "#values"
545 Added: },
546 Added: {
547 Added: "include": "#anonymous-classes-and-new"
548 Added: },
549 Added: {
550 Added: "include": "#keyword-operator"
551 Added: },
552 Added: {
553 Added: "include": "#types"
554 Added: },
555 Added: {
556 Added: "include": "#storage-modifiers"
557 Added: },
558 Added: {
559 Added: "include": "#parens"
560 Added: },
561 Added: {
562 Added: "include": "#closures"
563 Added: },
564 Added: {
565 Added: "include": "#braces"
566 Added: }
567 Added: ]
568 Added: },
569 Added: "keyword": {
570 Added: "patterns": [
571 Added: {
572 Added: "include": "#keyword-operator"
573 Added: },
574 Added: {
575 Added: "include": "#keyword-language"
576 Added: }
577 Added: ]
578 Added: },
579 Added: "keyword-language": {
580 Added: "patterns": [
581 Added: {
582 Added: "match": "\\b(try|catch|finally|throw)\\b",
583 Added: "name": "keyword.control.exception.groovy"
584 Added: },
585 Added: {
586 Added: "match": "\\b((?<!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b",
587 Added: "name": "keyword.control.groovy"
588 Added: },
589 Added: {
590 Added: "begin": "\\bcase\\b",
591 Added: "beginCaptures": {
592 Added: "0": {
593 Added: "name": "keyword.control.groovy"
594 Added: }
595 Added: },
596 Added: "end": ":",
597 Added: "endCaptures": {
598 Added: "0": {
599 Added: "name": "punctuation.definition.case-terminator.groovy"
600 Added: }
601 Added: },
602 Added: "name": "meta.case.groovy",
603 Added: "patterns": [
604 Added: {
605 Added: "include": "#groovy-code-minus-map-keys"
606 Added: }
607 Added: ]
608 Added: },
609 Added: {
610 Added: "begin": "\\b(assert)\\s",
611 Added: "beginCaptures": {
612 Added: "1": {
613 Added: "name": "keyword.control.assert.groovy"
614 Added: }
615 Added: },
616 Added: "end": "$|;|}",
617 Added: "name": "meta.declaration.assertion.groovy",
618 Added: "patterns": [
619 Added: {
620 Added: "match": ":",
621 Added: "name": "keyword.operator.assert.expression-seperator.groovy"
622 Added: },
623 Added: {
624 Added: "include": "#groovy-code-minus-map-keys"
625 Added: }
626 Added: ]
627 Added: },
628 Added: {
629 Added: "match": "\\b(throws)\\b",
630 Added: "name": "keyword.other.throws.groovy"
631 Added: }
632 Added: ]
633 Added: },
634 Added: "keyword-operator": {
635 Added: "patterns": [
636 Added: {
637 Added: "match": "\\b(as)\\b",
638 Added: "name": "keyword.operator.as.groovy"
639 Added: },
640 Added: {
641 Added: "match": "\\b(in)\\b",
642 Added: "name": "keyword.operator.in.groovy"
643 Added: },
644 Added: {
645 Added: "match": "\\?\\:",
646 Added: "name": "keyword.operator.elvis.groovy"
647 Added: },
648 Added: {
649 Added: "match": "\\*\\:",
650 Added: "name": "keyword.operator.spreadmap.groovy"
651 Added: },
652 Added: {
653 Added: "match": "\\.\\.",
654 Added: "name": "keyword.operator.range.groovy"
655 Added: },
656 Added: {
657 Added: "match": "\\->",
658 Added: "name": "keyword.operator.arrow.groovy"
659 Added: },
660 Added: {
661 Added: "match": "<<",
662 Added: "name": "keyword.operator.leftshift.groovy"
663 Added: },
664 Added: {
665 Added: "match": "(?<=\\S)\\.(?=\\S)",
666 Added: "name": "keyword.operator.navigation.groovy"
667 Added: },
668 Added: {
669 Added: "match": "(?<=\\S)\\?\\.(?=\\S)",
670 Added: "name": "keyword.operator.safe-navigation.groovy"
671 Added: },
672 Added: {
673 Added: "begin": "\\?",
674 Added: "beginCaptures": {
675 Added: "0": {
676 Added: "name": "keyword.operator.ternary.groovy"
677 Added: }
678 Added: },
679 Added: "end": "(?=$|\\)|}|])",
680 Added: "name": "meta.evaluation.ternary.groovy",
681 Added: "patterns": [
682 Added: {
683 Added: "match": ":",
684 Added: "name": "keyword.operator.ternary.expression-seperator.groovy"
685 Added: },
686 Added: {
687 Added: "include": "#groovy-code-minus-map-keys"
688 Added: }
689 Added: ]
690 Added: },
691 Added: {
692 Added: "match": "==~",
693 Added: "name": "keyword.operator.match.groovy"
694 Added: },
695 Added: {
696 Added: "match": "=~",
697 Added: "name": "keyword.operator.find.groovy"
698 Added: },
699 Added: {
700 Added: "match": "\\b(instanceof)\\b",
701 Added: "name": "keyword.operator.instanceof.groovy"
702 Added: },
703 Added: {
704 Added: "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)",
705 Added: "name": "keyword.operator.comparison.groovy"
706 Added: },
707 Added: {
708 Added: "match": "=",
709 Added: "name": "keyword.operator.assignment.groovy"
710 Added: },
711 Added: {
712 Added: "match": "(\\-\\-|\\+\\+)",
713 Added: "name": "keyword.operator.increment-decrement.groovy"
714 Added: },
715 Added: {
716 Added: "match": "(\\-|\\+|\\*|\\/|%)",
717 Added: "name": "keyword.operator.arithmetic.groovy"
718 Added: },
719 Added: {
720 Added: "match": "(!|&&|\\|\\|)",
721 Added: "name": "keyword.operator.logical.groovy"
722 Added: }
723 Added: ]
724 Added: },
725 Added: "language-variables": {
726 Added: "patterns": [
727 Added: {
728 Added: "match": "\\b(this|super)\\b",
729 Added: "name": "variable.language.groovy"
730 Added: }
731 Added: ]
732 Added: },
733 Added: "map-keys": {
734 Added: "patterns": [
735 Added: {
736 Added: "captures": {
737 Added: "1": {
738 Added: "name": "constant.other.key.groovy"
739 Added: },
740 Added: "2": {
741 Added: "name": "punctuation.definition.seperator.key-value.groovy"
742 Added: }
743 Added: },
744 Added: "match": "(\\w+)\\s*(:)"
745 Added: }
746 Added: ]
747 Added: },
748 Added: "method-call": {
749 Added: "begin": "([\\w$]+)(\\()",
750 Added: "beginCaptures": {
751 Added: "1": {
752 Added: "name": "meta.method.groovy"
753 Added: },
754 Added: "2": {
755 Added: "name": "punctuation.definition.method-parameters.begin.groovy"
756 Added: }
757 Added: },
758 Added: "end": "\\)",
759 Added: "endCaptures": {
760 Added: "0": {
761 Added: "name": "punctuation.definition.method-parameters.end.groovy"
762 Added: }
763 Added: },
764 Added: "name": "meta.method-call.groovy",
765 Added: "patterns": [
766 Added: {
767 Added: "match": ",",
768 Added: "name": "punctuation.definition.seperator.parameter.groovy"
769 Added: },
770 Added: {
771 Added: "include": "#groovy-code"
772 Added: }
773 Added: ]
774 Added: },
775 Added: "method-content": {
776 Added: "patterns": [
777 Added: {
778 Added: "match": "\\s"
779 Added: },
780 Added: {
781 Added: "include": "#annotations"
782 Added: },
783 Added: {
784 Added: "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",
785 Added: "end": "(?=[\\w$]+\\s*\\()",
786 Added: "name": "meta.method.return-type.java",
787 Added: "patterns": [
788 Added: {
789 Added: "include": "#storage-modifiers"
790 Added: },
791 Added: {
792 Added: "include": "#types"
793 Added: }
794 Added: ]
795 Added: },
796 Added: {
797 Added: "begin": "([\\w$]+)\\s*\\(",
798 Added: "beginCaptures": {
799 Added: "1": {
800 Added: "name": "entity.name.function.java"
801 Added: }
802 Added: },
803 Added: "end": "\\)",
804 Added: "name": "meta.definition.method.signature.java",
805 Added: "patterns": [
806 Added: {
807 Added: "begin": "(?=[^)])",
808 Added: "end": "(?=\\))",
809 Added: "name": "meta.method.parameters.groovy",
810 Added: "patterns": [
811 Added: {
812 Added: "begin": "(?=[^,)])",
813 Added: "end": "(?=,|\\))",
814 Added: "name": "meta.method.parameter.groovy",
815 Added: "patterns": [
816 Added: {
817 Added: "match": ",",
818 Added: "name": "punctuation.definition.separator.groovy"
819 Added: },
820 Added: {
821 Added: "begin": "=",
822 Added: "beginCaptures": {
823 Added: "0": {
824 Added: "name": "keyword.operator.assignment.groovy"
825 Added: }
826 Added: },
827 Added: "end": "(?=,|\\))",
828 Added: "name": "meta.parameter.default.groovy",
829 Added: "patterns": [
830 Added: {
831 Added: "include": "#groovy-code"
832 Added: }
833 Added: ]
834 Added: },
835 Added: {
836 Added: "include": "#parameters"
837 Added: }
838 Added: ]
839 Added: }
840 Added: ]
841 Added: }
842 Added: ]
843 Added: },
844 Added: {
845 Added: "begin": "(?=<)",
846 Added: "end": "(?=\\s)",
847 Added: "name": "meta.method.paramerised-type.groovy",
848 Added: "patterns": [
849 Added: {
850 Added: "begin": "<",
851 Added: "end": ">",
852 Added: "name": "storage.type.parameters.groovy",
853 Added: "patterns": [
854 Added: {
855 Added: "include": "#types"
856 Added: },
857 Added: {
858 Added: "match": ",",
859 Added: "name": "punctuation.definition.seperator.groovy"
860 Added: }
861 Added: ]
862 Added: }
863 Added: ]
864 Added: },
865 Added: {
866 Added: "begin": "throws",
867 Added: "beginCaptures": {
868 Added: "0": {
869 Added: "name": "storage.modifier.groovy"
870 Added: }
871 Added: },
872 Added: "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))",
873 Added: "name": "meta.throwables.groovy",
874 Added: "patterns": [
875 Added: {
876 Added: "include": "#object-types"
877 Added: }
878 Added: ]
879 Added: },
880 Added: {
881 Added: "begin": "{",
882 Added: "end": "(?=})",
883 Added: "name": "meta.method.body.java",
884 Added: "patterns": [
885 Added: {
886 Added: "include": "#groovy-code"
887 Added: }
888 Added: ]
889 Added: }
890 Added: ]
891 Added: },
892 Added: "methods": {
893 Added: "applyEndPatternLast": 1,
894 Added: "begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))",
895 Added: "end": "}|(?=[^{])",
896 Added: "name": "meta.definition.method.groovy",
897 Added: "patterns": [
898 Added: {
899 Added: "include": "#method-content"
900 Added: }
901 Added: ]
902 Added: },
903 Added: "nest_curly": {
904 Added: "begin": "\\{",
905 Added: "captures": {
906 Added: "0": {
907 Added: "name": "punctuation.section.scope.groovy"
908 Added: }
909 Added: },
910 Added: "end": "\\}",
911 Added: "patterns": [
912 Added: {
913 Added: "include": "#nest_curly"
914 Added: }
915 Added: ]
916 Added: },
917 Added: "numbers": {
918 Added: "patterns": [
919 Added: {
920 Added: "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",
921 Added: "name": "constant.numeric.groovy"
922 Added: }
923 Added: ]
924 Added: },
925 Added: "object-types": {
926 Added: "patterns": [
927 Added: {
928 Added: "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",
929 Added: "end": ">|[^\\w\\s,\\?<\\[\\]]",
930 Added: "name": "storage.type.generic.groovy",
931 Added: "patterns": [
932 Added: {
933 Added: "include": "#object-types"
934 Added: },
935 Added: {
936 Added: "begin": "<",
937 Added: "comment": "This is just to support <>'s with no actual type prefix",
938 Added: "end": ">|[^\\w\\s,\\[\\]<]",
939 Added: "name": "storage.type.generic.groovy"
940 Added: }
941 Added: ]
942 Added: },
943 Added: {
944 Added: "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",
945 Added: "end": "(?=[^\\]\\s])",
946 Added: "name": "storage.type.object.array.groovy",
947 Added: "patterns": [
948 Added: {
949 Added: "begin": "\\[",
950 Added: "end": "\\]",
951 Added: "patterns": [
952 Added: {
953 Added: "include": "#groovy"
954 Added: }
955 Added: ]
956 Added: }
957 Added: ]
958 Added: },
959 Added: {
960 Added: "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",
961 Added: "name": "storage.type.groovy"
962 Added: }
963 Added: ]
964 Added: },
965 Added: "object-types-inherited": {
966 Added: "patterns": [
967 Added: {
968 Added: "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",
969 Added: "end": ">|[^\\w\\s,\\?<\\[\\]]",
970 Added: "name": "entity.other.inherited-class.groovy",
971 Added: "patterns": [
972 Added: {
973 Added: "include": "#object-types-inherited"
974 Added: },
975 Added: {
976 Added: "begin": "<",
977 Added: "comment": "This is just to support <>'s with no actual type prefix",
978 Added: "end": ">|[^\\w\\s,\\[\\]<]",
979 Added: "name": "storage.type.generic.groovy"
980 Added: }
981 Added: ]
982 Added: },
983 Added: {
984 Added: "captures": {
985 Added: "1": {
986 Added: "name": "keyword.operator.dereference.groovy"
987 Added: }
988 Added: },
989 Added: "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",
990 Added: "name": "entity.other.inherited-class.groovy"
991 Added: }
992 Added: ]
993 Added: },
994 Added: "parameters": {
995 Added: "patterns": [
996 Added: {
997 Added: "include": "#annotations"
998 Added: },
999 Added: {
1000 Added: "include": "#storage-modifiers"
1001 Added: },
1002 Added: {
1003 Added: "include": "#types"
1004 Added: },
1005 Added: {
1006 Added: "match": "\\w+",
1007 Added: "name": "variable.parameter.method.groovy"
1008 Added: }
1009 Added: ]
1010 Added: },
1011 Added: "parens": {
1012 Added: "begin": "\\(",
1013 Added: "end": "\\)",
1014 Added: "patterns": [
1015 Added: {
1016 Added: "include": "#groovy-code"
1017 Added: }
1018 Added: ]
1019 Added: },
1020 Added: "primitive-arrays": {
1021 Added: "patterns": [
1022 Added: {
1023 Added: "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",
1024 Added: "name": "storage.type.primitive.array.groovy"
1025 Added: }
1026 Added: ]
1027 Added: },
1028 Added: "primitive-types": {
1029 Added: "patterns": [
1030 Added: {
1031 Added: "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",
1032 Added: "name": "storage.type.primitive.groovy"
1033 Added: }
1034 Added: ]
1035 Added: },
1036 Added: "regexp": {
1037 Added: "patterns": [
1038 Added: {
1039 Added: "begin": "/(?=[^/]+/([^>]|$))",
1040 Added: "beginCaptures": {
1041 Added: "0": {
1042 Added: "name": "punctuation.definition.string.regexp.begin.groovy"
1043 Added: }
1044 Added: },
1045 Added: "end": "/",
1046 Added: "endCaptures": {
1047 Added: "0": {
1048 Added: "name": "punctuation.definition.string.regexp.end.groovy"
1049 Added: }
1050 Added: },
1051 Added: "name": "string.regexp.groovy",
1052 Added: "patterns": [
1053 Added: {
1054 Added: "match": "\\\\.",
1055 Added: "name": "constant.character.escape.groovy"
1056 Added: }
1057 Added: ]
1058 Added: },
1059 Added: {
1060 Added: "begin": "~\"",
1061 Added: "beginCaptures": {
1062 Added: "0": {
1063 Added: "name": "punctuation.definition.string.regexp.begin.groovy"
1064 Added: }
1065 Added: },
1066 Added: "end": "\"",
1067 Added: "endCaptures": {
1068 Added: "0": {
1069 Added: "name": "punctuation.definition.string.regexp.end.groovy"
1070 Added: }
1071 Added: },
1072 Added: "name": "string.regexp.compiled.groovy",
1073 Added: "patterns": [
1074 Added: {
1075 Added: "match": "\\\\.",
1076 Added: "name": "constant.character.escape.groovy"
1077 Added: }
1078 Added: ]
1079 Added: }
1080 Added: ]
1081 Added: },
1082 Added: "storage-modifiers": {
1083 Added: "patterns": [
1084 Added: {
1085 Added: "match": "\\b(private|protected|public)\\b",
1086 Added: "name": "storage.modifier.access-control.groovy"
1087 Added: },
1088 Added: {
1089 Added: "match": "\\b(static)\\b",
1090 Added: "name": "storage.modifier.static.groovy"
1091 Added: },
1092 Added: {
1093 Added: "match": "\\b(final)\\b",
1094 Added: "name": "storage.modifier.final.groovy"
1095 Added: },
1096 Added: {
1097 Added: "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b",
1098 Added: "name": "storage.modifier.other.groovy"
1099 Added: }
1100 Added: ]
1101 Added: },
1102 Added: "string-quoted-double": {
1103 Added: "begin": "\"",
1104 Added: "beginCaptures": {
1105 Added: "0": {
1106 Added: "name": "punctuation.definition.string.begin.groovy"
1107 Added: }
1108 Added: },
1109 Added: "end": "\"",
1110 Added: "endCaptures": {
1111 Added: "0": {
1112 Added: "name": "punctuation.definition.string.end.groovy"
1113 Added: }
1114 Added: },
1115 Added: "name": "string.quoted.double.groovy",
1116 Added: "patterns": [
1117 Added: {
1118 Added: "include": "#string-quoted-double-contents"
1119 Added: }
1120 Added: ]
1121 Added: },
1122 Added: "string-quoted-double-contents": {
1123 Added: "patterns": [
1124 Added: {
1125 Added: "match": "\\\\.",
1126 Added: "name": "constant.character.escape.groovy"
1127 Added: },
1128 Added: {
1129 Added: "applyEndPatternLast": 1,
1130 Added: "begin": "\\$\\w",
1131 Added: "end": "(?=\\W)",
1132 Added: "name": "variable.other.interpolated.groovy",
1133 Added: "patterns": [
1134 Added: {
1135 Added: "match": "\\w",
1136 Added: "name": "variable.other.interpolated.groovy"
1137 Added: },
1138 Added: {
1139 Added: "match": "\\.",
1140 Added: "name": "keyword.other.dereference.groovy"
1141 Added: }
1142 Added: ]
1143 Added: },
1144 Added: {
1145 Added: "begin": "\\$\\{",
1146 Added: "captures": {
1147 Added: "0": {
1148 Added: "name": "punctuation.section.embedded.groovy"
1149 Added: }
1150 Added: },
1151 Added: "end": "\\}",
1152 Added: "name": "source.groovy.embedded.source",
1153 Added: "patterns": [
1154 Added: {
1155 Added: "include": "#nest_curly"
1156 Added: }
1157 Added: ]
1158 Added: }
1159 Added: ]
1160 Added: },
1161 Added: "string-quoted-double-multiline": {
1162 Added: "begin": "\"\"\"",
1163 Added: "beginCaptures": {
1164 Added: "0": {
1165 Added: "name": "punctuation.definition.string.begin.groovy"
1166 Added: }
1167 Added: },
1168 Added: "end": "\"\"\"",
1169 Added: "endCaptures": {
1170 Added: "0": {
1171 Added: "name": "punctuation.definition.string.end.groovy"
1172 Added: }
1173 Added: },
1174 Added: "name": "string.quoted.double.multiline.groovy",
1175 Added: "patterns": [
1176 Added: {
1177 Added: "include": "#string-quoted-double-contents"
1178 Added: }
1179 Added: ]
1180 Added: },
1181 Added: "string-quoted-single": {
1182 Added: "begin": "'",
1183 Added: "beginCaptures": {
1184 Added: "0": {
1185 Added: "name": "punctuation.definition.string.begin.groovy"
1186 Added: }
1187 Added: },
1188 Added: "end": "'",
1189 Added: "endCaptures": {
1190 Added: "0": {
1191 Added: "name": "punctuation.definition.string.end.groovy"
1192 Added: }
1193 Added: },
1194 Added: "name": "string.quoted.single.groovy",
1195 Added: "patterns": [
1196 Added: {
1197 Added: "include": "#string-quoted-single-contents"
1198 Added: }
1199 Added: ]
1200 Added: },
1201 Added: "string-quoted-single-contents": {
1202 Added: "patterns": [
1203 Added: {
1204 Added: "match": "\\\\.",
1205 Added: "name": "constant.character.escape.groovy"
1206 Added: }
1207 Added: ]
1208 Added: },
1209 Added: "string-quoted-single-multiline": {
1210 Added: "begin": "'''",
1211 Added: "beginCaptures": {
1212 Added: "0": {
1213 Added: "name": "punctuation.definition.string.begin.groovy"
1214 Added: }
1215 Added: },
1216 Added: "end": "'''",
1217 Added: "endCaptures": {
1218 Added: "0": {
1219 Added: "name": "punctuation.definition.string.end.groovy"
1220 Added: }
1221 Added: },
1222 Added: "name": "string.quoted.single.multiline.groovy",
1223 Added: "patterns": [
1224 Added: {
1225 Added: "include": "#string-quoted-single-contents"
1226 Added: }
1227 Added: ]
1228 Added: },
1229 Added: "strings": {
1230 Added: "patterns": [
1231 Added: {
1232 Added: "include": "#string-quoted-double-multiline"
1233 Added: },
1234 Added: {
1235 Added: "include": "#string-quoted-single-multiline"
1236 Added: },
1237 Added: {
1238 Added: "include": "#string-quoted-double"
1239 Added: },
1240 Added: {
1241 Added: "include": "#string-quoted-single"
1242 Added: },
1243 Added: {
1244 Added: "include": "#regexp"
1245 Added: }
1246 Added: ]
1247 Added: },
1248 Added: "structures": {
1249 Added: "begin": "\\[",
1250 Added: "beginCaptures": {
1251 Added: "0": {
1252 Added: "name": "punctuation.definition.structure.begin.groovy"
1253 Added: }
1254 Added: },
1255 Added: "end": "\\]",
1256 Added: "endCaptures": {
1257 Added: "0": {
1258 Added: "name": "punctuation.definition.structure.end.groovy"
1259 Added: }
1260 Added: },
1261 Added: "name": "meta.structure.groovy",
1262 Added: "patterns": [
1263 Added: {
1264 Added: "include": "#groovy-code"
1265 Added: },
1266 Added: {
1267 Added: "match": ",",
1268 Added: "name": "punctuation.definition.separator.groovy"
1269 Added: }
1270 Added: ]
1271 Added: },
1272 Added: "support-functions": {
1273 Added: "patterns": [
1274 Added: {
1275 Added: "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",
1276 Added: "name": "support.function.print.groovy"
1277 Added: },
1278 Added: {
1279 Added: "match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b",
1280 Added: "name": "support.function.testing.groovy"
1281 Added: }
1282 Added: ]
1283 Added: },
1284 Added: "types": {
1285 Added: "patterns": [
1286 Added: {
1287 Added: "match": "\\b(def)\\b",
1288 Added: "name": "storage.type.def.groovy"
1289 Added: },
1290 Added: {
1291 Added: "include": "#primitive-types"
1292 Added: },
1293 Added: {
1294 Added: "include": "#primitive-arrays"
1295 Added: },
1296 Added: {
1297 Added: "include": "#object-types"
1298 Added: }
1299 Added: ]
1300 Added: },
1301 Added: "values": {
1302 Added: "patterns": [
1303 Added: {
1304 Added: "include": "#language-variables"
1305 Added: },
1306 Added: {
1307 Added: "include": "#strings"
1308 Added: },
1309 Added: {
1310 Added: "include": "#numbers"
1311 Added: },
1312 Added: {
1313 Added: "include": "#constants"
1314 Added: },
1315 Added: {
1316 Added: "include": "#types"
1317 Added: },
1318 Added: {
1319 Added: "include": "#structures"
1320 Added: },
1321 Added: {
1322 Added: "include": "#method-call"
1323 Added: }
1324 Added: ]
1325 Added: },
1326 Added: "variables": {
1327 Added: "applyEndPatternLast": 1,
1328 Added: "patterns": [
1329 Added: {
1330 Added: "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))",
1331 Added: "end": ";|$",
1332 Added: "name": "meta.definition.variable.groovy",
1333 Added: "patterns": [
1334 Added: {
1335 Added: "match": "\\s"
1336 Added: },
1337 Added: {
1338 Added: "captures": {
1339 Added: "1": {
1340 Added: "name": "constant.variable.groovy"
1341 Added: }
1342 Added: },
1343 Added: "match": "([A-Z_0-9]+)\\s+(?=\\=)"
1344 Added: },
1345 Added: {
1346 Added: "captures": {
1347 Added: "1": {
1348 Added: "name": "meta.definition.variable.name.groovy"
1349 Added: }
1350 Added: },
1351 Added: "match": "(\\w[^\\s,]*)\\s+(?=\\=)"
1352 Added: },
1353 Added: {
1354 Added: "begin": "=",
1355 Added: "beginCaptures": {
1356 Added: "0": {
1357 Added: "name": "keyword.operator.assignment.groovy"
1358 Added: }
1359 Added: },
1360 Added: "end": "$",
1361 Added: "patterns": [
1362 Added: {
1363 Added: "include": "#groovy-code"
1364 Added: }
1365 Added: ]
1366 Added: },
1367 Added: {
1368 Added: "captures": {
1369 Added: "1": {
1370 Added: "name": "meta.definition.variable.name.groovy"
1371 Added: }
1372 Added: },
1373 Added: "match": "(\\w[^\\s=]*)(?=\\s*($|;))"
1374 Added: },
1375 Added: {
1376 Added: "include": "#groovy-code"
1377 Added: }
1378 Added: ]
1379 Added: }
1380 Added: ]
1381 Added: }
1382 Added: },
1383 Added: "scopeName": "source.groovy",
1384 Added: "uuid": "B3A64888-EBBB-4436-8D9E-F1169C5D7613"
1385 Added: }
lib/grammars/julia.json
index 00000000..84f524f9 000000..100644
@@ -0,0 +1,1100 @@
1 Added: {
2 Added: "comment": "This grammar is used by Atom (Oniguruma), GitHub (PCRE), and VSCode (Oniguruma),\nso all regexps must be compatible with both engines.\n\nSpecs:\n- https://github.com/kkos/oniguruma/blob/master/doc/RE\n- https://www.pcre.org/current/doc/html/",
3 Added: "fileTypes": [
4 Added: "jl"
5 Added: ],
6 Added: "scopeName": "source.julia",
7 Added: "firstLineMatch": "^#!.*\\bjulia\\s*$",
8 Added: "name": "Julia",
9 Added: "patterns": [
10 Added: {
11 Added: "include": "#operator"
12 Added: },
13 Added: {
14 Added: "include": "#array"
15 Added: },
16 Added: {
17 Added: "include": "#string"
18 Added: },
19 Added: {
20 Added: "include": "#parentheses"
21 Added: },
22 Added: {
23 Added: "include": "#bracket"
24 Added: },
25 Added: {
26 Added: "include": "#function_decl"
27 Added: },
28 Added: {
29 Added: "include": "#function_call"
30 Added: },
31 Added: {
32 Added: "include": "#for_block"
33 Added: },
34 Added: {
35 Added: "include": "#keyword"
36 Added: },
37 Added: {
38 Added: "include": "#number"
39 Added: },
40 Added: {
41 Added: "include": "#comment"
42 Added: },
43 Added: {
44 Added: "include": "#type_decl"
45 Added: },
46 Added: {
47 Added: "include": "#symbol"
48 Added: },
49 Added: {
50 Added: "include": "#punctuation"
51 Added: }
52 Added: ],
53 Added: "repository": {
54 Added: "array": {
55 Added: "patterns": [
56 Added: {
57 Added: "begin": "\\[",
58 Added: "beginCaptures": {
59 Added: "0": {
60 Added: "name": "meta.bracket.julia"
61 Added: }
62 Added: },
63 Added: "end": "(\\])((?:\\.)?'*)",
64 Added: "endCaptures": {
65 Added: "1": {
66 Added: "name": "meta.bracket.julia"
67 Added: },
68 Added: "2": {
69 Added: "name": "keyword.operator.transpose.julia"
70 Added: }
71 Added: },
72 Added: "name": "meta.array.julia",
73 Added: "patterns": [
74 Added: {
75 Added: "match": "\\bbegin\\b",
76 Added: "name": "constant.numeric.julia"
77 Added: },
78 Added: {
79 Added: "match": "\\bend\\b",
80 Added: "name": "constant.numeric.julia"
81 Added: },
82 Added: {
83 Added: "include": "#self_no_for_block"
84 Added: }
85 Added: ]
86 Added: }
87 Added: ]
88 Added: },
89 Added: "parentheses": {
90 Added: "patterns": [
91 Added: {
92 Added: "begin": "\\(",
93 Added: "beginCaptures": {
94 Added: "0": {
95 Added: "name": "meta.bracket.julia"
96 Added: }
97 Added: },
98 Added: "end": "(\\))((?:\\.)?'*)",
99 Added: "endCaptures": {
100 Added: "1": {
101 Added: "name": "meta.bracket.julia"
102 Added: },
103 Added: "2": {
104 Added: "name": "keyword.operator.transpose.julia"
105 Added: }
106 Added: },
107 Added: "patterns": [
108 Added: {
109 Added: "include": "#self_no_for_block"
110 Added: }
111 Added: ]
112 Added: }
113 Added: ]
114 Added: },
115 Added: "bracket": {
116 Added: "patterns": [
117 Added: {
118 Added: "begin": "\\{",
119 Added: "beginCaptures": {
120 Added: "0": {
121 Added: "name": "meta.bracket.julia"
122 Added: }
123 Added: },
124 Added: "end": "(\\})((?:\\.)?'*)",
125 Added: "endCaptures": {
126 Added: "1": {
127 Added: "name": "meta.bracket.julia"
128 Added: },
129 Added: "2": {
130 Added: "name": "keyword.operator.transpose.julia"
131 Added: }
132 Added: },
133 Added: "patterns": [
134 Added: {
135 Added: "include": "#self_no_for_block"
136 Added: }
137 Added: ]
138 Added: }
139 Added: ]
140 Added: },
141 Added: "comment_tags": {
142 Added: "patterns": [
143 Added: {
144 Added: "match": "\\bTODO\\b",
145 Added: "name": "keyword.other.comment-annotation.julia"
146 Added: },
147 Added: {
148 Added: "match": "\\bFIXME\\b",
149 Added: "name": "keyword.other.comment-annotation.julia"
150 Added: },
151 Added: {
152 Added: "match": "\\bCHANGED\\b",
153 Added: "name": "keyword.other.comment-annotation.julia"
154 Added: },
155 Added: {
156 Added: "match": "\\bXXX\\b",
157 Added: "name": "keyword.other.comment-annotation.julia"
158 Added: }
159 Added: ]
160 Added: },
161 Added: "comment": {
162 Added: "patterns": [
163 Added: {
164 Added: "include": "#comment_block"
165 Added: },
166 Added: {
167 Added: "begin": "#",
168 Added: "beginCaptures": {
169 Added: "0": {
170 Added: "name": "punctuation.definition.comment.julia"
171 Added: }
172 Added: },
173 Added: "end": "\\n",
174 Added: "name": "comment.line.number-sign.julia",
175 Added: "patterns": [
176 Added: {
177 Added: "include": "#comment_tags"
178 Added: }
179 Added: ]
180 Added: }
181 Added: ]
182 Added: },
183 Added: "comment_block": {
184 Added: "patterns": [
185 Added: {
186 Added: "begin": "#=",
187 Added: "beginCaptures": {
188 Added: "0": {
189 Added: "name": "punctuation.definition.comment.begin.julia"
190 Added: }
191 Added: },
192 Added: "end": "=#",
193 Added: "endCaptures": {
194 Added: "0": {
195 Added: "name": "punctuation.definition.comment.end.julia"
196 Added: }
197 Added: },
198 Added: "name": "comment.block.number-sign-equals.julia",
199 Added: "patterns": [
200 Added: {
201 Added: "include": "#comment_tags"
202 Added: },
203 Added: {
204 Added: "include": "#comment_block"
205 Added: }
206 Added: ]
207 Added: }
208 Added: ]
209 Added: },
210 Added: "function_call": {
211 Added: "patterns": [
212 Added: {
213 Added: "begin": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(\\()",
214 Added: "beginCaptures": {
215 Added: "1": {
216 Added: "name": "support.function.julia"
217 Added: },
218 Added: "2": {
219 Added: "name": "support.type.julia"
220 Added: },
221 Added: "3": {
222 Added: "name": "meta.bracket.julia"
223 Added: }
224 Added: },
225 Added: "end": "\\)(('|(\\.'))*\\.?')?",
226 Added: "endCaptures": {
227 Added: "0": {
228 Added: "name": "meta.bracket.julia"
229 Added: },
230 Added: "1": {
231 Added: "name": "keyword.operator.transposed-func.julia"
232 Added: }
233 Added: },
234 Added: "patterns": [
235 Added: {
236 Added: "include": "#self_no_for_block"
237 Added: }
238 Added: ]
239 Added: }
240 Added: ]
241 Added: },
242 Added: "function_decl": {
243 Added: "patterns": [
244 Added: {
245 Added: "captures": {
246 Added: "1": {
247 Added: "name": "entity.name.function.julia"
248 Added: },
249 Added: "2": {
250 Added: "name": "support.type.julia"
251 Added: }
252 Added: },
253 Added: "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\([^#]*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s+.+?)?\\s*?=(?![=>]))",
254 Added: "comment": "first group is function name\nSecond group is type parameters (e.g. {T<:Number, S})\nThen open parens\nThen a lookahead ensures that we are followed by:\n - anything (function arguments)\n - 0 or more spaces\n - Finally an equal sign\nNegative lookahead ensures we don't have another equal sign (not `==`)"
255 Added: },
256 Added: {
257 Added: "captures": {
258 Added: "1": {
259 Added: "name": "keyword.other.julia"
260 Added: },
261 Added: "2": {
262 Added: "name": "keyword.operator.dots.julia"
263 Added: },
264 Added: "3": {
265 Added: "name": "entity.name.function.julia"
266 Added: },
267 Added: "4": {
268 Added: "name": "support.type.julia"
269 Added: }
270 Added: },
271 Added: "match": "\\b(function|macro)(?:\\s+(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(\\.))?((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()",
272 Added: "comment": "similar regex to previous, but with keyword not 1-line syntax"
273 Added: }
274 Added: ]
275 Added: },
276 Added: "for_block": {
277 Added: "comment": "for blocks need to be special-cased to support tokenizing 'outer' properly",
278 Added: "patterns": [
279 Added: {
280 Added: "begin": "\\b(for)\\b",
281 Added: "beginCaptures": {
282 Added: "0": {
283 Added: "name": "keyword.control.julia"
284 Added: }
285 Added: },
286 Added: "end": "(?<!,|\\s)(\\s*\\n)",
287 Added: "patterns": [
288 Added: {
289 Added: "match": "\\bouter\\b",
290 Added: "name": "keyword.other.julia"
291 Added: },
292 Added: {
293 Added: "include": "$self"
294 Added: }
295 Added: ]
296 Added: }
297 Added: ]
298 Added: },
299 Added: "keyword": {
300 Added: "patterns": [
301 Added: {
302 Added: "match": "\\b(?<![:_\\.])(?:function|mutable\\s+struct|struct|macro|quote|abstract\\s+type|primitive\\s+type|typegroup|module|baremodule|where)\\b",
303 Added: "name": "keyword.other.julia"
304 Added: },
305 Added: {
306 Added: "match": "\\b(?<![:_])(?:if|else|elseif|for|while|begin|let|do|try|catch|finally|return|break|continue)\\b",
307 Added: "name": "keyword.control.julia"
308 Added: },
309 Added: {
310 Added: "match": "\\b(?<![:_])end\\b",
311 Added: "name": "keyword.control.end.julia"
312 Added: },
313 Added: {
314 Added: "match": "\\b(?<![:_])(?:global|local|const)\\b",
315 Added: "name": "keyword.storage.modifier.julia"
316 Added: },
317 Added: {
318 Added: "match": "\\b(?<![:_])(?:export)\\b",
319 Added: "name": "keyword.control.export.julia"
320 Added: },
321 Added: {
322 Added: "match": "^(?:public)\\b",
323 Added: "name": "keyword.control.public.julia"
324 Added: },
325 Added: {
326 Added: "match": "\\b(?<![:_])(?:import)\\b",
327 Added: "name": "keyword.control.import.julia"
328 Added: },
329 Added: {
330 Added: "match": "\\b(?<![:_])(?:using)\\b",
331 Added: "name": "keyword.control.using.julia"
332 Added: },
333 Added: {
334 Added: "match": "(?<=\\S\\s+)\\b(as)\\b(?=\\s+\\S)",
335 Added: "name": "keyword.control.as.julia"
336 Added: },
337 Added: {
338 Added: "match": "@(\\.|(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*|[\\p{S}\\p{P}&&[^\\s@]]+)",
339 Added: "name": "support.function.macro.julia"
340 Added: }
341 Added: ]
342 Added: },
343 Added: "number": {
344 Added: "patterns": [
345 Added: {
346 Added: "match": "((?<!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))(?:(?:\\b0(?:x|X)[0-9a-fA-F](?:_?[0-9a-fA-F])*)|(?:\\b0o[0-7](?:_?[0-7])*)|(?:\\b0b[0-1](?:_?[0-1])*)|(?:(?:\\b[0-9](?:_?[0-9])*\\.?(?!\\.)(?:[_0-9]*))|(?:\\b\\.[0-9](?:_?[0-9])*))(?:[efE][+-]?[0-9](?:_?[0-9])*)?(?:im\\b|Inf(?:16|32|64)?\\b|NaN(?:16|32|64)?\\b|π\\b|pi\\b|ℯ\\b)?|\\b[0-9]+|\\bInf(?:16|32|64)?\\b|\\bNaN(?:16|32|64)?\\b|\\bπ\\b|\\bpi\\b|\\bℯ\\b))('*)",
347 Added: "captures": {
348 Added: "1": {
349 Added: "name": "constant.numeric.julia"
350 Added: },
351 Added: "2": {
352 Added: "name": "keyword.operator.conjugate-number.julia"
353 Added: }
354 Added: }
355 Added: },
356 Added: {
357 Added: "match": "\\bARGS\\b|\\bC_NULL\\b|\\bDEPOT_PATH\\b|\\bENDIAN_BOM\\b|\\bENV\\b|\\bLOAD_PATH\\b|\\bPROGRAM_FILE\\b|\\bstdin\\b|\\bstdout\\b|\\bstderr\\b|\\bVERSION\\b|\\bdevnull\\b",
358 Added: "name": "constant.global.julia"
359 Added: },
360 Added: {
361 Added: "match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b|\\bmissing\\b",
362 Added: "name": "constant.language.julia"
363 Added: }
364 Added: ]
365 Added: },
366 Added: "operator": {
367 Added: "patterns": [
368 Added: {
369 Added: "match": "\\.?(?:<-->|->|-->|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)",
370 Added: "name": "keyword.operator.arrow.julia"
371 Added: },
372 Added: {
373 Added: "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",
374 Added: "name": "keyword.operator.update.julia"
375 Added: },
376 Added: {
377 Added: "match": "(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",
378 Added: "name": "keyword.operator.shift.julia"
379 Added: },
380 Added: {
381 Added: "match": "(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?<!\\\\)\"))?)))(?:\\.\\.\\.)?((?:\\.)?'*)",
382 Added: "captures": {
383 Added: "1": {
384 Added: "name": "keyword.operator.relation.types.julia"
385 Added: },
386 Added: "2": {
387 Added: "name": "support.type.julia"
388 Added: },
389 Added: "3": {
390 Added: "name": "keyword.operator.transpose.julia"
391 Added: }
392 Added: }
393 Added: },
394 Added: {
395 Added: "match": "(\\.?((?<!<)<=|(?<!>)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))",
396 Added: "name": "keyword.operator.relation.julia"
397 Added: },
398 Added: {
399 Added: "match": "(?<=\\s)(?:\\?)(?=\\s)",
400 Added: "name": "keyword.operator.ternary.julia"
401 Added: },
402 Added: {
403 Added: "match": "(?<=\\s)(?:\\:)(?=\\s)",
404 Added: "name": "keyword.operator.ternary.julia"
405 Added: },
406 Added: {
407 Added: "match": "(?:\\|\\||&&|(?<!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))!)",
408 Added: "name": "keyword.operator.boolean.julia"
409 Added: },
410 Added: {
411 Added: "match": "(?<=[[:word:]⁺-ₜ!′∇\\)\\]\\}])(?::)",
412 Added: "name": "keyword.operator.range.julia"
413 Added: },
414 Added: {
415 Added: "match": "(?:\\|>)",
416 Added: "name": "keyword.operator.applies.julia"
417 Added: },
418 Added: {
419 Added: "match": "(?:\\||\\.\\||\\&|\\.\\&|~|¬|\\.~|⊻|\\.⊻)",
420 Added: "name": "keyword.operator.bitwise.julia"
421 Added: },
422 Added: {
423 Added: "match": "\\.?(?:\\+\\+|\\-\\-|\\+|\\-|−|¦|\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|↑|↓|√|∛|∜|⋆|±|∓)",
424 Added: "name": "keyword.operator.arithmetic.julia"
425 Added: },
426 Added: {
427 Added: "match": "(?:∘)",
428 Added: "name": "keyword.operator.compose.julia"
429 Added: },
430 Added: {
431 Added: "match": "(?:::|(?<=\\s)isa(?=\\s))",
432 Added: "name": "keyword.operator.isa.julia"
433 Added: },
434 Added: {
435 Added: "match": "(?:(?<=\\s)in(?=\\s))",
436 Added: "name": "keyword.operator.relation.in.julia"
437 Added: },
438 Added: {
439 Added: "match": "(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+|…|⁝|⋮|⋱|⋰|⋯)",
440 Added: "name": "keyword.operator.dots.julia"
441 Added: },
442 Added: {
443 Added: "match": "(?:\\$)(?=.+)",
444 Added: "name": "keyword.operator.interpolation.julia"
445 Added: },
446 Added: {
447 Added: "captures": {
448 Added: "2": {
449 Added: "name": "keyword.operator.transposed-variable.julia"
450 Added: }
451 Added: },
452 Added: "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')"
453 Added: },
454 Added: {
455 Added: "captures": {
456 Added: "1": {
457 Added: "name": "bracket.end.julia"
458 Added: },
459 Added: "2": {
460 Added: "name": "keyword.operator.transposed-matrix.julia"
461 Added: }
462 Added: },
463 Added: "match": "(\\])((?:'|(?:\\.'))*\\.?')"
464 Added: },
465 Added: {
466 Added: "captures": {
467 Added: "1": {
468 Added: "name": "bracket.end.julia"
469 Added: },
470 Added: "2": {
471 Added: "name": "keyword.operator.transposed-parens.julia"
472 Added: }
473 Added: },
474 Added: "match": "(\\))((?:'|(?:\\.'))*\\.?')"
475 Added: }
476 Added: ]
477 Added: },
478 Added: "string": {
479 Added: "patterns": [
480 Added: {
481 Added: "begin": "(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))",
482 Added: "beginCaptures": {
483 Added: "1": {
484 Added: "name": "support.function.macro.julia"
485 Added: },
486 Added: "2": {
487 Added: "name": "punctuation.definition.string.begin.julia"
488 Added: }
489 Added: },
490 Added: "end": "(\"\"\") ?(->)?",
491 Added: "endCaptures": {
492 Added: "1": {
493 Added: "name": "punctuation.definition.string.end.julia"
494 Added: },
495 Added: "2": {
496 Added: "name": "keyword.operator.arrow.julia"
497 Added: }
498 Added: },
499 Added: "name": "string.docstring.julia",
500 Added: "patterns": [
501 Added: {
502 Added: "include": "#string_escaped_char"
503 Added: },
504 Added: {
505 Added: "include": "#string_dollar_sign_interpolate"
506 Added: }
507 Added: ]
508 Added: },
509 Added: {
510 Added: "begin": "(i?cxx)(\"\"\")",
511 Added: "beginCaptures": {
512 Added: "1": {
513 Added: "name": "support.function.macro.julia"
514 Added: },
515 Added: "2": {
516 Added: "name": "punctuation.definition.string.begin.julia"
517 Added: }
518 Added: },
519 Added: "end": "\"\"\"",
520 Added: "endCaptures": {
521 Added: "0": {
522 Added: "name": "punctuation.definition.string.end.julia"
523 Added: }
524 Added: },
525 Added: "name": "embed.cxx.julia",
526 Added: "contentName": "source.cpp",
527 Added: "patterns": [
528 Added: {
529 Added: "include": "source.cpp"
530 Added: },
531 Added: {
532 Added: "include": "#string_dollar_sign_interpolate"
533 Added: }
534 Added: ]
535 Added: },
536 Added: {
537 Added: "begin": "(py)(\"\"\")",
538 Added: "beginCaptures": {
539 Added: "1": {
540 Added: "name": "support.function.macro.julia"
541 Added: },
542 Added: "2": {
543 Added: "name": "punctuation.definition.string.begin.julia"
544 Added: }
545 Added: },
546 Added: "end": "([\\s\\w]*)(\"\"\")",
547 Added: "endCaptures": {
548 Added: "2": {
549 Added: "name": "punctuation.definition.string.end.julia"
550 Added: }
551 Added: },
552 Added: "name": "embed.python.julia",
553 Added: "contentName": "source.python",
554 Added: "patterns": [
555 Added: {
556 Added: "include": "source.python"
557 Added: },
558 Added: {
559 Added: "include": "#string_dollar_sign_interpolate"
560 Added: }
561 Added: ]
562 Added: },
563 Added: {
564 Added: "begin": "(js)(\"\"\")",
565 Added: "beginCaptures": {
566 Added: "1": {
567 Added: "name": "support.function.macro.julia"
568 Added: },
569 Added: "2": {
570 Added: "name": "punctuation.definition.string.begin.julia"
571 Added: }
572 Added: },
573 Added: "end": "\"\"\"",
574 Added: "endCaptures": {
575 Added: "0": {
576 Added: "name": "punctuation.definition.string.end.julia"
577 Added: }
578 Added: },
579 Added: "name": "embed.js.julia",
580 Added: "contentName": "source.js",
581 Added: "patterns": [
582 Added: {
583 Added: "include": "source.js"
584 Added: },
585 Added: {
586 Added: "include": "#string_dollar_sign_interpolate"
587 Added: }
588 Added: ]
589 Added: },
590 Added: {
591 Added: "begin": "(R)(\"\"\")",
592 Added: "beginCaptures": {
593 Added: "1": {
594 Added: "name": "support.function.macro.julia"
595 Added: },
596 Added: "2": {
597 Added: "name": "punctuation.definition.string.begin.julia"
598 Added: }
599 Added: },
600 Added: "end": "\"\"\"",
601 Added: "endCaptures": {
602 Added: "0": {
603 Added: "name": "punctuation.definition.string.end.julia"
604 Added: }
605 Added: },
606 Added: "name": "embed.R.julia",
607 Added: "contentName": "source.r",
608 Added: "patterns": [
609 Added: {
610 Added: "include": "source.r"
611 Added: },
612 Added: {
613 Added: "include": "#string_dollar_sign_interpolate"
614 Added: }
615 Added: ]
616 Added: },
617 Added: {
618 Added: "begin": "(raw)(\"\"\")",
619 Added: "beginCaptures": {
620 Added: "1": {
621 Added: "name": "support.function.macro.julia"
622 Added: },
623 Added: "2": {
624 Added: "name": "punctuation.definition.string.begin.julia"
625 Added: }
626 Added: },
627 Added: "end": "\"\"\"",
628 Added: "name": "string.quoted.other.julia",
629 Added: "endCaptures": {
630 Added: "0": {
631 Added: "name": "punctuation.definition.string.end.julia"
632 Added: }
633 Added: },
634 Added: "patterns": [
635 Added: {
636 Added: "include": "#string_escaped_char_raw"
637 Added: }
638 Added: ]
639 Added: },
640 Added: {
641 Added: "begin": "(raw)(\")",
642 Added: "beginCaptures": {
643 Added: "1": {
644 Added: "name": "support.function.macro.julia"
645 Added: },
646 Added: "2": {
647 Added: "name": "punctuation.definition.string.begin.julia"
648 Added: }
649 Added: },
650 Added: "end": "\"",
651 Added: "name": "string.quoted.other.julia",
652 Added: "endCaptures": {
653 Added: "0": {
654 Added: "name": "punctuation.definition.string.end.julia"
655 Added: }
656 Added: },
657 Added: "patterns": [
658 Added: {
659 Added: "include": "#string_escaped_char_raw"
660 Added: }
661 Added: ]
662 Added: },
663 Added: {
664 Added: "begin": "(sql)(\"\"\")",
665 Added: "beginCaptures": {
666 Added: "1": {
667 Added: "name": "support.function.macro.julia"
668 Added: },
669 Added: "2": {
670 Added: "name": "punctuation.definition.string.begin.julia"
671 Added: }
672 Added: },
673 Added: "end": "\"\"\"",
674 Added: "endCaptures": {
675 Added: "0": {
676 Added: "name": "punctuation.definition.string.end.julia"
677 Added: }
678 Added: },
679 Added: "name": "embed.sql.julia",
680 Added: "contentName": "meta.embedded.inline.sql",
681 Added: "patterns": [
682 Added: {
683 Added: "include": "source.sql"
684 Added: },
685 Added: {
686 Added: "include": "#string_dollar_sign_interpolate"
687 Added: }
688 Added: ]
689 Added: },
690 Added: {
691 Added: "begin": "var\"\"\"",
692 Added: "end": "\"\"\"",
693 Added: "name": "constant.other.symbol.julia",
694 Added: "patterns": [
695 Added: {
696 Added: "include": "#string_escaped_char"
697 Added: }
698 Added: ]
699 Added: },
700 Added: {
701 Added: "begin": "var\"",
702 Added: "end": "\"",
703 Added: "name": "constant.other.symbol.julia",
704 Added: "patterns": [
705 Added: {
706 Added: "include": "#string_escaped_char"
707 Added: }
708 Added: ]
709 Added: },
710 Added: {
711 Added: "begin": "^\\s?(doc)?(\"\"\")\\s?$",
712 Added: "beginCaptures": {
713 Added: "1": {
714 Added: "name": "support.function.macro.julia"
715 Added: },
716 Added: "2": {
717 Added: "name": "punctuation.definition.string.begin.julia"
718 Added: }
719 Added: },
720 Added: "end": "(\"\"\")",
721 Added: "endCaptures": {
722 Added: "1": {
723 Added: "name": "punctuation.definition.string.end.julia"
724 Added: }
725 Added: },
726 Added: "name": "string.docstring.julia",
727 Added: "comment": "This only matches docstrings that start and end with triple quotes on\ntheir own line in the void",
728 Added: "patterns": [
729 Added: {
730 Added: "include": "#string_escaped_char"
731 Added: },
732 Added: {
733 Added: "include": "#string_dollar_sign_interpolate"
734 Added: }
735 Added: ]
736 Added: },
737 Added: {
738 Added: "begin": "'",
739 Added: "beginCaptures": {
740 Added: "0": {
741 Added: "name": "punctuation.definition.string.begin.julia"
742 Added: }
743 Added: },
744 Added: "end": "'(?!')",
745 Added: "endCaptures": {
746 Added: "0": {
747 Added: "name": "punctuation.definition.string.end.julia"
748 Added: }
749 Added: },
750 Added: "name": "string.quoted.single.julia",
751 Added: "patterns": [
752 Added: {
753 Added: "include": "#string_escaped_char"
754 Added: }
755 Added: ]
756 Added: },
757 Added: {
758 Added: "begin": "\"\"\"",
759 Added: "beginCaptures": {
760 Added: "0": {
761 Added: "name": "punctuation.definition.string.multiline.begin.julia"
762 Added: }
763 Added: },
764 Added: "end": "\"\"\"",
765 Added: "endCaptures": {
766 Added: "0": {
767 Added: "name": "punctuation.definition.string.multiline.end.julia"
768 Added: }
769 Added: },
770 Added: "name": "string.quoted.triple.double.julia",
771 Added: "comment": "multi-line string with triple double quotes",
772 Added: "patterns": [
773 Added: {
774 Added: "include": "#string_escaped_char"
775 Added: },
776 Added: {
777 Added: "include": "#string_dollar_sign_interpolate"
778 Added: }
779 Added: ]
780 Added: },
781 Added: {
782 Added: "name": "string.quoted.double.julia",
783 Added: "begin": "\"(?!\"\")",
784 Added: "beginCaptures": {
785 Added: "0": {
786 Added: "name": "punctuation.definition.string.begin.julia"
787 Added: }
788 Added: },
789 Added: "end": "\"",
790 Added: "endCaptures": {
791 Added: "0": {
792 Added: "name": "punctuation.definition.string.end.julia"
793 Added: }
794 Added: },
795 Added: "comment": "String with single pair of double quotes. Regex matches isolated double quote",
796 Added: "patterns": [
797 Added: {
798 Added: "include": "#string_escaped_char"
799 Added: },
800 Added: {
801 Added: "include": "#string_dollar_sign_interpolate"
802 Added: }
803 Added: ]
804 Added: },
805 Added: {
806 Added: "begin": "r\"\"\"",
807 Added: "beginCaptures": {
808 Added: "0": {
809 Added: "name": "punctuation.definition.string.regexp.begin.julia"
810 Added: }
811 Added: },
812 Added: "end": "(\"\"\")([imsx]{0,4})?",
813 Added: "endCaptures": {
814 Added: "1": {
815 Added: "name": "punctuation.definition.string.regexp.end.julia"
816 Added: },
817 Added: "2": {
818 Added: "comment": "I took this scope name from python regex grammar",
819 Added: "name": "keyword.other.option-toggle.regexp.julia"
820 Added: }
821 Added: },
822 Added: "name": "string.regexp.julia",
823 Added: "patterns": [
824 Added: {
825 Added: "include": "#string_escaped_char"
826 Added: }
827 Added: ]
828 Added: },
829 Added: {
830 Added: "begin": "r\"",
831 Added: "beginCaptures": {
832 Added: "0": {
833 Added: "name": "punctuation.definition.string.regexp.begin.julia"
834 Added: }
835 Added: },
836 Added: "end": "(\")([imsx]{0,4})?",
837 Added: "endCaptures": {
838 Added: "1": {
839 Added: "name": "punctuation.definition.string.regexp.end.julia"
840 Added: },
841 Added: "2": {
842 Added: "comment": "I took this scope name from python regex grammar",
843 Added: "name": "keyword.other.option-toggle.regexp.julia"
844 Added: }
845 Added: },
846 Added: "name": "string.regexp.julia",
847 Added: "patterns": [
848 Added: {
849 Added: "include": "#string_escaped_char"
850 Added: }
851 Added: ]
852 Added: },
853 Added: {
854 Added: "begin": "(?<!\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)\"\"\"",
855 Added: "beginCaptures": {
856 Added: "0": {
857 Added: "name": "punctuation.definition.string.begin.julia"
858 Added: },
859 Added: "1": {
860 Added: "name": "support.function.macro.julia"
861 Added: }
862 Added: },
863 Added: "end": "(\"\"\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?",
864 Added: "endCaptures": {
865 Added: "1": {
866 Added: "name": "punctuation.definition.string.end.julia"
867 Added: },
868 Added: "2": {
869 Added: "name": "support.function.macro.julia"
870 Added: }
871 Added: },
872 Added: "name": "string.quoted.other.julia",
873 Added: "patterns": [
874 Added: {
875 Added: "include": "#string_escaped_char"
876 Added: }
877 Added: ]
878 Added: },
879 Added: {
880 Added: "begin": "(?<!\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)\"",
881 Added: "beginCaptures": {
882 Added: "0": {
883 Added: "name": "punctuation.definition.string.begin.julia"
884 Added: },
885 Added: "1": {
886 Added: "name": "support.function.macro.julia"
887 Added: }
888 Added: },
889 Added: "end": "(?<![^\\\\]\\\\)(\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?",
890 Added: "endCaptures": {
891 Added: "1": {
892 Added: "name": "punctuation.definition.string.end.julia"
893 Added: },
894 Added: "2": {
895 Added: "name": "support.function.macro.julia"
896 Added: }
897 Added: },
898 Added: "name": "string.quoted.other.julia",
899 Added: "patterns": [
900 Added: {
901 Added: "include": "#string_escaped_char"
902 Added: }
903 Added: ]
904 Added: },
905 Added: {
906 Added: "begin": "(?<!`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?```",
907 Added: "beginCaptures": {
908 Added: "0": {
909 Added: "name": "punctuation.definition.string.begin.julia"
910 Added: },
911 Added: "1": {
912 Added: "name": "support.function.macro.julia"
913 Added: }
914 Added: },
915 Added: "end": "(```)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?",
916 Added: "endCaptures": {
917 Added: "1": {
918 Added: "name": "punctuation.definition.string.end.julia"
919 Added: },
920 Added: "2": {
921 Added: "name": "support.function.macro.julia"
922 Added: }
923 Added: },
924 Added: "name": "string.interpolated.backtick.julia",
925 Added: "patterns": [
926 Added: {
927 Added: "include": "#string_escaped_char"
928 Added: },
929 Added: {
930 Added: "include": "#string_dollar_sign_interpolate"
931 Added: }
932 Added: ]
933 Added: },
934 Added: {
935 Added: "begin": "(?<!`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?`",
936 Added: "beginCaptures": {
937 Added: "0": {
938 Added: "name": "punctuation.definition.string.begin.julia"
939 Added: },
940 Added: "1": {
941 Added: "name": "support.function.macro.julia"
942 Added: }
943 Added: },
944 Added: "end": "(?<![^\\\\]\\\\)(`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?",
945 Added: "endCaptures": {
946 Added: "1": {
947 Added: "name": "punctuation.definition.string.end.julia"
948 Added: },
949 Added: "2": {
950 Added: "name": "support.function.macro.julia"
951 Added: }
952 Added: },
953 Added: "name": "string.interpolated.backtick.julia",
954 Added: "patterns": [
955 Added: {
956 Added: "include": "#string_escaped_char"
957 Added: },
958 Added: {
959 Added: "include": "#string_dollar_sign_interpolate"
960 Added: }
961 Added: ]
962 Added: }
963 Added: ]
964 Added: },
965 Added: "string_escaped_char": {
966 Added: "patterns": [
967 Added: {
968 Added: "match": "\\\\(\\\\|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)",
969 Added: "name": "constant.character.escape.julia"
970 Added: }
971 Added: ]
972 Added: },
973 Added: "string_escaped_char_raw": {
974 Added: "comment": "In raw strings, backslashes only escape anything when preceding a quote. An even number of backslashes causes all of them to be escaped and the quote to be literal; an odd number escapes all backslashes (except for the one preceding the quote) and the quote.",
975 Added: "patterns": [
976 Added: {
977 Added: "match": "(\\\\\\\\)*\\\\\"",
978 Added: "name": "constant.character.escape.julia"
979 Added: },
980 Added: {
981 Added: "match": "(\\\\\\\\)+(?=\")",
982 Added: "name": "constant.character.escape.julia"
983 Added: }
984 Added: ]
985 Added: },
986 Added: "string_dollar_sign_interpolate": {
987 Added: "patterns": [
988 Added: {
989 Added: "match": "\\$(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿]|[^\\p{^Sc}$])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]|[^\\p{^Sc}$])*",
990 Added: "name": "variable.interpolation.julia"
991 Added: },
992 Added: {
993 Added: "begin": "\\$(\\()",
994 Added: "beginCaptures": {
995 Added: "1": {
996 Added: "name": "meta.bracket.julia"
997 Added: }
998 Added: },
999 Added: "end": "\\)",
1000 Added: "endCaptures": {
1001 Added: "0": {
1002 Added: "name": "meta.bracket.julia"
1003 Added: }
1004 Added: },
1005 Added: "name": "variable.interpolation.julia",
1006 Added: "comment": "`punctuation.section.embedded`, `constant.escape`,\n& `meta.embedded.line` were considered but appear to have even spottier\nsupport among popular syntaxes.",
1007 Added: "patterns": [
1008 Added: {
1009 Added: "include": "#self_no_for_block"
1010 Added: }
1011 Added: ]
1012 Added: }
1013 Added: ]
1014 Added: },
1015 Added: "symbol": {
1016 Added: "patterns": [
1017 Added: {
1018 Added: "match": "(?<![[:word:]⁺-ₜ!′∇\\)\\]\\}]):(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(?!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))(?![\"`])",
1019 Added: "name": "constant.other.symbol.julia",
1020 Added: "comment": "This is string.quoted.symbol.julia in tpoisot's package"
1021 Added: }
1022 Added: ]
1023 Added: },
1024 Added: "type_decl": {
1025 Added: "patterns": [
1026 Added: {
1027 Added: "captures": {
1028 Added: "1": {
1029 Added: "name": "entity.name.type.julia"
1030 Added: },
1031 Added: "2": {
1032 Added: "name": "entity.other.inherited-class.julia"
1033 Added: },
1034 Added: "3": {
1035 Added: "name": "punctuation.separator.inheritance.julia"
1036 Added: }
1037 Added: },
1038 Added: "match": "(?>!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?",
1039 Added: "name": "meta.type.julia"
1040 Added: }
1041 Added: ]
1042 Added: },
1043 Added: "self_no_for_block": {
1044 Added: "comment": "Same as $self, but does not contain #for_block. 'outer' is not valid in some contexts (e.g. generators, comprehensions, indexing), so use this when matching those in begin/end patterns. Keep this up-to-date with $self!",
1045 Added: "patterns": [
1046 Added: {
1047 Added: "include": "#operator"
1048 Added: },
1049 Added: {
1050 Added: "include": "#array"
1051 Added: },
1052 Added: {
1053 Added: "include": "#string"
1054 Added: },
1055 Added: {
1056 Added: "include": "#parentheses"
1057 Added: },
1058 Added: {
1059 Added: "include": "#bracket"
1060 Added: },
1061 Added: {
1062 Added: "include": "#function_decl"
1063 Added: },
1064 Added: {
1065 Added: "include": "#function_call"
1066 Added: },
1067 Added: {
1068 Added: "include": "#keyword"
1069 Added: },
1070 Added: {
1071 Added: "include": "#number"
1072 Added: },
1073 Added: {
1074 Added: "include": "#comment"
1075 Added: },
1076 Added: {
1077 Added: "include": "#type_decl"
1078 Added: },
1079 Added: {
1080 Added: "include": "#symbol"
1081 Added: },
1082 Added: {
1083 Added: "include": "#punctuation"
1084 Added: }
1085 Added: ]
1086 Added: },
1087 Added: "punctuation": {
1088 Added: "patterns": [
1089 Added: {
1090 Added: "match": ",",
1091 Added: "name": "punctuation.separator.comma.julia"
1092 Added: },
1093 Added: {
1094 Added: "match": ";",
1095 Added: "name": "punctuation.separator.semicolon.julia"
1096 Added: }
1097 Added: ]
1098 Added: }
1099 Added: }
1100 Added: }
lib/grammars/lisp.json
index 00000000..eaabea87 000000..100644
@@ -0,0 +1,111 @@
1 Added: {
2 Added: "comment": "",
3 Added: "fileTypes": [
4 Added: "lisp",
5 Added: "cl",
6 Added: "l",
7 Added: "mud",
8 Added: "el"
9 Added: ],
10 Added: "keyEquivalent": "^~L",
11 Added: "name": "Lisp",
12 Added: "patterns": [
13 Added: {
14 Added: "begin": "(^[ \\t]+)?(?=;)",
15 Added: "beginCaptures": {
16 Added: "1": {
17 Added: "name": "punctuation.whitespace.comment.leading.lisp"
18 Added: }
19 Added: },
20 Added: "end": "(?!\\G)",
21 Added: "patterns": [
22 Added: {
23 Added: "begin": ";",
24 Added: "beginCaptures": {
25 Added: "0": {
26 Added: "name": "punctuation.definition.comment.lisp"
27 Added: }
28 Added: },
29 Added: "end": "\\n",
30 Added: "name": "comment.line.semicolon.lisp"
31 Added: }
32 Added: ]
33 Added: },
34 Added: {
35 Added: "captures": {
36 Added: "2": {
37 Added: "name": "storage.type.function-type.lisp"
38 Added: },
39 Added: "4": {
40 Added: "name": "entity.name.function.lisp"
41 Added: }
42 Added: },
43 Added: "match": "(\\b(?i:(defun|defgeneric|defmethod|defmacro|defclass|defstruct|defconstant|defvar|defparameter))\\b)(\\s+)((\\w|\\-|\\!|\\?)*)",
44 Added: "name": "meta.function.lisp"
45 Added: },
46 Added: {
47 Added: "captures": {
48 Added: "1": {
49 Added: "name": "punctuation.definition.constant.lisp"
50 Added: }
51 Added: },
52 Added: "match": "(#|\\?)(\\w|[\\\\+-=<>'\"&#])+",
53 Added: "name": "constant.character.lisp"
54 Added: },
55 Added: {
56 Added: "captures": {
57 Added: "1": {
58 Added: "name": "punctuation.definition.variable.lisp"
59 Added: },
60 Added: "3": {
61 Added: "name": "punctuation.definition.variable.lisp"
62 Added: }
63 Added: },
64 Added: "match": "(\\*)(\\S*)(\\*)",
65 Added: "name": "variable.other.global.lisp"
66 Added: },
67 Added: {
68 Added: "match": "\\b(?i:case|ecase|ccase|typecase|etypecase|ctypecase|do|dolist|dotimes|let|let\\*|labels|flet|loop|if|else|when|unless)\\b",
69 Added: "name": "keyword.control.lisp"
70 Added: },
71 Added: {
72 Added: "match": "\\b(?i:eq|neq|and|or|not)\\b",
73 Added: "name": "keyword.operator.lisp"
74 Added: },
75 Added: {
76 Added: "match": "\\b(?i:null|nil)\\b",
77 Added: "name": "constant.language.lisp"
78 Added: },
79 Added: {
80 Added: "match": "(?<![-\\w])(?i:cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn)(?![-\\w])",
81 Added: "name": "support.function.lisp"
82 Added: },
83 Added: {
84 Added: "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b",
85 Added: "name": "constant.numeric.lisp"
86 Added: },
87 Added: {
88 Added: "begin": "\"",
89 Added: "beginCaptures": {
90 Added: "0": {
91 Added: "name": "punctuation.definition.string.begin.lisp"
92 Added: }
93 Added: },
94 Added: "end": "\"",
95 Added: "endCaptures": {
96 Added: "0": {
97 Added: "name": "punctuation.definition.string.end.lisp"
98 Added: }
99 Added: },
100 Added: "name": "string.quoted.double.lisp",
101 Added: "patterns": [
102 Added: {
103 Added: "match": "\\\\.",
104 Added: "name": "constant.character.escape.lisp"
105 Added: }
106 Added: ]
107 Added: }
108 Added: ],
109 Added: "scopeName": "source.lisp",
110 Added: "uuid": "00D451C9-6B1D-11D9-8DFA-000D93589AF6"
111 Added: }
lib/grammars/objective-c.json
index 00000000..594c0ebf 000000..100644
@@ -0,0 +1,3755 @@
1 Added: {
2 Added: "information_for_contributors": [
3 Added: "This file has been converted from https://github.com/jeff-hykin/better-objc-syntax/blob/master/autogenerated/objc.tmLanguage.json",
4 Added: "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 Added: "Once accepted there, we are happy to receive an update request."
6 Added: ],
7 Added: "version": "https://github.com/jeff-hykin/better-objc-syntax/commit/119b75fb1f4d3e8726fa62588e3b935e0b719294",
8 Added: "name": "Objective-C",
9 Added: "scopeName": "source.objc",
10 Added: "patterns": [
11 Added: {
12 Added: "include": "#anonymous_pattern_1"
13 Added: },
14 Added: {
15 Added: "include": "#anonymous_pattern_2"
16 Added: },
17 Added: {
18 Added: "include": "#anonymous_pattern_3"
19 Added: },
20 Added: {
21 Added: "include": "#anonymous_pattern_4"
22 Added: },
23 Added: {
24 Added: "include": "#anonymous_pattern_5"
25 Added: },
26 Added: {
27 Added: "include": "#apple_foundation_functional_macros"
28 Added: },
29 Added: {
30 Added: "include": "#anonymous_pattern_7"
31 Added: },
32 Added: {
33 Added: "include": "#anonymous_pattern_8"
34 Added: },
35 Added: {
36 Added: "include": "#anonymous_pattern_9"
37 Added: },
38 Added: {
39 Added: "include": "#anonymous_pattern_10"
40 Added: },
41 Added: {
42 Added: "include": "#anonymous_pattern_11"
43 Added: },
44 Added: {
45 Added: "include": "#anonymous_pattern_12"
46 Added: },
47 Added: {
48 Added: "include": "#anonymous_pattern_13"
49 Added: },
50 Added: {
51 Added: "include": "#anonymous_pattern_14"
52 Added: },
53 Added: {
54 Added: "include": "#anonymous_pattern_15"
55 Added: },
56 Added: {
57 Added: "include": "#anonymous_pattern_16"
58 Added: },
59 Added: {
60 Added: "include": "#anonymous_pattern_17"
61 Added: },
62 Added: {
63 Added: "include": "#anonymous_pattern_18"
64 Added: },
65 Added: {
66 Added: "include": "#anonymous_pattern_19"
67 Added: },
68 Added: {
69 Added: "include": "#anonymous_pattern_20"
70 Added: },
71 Added: {
72 Added: "include": "#anonymous_pattern_21"
73 Added: },
74 Added: {
75 Added: "include": "#anonymous_pattern_22"
76 Added: },
77 Added: {
78 Added: "include": "#anonymous_pattern_23"
79 Added: },
80 Added: {
81 Added: "include": "#anonymous_pattern_24"
82 Added: },
83 Added: {
84 Added: "include": "#anonymous_pattern_25"
85 Added: },
86 Added: {
87 Added: "include": "#anonymous_pattern_26"
88 Added: },
89 Added: {
90 Added: "include": "#anonymous_pattern_27"
91 Added: },
92 Added: {
93 Added: "include": "#anonymous_pattern_28"
94 Added: },
95 Added: {
96 Added: "include": "#anonymous_pattern_29"
97 Added: },
98 Added: {
99 Added: "include": "#anonymous_pattern_30"
100 Added: },
101 Added: {
102 Added: "include": "#bracketed_content"
103 Added: },
104 Added: {
105 Added: "include": "#c_lang"
106 Added: }
107 Added: ],
108 Added: "repository": {
109 Added: "anonymous_pattern_1": {
110 Added: "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",
111 Added: "captures": {
112 Added: "1": {
113 Added: "name": "storage.type.objc"
114 Added: },
115 Added: "2": {
116 Added: "name": "punctuation.definition.storage.type.objc"
117 Added: },
118 Added: "4": {
119 Added: "name": "entity.name.type.objc"
120 Added: },
121 Added: "6": {
122 Added: "name": "punctuation.definition.entity.other.inherited-class.objc"
123 Added: },
124 Added: "7": {
125 Added: "name": "entity.other.inherited-class.objc"
126 Added: },
127 Added: "8": {
128 Added: "name": "meta.divider.objc"
129 Added: },
130 Added: "9": {
131 Added: "name": "meta.inherited-class.objc"
132 Added: }
133 Added: },
134 Added: "contentName": "meta.scope.interface.objc",
135 Added: "end": "((@)end)\\b",
136 Added: "name": "meta.interface-or-protocol.objc",
137 Added: "patterns": [
138 Added: {
139 Added: "include": "#interface_innards"
140 Added: }
141 Added: ]
142 Added: },
143 Added: "anonymous_pattern_10": {
144 Added: "captures": {
145 Added: "1": {
146 Added: "name": "punctuation.definition.keyword.objc"
147 Added: }
148 Added: },
149 Added: "match": "(@)(defs|encode)\\b",
150 Added: "name": "keyword.other.objc"
151 Added: },
152 Added: "anonymous_pattern_11": {
153 Added: "match": "\\bid\\b",
154 Added: "name": "storage.type.id.objc"
155 Added: },
156 Added: "anonymous_pattern_12": {
157 Added: "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",
158 Added: "name": "storage.type.objc"
159 Added: },
160 Added: "anonymous_pattern_13": {
161 Added: "captures": {
162 Added: "1": {
163 Added: "name": "punctuation.definition.storage.type.objc"
164 Added: }
165 Added: },
166 Added: "match": "(@)(class|protocol)\\b",
167 Added: "name": "storage.type.objc"
168 Added: },
169 Added: "anonymous_pattern_14": {
170 Added: "begin": "((@)selector)\\s*(\\()",
171 Added: "beginCaptures": {
172 Added: "1": {
173 Added: "name": "storage.type.objc"
174 Added: },
175 Added: "2": {
176 Added: "name": "punctuation.definition.storage.type.objc"
177 Added: },
178 Added: "3": {
179 Added: "name": "punctuation.definition.storage.type.objc"
180 Added: }
181 Added: },
182 Added: "contentName": "meta.selector.method-name.objc",
183 Added: "end": "(\\))",
184 Added: "endCaptures": {
185 Added: "1": {
186 Added: "name": "punctuation.definition.storage.type.objc"
187 Added: }
188 Added: },
189 Added: "name": "meta.selector.objc",
190 Added: "patterns": [
191 Added: {
192 Added: "captures": {
193 Added: "1": {
194 Added: "name": "punctuation.separator.arguments.objc"
195 Added: }
196 Added: },
197 Added: "match": "\\b(?:[a-zA-Z_:][\\w]*)+",
198 Added: "name": "support.function.any-method.name-of-parameter.objc"
199 Added: }
200 Added: ]
201 Added: },
202 Added: "anonymous_pattern_15": {
203 Added: "captures": {
204 Added: "1": {
205 Added: "name": "punctuation.definition.storage.modifier.objc"
206 Added: }
207 Added: },
208 Added: "match": "(@)(synchronized|public|package|private|protected)\\b",
209 Added: "name": "storage.modifier.objc"
210 Added: },
211 Added: "anonymous_pattern_16": {
212 Added: "match": "\\b(YES|NO|Nil|nil)\\b",
213 Added: "name": "constant.language.objc"
214 Added: },
215 Added: "anonymous_pattern_17": {
216 Added: "match": "\\bNSApp\\b",
217 Added: "name": "support.variable.foundation.objc"
218 Added: },
219 Added: "anonymous_pattern_18": {
220 Added: "captures": {
221 Added: "1": {
222 Added: "name": "punctuation.whitespace.support.function.cocoa.leopard.objc"
223 Added: },
224 Added: "2": {
225 Added: "name": "support.function.cocoa.leopard.objc"
226 Added: }
227 Added: },
228 Added: "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"
229 Added: },
230 Added: "anonymous_pattern_19": {
231 Added: "captures": {
232 Added: "1": {
233 Added: "name": "punctuation.whitespace.support.function.leading.cocoa.objc"
234 Added: },
235 Added: "2": {
236 Added: "name": "support.function.cocoa.objc"
237 Added: }
238 Added: },
239 Added: "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"
240 Added: },
241 Added: "anonymous_pattern_2": {
242 Added: "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",
243 Added: "captures": {
244 Added: "1": {
245 Added: "name": "storage.type.objc"
246 Added: },
247 Added: "2": {
248 Added: "name": "punctuation.definition.storage.type.objc"
249 Added: },
250 Added: "4": {
251 Added: "name": "entity.name.type.objc"
252 Added: },
253 Added: "5": {
254 Added: "name": "entity.other.inherited-class.objc"
255 Added: }
256 Added: },
257 Added: "contentName": "meta.scope.implementation.objc",
258 Added: "end": "((@)end)\\b",
259 Added: "name": "meta.implementation.objc",
260 Added: "patterns": [
261 Added: {
262 Added: "include": "#implementation_innards"
263 Added: }
264 Added: ]
265 Added: },
266 Added: "anonymous_pattern_20": {
267 Added: "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",
268 Added: "name": "support.class.cocoa.leopard.objc"
269 Added: },
270 Added: "anonymous_pattern_21": {
271 Added: "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",
272 Added: "name": "support.class.cocoa.objc"
273 Added: },
274 Added: "anonymous_pattern_22": {
275 Added: "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",
276 Added: "name": "support.type.cocoa.leopard.objc"
277 Added: },
278 Added: "anonymous_pattern_23": {
279 Added: "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",
280 Added: "name": "support.class.quartz.objc"
281 Added: },
282 Added: "anonymous_pattern_24": {
283 Added: "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",
284 Added: "name": "support.type.quartz.objc"
285 Added: },
286 Added: "anonymous_pattern_25": {
287 Added: "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",
288 Added: "name": "support.type.cocoa.objc"
289 Added: },
290 Added: "anonymous_pattern_26": {
291 Added: "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",
292 Added: "name": "support.constant.cocoa.objc"
293 Added: },
294 Added: "anonymous_pattern_27": {
295 Added: "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",
296 Added: "name": "support.constant.notification.cocoa.leopard.objc"
297 Added: },
298 Added: "anonymous_pattern_28": {
299 Added: "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",
300 Added: "name": "support.constant.notification.cocoa.objc"
301 Added: },
302 Added: "anonymous_pattern_29": {
303 Added: "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",
304 Added: "name": "support.constant.cocoa.leopard.objc"
305 Added: },
306 Added: "anonymous_pattern_3": {
307 Added: "begin": "@\"",
308 Added: "beginCaptures": {
309 Added: "0": {
310 Added: "name": "punctuation.definition.string.begin.objc"
311 Added: }
312 Added: },
313 Added: "end": "\"",
314 Added: "endCaptures": {
315 Added: "0": {
316 Added: "name": "punctuation.definition.string.end.objc"
317 Added: }
318 Added: },
319 Added: "name": "string.quoted.double.objc",
320 Added: "patterns": [
321 Added: {
322 Added: "include": "#string_escaped_char"
323 Added: },
324 Added: {
325 Added: "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t",
326 Added: "name": "constant.other.placeholder.objc"
327 Added: },
328 Added: {
329 Added: "include": "#string_placeholder"
330 Added: }
331 Added: ]
332 Added: },
333 Added: "anonymous_pattern_30": {
334 Added: "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",
335 Added: "name": "support.constant.cocoa.objc"
336 Added: },
337 Added: "anonymous_pattern_4": {
338 Added: "begin": "\\b(id)\\s*(?=<)",
339 Added: "beginCaptures": {
340 Added: "1": {
341 Added: "name": "storage.type.objc"
342 Added: }
343 Added: },
344 Added: "end": "(?<=>)",
345 Added: "name": "meta.id-with-protocol.objc",
346 Added: "patterns": [
347 Added: {
348 Added: "include": "#protocol_list"
349 Added: }
350 Added: ]
351 Added: },
352 Added: "anonymous_pattern_5": {
353 Added: "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",
354 Added: "name": "keyword.control.macro.objc"
355 Added: },
356 Added: "anonymous_pattern_7": {
357 Added: "captures": {
358 Added: "1": {
359 Added: "name": "punctuation.definition.keyword.objc"
360 Added: }
361 Added: },
362 Added: "match": "(@)(try|catch|finally|throw)\\b",
363 Added: "name": "keyword.control.exception.objc"
364 Added: },
365 Added: "anonymous_pattern_8": {
366 Added: "captures": {
367 Added: "1": {
368 Added: "name": "punctuation.definition.keyword.objc"
369 Added: }
370 Added: },
371 Added: "match": "(@)(synchronized)\\b",
372 Added: "name": "keyword.control.synchronize.objc"
373 Added: },
374 Added: "anonymous_pattern_9": {
375 Added: "captures": {
376 Added: "1": {
377 Added: "name": "punctuation.definition.keyword.objc"
378 Added: }
379 Added: },
380 Added: "match": "(@)(required|optional)\\b",
381 Added: "name": "keyword.control.protocol-specification.objc"
382 Added: },
383 Added: "apple_foundation_functional_macros": {
384 Added: "begin": "(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",
385 Added: "end": "\\)",
386 Added: "beginCaptures": {
387 Added: "1": {
388 Added: "name": "entity.name.function.preprocessor.apple-foundation.objc"
389 Added: },
390 Added: "2": {
391 Added: "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc"
392 Added: }
393 Added: },
394 Added: "endCaptures": {
395 Added: "0": {
396 Added: "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc"
397 Added: }
398 Added: },
399 Added: "name": "meta.preprocessor.macro.callable.apple-foundation.objc",
400 Added: "patterns": [
401 Added: {
402 Added: "include": "#c_lang"
403 Added: }
404 Added: ]
405 Added: },
406 Added: "bracketed_content": {
407 Added: "begin": "\\[",
408 Added: "beginCaptures": {
409 Added: "0": {
410 Added: "name": "punctuation.section.scope.begin.objc"
411 Added: }
412 Added: },
413 Added: "end": "\\]",
414 Added: "endCaptures": {
415 Added: "0": {
416 Added: "name": "punctuation.section.scope.end.objc"
417 Added: }
418 Added: },
419 Added: "name": "meta.bracketed.objc",
420 Added: "patterns": [
421 Added: {
422 Added: "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",
423 Added: "beginCaptures": {
424 Added: "1": {
425 Added: "name": "support.function.any-method.objc"
426 Added: },
427 Added: "2": {
428 Added: "name": "punctuation.separator.arguments.objc"
429 Added: }
430 Added: },
431 Added: "end": "(?=\\])",
432 Added: "name": "meta.function-call.predicate.objc",
433 Added: "patterns": [
434 Added: {
435 Added: "captures": {
436 Added: "1": {
437 Added: "name": "punctuation.separator.arguments.objc"
438 Added: }
439 Added: },
440 Added: "match": "\\bargument(Array|s)(:)",
441 Added: "name": "support.function.any-method.name-of-parameter.objc"
442 Added: },
443 Added: {
444 Added: "captures": {
445 Added: "1": {
446 Added: "name": "punctuation.separator.arguments.objc"
447 Added: }
448 Added: },
449 Added: "match": "\\b\\w+(:)",
450 Added: "name": "invalid.illegal.unknown-method.objc"
451 Added: },
452 Added: {
453 Added: "begin": "@\"",
454 Added: "beginCaptures": {
455 Added: "0": {
456 Added: "name": "punctuation.definition.string.begin.objc"
457 Added: }
458 Added: },
459 Added: "end": "\"",
460 Added: "endCaptures": {
461 Added: "0": {
462 Added: "name": "punctuation.definition.string.end.objc"
463 Added: }
464 Added: },
465 Added: "name": "string.quoted.double.objc",
466 Added: "patterns": [
467 Added: {
468 Added: "match": "\\b(AND|OR|NOT|IN)\\b",
469 Added: "name": "keyword.operator.logical.predicate.cocoa.objc"
470 Added: },
471 Added: {
472 Added: "match": "\\b(ALL|ANY|SOME|NONE)\\b",
473 Added: "name": "constant.language.predicate.cocoa.objc"
474 Added: },
475 Added: {
476 Added: "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",
477 Added: "name": "constant.language.predicate.cocoa.objc"
478 Added: },
479 Added: {
480 Added: "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",
481 Added: "name": "keyword.operator.comparison.predicate.cocoa.objc"
482 Added: },
483 Added: {
484 Added: "match": "\\bC(ASEINSENSITIVE|I)\\b",
485 Added: "name": "keyword.other.modifier.predicate.cocoa.objc"
486 Added: },
487 Added: {
488 Added: "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",
489 Added: "name": "keyword.other.predicate.cocoa.objc"
490 Added: },
491 Added: {
492 Added: "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
493 Added: "name": "constant.character.escape.objc"
494 Added: },
495 Added: {
496 Added: "match": "\\\\.",
497 Added: "name": "invalid.illegal.unknown-escape.objc"
498 Added: }
499 Added: ]
500 Added: },
501 Added: {
502 Added: "include": "#special_variables"
503 Added: },
504 Added: {
505 Added: "include": "#c_functions"
506 Added: },
507 Added: {
508 Added: "include": "$base"
509 Added: }
510 Added: ]
511 Added: },
512 Added: {
513 Added: "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",
514 Added: "beginCaptures": {
515 Added: "1": {
516 Added: "name": "support.function.any-method.objc"
517 Added: },
518 Added: "2": {
519 Added: "name": "punctuation.separator.arguments.objc"
520 Added: }
521 Added: },
522 Added: "end": "(?=\\])",
523 Added: "name": "meta.function-call.objc",
524 Added: "patterns": [
525 Added: {
526 Added: "captures": {
527 Added: "1": {
528 Added: "name": "punctuation.separator.arguments.objc"
529 Added: }
530 Added: },
531 Added: "match": "\\b\\w+(:)",
532 Added: "name": "support.function.any-method.name-of-parameter.objc"
533 Added: },
534 Added: {
535 Added: "include": "#special_variables"
536 Added: },
537 Added: {
538 Added: "include": "#c_functions"
539 Added: },
540 Added: {
541 Added: "include": "$base"
542 Added: }
543 Added: ]
544 Added: },
545 Added: {
546 Added: "include": "#special_variables"
547 Added: },
548 Added: {
549 Added: "include": "#c_functions"
550 Added: },
551 Added: {
552 Added: "include": "$self"
553 Added: }
554 Added: ]
555 Added: },
556 Added: "c_functions": {
557 Added: "patterns": [
558 Added: {
559 Added: "captures": {
560 Added: "1": {
561 Added: "name": "punctuation.whitespace.support.function.leading.objc"
562 Added: },
563 Added: "2": {
564 Added: "name": "support.function.C99.objc"
565 Added: }
566 Added: },
567 Added: "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"
568 Added: },
569 Added: {
570 Added: "captures": {
571 Added: "1": {
572 Added: "name": "punctuation.whitespace.function-call.leading.objc"
573 Added: },
574 Added: "2": {
575 Added: "name": "support.function.any-method.objc"
576 Added: },
577 Added: "3": {
578 Added: "name": "punctuation.definition.parameters.objc"
579 Added: }
580 Added: },
581 Added: "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()",
582 Added: "name": "meta.function-call.objc"
583 Added: }
584 Added: ]
585 Added: },
586 Added: "c_lang": {
587 Added: "patterns": [
588 Added: {
589 Added: "include": "#preprocessor-rule-enabled"
590 Added: },
591 Added: {
592 Added: "include": "#preprocessor-rule-disabled"
593 Added: },
594 Added: {
595 Added: "include": "#preprocessor-rule-conditional"
596 Added: },
597 Added: {
598 Added: "include": "#comments"
599 Added: },
600 Added: {
601 Added: "include": "#switch_statement"
602 Added: },
603 Added: {
604 Added: "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
605 Added: "name": "keyword.control.objc"
606 Added: },
607 Added: {
608 Added: "include": "#storage_types"
609 Added: },
610 Added: {
611 Added: "match": "typedef",
612 Added: "name": "keyword.other.typedef.objc"
613 Added: },
614 Added: {
615 Added: "match": "\\bin\\b",
616 Added: "name": "keyword.other.in.objc"
617 Added: },
618 Added: {
619 Added: "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",
620 Added: "name": "storage.modifier.objc"
621 Added: },
622 Added: {
623 Added: "match": "\\bk[A-Z]\\w*\\b",
624 Added: "name": "constant.other.variable.mac-classic.objc"
625 Added: },
626 Added: {
627 Added: "match": "\\bg[A-Z]\\w*\\b",
628 Added: "name": "variable.other.readwrite.global.mac-classic.objc"
629 Added: },
630 Added: {
631 Added: "match": "\\bs[A-Z]\\w*\\b",
632 Added: "name": "variable.other.readwrite.static.mac-classic.objc"
633 Added: },
634 Added: {
635 Added: "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
636 Added: "name": "constant.language.objc"
637 Added: },
638 Added: {
639 Added: "include": "#operators"
640 Added: },
641 Added: {
642 Added: "include": "#numbers"
643 Added: },
644 Added: {
645 Added: "include": "#strings"
646 Added: },
647 Added: {
648 Added: "include": "#special_variables"
649 Added: },
650 Added: {
651 Added: "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",
652 Added: "beginCaptures": {
653 Added: "1": {
654 Added: "name": "keyword.control.directive.define.objc"
655 Added: },
656 Added: "2": {
657 Added: "name": "punctuation.definition.directive.objc"
658 Added: },
659 Added: "3": {
660 Added: "name": "entity.name.function.preprocessor.objc"
661 Added: },
662 Added: "5": {
663 Added: "name": "punctuation.definition.parameters.begin.objc"
664 Added: },
665 Added: "6": {
666 Added: "name": "variable.parameter.preprocessor.objc"
667 Added: },
668 Added: "8": {
669 Added: "name": "punctuation.separator.parameters.objc"
670 Added: },
671 Added: "9": {
672 Added: "name": "punctuation.definition.parameters.end.objc"
673 Added: }
674 Added: },
675 Added: "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
676 Added: "name": "meta.preprocessor.macro.objc",
677 Added: "patterns": [
678 Added: {
679 Added: "include": "#preprocessor-rule-define-line-contents"
680 Added: }
681 Added: ]
682 Added: },
683 Added: {
684 Added: "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*",
685 Added: "beginCaptures": {
686 Added: "1": {
687 Added: "name": "keyword.control.directive.diagnostic.$3.objc"
688 Added: },
689 Added: "2": {
690 Added: "name": "punctuation.definition.directive.objc"
691 Added: }
692 Added: },
693 Added: "end": "(?<!\\\\)(?=\\n)",
694 Added: "name": "meta.preprocessor.diagnostic.objc",
695 Added: "patterns": [
696 Added: {
697 Added: "begin": "\"",
698 Added: "beginCaptures": {
699 Added: "0": {
700 Added: "name": "punctuation.definition.string.begin.objc"
701 Added: }
702 Added: },
703 Added: "end": "\"|(?<!\\\\)(?=\\s*\\n)",
704 Added: "endCaptures": {
705 Added: "0": {
706 Added: "name": "punctuation.definition.string.end.objc"
707 Added: }
708 Added: },
709 Added: "name": "string.quoted.double.objc",
710 Added: "patterns": [
711 Added: {
712 Added: "include": "#line_continuation_character"
713 Added: }
714 Added: ]
715 Added: },
716 Added: {
717 Added: "begin": "'",
718 Added: "beginCaptures": {
719 Added: "0": {
720 Added: "name": "punctuation.definition.string.begin.objc"
721 Added: }
722 Added: },
723 Added: "end": "'|(?<!\\\\)(?=\\s*\\n)",
724 Added: "endCaptures": {
725 Added: "0": {
726 Added: "name": "punctuation.definition.string.end.objc"
727 Added: }
728 Added: },
729 Added: "name": "string.quoted.single.objc",
730 Added: "patterns": [
731 Added: {
732 Added: "include": "#line_continuation_character"
733 Added: }
734 Added: ]
735 Added: },
736 Added: {
737 Added: "begin": "[^'\"]",
738 Added: "end": "(?<!\\\\)(?=\\s*\\n)",
739 Added: "name": "string.unquoted.single.objc",
740 Added: "patterns": [
741 Added: {
742 Added: "include": "#line_continuation_character"
743 Added: },
744 Added: {
745 Added: "include": "#comments"
746 Added: }
747 Added: ]
748 Added: }
749 Added: ]
750 Added: },
751 Added: {
752 Added: "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",
753 Added: "beginCaptures": {
754 Added: "1": {
755 Added: "name": "keyword.control.directive.$3.objc"
756 Added: },
757 Added: "2": {
758 Added: "name": "punctuation.definition.directive.objc"
759 Added: }
760 Added: },
761 Added: "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
762 Added: "name": "meta.preprocessor.include.objc",
763 Added: "patterns": [
764 Added: {
765 Added: "include": "#line_continuation_character"
766 Added: },
767 Added: {
768 Added: "begin": "\"",
769 Added: "beginCaptures": {
770 Added: "0": {
771 Added: "name": "punctuation.definition.string.begin.objc"
772 Added: }
773 Added: },
774 Added: "end": "\"",
775 Added: "endCaptures": {
776 Added: "0": {
777 Added: "name": "punctuation.definition.string.end.objc"
778 Added: }
779 Added: },
780 Added: "name": "string.quoted.double.include.objc"
781 Added: },
782 Added: {
783 Added: "begin": "<",
784 Added: "beginCaptures": {
785 Added: "0": {
786 Added: "name": "punctuation.definition.string.begin.objc"
787 Added: }
788 Added: },
789 Added: "end": ">",
790 Added: "endCaptures": {
791 Added: "0": {
792 Added: "name": "punctuation.definition.string.end.objc"
793 Added: }
794 Added: },
795 Added: "name": "string.quoted.other.lt-gt.include.objc"
796 Added: }
797 Added: ]
798 Added: },
799 Added: {
800 Added: "include": "#pragma-mark"
801 Added: },
802 Added: {
803 Added: "begin": "^\\s*((#)\\s*line)\\b",
804 Added: "beginCaptures": {
805 Added: "1": {
806 Added: "name": "keyword.control.directive.line.objc"
807 Added: },
808 Added: "2": {
809 Added: "name": "punctuation.definition.directive.objc"
810 Added: }
811 Added: },
812 Added: "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
813 Added: "name": "meta.preprocessor.objc",
814 Added: "patterns": [
815 Added: {
816 Added: "include": "#strings"
817 Added: },
818 Added: {
819 Added: "include": "#numbers"
820 Added: },
821 Added: {
822 Added: "include": "#line_continuation_character"
823 Added: }
824 Added: ]
825 Added: },
826 Added: {
827 Added: "begin": "^\\s*(?:((#)\\s*undef))\\b",
828 Added: "beginCaptures": {
829 Added: "1": {
830 Added: "name": "keyword.control.directive.undef.objc"
831 Added: },
832 Added: "2": {
833 Added: "name": "punctuation.definition.directive.objc"
834 Added: }
835 Added: },
836 Added: "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
837 Added: "name": "meta.preprocessor.objc",
838 Added: "patterns": [
839 Added: {
840 Added: "match": "[a-zA-Z_$][\\w$]*",
841 Added: "name": "entity.name.function.preprocessor.objc"
842 Added: },
843 Added: {
844 Added: "include": "#line_continuation_character"
845 Added: }
846 Added: ]
847 Added: },
848 Added: {
849 Added: "begin": "^\\s*(?:((#)\\s*pragma))\\b",
850 Added: "beginCaptures": {
851 Added: "1": {
852 Added: "name": "keyword.control.directive.pragma.objc"
853 Added: },
854 Added: "2": {
855 Added: "name": "punctuation.definition.directive.objc"
856 Added: }
857 Added: },
858 Added: "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
859 Added: "name": "meta.preprocessor.pragma.objc",
860 Added: "patterns": [
861 Added: {
862 Added: "include": "#strings"
863 Added: },
864 Added: {
865 Added: "match": "[a-zA-Z_$][\\w\\-$]*",
866 Added: "name": "entity.other.attribute-name.pragma.preprocessor.objc"
867 Added: },
868 Added: {
869 Added: "include": "#numbers"
870 Added: },
871 Added: {
872 Added: "include": "#line_continuation_character"
873 Added: }
874 Added: ]
875 Added: },
876 Added: {
877 Added: "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",
878 Added: "name": "support.type.sys-types.objc"
879 Added: },
880 Added: {
881 Added: "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",
882 Added: "name": "support.type.pthread.objc"
883 Added: },
884 Added: {
885 Added: "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",
886 Added: "name": "support.type.stdint.objc"
887 Added: },
888 Added: {
889 Added: "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",
890 Added: "name": "support.constant.mac-classic.objc"
891 Added: },
892 Added: {
893 Added: "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",
894 Added: "name": "support.type.mac-classic.objc"
895 Added: },
896 Added: {
897 Added: "match": "\\b([A-Za-z0-9_]+_t)\\b",
898 Added: "name": "support.type.posix-reserved.objc"
899 Added: },
900 Added: {
901 Added: "include": "#block"
902 Added: },
903 Added: {
904 Added: "include": "#parens"
905 Added: },
906 Added: {
907 Added: "name": "meta.function.objc",
908 Added: "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",
909 Added: "end": "(?<=\\))",
910 Added: "patterns": [
911 Added: {
912 Added: "include": "#function-innards"
913 Added: }
914 Added: ]
915 Added: },
916 Added: {
917 Added: "include": "#line_continuation_character"
918 Added: },
919 Added: {
920 Added: "name": "meta.bracket.square.access.objc",
921 Added: "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
922 Added: "beginCaptures": {
923 Added: "1": {
924 Added: "name": "variable.object.objc"
925 Added: },
926 Added: "2": {
927 Added: "name": "punctuation.definition.begin.bracket.square.objc"
928 Added: }
929 Added: },
930 Added: "end": "\\]",
931 Added: "endCaptures": {
932 Added: "0": {
933 Added: "name": "punctuation.definition.end.bracket.square.objc"
934 Added: }
935 Added: },
936 Added: "patterns": [
937 Added: {
938 Added: "include": "#function-call-innards"
939 Added: }
940 Added: ]
941 Added: },
942 Added: {
943 Added: "name": "storage.modifier.array.bracket.square.objc",
944 Added: "match": "\\[\\s*\\]"
945 Added: },
946 Added: {
947 Added: "match": ";",
948 Added: "name": "punctuation.terminator.statement.objc"
949 Added: },
950 Added: {
951 Added: "match": ",",
952 Added: "name": "punctuation.separator.delimiter.objc"
953 Added: }
954 Added: ],
955 Added: "repository": {
956 Added: "probably_a_parameter": {
957 Added: "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
958 Added: "captures": {
959 Added: "1": {
960 Added: "name": "variable.parameter.probably.objc"
961 Added: }
962 Added: }
963 Added: },
964 Added: "access-method": {
965 Added: "name": "meta.function-call.member.objc",
966 Added: "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
967 Added: "beginCaptures": {
968 Added: "1": {
969 Added: "name": "variable.object.objc"
970 Added: },
971 Added: "2": {
972 Added: "name": "punctuation.separator.dot-access.objc"
973 Added: },
974 Added: "3": {
975 Added: "name": "punctuation.separator.pointer-access.objc"
976 Added: },
977 Added: "4": {
978 Added: "patterns": [
979 Added: {
980 Added: "match": "\\.",
981 Added: "name": "punctuation.separator.dot-access.objc"
982 Added: },
983 Added: {
984 Added: "match": "->",
985 Added: "name": "punctuation.separator.pointer-access.objc"
986 Added: },
987 Added: {
988 Added: "match": "[a-zA-Z_][a-zA-Z_0-9]*",
989 Added: "name": "variable.object.objc"
990 Added: },
991 Added: {
992 Added: "name": "everything.else.objc",
993 Added: "match": ".+"
994 Added: }
995 Added: ]
996 Added: },
997 Added: "5": {
998 Added: "name": "entity.name.function.member.objc"
999 Added: },
1000 Added: "6": {
1001 Added: "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc"
1002 Added: }
1003 Added: },
1004 Added: "end": "\\)",
1005 Added: "endCaptures": {
1006 Added: "0": {
1007 Added: "name": "punctuation.section.arguments.end.bracket.round.function.member.objc"
1008 Added: }
1009 Added: },
1010 Added: "patterns": [
1011 Added: {
1012 Added: "include": "#function-call-innards"
1013 Added: }
1014 Added: ]
1015 Added: },
1016 Added: "block": {
1017 Added: "patterns": [
1018 Added: {
1019 Added: "begin": "{",
1020 Added: "beginCaptures": {
1021 Added: "0": {
1022 Added: "name": "punctuation.section.block.begin.bracket.curly.objc"
1023 Added: }
1024 Added: },
1025 Added: "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1026 Added: "endCaptures": {
1027 Added: "0": {
1028 Added: "name": "punctuation.section.block.end.bracket.curly.objc"
1029 Added: }
1030 Added: },
1031 Added: "name": "meta.block.objc",
1032 Added: "patterns": [
1033 Added: {
1034 Added: "include": "#block_innards"
1035 Added: }
1036 Added: ]
1037 Added: }
1038 Added: ]
1039 Added: },
1040 Added: "block_innards": {
1041 Added: "patterns": [
1042 Added: {
1043 Added: "include": "#preprocessor-rule-enabled-block"
1044 Added: },
1045 Added: {
1046 Added: "include": "#preprocessor-rule-disabled-block"
1047 Added: },
1048 Added: {
1049 Added: "include": "#preprocessor-rule-conditional-block"
1050 Added: },
1051 Added: {
1052 Added: "include": "#method_access"
1053 Added: },
1054 Added: {
1055 Added: "include": "#member_access"
1056 Added: },
1057 Added: {
1058 Added: "include": "#c_function_call"
1059 Added: },
1060 Added: {
1061 Added: "name": "meta.initialization.objc",
1062 Added: "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
1063 Added: "beginCaptures": {
1064 Added: "1": {
1065 Added: "name": "variable.other.objc"
1066 Added: },
1067 Added: "2": {
1068 Added: "name": "punctuation.section.parens.begin.bracket.round.initialization.objc"
1069 Added: }
1070 Added: },
1071 Added: "end": "\\)",
1072 Added: "endCaptures": {
1073 Added: "0": {
1074 Added: "name": "punctuation.section.parens.end.bracket.round.initialization.objc"
1075 Added: }
1076 Added: },
1077 Added: "patterns": [
1078 Added: {
1079 Added: "include": "#function-call-innards"
1080 Added: }
1081 Added: ]
1082 Added: },
1083 Added: {
1084 Added: "begin": "{",
1085 Added: "beginCaptures": {
1086 Added: "0": {
1087 Added: "name": "punctuation.section.block.begin.bracket.curly.objc"
1088 Added: }
1089 Added: },
1090 Added: "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1091 Added: "endCaptures": {
1092 Added: "0": {
1093 Added: "name": "punctuation.section.block.end.bracket.curly.objc"
1094 Added: }
1095 Added: },
1096 Added: "patterns": [
1097 Added: {
1098 Added: "include": "#block_innards"
1099 Added: }
1100 Added: ]
1101 Added: },
1102 Added: {
1103 Added: "include": "#parens-block"
1104 Added: },
1105 Added: {
1106 Added: "include": "$base"
1107 Added: }
1108 Added: ]
1109 Added: },
1110 Added: "c_function_call": {
1111 Added: "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
1112 Added: "end": "(?<=\\))(?!\\w)",
1113 Added: "name": "meta.function-call.objc",
1114 Added: "patterns": [
1115 Added: {
1116 Added: "include": "#function-call-innards"
1117 Added: }
1118 Added: ]
1119 Added: },
1120 Added: "comments": {
1121 Added: "patterns": [
1122 Added: {
1123 Added: "captures": {
1124 Added: "1": {
1125 Added: "name": "meta.toc-list.banner.block.objc"
1126 Added: }
1127 Added: },
1128 Added: "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
1129 Added: "name": "comment.block.objc"
1130 Added: },
1131 Added: {
1132 Added: "begin": "/\\*",
1133 Added: "beginCaptures": {
1134 Added: "0": {
1135 Added: "name": "punctuation.definition.comment.begin.objc"
1136 Added: }
1137 Added: },
1138 Added: "end": "\\*/",
1139 Added: "endCaptures": {
1140 Added: "0": {
1141 Added: "name": "punctuation.definition.comment.end.objc"
1142 Added: }
1143 Added: },
1144 Added: "name": "comment.block.objc"
1145 Added: },
1146 Added: {
1147 Added: "captures": {
1148 Added: "1": {
1149 Added: "name": "meta.toc-list.banner.line.objc"
1150 Added: }
1151 Added: },
1152 Added: "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
1153 Added: "name": "comment.line.banner.objc"
1154 Added: },
1155 Added: {
1156 Added: "begin": "(^[ \\t]+)?(?=//)",
1157 Added: "beginCaptures": {
1158 Added: "1": {
1159 Added: "name": "punctuation.whitespace.comment.leading.objc"
1160 Added: }
1161 Added: },
1162 Added: "end": "(?!\\G)",
1163 Added: "patterns": [
1164 Added: {
1165 Added: "begin": "//",
1166 Added: "beginCaptures": {
1167 Added: "0": {
1168 Added: "name": "punctuation.definition.comment.objc"
1169 Added: }
1170 Added: },
1171 Added: "end": "(?=\\n)",
1172 Added: "name": "comment.line.double-slash.objc",
1173 Added: "patterns": [
1174 Added: {
1175 Added: "include": "#line_continuation_character"
1176 Added: }
1177 Added: ]
1178 Added: }
1179 Added: ]
1180 Added: }
1181 Added: ]
1182 Added: },
1183 Added: "disabled": {
1184 Added: "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
1185 Added: "end": "^\\s*#\\s*endif\\b",
1186 Added: "patterns": [
1187 Added: {
1188 Added: "include": "#disabled"
1189 Added: },
1190 Added: {
1191 Added: "include": "#pragma-mark"
1192 Added: }
1193 Added: ]
1194 Added: },
1195 Added: "line_continuation_character": {
1196 Added: "patterns": [
1197 Added: {
1198 Added: "match": "(\\\\)\\n",
1199 Added: "captures": {
1200 Added: "1": {
1201 Added: "name": "constant.character.escape.line-continuation.objc"
1202 Added: }
1203 Added: }
1204 Added: }
1205 Added: ]
1206 Added: },
1207 Added: "parens": {
1208 Added: "name": "meta.parens.objc",
1209 Added: "begin": "\\(",
1210 Added: "beginCaptures": {
1211 Added: "0": {
1212 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
1213 Added: }
1214 Added: },
1215 Added: "end": "\\)",
1216 Added: "endCaptures": {
1217 Added: "0": {
1218 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
1219 Added: }
1220 Added: },
1221 Added: "patterns": [
1222 Added: {
1223 Added: "include": "$base"
1224 Added: }
1225 Added: ]
1226 Added: },
1227 Added: "parens-block": {
1228 Added: "name": "meta.parens.block.objc",
1229 Added: "begin": "\\(",
1230 Added: "beginCaptures": {
1231 Added: "0": {
1232 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
1233 Added: }
1234 Added: },
1235 Added: "end": "\\)",
1236 Added: "endCaptures": {
1237 Added: "0": {
1238 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
1239 Added: }
1240 Added: },
1241 Added: "patterns": [
1242 Added: {
1243 Added: "include": "#block_innards"
1244 Added: },
1245 Added: {
1246 Added: "match": "(?-mix:(?<!:):(?!:))",
1247 Added: "name": "punctuation.range-based.objc"
1248 Added: }
1249 Added: ]
1250 Added: },
1251 Added: "pragma-mark": {
1252 Added: "captures": {
1253 Added: "1": {
1254 Added: "name": "meta.preprocessor.pragma.objc"
1255 Added: },
1256 Added: "2": {
1257 Added: "name": "keyword.control.directive.pragma.pragma-mark.objc"
1258 Added: },
1259 Added: "3": {
1260 Added: "name": "punctuation.definition.directive.objc"
1261 Added: },
1262 Added: "4": {
1263 Added: "name": "entity.name.tag.pragma-mark.objc"
1264 Added: }
1265 Added: },
1266 Added: "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",
1267 Added: "name": "meta.section.objc"
1268 Added: },
1269 Added: "operators": {
1270 Added: "patterns": [
1271 Added: {
1272 Added: "match": "(?<![\\w$])(sizeof)(?![\\w$])",
1273 Added: "name": "keyword.operator.sizeof.objc"
1274 Added: },
1275 Added: {
1276 Added: "match": "--",
1277 Added: "name": "keyword.operator.decrement.objc"
1278 Added: },
1279 Added: {
1280 Added: "match": "\\+\\+",
1281 Added: "name": "keyword.operator.increment.objc"
1282 Added: },
1283 Added: {
1284 Added: "match": "%=|\\+=|-=|\\*=|(?<!\\()/=",
1285 Added: "name": "keyword.operator.assignment.compound.objc"
1286 Added: },
1287 Added: {
1288 Added: "match": "&=|\\^=|<<=|>>=|\\|=",
1289 Added: "name": "keyword.operator.assignment.compound.bitwise.objc"
1290 Added: },
1291 Added: {
1292 Added: "match": "<<|>>",
1293 Added: "name": "keyword.operator.bitwise.shift.objc"
1294 Added: },
1295 Added: {
1296 Added: "match": "!=|<=|>=|==|<|>",
1297 Added: "name": "keyword.operator.comparison.objc"
1298 Added: },
1299 Added: {
1300 Added: "match": "&&|!|\\|\\|",
1301 Added: "name": "keyword.operator.logical.objc"
1302 Added: },
1303 Added: {
1304 Added: "match": "&|\\||\\^|~",
1305 Added: "name": "keyword.operator.objc"
1306 Added: },
1307 Added: {
1308 Added: "match": "=",
1309 Added: "name": "keyword.operator.assignment.objc"
1310 Added: },
1311 Added: {
1312 Added: "match": "%|\\*|/|-|\\+",
1313 Added: "name": "keyword.operator.objc"
1314 Added: },
1315 Added: {
1316 Added: "begin": "(\\?)",
1317 Added: "beginCaptures": {
1318 Added: "1": {
1319 Added: "name": "keyword.operator.ternary.objc"
1320 Added: }
1321 Added: },
1322 Added: "end": "(:)",
1323 Added: "endCaptures": {
1324 Added: "1": {
1325 Added: "name": "keyword.operator.ternary.objc"
1326 Added: }
1327 Added: },
1328 Added: "patterns": [
1329 Added: {
1330 Added: "include": "#function-call-innards"
1331 Added: },
1332 Added: {
1333 Added: "include": "$base"
1334 Added: }
1335 Added: ]
1336 Added: }
1337 Added: ]
1338 Added: },
1339 Added: "strings": {
1340 Added: "patterns": [
1341 Added: {
1342 Added: "begin": "\"",
1343 Added: "beginCaptures": {
1344 Added: "0": {
1345 Added: "name": "punctuation.definition.string.begin.objc"
1346 Added: }
1347 Added: },
1348 Added: "end": "\"",
1349 Added: "endCaptures": {
1350 Added: "0": {
1351 Added: "name": "punctuation.definition.string.end.objc"
1352 Added: }
1353 Added: },
1354 Added: "name": "string.quoted.double.objc",
1355 Added: "patterns": [
1356 Added: {
1357 Added: "include": "#string_escaped_char"
1358 Added: },
1359 Added: {
1360 Added: "include": "#string_placeholder"
1361 Added: },
1362 Added: {
1363 Added: "include": "#line_continuation_character"
1364 Added: }
1365 Added: ]
1366 Added: },
1367 Added: {
1368 Added: "begin": "'",
1369 Added: "beginCaptures": {
1370 Added: "0": {
1371 Added: "name": "punctuation.definition.string.begin.objc"
1372 Added: }
1373 Added: },
1374 Added: "end": "'",
1375 Added: "endCaptures": {
1376 Added: "0": {
1377 Added: "name": "punctuation.definition.string.end.objc"
1378 Added: }
1379 Added: },
1380 Added: "name": "string.quoted.single.objc",
1381 Added: "patterns": [
1382 Added: {
1383 Added: "include": "#string_escaped_char"
1384 Added: },
1385 Added: {
1386 Added: "include": "#line_continuation_character"
1387 Added: }
1388 Added: ]
1389 Added: }
1390 Added: ]
1391 Added: },
1392 Added: "string_escaped_char": {
1393 Added: "patterns": [
1394 Added: {
1395 Added: "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
1396 Added: "name": "constant.character.escape.objc"
1397 Added: },
1398 Added: {
1399 Added: "match": "\\\\.",
1400 Added: "name": "invalid.illegal.unknown-escape.objc"
1401 Added: }
1402 Added: ]
1403 Added: },
1404 Added: "string_placeholder": {
1405 Added: "patterns": [
1406 Added: {
1407 Added: "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
1408 Added: "name": "constant.other.placeholder.objc"
1409 Added: },
1410 Added: {
1411 Added: "match": "(%)(?!\"\\s*(PRI|SCN))",
1412 Added: "captures": {
1413 Added: "1": {
1414 Added: "name": "invalid.illegal.placeholder.objc"
1415 Added: }
1416 Added: }
1417 Added: }
1418 Added: ]
1419 Added: },
1420 Added: "storage_types": {
1421 Added: "patterns": [
1422 Added: {
1423 Added: "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",
1424 Added: "name": "storage.type.built-in.primitive.objc"
1425 Added: },
1426 Added: {
1427 Added: "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",
1428 Added: "name": "storage.type.built-in.objc"
1429 Added: },
1430 Added: {
1431 Added: "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",
1432 Added: "name": "storage.type.$1.objc"
1433 Added: }
1434 Added: ]
1435 Added: },
1436 Added: "vararg_ellipses": {
1437 Added: "match": "(?<!\\.)\\.\\.\\.(?!\\.)",
1438 Added: "name": "punctuation.vararg-ellipses.objc"
1439 Added: },
1440 Added: "preprocessor-rule-conditional": {
1441 Added: "patterns": [
1442 Added: {
1443 Added: "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
1444 Added: "beginCaptures": {
1445 Added: "0": {
1446 Added: "name": "meta.preprocessor.objc"
1447 Added: },
1448 Added: "1": {
1449 Added: "name": "keyword.control.directive.conditional.objc"
1450 Added: },
1451 Added: "2": {
1452 Added: "name": "punctuation.definition.directive.objc"
1453 Added: }
1454 Added: },
1455 Added: "end": "^\\s*((#)\\s*endif\\b)",
1456 Added: "endCaptures": {
1457 Added: "0": {
1458 Added: "name": "meta.preprocessor.objc"
1459 Added: },
1460 Added: "1": {
1461 Added: "name": "keyword.control.directive.conditional.objc"
1462 Added: },
1463 Added: "2": {
1464 Added: "name": "punctuation.definition.directive.objc"
1465 Added: }
1466 Added: },
1467 Added: "patterns": [
1468 Added: {
1469 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1470 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1471 Added: "name": "meta.preprocessor.objc",
1472 Added: "patterns": [
1473 Added: {
1474 Added: "include": "#preprocessor-rule-conditional-line"
1475 Added: }
1476 Added: ]
1477 Added: },
1478 Added: {
1479 Added: "include": "#preprocessor-rule-enabled-elif"
1480 Added: },
1481 Added: {
1482 Added: "include": "#preprocessor-rule-enabled-else"
1483 Added: },
1484 Added: {
1485 Added: "include": "#preprocessor-rule-disabled-elif"
1486 Added: },
1487 Added: {
1488 Added: "begin": "^\\s*((#)\\s*elif\\b)",
1489 Added: "beginCaptures": {
1490 Added: "1": {
1491 Added: "name": "keyword.control.directive.conditional.objc"
1492 Added: },
1493 Added: "2": {
1494 Added: "name": "punctuation.definition.directive.objc"
1495 Added: }
1496 Added: },
1497 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1498 Added: "name": "meta.preprocessor.objc",
1499 Added: "patterns": [
1500 Added: {
1501 Added: "include": "#preprocessor-rule-conditional-line"
1502 Added: }
1503 Added: ]
1504 Added: },
1505 Added: {
1506 Added: "include": "$base"
1507 Added: }
1508 Added: ]
1509 Added: },
1510 Added: {
1511 Added: "match": "^\\s*#\\s*(else|elif|endif)\\b",
1512 Added: "captures": {
1513 Added: "0": {
1514 Added: "name": "invalid.illegal.stray-$1.objc"
1515 Added: }
1516 Added: }
1517 Added: }
1518 Added: ]
1519 Added: },
1520 Added: "preprocessor-rule-conditional-block": {
1521 Added: "patterns": [
1522 Added: {
1523 Added: "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
1524 Added: "beginCaptures": {
1525 Added: "0": {
1526 Added: "name": "meta.preprocessor.objc"
1527 Added: },
1528 Added: "1": {
1529 Added: "name": "keyword.control.directive.conditional.objc"
1530 Added: },
1531 Added: "2": {
1532 Added: "name": "punctuation.definition.directive.objc"
1533 Added: }
1534 Added: },
1535 Added: "end": "^\\s*((#)\\s*endif\\b)",
1536 Added: "endCaptures": {
1537 Added: "0": {
1538 Added: "name": "meta.preprocessor.objc"
1539 Added: },
1540 Added: "1": {
1541 Added: "name": "keyword.control.directive.conditional.objc"
1542 Added: },
1543 Added: "2": {
1544 Added: "name": "punctuation.definition.directive.objc"
1545 Added: }
1546 Added: },
1547 Added: "patterns": [
1548 Added: {
1549 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1550 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1551 Added: "name": "meta.preprocessor.objc",
1552 Added: "patterns": [
1553 Added: {
1554 Added: "include": "#preprocessor-rule-conditional-line"
1555 Added: }
1556 Added: ]
1557 Added: },
1558 Added: {
1559 Added: "include": "#preprocessor-rule-enabled-elif-block"
1560 Added: },
1561 Added: {
1562 Added: "include": "#preprocessor-rule-enabled-else-block"
1563 Added: },
1564 Added: {
1565 Added: "include": "#preprocessor-rule-disabled-elif"
1566 Added: },
1567 Added: {
1568 Added: "begin": "^\\s*((#)\\s*elif\\b)",
1569 Added: "beginCaptures": {
1570 Added: "1": {
1571 Added: "name": "keyword.control.directive.conditional.objc"
1572 Added: },
1573 Added: "2": {
1574 Added: "name": "punctuation.definition.directive.objc"
1575 Added: }
1576 Added: },
1577 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1578 Added: "name": "meta.preprocessor.objc",
1579 Added: "patterns": [
1580 Added: {
1581 Added: "include": "#preprocessor-rule-conditional-line"
1582 Added: }
1583 Added: ]
1584 Added: },
1585 Added: {
1586 Added: "include": "#block_innards"
1587 Added: }
1588 Added: ]
1589 Added: },
1590 Added: {
1591 Added: "match": "^\\s*#\\s*(else|elif|endif)\\b",
1592 Added: "captures": {
1593 Added: "0": {
1594 Added: "name": "invalid.illegal.stray-$1.objc"
1595 Added: }
1596 Added: }
1597 Added: }
1598 Added: ]
1599 Added: },
1600 Added: "preprocessor-rule-conditional-line": {
1601 Added: "patterns": [
1602 Added: {
1603 Added: "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",
1604 Added: "name": "keyword.control.directive.conditional.objc"
1605 Added: },
1606 Added: {
1607 Added: "match": "\\bdefined\\b",
1608 Added: "name": "invalid.illegal.macro-name.objc"
1609 Added: },
1610 Added: {
1611 Added: "include": "#comments"
1612 Added: },
1613 Added: {
1614 Added: "include": "#strings"
1615 Added: },
1616 Added: {
1617 Added: "include": "#numbers"
1618 Added: },
1619 Added: {
1620 Added: "begin": "\\?",
1621 Added: "beginCaptures": {
1622 Added: "0": {
1623 Added: "name": "keyword.operator.ternary.objc"
1624 Added: }
1625 Added: },
1626 Added: "end": ":",
1627 Added: "endCaptures": {
1628 Added: "0": {
1629 Added: "name": "keyword.operator.ternary.objc"
1630 Added: }
1631 Added: },
1632 Added: "patterns": [
1633 Added: {
1634 Added: "include": "#preprocessor-rule-conditional-line"
1635 Added: }
1636 Added: ]
1637 Added: },
1638 Added: {
1639 Added: "include": "#operators"
1640 Added: },
1641 Added: {
1642 Added: "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
1643 Added: "name": "constant.language.objc"
1644 Added: },
1645 Added: {
1646 Added: "match": "[a-zA-Z_$][\\w$]*",
1647 Added: "name": "entity.name.function.preprocessor.objc"
1648 Added: },
1649 Added: {
1650 Added: "include": "#line_continuation_character"
1651 Added: },
1652 Added: {
1653 Added: "begin": "\\(",
1654 Added: "beginCaptures": {
1655 Added: "0": {
1656 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
1657 Added: }
1658 Added: },
1659 Added: "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1660 Added: "endCaptures": {
1661 Added: "0": {
1662 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
1663 Added: }
1664 Added: },
1665 Added: "patterns": [
1666 Added: {
1667 Added: "include": "#preprocessor-rule-conditional-line"
1668 Added: }
1669 Added: ]
1670 Added: }
1671 Added: ]
1672 Added: },
1673 Added: "preprocessor-rule-disabled": {
1674 Added: "patterns": [
1675 Added: {
1676 Added: "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1677 Added: "beginCaptures": {
1678 Added: "0": {
1679 Added: "name": "meta.preprocessor.objc"
1680 Added: },
1681 Added: "1": {
1682 Added: "name": "keyword.control.directive.conditional.objc"
1683 Added: },
1684 Added: "2": {
1685 Added: "name": "punctuation.definition.directive.objc"
1686 Added: }
1687 Added: },
1688 Added: "end": "^\\s*((#)\\s*endif\\b)",
1689 Added: "endCaptures": {
1690 Added: "0": {
1691 Added: "name": "meta.preprocessor.objc"
1692 Added: },
1693 Added: "1": {
1694 Added: "name": "keyword.control.directive.conditional.objc"
1695 Added: },
1696 Added: "2": {
1697 Added: "name": "punctuation.definition.directive.objc"
1698 Added: }
1699 Added: },
1700 Added: "patterns": [
1701 Added: {
1702 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1703 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1704 Added: "name": "meta.preprocessor.objc",
1705 Added: "patterns": [
1706 Added: {
1707 Added: "include": "#preprocessor-rule-conditional-line"
1708 Added: }
1709 Added: ]
1710 Added: },
1711 Added: {
1712 Added: "include": "#comments"
1713 Added: },
1714 Added: {
1715 Added: "include": "#preprocessor-rule-enabled-elif"
1716 Added: },
1717 Added: {
1718 Added: "include": "#preprocessor-rule-enabled-else"
1719 Added: },
1720 Added: {
1721 Added: "include": "#preprocessor-rule-disabled-elif"
1722 Added: },
1723 Added: {
1724 Added: "begin": "^\\s*((#)\\s*elif\\b)",
1725 Added: "beginCaptures": {
1726 Added: "0": {
1727 Added: "name": "meta.preprocessor.objc"
1728 Added: },
1729 Added: "1": {
1730 Added: "name": "keyword.control.directive.conditional.objc"
1731 Added: },
1732 Added: "2": {
1733 Added: "name": "punctuation.definition.directive.objc"
1734 Added: }
1735 Added: },
1736 Added: "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1737 Added: "patterns": [
1738 Added: {
1739 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1740 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1741 Added: "name": "meta.preprocessor.objc",
1742 Added: "patterns": [
1743 Added: {
1744 Added: "include": "#preprocessor-rule-conditional-line"
1745 Added: }
1746 Added: ]
1747 Added: },
1748 Added: {
1749 Added: "include": "$base"
1750 Added: }
1751 Added: ]
1752 Added: },
1753 Added: {
1754 Added: "contentName": "comment.block.preprocessor.if-branch.objc",
1755 Added: "begin": "\\n",
1756 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1757 Added: "patterns": [
1758 Added: {
1759 Added: "include": "#disabled"
1760 Added: },
1761 Added: {
1762 Added: "include": "#pragma-mark"
1763 Added: }
1764 Added: ]
1765 Added: }
1766 Added: ]
1767 Added: }
1768 Added: ]
1769 Added: },
1770 Added: "preprocessor-rule-disabled-block": {
1771 Added: "patterns": [
1772 Added: {
1773 Added: "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1774 Added: "beginCaptures": {
1775 Added: "0": {
1776 Added: "name": "meta.preprocessor.objc"
1777 Added: },
1778 Added: "1": {
1779 Added: "name": "keyword.control.directive.conditional.objc"
1780 Added: },
1781 Added: "2": {
1782 Added: "name": "punctuation.definition.directive.objc"
1783 Added: }
1784 Added: },
1785 Added: "end": "^\\s*((#)\\s*endif\\b)",
1786 Added: "endCaptures": {
1787 Added: "0": {
1788 Added: "name": "meta.preprocessor.objc"
1789 Added: },
1790 Added: "1": {
1791 Added: "name": "keyword.control.directive.conditional.objc"
1792 Added: },
1793 Added: "2": {
1794 Added: "name": "punctuation.definition.directive.objc"
1795 Added: }
1796 Added: },
1797 Added: "patterns": [
1798 Added: {
1799 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1800 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1801 Added: "name": "meta.preprocessor.objc",
1802 Added: "patterns": [
1803 Added: {
1804 Added: "include": "#preprocessor-rule-conditional-line"
1805 Added: }
1806 Added: ]
1807 Added: },
1808 Added: {
1809 Added: "include": "#comments"
1810 Added: },
1811 Added: {
1812 Added: "include": "#preprocessor-rule-enabled-elif-block"
1813 Added: },
1814 Added: {
1815 Added: "include": "#preprocessor-rule-enabled-else-block"
1816 Added: },
1817 Added: {
1818 Added: "include": "#preprocessor-rule-disabled-elif"
1819 Added: },
1820 Added: {
1821 Added: "begin": "^\\s*((#)\\s*elif\\b)",
1822 Added: "beginCaptures": {
1823 Added: "0": {
1824 Added: "name": "meta.preprocessor.objc"
1825 Added: },
1826 Added: "1": {
1827 Added: "name": "keyword.control.directive.conditional.objc"
1828 Added: },
1829 Added: "2": {
1830 Added: "name": "punctuation.definition.directive.objc"
1831 Added: }
1832 Added: },
1833 Added: "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1834 Added: "patterns": [
1835 Added: {
1836 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1837 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1838 Added: "name": "meta.preprocessor.objc",
1839 Added: "patterns": [
1840 Added: {
1841 Added: "include": "#preprocessor-rule-conditional-line"
1842 Added: }
1843 Added: ]
1844 Added: },
1845 Added: {
1846 Added: "include": "#block_innards"
1847 Added: }
1848 Added: ]
1849 Added: },
1850 Added: {
1851 Added: "contentName": "comment.block.preprocessor.if-branch.in-block.objc",
1852 Added: "begin": "\\n",
1853 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1854 Added: "patterns": [
1855 Added: {
1856 Added: "include": "#disabled"
1857 Added: },
1858 Added: {
1859 Added: "include": "#pragma-mark"
1860 Added: }
1861 Added: ]
1862 Added: }
1863 Added: ]
1864 Added: }
1865 Added: ]
1866 Added: },
1867 Added: "preprocessor-rule-disabled-elif": {
1868 Added: "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1869 Added: "beginCaptures": {
1870 Added: "0": {
1871 Added: "name": "meta.preprocessor.objc"
1872 Added: },
1873 Added: "1": {
1874 Added: "name": "keyword.control.directive.conditional.objc"
1875 Added: },
1876 Added: "2": {
1877 Added: "name": "punctuation.definition.directive.objc"
1878 Added: }
1879 Added: },
1880 Added: "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1881 Added: "patterns": [
1882 Added: {
1883 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1884 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1885 Added: "name": "meta.preprocessor.objc",
1886 Added: "patterns": [
1887 Added: {
1888 Added: "include": "#preprocessor-rule-conditional-line"
1889 Added: }
1890 Added: ]
1891 Added: },
1892 Added: {
1893 Added: "include": "#comments"
1894 Added: },
1895 Added: {
1896 Added: "contentName": "comment.block.preprocessor.elif-branch.objc",
1897 Added: "begin": "\\n",
1898 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1899 Added: "patterns": [
1900 Added: {
1901 Added: "include": "#disabled"
1902 Added: },
1903 Added: {
1904 Added: "include": "#pragma-mark"
1905 Added: }
1906 Added: ]
1907 Added: }
1908 Added: ]
1909 Added: },
1910 Added: "preprocessor-rule-enabled": {
1911 Added: "patterns": [
1912 Added: {
1913 Added: "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
1914 Added: "beginCaptures": {
1915 Added: "0": {
1916 Added: "name": "meta.preprocessor.objc"
1917 Added: },
1918 Added: "1": {
1919 Added: "name": "keyword.control.directive.conditional.objc"
1920 Added: },
1921 Added: "2": {
1922 Added: "name": "punctuation.definition.directive.objc"
1923 Added: },
1924 Added: "3": {
1925 Added: "name": "constant.numeric.preprocessor.objc"
1926 Added: }
1927 Added: },
1928 Added: "end": "^\\s*((#)\\s*endif\\b)",
1929 Added: "endCaptures": {
1930 Added: "0": {
1931 Added: "name": "meta.preprocessor.objc"
1932 Added: },
1933 Added: "1": {
1934 Added: "name": "keyword.control.directive.conditional.objc"
1935 Added: },
1936 Added: "2": {
1937 Added: "name": "punctuation.definition.directive.objc"
1938 Added: }
1939 Added: },
1940 Added: "patterns": [
1941 Added: {
1942 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1943 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1944 Added: "name": "meta.preprocessor.objc",
1945 Added: "patterns": [
1946 Added: {
1947 Added: "include": "#preprocessor-rule-conditional-line"
1948 Added: }
1949 Added: ]
1950 Added: },
1951 Added: {
1952 Added: "include": "#comments"
1953 Added: },
1954 Added: {
1955 Added: "contentName": "comment.block.preprocessor.else-branch.objc",
1956 Added: "begin": "^\\s*((#)\\s*else\\b)",
1957 Added: "beginCaptures": {
1958 Added: "0": {
1959 Added: "name": "meta.preprocessor.objc"
1960 Added: },
1961 Added: "1": {
1962 Added: "name": "keyword.control.directive.conditional.objc"
1963 Added: },
1964 Added: "2": {
1965 Added: "name": "punctuation.definition.directive.objc"
1966 Added: }
1967 Added: },
1968 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
1969 Added: "patterns": [
1970 Added: {
1971 Added: "include": "#disabled"
1972 Added: },
1973 Added: {
1974 Added: "include": "#pragma-mark"
1975 Added: }
1976 Added: ]
1977 Added: },
1978 Added: {
1979 Added: "contentName": "comment.block.preprocessor.if-branch.objc",
1980 Added: "begin": "^\\s*((#)\\s*elif\\b)",
1981 Added: "beginCaptures": {
1982 Added: "0": {
1983 Added: "name": "meta.preprocessor.objc"
1984 Added: },
1985 Added: "1": {
1986 Added: "name": "keyword.control.directive.conditional.objc"
1987 Added: },
1988 Added: "2": {
1989 Added: "name": "punctuation.definition.directive.objc"
1990 Added: }
1991 Added: },
1992 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1993 Added: "patterns": [
1994 Added: {
1995 Added: "include": "#disabled"
1996 Added: },
1997 Added: {
1998 Added: "include": "#pragma-mark"
1999 Added: }
2000 Added: ]
2001 Added: },
2002 Added: {
2003 Added: "begin": "\\n",
2004 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2005 Added: "patterns": [
2006 Added: {
2007 Added: "include": "$base"
2008 Added: }
2009 Added: ]
2010 Added: }
2011 Added: ]
2012 Added: }
2013 Added: ]
2014 Added: },
2015 Added: "preprocessor-rule-enabled-block": {
2016 Added: "patterns": [
2017 Added: {
2018 Added: "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2019 Added: "beginCaptures": {
2020 Added: "0": {
2021 Added: "name": "meta.preprocessor.objc"
2022 Added: },
2023 Added: "1": {
2024 Added: "name": "keyword.control.directive.conditional.objc"
2025 Added: },
2026 Added: "2": {
2027 Added: "name": "punctuation.definition.directive.objc"
2028 Added: }
2029 Added: },
2030 Added: "end": "^\\s*((#)\\s*endif\\b)",
2031 Added: "endCaptures": {
2032 Added: "0": {
2033 Added: "name": "meta.preprocessor.objc"
2034 Added: },
2035 Added: "1": {
2036 Added: "name": "keyword.control.directive.conditional.objc"
2037 Added: },
2038 Added: "2": {
2039 Added: "name": "punctuation.definition.directive.objc"
2040 Added: }
2041 Added: },
2042 Added: "patterns": [
2043 Added: {
2044 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2045 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2046 Added: "name": "meta.preprocessor.objc",
2047 Added: "patterns": [
2048 Added: {
2049 Added: "include": "#preprocessor-rule-conditional-line"
2050 Added: }
2051 Added: ]
2052 Added: },
2053 Added: {
2054 Added: "include": "#comments"
2055 Added: },
2056 Added: {
2057 Added: "contentName": "comment.block.preprocessor.else-branch.in-block.objc",
2058 Added: "begin": "^\\s*((#)\\s*else\\b)",
2059 Added: "beginCaptures": {
2060 Added: "0": {
2061 Added: "name": "meta.preprocessor.objc"
2062 Added: },
2063 Added: "1": {
2064 Added: "name": "keyword.control.directive.conditional.objc"
2065 Added: },
2066 Added: "2": {
2067 Added: "name": "punctuation.definition.directive.objc"
2068 Added: }
2069 Added: },
2070 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2071 Added: "patterns": [
2072 Added: {
2073 Added: "include": "#disabled"
2074 Added: },
2075 Added: {
2076 Added: "include": "#pragma-mark"
2077 Added: }
2078 Added: ]
2079 Added: },
2080 Added: {
2081 Added: "contentName": "comment.block.preprocessor.if-branch.in-block.objc",
2082 Added: "begin": "^\\s*((#)\\s*elif\\b)",
2083 Added: "beginCaptures": {
2084 Added: "0": {
2085 Added: "name": "meta.preprocessor.objc"
2086 Added: },
2087 Added: "1": {
2088 Added: "name": "keyword.control.directive.conditional.objc"
2089 Added: },
2090 Added: "2": {
2091 Added: "name": "punctuation.definition.directive.objc"
2092 Added: }
2093 Added: },
2094 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2095 Added: "patterns": [
2096 Added: {
2097 Added: "include": "#disabled"
2098 Added: },
2099 Added: {
2100 Added: "include": "#pragma-mark"
2101 Added: }
2102 Added: ]
2103 Added: },
2104 Added: {
2105 Added: "begin": "\\n",
2106 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2107 Added: "patterns": [
2108 Added: {
2109 Added: "include": "#block_innards"
2110 Added: }
2111 Added: ]
2112 Added: }
2113 Added: ]
2114 Added: }
2115 Added: ]
2116 Added: },
2117 Added: "preprocessor-rule-enabled-elif": {
2118 Added: "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2119 Added: "beginCaptures": {
2120 Added: "0": {
2121 Added: "name": "meta.preprocessor.objc"
2122 Added: },
2123 Added: "1": {
2124 Added: "name": "keyword.control.directive.conditional.objc"
2125 Added: },
2126 Added: "2": {
2127 Added: "name": "punctuation.definition.directive.objc"
2128 Added: }
2129 Added: },
2130 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2131 Added: "patterns": [
2132 Added: {
2133 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2134 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2135 Added: "name": "meta.preprocessor.objc",
2136 Added: "patterns": [
2137 Added: {
2138 Added: "include": "#preprocessor-rule-conditional-line"
2139 Added: }
2140 Added: ]
2141 Added: },
2142 Added: {
2143 Added: "include": "#comments"
2144 Added: },
2145 Added: {
2146 Added: "begin": "\\n",
2147 Added: "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
2148 Added: "patterns": [
2149 Added: {
2150 Added: "contentName": "comment.block.preprocessor.elif-branch.objc",
2151 Added: "begin": "^\\s*((#)\\s*(else)\\b)",
2152 Added: "beginCaptures": {
2153 Added: "0": {
2154 Added: "name": "meta.preprocessor.objc"
2155 Added: },
2156 Added: "1": {
2157 Added: "name": "keyword.control.directive.conditional.objc"
2158 Added: },
2159 Added: "2": {
2160 Added: "name": "punctuation.definition.directive.objc"
2161 Added: }
2162 Added: },
2163 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2164 Added: "patterns": [
2165 Added: {
2166 Added: "include": "#disabled"
2167 Added: },
2168 Added: {
2169 Added: "include": "#pragma-mark"
2170 Added: }
2171 Added: ]
2172 Added: },
2173 Added: {
2174 Added: "contentName": "comment.block.preprocessor.elif-branch.objc",
2175 Added: "begin": "^\\s*((#)\\s*(elif)\\b)",
2176 Added: "beginCaptures": {
2177 Added: "0": {
2178 Added: "name": "meta.preprocessor.objc"
2179 Added: },
2180 Added: "1": {
2181 Added: "name": "keyword.control.directive.conditional.objc"
2182 Added: },
2183 Added: "2": {
2184 Added: "name": "punctuation.definition.directive.objc"
2185 Added: }
2186 Added: },
2187 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2188 Added: "patterns": [
2189 Added: {
2190 Added: "include": "#disabled"
2191 Added: },
2192 Added: {
2193 Added: "include": "#pragma-mark"
2194 Added: }
2195 Added: ]
2196 Added: },
2197 Added: {
2198 Added: "include": "$base"
2199 Added: }
2200 Added: ]
2201 Added: }
2202 Added: ]
2203 Added: },
2204 Added: "preprocessor-rule-enabled-elif-block": {
2205 Added: "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2206 Added: "beginCaptures": {
2207 Added: "0": {
2208 Added: "name": "meta.preprocessor.objc"
2209 Added: },
2210 Added: "1": {
2211 Added: "name": "keyword.control.directive.conditional.objc"
2212 Added: },
2213 Added: "2": {
2214 Added: "name": "punctuation.definition.directive.objc"
2215 Added: }
2216 Added: },
2217 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2218 Added: "patterns": [
2219 Added: {
2220 Added: "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2221 Added: "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2222 Added: "name": "meta.preprocessor.objc",
2223 Added: "patterns": [
2224 Added: {
2225 Added: "include": "#preprocessor-rule-conditional-line"
2226 Added: }
2227 Added: ]
2228 Added: },
2229 Added: {
2230 Added: "include": "#comments"
2231 Added: },
2232 Added: {
2233 Added: "begin": "\\n",
2234 Added: "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
2235 Added: "patterns": [
2236 Added: {
2237 Added: "contentName": "comment.block.preprocessor.elif-branch.in-block.objc",
2238 Added: "begin": "^\\s*((#)\\s*(else)\\b)",
2239 Added: "beginCaptures": {
2240 Added: "0": {
2241 Added: "name": "meta.preprocessor.objc"
2242 Added: },
2243 Added: "1": {
2244 Added: "name": "keyword.control.directive.conditional.objc"
2245 Added: },
2246 Added: "2": {
2247 Added: "name": "punctuation.definition.directive.objc"
2248 Added: }
2249 Added: },
2250 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2251 Added: "patterns": [
2252 Added: {
2253 Added: "include": "#disabled"
2254 Added: },
2255 Added: {
2256 Added: "include": "#pragma-mark"
2257 Added: }
2258 Added: ]
2259 Added: },
2260 Added: {
2261 Added: "contentName": "comment.block.preprocessor.elif-branch.objc",
2262 Added: "begin": "^\\s*((#)\\s*(elif)\\b)",
2263 Added: "beginCaptures": {
2264 Added: "0": {
2265 Added: "name": "meta.preprocessor.objc"
2266 Added: },
2267 Added: "1": {
2268 Added: "name": "keyword.control.directive.conditional.objc"
2269 Added: },
2270 Added: "2": {
2271 Added: "name": "punctuation.definition.directive.objc"
2272 Added: }
2273 Added: },
2274 Added: "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2275 Added: "patterns": [
2276 Added: {
2277 Added: "include": "#disabled"
2278 Added: },
2279 Added: {
2280 Added: "include": "#pragma-mark"
2281 Added: }
2282 Added: ]
2283 Added: },
2284 Added: {
2285 Added: "include": "#block_innards"
2286 Added: }
2287 Added: ]
2288 Added: }
2289 Added: ]
2290 Added: },
2291 Added: "preprocessor-rule-enabled-else": {
2292 Added: "begin": "^\\s*((#)\\s*else\\b)",
2293 Added: "beginCaptures": {
2294 Added: "0": {
2295 Added: "name": "meta.preprocessor.objc"
2296 Added: },
2297 Added: "1": {
2298 Added: "name": "keyword.control.directive.conditional.objc"
2299 Added: },
2300 Added: "2": {
2301 Added: "name": "punctuation.definition.directive.objc"
2302 Added: }
2303 Added: },
2304 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2305 Added: "patterns": [
2306 Added: {
2307 Added: "include": "$base"
2308 Added: }
2309 Added: ]
2310 Added: },
2311 Added: "preprocessor-rule-enabled-else-block": {
2312 Added: "begin": "^\\s*((#)\\s*else\\b)",
2313 Added: "beginCaptures": {
2314 Added: "0": {
2315 Added: "name": "meta.preprocessor.objc"
2316 Added: },
2317 Added: "1": {
2318 Added: "name": "keyword.control.directive.conditional.objc"
2319 Added: },
2320 Added: "2": {
2321 Added: "name": "punctuation.definition.directive.objc"
2322 Added: }
2323 Added: },
2324 Added: "end": "(?=^\\s*((#)\\s*endif\\b))",
2325 Added: "patterns": [
2326 Added: {
2327 Added: "include": "#block_innards"
2328 Added: }
2329 Added: ]
2330 Added: },
2331 Added: "preprocessor-rule-define-line-contents": {
2332 Added: "patterns": [
2333 Added: {
2334 Added: "include": "#vararg_ellipses"
2335 Added: },
2336 Added: {
2337 Added: "begin": "{",
2338 Added: "beginCaptures": {
2339 Added: "0": {
2340 Added: "name": "punctuation.section.block.begin.bracket.curly.objc"
2341 Added: }
2342 Added: },
2343 Added: "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2344 Added: "endCaptures": {
2345 Added: "0": {
2346 Added: "name": "punctuation.section.block.end.bracket.curly.objc"
2347 Added: }
2348 Added: },
2349 Added: "name": "meta.block.objc",
2350 Added: "patterns": [
2351 Added: {
2352 Added: "include": "#preprocessor-rule-define-line-blocks"
2353 Added: }
2354 Added: ]
2355 Added: },
2356 Added: {
2357 Added: "match": "\\(",
2358 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
2359 Added: },
2360 Added: {
2361 Added: "match": "\\)",
2362 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
2363 Added: },
2364 Added: {
2365 Added: "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
2366 Added: "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",
2367 Added: "name": "meta.function.objc",
2368 Added: "patterns": [
2369 Added: {
2370 Added: "include": "#preprocessor-rule-define-line-functions"
2371 Added: }
2372 Added: ]
2373 Added: },
2374 Added: {
2375 Added: "begin": "\"",
2376 Added: "beginCaptures": {
2377 Added: "0": {
2378 Added: "name": "punctuation.definition.string.begin.objc"
2379 Added: }
2380 Added: },
2381 Added: "end": "\"|(?<!\\\\)(?=\\s*\\n)",
2382 Added: "endCaptures": {
2383 Added: "0": {
2384 Added: "name": "punctuation.definition.string.end.objc"
2385 Added: }
2386 Added: },
2387 Added: "name": "string.quoted.double.objc",
2388 Added: "patterns": [
2389 Added: {
2390 Added: "include": "#string_escaped_char"
2391 Added: },
2392 Added: {
2393 Added: "include": "#string_placeholder"
2394 Added: },
2395 Added: {
2396 Added: "include": "#line_continuation_character"
2397 Added: }
2398 Added: ]
2399 Added: },
2400 Added: {
2401 Added: "begin": "'",
2402 Added: "beginCaptures": {
2403 Added: "0": {
2404 Added: "name": "punctuation.definition.string.begin.objc"
2405 Added: }
2406 Added: },
2407 Added: "end": "'|(?<!\\\\)(?=\\s*\\n)",
2408 Added: "endCaptures": {
2409 Added: "0": {
2410 Added: "name": "punctuation.definition.string.end.objc"
2411 Added: }
2412 Added: },
2413 Added: "name": "string.quoted.single.objc",
2414 Added: "patterns": [
2415 Added: {
2416 Added: "include": "#string_escaped_char"
2417 Added: },
2418 Added: {
2419 Added: "include": "#line_continuation_character"
2420 Added: }
2421 Added: ]
2422 Added: },
2423 Added: {
2424 Added: "include": "#method_access"
2425 Added: },
2426 Added: {
2427 Added: "include": "#member_access"
2428 Added: },
2429 Added: {
2430 Added: "include": "$base"
2431 Added: }
2432 Added: ]
2433 Added: },
2434 Added: "preprocessor-rule-define-line-blocks": {
2435 Added: "patterns": [
2436 Added: {
2437 Added: "begin": "{",
2438 Added: "beginCaptures": {
2439 Added: "0": {
2440 Added: "name": "punctuation.section.block.begin.bracket.curly.objc"
2441 Added: }
2442 Added: },
2443 Added: "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2444 Added: "endCaptures": {
2445 Added: "0": {
2446 Added: "name": "punctuation.section.block.end.bracket.curly.objc"
2447 Added: }
2448 Added: },
2449 Added: "patterns": [
2450 Added: {
2451 Added: "include": "#preprocessor-rule-define-line-blocks"
2452 Added: },
2453 Added: {
2454 Added: "include": "#preprocessor-rule-define-line-contents"
2455 Added: }
2456 Added: ]
2457 Added: },
2458 Added: {
2459 Added: "include": "#preprocessor-rule-define-line-contents"
2460 Added: }
2461 Added: ]
2462 Added: },
2463 Added: "preprocessor-rule-define-line-functions": {
2464 Added: "patterns": [
2465 Added: {
2466 Added: "include": "#comments"
2467 Added: },
2468 Added: {
2469 Added: "include": "#storage_types"
2470 Added: },
2471 Added: {
2472 Added: "include": "#vararg_ellipses"
2473 Added: },
2474 Added: {
2475 Added: "include": "#method_access"
2476 Added: },
2477 Added: {
2478 Added: "include": "#member_access"
2479 Added: },
2480 Added: {
2481 Added: "include": "#operators"
2482 Added: },
2483 Added: {
2484 Added: "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
2485 Added: "beginCaptures": {
2486 Added: "1": {
2487 Added: "name": "entity.name.function.objc"
2488 Added: },
2489 Added: "2": {
2490 Added: "name": "punctuation.section.arguments.begin.bracket.round.objc"
2491 Added: }
2492 Added: },
2493 Added: "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
2494 Added: "endCaptures": {
2495 Added: "1": {
2496 Added: "name": "punctuation.section.arguments.end.bracket.round.objc"
2497 Added: }
2498 Added: },
2499 Added: "patterns": [
2500 Added: {
2501 Added: "include": "#preprocessor-rule-define-line-functions"
2502 Added: }
2503 Added: ]
2504 Added: },
2505 Added: {
2506 Added: "begin": "\\(",
2507 Added: "beginCaptures": {
2508 Added: "0": {
2509 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
2510 Added: }
2511 Added: },
2512 Added: "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
2513 Added: "endCaptures": {
2514 Added: "1": {
2515 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
2516 Added: }
2517 Added: },
2518 Added: "patterns": [
2519 Added: {
2520 Added: "include": "#preprocessor-rule-define-line-functions"
2521 Added: }
2522 Added: ]
2523 Added: },
2524 Added: {
2525 Added: "include": "#preprocessor-rule-define-line-contents"
2526 Added: }
2527 Added: ]
2528 Added: },
2529 Added: "function-innards": {
2530 Added: "patterns": [
2531 Added: {
2532 Added: "include": "#comments"
2533 Added: },
2534 Added: {
2535 Added: "include": "#storage_types"
2536 Added: },
2537 Added: {
2538 Added: "include": "#operators"
2539 Added: },
2540 Added: {
2541 Added: "include": "#vararg_ellipses"
2542 Added: },
2543 Added: {
2544 Added: "name": "meta.function.definition.parameters.objc",
2545 Added: "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
2546 Added: "beginCaptures": {
2547 Added: "1": {
2548 Added: "name": "entity.name.function.objc"
2549 Added: },
2550 Added: "2": {
2551 Added: "name": "punctuation.section.parameters.begin.bracket.round.objc"
2552 Added: }
2553 Added: },
2554 Added: "end": "\\)",
2555 Added: "endCaptures": {
2556 Added: "0": {
2557 Added: "name": "punctuation.section.parameters.end.bracket.round.objc"
2558 Added: }
2559 Added: },
2560 Added: "patterns": [
2561 Added: {
2562 Added: "include": "#probably_a_parameter"
2563 Added: },
2564 Added: {
2565 Added: "include": "#function-innards"
2566 Added: }
2567 Added: ]
2568 Added: },
2569 Added: {
2570 Added: "begin": "\\(",
2571 Added: "beginCaptures": {
2572 Added: "0": {
2573 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
2574 Added: }
2575 Added: },
2576 Added: "end": "\\)",
2577 Added: "endCaptures": {
2578 Added: "0": {
2579 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
2580 Added: }
2581 Added: },
2582 Added: "patterns": [
2583 Added: {
2584 Added: "include": "#function-innards"
2585 Added: }
2586 Added: ]
2587 Added: },
2588 Added: {
2589 Added: "include": "$base"
2590 Added: }
2591 Added: ]
2592 Added: },
2593 Added: "function-call-innards": {
2594 Added: "patterns": [
2595 Added: {
2596 Added: "include": "#comments"
2597 Added: },
2598 Added: {
2599 Added: "include": "#storage_types"
2600 Added: },
2601 Added: {
2602 Added: "include": "#method_access"
2603 Added: },
2604 Added: {
2605 Added: "include": "#member_access"
2606 Added: },
2607 Added: {
2608 Added: "include": "#operators"
2609 Added: },
2610 Added: {
2611 Added: "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
2612 Added: "beginCaptures": {
2613 Added: "1": {
2614 Added: "name": "entity.name.function.objc"
2615 Added: },
2616 Added: "2": {
2617 Added: "name": "punctuation.section.arguments.begin.bracket.round.objc"
2618 Added: }
2619 Added: },
2620 Added: "end": "\\)",
2621 Added: "endCaptures": {
2622 Added: "0": {
2623 Added: "name": "punctuation.section.arguments.end.bracket.round.objc"
2624 Added: }
2625 Added: },
2626 Added: "patterns": [
2627 Added: {
2628 Added: "include": "#function-call-innards"
2629 Added: }
2630 Added: ]
2631 Added: },
2632 Added: {
2633 Added: "begin": "\\(",
2634 Added: "beginCaptures": {
2635 Added: "0": {
2636 Added: "name": "punctuation.section.parens.begin.bracket.round.objc"
2637 Added: }
2638 Added: },
2639 Added: "end": "\\)",
2640 Added: "endCaptures": {
2641 Added: "0": {
2642 Added: "name": "punctuation.section.parens.end.bracket.round.objc"
2643 Added: }
2644 Added: },
2645 Added: "patterns": [
2646 Added: {
2647 Added: "include": "#function-call-innards"
2648 Added: }
2649 Added: ]
2650 Added: },
2651 Added: {
2652 Added: "include": "#block_innards"
2653 Added: }
2654 Added: ]
2655 Added: },
2656 Added: "default_statement": {
2657 Added: "name": "meta.conditional.case.objc",
2658 Added: "begin": "((?<!\\w)default(?!\\w))",
2659 Added: "beginCaptures": {
2660 Added: "1": {
2661 Added: "name": "keyword.control.default.objc"
2662 Added: }
2663 Added: },
2664 Added: "end": "(:)",
2665 Added: "endCaptures": {
2666 Added: "1": {
2667 Added: "name": "punctuation.separator.case.default.objc"
2668 Added: }
2669 Added: },
2670 Added: "patterns": [
2671 Added: {
2672 Added: "include": "#conditional_context"
2673 Added: }
2674 Added: ]
2675 Added: },
2676 Added: "case_statement": {
2677 Added: "name": "meta.conditional.case.objc",
2678 Added: "begin": "((?<!\\w)case(?!\\w))",
2679 Added: "beginCaptures": {
2680 Added: "1": {
2681 Added: "name": "keyword.control.case.objc"
2682 Added: }
2683 Added: },
2684 Added: "end": "(:)",
2685 Added: "endCaptures": {
2686 Added: "1": {
2687 Added: "name": "punctuation.separator.case.objc"
2688 Added: }
2689 Added: },
2690 Added: "patterns": [
2691 Added: {
2692 Added: "include": "#conditional_context"
2693 Added: }
2694 Added: ]
2695 Added: },
2696 Added: "switch_statement": {
2697 Added: "name": "meta.block.switch.objc",
2698 Added: "begin": "(((?<!\\w)switch(?!\\w)))",
2699 Added: "beginCaptures": {
2700 Added: "1": {
2701 Added: "name": "meta.head.switch.objc"
2702 Added: },
2703 Added: "2": {
2704 Added: "name": "keyword.control.switch.objc"
2705 Added: }
2706 Added: },
2707 Added: "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))",
2708 Added: "patterns": [
2709 Added: {
2710 Added: "name": "meta.head.switch.objc",
2711 Added: "begin": "\\G ?",
2712 Added: "end": "((?:\\{|(?=;)))",
2713 Added: "endCaptures": {
2714 Added: "1": {
2715 Added: "name": "punctuation.section.block.begin.bracket.curly.switch.objc"
2716 Added: }
2717 Added: },
2718 Added: "patterns": [
2719 Added: {
2720 Added: "include": "#switch_conditional_parentheses"
2721 Added: },
2722 Added: {
2723 Added: "include": "$base"
2724 Added: }
2725 Added: ]
2726 Added: },
2727 Added: {
2728 Added: "name": "meta.body.switch.objc",
2729 Added: "begin": "(?<=\\{)",
2730 Added: "end": "(\\})",
2731 Added: "endCaptures": {
2732 Added: "1": {
2733 Added: "name": "punctuation.section.block.end.bracket.curly.switch.objc"
2734 Added: }
2735 Added: },
2736 Added: "patterns": [
2737 Added: {
2738 Added: "include": "#default_statement"
2739 Added: },
2740 Added: {
2741 Added: "include": "#case_statement"
2742 Added: },
2743 Added: {
2744 Added: "include": "$base"
2745 Added: },
2746 Added: {
2747 Added: "include": "#block_innards"
2748 Added: }
2749 Added: ]
2750 Added: },
2751 Added: {
2752 Added: "name": "meta.tail.switch.objc",
2753 Added: "begin": "(?<=})[\\s\\n]*",
2754 Added: "end": "[\\s\\n]*(?=;)",
2755 Added: "patterns": [
2756 Added: {
2757 Added: "include": "$base"
2758 Added: }
2759 Added: ]
2760 Added: }
2761 Added: ]
2762 Added: },
2763 Added: "switch_conditional_parentheses": {
2764 Added: "name": "meta.conditional.switch.objc",
2765 Added: "begin": "(\\()",
2766 Added: "beginCaptures": {
2767 Added: "1": {
2768 Added: "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objc"
2769 Added: }
2770 Added: },
2771 Added: "end": "(\\))",
2772 Added: "endCaptures": {
2773 Added: "1": {
2774 Added: "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objc"
2775 Added: }
2776 Added: },
2777 Added: "patterns": [
2778 Added: {
2779 Added: "include": "#conditional_context"
2780 Added: }
2781 Added: ]
2782 Added: },
2783 Added: "static_assert": {
2784 Added: "begin": "(static_assert|_Static_assert)\\s*(\\()",
2785 Added: "beginCaptures": {
2786 Added: "1": {
2787 Added: "name": "keyword.other.static_assert.objc"
2788 Added: },
2789 Added: "2": {
2790 Added: "name": "punctuation.section.arguments.begin.bracket.round.objc"
2791 Added: }
2792 Added: },
2793 Added: "end": "(\\))",
2794 Added: "endCaptures": {
2795 Added: "1": {
2796 Added: "name": "punctuation.section.arguments.end.bracket.round.objc"
2797 Added: }
2798 Added: },
2799 Added: "patterns": [
2800 Added: {
2801 Added: "name": "meta.static_assert.message.objc",
2802 Added: "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
2803 Added: "beginCaptures": {
2804 Added: "1": {
2805 Added: "name": "punctuation.separator.delimiter.objc"
2806 Added: }
2807 Added: },
2808 Added: "end": "(?=\\))",
2809 Added: "patterns": [
2810 Added: {
2811 Added: "include": "#string_context"
2812 Added: },
2813 Added: {
2814 Added: "include": "#string_context_c"
2815 Added: }
2816 Added: ]
2817 Added: },
2818 Added: {
2819 Added: "include": "#function_call_context"
2820 Added: }
2821 Added: ]
2822 Added: },
2823 Added: "conditional_context": {
2824 Added: "patterns": [
2825 Added: {
2826 Added: "include": "$base"
2827 Added: },
2828 Added: {
2829 Added: "include": "#block_innards"
2830 Added: }
2831 Added: ]
2832 Added: },
2833 Added: "member_access": {
2834 Added: "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())",
2835 Added: "captures": {
2836 Added: "1": {
2837 Added: "patterns": [
2838 Added: {
2839 Added: "include": "#special_variables"
2840 Added: },
2841 Added: {
2842 Added: "name": "variable.other.object.access.objc",
2843 Added: "match": "(.+)"
2844 Added: }
2845 Added: ]
2846 Added: },
2847 Added: "2": {
2848 Added: "name": "punctuation.separator.dot-access.objc"
2849 Added: },
2850 Added: "3": {
2851 Added: "name": "punctuation.separator.pointer-access.objc"
2852 Added: },
2853 Added: "4": {
2854 Added: "patterns": [
2855 Added: {
2856 Added: "include": "#member_access"
2857 Added: },
2858 Added: {
2859 Added: "include": "#method_access"
2860 Added: },
2861 Added: {
2862 Added: "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
2863 Added: "captures": {
2864 Added: "1": {
2865 Added: "patterns": [
2866 Added: {
2867 Added: "include": "#special_variables"
2868 Added: },
2869 Added: {
2870 Added: "name": "variable.other.object.access.objc",
2871 Added: "match": "(.+)"
2872 Added: }
2873 Added: ]
2874 Added: },
2875 Added: "2": {
2876 Added: "name": "punctuation.separator.dot-access.objc"
2877 Added: },
2878 Added: "3": {
2879 Added: "name": "punctuation.separator.pointer-access.objc"
2880 Added: }
2881 Added: }
2882 Added: }
2883 Added: ]
2884 Added: },
2885 Added: "5": {
2886 Added: "name": "variable.other.member.objc"
2887 Added: }
2888 Added: }
2889 Added: },
2890 Added: "method_access": {
2891 Added: "contentName": "meta.function-call.member.objc",
2892 Added: "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
2893 Added: "beginCaptures": {
2894 Added: "1": {
2895 Added: "patterns": [
2896 Added: {
2897 Added: "include": "#special_variables"
2898 Added: },
2899 Added: {
2900 Added: "name": "variable.other.object.access.objc",
2901 Added: "match": "(.+)"
2902 Added: }
2903 Added: ]
2904 Added: },
2905 Added: "2": {
2906 Added: "name": "punctuation.separator.dot-access.objc"
2907 Added: },
2908 Added: "3": {
2909 Added: "name": "punctuation.separator.pointer-access.objc"
2910 Added: },
2911 Added: "4": {
2912 Added: "patterns": [
2913 Added: {
2914 Added: "include": "#member_access"
2915 Added: },
2916 Added: {
2917 Added: "include": "#method_access"
2918 Added: },
2919 Added: {
2920 Added: "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
2921 Added: "captures": {
2922 Added: "1": {
2923 Added: "patterns": [
2924 Added: {
2925 Added: "include": "#special_variables"
2926 Added: },
2927 Added: {
2928 Added: "name": "variable.other.object.access.objc",
2929 Added: "match": "(.+)"
2930 Added: }
2931 Added: ]
2932 Added: },
2933 Added: "2": {
2934 Added: "name": "punctuation.separator.dot-access.objc"
2935 Added: },
2936 Added: "3": {
2937 Added: "name": "punctuation.separator.pointer-access.objc"
2938 Added: }
2939 Added: }
2940 Added: }
2941 Added: ]
2942 Added: },
2943 Added: "5": {
2944 Added: "name": "entity.name.function.member.objc"
2945 Added: },
2946 Added: "6": {
2947 Added: "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc"
2948 Added: }
2949 Added: },
2950 Added: "end": "(\\))",
2951 Added: "endCaptures": {
2952 Added: "1": {
2953 Added: "name": "punctuation.section.arguments.end.bracket.round.function.member.objc"
2954 Added: }
2955 Added: },
2956 Added: "patterns": [
2957 Added: {
2958 Added: "include": "#function-call-innards"
2959 Added: }
2960 Added: ]
2961 Added: },
2962 Added: "numbers": {
2963 Added: "begin": "(?<!\\w)(?=\\d|\\.\\d)",
2964 Added: "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
2965 Added: "patterns": [
2966 Added: {
2967 Added: "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
2968 Added: "captures": {
2969 Added: "1": {
2970 Added: "name": "keyword.other.unit.hexadecimal.objc"
2971 Added: },
2972 Added: "2": {
2973 Added: "name": "constant.numeric.hexadecimal.objc",
2974 Added: "patterns": [
2975 Added: {
2976 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
2977 Added: "name": "punctuation.separator.constant.numeric.objc"
2978 Added: }
2979 Added: ]
2980 Added: },
2981 Added: "3": {
2982 Added: "name": "punctuation.separator.constant.numeric.objc"
2983 Added: },
2984 Added: "4": {
2985 Added: "name": "constant.numeric.hexadecimal.objc"
2986 Added: },
2987 Added: "5": {
2988 Added: "name": "constant.numeric.hexadecimal.objc",
2989 Added: "patterns": [
2990 Added: {
2991 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
2992 Added: "name": "punctuation.separator.constant.numeric.objc"
2993 Added: }
2994 Added: ]
2995 Added: },
2996 Added: "6": {
2997 Added: "name": "punctuation.separator.constant.numeric.objc"
2998 Added: },
2999 Added: "8": {
3000 Added: "name": "keyword.other.unit.exponent.hexadecimal.objc"
3001 Added: },
3002 Added: "9": {
3003 Added: "name": "keyword.operator.plus.exponent.hexadecimal.objc"
3004 Added: },
3005 Added: "10": {
3006 Added: "name": "keyword.operator.minus.exponent.hexadecimal.objc"
3007 Added: },
3008 Added: "11": {
3009 Added: "name": "constant.numeric.exponent.hexadecimal.objc",
3010 Added: "patterns": [
3011 Added: {
3012 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3013 Added: "name": "punctuation.separator.constant.numeric.objc"
3014 Added: }
3015 Added: ]
3016 Added: },
3017 Added: "12": {
3018 Added: "name": "keyword.other.unit.suffix.floating-point.objc"
3019 Added: }
3020 Added: }
3021 Added: },
3022 Added: {
3023 Added: "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3024 Added: "captures": {
3025 Added: "2": {
3026 Added: "name": "constant.numeric.decimal.objc",
3027 Added: "patterns": [
3028 Added: {
3029 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3030 Added: "name": "punctuation.separator.constant.numeric.objc"
3031 Added: }
3032 Added: ]
3033 Added: },
3034 Added: "3": {
3035 Added: "name": "punctuation.separator.constant.numeric.objc"
3036 Added: },
3037 Added: "4": {
3038 Added: "name": "constant.numeric.decimal.point.objc"
3039 Added: },
3040 Added: "5": {
3041 Added: "name": "constant.numeric.decimal.objc",
3042 Added: "patterns": [
3043 Added: {
3044 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3045 Added: "name": "punctuation.separator.constant.numeric.objc"
3046 Added: }
3047 Added: ]
3048 Added: },
3049 Added: "6": {
3050 Added: "name": "punctuation.separator.constant.numeric.objc"
3051 Added: },
3052 Added: "8": {
3053 Added: "name": "keyword.other.unit.exponent.decimal.objc"
3054 Added: },
3055 Added: "9": {
3056 Added: "name": "keyword.operator.plus.exponent.decimal.objc"
3057 Added: },
3058 Added: "10": {
3059 Added: "name": "keyword.operator.minus.exponent.decimal.objc"
3060 Added: },
3061 Added: "11": {
3062 Added: "name": "constant.numeric.exponent.decimal.objc",
3063 Added: "patterns": [
3064 Added: {
3065 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3066 Added: "name": "punctuation.separator.constant.numeric.objc"
3067 Added: }
3068 Added: ]
3069 Added: },
3070 Added: "12": {
3071 Added: "name": "keyword.other.unit.suffix.floating-point.objc"
3072 Added: }
3073 Added: }
3074 Added: },
3075 Added: {
3076 Added: "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3077 Added: "captures": {
3078 Added: "1": {
3079 Added: "name": "keyword.other.unit.binary.objc"
3080 Added: },
3081 Added: "2": {
3082 Added: "name": "constant.numeric.binary.objc",
3083 Added: "patterns": [
3084 Added: {
3085 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3086 Added: "name": "punctuation.separator.constant.numeric.objc"
3087 Added: }
3088 Added: ]
3089 Added: },
3090 Added: "3": {
3091 Added: "name": "punctuation.separator.constant.numeric.objc"
3092 Added: },
3093 Added: "4": {
3094 Added: "name": "keyword.other.unit.suffix.integer.objc"
3095 Added: }
3096 Added: }
3097 Added: },
3098 Added: {
3099 Added: "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3100 Added: "captures": {
3101 Added: "1": {
3102 Added: "name": "keyword.other.unit.octal.objc"
3103 Added: },
3104 Added: "2": {
3105 Added: "name": "constant.numeric.octal.objc",
3106 Added: "patterns": [
3107 Added: {
3108 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3109 Added: "name": "punctuation.separator.constant.numeric.objc"
3110 Added: }
3111 Added: ]
3112 Added: },
3113 Added: "3": {
3114 Added: "name": "punctuation.separator.constant.numeric.objc"
3115 Added: },
3116 Added: "4": {
3117 Added: "name": "keyword.other.unit.suffix.integer.objc"
3118 Added: }
3119 Added: }
3120 Added: },
3121 Added: {
3122 Added: "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3123 Added: "captures": {
3124 Added: "1": {
3125 Added: "name": "keyword.other.unit.hexadecimal.objc"
3126 Added: },
3127 Added: "2": {
3128 Added: "name": "constant.numeric.hexadecimal.objc",
3129 Added: "patterns": [
3130 Added: {
3131 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3132 Added: "name": "punctuation.separator.constant.numeric.objc"
3133 Added: }
3134 Added: ]
3135 Added: },
3136 Added: "3": {
3137 Added: "name": "punctuation.separator.constant.numeric.objc"
3138 Added: },
3139 Added: "5": {
3140 Added: "name": "keyword.other.unit.exponent.hexadecimal.objc"
3141 Added: },
3142 Added: "6": {
3143 Added: "name": "keyword.operator.plus.exponent.hexadecimal.objc"
3144 Added: },
3145 Added: "7": {
3146 Added: "name": "keyword.operator.minus.exponent.hexadecimal.objc"
3147 Added: },
3148 Added: "8": {
3149 Added: "name": "constant.numeric.exponent.hexadecimal.objc",
3150 Added: "patterns": [
3151 Added: {
3152 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3153 Added: "name": "punctuation.separator.constant.numeric.objc"
3154 Added: }
3155 Added: ]
3156 Added: },
3157 Added: "9": {
3158 Added: "name": "keyword.other.unit.suffix.integer.objc"
3159 Added: }
3160 Added: }
3161 Added: },
3162 Added: {
3163 Added: "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
3164 Added: "captures": {
3165 Added: "2": {
3166 Added: "name": "constant.numeric.decimal.objc",
3167 Added: "patterns": [
3168 Added: {
3169 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3170 Added: "name": "punctuation.separator.constant.numeric.objc"
3171 Added: }
3172 Added: ]
3173 Added: },
3174 Added: "3": {
3175 Added: "name": "punctuation.separator.constant.numeric.objc"
3176 Added: },
3177 Added: "5": {
3178 Added: "name": "keyword.other.unit.exponent.decimal.objc"
3179 Added: },
3180 Added: "6": {
3181 Added: "name": "keyword.operator.plus.exponent.decimal.objc"
3182 Added: },
3183 Added: "7": {
3184 Added: "name": "keyword.operator.minus.exponent.decimal.objc"
3185 Added: },
3186 Added: "8": {
3187 Added: "name": "constant.numeric.exponent.decimal.objc",
3188 Added: "patterns": [
3189 Added: {
3190 Added: "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3191 Added: "name": "punctuation.separator.constant.numeric.objc"
3192 Added: }
3193 Added: ]
3194 Added: },
3195 Added: "9": {
3196 Added: "name": "keyword.other.unit.suffix.integer.objc"
3197 Added: }
3198 Added: }
3199 Added: },
3200 Added: {
3201 Added: "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",
3202 Added: "name": "invalid.illegal.constant.numeric.objc"
3203 Added: }
3204 Added: ]
3205 Added: }
3206 Added: }
3207 Added: },
3208 Added: "comment": {
3209 Added: "patterns": [
3210 Added: {
3211 Added: "begin": "/\\*",
3212 Added: "captures": {
3213 Added: "0": {
3214 Added: "name": "punctuation.definition.comment.objc"
3215 Added: }
3216 Added: },
3217 Added: "end": "\\*/",
3218 Added: "name": "comment.block.objc"
3219 Added: },
3220 Added: {
3221 Added: "begin": "(^[ \\t]+)?(?=//)",
3222 Added: "beginCaptures": {
3223 Added: "1": {
3224 Added: "name": "punctuation.whitespace.comment.leading.objc"
3225 Added: }
3226 Added: },
3227 Added: "end": "(?!\\G)",
3228 Added: "patterns": [
3229 Added: {
3230 Added: "begin": "//",
3231 Added: "beginCaptures": {
3232 Added: "0": {
3233 Added: "name": "punctuation.definition.comment.objc"
3234 Added: }
3235 Added: },
3236 Added: "end": "\\n",
3237 Added: "name": "comment.line.double-slash.objc",
3238 Added: "patterns": [
3239 Added: {
3240 Added: "match": "(?>\\\\\\s*\\n)",
3241 Added: "name": "punctuation.separator.continuation.objc"
3242 Added: }
3243 Added: ]
3244 Added: }
3245 Added: ]
3246 Added: }
3247 Added: ]
3248 Added: },
3249 Added: "disabled": {
3250 Added: "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
3251 Added: "comment": "eat nested preprocessor if(def)s",
3252 Added: "end": "^\\s*#\\s*endif\\b.*$",
3253 Added: "patterns": [
3254 Added: {
3255 Added: "include": "#disabled"
3256 Added: },
3257 Added: {
3258 Added: "include": "#pragma-mark"
3259 Added: }
3260 Added: ]
3261 Added: },
3262 Added: "implementation_innards": {
3263 Added: "patterns": [
3264 Added: {
3265 Added: "include": "#preprocessor-rule-enabled-implementation"
3266 Added: },
3267 Added: {
3268 Added: "include": "#preprocessor-rule-disabled-implementation"
3269 Added: },
3270 Added: {
3271 Added: "include": "#preprocessor-rule-other-implementation"
3272 Added: },
3273 Added: {
3274 Added: "include": "#property_directive"
3275 Added: },
3276 Added: {
3277 Added: "include": "#method_super"
3278 Added: },
3279 Added: {
3280 Added: "include": "$base"
3281 Added: }
3282 Added: ]
3283 Added: },
3284 Added: "interface_innards": {
3285 Added: "patterns": [
3286 Added: {
3287 Added: "include": "#preprocessor-rule-enabled-interface"
3288 Added: },
3289 Added: {
3290 Added: "include": "#preprocessor-rule-disabled-interface"
3291 Added: },
3292 Added: {
3293 Added: "include": "#preprocessor-rule-other-interface"
3294 Added: },
3295 Added: {
3296 Added: "include": "#properties"
3297 Added: },
3298 Added: {
3299 Added: "include": "#protocol_list"
3300 Added: },
3301 Added: {
3302 Added: "include": "#method"
3303 Added: },
3304 Added: {
3305 Added: "include": "$base"
3306 Added: }
3307 Added: ]
3308 Added: },
3309 Added: "method": {
3310 Added: "begin": "^(-|\\+)\\s*",
3311 Added: "end": "(?=\\{|#)|;",
3312 Added: "name": "meta.function.objc",
3313 Added: "patterns": [
3314 Added: {
3315 Added: "begin": "(\\()",
3316 Added: "beginCaptures": {
3317 Added: "1": {
3318 Added: "name": "punctuation.definition.type.begin.objc"
3319 Added: }
3320 Added: },
3321 Added: "end": "(\\))\\s*(\\w+\\b)",
3322 Added: "endCaptures": {
3323 Added: "1": {
3324 Added: "name": "punctuation.definition.type.end.objc"
3325 Added: },
3326 Added: "2": {
3327 Added: "name": "entity.name.function.objc"
3328 Added: }
3329 Added: },
3330 Added: "name": "meta.return-type.objc",
3331 Added: "patterns": [
3332 Added: {
3333 Added: "include": "#protocol_list"
3334 Added: },
3335 Added: {
3336 Added: "include": "#protocol_type_qualifier"
3337 Added: },
3338 Added: {
3339 Added: "include": "$base"
3340 Added: }
3341 Added: ]
3342 Added: },
3343 Added: {
3344 Added: "match": "\\b\\w+(?=:)",
3345 Added: "name": "entity.name.function.name-of-parameter.objc"
3346 Added: },
3347 Added: {
3348 Added: "begin": "((:))\\s*(\\()",
3349 Added: "beginCaptures": {
3350 Added: "1": {
3351 Added: "name": "entity.name.function.name-of-parameter.objc"
3352 Added: },
3353 Added: "2": {
3354 Added: "name": "punctuation.separator.arguments.objc"
3355 Added: },
3356 Added: "3": {
3357 Added: "name": "punctuation.definition.type.begin.objc"
3358 Added: }
3359 Added: },
3360 Added: "end": "(\\))\\s*(\\w+\\b)?",
3361 Added: "endCaptures": {
3362 Added: "1": {
3363 Added: "name": "punctuation.definition.type.end.objc"
3364 Added: },
3365 Added: "2": {
3366 Added: "name": "variable.parameter.function.objc"
3367 Added: }
3368 Added: },
3369 Added: "name": "meta.argument-type.objc",
3370 Added: "patterns": [
3371 Added: {
3372 Added: "include": "#protocol_list"
3373 Added: },
3374 Added: {
3375 Added: "include": "#protocol_type_qualifier"
3376 Added: },
3377 Added: {
3378 Added: "include": "$base"
3379 Added: }
3380 Added: ]
3381 Added: },
3382 Added: {
3383 Added: "include": "#comment"
3384 Added: }
3385 Added: ]
3386 Added: },
3387 Added: "method_super": {
3388 Added: "begin": "^(?=-|\\+)",
3389 Added: "end": "(?<=\\})|(?=#)",
3390 Added: "name": "meta.function-with-body.objc",
3391 Added: "patterns": [
3392 Added: {
3393 Added: "include": "#method"
3394 Added: },
3395 Added: {
3396 Added: "include": "$base"
3397 Added: }
3398 Added: ]
3399 Added: },
3400 Added: "pragma-mark": {
3401 Added: "captures": {
3402 Added: "1": {
3403 Added: "name": "meta.preprocessor.objc"
3404 Added: },
3405 Added: "2": {
3406 Added: "name": "keyword.control.import.pragma.objc"
3407 Added: },
3408 Added: "3": {
3409 Added: "name": "meta.toc-list.pragma-mark.objc"
3410 Added: }
3411 Added: },
3412 Added: "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
3413 Added: "name": "meta.section.objc"
3414 Added: },
3415 Added: "preprocessor-rule-disabled-implementation": {
3416 Added: "begin": "^\\s*(#(if)\\s+(0)\\b).*",
3417 Added: "captures": {
3418 Added: "1": {
3419 Added: "name": "meta.preprocessor.objc"
3420 Added: },
3421 Added: "2": {
3422 Added: "name": "keyword.control.import.if.objc"
3423 Added: },
3424 Added: "3": {
3425 Added: "name": "constant.numeric.preprocessor.objc"
3426 Added: }
3427 Added: },
3428 Added: "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3429 Added: "patterns": [
3430 Added: {
3431 Added: "begin": "^\\s*(#\\s*(else)\\b)",
3432 Added: "captures": {
3433 Added: "1": {
3434 Added: "name": "meta.preprocessor.objc"
3435 Added: },
3436 Added: "2": {
3437 Added: "name": "keyword.control.import.else.objc"
3438 Added: }
3439 Added: },
3440 Added: "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3441 Added: "patterns": [
3442 Added: {
3443 Added: "include": "#interface_innards"
3444 Added: }
3445 Added: ]
3446 Added: },
3447 Added: {
3448 Added: "begin": "",
3449 Added: "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3450 Added: "name": "comment.block.preprocessor.if-branch.objc",
3451 Added: "patterns": [
3452 Added: {
3453 Added: "include": "#disabled"
3454 Added: },
3455 Added: {
3456 Added: "include": "#pragma-mark"
3457 Added: }
3458 Added: ]
3459 Added: }
3460 Added: ]
3461 Added: },
3462 Added: "preprocessor-rule-disabled-interface": {
3463 Added: "begin": "^\\s*(#(if)\\s+(0)\\b).*",
3464 Added: "captures": {
3465 Added: "1": {
3466 Added: "name": "meta.preprocessor.objc"
3467 Added: },
3468 Added: "2": {
3469 Added: "name": "keyword.control.import.if.objc"
3470 Added: },
3471 Added: "3": {
3472 Added: "name": "constant.numeric.preprocessor.objc"
3473 Added: }
3474 Added: },
3475 Added: "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3476 Added: "patterns": [
3477 Added: {
3478 Added: "begin": "^\\s*(#\\s*(else)\\b)",
3479 Added: "captures": {
3480 Added: "1": {
3481 Added: "name": "meta.preprocessor.objc"
3482 Added: },
3483 Added: "2": {
3484 Added: "name": "keyword.control.import.else.objc"
3485 Added: }
3486 Added: },
3487 Added: "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3488 Added: "patterns": [
3489 Added: {
3490 Added: "include": "#interface_innards"
3491 Added: }
3492 Added: ]
3493 Added: },
3494 Added: {
3495 Added: "begin": "",
3496 Added: "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3497 Added: "name": "comment.block.preprocessor.if-branch.objc",
3498 Added: "patterns": [
3499 Added: {
3500 Added: "include": "#disabled"
3501 Added: },
3502 Added: {
3503 Added: "include": "#pragma-mark"
3504 Added: }
3505 Added: ]
3506 Added: }
3507 Added: ]
3508 Added: },
3509 Added: "preprocessor-rule-enabled-implementation": {
3510 Added: "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
3511 Added: "captures": {
3512 Added: "1": {
3513 Added: "name": "meta.preprocessor.objc"
3514 Added: },
3515 Added: "2": {
3516 Added: "name": "keyword.control.import.if.objc"
3517 Added: },
3518 Added: "3": {
3519 Added: "name": "constant.numeric.preprocessor.objc"
3520 Added: }
3521 Added: },
3522 Added: "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3523 Added: "patterns": [
3524 Added: {
3525 Added: "begin": "^\\s*(#\\s*(else)\\b).*",
3526 Added: "captures": {
3527 Added: "1": {
3528 Added: "name": "meta.preprocessor.objc"
3529 Added: },
3530 Added: "2": {
3531 Added: "name": "keyword.control.import.else.objc"
3532 Added: }
3533 Added: },
3534 Added: "contentName": "comment.block.preprocessor.else-branch.objc",
3535 Added: "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3536 Added: "patterns": [
3537 Added: {
3538 Added: "include": "#disabled"
3539 Added: },
3540 Added: {
3541 Added: "include": "#pragma-mark"
3542 Added: }
3543 Added: ]
3544 Added: },
3545 Added: {
3546 Added: "begin": "",
3547 Added: "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3548 Added: "patterns": [
3549 Added: {
3550 Added: "include": "#implementation_innards"
3551 Added: }
3552 Added: ]
3553 Added: }
3554 Added: ]
3555 Added: },
3556 Added: "preprocessor-rule-enabled-interface": {
3557 Added: "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
3558 Added: "captures": {
3559 Added: "1": {
3560 Added: "name": "meta.preprocessor.objc"
3561 Added: },
3562 Added: "2": {
3563 Added: "name": "keyword.control.import.if.objc"
3564 Added: },
3565 Added: "3": {
3566 Added: "name": "constant.numeric.preprocessor.objc"
3567 Added: }
3568 Added: },
3569 Added: "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3570 Added: "patterns": [
3571 Added: {
3572 Added: "begin": "^\\s*(#\\s*(else)\\b).*",
3573 Added: "captures": {
3574 Added: "1": {
3575 Added: "name": "meta.preprocessor.objc"
3576 Added: },
3577 Added: "2": {
3578 Added: "name": "keyword.control.import.else.objc"
3579 Added: }
3580 Added: },
3581 Added: "contentName": "comment.block.preprocessor.else-branch.objc",
3582 Added: "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3583 Added: "patterns": [
3584 Added: {
3585 Added: "include": "#disabled"
3586 Added: },
3587 Added: {
3588 Added: "include": "#pragma-mark"
3589 Added: }
3590 Added: ]
3591 Added: },
3592 Added: {
3593 Added: "begin": "",
3594 Added: "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3595 Added: "patterns": [
3596 Added: {
3597 Added: "include": "#interface_innards"
3598 Added: }
3599 Added: ]
3600 Added: }
3601 Added: ]
3602 Added: },
3603 Added: "preprocessor-rule-other-implementation": {
3604 Added: "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
3605 Added: "captures": {
3606 Added: "1": {
3607 Added: "name": "meta.preprocessor.objc"
3608 Added: },
3609 Added: "2": {
3610 Added: "name": "keyword.control.import.objc"
3611 Added: }
3612 Added: },
3613 Added: "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
3614 Added: "patterns": [
3615 Added: {
3616 Added: "include": "#implementation_innards"
3617 Added: }
3618 Added: ]
3619 Added: },
3620 Added: "preprocessor-rule-other-interface": {
3621 Added: "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
3622 Added: "captures": {
3623 Added: "1": {
3624 Added: "name": "meta.preprocessor.objc"
3625 Added: },
3626 Added: "2": {
3627 Added: "name": "keyword.control.import.objc"
3628 Added: }
3629 Added: },
3630 Added: "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
3631 Added: "patterns": [
3632 Added: {
3633 Added: "include": "#interface_innards"
3634 Added: }
3635 Added: ]
3636 Added: },
3637 Added: "properties": {
3638 Added: "patterns": [
3639 Added: {
3640 Added: "begin": "((@)property)\\s*(\\()",
3641 Added: "beginCaptures": {
3642 Added: "1": {
3643 Added: "name": "keyword.other.property.objc"
3644 Added: },
3645 Added: "2": {
3646 Added: "name": "punctuation.definition.keyword.objc"
3647 Added: },
3648 Added: "3": {
3649 Added: "name": "punctuation.section.scope.begin.objc"
3650 Added: }
3651 Added: },
3652 Added: "end": "(\\))",
3653 Added: "endCaptures": {
3654 Added: "1": {
3655 Added: "name": "punctuation.section.scope.end.objc"
3656 Added: }
3657 Added: },
3658 Added: "name": "meta.property-with-attributes.objc",
3659 Added: "patterns": [
3660 Added: {
3661 Added: "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",
3662 Added: "name": "keyword.other.property.attribute.objc"
3663 Added: }
3664 Added: ]
3665 Added: },
3666 Added: {
3667 Added: "captures": {
3668 Added: "1": {
3669 Added: "name": "keyword.other.property.objc"
3670 Added: },
3671 Added: "2": {
3672 Added: "name": "punctuation.definition.keyword.objc"
3673 Added: }
3674 Added: },
3675 Added: "match": "((@)property)\\b",
3676 Added: "name": "meta.property.objc"
3677 Added: }
3678 Added: ]
3679 Added: },
3680 Added: "property_directive": {
3681 Added: "captures": {
3682 Added: "1": {
3683 Added: "name": "punctuation.definition.keyword.objc"
3684 Added: }
3685 Added: },
3686 Added: "match": "(@)(dynamic|synthesize)\\b",
3687 Added: "name": "keyword.other.property.directive.objc"
3688 Added: },
3689 Added: "protocol_list": {
3690 Added: "begin": "(<)",
3691 Added: "beginCaptures": {
3692 Added: "1": {
3693 Added: "name": "punctuation.section.scope.begin.objc"
3694 Added: }
3695 Added: },
3696 Added: "end": "(>)",
3697 Added: "endCaptures": {
3698 Added: "1": {
3699 Added: "name": "punctuation.section.scope.end.objc"
3700 Added: }
3701 Added: },
3702 Added: "name": "meta.protocol-list.objc",
3703 Added: "patterns": [
3704 Added: {
3705 Added: "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",
3706 Added: "name": "support.other.protocol.objc"
3707 Added: }
3708 Added: ]
3709 Added: },
3710 Added: "protocol_type_qualifier": {
3711 Added: "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",
3712 Added: "name": "storage.modifier.protocol.objc"
3713 Added: },
3714 Added: "special_variables": {
3715 Added: "patterns": [
3716 Added: {
3717 Added: "match": "\\b_cmd\\b",
3718 Added: "name": "variable.other.selector.objc"
3719 Added: },
3720 Added: {
3721 Added: "match": "\\b(self|super)\\b",
3722 Added: "name": "variable.language.objc"
3723 Added: }
3724 Added: ]
3725 Added: },
3726 Added: "string_escaped_char": {
3727 Added: "patterns": [
3728 Added: {
3729 Added: "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
3730 Added: "name": "constant.character.escape.objc"
3731 Added: },
3732 Added: {
3733 Added: "match": "\\\\.",
3734 Added: "name": "invalid.illegal.unknown-escape.objc"
3735 Added: }
3736 Added: ]
3737 Added: },
3738 Added: "string_placeholder": {
3739 Added: "patterns": [
3740 Added: {
3741 Added: "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
3742 Added: "name": "constant.other.placeholder.objc"
3743 Added: },
3744 Added: {
3745 Added: "match": "(%)(?!\"\\s*(PRI|SCN))",
3746 Added: "captures": {
3747 Added: "1": {
3748 Added: "name": "invalid.illegal.placeholder.objc"
3749 Added: }
3750 Added: }
3751 Added: }
3752 Added: ]
3753 Added: }
3754 Added: }
3755 Added: }
lib/grammars/opam.json
index 00000000..7db58d8d 000000..100644
@@ -0,0 +1,129 @@
1 Added: {
2 Added: "name": "opam",
3 Added: "scopeName": "source.ocaml.opam",
4 Added: "fileTypes": [
5 Added: "opam"
6 Added: ],
7 Added: "patterns": [
8 Added: {
9 Added: "include": "#comments"
10 Added: },
11 Added: {
12 Added: "include": "#fields"
13 Added: },
14 Added: {
15 Added: "include": "#values"
16 Added: }
17 Added: ],
18 Added: "repository": {
19 Added: "comments": {
20 Added: "patterns": [
21 Added: {
22 Added: "comment": "block comment",
23 Added: "name": "comment.block.opam",
24 Added: "begin": "\\(\\*",
25 Added: "end": "\\*\\)"
26 Added: },
27 Added: {
28 Added: "comment": "line comment",
29 Added: "name": "comment.line.opam",
30 Added: "begin": "#",
31 Added: "end": "$"
32 Added: }
33 Added: ]
34 Added: },
35 Added: "fields": {
36 Added: "comment": "labeled field",
37 Added: "match": "^([[:word:]-]*[[:alpha:]][[:word:]-]*)(:)",
38 Added: "captures": {
39 Added: "1": {
40 Added: "name": "entity.name.tag.opam"
41 Added: },
42 Added: "2": {
43 Added: "name": "keyword.operator.opam"
44 Added: }
45 Added: }
46 Added: },
47 Added: "values": {
48 Added: "patterns": [
49 Added: {
50 Added: "comment": "boolean literal",
51 Added: "name": "constant.language.opam",
52 Added: "match": "\\b(true|false)\\b"
53 Added: },
54 Added: {
55 Added: "comment": "integer literal",
56 Added: "name": "constant.numeric.decimal.opam",
57 Added: "match": "(\\b|\\-?)[[:digit:]]+\\b"
58 Added: },
59 Added: {
60 Added: "comment": "double-quote string literal",
61 Added: "name": "string.quoted.double.opam",
62 Added: "begin": "\"",
63 Added: "end": "\"",
64 Added: "patterns": [
65 Added: {
66 Added: "include": "#string-elements"
67 Added: }
68 Added: ]
69 Added: },
70 Added: {
71 Added: "comment": "triple-double-quote string literal",
72 Added: "name": "string.quoted.triple-double.opam",
73 Added: "begin": "\"\"\"",
74 Added: "end": "\"\"\"",
75 Added: "patterns": [
76 Added: {
77 Added: "include": "#string-elements"
78 Added: }
79 Added: ]
80 Added: },
81 Added: {
82 Added: "comment": "operator",
83 Added: "name": "keyword.operator.opam",
84 Added: "match": "[!=<>\\|&?:]+"
85 Added: },
86 Added: {
87 Added: "comment": "identifier",
88 Added: "match": "\\b([[:word:]+-]+)\\b",
89 Added: "name": "variable.parameter.opam"
90 Added: }
91 Added: ]
92 Added: },
93 Added: "string-elements": {
94 Added: "patterns": [
95 Added: {
96 Added: "comment": "escaped backslash",
97 Added: "name": "constant.character.escape.opam",
98 Added: "match": "\\\\\\\\"
99 Added: },
100 Added: {
101 Added: "comment": "escaped quote or whitespace",
102 Added: "name": "constant.character.escape.opam",
103 Added: "match": "\\\\[\"ntbr\\n]"
104 Added: },
105 Added: {
106 Added: "comment": "character from decimal ASCII code",
107 Added: "name": "constant.character.escape.opam",
108 Added: "match": "\\\\[[:digit:]]{3}"
109 Added: },
110 Added: {
111 Added: "comment": "character from hexadecimal ASCII code",
112 Added: "name": "constant.character.escape.opam",
113 Added: "match": "\\\\x[[:xdigit:]]{2}"
114 Added: },
115 Added: {
116 Added: "comment": "variable interpolation",
117 Added: "name": "constant.variable.opam",
118 Added: "begin": "%\\{",
119 Added: "end": "}\\%"
120 Added: },
121 Added: {
122 Added: "comment": "unknown escape sequence",
123 Added: "name": "invalid.illegal.unknown-escape.opam",
124 Added: "match": "\\\\."
125 Added: }
126 Added: ]
127 Added: }
128 Added: }
129 Added: }
lib/grammars/powershell.json
index 00000000..e70dd530 000000..100644
@@ -0,0 +1,1029 @@
1 Added: {
2 Added: "information_for_contributors": [
3 Added: "This file has been converted from https://github.com/PowerShell/EditorSyntax/blob/master/PowerShellSyntax.tmLanguage",
4 Added: "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 Added: "Once accepted there, we are happy to receive an update request."
6 Added: ],
7 Added: "version": "https://github.com/PowerShell/EditorSyntax/commit/742f0b5d4b60f5930c0b47fcc1f646860521296e",
8 Added: "name": "PowerShell",
9 Added: "scopeName": "source.powershell",
10 Added: "patterns": [
11 Added: {
12 Added: "begin": "<#",
13 Added: "beginCaptures": {
14 Added: "0": {
15 Added: "name": "punctuation.definition.comment.block.begin.powershell"
16 Added: }
17 Added: },
18 Added: "end": "#>",
19 Added: "endCaptures": {
20 Added: "0": {
21 Added: "name": "punctuation.definition.comment.block.end.powershell"
22 Added: }
23 Added: },
24 Added: "name": "comment.block.powershell",
25 Added: "patterns": [
26 Added: {
27 Added: "include": "#commentEmbeddedDocs"
28 Added: }
29 Added: ]
30 Added: },
31 Added: {
32 Added: "match": "[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>",
33 Added: "name": "keyword.operator.redirection.powershell"
34 Added: },
35 Added: {
36 Added: "include": "#commands"
37 Added: },
38 Added: {
39 Added: "include": "#commentLine"
40 Added: },
41 Added: {
42 Added: "include": "#variable"
43 Added: },
44 Added: {
45 Added: "include": "#subexpression"
46 Added: },
47 Added: {
48 Added: "include": "#function"
49 Added: },
50 Added: {
51 Added: "include": "#attribute"
52 Added: },
53 Added: {
54 Added: "include": "#UsingDirective"
55 Added: },
56 Added: {
57 Added: "include": "#type"
58 Added: },
59 Added: {
60 Added: "include": "#hashtable"
61 Added: },
62 Added: {
63 Added: "include": "#doubleQuotedString"
64 Added: },
65 Added: {
66 Added: "include": "#scriptblock"
67 Added: },
68 Added: {
69 Added: "comment": "Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)",
70 Added: "include": "#doubleQuotedStringEscapes"
71 Added: },
72 Added: {
73 Added: "begin": "['\\x{2018}-\\x{201B}]",
74 Added: "beginCaptures": {
75 Added: "0": {
76 Added: "name": "punctuation.definition.string.begin.powershell"
77 Added: }
78 Added: },
79 Added: "end": "['\\x{2018}-\\x{201B}]",
80 Added: "applyEndPatternLast": true,
81 Added: "endCaptures": {
82 Added: "0": {
83 Added: "name": "punctuation.definition.string.end.powershell"
84 Added: }
85 Added: },
86 Added: "name": "string.quoted.single.powershell",
87 Added: "patterns": [
88 Added: {
89 Added: "match": "['\\x{2018}-\\x{201B}]{2}",
90 Added: "name": "constant.character.escape.powershell"
91 Added: }
92 Added: ]
93 Added: },
94 Added: {
95 Added: "begin": "(@[\"\\x{201C}-\\x{201E}])\\s*$",
96 Added: "beginCaptures": {
97 Added: "1": {
98 Added: "name": "punctuation.definition.string.begin.powershell"
99 Added: }
100 Added: },
101 Added: "end": "^[\"\\x{201C}-\\x{201E}]@",
102 Added: "endCaptures": {
103 Added: "0": {
104 Added: "name": "punctuation.definition.string.end.powershell"
105 Added: }
106 Added: },
107 Added: "name": "string.quoted.double.heredoc.powershell",
108 Added: "patterns": [
109 Added: {
110 Added: "include": "#variableNoProperty"
111 Added: },
112 Added: {
113 Added: "include": "#doubleQuotedStringEscapes"
114 Added: },
115 Added: {
116 Added: "include": "#interpolation"
117 Added: }
118 Added: ]
119 Added: },
120 Added: {
121 Added: "begin": "(@['\\x{2018}-\\x{201B}])\\s*$",
122 Added: "beginCaptures": {
123 Added: "1": {
124 Added: "name": "punctuation.definition.string.begin.powershell"
125 Added: }
126 Added: },
127 Added: "end": "^['\\x{2018}-\\x{201B}]@",
128 Added: "endCaptures": {
129 Added: "0": {
130 Added: "name": "punctuation.definition.string.end.powershell"
131 Added: }
132 Added: },
133 Added: "name": "string.quoted.single.heredoc.powershell"
134 Added: },
135 Added: {
136 Added: "include": "#numericConstant"
137 Added: },
138 Added: {
139 Added: "begin": "(@)(\\()",
140 Added: "beginCaptures": {
141 Added: "1": {
142 Added: "name": "keyword.other.array.begin.powershell"
143 Added: },
144 Added: "2": {
145 Added: "name": "punctuation.section.group.begin.powershell"
146 Added: }
147 Added: },
148 Added: "end": "\\)",
149 Added: "endCaptures": {
150 Added: "0": {
151 Added: "name": "punctuation.section.group.end.powershell"
152 Added: }
153 Added: },
154 Added: "name": "meta.group.array-expression.powershell",
155 Added: "patterns": [
156 Added: {
157 Added: "include": "$self"
158 Added: }
159 Added: ]
160 Added: },
161 Added: {
162 Added: "begin": "((\\$))(\\()",
163 Added: "beginCaptures": {
164 Added: "1": {
165 Added: "name": "keyword.other.substatement.powershell"
166 Added: },
167 Added: "2": {
168 Added: "name": "punctuation.definition.subexpression.powershell"
169 Added: },
170 Added: "3": {
171 Added: "name": "punctuation.section.group.begin.powershell"
172 Added: }
173 Added: },
174 Added: "comment": "TODO: move to repo; make recursive.",
175 Added: "end": "\\)",
176 Added: "endCaptures": {
177 Added: "0": {
178 Added: "name": "punctuation.section.group.end.powershell"
179 Added: }
180 Added: },
181 Added: "name": "meta.group.complex.subexpression.powershell",
182 Added: "patterns": [
183 Added: {
184 Added: "include": "$self"
185 Added: }
186 Added: ]
187 Added: },
188 Added: {
189 Added: "match": "(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)",
190 Added: "name": "support.function.powershell"
191 Added: },
192 Added: {
193 Added: "match": "(?<!\\w|-|\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)",
194 Added: "name": "keyword.control.powershell"
195 Added: },
196 Added: {
197 Added: "match": "(?<!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)",
198 Added: "name": "keyword.control.powershell"
199 Added: },
200 Added: {
201 Added: "begin": "(?<!\\w)(--%)(?!\\w)",
202 Added: "beginCaptures": {
203 Added: "1": {
204 Added: "name": "keyword.control.powershell"
205 Added: }
206 Added: },
207 Added: "end": "$",
208 Added: "patterns": [
209 Added: {
210 Added: "match": ".+",
211 Added: "name": "string.unquoted.powershell"
212 Added: }
213 Added: ],
214 Added: "comment": "This should be moved to the repository at some point."
215 Added: },
216 Added: {
217 Added: "comment": "This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.",
218 Added: "match": "(?<!\\w)((?i:hidden|static))(?!\\w)",
219 Added: "name": "storage.modifier.powershell"
220 Added: },
221 Added: {
222 Added: "captures": {
223 Added: "1": {
224 Added: "name": "storage.type.powershell"
225 Added: },
226 Added: "2": {
227 Added: "name": "entity.name.function"
228 Added: }
229 Added: },
230 Added: "comment": "capture should be entity.name.type, but it doesn't provide a good color in the default schema.",
231 Added: "match": "(?<!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b"
232 Added: },
233 Added: {
234 Added: "match": "(?<!\\w)-(?i:is(?:not)?|as)\\b",
235 Added: "name": "keyword.operator.comparison.powershell"
236 Added: },
237 Added: {
238 Added: "match": "(?<!\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\p{L})",
239 Added: "name": "keyword.operator.comparison.powershell"
240 Added: },
241 Added: {
242 Added: "match": "(?<!\\w)-(?i:join|split)(?!\\p{L})|!",
243 Added: "name": "keyword.operator.unary.powershell"
244 Added: },
245 Added: {
246 Added: "match": "(?<!\\w)-(?i:and|or|not|xor)(?!\\p{L})|!",
247 Added: "name": "keyword.operator.logical.powershell"
248 Added: },
249 Added: {
250 Added: "match": "(?<!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})",
251 Added: "name": "keyword.operator.bitwise.powershell"
252 Added: },
253 Added: {
254 Added: "match": "(?<!\\w)-(?i:f)(?!\\p{L})",
255 Added: "name": "keyword.operator.string-format.powershell"
256 Added: },
257 Added: {
258 Added: "match": "[+%*/-]?=|[+/*%-]",
259 Added: "name": "keyword.operator.assignment.powershell"
260 Added: },
261 Added: {
262 Added: "match": "\\|{2}|&{2}|;",
263 Added: "name": "punctuation.terminator.statement.powershell"
264 Added: },
265 Added: {
266 Added: "match": "&|(?<!\\w)\\.(?= )|`|,|\\|",
267 Added: "name": "keyword.operator.other.powershell"
268 Added: },
269 Added: {
270 Added: "comment": "This is very imprecise, is there a syntax for 'must come after...' ",
271 Added: "match": "(?<!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)",
272 Added: "name": "keyword.operator.range.powershell"
273 Added: }
274 Added: ],
275 Added: "repository": {
276 Added: "commentLine": {
277 Added: "begin": "(?<![`\\\\-])(#)#*",
278 Added: "captures": {
279 Added: "1": {
280 Added: "name": "punctuation.definition.comment.powershell"
281 Added: }
282 Added: },
283 Added: "end": "$\\n?",
284 Added: "name": "comment.line.powershell",
285 Added: "patterns": [
286 Added: {
287 Added: "include": "#commentEmbeddedDocs"
288 Added: },
289 Added: {
290 Added: "include": "#RequiresDirective"
291 Added: }
292 Added: ]
293 Added: },
294 Added: "attribute": {
295 Added: "begin": "(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b",
296 Added: "beginCaptures": {
297 Added: "1": {
298 Added: "name": "punctuation.section.bracket.begin.powershell"
299 Added: },
300 Added: "2": {
301 Added: "name": "support.function.attribute.powershell"
302 Added: }
303 Added: },
304 Added: "end": "(\\])",
305 Added: "endCaptures": {
306 Added: "1": {
307 Added: "name": "punctuation.section.bracket.end.powershell"
308 Added: }
309 Added: },
310 Added: "name": "meta.attribute.powershell",
311 Added: "patterns": [
312 Added: {
313 Added: "begin": "\\(",
314 Added: "beginCaptures": {
315 Added: "0": {
316 Added: "name": "punctuation.section.group.begin.powershell"
317 Added: }
318 Added: },
319 Added: "end": "\\)",
320 Added: "endCaptures": {
321 Added: "0": {
322 Added: "name": "punctuation.section.group.end.powershell"
323 Added: }
324 Added: },
325 Added: "patterns": [
326 Added: {
327 Added: "include": "$self"
328 Added: },
329 Added: {
330 Added: "match": "(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)?",
331 Added: "captures": {
332 Added: "1": {
333 Added: "name": "variable.parameter.attribute.powershell"
334 Added: },
335 Added: "2": {
336 Added: "name": "keyword.operator.assignment.powershell"
337 Added: }
338 Added: }
339 Added: }
340 Added: ]
341 Added: }
342 Added: ]
343 Added: },
344 Added: "commands": {
345 Added: "patterns": [
346 Added: {
347 Added: "comment": "Verb-Noun pattern:",
348 Added: "match": "(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b",
349 Added: "name": "support.function.powershell"
350 Added: },
351 Added: {
352 Added: "comment": "Builtin cmdlets with reserved verbs",
353 Added: "match": "(?<!\\w)(?i:foreach-object)(?!\\w)",
354 Added: "name": "support.function.powershell"
355 Added: },
356 Added: {
357 Added: "comment": "Builtin cmdlets with reserved verbs",
358 Added: "match": "(?<!\\w)(?i:where-object)(?!\\w)",
359 Added: "name": "support.function.powershell"
360 Added: },
361 Added: {
362 Added: "comment": "Builtin cmdlets with reserved verbs",
363 Added: "match": "(?<!\\w)(?i:sort-object)(?!\\w)",
364 Added: "name": "support.function.powershell"
365 Added: },
366 Added: {
367 Added: "comment": "Builtin cmdlets with reserved verbs",
368 Added: "match": "(?<!\\w)(?i:tee-object)(?!\\w)",
369 Added: "name": "support.function.powershell"
370 Added: }
371 Added: ]
372 Added: },
373 Added: "commentEmbeddedDocs": {
374 Added: "patterns": [
375 Added: {
376 Added: "captures": {
377 Added: "1": {
378 Added: "name": "constant.string.documentation.powershell"
379 Added: },
380 Added: "2": {
381 Added: "name": "keyword.operator.documentation.powershell"
382 Added: }
383 Added: },
384 Added: "comment": "these embedded doc keywords do not support arguments, must be the only thing on the line",
385 Added: "match": "(?:^|\\G)(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\s*$",
386 Added: "name": "comment.documentation.embedded.powershell"
387 Added: },
388 Added: {
389 Added: "captures": {
390 Added: "1": {
391 Added: "name": "constant.string.documentation.powershell"
392 Added: },
393 Added: "2": {
394 Added: "name": "keyword.operator.documentation.powershell"
395 Added: },
396 Added: "3": {
397 Added: "name": "keyword.operator.documentation.powershell"
398 Added: }
399 Added: },
400 Added: "comment": "these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match",
401 Added: "match": "(?:^|\\G)(?i:\\s*(\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\s+(.+?)\\s*$",
402 Added: "name": "comment.documentation.embedded.powershell"
403 Added: }
404 Added: ]
405 Added: },
406 Added: "doubleQuotedStringEscapes": {
407 Added: "patterns": [
408 Added: {
409 Added: "match": "`[`0abefnrtv'\"\\x{2018}-\\x{201E}$]",
410 Added: "name": "constant.character.escape.powershell"
411 Added: },
412 Added: {
413 Added: "include": "#unicodeEscape"
414 Added: }
415 Added: ]
416 Added: },
417 Added: "unicodeEscape": {
418 Added: "comment": "`u{xxxx} added in PowerShell 6.0",
419 Added: "patterns": [
420 Added: {
421 Added: "match": "`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g<1>{1,5})}",
422 Added: "name": "constant.character.escape.powershell"
423 Added: },
424 Added: {
425 Added: "match": "`u(?:\\{[0-9a-fA-F]{,6}.)?",
426 Added: "name": "invalid.character.escape.powershell"
427 Added: }
428 Added: ]
429 Added: },
430 Added: "function": {
431 Added: "begin": "^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)",
432 Added: "beginCaptures": {
433 Added: "0": {
434 Added: "name": "meta.function.powershell"
435 Added: },
436 Added: "1": {
437 Added: "name": "storage.type.powershell"
438 Added: },
439 Added: "2": {
440 Added: "name": "storage.modifier.scope.powershell"
441 Added: },
442 Added: "3": {
443 Added: "name": "entity.name.function.powershell"
444 Added: }
445 Added: },
446 Added: "end": "(?=\\{|\\()",
447 Added: "patterns": [
448 Added: {
449 Added: "include": "#commentLine"
450 Added: }
451 Added: ]
452 Added: },
453 Added: "subexpression": {
454 Added: "begin": "\\(",
455 Added: "beginCaptures": {
456 Added: "0": {
457 Added: "name": "punctuation.section.group.begin.powershell"
458 Added: }
459 Added: },
460 Added: "end": "\\)",
461 Added: "endCaptures": {
462 Added: "0": {
463 Added: "name": "punctuation.section.group.end.powershell"
464 Added: }
465 Added: },
466 Added: "name": "meta.group.simple.subexpression.powershell",
467 Added: "patterns": [
468 Added: {
469 Added: "include": "$self"
470 Added: }
471 Added: ]
472 Added: },
473 Added: "interpolation": {
474 Added: "begin": "(((\\$)))((\\())",
475 Added: "beginCaptures": {
476 Added: "1": {
477 Added: "name": "keyword.other.substatement.powershell"
478 Added: },
479 Added: "2": {
480 Added: "name": "punctuation.definition.substatement.powershell"
481 Added: },
482 Added: "3": {
483 Added: "name": "punctuation.section.embedded.substatement.begin.powershell"
484 Added: },
485 Added: "4": {
486 Added: "name": "punctuation.section.group.begin.powershell"
487 Added: },
488 Added: "5": {
489 Added: "name": "punctuation.section.embedded.substatement.begin.powershell"
490 Added: }
491 Added: },
492 Added: "contentName": "interpolated.complex.source.powershell",
493 Added: "end": "(\\))",
494 Added: "endCaptures": {
495 Added: "0": {
496 Added: "name": "punctuation.section.group.end.powershell"
497 Added: },
498 Added: "1": {
499 Added: "name": "punctuation.section.embedded.substatement.end.powershell"
500 Added: }
501 Added: },
502 Added: "name": "meta.embedded.substatement.powershell",
503 Added: "patterns": [
504 Added: {
505 Added: "include": "$self"
506 Added: }
507 Added: ]
508 Added: },
509 Added: "numericConstant": {
510 Added: "patterns": [
511 Added: {
512 Added: "captures": {
513 Added: "1": {
514 Added: "name": "constant.numeric.hex.powershell"
515 Added: },
516 Added: "2": {
517 Added: "name": "keyword.other.powershell"
518 Added: }
519 Added: },
520 Added: "match": "(?<!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"
521 Added: },
522 Added: {
523 Added: "captures": {
524 Added: "1": {
525 Added: "name": "constant.numeric.integer.powershell"
526 Added: },
527 Added: "2": {
528 Added: "name": "keyword.other.powershell"
529 Added: }
530 Added: },
531 Added: "match": "(?<!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"
532 Added: },
533 Added: {
534 Added: "captures": {
535 Added: "1": {
536 Added: "name": "constant.numeric.octal.powershell"
537 Added: },
538 Added: "2": {
539 Added: "name": "keyword.other.powershell"
540 Added: }
541 Added: },
542 Added: "match": "(?<!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"
543 Added: },
544 Added: {
545 Added: "captures": {
546 Added: "1": {
547 Added: "name": "constant.numeric.integer.powershell"
548 Added: },
549 Added: "2": {
550 Added: "name": "keyword.other.powershell"
551 Added: }
552 Added: },
553 Added: "match": "(?<!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"
554 Added: },
555 Added: {
556 Added: "captures": {
557 Added: "1": {
558 Added: "name": "constant.numeric.integer.powershell"
559 Added: },
560 Added: "2": {
561 Added: "name": "keyword.other.powershell"
562 Added: }
563 Added: },
564 Added: "match": "(?<!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"
565 Added: },
566 Added: {
567 Added: "captures": {
568 Added: "1": {
569 Added: "name": "constant.numeric.integer.powershell"
570 Added: },
571 Added: "2": {
572 Added: "name": "keyword.other.powershell"
573 Added: }
574 Added: },
575 Added: "match": "(?<!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b"
576 Added: },
577 Added: {
578 Added: "captures": {
579 Added: "1": {
580 Added: "name": "constant.numeric.integer.powershell"
581 Added: },
582 Added: "2": {
583 Added: "name": "keyword.other.powershell"
584 Added: }
585 Added: },
586 Added: "match": "(?<!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"
587 Added: }
588 Added: ]
589 Added: },
590 Added: "scriptblock": {
591 Added: "begin": "\\{",
592 Added: "beginCaptures": {
593 Added: "0": {
594 Added: "name": "punctuation.section.braces.begin.powershell"
595 Added: }
596 Added: },
597 Added: "end": "\\}",
598 Added: "endCaptures": {
599 Added: "0": {
600 Added: "name": "punctuation.section.braces.end.powershell"
601 Added: }
602 Added: },
603 Added: "name": "meta.scriptblock.powershell",
604 Added: "patterns": [
605 Added: {
606 Added: "include": "$self"
607 Added: }
608 Added: ]
609 Added: },
610 Added: "type": {
611 Added: "begin": "\\[",
612 Added: "beginCaptures": {
613 Added: "0": {
614 Added: "name": "punctuation.section.bracket.begin.powershell"
615 Added: }
616 Added: },
617 Added: "end": "\\]",
618 Added: "endCaptures": {
619 Added: "0": {
620 Added: "name": "punctuation.section.bracket.end.powershell"
621 Added: }
622 Added: },
623 Added: "patterns": [
624 Added: {
625 Added: "match": "(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+",
626 Added: "name": "storage.type.powershell"
627 Added: },
628 Added: {
629 Added: "include": "$self"
630 Added: }
631 Added: ]
632 Added: },
633 Added: "variable": {
634 Added: "patterns": [
635 Added: {
636 Added: "captures": {
637 Added: "0": {
638 Added: "name": "constant.language.powershell"
639 Added: },
640 Added: "1": {
641 Added: "name": "punctuation.definition.variable.powershell"
642 Added: }
643 Added: },
644 Added: "comment": "These are special constants.",
645 Added: "match": "(\\$)(?i:(False|Null|True))\\b"
646 Added: },
647 Added: {
648 Added: "captures": {
649 Added: "0": {
650 Added: "name": "support.constant.variable.powershell"
651 Added: },
652 Added: "1": {
653 Added: "name": "punctuation.definition.variable.powershell"
654 Added: },
655 Added: "3": {
656 Added: "name": "variable.other.member.powershell"
657 Added: }
658 Added: },
659 Added: "comment": "These are the other built-in constants.",
660 Added: "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"
661 Added: },
662 Added: {
663 Added: "captures": {
664 Added: "0": {
665 Added: "name": "support.variable.automatic.powershell"
666 Added: },
667 Added: "1": {
668 Added: "name": "punctuation.definition.variable.powershell"
669 Added: },
670 Added: "3": {
671 Added: "name": "variable.other.member.powershell"
672 Added: }
673 Added: },
674 Added: "comment": "Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.",
675 Added: "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
676 Added: },
677 Added: {
678 Added: "captures": {
679 Added: "0": {
680 Added: "name": "variable.language.powershell"
681 Added: },
682 Added: "1": {
683 Added: "name": "punctuation.definition.variable.powershell"
684 Added: },
685 Added: "3": {
686 Added: "name": "variable.other.member.powershell"
687 Added: }
688 Added: },
689 Added: "comment": "Style preference variables as language variables so that they stand out.",
690 Added: "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"
691 Added: },
692 Added: {
693 Added: "captures": {
694 Added: "0": {
695 Added: "name": "variable.other.readwrite.powershell"
696 Added: },
697 Added: "1": {
698 Added: "name": "punctuation.definition.variable.powershell"
699 Added: },
700 Added: "2": {
701 Added: "name": "storage.modifier.scope.powershell"
702 Added: },
703 Added: "4": {
704 Added: "name": "variable.other.member.powershell"
705 Added: }
706 Added: },
707 Added: "match": "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
708 Added: },
709 Added: {
710 Added: "captures": {
711 Added: "0": {
712 Added: "name": "variable.other.readwrite.powershell"
713 Added: },
714 Added: "1": {
715 Added: "name": "punctuation.definition.variable.powershell"
716 Added: },
717 Added: "2": {
718 Added: "name": "punctuation.section.braces.begin.powershell"
719 Added: },
720 Added: "3": {
721 Added: "name": "storage.modifier.scope.powershell"
722 Added: },
723 Added: "5": {
724 Added: "name": "punctuation.section.braces.end.powershell"
725 Added: },
726 Added: "6": {
727 Added: "name": "variable.other.member.powershell"
728 Added: }
729 Added: },
730 Added: "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
731 Added: },
732 Added: {
733 Added: "captures": {
734 Added: "0": {
735 Added: "name": "variable.other.readwrite.powershell"
736 Added: },
737 Added: "1": {
738 Added: "name": "punctuation.definition.variable.powershell"
739 Added: },
740 Added: "2": {
741 Added: "name": "support.variable.drive.powershell"
742 Added: },
743 Added: "4": {
744 Added: "name": "variable.other.member.powershell"
745 Added: }
746 Added: },
747 Added: "match": "(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
748 Added: },
749 Added: {
750 Added: "captures": {
751 Added: "0": {
752 Added: "name": "variable.other.readwrite.powershell"
753 Added: },
754 Added: "1": {
755 Added: "name": "punctuation.definition.variable.powershell"
756 Added: },
757 Added: "2": {
758 Added: "name": "punctuation.section.braces.begin.powershell"
759 Added: },
760 Added: "3": {
761 Added: "name": "support.variable.drive.powershell"
762 Added: },
763 Added: "5": {
764 Added: "name": "punctuation.section.braces.end.powershell"
765 Added: },
766 Added: "6": {
767 Added: "name": "variable.other.member.powershell"
768 Added: }
769 Added: },
770 Added: "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
771 Added: }
772 Added: ]
773 Added: },
774 Added: "UsingDirective": {
775 Added: "match": "(?<!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))",
776 Added: "captures": {
777 Added: "1": {
778 Added: "name": "keyword.control.using.powershell"
779 Added: },
780 Added: "2": {
781 Added: "name": "keyword.other.powershell"
782 Added: },
783 Added: "3": {
784 Added: "name": "variable.parameter.powershell"
785 Added: }
786 Added: }
787 Added: },
788 Added: "RequiresDirective": {
789 Added: "begin": "(?<=#)(?i:(requires))\\s",
790 Added: "beginCaptures": {
791 Added: "0": {
792 Added: "name": "keyword.control.requires.powershell"
793 Added: }
794 Added: },
795 Added: "end": "$",
796 Added: "name": "meta.requires.powershell",
797 Added: "patterns": [
798 Added: {
799 Added: "match": "\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)",
800 Added: "name": "keyword.other.powershell"
801 Added: },
802 Added: {
803 Added: "match": "(?<!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*",
804 Added: "name": "variable.parameter.powershell"
805 Added: },
806 Added: {
807 Added: "include": "#hashtable"
808 Added: }
809 Added: ]
810 Added: },
811 Added: "variableNoProperty": {
812 Added: "patterns": [
813 Added: {
814 Added: "captures": {
815 Added: "0": {
816 Added: "name": "constant.language.powershell"
817 Added: },
818 Added: "1": {
819 Added: "name": "punctuation.definition.variable.powershell"
820 Added: }
821 Added: },
822 Added: "comment": "These are special constants.",
823 Added: "match": "(\\$)(?i:(False|Null|True))\\b"
824 Added: },
825 Added: {
826 Added: "captures": {
827 Added: "0": {
828 Added: "name": "support.constant.variable.powershell"
829 Added: },
830 Added: "1": {
831 Added: "name": "punctuation.definition.variable.powershell"
832 Added: },
833 Added: "3": {
834 Added: "name": "variable.other.member.powershell"
835 Added: }
836 Added: },
837 Added: "comment": "These are the other built-in constants.",
838 Added: "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b"
839 Added: },
840 Added: {
841 Added: "captures": {
842 Added: "0": {
843 Added: "name": "support.variable.automatic.powershell"
844 Added: },
845 Added: "1": {
846 Added: "name": "punctuation.definition.variable.powershell"
847 Added: },
848 Added: "3": {
849 Added: "name": "variable.other.member.powershell"
850 Added: }
851 Added: },
852 Added: "comment": "Automatic variables are not constants, but they are read-only...",
853 Added: "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)"
854 Added: },
855 Added: {
856 Added: "captures": {
857 Added: "0": {
858 Added: "name": "variable.language.powershell"
859 Added: },
860 Added: "1": {
861 Added: "name": "punctuation.definition.variable.powershell"
862 Added: },
863 Added: "3": {
864 Added: "name": "variable.other.member.powershell"
865 Added: }
866 Added: },
867 Added: "comment": "Style preference variables as language variables so that they stand out.",
868 Added: "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\b"
869 Added: },
870 Added: {
871 Added: "captures": {
872 Added: "0": {
873 Added: "name": "variable.other.readwrite.powershell"
874 Added: },
875 Added: "1": {
876 Added: "name": "punctuation.definition.variable.powershell"
877 Added: },
878 Added: "2": {
879 Added: "name": "storage.modifier.scope.powershell"
880 Added: },
881 Added: "4": {
882 Added: "name": "variable.other.member.powershell"
883 Added: }
884 Added: },
885 Added: "match": "(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))"
886 Added: },
887 Added: {
888 Added: "captures": {
889 Added: "0": {
890 Added: "name": "variable.other.readwrite.powershell"
891 Added: },
892 Added: "1": {
893 Added: "name": "punctuation.definition.variable.powershell"
894 Added: },
895 Added: "2": {
896 Added: "name": "storage.modifier.scope.powershell"
897 Added: },
898 Added: "4": {
899 Added: "name": "keyword.other.powershell"
900 Added: },
901 Added: "5": {
902 Added: "name": "variable.other.member.powershell"
903 Added: }
904 Added: },
905 Added: "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))"
906 Added: },
907 Added: {
908 Added: "captures": {
909 Added: "0": {
910 Added: "name": "variable.other.readwrite.powershell"
911 Added: },
912 Added: "1": {
913 Added: "name": "punctuation.definition.variable.powershell"
914 Added: },
915 Added: "2": {
916 Added: "name": "support.variable.drive.powershell"
917 Added: },
918 Added: "4": {
919 Added: "name": "variable.other.member.powershell"
920 Added: }
921 Added: },
922 Added: "match": "(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))"
923 Added: },
924 Added: {
925 Added: "captures": {
926 Added: "0": {
927 Added: "name": "variable.other.readwrite.powershell"
928 Added: },
929 Added: "1": {
930 Added: "name": "punctuation.definition.variable.powershell"
931 Added: },
932 Added: "2": {
933 Added: "name": "punctuation.section.braces.begin"
934 Added: },
935 Added: "3": {
936 Added: "name": "support.variable.drive.powershell"
937 Added: },
938 Added: "5": {
939 Added: "name": "punctuation.section.braces.end"
940 Added: }
941 Added: },
942 Added: "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))"
943 Added: }
944 Added: ]
945 Added: },
946 Added: "hashtable": {
947 Added: "begin": "(@)(\\{)",
948 Added: "beginCaptures": {
949 Added: "1": {
950 Added: "name": "keyword.other.hashtable.begin.powershell"
951 Added: },
952 Added: "2": {
953 Added: "name": "punctuation.section.braces.begin.powershell"
954 Added: }
955 Added: },
956 Added: "end": "(\\})",
957 Added: "endCaptures": {
958 Added: "1": {
959 Added: "name": "punctuation.section.braces.end.powershell"
960 Added: }
961 Added: },
962 Added: "name": "meta.hashtable.powershell",
963 Added: "patterns": [
964 Added: {
965 Added: "captures": {
966 Added: "1": {
967 Added: "name": "punctuation.definition.string.begin.powershell"
968 Added: },
969 Added: "2": {
970 Added: "name": "variable.other.readwrite.powershell"
971 Added: },
972 Added: "3": {
973 Added: "name": "punctuation.definition.string.end.powershell"
974 Added: },
975 Added: "4": {
976 Added: "name": "keyword.operator.assignment.powershell"
977 Added: }
978 Added: },
979 Added: "match": "\\b((?:\\'|\\\")?)(\\w+)((?:\\'|\\\")?)(?:\\s+)?(=)(?:\\s+)?",
980 Added: "name": "meta.hashtable.assignment.powershell"
981 Added: },
982 Added: {
983 Added: "include": "#scriptblock"
984 Added: },
985 Added: {
986 Added: "include": "$self"
987 Added: }
988 Added: ]
989 Added: },
990 Added: "doubleQuotedString": {
991 Added: "begin": "[\"\\x{201C}-\\x{201E}]",
992 Added: "beginCaptures": {
993 Added: "0": {
994 Added: "name": "punctuation.definition.string.begin.powershell"
995 Added: }
996 Added: },
997 Added: "end": "[\"\\x{201C}-\\x{201E}]",
998 Added: "applyEndPatternLast": true,
999 Added: "endCaptures": {
1000 Added: "0": {
1001 Added: "name": "punctuation.definition.string.end.powershell"
1002 Added: }
1003 Added: },
1004 Added: "name": "string.quoted.double.powershell",
1005 Added: "patterns": [
1006 Added: {
1007 Added: "match": "(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b"
1008 Added: },
1009 Added: {
1010 Added: "include": "#variableNoProperty"
1011 Added: },
1012 Added: {
1013 Added: "include": "#doubleQuotedStringEscapes"
1014 Added: },
1015 Added: {
1016 Added: "match": "[\"\\x{201C}-\\x{201E}]{2}",
1017 Added: "name": "constant.character.escape.powershell"
1018 Added: },
1019 Added: {
1020 Added: "include": "#interpolation"
1021 Added: },
1022 Added: {
1023 Added: "match": "`\\s*$",
1024 Added: "name": "keyword.other.powershell"
1025 Added: }
1026 Added: ]
1027 Added: }
1028 Added: }
1029 Added: }
lib/grammars/protobuf.json
index 00000000..90e303dc 000000..100644
@@ -0,0 +1,285 @@
1 Added: {
2 Added: "name": "Protocol Buffer 3",
3 Added: "scopeName": "source.proto",
4 Added: "fileTypes": ["proto"],
5 Added:
6 Added: "patterns": [
7 Added: { "include": "#comments" },
8 Added: { "include": "#syntax" },
9 Added: { "include": "#package" },
10 Added: { "include": "#import" },
11 Added: { "include": "#optionStmt" },
12 Added: { "include": "#message" },
13 Added: { "include": "#enum" },
14 Added: { "include": "#service" }
15 Added: ],
16 Added:
17 Added: "repository": {
18 Added: "comments": {
19 Added: "patterns": [
20 Added: {
21 Added: "name": "comment.block.proto",
22 Added: "begin": "/\\*",
23 Added: "end": "\\*/"
24 Added: },
25 Added: {
26 Added: "name": "comment.line.double-slash.proto",
27 Added: "begin": "//",
28 Added: "end": "$\\n?"
29 Added: }
30 Added: ]
31 Added: },
32 Added: "syntax": {
33 Added: "match": "\\s*(syntax)\\s*(=)\\s*(\"proto[23]\")\\s*(;)",
34 Added: "captures": {
35 Added: "1": { "name": "keyword.other.proto" },
36 Added: "2": { "name": "keyword.operator.assignment.proto" },
37 Added: "3": { "name": "string.quoted.double.proto.syntax" },
38 Added: "4": { "name": "punctuation.terminator.proto" }
39 Added: }
40 Added: },
41 Added: "package": {
42 Added: "match": "\\s*(package)\\s+([\\w.]+)\\s*(;)",
43 Added: "captures": {
44 Added: "1": { "name": "keyword.other.proto" },
45 Added: "2": { "name": "string.unquoted.proto.package" },
46 Added: "3": { "name": "punctuation.terminator.proto" }
47 Added: }
48 Added: },
49 Added: "import": {
50 Added: "match": "\\s*(import)\\s+(weak|public)?\\s*(\"[^\"]+\")\\s*(;)",
51 Added: "captures": {
52 Added: "1": { "name": "keyword.other.proto" },
53 Added: "2": { "name": "keyword.other.proto" },
54 Added: "3": { "name": "string.quoted.double.proto.import" },
55 Added: "4": { "name": "punctuation.terminator.proto" }
56 Added: }
57 Added: },
58 Added: "optionStmt": {
59 Added: "begin": "(option)\\s+(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*\\s*(=)",
60 Added: "beginCaptures": {
61 Added: "1": { "name": "keyword.other.proto" },
62 Added: "2": { "name": "support.other.proto" },
63 Added: "3": { "name": "support.other.proto" },
64 Added: "4": { "name": "support.other.proto" },
65 Added: "5": { "name": "keyword.operator.assignment.proto" }
66 Added: },
67 Added: "end": "(;)",
68 Added: "endCaptures": {
69 Added: "1": { "name": "punctuation.terminator.proto" }
70 Added: },
71 Added: "patterns": [
72 Added: { "include": "#constants" },
73 Added: { "include": "#number" },
74 Added: { "include": "#string" },
75 Added: { "include": "#subMsgOption" }
76 Added: ]
77 Added: },
78 Added: "subMsgOption": {
79 Added: "begin": "\\{",
80 Added: "end": "\\}",
81 Added: "patterns": [{ "include": "#kv" }, { "include": "#comments" }]
82 Added: },
83 Added: "kv": {
84 Added: "begin": "(\\w+)\\s*(:)",
85 Added: "beginCaptures": {
86 Added: "1": { "name": "keyword.other.proto" },
87 Added: "2": { "name": "punctuation.separator.key-value.proto" }
88 Added: },
89 Added: "end": "(;)|,|(?=[}/_a-zA-Z])",
90 Added: "endCaptures": {
91 Added: "1": { "name": "punctuation.terminator.proto" }
92 Added: },
93 Added: "patterns": [
94 Added: { "include": "#constants" },
95 Added: { "include": "#number" },
96 Added: { "include": "#string" },
97 Added: { "include": "#subMsgOption" }
98 Added: ]
99 Added: },
100 Added: "fieldOptions": {
101 Added: "begin": "\\[",
102 Added: "end": "\\]",
103 Added: "patterns": [
104 Added: { "include": "#constants" },
105 Added: { "include": "#number" },
106 Added: { "include": "#string" },
107 Added: { "include": "#subMsgOption" },
108 Added: { "include": "#optionName" }
109 Added: ]
110 Added: },
111 Added: "optionName": {
112 Added: "match": "(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*",
113 Added: "captures": {
114 Added: "1": { "name": "support.other.proto" },
115 Added: "2": { "name": "support.other.proto" },
116 Added: "3": { "name": "support.other.proto" }
117 Added: }
118 Added: },
119 Added: "message": {
120 Added: "begin": "(message|extend)(\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\s*)(\\{)?",
121 Added: "beginCaptures": {
122 Added: "1": { "name": "keyword.other.proto" },
123 Added: "3": { "name": "entity.name.class.message.proto" }
124 Added: },
125 Added: "end": "\\}",
126 Added: "patterns": [
127 Added: { "include": "#reserved" },
128 Added: { "include": "$self" },
129 Added: { "include": "#enum" },
130 Added: { "include": "#optionStmt" },
131 Added: { "include": "#comments" },
132 Added: { "include": "#oneof" },
133 Added: { "include": "#field" },
134 Added: { "include": "#mapfield" }
135 Added: ]
136 Added: },
137 Added: "reserved": {
138 Added: "begin": "(reserved)\\s+",
139 Added: "beginCaptures": {
140 Added: "1": { "name": "keyword.other.proto" }
141 Added: },
142 Added: "end": "(;)",
143 Added: "endCaptures": {
144 Added: "1": { "name": "punctuation.terminator.proto" }
145 Added: },
146 Added: "patterns": [
147 Added: {
148 Added: "match": "(\\d+)(\\s+(to)\\s+(\\d+))?",
149 Added: "captures": {
150 Added: "1": { "name": "constant.numeric.proto" },
151 Added: "3": { "name": "keyword.other.proto" },
152 Added: "4": { "name": "constant.numeric.proto" }
153 Added: }
154 Added: },
155 Added: { "include": "#string" }
156 Added: ]
157 Added: },
158 Added: "field": {
159 Added: "begin": "\\s*(optional|repeated|required)?\\s*(\\.?[\\w.]+)\\s+(\\w+)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",
160 Added: "beginCaptures": {
161 Added: "1": { "name": "storage.modifier.proto" },
162 Added: "2": { "name": "storage.type.proto" },
163 Added: "3": { "name": "variable.other.proto" },
164 Added: "4": { "name": "keyword.operator.assignment.proto" },
165 Added: "5": { "name": "constant.numeric.proto" }
166 Added: },
167 Added: "end": "(;)",
168 Added: "endCaptures": {
169 Added: "1": { "name": "punctuation.terminator.proto" }
170 Added: },
171 Added: "patterns": [{ "include": "#fieldOptions" }]
172 Added: },
173 Added: "mapfield": {
174 Added: "begin": "\\s*(map)\\s*(<)\\s*(\\.?[\\w.]+)\\s*,\\s*(\\.?[\\w.]+)\\s*(>)\\s+(\\w+)\\s*(=)\\s*(\\d+)",
175 Added: "beginCaptures": {
176 Added: "1": { "name": "storage.type.proto" },
177 Added: "2": { "name": "punctuation.definition.typeparameters.begin.proto" },
178 Added: "3": { "name": "storage.type.proto" },
179 Added: "4": { "name": "storage.type.proto" },
180 Added: "5": { "name": "punctuation.definition.typeparameters.end.proto" },
181 Added: "6": { "name": "variable.other.proto" },
182 Added: "7": { "name": "keyword.operator.assignment.proto" },
183 Added: "8": { "name": "constant.numeric.proto" }
184 Added: },
185 Added: "end": "(;)",
186 Added: "endCaptures": {
187 Added: "1": { "name": "punctuation.terminator.proto" }
188 Added: },
189 Added: "patterns": [{ "include": "#fieldOptions" }]
190 Added: },
191 Added: "oneof": {
192 Added: "begin": "(oneof)\\s+([A-Za-z][A-Za-z0-9_]*)\\s*\\{?",
193 Added: "beginCaptures": {
194 Added: "1": { "name": "keyword.other.proto" },
195 Added: "2": { "name": "variable.other.proto" }
196 Added: },
197 Added: "end": "\\}",
198 Added: "patterns": [
199 Added: { "include": "#optionStmt" },
200 Added: { "include": "#comments" },
201 Added: { "include": "#field" }
202 Added: ]
203 Added: },
204 Added: "enum": {
205 Added: "begin": "(enum)(\\s+)([A-Za-z][A-Za-z0-9_]*)(\\s*)(\\{)?",
206 Added: "beginCaptures": {
207 Added: "1": { "name": "keyword.other.proto" },
208 Added: "3": { "name": "entity.name.class.proto" }
209 Added: },
210 Added: "end": "\\}",
211 Added: "patterns": [
212 Added: { "include": "#reserved" },
213 Added: { "include": "#optionStmt" },
214 Added: { "include": "#comments" },
215 Added: {
216 Added: "begin": "([A-Za-z][A-Za-z0-9_]*)\\s*(=)\\s*(-?0[xX][0-9a-fA-F]+|-?[0-9]+)",
217 Added: "beginCaptures": {
218 Added: "1": { "name": "variable.other.proto" },
219 Added: "2": { "name": "keyword.operator.assignment.proto" },
220 Added: "3": { "name": "constant.numeric.proto" }
221 Added: },
222 Added: "end": "(;)",
223 Added: "endCaptures": {
224 Added: "1": { "name": "punctuation.terminator.proto" }
225 Added: },
226 Added: "patterns": [{ "include": "#fieldOptions" }]
227 Added: }
228 Added: ]
229 Added: },
230 Added: "service": {
231 Added: "begin": "(service)\\s+([A-Za-z][A-Za-z0-9_.]*)\\s*\\{?",
232 Added: "beginCaptures": {
233 Added: "1": { "name": "keyword.other.proto" },
234 Added: "2": { "name": "entity.name.class.message.proto" }
235 Added: },
236 Added: "end": "\\}",
237 Added: "patterns": [
238 Added: { "include": "#comments" },
239 Added: { "include": "#optionStmt" },
240 Added: { "include": "#method" }
241 Added: ]
242 Added: },
243 Added: "method": {
244 Added: "begin": "(rpc)\\s+([A-Za-z][A-Za-z0-9_]*)",
245 Added: "beginCaptures": {
246 Added: "1": { "name": "keyword.other.proto" },
247 Added: "2": { "name": "entity.name.function" }
248 Added: },
249 Added: "end": "\\}|(;)",
250 Added: "endCaptures": {
251 Added: "1": { "name": "punctuation.terminator.proto" }
252 Added: },
253 Added: "patterns": [
254 Added: { "include": "#comments" },
255 Added: { "include": "#optionStmt" },
256 Added: { "include": "#rpcKeywords" },
257 Added: { "include": "#ident" }
258 Added: ]
259 Added: },
260 Added: "rpcKeywords": {
261 Added: "match": "\\b(stream|returns)\\b",
262 Added: "name": "keyword.other.proto"
263 Added: },
264 Added: "ident": {
265 Added: "match": "\\.?[A-Za-z][A-Za-z0-9_.]*",
266 Added: "name": "entity.name.class.proto"
267 Added: },
268 Added: "constants": {
269 Added: "match": "\\b(true|false|max|[A-Z_]+)\\b",
270 Added: "name": "constant.language.proto"
271 Added: },
272 Added: "storagetypes": {
273 Added: "match": "\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b",
274 Added: "name": "storage.type.proto"
275 Added: },
276 Added: "string": {
277 Added: "match": "([\"'])(?:\\\\.|[^\\\\])*?\\1",
278 Added: "name": "string.quoted.double.proto"
279 Added: },
280 Added: "number": {
281 Added: "name": "constant.numeric.proto",
282 Added: "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"
283 Added: }
284 Added: }
285 Added: }
lib/grammars/terraform.json
index 00000000..aa9ffb7a 000000..100644
@@ -0,0 +1,816 @@
1 Added: {
2 Added: "scopeName": "source.hcl.terraform",
3 Added: "name": "HashiCorp Terraform",
4 Added: "uuid": "d9db10d3-db70-48aa-8d44-f96ccbaa29f3",
5 Added: "fileTypes": [
6 Added: "tf",
7 Added: "tfvars"
8 Added: ],
9 Added: "patterns": [
10 Added: {
11 Added: "include": "#comments"
12 Added: },
13 Added: {
14 Added: "include": "#attribute_definition"
15 Added: },
16 Added: {
17 Added: "include": "#block"
18 Added: },
19 Added: {
20 Added: "include": "#expressions"
21 Added: }
22 Added: ],
23 Added: "repository": {
24 Added: "attribute_access": {
25 Added: "begin": "\\.(?!\\*)",
26 Added: "end": "[[:alpha:]][\\w-]*|\\d*",
27 Added: "comment": "Matches traversal attribute access such as .attr",
28 Added: "beginCaptures": {
29 Added: "0": {
30 Added: "name": "keyword.operator.accessor.hcl"
31 Added: }
32 Added: },
33 Added: "endCaptures": {
34 Added: "0": {
35 Added: "patterns": [
36 Added: {
37 Added: "match": "(?!null|false|true)[[:alpha:]][\\w-]*",
38 Added: "comment": "Attribute name",
39 Added: "name": "variable.other.member.hcl"
40 Added: },
41 Added: {
42 Added: "match": "\\d+",
43 Added: "comment": "Optional attribute index",
44 Added: "name": "constant.numeric.integer.hcl"
45 Added: }
46 Added: ]
47 Added: }
48 Added: }
49 Added: },
50 Added: "attribute_definition": {
51 Added: "name": "variable.declaration.hcl",
52 Added: "match": "(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*",
53 Added: "comment": "Identifier \"=\" with optional parens",
54 Added: "captures": {
55 Added: "1": {
56 Added: "name": "punctuation.section.parens.begin.hcl"
57 Added: },
58 Added: "2": {
59 Added: "name": "variable.other.readwrite.hcl"
60 Added: },
61 Added: "3": {
62 Added: "name": "punctuation.section.parens.end.hcl"
63 Added: },
64 Added: "4": {
65 Added: "name": "keyword.operator.assignment.hcl"
66 Added: }
67 Added: }
68 Added: },
69 Added: "attribute_splat": {
70 Added: "begin": "\\.",
71 Added: "end": "\\*",
72 Added: "comment": "Legacy attribute-only splat",
73 Added: "beginCaptures": {
74 Added: "0": {
75 Added: "name": "keyword.operator.accessor.hcl"
76 Added: }
77 Added: },
78 Added: "endCaptures": {
79 Added: "0": {
80 Added: "name": "keyword.operator.splat.hcl"
81 Added: }
82 Added: }
83 Added: },
84 Added: "block": {
85 Added: "name": "meta.block.hcl",
86 Added: "begin": "([\\w][\\-\\w]*)([\\s\\\"\\-\\w]*)(\\{)",
87 Added: "end": "\\}",
88 Added: "comment": "This will match Terraform blocks like `resource \"aws_instance\" \"web\" {` or `module {`",
89 Added: "beginCaptures": {
90 Added: "1": {
91 Added: "patterns": [
92 Added: {
93 Added: "match": "\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\b",
94 Added: "comment": "Known block type",
95 Added: "name": "entity.name.type.terraform"
96 Added: },
97 Added: {
98 Added: "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",
99 Added: "comment": "Unknown block type",
100 Added: "name": "entity.name.type.hcl"
101 Added: }
102 Added: ]
103 Added: },
104 Added: "2": {
105 Added: "patterns": [
106 Added: {
107 Added: "match": "[\\\"\\-\\w]+",
108 Added: "comment": "Block label",
109 Added: "name": "variable.other.enummember.hcl"
110 Added: }
111 Added: ]
112 Added: },
113 Added: "3": {
114 Added: "name": "punctuation.section.block.begin.hcl"
115 Added: },
116 Added: "5": {
117 Added: "name": "punctuation.section.block.begin.hcl"
118 Added: }
119 Added: },
120 Added: "endCaptures": {
121 Added: "0": {
122 Added: "name": "punctuation.section.block.end.hcl"
123 Added: }
124 Added: },
125 Added: "patterns": [
126 Added: {
127 Added: "include": "#comments"
128 Added: },
129 Added: {
130 Added: "include": "#attribute_definition"
131 Added: },
132 Added: {
133 Added: "include": "#block"
134 Added: },
135 Added: {
136 Added: "include": "#expressions"
137 Added: }
138 Added: ]
139 Added: },
140 Added: "block_inline_comments": {
141 Added: "name": "comment.block.hcl",
142 Added: "begin": "/\\*",
143 Added: "end": "\\*/",
144 Added: "comment": "Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence",
145 Added: "captures": {
146 Added: "0": {
147 Added: "name": "punctuation.definition.comment.hcl"
148 Added: }
149 Added: }
150 Added: },
151 Added: "brackets": {
152 Added: "begin": "\\[",
153 Added: "end": "\\]",
154 Added: "beginCaptures": {
155 Added: "0": {
156 Added: "name": "punctuation.section.brackets.begin.hcl"
157 Added: }
158 Added: },
159 Added: "endCaptures": {
160 Added: "0": {
161 Added: "name": "punctuation.section.brackets.end.hcl"
162 Added: }
163 Added: },
164 Added: "patterns": [
165 Added: {
166 Added: "name": "keyword.operator.splat.hcl",
167 Added: "match": "\\*",
168 Added: "comment": "Splat operator"
169 Added: },
170 Added: {
171 Added: "include": "#comma"
172 Added: },
173 Added: {
174 Added: "include": "#comments"
175 Added: },
176 Added: {
177 Added: "include": "#inline_for_expression"
178 Added: },
179 Added: {
180 Added: "include": "#inline_if_expression"
181 Added: },
182 Added: {
183 Added: "include": "#expressions"
184 Added: },
185 Added: {
186 Added: "include": "#local_identifiers"
187 Added: }
188 Added: ]
189 Added: },
190 Added: "char_escapes": {
191 Added: "name": "constant.character.escape.hcl",
192 Added: "match": "\\\\[nrt\"\\\\]|\\\\u(\\h{8}|\\h{4})",
193 Added: "comment": "Character Escapes"
194 Added: },
195 Added: "comma": {
196 Added: "name": "punctuation.separator.hcl",
197 Added: "match": "\\,",
198 Added: "comment": "Commas - used in certain expressions"
199 Added: },
200 Added: "comments": {
201 Added: "patterns": [
202 Added: {
203 Added: "include": "#hash_line_comments"
204 Added: },
205 Added: {
206 Added: "include": "#double_slash_line_comments"
207 Added: },
208 Added: {
209 Added: "include": "#block_inline_comments"
210 Added: }
211 Added: ]
212 Added: },
213 Added: "double_slash_line_comments": {
214 Added: "name": "comment.line.double-slash.hcl",
215 Added: "begin": "//",
216 Added: "end": "$\\n?",
217 Added: "comment": "Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",
218 Added: "captures": {
219 Added: "0": {
220 Added: "name": "punctuation.definition.comment.hcl"
221 Added: }
222 Added: }
223 Added: },
224 Added: "expressions": {
225 Added: "patterns": [
226 Added: {
227 Added: "include": "#literal_values"
228 Added: },
229 Added: {
230 Added: "include": "#operators"
231 Added: },
232 Added: {
233 Added: "include": "#tuple_for_expression"
234 Added: },
235 Added: {
236 Added: "include": "#object_for_expression"
237 Added: },
238 Added: {
239 Added: "include": "#brackets"
240 Added: },
241 Added: {
242 Added: "include": "#objects"
243 Added: },
244 Added: {
245 Added: "include": "#attribute_access"
246 Added: },
247 Added: {
248 Added: "include": "#attribute_splat"
249 Added: },
250 Added: {
251 Added: "include": "#functions"
252 Added: },
253 Added: {
254 Added: "include": "#parens"
255 Added: }
256 Added: ]
257 Added: },
258 Added: "for_expression_body": {
259 Added: "patterns": [
260 Added: {
261 Added: "name": "keyword.operator.word.hcl",
262 Added: "match": "\\bin\\b",
263 Added: "comment": "in keyword"
264 Added: },
265 Added: {
266 Added: "name": "keyword.control.conditional.hcl",
267 Added: "match": "\\bif\\b",
268 Added: "comment": "if keyword"
269 Added: },
270 Added: {
271 Added: "name": "keyword.operator.hcl",
272 Added: "match": "\\:"
273 Added: },
274 Added: {
275 Added: "include": "#expressions"
276 Added: },
277 Added: {
278 Added: "include": "#comments"
279 Added: },
280 Added: {
281 Added: "include": "#comma"
282 Added: },
283 Added: {
284 Added: "include": "#local_identifiers"
285 Added: }
286 Added: ]
287 Added: },
288 Added: "functions": {
289 Added: "name": "meta.function-call.hcl",
290 Added: "begin": "([:\\-\\w]+)(\\()",
291 Added: "end": "\\)",
292 Added: "comment": "Built-in function calls",
293 Added: "beginCaptures": {
294 Added: "1": {
295 Added: "patterns": [
296 Added: {
297 Added: "match": "\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\b",
298 Added: "name": "support.function.builtin.terraform"
299 Added: },
300 Added: {
301 Added: "match": "\\bprovider::[[:alpha:]][\\w_-]*::[[:alpha:]][\\w_-]*\\b",
302 Added: "name": "support.function.provider.terraform"
303 Added: }
304 Added: ]
305 Added: },
306 Added: "2": {
307 Added: "name": "punctuation.section.parens.begin.hcl"
308 Added: }
309 Added: },
310 Added: "endCaptures": {
311 Added: "0": {
312 Added: "name": "punctuation.section.parens.end.hcl"
313 Added: }
314 Added: },
315 Added: "patterns": [
316 Added: {
317 Added: "include": "#comments"
318 Added: },
319 Added: {
320 Added: "include": "#expressions"
321 Added: },
322 Added: {
323 Added: "include": "#comma"
324 Added: }
325 Added: ]
326 Added: },
327 Added: "hash_line_comments": {
328 Added: "name": "comment.line.number-sign.hcl",
329 Added: "begin": "#",
330 Added: "end": "$\\n?",
331 Added: "comment": "Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",
332 Added: "captures": {
333 Added: "0": {
334 Added: "name": "punctuation.definition.comment.hcl"
335 Added: }
336 Added: }
337 Added: },
338 Added: "hcl_type_keywords": {
339 Added: "name": "storage.type.hcl",
340 Added: "match": "\\b(any|string|number|bool|list|set|map|tuple|object)\\b",
341 Added: "comment": "Type keywords known to HCL."
342 Added: },
343 Added: "heredoc": {
344 Added: "name": "string.unquoted.heredoc.hcl",
345 Added: "begin": "(\\<\\<\\-?)\\s*(\\w+)\\s*$",
346 Added: "end": "^\\s*\\2\\s*$",
347 Added: "comment": "String Heredoc",
348 Added: "beginCaptures": {
349 Added: "1": {
350 Added: "name": "keyword.operator.heredoc.hcl"
351 Added: },
352 Added: "2": {
353 Added: "name": "keyword.control.heredoc.hcl"
354 Added: }
355 Added: },
356 Added: "endCaptures": {
357 Added: "0": {
358 Added: "name": "keyword.control.heredoc.hcl"
359 Added: }
360 Added: },
361 Added: "patterns": [
362 Added: {
363 Added: "include": "#string_interpolation"
364 Added: }
365 Added: ]
366 Added: },
367 Added: "inline_for_expression": {
368 Added: "match": "(for)\\b(.*)\\n",
369 Added: "captures": {
370 Added: "1": {
371 Added: "name": "keyword.control.hcl"
372 Added: },
373 Added: "2": {
374 Added: "patterns": [
375 Added: {
376 Added: "match": "\\=\\>",
377 Added: "name": "storage.type.function.hcl"
378 Added: },
379 Added: {
380 Added: "include": "#for_expression_body"
381 Added: }
382 Added: ]
383 Added: }
384 Added: }
385 Added: },
386 Added: "inline_if_expression": {
387 Added: "begin": "(if)\\b",
388 Added: "end": "\\n",
389 Added: "beginCaptures": {
390 Added: "1": {
391 Added: "name": "keyword.control.conditional.hcl"
392 Added: }
393 Added: },
394 Added: "patterns": [
395 Added: {
396 Added: "include": "#expressions"
397 Added: },
398 Added: {
399 Added: "include": "#comments"
400 Added: },
401 Added: {
402 Added: "include": "#comma"
403 Added: },
404 Added: {
405 Added: "include": "#local_identifiers"
406 Added: }
407 Added: ]
408 Added: },
409 Added: "language_constants": {
410 Added: "name": "constant.language.hcl",
411 Added: "match": "\\b(true|false|null)\\b",
412 Added: "comment": "Language Constants"
413 Added: },
414 Added: "literal_values": {
415 Added: "patterns": [
416 Added: {
417 Added: "include": "#numeric_literals"
418 Added: },
419 Added: {
420 Added: "include": "#language_constants"
421 Added: },
422 Added: {
423 Added: "include": "#string_literals"
424 Added: },
425 Added: {
426 Added: "include": "#heredoc"
427 Added: },
428 Added: {
429 Added: "include": "#hcl_type_keywords"
430 Added: },
431 Added: {
432 Added: "include": "#named_value_references"
433 Added: }
434 Added: ]
435 Added: },
436 Added: "local_identifiers": {
437 Added: "name": "variable.other.readwrite.hcl",
438 Added: "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",
439 Added: "comment": "Local Identifiers"
440 Added: },
441 Added: "named_value_references": {
442 Added: "name": "variable.other.readwrite.terraform",
443 Added: "match": "\\b(var|local|module|data|path|terraform)\\b",
444 Added: "comment": "Constant values available only to Terraform."
445 Added: },
446 Added: "numeric_literals": {
447 Added: "patterns": [
448 Added: {
449 Added: "name": "constant.numeric.float.hcl",
450 Added: "match": "\\b\\d+([Ee][+-]?)\\d+\\b",
451 Added: "comment": "Integer, no fraction, optional exponent",
452 Added: "captures": {
453 Added: "1": {
454 Added: "name": "punctuation.separator.exponent.hcl"
455 Added: }
456 Added: }
457 Added: },
458 Added: {
459 Added: "name": "constant.numeric.float.hcl",
460 Added: "match": "\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b",
461 Added: "comment": "Integer, fraction, optional exponent",
462 Added: "captures": {
463 Added: "1": {
464 Added: "name": "punctuation.separator.decimal.hcl"
465 Added: },
466 Added: "2": {
467 Added: "name": "punctuation.separator.exponent.hcl"
468 Added: }
469 Added: }
470 Added: },
471 Added: {
472 Added: "name": "constant.numeric.integer.hcl",
473 Added: "match": "\\b\\d+\\b",
474 Added: "comment": "Integers"
475 Added: }
476 Added: ]
477 Added: },
478 Added: "object_for_expression": {
479 Added: "begin": "(\\{)\\s?(for)\\b",
480 Added: "end": "\\}",
481 Added: "beginCaptures": {
482 Added: "1": {
483 Added: "name": "punctuation.section.braces.begin.hcl"
484 Added: },
485 Added: "2": {
486 Added: "name": "keyword.control.hcl"
487 Added: }
488 Added: },
489 Added: "endCaptures": {
490 Added: "0": {
491 Added: "name": "punctuation.section.braces.end.hcl"
492 Added: }
493 Added: },
494 Added: "patterns": [
495 Added: {
496 Added: "name": "storage.type.function.hcl",
497 Added: "match": "\\=\\>"
498 Added: },
499 Added: {
500 Added: "include": "#for_expression_body"
501 Added: }
502 Added: ]
503 Added: },
504 Added: "object_key_values": {
505 Added: "patterns": [
506 Added: {
507 Added: "include": "#comments"
508 Added: },
509 Added: {
510 Added: "include": "#literal_values"
511 Added: },
512 Added: {
513 Added: "include": "#operators"
514 Added: },
515 Added: {
516 Added: "include": "#tuple_for_expression"
517 Added: },
518 Added: {
519 Added: "include": "#object_for_expression"
520 Added: },
521 Added: {
522 Added: "include": "#heredoc"
523 Added: },
524 Added: {
525 Added: "include": "#functions"
526 Added: }
527 Added: ]
528 Added: },
529 Added: "objects": {
530 Added: "name": "meta.braces.hcl",
531 Added: "begin": "\\{",
532 Added: "end": "\\}",
533 Added: "beginCaptures": {
534 Added: "0": {
535 Added: "name": "punctuation.section.braces.begin.hcl"
536 Added: }
537 Added: },
538 Added: "endCaptures": {
539 Added: "0": {
540 Added: "name": "punctuation.section.braces.end.hcl"
541 Added: }
542 Added: },
543 Added: "patterns": [
544 Added: {
545 Added: "include": "#comments"
546 Added: },
547 Added: {
548 Added: "include": "#objects"
549 Added: },
550 Added: {
551 Added: "include": "#inline_for_expression"
552 Added: },
553 Added: {
554 Added: "include": "#inline_if_expression"
555 Added: },
556 Added: {
557 Added: "match": "\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\>?)\\s*",
558 Added: "comment": "Literal, named object key",
559 Added: "captures": {
560 Added: "1": {
561 Added: "name": "meta.mapping.key.hcl variable.other.readwrite.hcl"
562 Added: },
563 Added: "2": {
564 Added: "name": "keyword.operator.assignment.hcl",
565 Added: "patterns": [
566 Added: {
567 Added: "match": "\\=\\>",
568 Added: "name": "storage.type.function.hcl"
569 Added: }
570 Added: ]
571 Added: }
572 Added: }
573 Added: },
574 Added: {
575 Added: "match": "\\b((\").*(\"))\\s*(\\=)\\s*",
576 Added: "comment": "String object key",
577 Added: "captures": {
578 Added: "0": {
579 Added: "patterns": [
580 Added: {
581 Added: "include": "#named_value_references"
582 Added: }
583 Added: ]
584 Added: },
585 Added: "1": {
586 Added: "name": "meta.mapping.key.hcl string.quoted.double.hcl"
587 Added: },
588 Added: "2": {
589 Added: "name": "punctuation.definition.string.begin.hcl"
590 Added: },
591 Added: "3": {
592 Added: "name": "punctuation.definition.string.end.hcl"
593 Added: },
594 Added: "4": {
595 Added: "name": "keyword.operator.hcl"
596 Added: }
597 Added: }
598 Added: },
599 Added: {
600 Added: "name": "meta.mapping.key.hcl",
601 Added: "begin": "^\\s*\\(",
602 Added: "end": "(\\))\\s*(=|:)\\s*",
603 Added: "comment": "Computed object key (any expression between parens)",
604 Added: "beginCaptures": {
605 Added: "0": {
606 Added: "name": "punctuation.section.parens.begin.hcl"
607 Added: }
608 Added: },
609 Added: "endCaptures": {
610 Added: "1": {
611 Added: "name": "punctuation.section.parens.end.hcl"
612 Added: },
613 Added: "2": {
614 Added: "name": "keyword.operator.hcl"
615 Added: }
616 Added: },
617 Added: "patterns": [
618 Added: {
619 Added: "include": "#named_value_references"
620 Added: },
621 Added: {
622 Added: "include": "#attribute_access"
623 Added: }
624 Added: ]
625 Added: },
626 Added: {
627 Added: "include": "#object_key_values"
628 Added: }
629 Added: ]
630 Added: },
631 Added: "operators": {
632 Added: "patterns": [
633 Added: {
634 Added: "name": "keyword.operator.hcl",
635 Added: "match": "\\>\\="
636 Added: },
637 Added: {
638 Added: "name": "keyword.operator.hcl",
639 Added: "match": "\\<\\="
640 Added: },
641 Added: {
642 Added: "name": "keyword.operator.hcl",
643 Added: "match": "\\=\\="
644 Added: },
645 Added: {
646 Added: "name": "keyword.operator.hcl",
647 Added: "match": "\\!\\="
648 Added: },
649 Added: {
650 Added: "name": "keyword.operator.arithmetic.hcl",
651 Added: "match": "\\+"
652 Added: },
653 Added: {
654 Added: "name": "keyword.operator.arithmetic.hcl",
655 Added: "match": "\\-"
656 Added: },
657 Added: {
658 Added: "name": "keyword.operator.arithmetic.hcl",
659 Added: "match": "\\*"
660 Added: },
661 Added: {
662 Added: "name": "keyword.operator.arithmetic.hcl",
663 Added: "match": "\\/"
664 Added: },
665 Added: {
666 Added: "name": "keyword.operator.arithmetic.hcl",
667 Added: "match": "\\%"
668 Added: },
669 Added: {
670 Added: "name": "keyword.operator.logical.hcl",
671 Added: "match": "\\&\\&"
672 Added: },
673 Added: {
674 Added: "name": "keyword.operator.logical.hcl",
675 Added: "match": "\\|\\|"
676 Added: },
677 Added: {
678 Added: "name": "keyword.operator.logical.hcl",
679 Added: "match": "\\!"
680 Added: },
681 Added: {
682 Added: "name": "keyword.operator.hcl",
683 Added: "match": "\\>"
684 Added: },
685 Added: {
686 Added: "name": "keyword.operator.hcl",
687 Added: "match": "\\<"
688 Added: },
689 Added: {
690 Added: "name": "keyword.operator.hcl",
691 Added: "match": "\\?"
692 Added: },
693 Added: {
694 Added: "name": "keyword.operator.hcl",
695 Added: "match": "\\.\\.\\."
696 Added: },
697 Added: {
698 Added: "name": "keyword.operator.hcl",
699 Added: "match": "\\:"
700 Added: },
701 Added: {
702 Added: "name": "keyword.operator.hcl",
703 Added: "match": "\\=\\>"
704 Added: }
705 Added: ]
706 Added: },
707 Added: "parens": {
708 Added: "begin": "\\(",
709 Added: "end": "\\)",
710 Added: "comment": "Parens - matched *after* function syntax",
711 Added: "beginCaptures": {
712 Added: "0": {
713 Added: "name": "punctuation.section.parens.begin.hcl"
714 Added: }
715 Added: },
716 Added: "endCaptures": {
717 Added: "0": {
718 Added: "name": "punctuation.section.parens.end.hcl"
719 Added: }
720 Added: },
721 Added: "patterns": [
722 Added: {
723 Added: "include": "#comments"
724 Added: },
725 Added: {
726 Added: "include": "#expressions"
727 Added: }
728 Added: ]
729 Added: },
730 Added: "string_interpolation": {
731 Added: "name": "meta.interpolation.hcl",
732 Added: "begin": "(?<![%$])([%$]{)",
733 Added: "end": "\\}",
734 Added: "comment": "String interpolation",
735 Added: "beginCaptures": {
736 Added: "1": {
737 Added: "name": "keyword.other.interpolation.begin.hcl"
738 Added: }
739 Added: },
740 Added: "endCaptures": {
741 Added: "0": {
742 Added: "name": "keyword.other.interpolation.end.hcl"
743 Added: }
744 Added: },
745 Added: "patterns": [
746 Added: {
747 Added: "name": "keyword.operator.template.left.trim.hcl",
748 Added: "match": "\\~\\s",
749 Added: "comment": "Trim left whitespace"
750 Added: },
751 Added: {
752 Added: "name": "keyword.operator.template.right.trim.hcl",
753 Added: "match": "\\s\\~",
754 Added: "comment": "Trim right whitespace"
755 Added: },
756 Added: {
757 Added: "name": "keyword.control.hcl",
758 Added: "match": "\\b(if|else|endif|for|in|endfor)\\b",
759 Added: "comment": "if/else/endif and for/in/endfor directives"
760 Added: },
761 Added: {
762 Added: "include": "#expressions"
763 Added: },
764 Added: {
765 Added: "include": "#local_identifiers"
766 Added: }
767 Added: ]
768 Added: },
769 Added: "string_literals": {
770 Added: "name": "string.quoted.double.hcl",
771 Added: "begin": "\"",
772 Added: "end": "\"",
773 Added: "comment": "Strings",
774 Added: "beginCaptures": {
775 Added: "0": {
776 Added: "name": "punctuation.definition.string.begin.hcl"
777 Added: }
778 Added: },
779 Added: "endCaptures": {
780 Added: "0": {
781 Added: "name": "punctuation.definition.string.end.hcl"
782 Added: }
783 Added: },
784 Added: "patterns": [
785 Added: {
786 Added: "include": "#string_interpolation"
787 Added: },
788 Added: {
789 Added: "include": "#char_escapes"
790 Added: }
791 Added: ]
792 Added: },
793 Added: "tuple_for_expression": {
794 Added: "begin": "(\\[)\\s?(for)\\b",
795 Added: "end": "\\]",
796 Added: "beginCaptures": {
797 Added: "1": {
798 Added: "name": "punctuation.section.brackets.begin.hcl"
799 Added: },
800 Added: "2": {
801 Added: "name": "keyword.control.hcl"
802 Added: }
803 Added: },
804 Added: "endCaptures": {
805 Added: "0": {
806 Added: "name": "punctuation.section.brackets.end.hcl"
807 Added: }
808 Added: },
809 Added: "patterns": [
810 Added: {
811 Added: "include": "#for_expression_body"
812 Added: }
813 Added: ]
814 Added: }
815 Added: }
816 Added: }
lib/grammars/vue.json
index 00000000..2f184587 000000..100644
@@ -0,0 +1,1590 @@
1 Added: {
2 Added: "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3 Added: "name": "Vue",
4 Added: "scopeName": "text.html.vue",
5 Added: "patterns": [
6 Added: {
7 Added: "include": "#vue-comments"
8 Added: },
9 Added: {
10 Added: "include": "#self-closing-tag"
11 Added: },
12 Added: {
13 Added: "begin": "(<)",
14 Added: "beginCaptures": {
15 Added: "1": {
16 Added: "name": "punctuation.definition.tag.begin.html.vue"
17 Added: }
18 Added: },
19 Added: "end": "(>)",
20 Added: "endCaptures": {
21 Added: "1": {
22 Added: "name": "punctuation.definition.tag.end.html.vue"
23 Added: }
24 Added: },
25 Added: "patterns": [
26 Added: {
27 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)md\\b\\2)",
28 Added: "beginCaptures": {
29 Added: "1": {
30 Added: "name": "entity.name.tag.$1.html.vue"
31 Added: }
32 Added: },
33 Added: "end": "(</)(\\1)\\s*(?=>)",
34 Added: "endCaptures": {
35 Added: "1": {
36 Added: "name": "punctuation.definition.tag.begin.html.vue"
37 Added: },
38 Added: "2": {
39 Added: "name": "entity.name.tag.$2.html.vue"
40 Added: }
41 Added: },
42 Added: "patterns": [
43 Added: {
44 Added: "include": "#tag-stuff"
45 Added: },
46 Added: {
47 Added: "begin": "(?<=>)",
48 Added: "end": "(?=<\\/)",
49 Added: "name": "text.html.markdown",
50 Added: "patterns": [
51 Added: {
52 Added: "include": "text.html.markdown"
53 Added: }
54 Added: ]
55 Added: }
56 Added: ]
57 Added: },
58 Added: {
59 Added: "begin": "(?!template(?![A-Za-z0-9:-]))([A-Za-z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)html\\b\\2)",
60 Added: "beginCaptures": {
61 Added: "1": {
62 Added: "name": "entity.name.tag.$1.html.vue"
63 Added: }
64 Added: },
65 Added: "end": "(</)(\\1)\\s*(?=>)",
66 Added: "endCaptures": {
67 Added: "1": {
68 Added: "name": "punctuation.definition.tag.begin.html.vue"
69 Added: },
70 Added: "2": {
71 Added: "name": "entity.name.tag.$2.html.vue"
72 Added: }
73 Added: },
74 Added: "contentName": "text.html.derivative",
75 Added: "patterns": [
76 Added: {
77 Added: "include": "#tag-stuff"
78 Added: },
79 Added: {
80 Added: "include": "#html-stuff"
81 Added: }
82 Added: ]
83 Added: },
84 Added: {
85 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)pug\\b\\2)",
86 Added: "beginCaptures": {
87 Added: "1": {
88 Added: "name": "entity.name.tag.$1.html.vue"
89 Added: }
90 Added: },
91 Added: "end": "(</)(\\1)\\s*(?=>)",
92 Added: "endCaptures": {
93 Added: "1": {
94 Added: "name": "punctuation.definition.tag.begin.html.vue"
95 Added: },
96 Added: "2": {
97 Added: "name": "entity.name.tag.$2.html.vue"
98 Added: }
99 Added: },
100 Added: "patterns": [
101 Added: {
102 Added: "include": "#tag-stuff"
103 Added: },
104 Added: {
105 Added: "begin": "(?<=>)",
106 Added: "end": "(?=<\\/)",
107 Added: "name": "text.pug",
108 Added: "patterns": [
109 Added: {
110 Added: "include": "text.pug"
111 Added: }
112 Added: ]
113 Added: }
114 Added: ]
115 Added: },
116 Added: {
117 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)stylus\\b\\2)",
118 Added: "beginCaptures": {
119 Added: "1": {
120 Added: "name": "entity.name.tag.$1.html.vue"
121 Added: }
122 Added: },
123 Added: "end": "(</)(\\1)\\s*(?=>)",
124 Added: "endCaptures": {
125 Added: "1": {
126 Added: "name": "punctuation.definition.tag.begin.html.vue"
127 Added: },
128 Added: "2": {
129 Added: "name": "entity.name.tag.$2.html.vue"
130 Added: }
131 Added: },
132 Added: "patterns": [
133 Added: {
134 Added: "include": "#tag-stuff"
135 Added: },
136 Added: {
137 Added: "begin": "(?<=>)",
138 Added: "end": "(?=<\\/)",
139 Added: "name": "source.stylus",
140 Added: "patterns": [
141 Added: {
142 Added: "include": "source.stylus"
143 Added: }
144 Added: ]
145 Added: }
146 Added: ]
147 Added: },
148 Added: {
149 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)postcss\\b\\2)",
150 Added: "beginCaptures": {
151 Added: "1": {
152 Added: "name": "entity.name.tag.$1.html.vue"
153 Added: }
154 Added: },
155 Added: "end": "(</)(\\1)\\s*(?=>)",
156 Added: "endCaptures": {
157 Added: "1": {
158 Added: "name": "punctuation.definition.tag.begin.html.vue"
159 Added: },
160 Added: "2": {
161 Added: "name": "entity.name.tag.$2.html.vue"
162 Added: }
163 Added: },
164 Added: "patterns": [
165 Added: {
166 Added: "include": "#tag-stuff"
167 Added: },
168 Added: {
169 Added: "begin": "(?<=>)",
170 Added: "end": "(?=<\\/)",
171 Added: "name": "source.postcss",
172 Added: "patterns": [
173 Added: {
174 Added: "include": "source.postcss"
175 Added: }
176 Added: ]
177 Added: }
178 Added: ]
179 Added: },
180 Added: {
181 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)sass\\b\\2)",
182 Added: "beginCaptures": {
183 Added: "1": {
184 Added: "name": "entity.name.tag.$1.html.vue"
185 Added: }
186 Added: },
187 Added: "end": "(</)(\\1)\\s*(?=>)",
188 Added: "endCaptures": {
189 Added: "1": {
190 Added: "name": "punctuation.definition.tag.begin.html.vue"
191 Added: },
192 Added: "2": {
193 Added: "name": "entity.name.tag.$2.html.vue"
194 Added: }
195 Added: },
196 Added: "patterns": [
197 Added: {
198 Added: "include": "#tag-stuff"
199 Added: },
200 Added: {
201 Added: "begin": "(?<=>)",
202 Added: "end": "(?=<\\/)",
203 Added: "name": "source.sass",
204 Added: "patterns": [
205 Added: {
206 Added: "include": "source.sass"
207 Added: }
208 Added: ]
209 Added: }
210 Added: ]
211 Added: },
212 Added: {
213 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)css\\b\\2)",
214 Added: "beginCaptures": {
215 Added: "1": {
216 Added: "name": "entity.name.tag.$1.html.vue"
217 Added: }
218 Added: },
219 Added: "end": "(</)(\\1)\\s*(?=>)",
220 Added: "endCaptures": {
221 Added: "1": {
222 Added: "name": "punctuation.definition.tag.begin.html.vue"
223 Added: },
224 Added: "2": {
225 Added: "name": "entity.name.tag.$2.html.vue"
226 Added: }
227 Added: },
228 Added: "patterns": [
229 Added: {
230 Added: "include": "#tag-stuff"
231 Added: },
232 Added: {
233 Added: "begin": "(?<=>)",
234 Added: "end": "(?=<\\/)",
235 Added: "name": "source.css",
236 Added: "patterns": [
237 Added: {
238 Added: "include": "source.css"
239 Added: }
240 Added: ]
241 Added: }
242 Added: ]
243 Added: },
244 Added: {
245 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)scss\\b\\2)",
246 Added: "beginCaptures": {
247 Added: "1": {
248 Added: "name": "entity.name.tag.$1.html.vue"
249 Added: }
250 Added: },
251 Added: "end": "(</)(\\1)\\s*(?=>)",
252 Added: "endCaptures": {
253 Added: "1": {
254 Added: "name": "punctuation.definition.tag.begin.html.vue"
255 Added: },
256 Added: "2": {
257 Added: "name": "entity.name.tag.$2.html.vue"
258 Added: }
259 Added: },
260 Added: "patterns": [
261 Added: {
262 Added: "include": "#tag-stuff"
263 Added: },
264 Added: {
265 Added: "begin": "(?<=>)",
266 Added: "end": "(?=<\\/)",
267 Added: "name": "source.css.scss",
268 Added: "patterns": [
269 Added: {
270 Added: "include": "source.css.scss"
271 Added: }
272 Added: ]
273 Added: }
274 Added: ]
275 Added: },
276 Added: {
277 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)less\\b\\2)",
278 Added: "beginCaptures": {
279 Added: "1": {
280 Added: "name": "entity.name.tag.$1.html.vue"
281 Added: }
282 Added: },
283 Added: "end": "(</)(\\1)\\s*(?=>)",
284 Added: "endCaptures": {
285 Added: "1": {
286 Added: "name": "punctuation.definition.tag.begin.html.vue"
287 Added: },
288 Added: "2": {
289 Added: "name": "entity.name.tag.$2.html.vue"
290 Added: }
291 Added: },
292 Added: "patterns": [
293 Added: {
294 Added: "include": "#tag-stuff"
295 Added: },
296 Added: {
297 Added: "begin": "(?<=>)",
298 Added: "end": "(?=<\\/)",
299 Added: "name": "source.css.less",
300 Added: "patterns": [
301 Added: {
302 Added: "include": "source.css.less"
303 Added: }
304 Added: ]
305 Added: }
306 Added: ]
307 Added: },
308 Added: {
309 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)js\\b\\2)",
310 Added: "beginCaptures": {
311 Added: "1": {
312 Added: "name": "entity.name.tag.$1.html.vue"
313 Added: }
314 Added: },
315 Added: "end": "(</)(\\1)\\s*(?=>)",
316 Added: "endCaptures": {
317 Added: "1": {
318 Added: "name": "punctuation.definition.tag.begin.html.vue"
319 Added: },
320 Added: "2": {
321 Added: "name": "entity.name.tag.$2.html.vue"
322 Added: }
323 Added: },
324 Added: "patterns": [
325 Added: {
326 Added: "include": "#tag-stuff"
327 Added: },
328 Added: {
329 Added: "begin": "(?<=>)",
330 Added: "end": "(?=<\\/)",
331 Added: "name": "source.js",
332 Added: "patterns": [
333 Added: {
334 Added: "include": "source.js"
335 Added: }
336 Added: ]
337 Added: }
338 Added: ]
339 Added: },
340 Added: {
341 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)ts\\b\\2)",
342 Added: "beginCaptures": {
343 Added: "1": {
344 Added: "name": "entity.name.tag.$1.html.vue"
345 Added: }
346 Added: },
347 Added: "end": "(</)(\\1)\\s*(?=>)",
348 Added: "endCaptures": {
349 Added: "1": {
350 Added: "name": "punctuation.definition.tag.begin.html.vue"
351 Added: },
352 Added: "2": {
353 Added: "name": "entity.name.tag.$2.html.vue"
354 Added: }
355 Added: },
356 Added: "patterns": [
357 Added: {
358 Added: "include": "#tag-stuff"
359 Added: },
360 Added: {
361 Added: "begin": "(?<=>)(?=[^\\n]*<\\/script[\\s>])",
362 Added: "end": "(?=<\\/script[\\s>])",
363 Added: "name": "source.ts",
364 Added: "patterns": [
365 Added: {
366 Added: "include": "source.ts"
367 Added: }
368 Added: ]
369 Added: },
370 Added: {
371 Added: "begin": "(?<=>)",
372 Added: "while": "^(?!\\s*<\\/script[\\s>])",
373 Added: "name": "source.ts",
374 Added: "patterns": [
375 Added: {
376 Added: "include": "source.ts"
377 Added: }
378 Added: ]
379 Added: }
380 Added: ]
381 Added: },
382 Added: {
383 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)jsx\\b\\2)",
384 Added: "beginCaptures": {
385 Added: "1": {
386 Added: "name": "entity.name.tag.$1.html.vue"
387 Added: }
388 Added: },
389 Added: "end": "(</)(\\1)\\s*(?=>)",
390 Added: "endCaptures": {
391 Added: "1": {
392 Added: "name": "punctuation.definition.tag.begin.html.vue"
393 Added: },
394 Added: "2": {
395 Added: "name": "entity.name.tag.$2.html.vue"
396 Added: }
397 Added: },
398 Added: "patterns": [
399 Added: {
400 Added: "include": "#tag-stuff"
401 Added: },
402 Added: {
403 Added: "begin": "(?<=>)",
404 Added: "end": "(?=<\\/)",
405 Added: "name": "source.js.jsx",
406 Added: "patterns": [
407 Added: {
408 Added: "include": "source.js.jsx"
409 Added: }
410 Added: ]
411 Added: }
412 Added: ]
413 Added: },
414 Added: {
415 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)tsx\\b\\2)",
416 Added: "beginCaptures": {
417 Added: "1": {
418 Added: "name": "entity.name.tag.$1.html.vue"
419 Added: }
420 Added: },
421 Added: "end": "(</)(\\1)\\s*(?=>)",
422 Added: "endCaptures": {
423 Added: "1": {
424 Added: "name": "punctuation.definition.tag.begin.html.vue"
425 Added: },
426 Added: "2": {
427 Added: "name": "entity.name.tag.$2.html.vue"
428 Added: }
429 Added: },
430 Added: "patterns": [
431 Added: {
432 Added: "include": "#tag-stuff"
433 Added: },
434 Added: {
435 Added: "begin": "(?<=>)(?=[^\\n]*<\\/script[\\s>])",
436 Added: "end": "(?=<\\/script[\\s>])",
437 Added: "name": "source.tsx",
438 Added: "patterns": [
439 Added: {
440 Added: "include": "source.tsx"
441 Added: }
442 Added: ]
443 Added: },
444 Added: {
445 Added: "begin": "(?<=>)",
446 Added: "while": "^(?!\\s*<\\/script[\\s>])",
447 Added: "name": "source.tsx",
448 Added: "patterns": [
449 Added: {
450 Added: "include": "source.tsx"
451 Added: }
452 Added: ]
453 Added: }
454 Added: ]
455 Added: },
456 Added: {
457 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)coffee\\b\\2)",
458 Added: "beginCaptures": {
459 Added: "1": {
460 Added: "name": "entity.name.tag.$1.html.vue"
461 Added: }
462 Added: },
463 Added: "end": "(</)(\\1)\\s*(?=>)",
464 Added: "endCaptures": {
465 Added: "1": {
466 Added: "name": "punctuation.definition.tag.begin.html.vue"
467 Added: },
468 Added: "2": {
469 Added: "name": "entity.name.tag.$2.html.vue"
470 Added: }
471 Added: },
472 Added: "patterns": [
473 Added: {
474 Added: "include": "#tag-stuff"
475 Added: },
476 Added: {
477 Added: "begin": "(?<=>)",
478 Added: "end": "(?=<\\/)",
479 Added: "name": "source.coffee",
480 Added: "patterns": [
481 Added: {
482 Added: "include": "source.coffee"
483 Added: }
484 Added: ]
485 Added: }
486 Added: ]
487 Added: },
488 Added: {
489 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)json\\b\\2)",
490 Added: "beginCaptures": {
491 Added: "1": {
492 Added: "name": "entity.name.tag.$1.html.vue"
493 Added: }
494 Added: },
495 Added: "end": "(</)(\\1)\\s*(?=>)",
496 Added: "endCaptures": {
497 Added: "1": {
498 Added: "name": "punctuation.definition.tag.begin.html.vue"
499 Added: },
500 Added: "2": {
501 Added: "name": "entity.name.tag.$2.html.vue"
502 Added: }
503 Added: },
504 Added: "patterns": [
505 Added: {
506 Added: "include": "#tag-stuff"
507 Added: },
508 Added: {
509 Added: "begin": "(?<=>)",
510 Added: "end": "(?=<\\/)",
511 Added: "name": "source.json",
512 Added: "patterns": [
513 Added: {
514 Added: "include": "source.json"
515 Added: }
516 Added: ]
517 Added: }
518 Added: ]
519 Added: },
520 Added: {
521 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)jsonc\\b\\2)",
522 Added: "beginCaptures": {
523 Added: "1": {
524 Added: "name": "entity.name.tag.$1.html.vue"
525 Added: }
526 Added: },
527 Added: "end": "(</)(\\1)\\s*(?=>)",
528 Added: "endCaptures": {
529 Added: "1": {
530 Added: "name": "punctuation.definition.tag.begin.html.vue"
531 Added: },
532 Added: "2": {
533 Added: "name": "entity.name.tag.$2.html.vue"
534 Added: }
535 Added: },
536 Added: "patterns": [
537 Added: {
538 Added: "include": "#tag-stuff"
539 Added: },
540 Added: {
541 Added: "begin": "(?<=>)",
542 Added: "end": "(?=<\\/)",
543 Added: "name": "source.json.comments",
544 Added: "patterns": [
545 Added: {
546 Added: "include": "source.json.comments"
547 Added: }
548 Added: ]
549 Added: }
550 Added: ]
551 Added: },
552 Added: {
553 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)json5\\b\\2)",
554 Added: "beginCaptures": {
555 Added: "1": {
556 Added: "name": "entity.name.tag.$1.html.vue"
557 Added: }
558 Added: },
559 Added: "end": "(</)(\\1)\\s*(?=>)",
560 Added: "endCaptures": {
561 Added: "1": {
562 Added: "name": "punctuation.definition.tag.begin.html.vue"
563 Added: },
564 Added: "2": {
565 Added: "name": "entity.name.tag.$2.html.vue"
566 Added: }
567 Added: },
568 Added: "patterns": [
569 Added: {
570 Added: "include": "#tag-stuff"
571 Added: },
572 Added: {
573 Added: "begin": "(?<=>)",
574 Added: "end": "(?=<\\/)",
575 Added: "name": "source.json5",
576 Added: "patterns": [
577 Added: {
578 Added: "include": "source.json5"
579 Added: }
580 Added: ]
581 Added: }
582 Added: ]
583 Added: },
584 Added: {
585 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)yaml\\b\\2)",
586 Added: "beginCaptures": {
587 Added: "1": {
588 Added: "name": "entity.name.tag.$1.html.vue"
589 Added: }
590 Added: },
591 Added: "end": "(</)(\\1)\\s*(?=>)",
592 Added: "endCaptures": {
593 Added: "1": {
594 Added: "name": "punctuation.definition.tag.begin.html.vue"
595 Added: },
596 Added: "2": {
597 Added: "name": "entity.name.tag.$2.html.vue"
598 Added: }
599 Added: },
600 Added: "patterns": [
601 Added: {
602 Added: "include": "#tag-stuff"
603 Added: },
604 Added: {
605 Added: "begin": "(?<=>)",
606 Added: "end": "(?=<\\/)",
607 Added: "name": "source.yaml",
608 Added: "patterns": [
609 Added: {
610 Added: "include": "source.yaml"
611 Added: }
612 Added: ]
613 Added: }
614 Added: ]
615 Added: },
616 Added: {
617 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)toml\\b\\2)",
618 Added: "beginCaptures": {
619 Added: "1": {
620 Added: "name": "entity.name.tag.$1.html.vue"
621 Added: }
622 Added: },
623 Added: "end": "(</)(\\1)\\s*(?=>)",
624 Added: "endCaptures": {
625 Added: "1": {
626 Added: "name": "punctuation.definition.tag.begin.html.vue"
627 Added: },
628 Added: "2": {
629 Added: "name": "entity.name.tag.$2.html.vue"
630 Added: }
631 Added: },
632 Added: "patterns": [
633 Added: {
634 Added: "include": "#tag-stuff"
635 Added: },
636 Added: {
637 Added: "begin": "(?<=>)",
638 Added: "end": "(?=<\\/)",
639 Added: "name": "source.toml",
640 Added: "patterns": [
641 Added: {
642 Added: "include": "source.toml"
643 Added: }
644 Added: ]
645 Added: }
646 Added: ]
647 Added: },
648 Added: {
649 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)(gql|graphql)\\b\\2)",
650 Added: "beginCaptures": {
651 Added: "1": {
652 Added: "name": "entity.name.tag.$1.html.vue"
653 Added: }
654 Added: },
655 Added: "end": "(</)(\\1)\\s*(?=>)",
656 Added: "endCaptures": {
657 Added: "1": {
658 Added: "name": "punctuation.definition.tag.begin.html.vue"
659 Added: },
660 Added: "2": {
661 Added: "name": "entity.name.tag.$2.html.vue"
662 Added: }
663 Added: },
664 Added: "patterns": [
665 Added: {
666 Added: "include": "#tag-stuff"
667 Added: },
668 Added: {
669 Added: "begin": "(?<=>)",
670 Added: "end": "(?=<\\/)",
671 Added: "name": "source.graphql",
672 Added: "patterns": [
673 Added: {
674 Added: "include": "source.graphql"
675 Added: }
676 Added: ]
677 Added: }
678 Added: ]
679 Added: },
680 Added: {
681 Added: "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)vue\\b\\2)",
682 Added: "beginCaptures": {
683 Added: "1": {
684 Added: "name": "entity.name.tag.$1.html.vue"
685 Added: }
686 Added: },
687 Added: "end": "(</)(\\1)\\s*(?=>)",
688 Added: "endCaptures": {
689 Added: "1": {
690 Added: "name": "punctuation.definition.tag.begin.html.vue"
691 Added: },
692 Added: "2": {
693 Added: "name": "entity.name.tag.$2.html.vue"
694 Added: }
695 Added: },
696 Added: "patterns": [
697 Added: {
698 Added: "include": "#tag-stuff"
699 Added: },
700 Added: {
701 Added: "begin": "(?<=>)",
702 Added: "end": "(?=<\\/)",
703 Added: "name": "text.html.vue",
704 Added: "patterns": [
705 Added: {
706 Added: "include": "text.html.vue"
707 Added: }
708 Added: ]
709 Added: }
710 Added: ]
711 Added: },
712 Added: {
713 Added: "begin": "(template)(?=\\s|\\/?>)",
714 Added: "beginCaptures": {
715 Added: "1": {
716 Added: "name": "entity.name.tag.$1.html.vue"
717 Added: }
718 Added: },
719 Added: "end": "(</)(\\1)\\s*(?=>)",
720 Added: "endCaptures": {
721 Added: "1": {
722 Added: "name": "punctuation.definition.tag.begin.html.vue"
723 Added: },
724 Added: "2": {
725 Added: "name": "entity.name.tag.$2.html.vue"
726 Added: }
727 Added: },
728 Added: "patterns": [
729 Added: {
730 Added: "include": "#tag-stuff"
731 Added: },
732 Added: {
733 Added: "begin": "(?<=>)",
734 Added: "end": "(?=<\\/template[\\s>])",
735 Added: "name": "text.html.derivative",
736 Added: "patterns": [
737 Added: {
738 Added: "include": "#html-stuff"
739 Added: }
740 Added: ]
741 Added: }
742 Added: ]
743 Added: },
744 Added: {
745 Added: "begin": "(script)(?=\\s|\\/?>)",
746 Added: "beginCaptures": {
747 Added: "1": {
748 Added: "name": "entity.name.tag.$1.html.vue"
749 Added: }
750 Added: },
751 Added: "end": "(</)(\\1)\\s*(?=>)",
752 Added: "endCaptures": {
753 Added: "1": {
754 Added: "name": "punctuation.definition.tag.begin.html.vue"
755 Added: },
756 Added: "2": {
757 Added: "name": "entity.name.tag.$2.html.vue"
758 Added: }
759 Added: },
760 Added: "patterns": [
761 Added: {
762 Added: "include": "#multi-line-script-tag-stuff"
763 Added: }
764 Added: ]
765 Added: },
766 Added: {
767 Added: "begin": "(style)(?=\\s|\\/?>)",
768 Added: "beginCaptures": {
769 Added: "1": {
770 Added: "name": "entity.name.tag.$1.html.vue"
771 Added: }
772 Added: },
773 Added: "end": "(</)(\\1)\\s*(?=>)",
774 Added: "endCaptures": {
775 Added: "1": {
776 Added: "name": "punctuation.definition.tag.begin.html.vue"
777 Added: },
778 Added: "2": {
779 Added: "name": "entity.name.tag.$2.html.vue"
780 Added: }
781 Added: },
782 Added: "patterns": [
783 Added: {
784 Added: "include": "#multi-line-style-tag-stuff"
785 Added: }
786 Added: ]
787 Added: },
788 Added: {
789 Added: "begin": "([a-zA-Z0-9:-]+)",
790 Added: "beginCaptures": {
791 Added: "1": {
792 Added: "name": "entity.name.tag.$1.html.vue"
793 Added: }
794 Added: },
795 Added: "end": "(</)(\\1)\\s*(?=>)",
796 Added: "endCaptures": {
797 Added: "1": {
798 Added: "name": "punctuation.definition.tag.begin.html.vue"
799 Added: },
800 Added: "2": {
801 Added: "name": "entity.name.tag.$2.html.vue"
802 Added: }
803 Added: },
804 Added: "patterns": [
805 Added: {
806 Added: "include": "#tag-stuff"
807 Added: },
808 Added: {
809 Added: "begin": "(?<=>)",
810 Added: "end": "(?=<\\/)",
811 Added: "name": "text"
812 Added: }
813 Added: ]
814 Added: }
815 Added: ]
816 Added: }
817 Added: ],
818 Added: "repository": {
819 Added: "multi-line-script-tag-stuff": {
820 Added: "begin": "\\G",
821 Added: "end": "(?=<\\/script[\\s>])",
822 Added: "patterns": [
823 Added: {
824 Added: "begin": "\\G(?!\\blang\\s*=\\s*(?:['\"]?)(?:ts|tsx|jsx|coffee)\\b)",
825 Added: "end": "(?=\\blang\\s*=\\s*(?:['\"]?)(?:ts|tsx|jsx|coffee)\\b)|(>)",
826 Added: "endCaptures": {
827 Added: "1": {
828 Added: "name": "punctuation.definition.tag.end.html.vue"
829 Added: }
830 Added: },
831 Added: "name": "meta.tag-stuff",
832 Added: "patterns": [
833 Added: {
834 Added: "include": "#vue-directives"
835 Added: },
836 Added: {
837 Added: "include": "text.html.basic#attribute"
838 Added: }
839 Added: ]
840 Added: },
841 Added: {
842 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)ts\\b)",
843 Added: "end": "(?=<\\/script[\\s>])",
844 Added: "patterns": [
845 Added: {
846 Added: "include": "#tag-stuff"
847 Added: },
848 Added: {
849 Added: "begin": "(?<=>)(?=[^\\n]*<\\/script[\\s>])",
850 Added: "end": "(?=<\\/script[\\s>])",
851 Added: "name": "source.ts",
852 Added: "patterns": [
853 Added: {
854 Added: "include": "source.ts"
855 Added: }
856 Added: ]
857 Added: },
858 Added: {
859 Added: "begin": "(?<=>)",
860 Added: "while": "^(?!\\s*<\\/script[\\s>])",
861 Added: "name": "source.ts",
862 Added: "patterns": [
863 Added: {
864 Added: "include": "source.ts"
865 Added: }
866 Added: ]
867 Added: }
868 Added: ]
869 Added: },
870 Added: {
871 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)tsx\\b)",
872 Added: "end": "(?=<\\/script[\\s>])",
873 Added: "patterns": [
874 Added: {
875 Added: "include": "#tag-stuff"
876 Added: },
877 Added: {
878 Added: "begin": "(?<=>)(?=[^\\n]*<\\/script[\\s>])",
879 Added: "end": "(?=<\\/script[\\s>])",
880 Added: "name": "source.tsx",
881 Added: "patterns": [
882 Added: {
883 Added: "include": "source.tsx"
884 Added: }
885 Added: ]
886 Added: },
887 Added: {
888 Added: "begin": "(?<=>)",
889 Added: "while": "^(?!\\s*<\\/script[\\s>])",
890 Added: "name": "source.tsx",
891 Added: "patterns": [
892 Added: {
893 Added: "include": "source.tsx"
894 Added: }
895 Added: ]
896 Added: }
897 Added: ]
898 Added: },
899 Added: {
900 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)jsx\\b)",
901 Added: "end": "(?=<\\/script[\\s>])",
902 Added: "patterns": [
903 Added: {
904 Added: "include": "#tag-stuff"
905 Added: },
906 Added: {
907 Added: "begin": "(?<=>)",
908 Added: "end": "(?=<\\/script[\\s>])",
909 Added: "name": "source.js.jsx",
910 Added: "patterns": [
911 Added: {
912 Added: "include": "source.js.jsx"
913 Added: }
914 Added: ]
915 Added: }
916 Added: ]
917 Added: },
918 Added: {
919 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)coffee\\b)",
920 Added: "end": "(?=<\\/script[\\s>])",
921 Added: "patterns": [
922 Added: {
923 Added: "include": "#tag-stuff"
924 Added: },
925 Added: {
926 Added: "begin": "(?<=>)",
927 Added: "end": "(?=<\\/script[\\s>])",
928 Added: "name": "source.coffee",
929 Added: "patterns": [
930 Added: {
931 Added: "include": "source.coffee"
932 Added: }
933 Added: ]
934 Added: }
935 Added: ]
936 Added: },
937 Added: {
938 Added: "begin": "(?<=>)",
939 Added: "end": "(?=<\\/script[\\s>])",
940 Added: "name": "source.js",
941 Added: "patterns": [
942 Added: {
943 Added: "include": "source.js"
944 Added: }
945 Added: ]
946 Added: }
947 Added: ]
948 Added: },
949 Added: "multi-line-style-tag-stuff": {
950 Added: "begin": "\\G",
951 Added: "end": "(?=<\\/style[\\s>])",
952 Added: "patterns": [
953 Added: {
954 Added: "begin": "\\G(?!\\blang\\s*=\\s*(?:['\"]?)(?:scss|stylus|less|postcss)\\b)",
955 Added: "end": "(?=\\blang\\s*=\\s*(?:['\"]?)(?:scss|stylus|less|postcss)\\b)|(>)",
956 Added: "endCaptures": {
957 Added: "1": {
958 Added: "name": "punctuation.definition.tag.end.html.vue"
959 Added: }
960 Added: },
961 Added: "name": "meta.tag-stuff",
962 Added: "patterns": [
963 Added: {
964 Added: "include": "#vue-directives"
965 Added: },
966 Added: {
967 Added: "include": "text.html.basic#attribute"
968 Added: }
969 Added: ]
970 Added: },
971 Added: {
972 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)scss\\b)",
973 Added: "end": "(?=<\\/style[\\s>])",
974 Added: "patterns": [
975 Added: {
976 Added: "include": "#tag-stuff"
977 Added: },
978 Added: {
979 Added: "begin": "(?<=>)",
980 Added: "end": "(?=<\\/style[\\s>])",
981 Added: "name": "source.css.scss",
982 Added: "patterns": [
983 Added: {
984 Added: "include": "source.css.scss"
985 Added: }
986 Added: ]
987 Added: }
988 Added: ]
989 Added: },
990 Added: {
991 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)stylus\\b)",
992 Added: "end": "(?=<\\/style[\\s>])",
993 Added: "patterns": [
994 Added: {
995 Added: "include": "#tag-stuff"
996 Added: },
997 Added: {
998 Added: "begin": "(?<=>)",
999 Added: "end": "(?=<\\/style[\\s>])",
1000 Added: "name": "source.stylus",
1001 Added: "patterns": [
1002 Added: {
1003 Added: "include": "source.stylus"
1004 Added: }
1005 Added: ]
1006 Added: }
1007 Added: ]
1008 Added: },
1009 Added: {
1010 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)less\\b)",
1011 Added: "end": "(?=<\\/style[\\s>])",
1012 Added: "patterns": [
1013 Added: {
1014 Added: "include": "#tag-stuff"
1015 Added: },
1016 Added: {
1017 Added: "begin": "(?<=>)",
1018 Added: "end": "(?=<\\/style[\\s>])",
1019 Added: "name": "source.css.less",
1020 Added: "patterns": [
1021 Added: {
1022 Added: "include": "source.css.less"
1023 Added: }
1024 Added: ]
1025 Added: }
1026 Added: ]
1027 Added: },
1028 Added: {
1029 Added: "begin": "(?=\\blang\\s*=\\s*(?:['\"]?)postcss\\b)",
1030 Added: "end": "(?=<\\/style[\\s>])",
1031 Added: "patterns": [
1032 Added: {
1033 Added: "include": "#tag-stuff"
1034 Added: },
1035 Added: {
1036 Added: "begin": "(?<=>)",
1037 Added: "end": "(?=<\\/style[\\s>])",
1038 Added: "name": "source.postcss",
1039 Added: "patterns": [
1040 Added: {
1041 Added: "include": "source.postcss"
1042 Added: }
1043 Added: ]
1044 Added: }
1045 Added: ]
1046 Added: },
1047 Added: {
1048 Added: "begin": "(?<=>)",
1049 Added: "end": "(?=<\\/style[\\s>])",
1050 Added: "name": "source.css",
1051 Added: "patterns": [
1052 Added: {
1053 Added: "include": "source.css"
1054 Added: }
1055 Added: ]
1056 Added: }
1057 Added: ]
1058 Added: },
1059 Added: "self-closing-tag": {
1060 Added: "begin": "(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",
1061 Added: "beginCaptures": {
1062 Added: "1": {
1063 Added: "name": "punctuation.definition.tag.begin.html.vue"
1064 Added: },
1065 Added: "2": {
1066 Added: "name": "entity.name.tag.$2.html.vue"
1067 Added: }
1068 Added: },
1069 Added: "end": "(/>)",
1070 Added: "endCaptures": {
1071 Added: "1": {
1072 Added: "name": "punctuation.definition.tag.end.html.vue"
1073 Added: }
1074 Added: },
1075 Added: "name": "self-closing-tag",
1076 Added: "patterns": [
1077 Added: {
1078 Added: "include": "#tag-stuff"
1079 Added: }
1080 Added: ]
1081 Added: },
1082 Added: "capitalized-tag": {
1083 Added: "begin": "(<)([A-Z][a-zA-Z0-9:-]*)(?=\\s|/?>)",
1084 Added: "beginCaptures": {
1085 Added: "1": {
1086 Added: "name": "punctuation.definition.tag.begin.html.vue"
1087 Added: },
1088 Added: "2": {
1089 Added: "name": "entity.name.tag.html.vue"
1090 Added: }
1091 Added: },
1092 Added: "end": "/?>",
1093 Added: "endCaptures": {
1094 Added: "0": {
1095 Added: "name": "punctuation.definition.tag.end.html.vue"
1096 Added: }
1097 Added: },
1098 Added: "name": "meta.tag.structure.$2.start.html.vue",
1099 Added: "patterns": [
1100 Added: {
1101 Added: "begin": "\\G",
1102 Added: "end": "(?=/?>)",
1103 Added: "patterns": [
1104 Added: {
1105 Added: "include": "#vue-directives"
1106 Added: },
1107 Added: {
1108 Added: "include": "text.html.basic#attribute"
1109 Added: }
1110 Added: ]
1111 Added: }
1112 Added: ]
1113 Added: },
1114 Added: "template-tag": {
1115 Added: "patterns": [
1116 Added: {
1117 Added: "include": "#template-tag-1"
1118 Added: },
1119 Added: {
1120 Added: "include": "#template-tag-2"
1121 Added: }
1122 Added: ]
1123 Added: },
1124 Added: "template-tag-1": {
1125 Added: "begin": "(<)(template)\\b(>)",
1126 Added: "beginCaptures": {
1127 Added: "1": {
1128 Added: "name": "punctuation.definition.tag.begin.html.vue"
1129 Added: },
1130 Added: "2": {
1131 Added: "name": "entity.name.tag.$2.html.vue"
1132 Added: },
1133 Added: "3": {
1134 Added: "name": "punctuation.definition.tag.end.html.vue"
1135 Added: }
1136 Added: },
1137 Added: "end": "(/?>)",
1138 Added: "endCaptures": {
1139 Added: "1": {
1140 Added: "name": "punctuation.definition.tag.end.html.vue"
1141 Added: }
1142 Added: },
1143 Added: "name": "meta.template-tag.start",
1144 Added: "patterns": [
1145 Added: {
1146 Added: "begin": "\\G",
1147 Added: "end": "(?=/>)|((</)(template)(?=[\\s>]))",
1148 Added: "endCaptures": {
1149 Added: "2": {
1150 Added: "name": "punctuation.definition.tag.begin.html.vue"
1151 Added: },
1152 Added: "3": {
1153 Added: "name": "entity.name.tag.$3.html.vue"
1154 Added: }
1155 Added: },
1156 Added: "name": "meta.template-tag.end",
1157 Added: "patterns": [
1158 Added: {
1159 Added: "include": "#html-stuff"
1160 Added: }
1161 Added: ]
1162 Added: }
1163 Added: ]
1164 Added: },
1165 Added: "template-tag-2": {
1166 Added: "begin": "(<)(template)(?=\\s|\\/?>)",
1167 Added: "beginCaptures": {
1168 Added: "1": {
1169 Added: "name": "punctuation.definition.tag.begin.html.vue"
1170 Added: },
1171 Added: "2": {
1172 Added: "name": "entity.name.tag.$2.html.vue"
1173 Added: }
1174 Added: },
1175 Added: "end": "(/?>)",
1176 Added: "endCaptures": {
1177 Added: "1": {
1178 Added: "name": "punctuation.definition.tag.end.html.vue"
1179 Added: }
1180 Added: },
1181 Added: "name": "meta.template-tag.start",
1182 Added: "patterns": [
1183 Added: {
1184 Added: "begin": "\\G",
1185 Added: "end": "(?=/>)|((</)(template)(?=[\\s>]))",
1186 Added: "endCaptures": {
1187 Added: "2": {
1188 Added: "name": "punctuation.definition.tag.begin.html.vue"
1189 Added: },
1190 Added: "3": {
1191 Added: "name": "entity.name.tag.$3.html.vue"
1192 Added: }
1193 Added: },
1194 Added: "name": "meta.template-tag.end",
1195 Added: "patterns": [
1196 Added: {
1197 Added: "include": "#tag-stuff"
1198 Added: },
1199 Added: {
1200 Added: "include": "#html-stuff"
1201 Added: }
1202 Added: ]
1203 Added: }
1204 Added: ]
1205 Added: },
1206 Added: "html-stuff": {
1207 Added: "patterns": [
1208 Added: {
1209 Added: "include": "#template-tag"
1210 Added: },
1211 Added: {
1212 Added: "include": "#capitalized-tag"
1213 Added: },
1214 Added: {
1215 Added: "include": "text.html.derivative"
1216 Added: },
1217 Added: {
1218 Added: "include": "text.html.basic"
1219 Added: }
1220 Added: ]
1221 Added: },
1222 Added: "tag-stuff": {
1223 Added: "begin": "\\G",
1224 Added: "end": "(?=/>)|(>)",
1225 Added: "endCaptures": {
1226 Added: "1": {
1227 Added: "name": "punctuation.definition.tag.end.html.vue"
1228 Added: }
1229 Added: },
1230 Added: "name": "meta.tag-stuff",
1231 Added: "patterns": [
1232 Added: {
1233 Added: "include": "#vue-directives"
1234 Added: },
1235 Added: {
1236 Added: "include": "text.html.basic#attribute"
1237 Added: }
1238 Added: ]
1239 Added: },
1240 Added: "vue-directives": {
1241 Added: "patterns": [
1242 Added: {
1243 Added: "include": "#vue-directives-control"
1244 Added: },
1245 Added: {
1246 Added: "include": "#vue-directives-generic-attr"
1247 Added: },
1248 Added: {
1249 Added: "include": "#vue-directives-style-attr"
1250 Added: },
1251 Added: {
1252 Added: "include": "#vue-directives-original"
1253 Added: }
1254 Added: ]
1255 Added: },
1256 Added: "vue-directives-original": {
1257 Added: "begin": "(?:(?:(v-[\\w-]+)(:)?)|([:\\.])|(@)|(#))(?:(?:(\\[)([^\\]]*)(\\]))|([\\w-]+))?",
1258 Added: "beginCaptures": {
1259 Added: "1": {
1260 Added: "name": "entity.other.attribute-name.html.vue"
1261 Added: },
1262 Added: "2": {
1263 Added: "name": "punctuation.separator.key-value.html.vue"
1264 Added: },
1265 Added: "3": {
1266 Added: "name": "punctuation.attribute-shorthand.bind.html.vue"
1267 Added: },
1268 Added: "4": {
1269 Added: "name": "punctuation.attribute-shorthand.event.html.vue"
1270 Added: },
1271 Added: "5": {
1272 Added: "name": "punctuation.attribute-shorthand.slot.html.vue"
1273 Added: },
1274 Added: "6": {
1275 Added: "name": "punctuation.separator.key-value.html.vue"
1276 Added: },
1277 Added: "7": {
1278 Added: "name": "source.ts.embedded.html.vue",
1279 Added: "patterns": [
1280 Added: {
1281 Added: "include": "source.ts#expression"
1282 Added: }
1283 Added: ]
1284 Added: },
1285 Added: "8": {
1286 Added: "name": "punctuation.separator.key-value.html.vue"
1287 Added: },
1288 Added: "9": {
1289 Added: "name": "entity.other.attribute-name.html.vue"
1290 Added: }
1291 Added: },
1292 Added: "end": "(?=\\s*[^=\\s])",
1293 Added: "name": "meta.attribute.directive.vue",
1294 Added: "patterns": [
1295 Added: {
1296 Added: "match": "(\\.)([\\w-]*)",
1297 Added: "1": {
1298 Added: "name": "punctuation.separator.key-value.html.vue"
1299 Added: },
1300 Added: "2": {
1301 Added: "name": "entity.other.attribute-name.html.vue"
1302 Added: }
1303 Added: },
1304 Added: {
1305 Added: "include": "#vue-directives-expression"
1306 Added: }
1307 Added: ]
1308 Added: },
1309 Added: "vue-directives-control": {
1310 Added: "begin": "(?:(v-for)|(v-if|v-else-if|v-else))(?=[=/>)\\s])",
1311 Added: "beginCaptures": {
1312 Added: "1": {
1313 Added: "name": "keyword.control.loop.vue"
1314 Added: },
1315 Added: "2": {
1316 Added: "name": "keyword.control.conditional.vue"
1317 Added: }
1318 Added: },
1319 Added: "end": "(?=\\s*[^=\\s])",
1320 Added: "name": "meta.attribute.directive.control.vue",
1321 Added: "patterns": [
1322 Added: {
1323 Added: "include": "#vue-directives-expression"
1324 Added: }
1325 Added: ]
1326 Added: },
1327 Added: "vue-directives-expression": {
1328 Added: "patterns": [
1329 Added: {
1330 Added: "begin": "(=)\\s*('|\"|`)",
1331 Added: "beginCaptures": {
1332 Added: "1": {
1333 Added: "name": "punctuation.separator.key-value.html.vue"
1334 Added: },
1335 Added: "2": {
1336 Added: "name": "punctuation.definition.string.begin.html.vue"
1337 Added: }
1338 Added: },
1339 Added: "end": "(\\2)",
1340 Added: "endCaptures": {
1341 Added: "1": {
1342 Added: "name": "punctuation.definition.string.end.html.vue"
1343 Added: }
1344 Added: },
1345 Added: "patterns": [
1346 Added: {
1347 Added: "begin": "(?<=('|\"|`))",
1348 Added: "end": "(?=\\1)",
1349 Added: "name": "source.ts.embedded.html.vue",
1350 Added: "patterns": [
1351 Added: {
1352 Added: "include": "source.ts#expression"
1353 Added: }
1354 Added: ]
1355 Added: }
1356 Added: ]
1357 Added: },
1358 Added: {
1359 Added: "begin": "(=)\\s*(?=[^'\"`])",
1360 Added: "beginCaptures": {
1361 Added: "1": {
1362 Added: "name": "punctuation.separator.key-value.html.vue"
1363 Added: }
1364 Added: },
1365 Added: "end": "(?=(\\s|>|\\/>))",
1366 Added: "patterns": [
1367 Added: {
1368 Added: "begin": "(?=[^'\"`])",
1369 Added: "end": "(?=(\\s|>|\\/>))",
1370 Added: "name": "source.ts.embedded.html.vue",
1371 Added: "patterns": [
1372 Added: {
1373 Added: "include": "source.ts#expression"
1374 Added: }
1375 Added: ]
1376 Added: }
1377 Added: ]
1378 Added: }
1379 Added: ]
1380 Added: },
1381 Added: "vue-directives-style-attr": {
1382 Added: "begin": "\\b(style)\\s*(=)",
1383 Added: "beginCaptures": {
1384 Added: "1": {
1385 Added: "name": "entity.other.attribute-name.html.vue"
1386 Added: },
1387 Added: "2": {
1388 Added: "name": "punctuation.separator.key-value.html.vue"
1389 Added: }
1390 Added: },
1391 Added: "end": "(?<='|\")",
1392 Added: "name": "meta.attribute.style.vue",
1393 Added: "patterns": [
1394 Added: {
1395 Added: "comment": "Copy from source.css#rule-list-innards",
1396 Added: "begin": "('|\")",
1397 Added: "beginCaptures": {
1398 Added: "1": {
1399 Added: "name": "punctuation.definition.string.begin.html.vue"
1400 Added: }
1401 Added: },
1402 Added: "end": "(\\1)",
1403 Added: "endCaptures": {
1404 Added: "1": {
1405 Added: "name": "punctuation.definition.string.end.html.vue"
1406 Added: }
1407 Added: },
1408 Added: "name": "source.css.embedded.html.vue",
1409 Added: "patterns": [
1410 Added: {
1411 Added: "include": "source.css#comment-block"
1412 Added: },
1413 Added: {
1414 Added: "include": "source.css#escapes"
1415 Added: },
1416 Added: {
1417 Added: "include": "source.css#font-features"
1418 Added: },
1419 Added: {
1420 Added: "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",
1421 Added: "name": "variable.css"
1422 Added: },
1423 Added: {
1424 Added: "begin": "(?<![-a-zA-Z])(?=[-a-zA-Z])",
1425 Added: "end": "$|(?![-a-zA-Z])",
1426 Added: "name": "meta.property-name.css",
1427 Added: "patterns": [
1428 Added: {
1429 Added: "include": "source.css#property-names"
1430 Added: }
1431 Added: ]
1432 Added: },
1433 Added: {
1434 Added: "comment": "Modify end to fix #199. TODO: handle ' character.",
1435 Added: "begin": "(:)\\s*",
1436 Added: "beginCaptures": {
1437 Added: "1": {
1438 Added: "name": "punctuation.separator.key-value.css"
1439 Added: }
1440 Added: },
1441 Added: "end": "\\s*(;)|\\s*(?='|\")",
1442 Added: "endCaptures": {
1443 Added: "1": {
1444 Added: "name": "punctuation.terminator.rule.css"
1445 Added: }
1446 Added: },
1447 Added: "contentName": "meta.property-value.css",
1448 Added: "patterns": [
1449 Added: {
1450 Added: "include": "source.css#comment-block"
1451 Added: },
1452 Added: {
1453 Added: "include": "source.css#property-values"
1454 Added: }
1455 Added: ]
1456 Added: },
1457 Added: {
1458 Added: "match": ";",
1459 Added: "name": "punctuation.terminator.rule.css"
1460 Added: }
1461 Added: ]
1462 Added: }
1463 Added: ]
1464 Added: },
1465 Added: "vue-directives-generic-attr": {
1466 Added: "begin": "\\b(generic)\\s*(=)",
1467 Added: "beginCaptures": {
1468 Added: "1": {
1469 Added: "name": "entity.other.attribute-name.html.vue"
1470 Added: },
1471 Added: "2": {
1472 Added: "name": "punctuation.separator.key-value.html.vue"
1473 Added: }
1474 Added: },
1475 Added: "end": "(?<='|\")",
1476 Added: "name": "meta.attribute.generic.vue",
1477 Added: "patterns": [
1478 Added: {
1479 Added: "begin": "('|\")",
1480 Added: "beginCaptures": {
1481 Added: "1": {
1482 Added: "name": "punctuation.definition.string.begin.html.vue"
1483 Added: }
1484 Added: },
1485 Added: "end": "(\\1)",
1486 Added: "endCaptures": {
1487 Added: "1": {
1488 Added: "name": "punctuation.definition.string.end.html.vue"
1489 Added: }
1490 Added: },
1491 Added: "name": "meta.type.parameters.vue",
1492 Added: "comment": "https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",
1493 Added: "patterns": [
1494 Added: {
1495 Added: "include": "source.ts#comment"
1496 Added: },
1497 Added: {
1498 Added: "name": "storage.modifier.ts",
1499 Added: "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
1500 Added: },
1501 Added: {
1502 Added: "include": "source.ts#type"
1503 Added: },
1504 Added: {
1505 Added: "include": "source.ts#punctuation-comma"
1506 Added: },
1507 Added: {
1508 Added: "name": "keyword.operator.assignment.ts",
1509 Added: "match": "(=)(?!>)"
1510 Added: }
1511 Added: ]
1512 Added: }
1513 Added: ]
1514 Added: },
1515 Added: "vue-interpolations": {
1516 Added: "patterns": [
1517 Added: {
1518 Added: "begin": "(\\{\\{)",
1519 Added: "beginCaptures": {
1520 Added: "1": {
1521 Added: "name": "punctuation.definition.interpolation.begin.html.vue"
1522 Added: }
1523 Added: },
1524 Added: "end": "(\\}\\})",
1525 Added: "endCaptures": {
1526 Added: "1": {
1527 Added: "name": "punctuation.definition.interpolation.end.html.vue"
1528 Added: }
1529 Added: },
1530 Added: "name": "expression.embedded.vue",
1531 Added: "patterns": [
1532 Added: {
1533 Added: "begin": "\\G",
1534 Added: "end": "(?=\\}\\})",
1535 Added: "name": "source.ts.embedded.html.vue",
1536 Added: "patterns": [
1537 Added: {
1538 Added: "include": "source.ts#expression"
1539 Added: }
1540 Added: ]
1541 Added: }
1542 Added: ]
1543 Added: }
1544 Added: ]
1545 Added: },
1546 Added: "vue-comments": {
1547 Added: "patterns": [
1548 Added: {
1549 Added: "include": "#vue-comments-key-value"
1550 Added: },
1551 Added: {
1552 Added: "begin": "<!--",
1553 Added: "captures": {
1554 Added: "0": {
1555 Added: "name": "punctuation.definition.comment.vue"
1556 Added: }
1557 Added: },
1558 Added: "end": "-->",
1559 Added: "name": "comment.block.vue"
1560 Added: }
1561 Added: ]
1562 Added: },
1563 Added: "vue-comments-key-value": {
1564 Added: "begin": "(<!--)\\s*(@)([\\w$]+)(?=\\s)",
1565 Added: "beginCaptures": {
1566 Added: "1": {
1567 Added: "name": "punctuation.definition.comment.vue"
1568 Added: },
1569 Added: "2": {
1570 Added: "name": "punctuation.definition.block.tag.comment.vue"
1571 Added: },
1572 Added: "3": {
1573 Added: "name": "storage.type.class.comment.vue"
1574 Added: }
1575 Added: },
1576 Added: "end": "(-->)",
1577 Added: "endCaptures": {
1578 Added: "1": {
1579 Added: "name": "punctuation.definition.comment.vue"
1580 Added: }
1581 Added: },
1582 Added: "name": "comment.block.vue",
1583 Added: "patterns": [
1584 Added: {
1585 Added: "include": "source.json#value"
1586 Added: }
1587 Added: ]
1588 Added: }
1589 Added: }
1590 Added: }
lib/highlight_grammars.ml
index 987a7d88..92a23d99 100644..100644
@@ -27,25 +27,38 @@
27 27 (fun name -> load (name ^ ".json"))
28 28 [
29 29 "c";
30 Added: "clojure";
30 31 "cpp";
31 32 "csharp";
32 33 "css";
34 Added: "dart";
33 35 "diff";
34 36 "dockerfile";
37 Added: "dune";
38 Added: "elixir";
39 Added: "erlang";
40 Added: "fortran";
35 41 "go";
42 Added: "groovy";
36 43 "haskell";
37 44 "html";
38 45 "java";
39 46 "javascript";
40 47 "json";
48 Added: "julia";
41 49 "kotlin";
50 Added: "lisp";
42 51 "lua";
43 52 "makefile";
44 53 "markdown";
45 54 "nix";
55 Added: "objective-c";
46 56 "ocaml";
57 Added: "opam";
47 58 "perl";
48 59 "php";
60 Added: "powershell";
61 Added: "protobuf";
49 62 "python";
50 63 "r";
51 64 "ruby";
@@ -54,8 +67,10 @@
54 67 "shell";
55 68 "sql";
56 69 "swift";
70 Added: "terraform";
57 71 "toml";
58 72 "typescript";
73 Added: "vue";
59 74 "xml";
60 75 "yaml";
61 76 "zig";
@@ -70,25 +85,38 @@
70 85 erlang, lisp, awk) gracefully degrade to plain text in {!Highlight}. *)
71 86 let scope_of_lang = function
72 87 | "c" -> Some "source.c"
88 Added: | "clojure" -> Some "source.clojure"
73 89 | "cpp" -> Some "source.cpp"
74 90 | "csharp" -> Some "source.cs"
75 91 | "css" -> Some "source.css"
92 Added: | "dart" -> Some "source.dart"
76 93 | "diff" -> Some "source.diff"
77 94 | "dockerfile" -> Some "source.dockerfile"
95 Added: | "dune" -> Some "source.dune"
96 Added: | "elixir" -> Some "source.elixir"
97 Added: | "erlang" -> Some "source.erlang"
98 Added: | "fortran" -> Some "source.fortran.free"
78 99 | "go" -> Some "source.go"
100 Added: | "groovy" -> Some "source.groovy"
79 101 | "haskell" -> Some "source.haskell"
80 Removed: | "html" | "xml" -> Some "text.html.basic"
102 Added: | "html" -> Some "text.html.basic"
81 103 | "java" -> Some "source.java"
82 104 | "javascript" -> Some "source.js"
83 105 | "json" -> Some "source.json"
106 Added: | "julia" -> Some "source.julia"
84 107 | "kotlin" -> Some "source.kotlin"
108 Added: | "lisp" -> Some "source.lisp"
85 109 | "lua" -> Some "source.lua"
86 110 | "makefile" -> Some "source.makefile"
87 111 | "markdown" -> Some "text.html.markdown"
88 112 | "nix" -> Some "source.nix"
113 Added: | "objective-c" | "objc" -> Some "source.objc"
89 114 | "ocaml" -> Some "source.ocaml"
115 Added: | "opam" -> Some "source.ocaml.opam"
90 116 | "perl" -> Some "source.perl"
91 117 | "php" -> Some "source.php"
118 Added: | "powershell" -> Some "source.powershell"
119 Added: | "protobuf" | "proto" -> Some "source.proto"
92 120 | "python" -> Some "source.python"
93 121 | "r" -> Some "source.r"
94 122 | "ruby" -> Some "source.ruby"
@@ -97,8 +125,11 @@
97 125 | "bash" | "shell" | "sh" -> Some "source.shell"
98 126 | "sql" -> Some "source.sql"
99 127 | "swift" -> Some "source.swift"
128 Added: | "terraform" | "hcl" -> Some "source.hcl.terraform"
100 129 | "toml" | "ini" -> Some "source.toml"
101 130 | "typescript" -> Some "source.ts"
131 Added: | "vue" -> Some "text.html.vue"
132 Added: | "xml" -> Some "text.html.basic"
102 133 | "yaml" -> Some "source.yaml"
103 134 | "zig" -> Some "source.zig"
104 135 | _ -> None
lib/syntax.ml
index 7cf2d14f..3c5c8f63 100644..100644
@@ -11,38 +11,58 @@
11 11 *)
12 12
13 13 let of_filename name =
14 Added: (* First check the bare filename for well-known extensionless files *)
15 Added: let basename = Filename.basename name |> String.lowercase_ascii in
16 Added: match basename with
17 Added: | "makefile" | "gnumakefile" -> Some "makefile"
18 Added: | "dockerfile" -> Some "dockerfile"
19 Added: | "dune" | "dune-project" | "dune-workspace" -> Some "dune"
20 Added: | "jenkinsfile" -> Some "groovy"
21 Added: | _ ->
14 22 match Filename.extension name |> String.lowercase_ascii with
15 23 | ".ml" | ".mli" -> Some "ocaml"
16 24 | ".c" | ".h" -> Some "c"
25 Added: | ".clj" | ".cljs" | ".cljc" | ".edn" -> Some "clojure"
17 26 | ".cpp" | ".cc" | ".cxx" | ".hpp" -> Some "cpp"
18 27 | ".cs" -> Some "csharp"
19 28 | ".css" -> Some "css"
29 Added: | ".dart" -> Some "dart"
20 30 | ".diff" | ".patch" -> Some "diff"
21 Removed: | ".el" | ".lisp" | ".cl" -> Some "lisp"
22 Removed: | ".erl" -> Some "erlang"
31 Added: | ".dune" -> Some "dune"
32 Added: | ".el" | ".lisp" | ".cl" | ".scm" | ".ss" -> Some "lisp"
33 Added: | ".erl" | ".hrl" -> Some "erlang"
23 34 | ".ex" | ".exs" -> Some "elixir"
35 Added: | ".f90" | ".f95" | ".f03" | ".f08" | ".f" | ".for" -> Some "fortran"
24 36 | ".go" -> Some "go"
37 Added: | ".gradle" | ".groovy" -> Some "groovy"
25 38 | ".hs" -> Some "haskell"
26 Removed: | ".html" | ".htm" -> Some "xml"
39 Added: | ".html" | ".htm" -> Some "html"
27 40 | ".java" -> Some "java"
41 Added: | ".jl" -> Some "julia"
28 42 | ".js" | ".mjs" | ".cjs" -> Some "javascript"
29 43 | ".json" -> Some "json"
30 Removed: | ".kt" -> Some "kotlin"
44 Added: | ".kt" | ".kts" -> Some "kotlin"
31 45 | ".lua" -> Some "lua"
46 Added: | ".m" -> Some "objective-c"
32 47 | ".md" -> Some "markdown"
33 48 | ".nix" -> Some "nix"
49 Added: | ".opam" -> Some "opam"
34 50 | ".php" -> Some "php"
35 51 | ".pl" | ".pm" | ".t" -> Some "perl"
52 Added: | ".proto" -> Some "protobuf"
53 Added: | ".ps1" | ".psm1" | ".psd1" -> Some "powershell"
36 54 | ".py" -> Some "python"
37 55 | ".r" -> Some "r"
38 56 | ".rb" -> Some "ruby"
39 57 | ".rs" -> Some "rust"
40 Removed: | ".scala" -> Some "scala"
58 Added: | ".scala" | ".sc" -> Some "scala"
41 59 | ".sh" | ".bash" | ".zsh" -> Some "bash"
42 60 | ".sql" -> Some "sql"
43 61 | ".swift" -> Some "swift"
44 Removed: | ".toml" -> Some "ini"
62 Added: | ".tf" | ".hcl" -> Some "terraform"
63 Added: | ".toml" -> Some "toml"
45 64 | ".ts" | ".tsx" -> Some "typescript"
65 Added: | ".vue" -> Some "vue"
46 66 | ".xml" | ".svg" | ".xsl" -> Some "xml"
47 67 | ".yaml" | ".yml" -> Some "yaml"
48 68 | ".zig" -> Some "zig"