tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1061 @@
1
+ {
2
+ "displayName": "Julia",
3
+ "name": "julia",
4
+ "patterns": [
5
+ {
6
+ "include": "#operator"
7
+ },
8
+ {
9
+ "include": "#array"
10
+ },
11
+ {
12
+ "include": "#string"
13
+ },
14
+ {
15
+ "include": "#parentheses"
16
+ },
17
+ {
18
+ "include": "#bracket"
19
+ },
20
+ {
21
+ "include": "#function_decl"
22
+ },
23
+ {
24
+ "include": "#function_call"
25
+ },
26
+ {
27
+ "include": "#for_block"
28
+ },
29
+ {
30
+ "include": "#keyword"
31
+ },
32
+ {
33
+ "include": "#number"
34
+ },
35
+ {
36
+ "include": "#comment"
37
+ },
38
+ {
39
+ "include": "#type_decl"
40
+ },
41
+ {
42
+ "include": "#symbol"
43
+ }
44
+ ],
45
+ "repository": {
46
+ "array": {
47
+ "patterns": [
48
+ {
49
+ "begin": "\\[",
50
+ "beginCaptures": {
51
+ "0": {
52
+ "name": "meta.bracket.julia"
53
+ }
54
+ },
55
+ "end": "(\\])((?:\\.)?'*)",
56
+ "endCaptures": {
57
+ "1": {
58
+ "name": "meta.bracket.julia"
59
+ },
60
+ "2": {
61
+ "name": "keyword.operator.transpose.julia"
62
+ }
63
+ },
64
+ "name": "meta.array.julia",
65
+ "patterns": [
66
+ {
67
+ "match": "\\bbegin\\b",
68
+ "name": "constant.numeric.julia"
69
+ },
70
+ {
71
+ "match": "\\bend\\b",
72
+ "name": "constant.numeric.julia"
73
+ },
74
+ {
75
+ "include": "#self_no_for_block"
76
+ }
77
+ ]
78
+ }
79
+ ]
80
+ },
81
+ "bracket": {
82
+ "patterns": [
83
+ {
84
+ "begin": "\\{",
85
+ "beginCaptures": {
86
+ "0": {
87
+ "name": "meta.bracket.julia"
88
+ }
89
+ },
90
+ "end": "(\\})((?:\\.)?'*)",
91
+ "endCaptures": {
92
+ "1": {
93
+ "name": "meta.bracket.julia"
94
+ },
95
+ "2": {
96
+ "name": "keyword.operator.transpose.julia"
97
+ }
98
+ },
99
+ "patterns": [
100
+ {
101
+ "include": "#self_no_for_block"
102
+ }
103
+ ]
104
+ }
105
+ ]
106
+ },
107
+ "comment": {
108
+ "patterns": [
109
+ {
110
+ "include": "#comment_block"
111
+ },
112
+ {
113
+ "begin": "#",
114
+ "beginCaptures": {
115
+ "0": {
116
+ "name": "punctuation.definition.comment.julia"
117
+ }
118
+ },
119
+ "end": "\\n",
120
+ "name": "comment.line.number-sign.julia",
121
+ "patterns": [
122
+ {
123
+ "include": "#comment_tags"
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ },
129
+ "comment_block": {
130
+ "patterns": [
131
+ {
132
+ "begin": "#=",
133
+ "beginCaptures": {
134
+ "0": {
135
+ "name": "punctuation.definition.comment.begin.julia"
136
+ }
137
+ },
138
+ "end": "=#",
139
+ "endCaptures": {
140
+ "0": {
141
+ "name": "punctuation.definition.comment.end.julia"
142
+ }
143
+ },
144
+ "name": "comment.block.number-sign-equals.julia",
145
+ "patterns": [
146
+ {
147
+ "include": "#comment_tags"
148
+ },
149
+ {
150
+ "include": "#comment_block"
151
+ }
152
+ ]
153
+ }
154
+ ]
155
+ },
156
+ "comment_tags": {
157
+ "patterns": [
158
+ {
159
+ "match": "\\bTODO\\b",
160
+ "name": "keyword.other.comment-annotation.julia"
161
+ },
162
+ {
163
+ "match": "\\bFIXME\\b",
164
+ "name": "keyword.other.comment-annotation.julia"
165
+ },
166
+ {
167
+ "match": "\\bCHANGED\\b",
168
+ "name": "keyword.other.comment-annotation.julia"
169
+ },
170
+ {
171
+ "match": "\\bXXX\\b",
172
+ "name": "keyword.other.comment-annotation.julia"
173
+ }
174
+ ]
175
+ },
176
+ "for_block": {
177
+ "comment": "for blocks need to be special-cased to support tokenizing 'outer' properly",
178
+ "patterns": [
179
+ {
180
+ "begin": "\\b(for)\\b",
181
+ "beginCaptures": {
182
+ "0": {
183
+ "name": "keyword.control.julia"
184
+ }
185
+ },
186
+ "end": "(?<!,|\\s)(\\s*\\n)",
187
+ "patterns": [
188
+ {
189
+ "match": "\\bouter\\b",
190
+ "name": "keyword.other.julia"
191
+ },
192
+ {
193
+ "include": "$self"
194
+ }
195
+ ]
196
+ }
197
+ ]
198
+ },
199
+ "function_call": {
200
+ "patterns": [
201
+ {
202
+ "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}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(\\()",
203
+ "beginCaptures": {
204
+ "1": {
205
+ "name": "support.function.julia"
206
+ },
207
+ "2": {
208
+ "name": "support.type.julia"
209
+ },
210
+ "3": {
211
+ "name": "meta.bracket.julia"
212
+ }
213
+ },
214
+ "end": "\\)(('|(\\.'))*\\.?')?",
215
+ "endCaptures": {
216
+ "0": {
217
+ "name": "meta.bracket.julia"
218
+ },
219
+ "1": {
220
+ "name": "keyword.operator.transposed-func.julia"
221
+ }
222
+ },
223
+ "patterns": [
224
+ {
225
+ "include": "#self_no_for_block"
226
+ }
227
+ ]
228
+ }
229
+ ]
230
+ },
231
+ "function_decl": {
232
+ "patterns": [
233
+ {
234
+ "captures": {
235
+ "1": {
236
+ "name": "entity.name.function.julia"
237
+ },
238
+ "2": {
239
+ "name": "support.type.julia"
240
+ }
241
+ },
242
+ "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 `==`)",
243
+ "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*?=(?![=>]))"
244
+ },
245
+ {
246
+ "captures": {
247
+ "1": {
248
+ "name": "keyword.other.julia"
249
+ },
250
+ "2": {
251
+ "name": "keyword.operator.dots.julia"
252
+ },
253
+ "3": {
254
+ "name": "entity.name.function.julia"
255
+ },
256
+ "4": {
257
+ "name": "support.type.julia"
258
+ }
259
+ },
260
+ "comment": "similar regex to previous, but with keyword not 1-line syntax",
261
+ "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*)(?=\\()"
262
+ }
263
+ ]
264
+ },
265
+ "keyword": {
266
+ "patterns": [
267
+ {
268
+ "match": "\\b(?<![:_\\.])(?:function|mutable\\s+struct|struct|macro|quote|abstract\\s+type|primitive\\s+type|module|baremodule|where)\\b",
269
+ "name": "keyword.other.julia"
270
+ },
271
+ {
272
+ "match": "\\b(?<![:_])(?:if|else|elseif|for|while|begin|let|do|try|catch|finally|return|break|continue)\\b",
273
+ "name": "keyword.control.julia"
274
+ },
275
+ {
276
+ "match": "\\b(?<![:_])end\\b",
277
+ "name": "keyword.control.end.julia"
278
+ },
279
+ {
280
+ "match": "\\b(?<![:_])(?:global|local|const)\\b",
281
+ "name": "keyword.storage.modifier.julia"
282
+ },
283
+ {
284
+ "match": "\\b(?<![:_])(?:export)\\b",
285
+ "name": "keyword.control.export.julia"
286
+ },
287
+ {
288
+ "match": "\\b(?<![:_])(?:import)\\b",
289
+ "name": "keyword.control.import.julia"
290
+ },
291
+ {
292
+ "match": "\\b(?<![:_])(?:using)\\b",
293
+ "name": "keyword.control.using.julia"
294
+ },
295
+ {
296
+ "match": "(?<=\\w\\s)\\b(as)\\b(?=\\s\\w)",
297
+ "name": "keyword.control.as.julia"
298
+ },
299
+ {
300
+ "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}←-⇿])*))",
301
+ "name": "support.function.macro.julia"
302
+ }
303
+ ]
304
+ },
305
+ "number": {
306
+ "patterns": [
307
+ {
308
+ "captures": {
309
+ "1": {
310
+ "name": "constant.numeric.julia"
311
+ },
312
+ "2": {
313
+ "name": "keyword.operator.conjugate-number.julia"
314
+ }
315
+ },
316
+ "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))('*)"
317
+ },
318
+ {
319
+ "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",
320
+ "name": "constant.global.julia"
321
+ },
322
+ {
323
+ "match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b|\\bmissing\\b",
324
+ "name": "constant.language.julia"
325
+ }
326
+ ]
327
+ },
328
+ "operator": {
329
+ "patterns": [
330
+ {
331
+ "match": "(?:->|<-|-->|=>)",
332
+ "name": "keyword.operator.arrow.julia"
333
+ },
334
+ {
335
+ "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",
336
+ "name": "keyword.operator.update.julia"
337
+ },
338
+ {
339
+ "match": "(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",
340
+ "name": "keyword.operator.shift.julia"
341
+ },
342
+ {
343
+ "captures": {
344
+ "1": {
345
+ "name": "keyword.operator.relation.types.julia"
346
+ },
347
+ "2": {
348
+ "name": "support.type.julia"
349
+ },
350
+ "3": {
351
+ "name": "keyword.operator.transpose.julia"
352
+ }
353
+ },
354
+ "match": "(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?<!\\\\)\"))?)))(?:\\.\\.\\.)?((?:\\.)?'*)"
355
+ },
356
+ {
357
+ "match": "(?:===|∈|\\.∈|∉|\\.∉|∋|\\.∋|∌|\\.∌|≈|\\.≈|≉|\\.≉|≠|\\.≠|≡|\\.≡|≢|\\.≢|⊆|\\.⊆|⊇|\\.⊇|⊈|\\.⊈|⊉|\\.⊉|⊊|\\.⊊|⊋|\\.⊋|\\.==|!==|!=|\\.>=|\\.>|\\.<=|\\.<|\\.≤|\\.≥|==|\\.!=|\\.=|\\.!|<:|>:|:>|(?<!>)>=|(?<!<)<=|>|<|≥|≤)",
358
+ "name": "keyword.operator.relation.julia"
359
+ },
360
+ {
361
+ "match": "(?<=\\s)(?:\\?)(?=\\s)",
362
+ "name": "keyword.operator.ternary.julia"
363
+ },
364
+ {
365
+ "match": "(?<=\\s)(?:\\:)(?=\\s)",
366
+ "name": "keyword.operator.ternary.julia"
367
+ },
368
+ {
369
+ "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}←-⇿]))!)",
370
+ "name": "keyword.operator.boolean.julia"
371
+ },
372
+ {
373
+ "match": "(?<=[[:word:]⁺-ₜ!′∇\\)\\]\\}])(?::)",
374
+ "name": "keyword.operator.range.julia"
375
+ },
376
+ {
377
+ "match": "(?:\\|>)",
378
+ "name": "keyword.operator.applies.julia"
379
+ },
380
+ {
381
+ "match": "(?:\\||\\.\\||\\&|\\.\\&|~|\\.~|⊻|\\.⊻)",
382
+ "name": "keyword.operator.bitwise.julia"
383
+ },
384
+ {
385
+ "match": "(?:\\+\\+|--|\\+|\\.\\+|-|\\.\\-|\\*|\\.\\*|//(?!=)|\\.//(?!=)|/|\\./|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^|÷|\\.÷|⋅|\\.⋅|∩|\\.∩|∪|\\.∪|×|√|∛)",
386
+ "name": "keyword.operator.arithmetic.julia"
387
+ },
388
+ {
389
+ "match": "(?:∘)",
390
+ "name": "keyword.operator.compose.julia"
391
+ },
392
+ {
393
+ "match": "(?:::|(?<=\\s)isa(?=\\s))",
394
+ "name": "keyword.operator.isa.julia"
395
+ },
396
+ {
397
+ "match": "(?:(?<=\\s)in(?=\\s))",
398
+ "name": "keyword.operator.relation.in.julia"
399
+ },
400
+ {
401
+ "match": "(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+)",
402
+ "name": "keyword.operator.dots.julia"
403
+ },
404
+ {
405
+ "match": "(?:\\$)(?=.+)",
406
+ "name": "keyword.operator.interpolation.julia"
407
+ },
408
+ {
409
+ "captures": {
410
+ "2": {
411
+ "name": "keyword.operator.transposed-variable.julia"
412
+ }
413
+ },
414
+ "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}←-⇿])*)(('|(\\.'))*\\.?')"
415
+ },
416
+ {
417
+ "captures": {
418
+ "1": {
419
+ "name": "bracket.end.julia"
420
+ },
421
+ "2": {
422
+ "name": "keyword.operator.transposed-matrix.julia"
423
+ }
424
+ },
425
+ "match": "(\\])((?:'|(?:\\.'))*\\.?')"
426
+ },
427
+ {
428
+ "captures": {
429
+ "1": {
430
+ "name": "bracket.end.julia"
431
+ },
432
+ "2": {
433
+ "name": "keyword.operator.transposed-parens.julia"
434
+ }
435
+ },
436
+ "match": "(\\))((?:'|(?:\\.'))*\\.?')"
437
+ }
438
+ ]
439
+ },
440
+ "parentheses": {
441
+ "patterns": [
442
+ {
443
+ "begin": "\\(",
444
+ "beginCaptures": {
445
+ "0": {
446
+ "name": "meta.bracket.julia"
447
+ }
448
+ },
449
+ "end": "(\\))((?:\\.)?'*)",
450
+ "endCaptures": {
451
+ "1": {
452
+ "name": "meta.bracket.julia"
453
+ },
454
+ "2": {
455
+ "name": "keyword.operator.transpose.julia"
456
+ }
457
+ },
458
+ "patterns": [
459
+ {
460
+ "include": "#self_no_for_block"
461
+ }
462
+ ]
463
+ }
464
+ ]
465
+ },
466
+ "self_no_for_block": {
467
+ "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!",
468
+ "patterns": [
469
+ {
470
+ "include": "#operator"
471
+ },
472
+ {
473
+ "include": "#array"
474
+ },
475
+ {
476
+ "include": "#string"
477
+ },
478
+ {
479
+ "include": "#parentheses"
480
+ },
481
+ {
482
+ "include": "#bracket"
483
+ },
484
+ {
485
+ "include": "#function_decl"
486
+ },
487
+ {
488
+ "include": "#function_call"
489
+ },
490
+ {
491
+ "include": "#keyword"
492
+ },
493
+ {
494
+ "include": "#number"
495
+ },
496
+ {
497
+ "include": "#comment"
498
+ },
499
+ {
500
+ "include": "#type_decl"
501
+ },
502
+ {
503
+ "include": "#symbol"
504
+ }
505
+ ]
506
+ },
507
+ "string": {
508
+ "patterns": [
509
+ {
510
+ "begin": "(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))",
511
+ "beginCaptures": {
512
+ "1": {
513
+ "name": "support.function.macro.julia"
514
+ },
515
+ "2": {
516
+ "name": "punctuation.definition.string.begin.julia"
517
+ }
518
+ },
519
+ "end": "(\"\"\") ?(->)?",
520
+ "endCaptures": {
521
+ "1": {
522
+ "name": "punctuation.definition.string.end.julia"
523
+ },
524
+ "2": {
525
+ "name": "keyword.operator.arrow.julia"
526
+ }
527
+ },
528
+ "name": "string.docstring.julia",
529
+ "patterns": [
530
+ {
531
+ "include": "#string_escaped_char"
532
+ },
533
+ {
534
+ "include": "#string_dollar_sign_interpolate"
535
+ }
536
+ ]
537
+ },
538
+ {
539
+ "begin": "(i?cxx)(\"\"\")",
540
+ "beginCaptures": {
541
+ "1": {
542
+ "name": "support.function.macro.julia"
543
+ },
544
+ "2": {
545
+ "name": "punctuation.definition.string.begin.julia"
546
+ }
547
+ },
548
+ "contentName": "meta.embedded.inline.cpp",
549
+ "end": "\"\"\"",
550
+ "endCaptures": {
551
+ "0": {
552
+ "name": "punctuation.definition.string.end.julia"
553
+ }
554
+ },
555
+ "name": "embed.cxx.julia",
556
+ "patterns": [
557
+ {
558
+ "include": "source.cpp#root_context"
559
+ },
560
+ {
561
+ "include": "#string_dollar_sign_interpolate"
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ "begin": "(py)(\"\"\")",
567
+ "beginCaptures": {
568
+ "1": {
569
+ "name": "support.function.macro.julia"
570
+ },
571
+ "2": {
572
+ "name": "punctuation.definition.string.begin.julia"
573
+ }
574
+ },
575
+ "contentName": "meta.embedded.inline.python",
576
+ "end": "([\\s\\w]*)(\"\"\")",
577
+ "endCaptures": {
578
+ "2": {
579
+ "name": "punctuation.definition.string.end.julia"
580
+ }
581
+ },
582
+ "name": "embed.python.julia",
583
+ "patterns": [
584
+ {
585
+ "include": "source.python"
586
+ },
587
+ {
588
+ "include": "#string_dollar_sign_interpolate"
589
+ }
590
+ ]
591
+ },
592
+ {
593
+ "begin": "(js)(\"\"\")",
594
+ "beginCaptures": {
595
+ "1": {
596
+ "name": "support.function.macro.julia"
597
+ },
598
+ "2": {
599
+ "name": "punctuation.definition.string.begin.julia"
600
+ }
601
+ },
602
+ "contentName": "meta.embedded.inline.javascript",
603
+ "end": "\"\"\"",
604
+ "endCaptures": {
605
+ "0": {
606
+ "name": "punctuation.definition.string.end.julia"
607
+ }
608
+ },
609
+ "name": "embed.js.julia",
610
+ "patterns": [
611
+ {
612
+ "include": "source.js"
613
+ },
614
+ {
615
+ "include": "#string_dollar_sign_interpolate"
616
+ }
617
+ ]
618
+ },
619
+ {
620
+ "begin": "(R)(\"\"\")",
621
+ "beginCaptures": {
622
+ "1": {
623
+ "name": "support.function.macro.julia"
624
+ },
625
+ "2": {
626
+ "name": "punctuation.definition.string.begin.julia"
627
+ }
628
+ },
629
+ "contentName": "meta.embedded.inline.r",
630
+ "end": "\"\"\"",
631
+ "endCaptures": {
632
+ "0": {
633
+ "name": "punctuation.definition.string.end.julia"
634
+ }
635
+ },
636
+ "name": "embed.R.julia",
637
+ "patterns": [
638
+ {
639
+ "include": "source.r"
640
+ },
641
+ {
642
+ "include": "#string_dollar_sign_interpolate"
643
+ }
644
+ ]
645
+ },
646
+ {
647
+ "begin": "(raw)(\"\"\")",
648
+ "beginCaptures": {
649
+ "1": {
650
+ "name": "support.function.macro.julia"
651
+ },
652
+ "2": {
653
+ "name": "punctuation.definition.string.begin.julia"
654
+ }
655
+ },
656
+ "end": "\"\"\"",
657
+ "endCaptures": {
658
+ "0": {
659
+ "name": "punctuation.definition.string.end.julia"
660
+ }
661
+ },
662
+ "name": "string.quoted.other.julia",
663
+ "patterns": [
664
+ {
665
+ "include": "#string_escaped_char"
666
+ }
667
+ ]
668
+ },
669
+ {
670
+ "begin": "(raw)(\")",
671
+ "beginCaptures": {
672
+ "1": {
673
+ "name": "support.function.macro.julia"
674
+ },
675
+ "2": {
676
+ "name": "punctuation.definition.string.begin.julia"
677
+ }
678
+ },
679
+ "end": "\"",
680
+ "endCaptures": {
681
+ "0": {
682
+ "name": "punctuation.definition.string.end.julia"
683
+ }
684
+ },
685
+ "name": "string.quoted.other.julia",
686
+ "patterns": [
687
+ {
688
+ "include": "#string_escaped_char"
689
+ }
690
+ ]
691
+ },
692
+ {
693
+ "begin": "(sql)(\"\"\")",
694
+ "beginCaptures": {
695
+ "1": {
696
+ "name": "support.function.macro.julia"
697
+ },
698
+ "2": {
699
+ "name": "punctuation.definition.string.begin.julia"
700
+ }
701
+ },
702
+ "contentName": "meta.embedded.inline.sql",
703
+ "end": "\"\"\"",
704
+ "endCaptures": {
705
+ "0": {
706
+ "name": "punctuation.definition.string.end.julia"
707
+ }
708
+ },
709
+ "name": "embed.sql.julia",
710
+ "patterns": [
711
+ {
712
+ "include": "source.sql"
713
+ },
714
+ {
715
+ "include": "#string_dollar_sign_interpolate"
716
+ }
717
+ ]
718
+ },
719
+ {
720
+ "begin": "var\"\"\"",
721
+ "end": "\"\"\"",
722
+ "name": "constant.other.symbol.julia",
723
+ "patterns": [
724
+ {
725
+ "include": "#string_escaped_char"
726
+ }
727
+ ]
728
+ },
729
+ {
730
+ "begin": "var\"",
731
+ "end": "\"",
732
+ "name": "constant.other.symbol.julia",
733
+ "patterns": [
734
+ {
735
+ "include": "#string_escaped_char"
736
+ }
737
+ ]
738
+ },
739
+ {
740
+ "begin": "^\\s?(doc)?(\"\"\")\\s?$",
741
+ "beginCaptures": {
742
+ "1": {
743
+ "name": "support.function.macro.julia"
744
+ },
745
+ "2": {
746
+ "name": "punctuation.definition.string.begin.julia"
747
+ }
748
+ },
749
+ "comment": "This only matches docstrings that start and end with triple quotes on\ntheir own line in the void",
750
+ "end": "(\"\"\")",
751
+ "endCaptures": {
752
+ "1": {
753
+ "name": "punctuation.definition.string.end.julia"
754
+ }
755
+ },
756
+ "name": "string.docstring.julia",
757
+ "patterns": [
758
+ {
759
+ "include": "#string_escaped_char"
760
+ },
761
+ {
762
+ "include": "#string_dollar_sign_interpolate"
763
+ }
764
+ ]
765
+ },
766
+ {
767
+ "begin": "'",
768
+ "beginCaptures": {
769
+ "0": {
770
+ "name": "punctuation.definition.string.begin.julia"
771
+ }
772
+ },
773
+ "end": "'(?!')",
774
+ "endCaptures": {
775
+ "0": {
776
+ "name": "punctuation.definition.string.end.julia"
777
+ }
778
+ },
779
+ "name": "string.quoted.single.julia",
780
+ "patterns": [
781
+ {
782
+ "include": "#string_escaped_char"
783
+ }
784
+ ]
785
+ },
786
+ {
787
+ "begin": "\"\"\"",
788
+ "beginCaptures": {
789
+ "0": {
790
+ "name": "punctuation.definition.string.multiline.begin.julia"
791
+ }
792
+ },
793
+ "comment": "multi-line string with triple double quotes",
794
+ "end": "\"\"\"",
795
+ "endCaptures": {
796
+ "0": {
797
+ "name": "punctuation.definition.string.multiline.end.julia"
798
+ }
799
+ },
800
+ "name": "string.quoted.triple.double.julia",
801
+ "patterns": [
802
+ {
803
+ "include": "#string_escaped_char"
804
+ },
805
+ {
806
+ "include": "#string_dollar_sign_interpolate"
807
+ }
808
+ ]
809
+ },
810
+ {
811
+ "begin": "\"(?!\"\")",
812
+ "beginCaptures": {
813
+ "0": {
814
+ "name": "punctuation.definition.string.begin.julia"
815
+ }
816
+ },
817
+ "comment": "String with single pair of double quotes. Regex matches isolated double quote",
818
+ "end": "\"",
819
+ "endCaptures": {
820
+ "0": {
821
+ "name": "punctuation.definition.string.end.julia"
822
+ }
823
+ },
824
+ "name": "string.quoted.double.julia",
825
+ "patterns": [
826
+ {
827
+ "include": "#string_escaped_char"
828
+ },
829
+ {
830
+ "include": "#string_dollar_sign_interpolate"
831
+ }
832
+ ]
833
+ },
834
+ {
835
+ "begin": "r\"\"\"",
836
+ "beginCaptures": {
837
+ "0": {
838
+ "name": "punctuation.definition.string.regexp.begin.julia"
839
+ }
840
+ },
841
+ "end": "(\"\"\")([imsx]{0,4})?",
842
+ "endCaptures": {
843
+ "1": {
844
+ "name": "punctuation.definition.string.regexp.end.julia"
845
+ },
846
+ "2": {
847
+ "comment": "I took this scope name from python regex grammar",
848
+ "name": "keyword.other.option-toggle.regexp.julia"
849
+ }
850
+ },
851
+ "name": "string.regexp.julia",
852
+ "patterns": [
853
+ {
854
+ "include": "#string_escaped_char"
855
+ }
856
+ ]
857
+ },
858
+ {
859
+ "begin": "r\"",
860
+ "beginCaptures": {
861
+ "0": {
862
+ "name": "punctuation.definition.string.regexp.begin.julia"
863
+ }
864
+ },
865
+ "end": "(\")([imsx]{0,4})?",
866
+ "endCaptures": {
867
+ "1": {
868
+ "name": "punctuation.definition.string.regexp.end.julia"
869
+ },
870
+ "2": {
871
+ "comment": "I took this scope name from python regex grammar",
872
+ "name": "keyword.other.option-toggle.regexp.julia"
873
+ }
874
+ },
875
+ "name": "string.regexp.julia",
876
+ "patterns": [
877
+ {
878
+ "include": "#string_escaped_char"
879
+ }
880
+ ]
881
+ },
882
+ {
883
+ "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}←-⇿])*)\"\"\"",
884
+ "beginCaptures": {
885
+ "0": {
886
+ "name": "punctuation.definition.string.begin.julia"
887
+ },
888
+ "1": {
889
+ "name": "support.function.macro.julia"
890
+ }
891
+ },
892
+ "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}←-⇿])*)?",
893
+ "endCaptures": {
894
+ "1": {
895
+ "name": "punctuation.definition.string.end.julia"
896
+ },
897
+ "2": {
898
+ "name": "support.function.macro.julia"
899
+ }
900
+ },
901
+ "name": "string.quoted.other.julia",
902
+ "patterns": [
903
+ {
904
+ "include": "#string_escaped_char"
905
+ }
906
+ ]
907
+ },
908
+ {
909
+ "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}←-⇿])*)\"",
910
+ "beginCaptures": {
911
+ "0": {
912
+ "name": "punctuation.definition.string.begin.julia"
913
+ },
914
+ "1": {
915
+ "name": "support.function.macro.julia"
916
+ }
917
+ },
918
+ "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}←-⇿])*)?",
919
+ "endCaptures": {
920
+ "1": {
921
+ "name": "punctuation.definition.string.end.julia"
922
+ },
923
+ "2": {
924
+ "name": "support.function.macro.julia"
925
+ }
926
+ },
927
+ "name": "string.quoted.other.julia",
928
+ "patterns": [
929
+ {
930
+ "include": "#string_escaped_char"
931
+ }
932
+ ]
933
+ },
934
+ {
935
+ "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
+ "beginCaptures": {
937
+ "0": {
938
+ "name": "punctuation.definition.string.begin.julia"
939
+ },
940
+ "1": {
941
+ "name": "support.function.macro.julia"
942
+ }
943
+ },
944
+ "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
+ "endCaptures": {
946
+ "1": {
947
+ "name": "punctuation.definition.string.end.julia"
948
+ },
949
+ "2": {
950
+ "name": "support.function.macro.julia"
951
+ }
952
+ },
953
+ "name": "string.interpolated.backtick.julia",
954
+ "patterns": [
955
+ {
956
+ "include": "#string_escaped_char"
957
+ },
958
+ {
959
+ "include": "#string_dollar_sign_interpolate"
960
+ }
961
+ ]
962
+ },
963
+ {
964
+ "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}←-⇿])*)?`",
965
+ "beginCaptures": {
966
+ "0": {
967
+ "name": "punctuation.definition.string.begin.julia"
968
+ },
969
+ "1": {
970
+ "name": "support.function.macro.julia"
971
+ }
972
+ },
973
+ "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}←-⇿])*)?",
974
+ "endCaptures": {
975
+ "1": {
976
+ "name": "punctuation.definition.string.end.julia"
977
+ },
978
+ "2": {
979
+ "name": "support.function.macro.julia"
980
+ }
981
+ },
982
+ "name": "string.interpolated.backtick.julia",
983
+ "patterns": [
984
+ {
985
+ "include": "#string_escaped_char"
986
+ },
987
+ {
988
+ "include": "#string_dollar_sign_interpolate"
989
+ }
990
+ ]
991
+ }
992
+ ]
993
+ },
994
+ "string_dollar_sign_interpolate": {
995
+ "patterns": [
996
+ {
997
+ "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}$])*",
998
+ "name": "variable.interpolation.julia"
999
+ },
1000
+ {
1001
+ "begin": "\\$(\\()",
1002
+ "beginCaptures": {
1003
+ "1": {
1004
+ "name": "meta.bracket.julia"
1005
+ }
1006
+ },
1007
+ "comment": "`punctuation.section.embedded`, `constant.escape`,\n& `meta.embedded.line` were considered but appear to have even spottier\nsupport among popular syntaxes.",
1008
+ "end": "\\)",
1009
+ "endCaptures": {
1010
+ "0": {
1011
+ "name": "meta.bracket.julia"
1012
+ }
1013
+ },
1014
+ "name": "variable.interpolation.julia",
1015
+ "patterns": [
1016
+ {
1017
+ "include": "#self_no_for_block"
1018
+ }
1019
+ ]
1020
+ }
1021
+ ]
1022
+ },
1023
+ "string_escaped_char": {
1024
+ "patterns": [
1025
+ {
1026
+ "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}|.)",
1027
+ "name": "constant.character.escape.julia"
1028
+ }
1029
+ ]
1030
+ },
1031
+ "symbol": {
1032
+ "patterns": [
1033
+ {
1034
+ "comment": "This is string.quoted.symbol.julia in tpoisot's package",
1035
+ "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}←-⇿]))(?![\"`])",
1036
+ "name": "constant.other.symbol.julia"
1037
+ }
1038
+ ]
1039
+ },
1040
+ "type_decl": {
1041
+ "patterns": [
1042
+ {
1043
+ "captures": {
1044
+ "1": {
1045
+ "name": "entity.name.type.julia"
1046
+ },
1047
+ "2": {
1048
+ "name": "entity.other.inherited-class.julia"
1049
+ },
1050
+ "3": {
1051
+ "name": "punctuation.separator.inheritance.julia"
1052
+ }
1053
+ },
1054
+ "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}←-⇿])*(?:{.*})?)?",
1055
+ "name": "meta.type.julia"
1056
+ }
1057
+ ]
1058
+ }
1059
+ },
1060
+ "scopeName": "source.julia"
1061
+ }