Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/julia/syntaxes/julia.tmLanguage.json
5240 views
1
{
2
"information_for_contributors": [
3
"This file has been converted from https://github.com/JuliaEditorSupport/atom-language-julia/blob/master/variants/julia_vscode.json",
4
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
5
"Once accepted there, we are happy to receive an update request."
6
],
7
"version": "https://github.com/JuliaEditorSupport/atom-language-julia/commit/93454227ce9a7aa92f41b157c6a74f3971b4ae14",
8
"name": "Julia",
9
"scopeName": "source.julia",
10
"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/",
11
"patterns": [
12
{
13
"include": "#operator"
14
},
15
{
16
"include": "#array"
17
},
18
{
19
"include": "#string"
20
},
21
{
22
"include": "#parentheses"
23
},
24
{
25
"include": "#bracket"
26
},
27
{
28
"include": "#function_decl"
29
},
30
{
31
"include": "#function_call"
32
},
33
{
34
"include": "#for_block"
35
},
36
{
37
"include": "#keyword"
38
},
39
{
40
"include": "#number"
41
},
42
{
43
"include": "#comment"
44
},
45
{
46
"include": "#type_decl"
47
},
48
{
49
"include": "#symbol"
50
},
51
{
52
"include": "#punctuation"
53
}
54
],
55
"repository": {
56
"array": {
57
"patterns": [
58
{
59
"begin": "\\[",
60
"beginCaptures": {
61
"0": {
62
"name": "meta.bracket.julia"
63
}
64
},
65
"end": "(\\])((?:\\.)?'*)",
66
"endCaptures": {
67
"1": {
68
"name": "meta.bracket.julia"
69
},
70
"2": {
71
"name": "keyword.operator.transpose.julia"
72
}
73
},
74
"name": "meta.array.julia",
75
"patterns": [
76
{
77
"match": "\\bbegin\\b",
78
"name": "constant.numeric.julia"
79
},
80
{
81
"match": "\\bend\\b",
82
"name": "constant.numeric.julia"
83
},
84
{
85
"include": "#self_no_for_block"
86
}
87
]
88
}
89
]
90
},
91
"parentheses": {
92
"patterns": [
93
{
94
"begin": "\\(",
95
"beginCaptures": {
96
"0": {
97
"name": "meta.bracket.julia"
98
}
99
},
100
"end": "(\\))((?:\\.)?'*)",
101
"endCaptures": {
102
"1": {
103
"name": "meta.bracket.julia"
104
},
105
"2": {
106
"name": "keyword.operator.transpose.julia"
107
}
108
},
109
"patterns": [
110
{
111
"include": "#self_no_for_block"
112
}
113
]
114
}
115
]
116
},
117
"bracket": {
118
"patterns": [
119
{
120
"begin": "\\{",
121
"beginCaptures": {
122
"0": {
123
"name": "meta.bracket.julia"
124
}
125
},
126
"end": "(\\})((?:\\.)?'*)",
127
"endCaptures": {
128
"1": {
129
"name": "meta.bracket.julia"
130
},
131
"2": {
132
"name": "keyword.operator.transpose.julia"
133
}
134
},
135
"patterns": [
136
{
137
"include": "#self_no_for_block"
138
}
139
]
140
}
141
]
142
},
143
"comment_tags": {
144
"patterns": [
145
{
146
"match": "\\bTODO\\b",
147
"name": "keyword.other.comment-annotation.julia"
148
},
149
{
150
"match": "\\bFIXME\\b",
151
"name": "keyword.other.comment-annotation.julia"
152
},
153
{
154
"match": "\\bCHANGED\\b",
155
"name": "keyword.other.comment-annotation.julia"
156
},
157
{
158
"match": "\\bXXX\\b",
159
"name": "keyword.other.comment-annotation.julia"
160
}
161
]
162
},
163
"comment": {
164
"patterns": [
165
{
166
"include": "#comment_block"
167
},
168
{
169
"begin": "#",
170
"beginCaptures": {
171
"0": {
172
"name": "punctuation.definition.comment.julia"
173
}
174
},
175
"end": "\\n",
176
"name": "comment.line.number-sign.julia",
177
"patterns": [
178
{
179
"include": "#comment_tags"
180
}
181
]
182
}
183
]
184
},
185
"comment_block": {
186
"patterns": [
187
{
188
"begin": "#=",
189
"beginCaptures": {
190
"0": {
191
"name": "punctuation.definition.comment.begin.julia"
192
}
193
},
194
"end": "=#",
195
"endCaptures": {
196
"0": {
197
"name": "punctuation.definition.comment.end.julia"
198
}
199
},
200
"name": "comment.block.number-sign-equals.julia",
201
"patterns": [
202
{
203
"include": "#comment_tags"
204
},
205
{
206
"include": "#comment_block"
207
}
208
]
209
}
210
]
211
},
212
"function_call": {
213
"patterns": [
214
{
215
"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}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(\\()",
216
"beginCaptures": {
217
"1": {
218
"name": "support.function.julia"
219
},
220
"2": {
221
"name": "support.type.julia"
222
},
223
"3": {
224
"name": "meta.bracket.julia"
225
}
226
},
227
"end": "\\)(('|(\\.'))*\\.?')?",
228
"endCaptures": {
229
"0": {
230
"name": "meta.bracket.julia"
231
},
232
"1": {
233
"name": "keyword.operator.transposed-func.julia"
234
}
235
},
236
"patterns": [
237
{
238
"include": "#self_no_for_block"
239
}
240
]
241
}
242
]
243
},
244
"function_decl": {
245
"patterns": [
246
{
247
"captures": {
248
"1": {
249
"name": "entity.name.function.julia"
250
},
251
"2": {
252
"name": "support.type.julia"
253
}
254
},
255
"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*?=(?![=>]))",
256
"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 `==`)"
257
},
258
{
259
"captures": {
260
"1": {
261
"name": "keyword.other.julia"
262
},
263
"2": {
264
"name": "keyword.operator.dots.julia"
265
},
266
"3": {
267
"name": "entity.name.function.julia"
268
},
269
"4": {
270
"name": "support.type.julia"
271
}
272
},
273
"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*)(?=\\()",
274
"comment": "similar regex to previous, but with keyword not 1-line syntax"
275
}
276
]
277
},
278
"for_block": {
279
"comment": "for blocks need to be special-cased to support tokenizing 'outer' properly",
280
"patterns": [
281
{
282
"begin": "\\b(for)\\b",
283
"beginCaptures": {
284
"0": {
285
"name": "keyword.control.julia"
286
}
287
},
288
"end": "(?<!,|\\s)(\\s*\\n)",
289
"patterns": [
290
{
291
"match": "\\bouter\\b",
292
"name": "keyword.other.julia"
293
},
294
{
295
"include": "$self"
296
}
297
]
298
}
299
]
300
},
301
"keyword": {
302
"patterns": [
303
{
304
"match": "\\b(?<![:_\\.])(?:function|mutable\\s+struct|struct|macro|quote|abstract\\s+type|primitive\\s+type|module|baremodule|where)\\b",
305
"name": "keyword.other.julia"
306
},
307
{
308
"match": "\\b(?<![:_])(?:if|else|elseif|for|while|begin|let|do|try|catch|finally|return|break|continue)\\b",
309
"name": "keyword.control.julia"
310
},
311
{
312
"match": "\\b(?<![:_])end\\b",
313
"name": "keyword.control.end.julia"
314
},
315
{
316
"match": "\\b(?<![:_])(?:global|local|const)\\b",
317
"name": "keyword.storage.modifier.julia"
318
},
319
{
320
"match": "\\b(?<![:_])(?:export)\\b",
321
"name": "keyword.control.export.julia"
322
},
323
{
324
"match": "^(?:public)\\b",
325
"name": "keyword.control.public.julia"
326
},
327
{
328
"match": "\\b(?<![:_])(?:import)\\b",
329
"name": "keyword.control.import.julia"
330
},
331
{
332
"match": "\\b(?<![:_])(?:using)\\b",
333
"name": "keyword.control.using.julia"
334
},
335
{
336
"match": "(?<=\\S\\s+)\\b(as)\\b(?=\\s+\\S)",
337
"name": "keyword.control.as.julia"
338
},
339
{
340
"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@]]+)",
341
"name": "support.function.macro.julia"
342
}
343
]
344
},
345
"number": {
346
"patterns": [
347
{
348
"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))('*)",
349
"captures": {
350
"1": {
351
"name": "constant.numeric.julia"
352
},
353
"2": {
354
"name": "keyword.operator.conjugate-number.julia"
355
}
356
}
357
},
358
{
359
"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",
360
"name": "constant.global.julia"
361
},
362
{
363
"match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b|\\bmissing\\b",
364
"name": "constant.language.julia"
365
}
366
]
367
},
368
"operator": {
369
"patterns": [
370
{
371
"match": "\\.?(?:<-->|->|-->|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)",
372
"name": "keyword.operator.arrow.julia"
373
},
374
{
375
"match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",
376
"name": "keyword.operator.update.julia"
377
},
378
{
379
"match": "(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",
380
"name": "keyword.operator.shift.julia"
381
},
382
{
383
"match": "(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?<!\\\\)\"))?)))(?:\\.\\.\\.)?((?:\\.)?'*)",
384
"captures": {
385
"1": {
386
"name": "keyword.operator.relation.types.julia"
387
},
388
"2": {
389
"name": "support.type.julia"
390
},
391
"3": {
392
"name": "keyword.operator.transpose.julia"
393
}
394
}
395
},
396
{
397
"match": "(\\.?((?<!<)<=|(?<!>)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))",
398
"name": "keyword.operator.relation.julia"
399
},
400
{
401
"match": "(?<=\\s)(?:\\?)(?=\\s)",
402
"name": "keyword.operator.ternary.julia"
403
},
404
{
405
"match": "(?<=\\s)(?:\\:)(?=\\s)",
406
"name": "keyword.operator.ternary.julia"
407
},
408
{
409
"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}←-⇿]))!)",
410
"name": "keyword.operator.boolean.julia"
411
},
412
{
413
"match": "(?<=[[:word:]⁺-ₜ!′∇\\)\\]\\}])(?::)",
414
"name": "keyword.operator.range.julia"
415
},
416
{
417
"match": "(?:\\|>)",
418
"name": "keyword.operator.applies.julia"
419
},
420
{
421
"match": "(?:\\||\\.\\||\\&|\\.\\&|~|¬|\\.~|⊻|\\.⊻)",
422
"name": "keyword.operator.bitwise.julia"
423
},
424
{
425
"match": "\\.?(?:\\+\\+|\\-\\-|\\+|\\-|−|¦|\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|↑|↓|√|∛|∜|⋆|±|∓)",
426
"name": "keyword.operator.arithmetic.julia"
427
},
428
{
429
"match": "(?:∘)",
430
"name": "keyword.operator.compose.julia"
431
},
432
{
433
"match": "(?:::|(?<=\\s)isa(?=\\s))",
434
"name": "keyword.operator.isa.julia"
435
},
436
{
437
"match": "(?:(?<=\\s)in(?=\\s))",
438
"name": "keyword.operator.relation.in.julia"
439
},
440
{
441
"match": "(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+|…|⁝|⋮|⋱|⋰|⋯)",
442
"name": "keyword.operator.dots.julia"
443
},
444
{
445
"match": "(?:\\$)(?=.+)",
446
"name": "keyword.operator.interpolation.julia"
447
},
448
{
449
"captures": {
450
"2": {
451
"name": "keyword.operator.transposed-variable.julia"
452
}
453
},
454
"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}←-⇿])*)(('|(\\.'))*\\.?')"
455
},
456
{
457
"captures": {
458
"1": {
459
"name": "bracket.end.julia"
460
},
461
"2": {
462
"name": "keyword.operator.transposed-matrix.julia"
463
}
464
},
465
"match": "(\\])((?:'|(?:\\.'))*\\.?')"
466
},
467
{
468
"captures": {
469
"1": {
470
"name": "bracket.end.julia"
471
},
472
"2": {
473
"name": "keyword.operator.transposed-parens.julia"
474
}
475
},
476
"match": "(\\))((?:'|(?:\\.'))*\\.?')"
477
}
478
]
479
},
480
"string": {
481
"patterns": [
482
{
483
"begin": "(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))",
484
"beginCaptures": {
485
"1": {
486
"name": "support.function.macro.julia"
487
},
488
"2": {
489
"name": "punctuation.definition.string.begin.julia"
490
}
491
},
492
"end": "(\"\"\") ?(->)?",
493
"endCaptures": {
494
"1": {
495
"name": "punctuation.definition.string.end.julia"
496
},
497
"2": {
498
"name": "keyword.operator.arrow.julia"
499
}
500
},
501
"name": "string.docstring.julia",
502
"patterns": [
503
{
504
"include": "#string_escaped_char"
505
},
506
{
507
"include": "#string_dollar_sign_interpolate"
508
}
509
]
510
},
511
{
512
"begin": "(i?cxx)(\"\"\")",
513
"beginCaptures": {
514
"1": {
515
"name": "support.function.macro.julia"
516
},
517
"2": {
518
"name": "punctuation.definition.string.begin.julia"
519
}
520
},
521
"end": "\"\"\"",
522
"endCaptures": {
523
"0": {
524
"name": "punctuation.definition.string.end.julia"
525
}
526
},
527
"name": "embed.cxx.julia",
528
"contentName": "meta.embedded.inline.cpp",
529
"patterns": [
530
{
531
"include": "source.cpp#root_context"
532
},
533
{
534
"include": "#string_dollar_sign_interpolate"
535
}
536
]
537
},
538
{
539
"begin": "(py)(\"\"\")",
540
"beginCaptures": {
541
"1": {
542
"name": "support.function.macro.julia"
543
},
544
"2": {
545
"name": "punctuation.definition.string.begin.julia"
546
}
547
},
548
"end": "([\\s\\w]*)(\"\"\")",
549
"endCaptures": {
550
"2": {
551
"name": "punctuation.definition.string.end.julia"
552
}
553
},
554
"name": "embed.python.julia",
555
"contentName": "meta.embedded.inline.python",
556
"patterns": [
557
{
558
"include": "source.python"
559
},
560
{
561
"include": "#string_dollar_sign_interpolate"
562
}
563
]
564
},
565
{
566
"begin": "(js)(\"\"\")",
567
"beginCaptures": {
568
"1": {
569
"name": "support.function.macro.julia"
570
},
571
"2": {
572
"name": "punctuation.definition.string.begin.julia"
573
}
574
},
575
"end": "\"\"\"",
576
"endCaptures": {
577
"0": {
578
"name": "punctuation.definition.string.end.julia"
579
}
580
},
581
"name": "embed.js.julia",
582
"contentName": "meta.embedded.inline.javascript",
583
"patterns": [
584
{
585
"include": "source.js"
586
},
587
{
588
"include": "#string_dollar_sign_interpolate"
589
}
590
]
591
},
592
{
593
"begin": "(R)(\"\"\")",
594
"beginCaptures": {
595
"1": {
596
"name": "support.function.macro.julia"
597
},
598
"2": {
599
"name": "punctuation.definition.string.begin.julia"
600
}
601
},
602
"end": "\"\"\"",
603
"endCaptures": {
604
"0": {
605
"name": "punctuation.definition.string.end.julia"
606
}
607
},
608
"name": "embed.R.julia",
609
"contentName": "meta.embedded.inline.r",
610
"patterns": [
611
{
612
"include": "source.r"
613
},
614
{
615
"include": "#string_dollar_sign_interpolate"
616
}
617
]
618
},
619
{
620
"begin": "(raw)(\"\"\")",
621
"beginCaptures": {
622
"1": {
623
"name": "support.function.macro.julia"
624
},
625
"2": {
626
"name": "punctuation.definition.string.begin.julia"
627
}
628
},
629
"end": "\"\"\"",
630
"name": "string.quoted.other.julia",
631
"endCaptures": {
632
"0": {
633
"name": "punctuation.definition.string.end.julia"
634
}
635
},
636
"patterns": [
637
{
638
"include": "#string_escaped_char"
639
}
640
]
641
},
642
{
643
"begin": "(raw)(\")",
644
"beginCaptures": {
645
"1": {
646
"name": "support.function.macro.julia"
647
},
648
"2": {
649
"name": "punctuation.definition.string.begin.julia"
650
}
651
},
652
"end": "\"",
653
"name": "string.quoted.other.julia",
654
"endCaptures": {
655
"0": {
656
"name": "punctuation.definition.string.end.julia"
657
}
658
},
659
"patterns": [
660
{
661
"include": "#string_escaped_char"
662
}
663
]
664
},
665
{
666
"begin": "(sql)(\"\"\")",
667
"beginCaptures": {
668
"1": {
669
"name": "support.function.macro.julia"
670
},
671
"2": {
672
"name": "punctuation.definition.string.begin.julia"
673
}
674
},
675
"end": "\"\"\"",
676
"endCaptures": {
677
"0": {
678
"name": "punctuation.definition.string.end.julia"
679
}
680
},
681
"name": "embed.sql.julia",
682
"contentName": "meta.embedded.inline.sql",
683
"patterns": [
684
{
685
"include": "source.sql"
686
},
687
{
688
"include": "#string_dollar_sign_interpolate"
689
}
690
]
691
},
692
{
693
"begin": "var\"\"\"",
694
"end": "\"\"\"",
695
"name": "constant.other.symbol.julia",
696
"patterns": [
697
{
698
"include": "#string_escaped_char"
699
}
700
]
701
},
702
{
703
"begin": "var\"",
704
"end": "\"",
705
"name": "constant.other.symbol.julia",
706
"patterns": [
707
{
708
"include": "#string_escaped_char"
709
}
710
]
711
},
712
{
713
"begin": "^\\s?(doc)?(\"\"\")\\s?$",
714
"beginCaptures": {
715
"1": {
716
"name": "support.function.macro.julia"
717
},
718
"2": {
719
"name": "punctuation.definition.string.begin.julia"
720
}
721
},
722
"end": "(\"\"\")",
723
"endCaptures": {
724
"1": {
725
"name": "punctuation.definition.string.end.julia"
726
}
727
},
728
"name": "string.docstring.julia",
729
"comment": "This only matches docstrings that start and end with triple quotes on\ntheir own line in the void",
730
"patterns": [
731
{
732
"include": "#string_escaped_char"
733
},
734
{
735
"include": "#string_dollar_sign_interpolate"
736
}
737
]
738
},
739
{
740
"begin": "'",
741
"beginCaptures": {
742
"0": {
743
"name": "punctuation.definition.string.begin.julia"
744
}
745
},
746
"end": "'(?!')",
747
"endCaptures": {
748
"0": {
749
"name": "punctuation.definition.string.end.julia"
750
}
751
},
752
"name": "string.quoted.single.julia",
753
"patterns": [
754
{
755
"include": "#string_escaped_char"
756
}
757
]
758
},
759
{
760
"begin": "\"\"\"",
761
"beginCaptures": {
762
"0": {
763
"name": "punctuation.definition.string.multiline.begin.julia"
764
}
765
},
766
"end": "\"\"\"",
767
"endCaptures": {
768
"0": {
769
"name": "punctuation.definition.string.multiline.end.julia"
770
}
771
},
772
"name": "string.quoted.triple.double.julia",
773
"comment": "multi-line string with triple double quotes",
774
"patterns": [
775
{
776
"include": "#string_escaped_char"
777
},
778
{
779
"include": "#string_dollar_sign_interpolate"
780
}
781
]
782
},
783
{
784
"name": "string.quoted.double.julia",
785
"begin": "\"(?!\"\")",
786
"beginCaptures": {
787
"0": {
788
"name": "punctuation.definition.string.begin.julia"
789
}
790
},
791
"end": "\"",
792
"endCaptures": {
793
"0": {
794
"name": "punctuation.definition.string.end.julia"
795
}
796
},
797
"comment": "String with single pair of double quotes. Regex matches isolated double quote",
798
"patterns": [
799
{
800
"include": "#string_escaped_char"
801
},
802
{
803
"include": "#string_dollar_sign_interpolate"
804
}
805
]
806
},
807
{
808
"begin": "r\"\"\"",
809
"beginCaptures": {
810
"0": {
811
"name": "punctuation.definition.string.regexp.begin.julia"
812
}
813
},
814
"end": "(\"\"\")([imsx]{0,4})?",
815
"endCaptures": {
816
"1": {
817
"name": "punctuation.definition.string.regexp.end.julia"
818
},
819
"2": {
820
"comment": "I took this scope name from python regex grammar",
821
"name": "keyword.other.option-toggle.regexp.julia"
822
}
823
},
824
"name": "string.regexp.julia",
825
"patterns": [
826
{
827
"include": "#string_escaped_char"
828
}
829
]
830
},
831
{
832
"begin": "r\"",
833
"beginCaptures": {
834
"0": {
835
"name": "punctuation.definition.string.regexp.begin.julia"
836
}
837
},
838
"end": "(\")([imsx]{0,4})?",
839
"endCaptures": {
840
"1": {
841
"name": "punctuation.definition.string.regexp.end.julia"
842
},
843
"2": {
844
"comment": "I took this scope name from python regex grammar",
845
"name": "keyword.other.option-toggle.regexp.julia"
846
}
847
},
848
"name": "string.regexp.julia",
849
"patterns": [
850
{
851
"include": "#string_escaped_char"
852
}
853
]
854
},
855
{
856
"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}←-⇿])*)\"\"\"",
857
"beginCaptures": {
858
"0": {
859
"name": "punctuation.definition.string.begin.julia"
860
},
861
"1": {
862
"name": "support.function.macro.julia"
863
}
864
},
865
"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}←-⇿])*)?",
866
"endCaptures": {
867
"1": {
868
"name": "punctuation.definition.string.end.julia"
869
},
870
"2": {
871
"name": "support.function.macro.julia"
872
}
873
},
874
"name": "string.quoted.other.julia",
875
"patterns": [
876
{
877
"include": "#string_escaped_char"
878
}
879
]
880
},
881
{
882
"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}←-⇿])*)\"",
883
"beginCaptures": {
884
"0": {
885
"name": "punctuation.definition.string.begin.julia"
886
},
887
"1": {
888
"name": "support.function.macro.julia"
889
}
890
},
891
"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}←-⇿])*)?",
892
"endCaptures": {
893
"1": {
894
"name": "punctuation.definition.string.end.julia"
895
},
896
"2": {
897
"name": "support.function.macro.julia"
898
}
899
},
900
"name": "string.quoted.other.julia",
901
"patterns": [
902
{
903
"include": "#string_escaped_char"
904
}
905
]
906
},
907
{
908
"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}←-⇿])*)?```",
909
"beginCaptures": {
910
"0": {
911
"name": "punctuation.definition.string.begin.julia"
912
},
913
"1": {
914
"name": "support.function.macro.julia"
915
}
916
},
917
"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}←-⇿])*)?",
918
"endCaptures": {
919
"1": {
920
"name": "punctuation.definition.string.end.julia"
921
},
922
"2": {
923
"name": "support.function.macro.julia"
924
}
925
},
926
"name": "string.interpolated.backtick.julia",
927
"patterns": [
928
{
929
"include": "#string_escaped_char"
930
},
931
{
932
"include": "#string_dollar_sign_interpolate"
933
}
934
]
935
},
936
{
937
"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}←-⇿])*)?`",
938
"beginCaptures": {
939
"0": {
940
"name": "punctuation.definition.string.begin.julia"
941
},
942
"1": {
943
"name": "support.function.macro.julia"
944
}
945
},
946
"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}←-⇿])*)?",
947
"endCaptures": {
948
"1": {
949
"name": "punctuation.definition.string.end.julia"
950
},
951
"2": {
952
"name": "support.function.macro.julia"
953
}
954
},
955
"name": "string.interpolated.backtick.julia",
956
"patterns": [
957
{
958
"include": "#string_escaped_char"
959
},
960
{
961
"include": "#string_dollar_sign_interpolate"
962
}
963
]
964
}
965
]
966
},
967
"string_escaped_char": {
968
"patterns": [
969
{
970
"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}|.)",
971
"name": "constant.character.escape.julia"
972
}
973
]
974
},
975
"string_dollar_sign_interpolate": {
976
"patterns": [
977
{
978
"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}$])*",
979
"name": "variable.interpolation.julia"
980
},
981
{
982
"begin": "\\$(\\()",
983
"beginCaptures": {
984
"1": {
985
"name": "meta.bracket.julia"
986
}
987
},
988
"end": "\\)",
989
"endCaptures": {
990
"0": {
991
"name": "meta.bracket.julia"
992
}
993
},
994
"name": "variable.interpolation.julia",
995
"comment": "`punctuation.section.embedded`, `constant.escape`,\n& `meta.embedded.line` were considered but appear to have even spottier\nsupport among popular syntaxes.",
996
"patterns": [
997
{
998
"include": "#self_no_for_block"
999
}
1000
]
1001
}
1002
]
1003
},
1004
"symbol": {
1005
"patterns": [
1006
{
1007
"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}←-⇿]))(?![\"`])",
1008
"name": "constant.other.symbol.julia",
1009
"comment": "This is string.quoted.symbol.julia in tpoisot's package"
1010
}
1011
]
1012
},
1013
"type_decl": {
1014
"patterns": [
1015
{
1016
"captures": {
1017
"1": {
1018
"name": "entity.name.type.julia"
1019
},
1020
"2": {
1021
"name": "entity.other.inherited-class.julia"
1022
},
1023
"3": {
1024
"name": "punctuation.separator.inheritance.julia"
1025
}
1026
},
1027
"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}←-⇿])*(?:{.*})?)?",
1028
"name": "meta.type.julia"
1029
}
1030
]
1031
},
1032
"self_no_for_block": {
1033
"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!",
1034
"patterns": [
1035
{
1036
"include": "#operator"
1037
},
1038
{
1039
"include": "#array"
1040
},
1041
{
1042
"include": "#string"
1043
},
1044
{
1045
"include": "#parentheses"
1046
},
1047
{
1048
"include": "#bracket"
1049
},
1050
{
1051
"include": "#function_decl"
1052
},
1053
{
1054
"include": "#function_call"
1055
},
1056
{
1057
"include": "#keyword"
1058
},
1059
{
1060
"include": "#number"
1061
},
1062
{
1063
"include": "#comment"
1064
},
1065
{
1066
"include": "#type_decl"
1067
},
1068
{
1069
"include": "#symbol"
1070
},
1071
{
1072
"include": "#punctuation"
1073
}
1074
]
1075
},
1076
"punctuation": {
1077
"patterns": [
1078
{
1079
"match": ",",
1080
"name": "punctuation.separator.comma.julia"
1081
},
1082
{
1083
"match": ";",
1084
"name": "punctuation.separator.semicolon.julia"
1085
}
1086
]
1087
}
1088
}
1089
}
1090