tm-grammars 1.22.3 → 1.22.5

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 (201) hide show
  1. package/NOTICE +1 -1
  2. package/README.md +165 -165
  3. package/grammars/abap.json +29 -29
  4. package/grammars/actionscript-3.json +10 -10
  5. package/grammars/ada.json +6 -6
  6. package/grammars/angular-expression.json +29 -29
  7. package/grammars/angular-let-declaration.json +1 -1
  8. package/grammars/angular-ts.json +257 -257
  9. package/grammars/apex.json +72 -72
  10. package/grammars/apl.json +1 -1
  11. package/grammars/applescript.json +5 -5
  12. package/grammars/ara.json +3 -3
  13. package/grammars/asciidoc.json +4 -4
  14. package/grammars/asm.json +23 -23
  15. package/grammars/astro.json +3 -3
  16. package/grammars/awk.json +2 -2
  17. package/grammars/ballerina.json +94 -94
  18. package/grammars/bat.json +2 -2
  19. package/grammars/beancount.json +13 -13
  20. package/grammars/berry.json +6 -6
  21. package/grammars/bibtex.json +2 -2
  22. package/grammars/bicep.json +6 -6
  23. package/grammars/blade.json +73 -73
  24. package/grammars/c.json +11 -11
  25. package/grammars/cadence.json +6 -6
  26. package/grammars/cairo.json +5 -5
  27. package/grammars/clarity.json +16 -16
  28. package/grammars/clojure.json +14 -14
  29. package/grammars/cobol.json +33 -33
  30. package/grammars/codeql.json +6 -6
  31. package/grammars/coffee.json +17 -17
  32. package/grammars/common-lisp.json +48 -48
  33. package/grammars/coq.json +1 -1
  34. package/grammars/cpp-macro.json +112 -112
  35. package/grammars/cpp.json +187 -187
  36. package/grammars/crystal.json +22 -22
  37. package/grammars/csharp.json +110 -110
  38. package/grammars/css.json +23 -23
  39. package/grammars/cue.json +33 -33
  40. package/grammars/cypher.json +1 -1
  41. package/grammars/d.json +4 -4
  42. package/grammars/dart.json +6 -6
  43. package/grammars/dax.json +2 -2
  44. package/grammars/diff.json +1 -1
  45. package/grammars/dotenv.json +2 -2
  46. package/grammars/dream-maker.json +3 -3
  47. package/grammars/edge.json +1 -1
  48. package/grammars/elixir.json +15 -15
  49. package/grammars/elm.json +30 -30
  50. package/grammars/emacs-lisp.json +3 -3
  51. package/grammars/erlang.json +2 -2
  52. package/grammars/es-tag-css.json +1 -1
  53. package/grammars/es-tag-glsl.json +1 -1
  54. package/grammars/es-tag-html.json +1 -1
  55. package/grammars/es-tag-sql.json +1 -1
  56. package/grammars/es-tag-xml.json +1 -1
  57. package/grammars/fennel.json +3 -3
  58. package/grammars/fish.json +1 -1
  59. package/grammars/fluent.json +1 -1
  60. package/grammars/fortran-free-form.json +57 -57
  61. package/grammars/fsharp.json +62 -62
  62. package/grammars/gdresource.json +6 -6
  63. package/grammars/gdscript.json +8 -8
  64. package/grammars/gdshader.json +1 -1
  65. package/grammars/genie.json +1 -1
  66. package/grammars/git-commit.json +1 -1
  67. package/grammars/gleam.json +9 -9
  68. package/grammars/glimmer-js.json +6 -6
  69. package/grammars/glimmer-ts.json +6 -6
  70. package/grammars/gnuplot.json +6 -6
  71. package/grammars/go.json +41 -41
  72. package/grammars/graphql.json +1 -1
  73. package/grammars/groovy.json +12 -12
  74. package/grammars/hack.json +19 -19
  75. package/grammars/haml.json +4 -4
  76. package/grammars/handlebars.json +2 -2
  77. package/grammars/haskell.json +17 -17
  78. package/grammars/haxe.json +17 -17
  79. package/grammars/hcl.json +24 -24
  80. package/grammars/hjson.json +7 -7
  81. package/grammars/hlsl.json +8 -8
  82. package/grammars/html.json +3 -3
  83. package/grammars/http.json +2 -2
  84. package/grammars/hy.json +8 -8
  85. package/grammars/imba.json +98 -98
  86. package/grammars/java.json +14 -14
  87. package/grammars/javascript.json +264 -264
  88. package/grammars/jinja.json +8 -8
  89. package/grammars/jison.json +7 -7
  90. package/grammars/json.json +1 -1
  91. package/grammars/json5.json +1 -1
  92. package/grammars/jsonc.json +1 -1
  93. package/grammars/jsonl.json +1 -1
  94. package/grammars/jsonnet.json +1 -1
  95. package/grammars/jssm.json +2 -2
  96. package/grammars/jsx.json +264 -264
  97. package/grammars/julia.json +22 -22
  98. package/grammars/kotlin.json +2 -2
  99. package/grammars/kusto.json +1 -1
  100. package/grammars/latex.json +9 -9
  101. package/grammars/lean.json +3 -3
  102. package/grammars/less.json +13 -13
  103. package/grammars/liquid.json +5 -5
  104. package/grammars/log.json +5 -5
  105. package/grammars/logo.json +1 -1
  106. package/grammars/lua.json +25 -25
  107. package/grammars/luau.json +19 -19
  108. package/grammars/make.json +1 -1
  109. package/grammars/markdown.json +8 -8
  110. package/grammars/marko.json +6 -6
  111. package/grammars/matlab.json +12 -12
  112. package/grammars/mdc.json +3 -3
  113. package/grammars/mdx.json +25 -25
  114. package/grammars/mermaid.json +31 -31
  115. package/grammars/mipsasm.json +3 -3
  116. package/grammars/mojo.json +46 -46
  117. package/grammars/move.json +5 -5
  118. package/grammars/nextflow.json +1 -1
  119. package/grammars/nginx.json +10 -10
  120. package/grammars/nim.json +8 -8
  121. package/grammars/nix.json +34 -34
  122. package/grammars/nushell.json +3 -3
  123. package/grammars/objective-c.json +8 -8
  124. package/grammars/objective-cpp.json +14 -14
  125. package/grammars/ocaml.json +94 -94
  126. package/grammars/perl.json +34 -34
  127. package/grammars/php.json +87 -87
  128. package/grammars/polar.json +6 -6
  129. package/grammars/postcss.json +3 -3
  130. package/grammars/powerquery.json +1 -1
  131. package/grammars/powershell.json +5 -5
  132. package/grammars/prisma.json +3 -3
  133. package/grammars/prolog.json +6 -6
  134. package/grammars/proto.json +3 -3
  135. package/grammars/pug.json +4 -4
  136. package/grammars/puppet.json +11 -11
  137. package/grammars/purescript.json +5 -5
  138. package/grammars/python.json +44 -44
  139. package/grammars/qml.json +4 -4
  140. package/grammars/r.json +10 -10
  141. package/grammars/racket.json +19 -19
  142. package/grammars/raku.json +2 -2
  143. package/grammars/razor.json +24 -24
  144. package/grammars/reg.json +2 -2
  145. package/grammars/regexp.json +3 -3
  146. package/grammars/rel.json +4 -4
  147. package/grammars/riscv.json +5 -5
  148. package/grammars/rst.json +1 -1
  149. package/grammars/ruby.json +3 -3
  150. package/grammars/rust.json +1 -1
  151. package/grammars/sas.json +2 -2
  152. package/grammars/sass.json +5 -5
  153. package/grammars/scala.json +43 -43
  154. package/grammars/scheme.json +8 -8
  155. package/grammars/scss.json +7 -7
  156. package/grammars/shaderlab.json +3 -3
  157. package/grammars/shellscript.json +24 -24
  158. package/grammars/smalltalk.json +6 -6
  159. package/grammars/solidity.json +5 -5
  160. package/grammars/soy.json +1 -1
  161. package/grammars/sparql.json +1 -1
  162. package/grammars/splunk.json +3 -3
  163. package/grammars/sql.json +2 -2
  164. package/grammars/ssh-config.json +2 -2
  165. package/grammars/stata.json +33 -33
  166. package/grammars/stylus.json +6 -6
  167. package/grammars/svelte.json +8 -8
  168. package/grammars/swift.json +27 -27
  169. package/grammars/system-verilog.json +11 -11
  170. package/grammars/systemd.json +5 -5
  171. package/grammars/talonscript.json +1 -1
  172. package/grammars/tcl.json +2 -2
  173. package/grammars/templ.json +31 -2
  174. package/grammars/terraform.json +23 -23
  175. package/grammars/tex.json +3 -3
  176. package/grammars/toml.json +5 -5
  177. package/grammars/tsx.json +264 -264
  178. package/grammars/turtle.json +1 -1
  179. package/grammars/twig.json +23 -23
  180. package/grammars/typescript.json +257 -257
  181. package/grammars/typespec.json +30 -30
  182. package/grammars/typst.json +13 -13
  183. package/grammars/v.json +16 -16
  184. package/grammars/vala.json +1 -1
  185. package/grammars/vb.json +2 -2
  186. package/grammars/verilog.json +5 -5
  187. package/grammars/vhdl.json +14 -14
  188. package/grammars/viml.json +11 -11
  189. package/grammars/vue-html.json +2 -2
  190. package/grammars/vue.json +1 -1
  191. package/grammars/vyper.json +44 -44
  192. package/grammars/wasm.json +2 -2
  193. package/grammars/wgsl.json +3 -3
  194. package/grammars/wikitext.json +9 -9
  195. package/grammars/wolfram.json +331 -331
  196. package/grammars/xml.json +1 -1
  197. package/grammars/yaml.json +3 -3
  198. package/grammars/zenscript.json +2 -2
  199. package/grammars/zig.json +3 -3
  200. package/index.js +200 -200
  201. package/package.json +1 -1
@@ -89,11 +89,11 @@
89
89
  "boolean-literal": {
90
90
  "patterns": [
91
91
  {
92
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(true|yes)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
92
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(true|yes)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
93
93
  "name": "constant.language.boolean.true.imba"
94
94
  },
95
95
  {
96
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(false|no)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
96
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(false|no)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
97
97
  "name": "constant.language.boolean.false.imba"
98
98
  }
99
99
  ]
@@ -230,7 +230,7 @@
230
230
  "name": "support.constant.color.w3c-standard-color-name.css"
231
231
  },
232
232
  {
233
- "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-])",
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-])",
234
234
  "name": "support.constant.color.w3c-extended-color-name.css"
235
235
  },
236
236
  {
@@ -337,7 +337,7 @@
337
337
  ]
338
338
  },
339
339
  {
340
- "begin": "(?i)(?<![\\w-])((?:-webkit-|-moz-|-o-)?(?:repeating-)?(?:linear|radial|conic)-gradient)(\\()",
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(\\()",
341
341
  "beginCaptures": {
342
342
  "1": {
343
343
  "name": "support.function.gradient.css"
@@ -409,7 +409,7 @@
409
409
  ]
410
410
  },
411
411
  {
412
- "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)(\\()",
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(\\()",
413
413
  "beginCaptures": {
414
414
  "1": {
415
415
  "name": "support.function.misc.css"
@@ -494,7 +494,7 @@
494
494
  ]
495
495
  },
496
496
  {
497
- "begin": "(?i)(?<![\\w-])((?:translate|scale|rotate)(?:[XYZ]|3D)?|matrix(?:3D)?|skew[XY]?|perspective)(\\()",
497
+ "begin": "(?xi) (?<![\\w-])\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\n| matrix(?:3D)?\n| skew[XY]?\n| perspective\n)\n(\\()",
498
498
  "beginCaptures": {
499
499
  "1": {
500
500
  "name": "support.function.transform.css"
@@ -537,7 +537,7 @@
537
537
  "name": "keyword.other.unit.${2:/downcase}.css"
538
538
  }
539
539
  },
540
- "match": "(?i)(?<![\\w-])[-+]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:(?<=\\d)E[-+]?\\d+)?(?:(%)|(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)?",
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",
541
541
  "name": "constant.numeric.css"
542
542
  }
543
543
  ]
@@ -580,7 +580,7 @@
580
580
  "name": "invalid.illegal.colon.css"
581
581
  }
582
582
  },
583
- "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*[;}])",
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*[;}])",
584
584
  "name": "entity.other.attribute-name.pseudo-class.css"
585
585
  },
586
586
  "css-pseudo-elements": {
@@ -592,12 +592,12 @@
592
592
  "name": "punctuation.definition.entity.css"
593
593
  }
594
594
  },
595
- "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*[;}])",
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*[;}])",
596
596
  "name": "entity.other.attribute-name.pseudo-element.css"
597
597
  },
598
598
  "css-selector": {
599
- "begin": "(?<=css\\s)(?!(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])",
600
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])|\\s*$|(?=\\s+\\#\\s))",
599
+ "begin": "(?<=css\\s)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",
600
+ "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
601
601
  "endCaptures": {
602
602
  "0": {
603
603
  "name": "punctuation.separator.sel-properties.css"
@@ -734,7 +734,7 @@
734
734
  ]
735
735
  },
736
736
  "decorator": {
737
- "begin": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@(?!\\@)",
737
+ "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@(?!\\@)",
738
738
  "beginCaptures": {
739
739
  "0": {
740
740
  "name": "punctuation.decorator.imba"
@@ -1118,7 +1118,7 @@
1118
1118
  "name": "punctuation.definition.block.tag.jsdoc"
1119
1119
  }
1120
1120
  },
1121
- "match": "((@)(?:[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?))(?=\\s+)"
1121
+ "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)"
1122
1122
  }
1123
1123
  ]
1124
1124
  },
@@ -1245,13 +1245,13 @@
1245
1245
  ]
1246
1246
  },
1247
1247
  "generics-literal": {
1248
- "begin": "(?<=[\\w\\])])<",
1248
+ "begin": "(?<=[\\w\\]\\)])\\<",
1249
1249
  "beginCaptures": {
1250
1250
  "1": {
1251
1251
  "name": "meta.generics.annotation.open.imba"
1252
1252
  }
1253
1253
  },
1254
- "end": ">",
1254
+ "end": "\\>",
1255
1255
  "endCaptures": {
1256
1256
  "0": {
1257
1257
  "name": "meta.generics.annotation.close.imba"
@@ -1265,7 +1265,7 @@
1265
1265
  ]
1266
1266
  },
1267
1267
  "global-literal": {
1268
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(global)\\b(?!\\$)",
1268
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(global)\\b(?!\\$)",
1269
1269
  "name": "variable.language.global.imba"
1270
1270
  },
1271
1271
  "identifiers": {
@@ -1282,7 +1282,7 @@
1282
1282
  "name": "entity.name.function.property.imba"
1283
1283
  }
1284
1284
  },
1285
- "match": "(?:(?:(\\.)|(\\.\\.(?!\\s*[\\d]|\\s+)))\\s*)?([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)(?=\\s*={{functionOrArrowLookup}})"
1285
+ "match": "(?:(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*)?([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)(?=\\s*={{functionOrArrowLookup}})"
1286
1286
  },
1287
1287
  {
1288
1288
  "captures": {
@@ -1296,7 +1296,7 @@
1296
1296
  "name": "variable.other.constant.property.imba"
1297
1297
  }
1298
1298
  },
1299
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[\\d]|\\s+)))\\s*(\\#?[A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])"
1299
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"
1300
1300
  },
1301
1301
  {
1302
1302
  "captures": {
@@ -1310,7 +1310,7 @@
1310
1310
  "name": "variable.other.class.property.imba"
1311
1311
  }
1312
1312
  },
1313
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[\\d]|\\s+)))([A-Z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[!]?)"
1313
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))([[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?)"
1314
1314
  },
1315
1315
  {
1316
1316
  "captures": {
@@ -1324,7 +1324,7 @@
1324
1324
  "name": "variable.other.property.imba"
1325
1325
  }
1326
1326
  },
1327
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[\\d]|\\s+)))(\\#?[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)"
1327
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))(\\#?[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"
1328
1328
  },
1329
1329
  {
1330
1330
  "match": "(for own|for|if|unless|when)\\b",
@@ -1346,8 +1346,8 @@
1346
1346
  ]
1347
1347
  },
1348
1348
  "inline-css-selector": {
1349
- "begin": "(^\\t+)(?!(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=]))",
1350
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])|\\)|\\])|\\s*$)",
1349
+ "begin": "(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",
1350
+ "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])|\\)|\\])|\\s*$)",
1351
1351
  "endCaptures": {
1352
1352
  "0": {
1353
1353
  "name": "punctuation.separator.sel-properties.css"
@@ -1437,7 +1437,7 @@
1437
1437
  "invalid-indentation": {
1438
1438
  "patterns": [
1439
1439
  {
1440
- "match": "^[ ]+",
1440
+ "match": "^[\\ ]+",
1441
1441
  "name": "invalid.whitespace"
1442
1442
  },
1443
1443
  {
@@ -1483,15 +1483,15 @@
1483
1483
  "keywords": {
1484
1484
  "patterns": [
1485
1485
  {
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)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
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:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1487
1487
  "name": "keyword.control.imba"
1488
1488
  },
1489
1489
  {
1490
- "match": "(?<=export)\\s+(default)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1490
+ "match": "(?<=export)\\s+(default)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1491
1491
  "name": "keyword.control.imba"
1492
1492
  },
1493
1493
  {
1494
- "match": "(?<=import)\\s+(type)(?=\\s+[\\w{$_])",
1494
+ "match": "(?<=import)\\s+(type)(?=\\s+[\\w\\{\\$\\_])",
1495
1495
  "name": "keyword.control.imba"
1496
1496
  },
1497
1497
  {
@@ -1499,11 +1499,11 @@
1499
1499
  "name": "keyword.control.imba"
1500
1500
  },
1501
1501
  {
1502
- "match": "(?<=[\\*}\\w$])\\s+(from)(?=\\s+[\\\"\\'])",
1502
+ "match": "(?<=[\\*\\}\\w\\$])\\s+(from)(?=\\s+[\\\"\\'])",
1503
1503
  "name": "keyword.control.imba"
1504
1504
  },
1505
1505
  {
1506
- "match": "(def|get|set)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1506
+ "match": "(def|get|set)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1507
1507
  "name": "storage.type.function.imba"
1508
1508
  },
1509
1509
  {
@@ -1511,15 +1511,15 @@
1511
1511
  "name": "keyword.control.imba"
1512
1512
  },
1513
1513
  {
1514
- "match": "(tag|class|struct|mixin|interface)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1514
+ "match": "(tag|class|struct|mixin|interface)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1515
1515
  "name": "storage.type.class.imba"
1516
1516
  },
1517
1517
  {
1518
- "match": "(let|const|constructor)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1518
+ "match": "(let|const|constructor)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1519
1519
  "name": "storage.type.imba"
1520
1520
  },
1521
1521
  {
1522
- "match": "(prop|attr)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1522
+ "match": "(prop|attr)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1523
1523
  "name": "storage.type.imba"
1524
1524
  },
1525
1525
  {
@@ -1534,15 +1534,15 @@
1534
1534
  "include": "#ops"
1535
1535
  },
1536
1536
  {
1537
- "match": "(=|\\|\\|=|\\?\\?=|\\&\\&=|\\+=|-=|\\*=|\\^=|\\%=)",
1537
+ "match": "(=|\\|\\|=|\\?\\?=|\\&\\&=|\\+=|\\-=|\\*=|\\^=|\\%=)",
1538
1538
  "name": "keyword.operator.assignment.imba"
1539
1539
  },
1540
1540
  {
1541
- "match": "(>=?|<=?)",
1541
+ "match": "(\\>\\=?|\\<\\=?)",
1542
1542
  "name": "keyword.operator.imba"
1543
1543
  },
1544
1544
  {
1545
- "match": "(of|delete|!?isa|typeof|!?in|new|!?is|isnt)(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1545
+ "match": "(of|delete|\\!?isa|typeof|\\!?in|new|\\!?is|isnt)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1546
1546
  "name": "keyword.operator.imba"
1547
1547
  }
1548
1548
  ]
@@ -1594,7 +1594,7 @@
1594
1594
  "name": "entity.other.attribute-name.mixin.css"
1595
1595
  }
1596
1596
  },
1597
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])|\\s*$|(?=\\s+\\#\\s))",
1597
+ "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
1598
1598
  "endCaptures": {
1599
1599
  "0": {
1600
1600
  "name": "punctuation.separator.sel-properties.css"
@@ -1608,8 +1608,8 @@
1608
1608
  ]
1609
1609
  },
1610
1610
  "mixin-css-selector-after": {
1611
- "begin": "(?<=%[\\w\\-]+)(?!(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])",
1612
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])|\\s*$|(?=\\s+\\#\\s))",
1611
+ "begin": "(?<=%[\\w\\-]+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",
1612
+ "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
1613
1613
  "endCaptures": {
1614
1614
  "0": {
1615
1615
  "name": "punctuation.separator.sel-properties.css"
@@ -1647,8 +1647,8 @@
1647
1647
  ]
1648
1648
  },
1649
1649
  "nested-css-selector": {
1650
- "begin": "(^\\t+)(?!(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])",
1651
- "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=])[^:])|\\s*$|(?=\\s+\\#\\s))",
1650
+ "begin": "(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",
1651
+ "end": "(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",
1652
1652
  "endCaptures": {
1653
1653
  "0": {
1654
1654
  "name": "punctuation.separator.sel-properties.css"
@@ -1675,7 +1675,7 @@
1675
1675
  ]
1676
1676
  },
1677
1677
  "null-literal": {
1678
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1678
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1679
1679
  "name": "constant.language.null.imba"
1680
1680
  },
1681
1681
  "number-with-unit-literal": {
@@ -1689,7 +1689,7 @@
1689
1689
  "name": "keyword.other.unit.imba"
1690
1690
  }
1691
1691
  },
1692
- "match": "(\\d+)([a-z]+|\\%)"
1692
+ "match": "([0-9]+)([a-z]+|\\%)"
1693
1693
  },
1694
1694
  {
1695
1695
  "captures": {
@@ -1700,7 +1700,7 @@
1700
1700
  "name": "keyword.other.unit.imba"
1701
1701
  }
1702
1702
  },
1703
- "match": "(\\d*\\.\\d+(?:[eE][\\-+]?\\d+)?)([a-z]+|\\%)"
1703
+ "match": "([0-9]*\\.[0-9]+(?:[eE][\\-+]?[0-9]+)?)([a-z]+|\\%)"
1704
1704
  }
1705
1705
  ]
1706
1706
  },
@@ -1781,18 +1781,18 @@
1781
1781
  "name": "storage.type.numeric.bigint.imba"
1782
1782
  }
1783
1783
  },
1784
- "match": "(?<!\\$)(?:(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\B(\\.)\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*[eE][+-]?\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)\\d[0-9_]*(n)?\\b)|(?:\\b\\d[0-9_]*(n)?\\b))(?!\\$)"
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))(?!\\$)"
1785
1785
  }
1786
1786
  ]
1787
1787
  },
1788
1788
  "numericConstant-literal": {
1789
1789
  "patterns": [
1790
1790
  {
1791
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1791
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1792
1792
  "name": "constant.language.nan.imba"
1793
1793
  },
1794
1794
  {
1795
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
1795
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1796
1796
  "name": "constant.language.infinity.imba"
1797
1797
  }
1798
1798
  ]
@@ -1800,7 +1800,7 @@
1800
1800
  "object-keys": {
1801
1801
  "patterns": [
1802
1802
  {
1803
- "match": "[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?:",
1803
+ "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\:",
1804
1804
  "name": "meta.object-literal.key"
1805
1805
  }
1806
1806
  ]
@@ -1812,7 +1812,7 @@
1812
1812
  "name": "keyword.operator.spread.imba"
1813
1813
  },
1814
1814
  {
1815
- "match": "\\*=|(?<!\\()/=|%=|\\+=|-=|\\?=|\\?\\?=|=\\?",
1815
+ "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=|\\?=|\\?\\?=|=\\?",
1816
1816
  "name": "keyword.operator.assignment.compound.imba"
1817
1817
  },
1818
1818
  {
@@ -1840,10 +1840,10 @@
1840
1840
  "name": "keyword.operator.arithmetic.imba"
1841
1841
  }
1842
1842
  },
1843
- "match": "(!)\\s*(/)(?![/*])"
1843
+ "match": "(\\!)\\s*(/)(?![/*])"
1844
1844
  },
1845
1845
  {
1846
- "match": "!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|\\@\\b(?=\\s|$)",
1846
+ "match": "\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|\\@\\b(?=\\s|$)",
1847
1847
  "name": "keyword.operator.logical.imba"
1848
1848
  },
1849
1849
  {
@@ -1855,7 +1855,7 @@
1855
1855
  "name": "keyword.operator.ternary.imba"
1856
1856
  },
1857
1857
  {
1858
- "match": "=",
1858
+ "match": "\\=",
1859
1859
  "name": "keyword.operator.assignment.imba"
1860
1860
  },
1861
1861
  {
@@ -1896,18 +1896,18 @@
1896
1896
  "name": "variable.other.property.imba"
1897
1897
  }
1898
1898
  },
1899
- "match": "(\\.\\.?)([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)"
1899
+ "match": "(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"
1900
1900
  }
1901
1901
  ]
1902
1902
  },
1903
1903
  "plain-identifiers": {
1904
1904
  "patterns": [
1905
1905
  {
1906
- "match": "([A-Z][_$\\dA-Z]*)(?![_$0-9A-Za-z])",
1906
+ "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",
1907
1907
  "name": "variable.other.constant.imba"
1908
1908
  },
1909
1909
  {
1910
- "match": "[A-Z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[!]?",
1910
+ "match": "[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?",
1911
1911
  "name": "variable.other.class.imba"
1912
1912
  },
1913
1913
  {
@@ -1915,27 +1915,27 @@
1915
1915
  "name": "variable.special.imba"
1916
1916
  },
1917
1917
  {
1918
- "match": "\\$[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
1918
+ "match": "\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1919
1919
  "name": "variable.other.internal.imba"
1920
1920
  },
1921
1921
  {
1922
- "match": "\\@\\@+[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
1922
+ "match": "\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1923
1923
  "name": "variable.other.symbol.imba"
1924
1924
  },
1925
1925
  {
1926
- "match": "[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
1926
+ "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1927
1927
  "name": "variable.other.readwrite.imba"
1928
1928
  },
1929
1929
  {
1930
- "match": "\\@[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
1930
+ "match": "\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1931
1931
  "name": "variable.other.instance.imba"
1932
1932
  },
1933
1933
  {
1934
- "match": "\\#+[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
1934
+ "match": "\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1935
1935
  "name": "variable.other.private.imba"
1936
1936
  },
1937
1937
  {
1938
- "match": ":[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
1938
+ "match": "\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
1939
1939
  "name": "string.symbol.imba"
1940
1940
  }
1941
1941
  ]
@@ -1949,7 +1949,7 @@
1949
1949
  "name": "punctuation.accessor.optional.imba"
1950
1950
  }
1951
1951
  },
1952
- "match": "(?:(\\.)|(\\.\\.(?!\\s*[\\d]|\\s+)))"
1952
+ "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))"
1953
1953
  },
1954
1954
  "punctuation-comma": {
1955
1955
  "match": ",",
@@ -2028,7 +2028,7 @@
2028
2028
  "regex": {
2029
2029
  "patterns": [
2030
2030
  {
2031
- "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2031
+ "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2032
2032
  "beginCaptures": {
2033
2033
  "1": {
2034
2034
  "name": "punctuation.definition.string.begin.imba"
@@ -2051,7 +2051,7 @@
2051
2051
  ]
2052
2052
  },
2053
2053
  {
2054
- "begin": "((?<![_$0-9A-Za-z)\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$0-9A-Za-z]return|^case|[^\\._$0-9A-Za-z]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2054
+ "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
2055
2055
  "beginCaptures": {
2056
2056
  "0": {
2057
2057
  "name": "punctuation.definition.string.begin.imba"
@@ -2220,7 +2220,7 @@
2220
2220
  "name": "constant.character.escape.backslash.regexp"
2221
2221
  }
2222
2222
  },
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])|(\\\\.))",
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])|(\\\\.))",
2224
2224
  "name": "constant.other.character-class.range.regexp"
2225
2225
  },
2226
2226
  {
@@ -2370,10 +2370,10 @@
2370
2370
  "name": "keyword.other.unit.css"
2371
2371
  }
2372
2372
  },
2373
- "match": "(\\b\\d[0-9_]*)(\\w+|%)?"
2373
+ "match": "(\\b[0-9][0-9_]*)(\\w+|%)?"
2374
2374
  },
2375
2375
  {
2376
- "match": "--[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
2376
+ "match": "--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
2377
2377
  "name": "support.constant.property-value.var.css"
2378
2378
  },
2379
2379
  {
@@ -2381,7 +2381,7 @@
2381
2381
  "name": "support.constant.property-value.size.css"
2382
2382
  },
2383
2383
  {
2384
- "match": "[_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?",
2384
+ "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",
2385
2385
  "name": "support.constant.property-value.css"
2386
2386
  },
2387
2387
  {
@@ -2404,7 +2404,7 @@
2404
2404
  "style-property": {
2405
2405
  "patterns": [
2406
2406
  {
2407
- "begin": "(?=(?:[\\^\\@\\.\\%\\w$!\\-]+)(?:\\s*[:=]))",
2407
+ "begin": "(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",
2408
2408
  "beginCaptures": {
2409
2409
  "1": {
2410
2410
  "name": "support.function.calc.css"
@@ -2413,7 +2413,7 @@
2413
2413
  "name": "punctuation.section.function.begin.bracket.round.css"
2414
2414
  }
2415
2415
  },
2416
- "end": "\\s*[:=]",
2416
+ "end": "\\s*[\\:\\=]",
2417
2417
  "endCaptures": {
2418
2418
  "0": {
2419
2419
  "name": "punctuation.separator.key-value.css"
@@ -2422,35 +2422,35 @@
2422
2422
  "name": "meta.property-name.css",
2423
2423
  "patterns": [
2424
2424
  {
2425
- "match": "(?:--|\\$)[\\w\\-$]+",
2425
+ "match": "(?:--|\\$)[\\w\\-\\$]+",
2426
2426
  "name": "support.type.property-name.variable.css"
2427
2427
  },
2428
2428
  {
2429
- "match": "\\@[!<>]?\\d+",
2429
+ "match": "\\@[\\!\\<\\>]?[0-9]+",
2430
2430
  "name": "support.type.property-name.modifier.breakpoint.css"
2431
2431
  },
2432
2432
  {
2433
- "match": "\\^?\\@+[\\w\\-$]+",
2433
+ "match": "\\^?\\@+[\\w\\-\\$]+",
2434
2434
  "name": "support.type.property-name.modifier.css"
2435
2435
  },
2436
2436
  {
2437
- "match": "\\^?\\.+[\\w\\-$]+",
2437
+ "match": "\\^?\\.+[\\w\\-\\$]+",
2438
2438
  "name": "support.type.property-name.modifier.flag.css"
2439
2439
  },
2440
2440
  {
2441
- "match": "\\^?\\%+[\\w\\-$]+",
2441
+ "match": "\\^?\\%+[\\w\\-\\$]+",
2442
2442
  "name": "support.type.property-name.modifier.state.css"
2443
2443
  },
2444
2444
  {
2445
- "match": "\\.\\.[\\w\\-$]+|\\^+[\\.\\@\\%][\\w\\-$]+",
2445
+ "match": "\\.\\.[\\w\\-\\$]+|\\^+[\\.\\@\\%][\\w\\-\\$]+",
2446
2446
  "name": "support.type.property-name.modifier.up.css"
2447
2447
  },
2448
2448
  {
2449
- "match": "\\.[\\w\\-$]+",
2449
+ "match": "\\.[\\w\\-\\$]+",
2450
2450
  "name": "support.type.property-name.modifier.is.css"
2451
2451
  },
2452
2452
  {
2453
- "match": "[\\w\\-$]+",
2453
+ "match": "[\\w\\-\\$]+",
2454
2454
  "name": "support.type.property-name.css"
2455
2455
  }
2456
2456
  ]
@@ -2458,21 +2458,21 @@
2458
2458
  ]
2459
2459
  },
2460
2460
  "super-literal": {
2461
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",
2461
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",
2462
2462
  "name": "variable.language.super.imba"
2463
2463
  },
2464
2464
  "tag-attr-name": {
2465
- "begin": "([\\w$_]+(?:-[\\w$_]+)*)",
2465
+ "begin": "([\\w$_]+(?:\\-[\\w$_]+)*)",
2466
2466
  "beginCaptures": {
2467
2467
  "0": {
2468
2468
  "name": "entity.other.attribute-name.imba"
2469
2469
  }
2470
2470
  },
2471
2471
  "contentName": "entity.other.attribute-name.imba",
2472
- "end": "(?=[\\s\\.\\[>=])"
2472
+ "end": "(?=[\\s\\.\\[\\>\\=])"
2473
2473
  },
2474
2474
  "tag-attr-value": {
2475
- "begin": "(=)",
2475
+ "begin": "(\\=)",
2476
2476
  "beginCaptures": {
2477
2477
  "0": {
2478
2478
  "name": "keyword.operator.tag.assignment"
@@ -2489,7 +2489,7 @@
2489
2489
  "tag-classname": {
2490
2490
  "begin": "\\.",
2491
2491
  "contentName": "entity.other.attribute-name.class.css",
2492
- "end": "(?=[\\.\\[>\\s(=])",
2492
+ "end": "(?=[\\.\\[\\>\\s\\(\\=])",
2493
2493
  "patterns": [
2494
2494
  {
2495
2495
  "include": "#tag-interpolated-content"
@@ -2537,14 +2537,14 @@
2537
2537
  ]
2538
2538
  },
2539
2539
  "tag-event-handler": {
2540
- "begin": "(\\@[\\w$_]+(?:-[\\w$_]+)*)",
2540
+ "begin": "(\\@[\\w$_]+(?:\\-[\\w$_]+)*)",
2541
2541
  "beginCaptures": {
2542
2542
  "0": {
2543
2543
  "name": "entity.other.event-name.imba"
2544
2544
  }
2545
2545
  },
2546
2546
  "contentName": "entity.other.tag.event",
2547
- "end": "(?=[\\[>\\s=])",
2547
+ "end": "(?=[\\[\\>\\s\\=])",
2548
2548
  "patterns": [
2549
2549
  {
2550
2550
  "include": "#tag-interpolated-content"
@@ -2559,7 +2559,7 @@
2559
2559
  "name": "punctuation.section.tag"
2560
2560
  }
2561
2561
  },
2562
- "end": "(?=[\\.\\[>\\s=]|$)",
2562
+ "end": "(?=[\\.\\[\\>\\s\\=]|$)",
2563
2563
  "name": "entity.other.event-modifier.imba",
2564
2564
  "patterns": [
2565
2565
  {
@@ -2573,9 +2573,9 @@
2573
2573
  ]
2574
2574
  },
2575
2575
  "tag-expr-name": {
2576
- "begin": "(?<=<)(?=[\\w{])",
2576
+ "begin": "(?<=<)(?=[\\w\\{])",
2577
2577
  "contentName": "entity.name.tag.imba",
2578
- "end": "(?=[\\%$#\\.\\[>\\s(])",
2578
+ "end": "(?=[\\%\\$\\#\\.\\[\\>\\s\\(])",
2579
2579
  "patterns": [
2580
2580
  {
2581
2581
  "include": "#tag-interpolated-content"
@@ -2651,7 +2651,7 @@
2651
2651
  "tag-literal": {
2652
2652
  "patterns": [
2653
2653
  {
2654
- "begin": "(<)(?=[\\%\\~\\w{\\[\\.#$\\@(])",
2654
+ "begin": "(<)(?=[\\%\\~\\w\\{\\[\\.\\#\\$\\@\\(])",
2655
2655
  "beginCaptures": {
2656
2656
  "1": {
2657
2657
  "name": "punctuation.section.tag.open.imba"
@@ -2680,7 +2680,7 @@
2680
2680
  "tag-name": {
2681
2681
  "patterns": [
2682
2682
  {
2683
- "match": "(?<=<)(self|global|slot)(?=[\\.\\[>\\s(])",
2683
+ "match": "(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])",
2684
2684
  "name": "entity.name.tag.special.imba"
2685
2685
  }
2686
2686
  ]
@@ -2692,16 +2692,16 @@
2692
2692
  "template": {
2693
2693
  "patterns": [
2694
2694
  {
2695
- "begin": "(?=(([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)({{typeArguments}}\\s*)?`)",
2695
+ "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)",
2696
2696
  "end": "(?=`)",
2697
2697
  "name": "string.template.imba",
2698
2698
  "patterns": [
2699
2699
  {
2700
- "begin": "(?=(([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?))",
2700
+ "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))",
2701
2701
  "end": "(?=({{typeArguments}}\\s*)?`)",
2702
2702
  "patterns": [
2703
2703
  {
2704
- "match": "([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)",
2704
+ "match": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)",
2705
2705
  "name": "entity.name.function.tagged-template.imba"
2706
2706
  }
2707
2707
  ]
@@ -2709,7 +2709,7 @@
2709
2709
  ]
2710
2710
  },
2711
2711
  {
2712
- "begin": "([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)\\s*(?=({{typeArguments}}\\s*)`)",
2712
+ "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)",
2713
2713
  "beginCaptures": {
2714
2714
  "1": {
2715
2715
  "name": "entity.name.function.tagged-template.imba"
@@ -2724,7 +2724,7 @@
2724
2724
  ]
2725
2725
  },
2726
2726
  {
2727
- "begin": "([_$A-Za-z][_$0-9A-Za-z]*(?:-[_$0-9A-Za-z]+)*[?!]?)?(`)",
2727
+ "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)",
2728
2728
  "beginCaptures": {
2729
2729
  "1": {
2730
2730
  "name": "entity.name.function.tagged-template.imba"
@@ -2773,7 +2773,7 @@
2773
2773
  ]
2774
2774
  },
2775
2775
  "this-literal": {
2776
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|self)\\b(?!\\$)",
2776
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|self)\\b(?!\\$)",
2777
2777
  "name": "variable.language.this.imba"
2778
2778
  },
2779
2779
  "type-annotation": {
@@ -2804,8 +2804,8 @@
2804
2804
  ]
2805
2805
  },
2806
2806
  {
2807
- "begin": "<",
2808
- "end": ">",
2807
+ "begin": "\\<",
2808
+ "end": "\\>",
2809
2809
  "patterns": [
2810
2810
  {
2811
2811
  "include": "#type-brackets"
@@ -2830,7 +2830,7 @@
2830
2830
  "name": "meta.type.annotation.open.imba"
2831
2831
  }
2832
2832
  },
2833
- "end": "(?=[\\s\\])\\,\\.=}]|$)",
2833
+ "end": "(?=[\\s\\]\\)\\,\\.\\=\\}]|$)",
2834
2834
  "name": "meta.type.annotation.imba",
2835
2835
  "patterns": [
2836
2836
  {
@@ -2839,7 +2839,7 @@
2839
2839
  ]
2840
2840
  },
2841
2841
  "undefined-literal": {
2842
- "match": "(?<![_$0-9A-Za-z])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![?_\\-$0-9A-Za-z])(?:(?=\\.\\.\\.)|(?!\\.))",
2842
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
2843
2843
  "name": "constant.language.undefined.imba"
2844
2844
  }
2845
2845
  },