tm-grammars 1.22.18 → 1.23.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 (234) hide show
  1. package/NOTICE +287 -1
  2. package/README.md +241 -239
  3. package/grammars/abap.json +36 -36
  4. package/grammars/actionscript-3.json +29 -29
  5. package/grammars/ada.json +78 -78
  6. package/grammars/angular-expression.json +62 -62
  7. package/grammars/angular-html.json +0 -1
  8. package/grammars/angular-inline-style.json +3 -3
  9. package/grammars/angular-inline-template.json +2 -2
  10. package/grammars/angular-template-blocks.json +3 -3
  11. package/grammars/angular-template.json +1 -1
  12. package/grammars/angular-ts.json +251 -251
  13. package/grammars/apache.json +31 -31
  14. package/grammars/apex.json +108 -108
  15. package/grammars/apl.json +18 -18
  16. package/grammars/applescript.json +11 -11
  17. package/grammars/ara.json +13 -13
  18. package/grammars/asciidoc.json +234 -234
  19. package/grammars/asm.json +90 -90
  20. package/grammars/astro.json +25 -25
  21. package/grammars/awk.json +8 -8
  22. package/grammars/ballerina.json +150 -150
  23. package/grammars/bat.json +28 -28
  24. package/grammars/beancount.json +33 -33
  25. package/grammars/berry.json +11 -11
  26. package/grammars/bibtex.json +12 -12
  27. package/grammars/bicep.json +12 -12
  28. package/grammars/blade.json +183 -183
  29. package/grammars/bsl.json +58 -58
  30. package/grammars/c.json +162 -162
  31. package/grammars/cadence.json +20 -20
  32. package/grammars/cairo.json +10 -10
  33. package/grammars/clarity.json +20 -20
  34. package/grammars/clojure.json +25 -25
  35. package/grammars/cmake.json +3 -3
  36. package/grammars/cobol.json +91 -91
  37. package/grammars/codeql.json +154 -154
  38. package/grammars/coffee.json +45 -45
  39. package/grammars/common-lisp.json +50 -50
  40. package/grammars/coq.json +10 -10
  41. package/grammars/cpp-macro.json +410 -410
  42. package/grammars/cpp.json +641 -641
  43. package/grammars/crystal.json +68 -68
  44. package/grammars/csharp.json +196 -196
  45. package/grammars/css.json +83 -83
  46. package/grammars/csv.json +1 -1
  47. package/grammars/cue.json +55 -55
  48. package/grammars/cypher.json +11 -11
  49. package/grammars/d.json +127 -32
  50. package/grammars/dart.json +18 -18
  51. package/grammars/dax.json +9 -9
  52. package/grammars/desktop.json +9 -9
  53. package/grammars/diff.json +3 -3
  54. package/grammars/dotenv.json +3 -3
  55. package/grammars/dream-maker.json +20 -20
  56. package/grammars/edge.json +8 -8
  57. package/grammars/elixir.json +44 -44
  58. package/grammars/elm.json +23 -23
  59. package/grammars/emacs-lisp.json +76 -76
  60. package/grammars/erb.json +2 -2
  61. package/grammars/erlang.json +29 -29
  62. package/grammars/es-tag-css.json +3 -3
  63. package/grammars/es-tag-glsl.json +3 -3
  64. package/grammars/es-tag-html.json +3 -3
  65. package/grammars/es-tag-sql.json +2 -2
  66. package/grammars/es-tag-xml.json +2 -2
  67. package/grammars/fennel.json +8 -8
  68. package/grammars/fish.json +10 -10
  69. package/grammars/fluent.json +10 -10
  70. package/grammars/fortran-fixed-form.json +1 -1
  71. package/grammars/fortran-free-form.json +106 -106
  72. package/grammars/fsharp.json +70 -70
  73. package/grammars/gdresource.json +15 -15
  74. package/grammars/gdscript.json +31 -27
  75. package/grammars/gdshader.json +18 -18
  76. package/grammars/genie.json +6 -6
  77. package/grammars/gherkin.json +1 -1
  78. package/grammars/git-commit.json +1 -1
  79. package/grammars/git-rebase.json +1 -1
  80. package/grammars/gleam.json +11 -11
  81. package/grammars/glimmer-js.json +35 -35
  82. package/grammars/glimmer-ts.json +35 -35
  83. package/grammars/glsl.json +4 -4
  84. package/grammars/gnuplot.json +41 -41
  85. package/grammars/go.json +155 -155
  86. package/grammars/graphql.json +20 -20
  87. package/grammars/groovy.json +44 -44
  88. package/grammars/hack.json +74 -74
  89. package/grammars/haml.json +24 -24
  90. package/grammars/handlebars.json +25 -25
  91. package/grammars/haskell.json +99 -99
  92. package/grammars/haxe.json +51 -51
  93. package/grammars/hcl.json +43 -43
  94. package/grammars/hjson.json +29 -29
  95. package/grammars/hlsl.json +15 -15
  96. package/grammars/html-derivative.json +0 -1
  97. package/grammars/html.json +28 -29
  98. package/grammars/http.json +17 -17
  99. package/grammars/hxml.json +3 -3
  100. package/grammars/hy.json +10 -10
  101. package/grammars/imba.json +168 -173
  102. package/grammars/ini.json +2 -2
  103. package/grammars/java.json +54 -54
  104. package/grammars/javascript.json +262 -262
  105. package/grammars/jinja-html.json +3 -3
  106. package/grammars/jinja.json +15 -15
  107. package/grammars/jison.json +18 -18
  108. package/grammars/json.json +6 -6
  109. package/grammars/json5.json +12 -12
  110. package/grammars/jsonc.json +6 -6
  111. package/grammars/jsonl.json +6 -6
  112. package/grammars/jsonnet.json +15 -15
  113. package/grammars/jssm.json +4 -4
  114. package/grammars/jsx.json +262 -262
  115. package/grammars/julia.json +45 -45
  116. package/grammars/kotlin.json +15 -15
  117. package/grammars/kusto.json +13 -13
  118. package/grammars/latex.json +260 -260
  119. package/grammars/lean.json +12 -12
  120. package/grammars/less.json +91 -91
  121. package/grammars/liquid.json +96 -62
  122. package/grammars/llvm.json +122 -0
  123. package/grammars/log.json +22 -22
  124. package/grammars/logo.json +2 -2
  125. package/grammars/lua.json +34 -34
  126. package/grammars/luau.json +20 -20
  127. package/grammars/make.json +22 -22
  128. package/grammars/markdown-vue.json +1 -1
  129. package/grammars/markdown.json +83 -83
  130. package/grammars/marko.json +19 -19
  131. package/grammars/matlab.json +29 -29
  132. package/grammars/mdc.json +17 -17
  133. package/grammars/mdx.json +278 -278
  134. package/grammars/mermaid.json +97 -97
  135. package/grammars/mipsasm.json +2 -2
  136. package/grammars/mojo.json +122 -122
  137. package/grammars/move.json +35 -35
  138. package/grammars/narrat.json +10 -10
  139. package/grammars/nextflow.json +11 -11
  140. package/grammars/nginx.json +45 -45
  141. package/grammars/nim.json +44 -44
  142. package/grammars/nix.json +71 -71
  143. package/grammars/nushell.json +36 -36
  144. package/grammars/objective-c.json +129 -129
  145. package/grammars/objective-cpp.json +245 -245
  146. package/grammars/ocaml.json +229 -229
  147. package/grammars/pascal.json +4 -4
  148. package/grammars/perl.json +64 -64
  149. package/grammars/php.json +199 -199
  150. package/grammars/plsql.json +10 -10
  151. package/grammars/po.json +4 -4
  152. package/grammars/polar.json +13 -13
  153. package/grammars/postcss.json +31 -31
  154. package/grammars/powerquery.json +10 -10
  155. package/grammars/powershell.json +54 -54
  156. package/grammars/prisma.json +13 -13
  157. package/grammars/prolog.json +3 -3
  158. package/grammars/proto.json +11 -11
  159. package/grammars/pug.json +30 -30
  160. package/grammars/puppet.json +35 -35
  161. package/grammars/purescript.json +843 -467
  162. package/grammars/python.json +126 -126
  163. package/grammars/qml.json +18 -18
  164. package/grammars/qss.json +7 -7
  165. package/grammars/r.json +17 -17
  166. package/grammars/racket.json +58 -58
  167. package/grammars/raku.json +15 -15
  168. package/grammars/razor.json +30 -30
  169. package/grammars/reg.json +3 -3
  170. package/grammars/regexp.json +15 -15
  171. package/grammars/rel.json +4 -4
  172. package/grammars/riscv.json +15 -15
  173. package/grammars/rst.json +26 -26
  174. package/grammars/ruby.json +103 -106
  175. package/grammars/rust.json +13 -13
  176. package/grammars/sas.json +9 -9
  177. package/grammars/sass.json +35 -35
  178. package/grammars/scala.json +75 -75
  179. package/grammars/scheme.json +16 -16
  180. package/grammars/scss.json +68 -68
  181. package/grammars/sdbl.json +18 -18
  182. package/grammars/shaderlab.json +8 -8
  183. package/grammars/shellscript.json +111 -111
  184. package/grammars/shellsession.json +1 -1
  185. package/grammars/smalltalk.json +5 -5
  186. package/grammars/solidity.json +20 -20
  187. package/grammars/soy.json +30 -30
  188. package/grammars/sparql.json +1 -1
  189. package/grammars/splunk.json +6 -6
  190. package/grammars/sql.json +8 -8
  191. package/grammars/ssh-config.json +2 -2
  192. package/grammars/stata.json +90 -90
  193. package/grammars/stylus.json +48 -48
  194. package/grammars/svelte.json +35 -25
  195. package/grammars/swift.json +114 -114
  196. package/grammars/system-verilog.json +25 -25
  197. package/grammars/systemd.json +16 -16
  198. package/grammars/talonscript.json +12 -12
  199. package/grammars/tasl.json +10 -10
  200. package/grammars/tcl.json +11 -11
  201. package/grammars/templ.json +34 -34
  202. package/grammars/terraform.json +42 -42
  203. package/grammars/tex.json +14 -14
  204. package/grammars/toml.json +15 -15
  205. package/grammars/tsx.json +262 -262
  206. package/grammars/turtle.json +2 -2
  207. package/grammars/twig.json +37 -37
  208. package/grammars/typescript.json +251 -251
  209. package/grammars/typespec.json +54 -273
  210. package/grammars/typst.json +34 -34
  211. package/grammars/v.json +32 -32
  212. package/grammars/vala.json +6 -6
  213. package/grammars/vb.json +7 -7
  214. package/grammars/verilog.json +4 -4
  215. package/grammars/vhdl.json +10 -10
  216. package/grammars/viml.json +22 -22
  217. package/grammars/vue-html.json +10 -10
  218. package/grammars/vue-sfc-style-variable-injection.json +1 -1
  219. package/grammars/vue.json +65 -65
  220. package/grammars/vyper.json +126 -126
  221. package/grammars/wasm.json +26 -26
  222. package/grammars/wenyan.json +7 -7
  223. package/grammars/wgsl.json +9 -9
  224. package/grammars/wikitext.json +66 -66
  225. package/grammars/wit.json +1409 -0
  226. package/grammars/wolfram.json +446 -446
  227. package/grammars/xml.json +11 -11
  228. package/grammars/xsl.json +1 -1
  229. package/grammars/yaml.json +24 -24
  230. package/grammars/zenscript.json +8 -8
  231. package/grammars/zig.json +11 -11
  232. package/index.d.ts +7 -0
  233. package/index.js +1226 -506
  234. package/package.json +1 -1
@@ -27,7 +27,7 @@
27
27
  "name": "meta.brace.square.imba"
28
28
  }
29
29
  },
30
- "end": "\\]",
30
+ "end": "]",
31
31
  "endCaptures": {
32
32
  "0": {
33
33
  "name": "meta.brace.square.imba"
@@ -89,11 +89,11 @@
89
89
  "boolean-literal": {
90
90
  "patterns": [
91
91
  {
92
- "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(true|yes)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
92
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(true|yes)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
93
93
  "name": "constant.language.boolean.true.imba"
94
94
  },
95
95
  {
96
- "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(false|no)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
96
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(false|no)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
97
97
  "name": "constant.language.boolean.false.imba"
98
98
  }
99
99
  ]
@@ -101,7 +101,7 @@
101
101
  "brackets": {
102
102
  "patterns": [
103
103
  {
104
- "begin": "{",
104
+ "begin": "\\{",
105
105
  "end": "}|(?=\\*/)",
106
106
  "patterns": [
107
107
  {
@@ -111,7 +111,7 @@
111
111
  },
112
112
  {
113
113
  "begin": "\\[",
114
- "end": "\\]|(?=\\*/)",
114
+ "end": "]|(?=\\*/)",
115
115
  "patterns": [
116
116
  {
117
117
  "include": "#brackets"
@@ -164,7 +164,7 @@
164
164
  "name": "comment.block.imba"
165
165
  },
166
166
  {
167
- "begin": "(### \\@ts(?=\\s|$))",
167
+ "begin": "(### @ts(?=\\s|$))",
168
168
  "beginCaptures": {
169
169
  "1": {
170
170
  "name": "punctuation.definition.comment.imba"
@@ -177,12 +177,7 @@
177
177
  "name": "punctuation.definition.comment.imba"
178
178
  }
179
179
  },
180
- "name": "ts.block.imba",
181
- "patterns": [
182
- {
183
- "include": "source.ts"
184
- }
185
- ]
180
+ "name": "ts.block.imba"
186
181
  },
187
182
  {
188
183
  "begin": "(###)",
@@ -191,7 +186,7 @@
191
186
  "name": "punctuation.definition.comment.imba"
192
187
  }
193
188
  },
194
- "end": "###(?:[ \\t]*\\n)",
189
+ "end": "###[ \\t]*\\n",
195
190
  "endCaptures": {
196
191
  "0": {
197
192
  "name": "punctuation.definition.comment.imba"
@@ -200,7 +195,7 @@
200
195
  "name": "comment.block.imba"
201
196
  },
202
197
  {
203
- "begin": "(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",
198
+ "begin": "(^[ \\t]+)?((//|#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",
204
199
  "beginCaptures": {
205
200
  "1": {
206
201
  "name": "punctuation.whitespace.comment.leading.imba"
@@ -226,15 +221,15 @@
226
221
  "css-color-keywords": {
227
222
  "patterns": [
228
223
  {
229
- "match": "(?i)(?<![\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w-])",
224
+ "match": "(?i)(?<![\\w\\-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w\\-])",
230
225
  "name": "support.constant.color.w3c-standard-color-name.css"
231
226
  },
232
227
  {
233
- "match": "(?xi) (?<![\\w-])\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\n(?![\\w-])",
228
+ "match": "(?i)(?<![\\w\\-])(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)(?![\\w\\-])",
234
229
  "name": "support.constant.color.w3c-extended-color-name.css"
235
230
  },
236
231
  {
237
- "match": "(?i)(?<![\\w-])currentColor(?![\\w-])",
232
+ "match": "(?i)(?<![\\w\\-])currentColor(?![\\w\\-])",
238
233
  "name": "support.constant.color.current.css"
239
234
  }
240
235
  ]
@@ -242,7 +237,7 @@
242
237
  "css-combinators": {
243
238
  "patterns": [
244
239
  {
245
- "match": ">>>|>>|>|\\+|~",
240
+ "match": ">>>|>>|[>+~]",
246
241
  "name": "punctuation.separator.combinator.css"
247
242
  },
248
243
  {
@@ -258,11 +253,11 @@
258
253
  "css-comment": {
259
254
  "patterns": [
260
255
  {
261
- "match": "\\#(\\s.+)?(\\n|$)",
256
+ "match": "#(\\s.+)?(\\n|$)",
262
257
  "name": "comment.line.imba"
263
258
  },
264
259
  {
265
- "match": "(^\\t+)(\\#(\\s.+)?(\\n|$))",
260
+ "match": "(^\\t+)(#(\\s.+)?(\\n|$))",
266
261
  "name": "comment.line.imba"
267
262
  }
268
263
  ]
@@ -270,7 +265,7 @@
270
265
  "css-escapes": {
271
266
  "patterns": [
272
267
  {
273
- "match": "\\\\[0-9a-fA-F]{1,6}",
268
+ "match": "\\\\\\h{1,6}",
274
269
  "name": "constant.character.escape.codepoint.css"
275
270
  },
276
271
  {
@@ -287,7 +282,7 @@
287
282
  "css-functions": {
288
283
  "patterns": [
289
284
  {
290
- "begin": "(?i)(?<![\\w-])(calc)(\\()",
285
+ "begin": "(?i)(?<![\\w\\-])(calc)(\\()",
291
286
  "beginCaptures": {
292
287
  "1": {
293
288
  "name": "support.function.calc.css"
@@ -305,7 +300,7 @@
305
300
  "name": "meta.function.calc.css",
306
301
  "patterns": [
307
302
  {
308
- "match": "[*/]|(?<=\\s|^)[-+](?=\\s|$)",
303
+ "match": "[*/]|(?<=\\s|^)[\\-+](?=\\s|$)",
309
304
  "name": "keyword.operator.arithmetic.css"
310
305
  },
311
306
  {
@@ -314,7 +309,7 @@
314
309
  ]
315
310
  },
316
311
  {
317
- "begin": "(?i)(?<![\\w-])(rgba?|hsla?)(\\()",
312
+ "begin": "(?i)(?<![\\w\\-])(rgba?|hsla?)(\\()",
318
313
  "beginCaptures": {
319
314
  "1": {
320
315
  "name": "support.function.misc.css"
@@ -337,7 +332,7 @@
337
332
  ]
338
333
  },
339
334
  {
340
- "begin": "(?xi) (?<![\\w-])\n(\n (?:-webkit-|-moz-|-o-)? # Accept prefixed/historical variants\n (?:repeating-)? # \"Repeating\"-type gradient\n (?:linear|radial|conic) # Shape\n -gradient\n)\n(\\()",
335
+ "begin": "(?i)(?<![\\w\\-])((?:-(?:webkit-|moz-|o-))?(?:repeating-)?(?:linear|radial|conic)-gradient)(\\()",
341
336
  "beginCaptures": {
342
337
  "1": {
343
338
  "name": "support.function.gradient.css"
@@ -355,7 +350,7 @@
355
350
  "name": "meta.function.gradient.css",
356
351
  "patterns": [
357
352
  {
358
- "match": "(?i)(?<![\\w-])(from|to|at)(?![\\w-])",
353
+ "match": "(?i)(?<![\\w\\-])(from|to|at)(?![\\w\\-])",
359
354
  "name": "keyword.operator.gradient.css"
360
355
  },
361
356
  {
@@ -364,7 +359,7 @@
364
359
  ]
365
360
  },
366
361
  {
367
- "begin": "(?i)(?<![\\w-])(-webkit-gradient)(\\()",
362
+ "begin": "(?i)(?<![\\w\\-])(-webkit-gradient)(\\()",
368
363
  "beginCaptures": {
369
364
  "1": {
370
365
  "name": "invalid.deprecated.gradient.function.css"
@@ -382,7 +377,7 @@
382
377
  "name": "meta.function.gradient.invalid.deprecated.gradient.css",
383
378
  "patterns": [
384
379
  {
385
- "begin": "(?i)(?<![\\w-])(from|to|color-stop)(\\()",
380
+ "begin": "(?i)(?<![\\w\\-])(from|to|color-stop)(\\()",
386
381
  "beginCaptures": {
387
382
  "1": {
388
383
  "name": "invalid.deprecated.function.css"
@@ -409,7 +404,7 @@
409
404
  ]
410
405
  },
411
406
  {
412
- "begin": "(?xi) (?<![\\w-])\n(annotation|attr|blur|brightness|character-variant|contrast|counters?\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate\n|image-set|invert|local|minmax|opacity|ornaments|repeat|saturate|sepia\n|styleset|stylistic|swash|symbols)\n(\\()",
407
+ "begin": "(?i)(?<![\\w\\-])(annotation|attr|blur|brightness|character-variant|contrast|counters?|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate|image-set|invert|local|minmax|opacity|ornaments|repeat|saturate|sepia|styleset|stylistic|swash|symbols)(\\()",
413
408
  "beginCaptures": {
414
409
  "1": {
415
410
  "name": "support.function.misc.css"
@@ -440,7 +435,7 @@
440
435
  ]
441
436
  },
442
437
  {
443
- "begin": "(?i)(?<![\\w-])(circle|ellipse|inset|polygon|rect)(\\()",
438
+ "begin": "(?i)(?<![\\w\\-])(circle|ellipse|inset|polygon|rect)(\\()",
444
439
  "beginCaptures": {
445
440
  "1": {
446
441
  "name": "support.function.shape.css"
@@ -467,7 +462,7 @@
467
462
  ]
468
463
  },
469
464
  {
470
- "begin": "(?i)(?<![\\w-])(cubic-bezier|steps)(\\()",
465
+ "begin": "(?i)(?<![\\w\\-])(cubic-bezier|steps)(\\()",
471
466
  "beginCaptures": {
472
467
  "1": {
473
468
  "name": "support.function.timing-function.css"
@@ -485,7 +480,7 @@
485
480
  "name": "meta.function.timing-function.css",
486
481
  "patterns": [
487
482
  {
488
- "match": "(?i)(?<![\\w-])(start|end)(?=\\s*\\)|$)",
483
+ "match": "(?i)(?<![\\w\\-])(start|end)(?=\\s*\\)|$)",
489
484
  "name": "support.constant.step-direction.css"
490
485
  },
491
486
  {
@@ -494,7 +489,7 @@
494
489
  ]
495
490
  },
496
491
  {
497
- "begin": "(?xi) (?<![\\w-])\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\n| matrix(?:3D)?\n| skew[XY]?\n| perspective\n)\n(\\()",
492
+ "begin": "(?i)(?<![\\w\\-])((?:translate|scale|rotate)(?:[XYZ]|3D)?|matrix(?:3D)?|skew[XY]?|perspective)(\\()",
498
493
  "beginCaptures": {
499
494
  "1": {
500
495
  "name": "support.function.transform.css"
@@ -525,7 +520,7 @@
525
520
  "name": "punctuation.definition.constant.css"
526
521
  }
527
522
  },
528
- "match": "(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",
523
+ "match": "(#)(?:\\h{3,4}|\\h{6}|\\h{8})\\b",
529
524
  "name": "constant.other.color.rgb-value.hex.css"
530
525
  },
531
526
  {
@@ -537,7 +532,7 @@
537
532
  "name": "keyword.other.unit.${2:/downcase}.css"
538
533
  }
539
534
  },
540
- "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|vh|vmax|vmin|\n vw\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars",
535
+ "match": "(?i)(?<![\\w\\-])[\\-+]?(?:[0-9]+(?:\\.[0-9]+)?|\\.[0-9]+)(?:(?<=[0-9])E[\\-+]?[0-9]+)?(?:(%)|(deg|grad|rad|turn|Hz|kHz|ch|cm|em|ex|fr|in|mm|mozmm|pc|pt|px|q|rem|vh|vmax|vmin|vw|dpi|dpcm|dppx|s|ms)\\b)?",
541
536
  "name": "constant.numeric.css"
542
537
  }
543
538
  ]
@@ -566,7 +561,7 @@
566
561
  "include": "#string"
567
562
  },
568
563
  {
569
- "match": "!\\s*important(?![\\w-])",
564
+ "match": "!\\s*important(?![\\w\\-])",
570
565
  "name": "keyword.other.important.css"
571
566
  }
572
567
  ]
@@ -580,7 +575,7 @@
580
575
  "name": "invalid.illegal.colon.css"
581
576
  }
582
577
  },
583
- "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|defined|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within\n | fullscreen|host|hover|in-range|indeterminate|invalid|left|link\n | optional|out-of-range|placeholder-shown|read-only|read-write\n | required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])",
578
+ "match": "(?i)(:)(:*)(?:active|any-link|checked|default|defined|disabled|empty|enabled|first|(?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within|fullscreen|host|hover|in-range|indeterminate|invalid|left|link|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|target|unresolved|valid|visited)(?![\\w\\-]|\\s*[;}])",
584
579
  "name": "entity.other.attribute-name.pseudo-class.css"
585
580
  },
586
581
  "css-pseudo-elements": {
@@ -592,12 +587,12 @@
592
587
  "name": "punctuation.definition.entity.css"
593
588
  }
594
589
  },
595
- "match": "(?xi)\n(?:\n (::?) # Elements using both : and :: notation\n (?: after\n | before\n | first-letter\n | first-line\n | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\n |ms|o|rim|ro|tc|wap|webkit|xv)\n | (?:mso|prince))\n -[a-z-]+\n )\n |\n (::) # Double-colon only\n (?: backdrop\n | content\n | grammar-error\n | marker\n | placeholder\n | selection\n | shadow\n | spelling-error\n )\n)\n(?![\\w-]|\\s*[;}])",
590
+ "match": "(?i)(?:(::?)(?:after|before|first-letter|first-line|(?:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-z\\-]+)|(::)(?:backdrop|content|grammar-error|marker|placeholder|selection|shadow|spelling-error))(?![\\w\\-]|\\s*[;}])",
596
591
  "name": "entity.other.attribute-name.pseudo-element.css"
597
592
  },
598
593
  "css-selector": {
599
- "begin": "(?<=css\\s)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",
600
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
594
+ "begin": "(?<=css\\s)(?![\\^@.%\\w$!\\-]+\\s*[:=][^:])",
595
+ "end": "(\\s*(?=[\\^@.%\\w$!\\-]+\\s*[:=][^:])|\\s*$|(?=\\s+#\\s))",
601
596
  "endCaptures": {
602
597
  "0": {
603
598
  "name": "punctuation.separator.sel-properties.css"
@@ -622,7 +617,7 @@
622
617
  "include": "#css-combinators"
623
618
  },
624
619
  {
625
- "match": "(\\%[\\w\\-]+)",
620
+ "match": "(%[\\w\\-]+)",
626
621
  "name": "entity.other.attribute-name.mixin.css"
627
622
  },
628
623
  {
@@ -636,7 +631,7 @@
636
631
  "name": "punctuation.definition.entity.begin.bracket.square.css"
637
632
  }
638
633
  },
639
- "end": "\\]",
634
+ "end": "]",
640
635
  "endCaptures": {
641
636
  "0": {
642
637
  "name": "punctuation.definition.entity.end.bracket.square.css"
@@ -667,7 +662,7 @@
667
662
  "include": "#css-escapes"
668
663
  },
669
664
  {
670
- "match": "[~|^$*]?=",
665
+ "match": "[~|\\^$*]?=",
671
666
  "name": "keyword.operator.pattern.css"
672
667
  },
673
668
  {
@@ -680,7 +675,7 @@
680
675
  "name": "entity.other.namespace-prefix.css"
681
676
  }
682
677
  },
683
- "match": "(-?(?!\\d)(?:[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+|\\*)(?=\\|(?!\\s|=|$|\\])(?:-?(?!\\d)|[\\\\\\w-]|[^\\\\x00-\\\\x7F]))"
678
+ "match": "(-?(?!\\d)(?:[\\w\\-[^\\\\x00-\\\\7F]]|\\\\(?:\\h{1,6}|.))+|\\*)(?=\\|(?![\\s=]|$|])(?:-?(?!\\d)|[\\\\\\w\\-[^\\\\x00-\\\\7F]]))"
684
679
  },
685
680
  {
686
681
  "captures": {
@@ -688,7 +683,7 @@
688
683
  "name": "entity.other.attribute-name.css"
689
684
  }
690
685
  },
691
- "match": "(-?(?!\\d)(?>[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\\s*(?=[~|^\\]$*=]|/\\*)"
686
+ "match": "(-?(?!\\d)(?>[\\w\\-[^\\\\x00-\\\\7F]]|\\\\(?:\\h{1,6}|.))+)\\s*(?=[~|\\^\\]$*=]|/\\*)"
692
687
  }
693
688
  ]
694
689
  },
@@ -706,7 +701,7 @@
706
701
  "css-size-keywords": {
707
702
  "patterns": [
708
703
  {
709
- "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",
704
+ "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w\\-])",
710
705
  "name": "support.constant.size.property-value.css"
711
706
  }
712
707
  ]
@@ -718,7 +713,7 @@
718
713
  "name": "meta.brace.curly.imba"
719
714
  }
720
715
  },
721
- "end": "\\}",
716
+ "end": "}",
722
717
  "endCaptures": {
723
718
  "0": {
724
719
  "name": "meta.brace.curly.imba"
@@ -734,7 +729,7 @@
734
729
  ]
735
730
  },
736
731
  "decorator": {
737
- "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@(?!\\@)",
732
+ "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))@(?!@)",
738
733
  "beginCaptures": {
739
734
  "0": {
740
735
  "name": "punctuation.decorator.imba"
@@ -749,7 +744,7 @@
749
744
  ]
750
745
  },
751
746
  "directives": {
752
- "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",
747
+ "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*(('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^`\\\\]|\\\\.)*`)))+\\s*/>\\s*$)",
753
748
  "beginCaptures": {
754
749
  "1": {
755
750
  "name": "punctuation.definition.comment.imba"
@@ -805,7 +800,7 @@
805
800
  "name": "constant.language.access-type.jsdoc"
806
801
  }
807
802
  },
808
- "match": "((@)(?:access|api))\\s+(private|protected|public)\\b"
803
+ "match": "((@)a(?:ccess|pi))\\s+(p(?:rivate|rotected|ublic))\\b"
809
804
  },
810
805
  {
811
806
  "captures": {
@@ -932,7 +927,7 @@
932
927
  "name": "entity.name.type.instance.jsdoc"
933
928
  }
934
929
  },
935
- "match": "((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*\\])?{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))"
930
+ "match": "((@)see)\\s+(?:((?=https?://)(?:[^\\s*]|\\*[^/])+)|((?!https?://|(?:\\[[^\\[\\]]*])?\\{@(?:link|linkcode|linkplain|tutorial)\\b)(?:[^@\\s*/]|\\*[^/])+))"
936
931
  },
937
932
  {
938
933
  "captures": {
@@ -963,7 +958,7 @@
963
958
  "match": "((@)(?:arg|argument|const|constant|member|namespace|param|var))\\s+([A-Za-z_$][\\w$.\\[\\]]*)"
964
959
  },
965
960
  {
966
- "begin": "((@)typedef)\\s+(?={)",
961
+ "begin": "((@)typedef)\\s+(?=\\{)",
967
962
  "beginCaptures": {
968
963
  "1": {
969
964
  "name": "storage.type.class.jsdoc"
@@ -984,7 +979,7 @@
984
979
  ]
985
980
  },
986
981
  {
987
- "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",
982
+ "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?=\\{)",
988
983
  "beginCaptures": {
989
984
  "1": {
990
985
  "name": "storage.type.class.jsdoc"
@@ -1020,13 +1015,13 @@
1020
1015
  "name": "invalid.illegal.syntax.jsdoc"
1021
1016
  }
1022
1017
  },
1023
- "match": "(\\[)\\s*[\\w$]+(?:(?:\\[\\])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\"|'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?'|\\[(?:(?:\\*(?!/))|[^*])*?\\]|(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",
1018
+ "match": "(\\[)\\s*[\\w$]+(?:(?:\\[])?\\.[\\w$]+)*(?:\\s*(=)\\s*((?>\"(?:\\*(?!/)|\\\\(?!\")|[^*\\\\])*?\"|'(?:\\*(?!/)|\\\\(?!')|[^*\\\\])*?'|\\[(?:\\*(?!/)|[^*])*?]|(?:\\*(?!/)|\\s(?!\\s*])|\\[.*?(?:]|(?=\\*/))|[^*\\s\\[\\]])*)*))?\\s*(?:(])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",
1024
1019
  "name": "variable.other.jsdoc"
1025
1020
  }
1026
1021
  ]
1027
1022
  },
1028
1023
  {
1029
- "begin": "((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|suppress|this|throws|type|yields?))\\s+(?={)",
1024
+ "begin": "((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|suppress|this|throws|type|yields?))\\s+(?=\\{)",
1030
1025
  "beginCaptures": {
1031
1026
  "1": {
1032
1027
  "name": "storage.type.class.jsdoc"
@@ -1057,7 +1052,7 @@
1057
1052
  "match": "((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\s+((?:[^{}@\\s*]|\\*[^/])+)"
1058
1053
  },
1059
1054
  {
1060
- "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",
1055
+ "begin": "((@)(?:default(?:value)?|license|version))\\s+((['\"]))",
1061
1056
  "beginCaptures": {
1062
1057
  "1": {
1063
1058
  "name": "storage.type.class.jsdoc"
@@ -1118,7 +1113,7 @@
1118
1113
  "name": "punctuation.definition.block.tag.jsdoc"
1119
1114
  }
1120
1115
  },
1121
- "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)"
1116
+ "match": "((@)[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)(?=\\s+)"
1122
1117
  }
1123
1118
  ]
1124
1119
  },
@@ -1245,13 +1240,13 @@
1245
1240
  ]
1246
1241
  },
1247
1242
  "generics-literal": {
1248
- "begin": "(?<=[\\w\\]\\)])\\<",
1243
+ "begin": "(?<=[\\w\\])])<",
1249
1244
  "beginCaptures": {
1250
1245
  "1": {
1251
1246
  "name": "meta.generics.annotation.open.imba"
1252
1247
  }
1253
1248
  },
1254
- "end": "\\>",
1249
+ "end": ">",
1255
1250
  "endCaptures": {
1256
1251
  "0": {
1257
1252
  "name": "meta.generics.annotation.close.imba"
@@ -1282,7 +1277,7 @@
1282
1277
  "name": "entity.name.function.property.imba"
1283
1278
  }
1284
1279
  },
1285
- "match": "(?:(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*)?([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)(?=\\s*={{functionOrArrowLookup}})"
1280
+ "match": "(?:(?:(\\.)|(\\.\\.(?!\\s*\\d|\\s+)))\\s*)?([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)(?=\\s*=\\{\\{functionOrArrowLookup}})"
1286
1281
  },
1287
1282
  {
1288
1283
  "captures": {
@@ -1296,7 +1291,7 @@
1296
1291
  "name": "variable.other.constant.property.imba"
1297
1292
  }
1298
1293
  },
1299
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"
1294
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*\\d|\\s+)))\\s*(#?\\p{upper}[_$\\d[:upper:]]*)(?![_$[:alnum:]])"
1300
1295
  },
1301
1296
  {
1302
1297
  "captures": {
@@ -1310,7 +1305,7 @@
1310
1305
  "name": "variable.other.class.property.imba"
1311
1306
  }
1312
1307
  },
1313
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))([[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?)"
1308
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*\\d|\\s+)))(\\p{upper}[_$[:alnum:]]*(?:-[_$[:alnum:]]+)*!?)"
1314
1309
  },
1315
1310
  {
1316
1311
  "captures": {
@@ -1324,7 +1319,7 @@
1324
1319
  "name": "variable.other.property.imba"
1325
1320
  }
1326
1321
  },
1327
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))(\\#?[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"
1322
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*\\d|\\s+)))(#?[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)"
1328
1323
  },
1329
1324
  {
1330
1325
  "match": "(for own|for|if|unless|when)\\b",
@@ -1346,8 +1341,8 @@
1346
1341
  ]
1347
1342
  },
1348
1343
  "inline-css-selector": {
1349
- "begin": "(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",
1350
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])|\\)|\\])|\\s*$)",
1344
+ "begin": "(^\\t+)(?![\\^@.%\\w$!\\-]+\\s*[:=])",
1345
+ "end": "(\\s*(?=[\\^@.%\\w$!\\-]+\\s*[:=]|[)\\]])|\\s*$)",
1351
1346
  "endCaptures": {
1352
1347
  "0": {
1353
1348
  "name": "punctuation.separator.sel-properties.css"
@@ -1384,11 +1379,11 @@
1384
1379
  "name": "punctuation.definition.bracket.square.end.jsdoc"
1385
1380
  }
1386
1381
  },
1387
- "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",
1382
+ "match": "(\\[)[^\\]]+(])(?=\\{@(?:link|linkcode|linkplain|tutorial))",
1388
1383
  "name": "constant.other.description.jsdoc"
1389
1384
  },
1390
1385
  {
1391
- "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*",
1386
+ "begin": "(\\{)((@)(?:link(?:code|plain)?|tutorial))\\s*",
1392
1387
  "beginCaptures": {
1393
1388
  "1": {
1394
1389
  "name": "punctuation.definition.bracket.curly.begin.jsdoc"
@@ -1417,7 +1412,7 @@
1417
1412
  "name": "punctuation.separator.pipe.jsdoc"
1418
1413
  }
1419
1414
  },
1420
- "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"
1415
+ "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*/)+)(\\|)?"
1421
1416
  },
1422
1417
  {
1423
1418
  "captures": {
@@ -1437,7 +1432,7 @@
1437
1432
  "invalid-indentation": {
1438
1433
  "patterns": [
1439
1434
  {
1440
- "match": "^[\\ ]+",
1435
+ "match": "^ +",
1441
1436
  "name": "invalid.whitespace"
1442
1437
  },
1443
1438
  {
@@ -1449,11 +1444,11 @@
1449
1444
  "jsdoctype": {
1450
1445
  "patterns": [
1451
1446
  {
1452
- "match": "\\G{(?:[^}*]|\\*[^/}])+$",
1447
+ "match": "\\G\\{(?:[^}*]|\\*[^/}])+$",
1453
1448
  "name": "invalid.illegal.type.jsdoc"
1454
1449
  },
1455
1450
  {
1456
- "begin": "\\G({)",
1451
+ "begin": "\\G(\\{)",
1457
1452
  "beginCaptures": {
1458
1453
  "0": {
1459
1454
  "name": "entity.name.type.instance.jsdoc"
@@ -1483,15 +1478,15 @@
1483
1478
  "keywords": {
1484
1479
  "patterns": [
1485
1480
  {
1486
- "match": "(if|elif|else|unless|switch|when|then|do|import|export|for own|for|while|until|return|yield|try|catch|await|rescue|finally|throw|as|continue|break|extend|augment)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1481
+ "match": "(if|elif|else|unless|switch|when|then|do|import|export|for own|for|while|until|return|yield|try|catch|await|rescue|finally|throw|as|continue|break|extend|augment)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1487
1482
  "name": "keyword.control.imba"
1488
1483
  },
1489
1484
  {
1490
- "match": "(?<=export)\\s+(default)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1485
+ "match": "(?<=export)\\s+(default)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1491
1486
  "name": "keyword.control.imba"
1492
1487
  },
1493
1488
  {
1494
- "match": "(?<=import)\\s+(type)(?=\\s+[\\w\\{\\$\\_])",
1489
+ "match": "(?<=import)\\s+(type)(?=\\s+[\\w{$_])",
1495
1490
  "name": "keyword.control.imba"
1496
1491
  },
1497
1492
  {
@@ -1499,27 +1494,27 @@
1499
1494
  "name": "keyword.control.imba"
1500
1495
  },
1501
1496
  {
1502
- "match": "(?<=[\\*\\}\\w\\$])\\s+(from)(?=\\s+[\\\"\\'])",
1497
+ "match": "(?<=[*}\\w$])\\s+(from)(?=\\s+[\"'])",
1503
1498
  "name": "keyword.control.imba"
1504
1499
  },
1505
1500
  {
1506
- "match": "(def|get|set)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1501
+ "match": "(def|get|set)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1507
1502
  "name": "storage.type.function.imba"
1508
1503
  },
1509
1504
  {
1510
- "match": "(protected|private)\\s+(?=def|get|set)",
1505
+ "match": "(pr(?:otected|ivate))\\s+(?=def|get|set)",
1511
1506
  "name": "keyword.control.imba"
1512
1507
  },
1513
1508
  {
1514
- "match": "(tag|class|struct|mixin|interface)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1509
+ "match": "(tag|class|struct|mixin|interface)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1515
1510
  "name": "storage.type.class.imba"
1516
1511
  },
1517
1512
  {
1518
- "match": "(let|const|constructor)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1513
+ "match": "(let|const|constructor)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1519
1514
  "name": "storage.type.imba"
1520
1515
  },
1521
1516
  {
1522
- "match": "(prop|attr)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1517
+ "match": "(prop|attr)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1523
1518
  "name": "storage.type.imba"
1524
1519
  },
1525
1520
  {
@@ -1534,15 +1529,15 @@
1534
1529
  "include": "#ops"
1535
1530
  },
1536
1531
  {
1537
- "match": "(=|\\|\\|=|\\?\\?=|\\&\\&=|\\+=|\\-=|\\*=|\\^=|\\%=)",
1532
+ "match": "(=|\\|\\|=|\\?\\?=|&&=|\\+=|-=|\\*=|\\^=|%=)",
1538
1533
  "name": "keyword.operator.assignment.imba"
1539
1534
  },
1540
1535
  {
1541
- "match": "(\\>\\=?|\\<\\=?)",
1536
+ "match": "(>=?|<=?)",
1542
1537
  "name": "keyword.operator.imba"
1543
1538
  },
1544
1539
  {
1545
- "match": "(of|delete|\\!?isa|typeof|\\!?in|new|\\!?is|isnt)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1540
+ "match": "(of|delete|!?isa|typeof|!?in|new|!?is|isnt)(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1546
1541
  "name": "keyword.operator.imba"
1547
1542
  }
1548
1543
  ]
@@ -1588,13 +1583,13 @@
1588
1583
  ]
1589
1584
  },
1590
1585
  "mixin-css-selector": {
1591
- "begin": "(\\%[\\w\\-]+)",
1586
+ "begin": "(%[\\w\\-]+)",
1592
1587
  "beginCaptures": {
1593
1588
  "1": {
1594
1589
  "name": "entity.other.attribute-name.mixin.css"
1595
1590
  }
1596
1591
  },
1597
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
1592
+ "end": "(\\s*(?=[\\^@.%\\w$!\\-]+\\s*[:=][^:])|\\s*$|(?=\\s+#\\s))",
1598
1593
  "endCaptures": {
1599
1594
  "0": {
1600
1595
  "name": "punctuation.separator.sel-properties.css"
@@ -1608,8 +1603,8 @@
1608
1603
  ]
1609
1604
  },
1610
1605
  "mixin-css-selector-after": {
1611
- "begin": "(?<=%[\\w\\-]+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",
1612
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
1606
+ "begin": "(?<=%[\\w\\-]+)(?![\\^@.%\\w$!\\-]+\\s*[:=][^:])",
1607
+ "end": "(\\s*(?=[\\^@.%\\w$!\\-]+\\s*[:=][^:])|\\s*$|(?=\\s+#\\s))",
1613
1608
  "endCaptures": {
1614
1609
  "0": {
1615
1610
  "name": "punctuation.separator.sel-properties.css"
@@ -1623,7 +1618,7 @@
1623
1618
  ]
1624
1619
  },
1625
1620
  "mixin-declaration": {
1626
- "begin": "^(\\t*)(\\%[\\w\\-]+)",
1621
+ "begin": "^(\\t*)(%[\\w\\-]+)",
1627
1622
  "beginCaptures": {
1628
1623
  "2": {
1629
1624
  "name": "entity.other.attribute-name.mixin.css"
@@ -1647,8 +1642,8 @@
1647
1642
  ]
1648
1643
  },
1649
1644
  "nested-css-selector": {
1650
- "begin": "(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",
1651
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
1645
+ "begin": "(^\\t+)(?![\\^@.%\\w$!\\-]+\\s*[:=][^:])",
1646
+ "end": "(\\s*(?=[\\^@.%\\w$!\\-]+\\s*[:=][^:])|\\s*$|(?=\\s+#\\s))",
1652
1647
  "endCaptures": {
1653
1648
  "0": {
1654
1649
  "name": "punctuation.separator.sel-properties.css"
@@ -1662,7 +1657,7 @@
1662
1657
  ]
1663
1658
  },
1664
1659
  "nested-style-declaration": {
1665
- "begin": "^(\\t+)(?=[\\n^]*\\&)",
1660
+ "begin": "^(\\t+)(?=[\\n\\^]*&)",
1666
1661
  "end": "^(?!(\\1\\t|\\s*$))",
1667
1662
  "name": "meta.style.imba",
1668
1663
  "patterns": [
@@ -1675,7 +1670,7 @@
1675
1670
  ]
1676
1671
  },
1677
1672
  "null-literal": {
1678
- "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1673
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1679
1674
  "name": "constant.language.null.imba"
1680
1675
  },
1681
1676
  "number-with-unit-literal": {
@@ -1689,7 +1684,7 @@
1689
1684
  "name": "keyword.other.unit.imba"
1690
1685
  }
1691
1686
  },
1692
- "match": "([0-9]+)([a-z]+|\\%)"
1687
+ "match": "([0-9]+)([a-z]+|%)"
1693
1688
  },
1694
1689
  {
1695
1690
  "captures": {
@@ -1700,7 +1695,7 @@
1700
1695
  "name": "keyword.other.unit.imba"
1701
1696
  }
1702
1697
  },
1703
- "match": "([0-9]*\\.[0-9]+(?:[eE][\\-+]?[0-9]+)?)([a-z]+|\\%)"
1698
+ "match": "([0-9]*\\.[0-9]+(?:[eE][\\-+]?[0-9]+)?)([a-z]+|%)"
1704
1699
  }
1705
1700
  ]
1706
1701
  },
@@ -1712,7 +1707,7 @@
1712
1707
  "name": "storage.type.numeric.bigint.imba"
1713
1708
  }
1714
1709
  },
1715
- "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",
1710
+ "match": "\\b(?<!\\$)0[xX]\\h[_\\h]*(n)?\\b(?!\\$)",
1716
1711
  "name": "constant.numeric.hex.imba"
1717
1712
  },
1718
1713
  {
@@ -1721,7 +1716,7 @@
1721
1716
  "name": "storage.type.numeric.bigint.imba"
1722
1717
  }
1723
1718
  },
1724
- "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",
1719
+ "match": "\\b(?<!\\$)0[bB][01][01_]*(n)?\\b(?!\\$)",
1725
1720
  "name": "constant.numeric.binary.imba"
1726
1721
  },
1727
1722
  {
@@ -1730,7 +1725,7 @@
1730
1725
  "name": "storage.type.numeric.bigint.imba"
1731
1726
  }
1732
1727
  },
1733
- "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",
1728
+ "match": "\\b(?<!\\$)0[oO]?[0-7][0-7_]*(n)?\\b(?!\\$)",
1734
1729
  "name": "constant.numeric.octal.imba"
1735
1730
  },
1736
1731
  {
@@ -1781,18 +1776,18 @@
1781
1776
  "name": "storage.type.numeric.bigint.imba"
1782
1777
  }
1783
1778
  },
1784
- "match": "(?<!\\$)(?:(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(n)?\\b))(?!\\$)"
1779
+ "match": "(?<!\\$)(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(\\.)[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\B(\\.)[0-9][0-9_]*[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(\\.)(n)?\\B|\\B(\\.)[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(n)?\\b)(?!\\$)"
1785
1780
  }
1786
1781
  ]
1787
1782
  },
1788
1783
  "numericConstant-literal": {
1789
1784
  "patterns": [
1790
1785
  {
1791
- "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1786
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1792
1787
  "name": "constant.language.nan.imba"
1793
1788
  },
1794
1789
  {
1795
- "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1790
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1796
1791
  "name": "constant.language.infinity.imba"
1797
1792
  }
1798
1793
  ]
@@ -1800,7 +1795,7 @@
1800
1795
  "object-keys": {
1801
1796
  "patterns": [
1802
1797
  {
1803
- "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\:",
1798
+ "match": "[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?:",
1804
1799
  "name": "meta.object-literal.key"
1805
1800
  }
1806
1801
  ]
@@ -1812,11 +1807,11 @@
1812
1807
  "name": "keyword.operator.spread.imba"
1813
1808
  },
1814
1809
  {
1815
- "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=|\\?=|\\?\\?=|=\\?",
1810
+ "match": "\\*=|(?<!\\()/=|%=|\\+=|-=|\\?=|\\?\\?=|=\\?",
1816
1811
  "name": "keyword.operator.assignment.compound.imba"
1817
1812
  },
1818
1813
  {
1819
- "match": "\\^=\\?|\\|=\\?|\\~=\\?|\\&=|\\^=|<<=|>>=|>>>=|\\|=",
1814
+ "match": "\\^=\\?|\\|=\\?|~=\\?|&=|\\^=|<<=|>>=|>>>=|\\|=",
1820
1815
  "name": "keyword.operator.assignment.compound.bitwise.imba"
1821
1816
  },
1822
1817
  {
@@ -1828,7 +1823,7 @@
1828
1823
  "name": "keyword.operator.comparison.imba"
1829
1824
  },
1830
1825
  {
1831
- "match": "<=|>=|<>|<|>",
1826
+ "match": "<=|>=|<>|[<>]",
1832
1827
  "name": "keyword.operator.relational.imba"
1833
1828
  },
1834
1829
  {
@@ -1840,10 +1835,10 @@
1840
1835
  "name": "keyword.operator.arithmetic.imba"
1841
1836
  }
1842
1837
  },
1843
- "match": "(\\!)\\s*(/)(?![/*])"
1838
+ "match": "(!)\\s*(/)(?![/*])"
1844
1839
  },
1845
1840
  {
1846
- "match": "\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|\\@\\b(?=\\s|$)",
1841
+ "match": "!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|@\\b(?=\\s|$)",
1847
1842
  "name": "keyword.operator.logical.imba"
1848
1843
  },
1849
1844
  {
@@ -1851,11 +1846,11 @@
1851
1846
  "name": "keyword.operator.bitwise.imba"
1852
1847
  },
1853
1848
  {
1854
- "match": "\\&|~|\\^|\\|",
1849
+ "match": "[\\&~\\^|]",
1855
1850
  "name": "keyword.operator.ternary.imba"
1856
1851
  },
1857
1852
  {
1858
- "match": "\\=",
1853
+ "match": "=",
1859
1854
  "name": "keyword.operator.assignment.imba"
1860
1855
  },
1861
1856
  {
@@ -1867,7 +1862,7 @@
1867
1862
  "name": "keyword.operator.increment.imba"
1868
1863
  },
1869
1864
  {
1870
- "match": "%|\\*|/|-|\\+",
1865
+ "match": "[%*/\\-+]",
1871
1866
  "name": "keyword.operator.arithmetic.imba"
1872
1867
  }
1873
1868
  ]
@@ -1896,18 +1891,18 @@
1896
1891
  "name": "variable.other.property.imba"
1897
1892
  }
1898
1893
  },
1899
- "match": "(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"
1894
+ "match": "(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)"
1900
1895
  }
1901
1896
  ]
1902
1897
  },
1903
1898
  "plain-identifiers": {
1904
1899
  "patterns": [
1905
1900
  {
1906
- "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",
1901
+ "match": "(\\p{upper}[_$\\d[:upper:]]*)(?![_$[:alnum:]])",
1907
1902
  "name": "variable.other.constant.imba"
1908
1903
  },
1909
1904
  {
1910
- "match": "[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?",
1905
+ "match": "\\p{upper}[_$[:alnum:]]*(?:-[_$[:alnum:]]+)*!?",
1911
1906
  "name": "variable.other.class.imba"
1912
1907
  },
1913
1908
  {
@@ -1915,27 +1910,27 @@
1915
1910
  "name": "variable.special.imba"
1916
1911
  },
1917
1912
  {
1918
- "match": "\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1913
+ "match": "\\$[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
1919
1914
  "name": "variable.other.internal.imba"
1920
1915
  },
1921
1916
  {
1922
- "match": "\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1917
+ "match": "@@+[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
1923
1918
  "name": "variable.other.symbol.imba"
1924
1919
  },
1925
1920
  {
1926
- "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1921
+ "match": "[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
1927
1922
  "name": "variable.other.readwrite.imba"
1928
1923
  },
1929
1924
  {
1930
- "match": "\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1925
+ "match": "@[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
1931
1926
  "name": "variable.other.instance.imba"
1932
1927
  },
1933
1928
  {
1934
- "match": "\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1929
+ "match": "#+[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
1935
1930
  "name": "variable.other.private.imba"
1936
1931
  },
1937
1932
  {
1938
- "match": "\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1933
+ "match": ":[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
1939
1934
  "name": "string.symbol.imba"
1940
1935
  }
1941
1936
  ]
@@ -1949,7 +1944,7 @@
1949
1944
  "name": "punctuation.accessor.optional.imba"
1950
1945
  }
1951
1946
  },
1952
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))"
1947
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*\\d|\\s+)))"
1953
1948
  },
1954
1949
  "punctuation-comma": {
1955
1950
  "match": ",",
@@ -1989,7 +1984,7 @@
1989
1984
  "name": "punctuation.definition.string.begin.imba"
1990
1985
  }
1991
1986
  },
1992
- "end": "(\\')|((?:[^\\\\\\n])$)",
1987
+ "end": "(')|([^\\\\\\n]$)",
1993
1988
  "endCaptures": {
1994
1989
  "1": {
1995
1990
  "name": "punctuation.definition.string.end.imba"
@@ -2028,7 +2023,7 @@
2028
2023
  "regex": {
2029
2024
  "patterns": [
2030
2025
  {
2031
- "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2026
+ "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^._$[:alnum:]]return|^case|[^._$[:alnum:]]case|=>|&&|\\|\\||\\*/)\\s*(/)(?![/*])(?=(?:[^/\\\\\\[()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+]|\\(([^)\\\\]|\\\\.)+\\))+/([gimsuy]+|(?![/*])|(?=/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2032
2027
  "beginCaptures": {
2033
2028
  "1": {
2034
2029
  "name": "punctuation.definition.string.begin.imba"
@@ -2051,7 +2046,7 @@
2051
2046
  ]
2052
2047
  },
2053
2048
  {
2054
- "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2049
+ "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*/)|((?<=^return|[^._$[:alnum:]]return|^case|[^._$[:alnum:]]case))\\s*)/(?![/*])(?=(?:[^/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+])+/([gimsuy]+|(?![/*])|(?=/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2055
2050
  "beginCaptures": {
2056
2051
  "0": {
2057
2052
  "name": "punctuation.definition.string.begin.imba"
@@ -2082,7 +2077,7 @@
2082
2077
  "name": "constant.other.character-class.regexp"
2083
2078
  },
2084
2079
  {
2085
- "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",
2080
+ "match": "\\\\([0-7]{3}|x\\h{2}|u\\h{4})",
2086
2081
  "name": "constant.character.numeric.regexp"
2087
2082
  },
2088
2083
  {
@@ -2098,7 +2093,7 @@
2098
2093
  "regexp": {
2099
2094
  "patterns": [
2100
2095
  {
2101
- "match": "\\\\[bB]|\\^|\\$",
2096
+ "match": "\\\\[bB]|[\\^$]",
2102
2097
  "name": "keyword.control.anchor.regexp"
2103
2098
  },
2104
2099
  {
@@ -2110,10 +2105,10 @@
2110
2105
  "name": "variable.other.regexp"
2111
2106
  }
2112
2107
  },
2113
- "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"
2108
+ "match": "\\\\(?:[1-9]\\d*|k<([a-zA-Z_$][\\w$]*)>)"
2114
2109
  },
2115
2110
  {
2116
- "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",
2111
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)}\\??",
2117
2112
  "name": "keyword.operator.quantifier.regexp"
2118
2113
  },
2119
2114
  {
@@ -2156,7 +2151,7 @@
2156
2151
  ]
2157
2152
  },
2158
2153
  {
2159
- "begin": "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",
2154
+ "begin": "\\((?:(\\?:)|\\?<([a-zA-Z_$][\\w$]*)>)?",
2160
2155
  "beginCaptures": {
2161
2156
  "0": {
2162
2157
  "name": "punctuation.definition.group.regexp"
@@ -2191,7 +2186,7 @@
2191
2186
  "name": "keyword.operator.negation.regexp"
2192
2187
  }
2193
2188
  },
2194
- "end": "(\\])",
2189
+ "end": "(])",
2195
2190
  "endCaptures": {
2196
2191
  "1": {
2197
2192
  "name": "punctuation.definition.character-class.regexp"
@@ -2220,7 +2215,7 @@
2220
2215
  "name": "constant.character.escape.backslash.regexp"
2221
2216
  }
2222
2217
  },
2223
- "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
2218
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x\\h{2}|u\\h{4}))|(\\\\c[A-Z])|(\\\\.))-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x\\h{2}|u\\h{4}))|(\\\\c[A-Z])|(\\\\.))",
2224
2219
  "name": "constant.other.character-class.range.regexp"
2225
2220
  },
2226
2221
  {
@@ -2263,7 +2258,7 @@
2263
2258
  ]
2264
2259
  },
2265
2260
  "single-line-comment-consuming-line-ending": {
2266
- "begin": "(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",
2261
+ "begin": "(^[ \\t]+)?((//|#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",
2267
2262
  "beginCaptures": {
2268
2263
  "1": {
2269
2264
  "name": "punctuation.whitespace.comment.leading.imba"
@@ -2291,7 +2286,7 @@
2291
2286
  "name": "meta.brace.square.imba"
2292
2287
  }
2293
2288
  },
2294
- "end": "\\]",
2289
+ "end": "]",
2295
2290
  "endCaptures": {
2296
2291
  "0": {
2297
2292
  "name": "meta.brace.square.imba"
@@ -2326,7 +2321,7 @@
2326
2321
  ]
2327
2322
  },
2328
2323
  "string-character-escape": {
2329
- "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",
2324
+ "match": "\\\\(x\\h{2}|u\\h{4}|u\\{\\h+}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",
2330
2325
  "name": "constant.character.escape.imba"
2331
2326
  },
2332
2327
  "style-declaration": {
@@ -2373,15 +2368,15 @@
2373
2368
  "match": "(\\b[0-9][0-9_]*)(\\w+|%)?"
2374
2369
  },
2375
2370
  {
2376
- "match": "--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
2371
+ "match": "--[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
2377
2372
  "name": "support.constant.property-value.var.css"
2378
2373
  },
2379
2374
  {
2380
- "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",
2375
+ "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w\\-])",
2381
2376
  "name": "support.constant.property-value.size.css"
2382
2377
  },
2383
2378
  {
2384
- "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
2379
+ "match": "[_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?",
2385
2380
  "name": "support.constant.property-value.css"
2386
2381
  },
2387
2382
  {
@@ -2404,7 +2399,7 @@
2404
2399
  "style-property": {
2405
2400
  "patterns": [
2406
2401
  {
2407
- "begin": "(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",
2402
+ "begin": "(?=[\\^@.%\\w$!\\-]+\\s*[:=])",
2408
2403
  "beginCaptures": {
2409
2404
  "1": {
2410
2405
  "name": "support.function.calc.css"
@@ -2413,7 +2408,7 @@
2413
2408
  "name": "punctuation.section.function.begin.bracket.round.css"
2414
2409
  }
2415
2410
  },
2416
- "end": "\\s*[\\:\\=]",
2411
+ "end": "\\s*[:=]",
2417
2412
  "endCaptures": {
2418
2413
  "0": {
2419
2414
  "name": "punctuation.separator.key-value.css"
@@ -2422,35 +2417,35 @@
2422
2417
  "name": "meta.property-name.css",
2423
2418
  "patterns": [
2424
2419
  {
2425
- "match": "(?:--|\\$)[\\w\\-\\$]+",
2420
+ "match": "(?:--|\\$)[\\w\\-$]+",
2426
2421
  "name": "support.type.property-name.variable.css"
2427
2422
  },
2428
2423
  {
2429
- "match": "\\@[\\!\\<\\>]?[0-9]+",
2424
+ "match": "@[!<>]?[0-9]+",
2430
2425
  "name": "support.type.property-name.modifier.breakpoint.css"
2431
2426
  },
2432
2427
  {
2433
- "match": "\\^?\\@+[\\w\\-\\$]+",
2428
+ "match": "\\^?@+[\\w\\-$]+",
2434
2429
  "name": "support.type.property-name.modifier.css"
2435
2430
  },
2436
2431
  {
2437
- "match": "\\^?\\.+[\\w\\-\\$]+",
2432
+ "match": "\\^?\\.+[\\w\\-$]+",
2438
2433
  "name": "support.type.property-name.modifier.flag.css"
2439
2434
  },
2440
2435
  {
2441
- "match": "\\^?\\%+[\\w\\-\\$]+",
2436
+ "match": "\\^?%+[\\w\\-$]+",
2442
2437
  "name": "support.type.property-name.modifier.state.css"
2443
2438
  },
2444
2439
  {
2445
- "match": "\\.\\.[\\w\\-\\$]+|\\^+[\\.\\@\\%][\\w\\-\\$]+",
2440
+ "match": "\\.\\.[\\w\\-$]+|\\^+[.@%][\\w\\-$]+",
2446
2441
  "name": "support.type.property-name.modifier.up.css"
2447
2442
  },
2448
2443
  {
2449
- "match": "\\.[\\w\\-\\$]+",
2444
+ "match": "\\.[\\w\\-$]+",
2450
2445
  "name": "support.type.property-name.modifier.is.css"
2451
2446
  },
2452
2447
  {
2453
- "match": "[\\w\\-\\$]+",
2448
+ "match": "[\\w\\-$]+",
2454
2449
  "name": "support.type.property-name.css"
2455
2450
  }
2456
2451
  ]
@@ -2462,24 +2457,24 @@
2462
2457
  "name": "variable.language.super.imba"
2463
2458
  },
2464
2459
  "tag-attr-name": {
2465
- "begin": "([\\w$_]+(?:\\-[\\w$_]+)*)",
2460
+ "begin": "([\\w$_]+(?:-[\\w$_]+)*)",
2466
2461
  "beginCaptures": {
2467
2462
  "0": {
2468
2463
  "name": "entity.other.attribute-name.imba"
2469
2464
  }
2470
2465
  },
2471
2466
  "contentName": "entity.other.attribute-name.imba",
2472
- "end": "(?=[\\s\\.\\[\\>\\=])"
2467
+ "end": "(?=[\\s.\\[>=])"
2473
2468
  },
2474
2469
  "tag-attr-value": {
2475
- "begin": "(\\=)",
2470
+ "begin": "(=)",
2476
2471
  "beginCaptures": {
2477
2472
  "0": {
2478
2473
  "name": "keyword.operator.tag.assignment"
2479
2474
  }
2480
2475
  },
2481
2476
  "contentName": "meta.tag.attribute-value.imba",
2482
- "end": "(?=>|\\s)",
2477
+ "end": "(?=[>\\s])",
2483
2478
  "patterns": [
2484
2479
  {
2485
2480
  "include": "#expr"
@@ -2489,7 +2484,7 @@
2489
2484
  "tag-classname": {
2490
2485
  "begin": "\\.",
2491
2486
  "contentName": "entity.other.attribute-name.class.css",
2492
- "end": "(?=[\\.\\[\\>\\s\\(\\=])",
2487
+ "end": "(?=[.\\[>\\s(=])",
2493
2488
  "patterns": [
2494
2489
  {
2495
2490
  "include": "#tag-interpolated-content"
@@ -2537,14 +2532,14 @@
2537
2532
  ]
2538
2533
  },
2539
2534
  "tag-event-handler": {
2540
- "begin": "(\\@[\\w$_]+(?:\\-[\\w$_]+)*)",
2535
+ "begin": "(@[\\w$_]+(?:-[\\w$_]+)*)",
2541
2536
  "beginCaptures": {
2542
2537
  "0": {
2543
2538
  "name": "entity.other.event-name.imba"
2544
2539
  }
2545
2540
  },
2546
2541
  "contentName": "entity.other.tag.event",
2547
- "end": "(?=[\\[\\>\\s\\=])",
2542
+ "end": "(?=[\\[>\\s=])",
2548
2543
  "patterns": [
2549
2544
  {
2550
2545
  "include": "#tag-interpolated-content"
@@ -2559,7 +2554,7 @@
2559
2554
  "name": "punctuation.section.tag"
2560
2555
  }
2561
2556
  },
2562
- "end": "(?=[\\.\\[\\>\\s\\=]|$)",
2557
+ "end": "(?=[.\\[>\\s=]|$)",
2563
2558
  "name": "entity.other.event-modifier.imba",
2564
2559
  "patterns": [
2565
2560
  {
@@ -2573,9 +2568,9 @@
2573
2568
  ]
2574
2569
  },
2575
2570
  "tag-expr-name": {
2576
- "begin": "(?<=<)(?=[\\w\\{])",
2571
+ "begin": "(?<=<)(?=[\\w{])",
2577
2572
  "contentName": "entity.name.tag.imba",
2578
- "end": "(?=[\\%\\$\\#\\.\\[\\>\\s\\(])",
2573
+ "end": "(?=[%$#.\\[>\\s(])",
2579
2574
  "patterns": [
2580
2575
  {
2581
2576
  "include": "#tag-interpolated-content"
@@ -2590,7 +2585,7 @@
2590
2585
  }
2591
2586
  },
2592
2587
  "contentName": "meta.embedded.line.imba",
2593
- "end": "\\]",
2588
+ "end": "]",
2594
2589
  "endCaptures": {
2595
2590
  "0": {
2596
2591
  "name": "punctuation.section.tag.imba"
@@ -2614,7 +2609,7 @@
2614
2609
  }
2615
2610
  },
2616
2611
  "contentName": "meta.embedded.line.imba",
2617
- "end": "\\}",
2612
+ "end": "}",
2618
2613
  "endCaptures": {
2619
2614
  "0": {
2620
2615
  "name": "punctuation.section.tag.imba"
@@ -2651,7 +2646,7 @@
2651
2646
  "tag-literal": {
2652
2647
  "patterns": [
2653
2648
  {
2654
- "begin": "(<)(?=[\\%\\~\\w\\{\\[\\.\\#\\$\\@\\(])",
2649
+ "begin": "(<)(?=[%~\\w{\\[.#$@(])",
2655
2650
  "beginCaptures": {
2656
2651
  "1": {
2657
2652
  "name": "punctuation.section.tag.open.imba"
@@ -2674,13 +2669,13 @@
2674
2669
  ]
2675
2670
  },
2676
2671
  "tag-mixin-name": {
2677
- "match": "(\\%[\\w\\-]+)",
2672
+ "match": "(%[\\w\\-]+)",
2678
2673
  "name": "entity.other.tag-mixin.imba"
2679
2674
  },
2680
2675
  "tag-name": {
2681
2676
  "patterns": [
2682
2677
  {
2683
- "match": "(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])",
2678
+ "match": "(?<=<)(self|global|slot)(?=[.\\[>\\s(])",
2684
2679
  "name": "entity.name.tag.special.imba"
2685
2680
  }
2686
2681
  ]
@@ -2692,16 +2687,16 @@
2692
2687
  "template": {
2693
2688
  "patterns": [
2694
2689
  {
2695
- "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)",
2690
+ "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)(\\{\\{typeArguments}}\\s*)?`)",
2696
2691
  "end": "(?=`)",
2697
2692
  "name": "string.template.imba",
2698
2693
  "patterns": [
2699
2694
  {
2700
- "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))",
2701
- "end": "(?=({{typeArguments}}\\s*)?`)",
2695
+ "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?))",
2696
+ "end": "(?=(\\{\\{typeArguments}}\\s*)?`)",
2702
2697
  "patterns": [
2703
2698
  {
2704
- "match": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)",
2699
+ "match": "([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)",
2705
2700
  "name": "entity.name.function.tagged-template.imba"
2706
2701
  }
2707
2702
  ]
@@ -2709,7 +2704,7 @@
2709
2704
  ]
2710
2705
  },
2711
2706
  {
2712
- "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)",
2707
+ "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)\\s*(?=(\\{\\{typeArguments}}\\s*)`)",
2713
2708
  "beginCaptures": {
2714
2709
  "1": {
2715
2710
  "name": "entity.name.function.tagged-template.imba"
@@ -2724,7 +2719,7 @@
2724
2719
  ]
2725
2720
  },
2726
2721
  {
2727
- "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)",
2722
+ "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:-[_$[:alnum:]]+)*[?!]?)?(`)",
2728
2723
  "beginCaptures": {
2729
2724
  "1": {
2730
2725
  "name": "entity.name.function.tagged-template.imba"
@@ -2759,7 +2754,7 @@
2759
2754
  }
2760
2755
  },
2761
2756
  "contentName": "meta.embedded.line.imba",
2762
- "end": "\\}",
2757
+ "end": "}",
2763
2758
  "endCaptures": {
2764
2759
  "0": {
2765
2760
  "name": "punctuation.definition.template-expression.end.imba"
@@ -2786,7 +2781,7 @@
2786
2781
  "type-brackets": {
2787
2782
  "patterns": [
2788
2783
  {
2789
- "begin": "{",
2784
+ "begin": "\\{",
2790
2785
  "end": "}",
2791
2786
  "patterns": [
2792
2787
  {
@@ -2796,7 +2791,7 @@
2796
2791
  },
2797
2792
  {
2798
2793
  "begin": "\\[",
2799
- "end": "\\]",
2794
+ "end": "]",
2800
2795
  "patterns": [
2801
2796
  {
2802
2797
  "include": "#type-brackets"
@@ -2804,8 +2799,8 @@
2804
2799
  ]
2805
2800
  },
2806
2801
  {
2807
- "begin": "\\<",
2808
- "end": "\\>",
2802
+ "begin": "<",
2803
+ "end": ">",
2809
2804
  "patterns": [
2810
2805
  {
2811
2806
  "include": "#type-brackets"
@@ -2830,7 +2825,7 @@
2830
2825
  "name": "meta.type.annotation.open.imba"
2831
2826
  }
2832
2827
  },
2833
- "end": "(?=[\\s\\]\\)\\,\\.\\=\\}]|$)",
2828
+ "end": "(?=[\\s\\]),.=}]|$)",
2834
2829
  "name": "meta.type.annotation.imba",
2835
2830
  "patterns": [
2836
2831
  {
@@ -2839,7 +2834,7 @@
2839
2834
  ]
2840
2835
  },
2841
2836
  "undefined-literal": {
2842
- "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
2837
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
2843
2838
  "name": "constant.language.undefined.imba"
2844
2839
  }
2845
2840
  },