tm-grammars 1.23.3 → 1.23.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +129 -129
  2. package/grammars/abap.json +1 -1
  3. package/grammars/actionscript-3.json +2 -2
  4. package/grammars/ada.json +5 -5
  5. package/grammars/angular-expression.json +2 -2
  6. package/grammars/angular-ts.json +17 -17
  7. package/grammars/apex.json +5 -5
  8. package/grammars/apl.json +2 -2
  9. package/grammars/applescript.json +1 -1
  10. package/grammars/ara.json +1 -1
  11. package/grammars/asciidoc.json +5 -5
  12. package/grammars/asm.json +10 -10
  13. package/grammars/astro.json +3 -3
  14. package/grammars/awk.json +4 -4
  15. package/grammars/ballerina.json +5 -5
  16. package/grammars/bat.json +6 -6
  17. package/grammars/beancount.json +12 -12
  18. package/grammars/berry.json +2 -2
  19. package/grammars/bibtex.json +7 -7
  20. package/grammars/blade.json +11 -11
  21. package/grammars/c.json +9 -9
  22. package/grammars/cadence.json +1 -1
  23. package/grammars/cairo.json +2 -2
  24. package/grammars/clarity.json +17 -17
  25. package/grammars/clojure.json +9 -9
  26. package/grammars/cmake.json +2 -2
  27. package/grammars/cobol.json +67 -67
  28. package/grammars/coffee.json +14 -14
  29. package/grammars/common-lisp.json +14 -14
  30. package/grammars/cpp-macro.json +3 -3
  31. package/grammars/cpp.json +7 -7
  32. package/grammars/crystal.json +8 -8
  33. package/grammars/csharp.json +23 -23
  34. package/grammars/css.json +55 -55
  35. package/grammars/cue.json +4 -4
  36. package/grammars/cypher.json +1 -1
  37. package/grammars/d.json +3 -3
  38. package/grammars/dart.json +4 -4
  39. package/grammars/dax.json +1 -1
  40. package/grammars/desktop.json +1 -1
  41. package/grammars/dream-maker.json +3 -3
  42. package/grammars/elixir.json +3 -3
  43. package/grammars/elm.json +5 -5
  44. package/grammars/emacs-lisp.json +16 -16
  45. package/grammars/erb.json +2 -2
  46. package/grammars/erlang.json +2 -2
  47. package/grammars/fennel.json +1 -1
  48. package/grammars/fish.json +2 -2
  49. package/grammars/fluent.json +7 -7
  50. package/grammars/fortran-free-form.json +4 -4
  51. package/grammars/fsharp.json +43 -43
  52. package/grammars/gdresource.json +8 -8
  53. package/grammars/gdscript.json +9 -9
  54. package/grammars/gdshader.json +2 -2
  55. package/grammars/genie.json +1 -1
  56. package/grammars/gherkin.json +1 -1
  57. package/grammars/glimmer-js.json +11 -11
  58. package/grammars/glimmer-ts.json +11 -11
  59. package/grammars/gnuplot.json +3 -3
  60. package/grammars/go.json +4 -4
  61. package/grammars/graphql.json +1 -1
  62. package/grammars/groovy.json +2 -2
  63. package/grammars/hack.json +10 -10
  64. package/grammars/haml.json +4 -4
  65. package/grammars/handlebars.json +11 -11
  66. package/grammars/haskell.json +19 -19
  67. package/grammars/haxe.json +4 -4
  68. package/grammars/hcl.json +12 -12
  69. package/grammars/hjson.json +3 -3
  70. package/grammars/html.json +9 -9
  71. package/grammars/http.json +1 -1
  72. package/grammars/hy.json +7 -7
  73. package/grammars/imba.json +42 -42
  74. package/grammars/ini.json +1 -1
  75. package/grammars/java.json +10 -10
  76. package/grammars/javascript.json +26 -26
  77. package/grammars/jinja.json +1 -1
  78. package/grammars/jison.json +11 -11
  79. package/grammars/json.json +1 -1
  80. package/grammars/json5.json +2 -2
  81. package/grammars/jsonc.json +1 -1
  82. package/grammars/jsonl.json +1 -1
  83. package/grammars/jsonnet.json +4 -4
  84. package/grammars/jsx.json +26 -26
  85. package/grammars/julia.json +2 -2
  86. package/grammars/kotlin.json +2 -2
  87. package/grammars/kusto.json +4 -4
  88. package/grammars/latex.json +28 -28
  89. package/grammars/lean.json +1 -1
  90. package/grammars/less.json +43 -43
  91. package/grammars/liquid.json +4 -4
  92. package/grammars/llvm.json +6 -6
  93. package/grammars/log.json +4 -4
  94. package/grammars/logo.json +2 -2
  95. package/grammars/lua.json +16 -16
  96. package/grammars/luau.json +6 -6
  97. package/grammars/make.json +1 -1
  98. package/grammars/markdown.json +8 -8
  99. package/grammars/marko.json +5 -5
  100. package/grammars/matlab.json +10 -10
  101. package/grammars/mdc.json +4 -4
  102. package/grammars/mdx.json +14 -14
  103. package/grammars/mermaid.json +67 -67
  104. package/grammars/mojo.json +11 -11
  105. package/grammars/move.json +1 -1
  106. package/grammars/narrat.json +1 -1
  107. package/grammars/nim.json +2 -2
  108. package/grammars/nix.json +16 -16
  109. package/grammars/nushell.json +18 -18
  110. package/grammars/objective-c.json +17 -17
  111. package/grammars/objective-cpp.json +25 -25
  112. package/grammars/ocaml.json +97 -97
  113. package/grammars/pascal.json +1 -1
  114. package/grammars/perl.json +4 -4
  115. package/grammars/php.json +28 -28
  116. package/grammars/plsql.json +3 -3
  117. package/grammars/polar.json +2 -2
  118. package/grammars/postcss.json +14 -14
  119. package/grammars/powerquery.json +1 -1
  120. package/grammars/powershell.json +14 -14
  121. package/grammars/prisma.json +1 -1
  122. package/grammars/prolog.json +1 -1
  123. package/grammars/proto.json +1 -1
  124. package/grammars/pug.json +9 -9
  125. package/grammars/puppet.json +6 -6
  126. package/grammars/purescript.json +3 -3
  127. package/grammars/python.json +11 -11
  128. package/grammars/qss.json +1 -1
  129. package/grammars/r.json +10 -10
  130. package/grammars/racket.json +4 -4
  131. package/grammars/raku.json +2 -2
  132. package/grammars/rel.json +1 -1
  133. package/grammars/rst.json +23 -23
  134. package/grammars/ruby.json +39 -39
  135. package/grammars/rust.json +1 -1
  136. package/grammars/sas.json +3 -3
  137. package/grammars/sass.json +17 -17
  138. package/grammars/scala.json +40 -40
  139. package/grammars/scheme.json +5 -5
  140. package/grammars/scss.json +28 -28
  141. package/grammars/shellscript.json +17 -17
  142. package/grammars/solidity.json +1 -1
  143. package/grammars/sparql.json +1 -1
  144. package/grammars/sql.json +1 -1
  145. package/grammars/stata.json +7 -7
  146. package/grammars/stylus.json +26 -26
  147. package/grammars/svelte.json +3 -3
  148. package/grammars/swift.json +37 -37
  149. package/grammars/system-verilog.json +6 -6
  150. package/grammars/systemd.json +2 -2
  151. package/grammars/talonscript.json +2 -2
  152. package/grammars/tcl.json +2 -2
  153. package/grammars/templ.json +3 -3
  154. package/grammars/terraform.json +10 -10
  155. package/grammars/tex.json +1 -1
  156. package/grammars/toml.json +7 -7
  157. package/grammars/tsx.json +26 -26
  158. package/grammars/turtle.json +2 -2
  159. package/grammars/twig.json +1 -1
  160. package/grammars/typescript.json +17 -17
  161. package/grammars/typespec.json +1 -1
  162. package/grammars/typst.json +16 -16
  163. package/grammars/v.json +3 -3
  164. package/grammars/vala.json +1 -1
  165. package/grammars/vb.json +1 -1
  166. package/grammars/vhdl.json +5 -5
  167. package/grammars/vue-html.json +5 -5
  168. package/grammars/vue.json +28 -28
  169. package/grammars/vyper.json +11 -11
  170. package/grammars/wasm.json +10 -10
  171. package/grammars/wgsl.json +2 -2
  172. package/grammars/wikitext.json +6 -6
  173. package/grammars/wit.json +25 -25
  174. package/grammars/wolfram.json +32 -32
  175. package/grammars/xml.json +10 -10
  176. package/grammars/xsl.json +1 -1
  177. package/grammars/yaml.json +11 -11
  178. package/grammars/zenscript.json +1 -1
  179. package/grammars/zig.json +4 -4
  180. package/index.js +182 -182
  181. package/package.json +1 -1
@@ -119,7 +119,7 @@
119
119
  "name": "constant.language.commonlisp"
120
120
  },
121
121
  {
122
- "match": "(?<=^|[\\s(]|,@|,\\.|,)([+\\-]?[0-9]+(?:/[0-9]+)*|[\\-+]?[0-9]*\\.?[0-9]+([eE][\\-+]?[0-9]+)?|(#[bB])[01/+\\-]+|(#[oO])[0-7/+\\-]+|(#[xX])[/+\\-\\h]+|(#[0-9]+[rR]?)[0-9a-zA-Z/+\\-]+)(?=([\\s)]))",
122
+ "match": "(?<=^|[\\s(]|,@|,\\.|,)([+-]?[0-9]+(?:/[0-9]+)*|[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?|(#[bB])[01/+-]+|(#[oO])[0-7/+-]+|(#[xX])[/+\\-\\h]+|(#[0-9]+[rR]?)[0-9a-zA-Z/+-]+)(?=([\\s)]))",
123
123
  "name": "constant.numeric.commonlisp"
124
124
  },
125
125
  {
@@ -127,7 +127,7 @@
127
127
  "name": "variable.other.constant.dot.commonlisp"
128
128
  },
129
129
  {
130
- "match": "(?<=^|[\\s(]|,@|,\\.|,)([+\\-]?[0-9]*\\.[0-9]*(([esfdlESFDL])[+\\-]?[0-9]+)?|[+\\-]?[0-9]+(\\.[0-9]*)?([esfdlESFDL])[+\\-]?[0-9]+)(?=([\\s)]))",
130
+ "match": "(?<=^|[\\s(]|,@|,\\.|,)([+-]?[0-9]*\\.[0-9]*(([esfdlESFDL])[+-]?[0-9]+)?|[+-]?[0-9]+(\\.[0-9]*)?([esfdlESFDL])[+-]?[0-9]+)(?=([\\s)]))",
131
131
  "name": "constant.numeric.commonlisp"
132
132
  }
133
133
  ]
@@ -175,7 +175,7 @@
175
175
  ]
176
176
  }
177
177
  },
178
- "match": "(?i)(?<=^|[\\s(])(def(?:un|setf|method|macro|ine-symbol-macro|ine-setf-expander|ine-modify-macro|ine-method-combination|ine-compiler-macro|generic))\\s+(\\(\\s*([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+)\\s*((,(?:[@.]|))?)([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)|((,(?:[@.]|))?)([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?))(?=([\\s()]))"
178
+ "match": "(?i)(?<=^|[\\s(])(def(?:un|setf|method|macro|ine-symbol-macro|ine-setf-expander|ine-modify-macro|ine-method-combination|ine-compiler-macro|generic))\\s+(\\(\\s*([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+)\\s*((,(?:[@.]|))?)([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)|((,(?:[@.]|))?)([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?))(?=([\\s()]))"
179
179
  },
180
180
  {
181
181
  "captures": {
@@ -186,7 +186,7 @@
186
186
  "name": "entity.name.type.commonlisp"
187
187
  }
188
188
  },
189
- "match": "(?i)(?<=^|[\\s(])(def(?:type|package|ine-condition|class))\\s+([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
189
+ "match": "(?i)(?<=^|[\\s(])(def(?:type|package|ine-condition|class))\\s+([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
190
190
  },
191
191
  {
192
192
  "captures": {
@@ -205,7 +205,7 @@
205
205
  ]
206
206
  }
207
207
  },
208
- "match": "(?i)(?<=^|[\\s(])(defconstant)\\s+([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
208
+ "match": "(?i)(?<=^|[\\s(])(defconstant)\\s+([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
209
209
  },
210
210
  {
211
211
  "captures": {
@@ -224,7 +224,7 @@
224
224
  "name": "entity.name.type.commonlisp"
225
225
  }
226
226
  },
227
- "match": "(?i)(?<=^|[\\s(])(defstruct)\\s+\\(?\\s*([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
227
+ "match": "(?i)(?<=^|[\\s(])(defstruct)\\s+\\(?\\s*([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
228
228
  },
229
229
  {
230
230
  "captures": {
@@ -243,7 +243,7 @@
243
243
  ]
244
244
  }
245
245
  },
246
- "match": "(?i)(?<=^|[\\s(])(macrolet|labels|flet)\\s+\\(\\s*\\(\\s*([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
246
+ "match": "(?i)(?<=^|[\\s(])(macrolet|labels|flet)\\s+\\(\\s*\\(\\s*([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)(?=([\\s()]))"
247
247
  }
248
248
  ]
249
249
  },
@@ -280,7 +280,7 @@
280
280
  ]
281
281
  },
282
282
  "lambda-list": {
283
- "match": "(?i)(?<=^|[\\s(])&(?:[#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?|whole|rest|optional|key|environment|body|aux|allow-other-keys)(?=([\\s()]))",
283
+ "match": "(?i)(?<=^|[\\s(])&(?:[#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?|whole|rest|optional|key|environment|body|aux|allow-other-keys)(?=([\\s()]))",
284
284
  "name": "keyword.other.lambdalist.commonlisp"
285
285
  },
286
286
  "macro": {
@@ -310,7 +310,7 @@
310
310
  "name": "support.type.package.commonlisp"
311
311
  }
312
312
  },
313
- "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,)(([A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)|(#))(?=:(?::|))"
313
+ "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,)(([A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)|(#))(?=:(?::|))"
314
314
  }
315
315
  ]
316
316
  },
@@ -321,7 +321,7 @@
321
321
  "name": "variable.other.constant.singlequote.commonlisp"
322
322
  },
323
323
  {
324
- "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,):[#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?(?=([\\s()]))",
324
+ "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,):[#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?(?=([\\s()]))",
325
325
  "name": "entity.name.variable.commonlisp"
326
326
  },
327
327
  {
@@ -396,7 +396,7 @@
396
396
  "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,)(#)([0-9]+)(#)(?=.)"
397
397
  },
398
398
  {
399
- "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,)(#([+\\-]))(?=\\S)",
399
+ "match": "(?i)(?<=^|[\\s(]|,@|,\\.|,)(#([+-]))(?=\\S)",
400
400
  "name": "variable.other.constant.sharpsign.commonlisp"
401
401
  },
402
402
  {
@@ -472,7 +472,7 @@
472
472
  "name": "storage.type.function.formattedstring.commonlisp"
473
473
  }
474
474
  },
475
- "match": "(?i)(~)(((([+\\-]?[0-9]+)|('.)|[V#])*?(,)?)*?)((:@|@:|[:@])?)([()\\[\\];{}<>\\^])"
475
+ "match": "(?i)(~)(((([+-]?[0-9]+)|('.)|[V#])*?(,)?)*?)((:@|@:|[:@])?)([()\\[\\];{}<>^])"
476
476
  },
477
477
  {
478
478
  "captures": {
@@ -489,7 +489,7 @@
489
489
  "name": "entity.name.variable.commonlisp"
490
490
  }
491
491
  },
492
- "match": "(?i)(~)(((([+\\-]?[0-9]+)|('.)|[V#])*?(,)?)*?)((:@|@:|[:@])?)([ASDBOXRPCFEG$%\\&|~T*?_WI])"
492
+ "match": "(?i)(~)(((([+-]?[0-9]+)|('.)|[V#])*?(,)?)*?)((:@|@:|[:@])?)([ASDBOXRPCFEG$%\\&|~T*?_WI])"
493
493
  },
494
494
  {
495
495
  "captures": {
@@ -512,7 +512,7 @@
512
512
  "name": "entity.name.variable.commonlisp"
513
513
  }
514
514
  },
515
- "match": "(?i)(~)(((([+\\-]?[0-9]+)|('.)|[V#])*?(,)?)*?)((:@|@:|[:@])?)(/)([#:A-Za-z0-9+\\-*/@$%\\^\\&_=<>~!?\\[\\]{}.]+?)(/)"
515
+ "match": "(?i)(~)(((([+-]?[0-9]+)|('.)|[V#])*?(,)?)*?)((:@|@:|[:@])?)(/)([#:A-Za-z0-9+\\-*/@$%^\\&_=<>~!?\\[\\]{}.]+?)(/)"
516
516
  },
517
517
  {
518
518
  "match": "(~\\n)",
@@ -5172,7 +5172,7 @@
5172
5172
  ]
5173
5173
  },
5174
5174
  "operator_overload": {
5175
- "begin": "((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)?(?![\\w<:.]))(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?((?:__(?:cdecl|clrcall|stdcall|fastcall|thiscall|vectorcall))?)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(operator)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(?:(?:((?:delete\\[]|delete|new\\[]|<=>|<<=|new|>>=|->\\*|/=|%=|&=|>=|\\|=|\\+\\+|--|\\(\\)|\\[]|->|\\+\\+|<<|>>|--|<=|\\^=|==|!=|&&|\\|\\||\\+=|-=|\\*=|[,+\\-!~*\\&/%<>\\^|=]))|((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:\\[])?)))|(\"\")((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?=[<(])",
5175
+ "begin": "((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)?(?![\\w<:.]))(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?((?:__(?:cdecl|clrcall|stdcall|fastcall|thiscall|vectorcall))?)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(operator)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(?:(?:((?:delete\\[]|delete|new\\[]|<=>|<<=|new|>>=|->\\*|/=|%=|&=|>=|\\|=|\\+\\+|--|\\(\\)|\\[]|->|\\+\\+|<<|>>|--|<=|\\^=|==|!=|&&|\\|\\||\\+=|-=|\\*=|[,+\\-!~*\\&/%<>^|=]))|((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:\\[])?)))|(\"\")((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?=[<(])",
5176
5176
  "beginCaptures": {
5177
5177
  "0": {
5178
5178
  "name": "meta.head.function.definition.special.operator-overload.cpp"
@@ -6028,7 +6028,7 @@
6028
6028
  "name": "keyword.operator.logical.cpp"
6029
6029
  },
6030
6030
  {
6031
- "match": "[\\&|\\^~]",
6031
+ "match": "[\\&|^~]",
6032
6032
  "name": "keyword.operator.bitwise.cpp"
6033
6033
  },
6034
6034
  {
@@ -7231,7 +7231,7 @@
7231
7231
  "name": "invalid.illegal.delimiter-too-long"
7232
7232
  }
7233
7233
  },
7234
- "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)",
7234
+ "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*)|(_(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*))?|(?=(?<!\\\\)\\n)",
7235
7235
  "endCaptures": {
7236
7236
  "1": {
7237
7237
  "name": "punctuation.definition.string.end"
package/grammars/cpp.json CHANGED
@@ -2658,7 +2658,7 @@
2658
2658
  "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=\\h)'(?=\\h)))*)(?:(?<!')([eE])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)'(?=\\h))*))?((?:[uU]|[uU]ll?|[uU]LL?|ll?[uU]?|LL?[uU]?|[fF])(?!\\w))?$"
2659
2659
  },
2660
2660
  {
2661
- "match": "(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+\\-])+",
2661
+ "match": "(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+-])+",
2662
2662
  "name": "invalid.illegal.constant.numeric.cpp"
2663
2663
  }
2664
2664
  ]
@@ -2666,7 +2666,7 @@
2666
2666
  ]
2667
2667
  }
2668
2668
  },
2669
- "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+\\-])*"
2669
+ "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+-])*"
2670
2670
  },
2671
2671
  "decltype": {
2672
2672
  "begin": "((?<!\\w)decltype(?!\\w))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(\\()",
@@ -7017,7 +7017,7 @@
7017
7017
  "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=\\h)'(?=\\h)))*)(?:(?<!')([eE])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)'(?=\\h))*))?((?:[uU]|[uU]ll?|[uU]LL?|ll?[uU]?|LL?[uU]?|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)"
7018
7018
  },
7019
7019
  {
7020
- "match": "(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+\\-])+",
7020
+ "match": "(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+-])+",
7021
7021
  "name": "invalid.illegal.constant.numeric.cpp"
7022
7022
  }
7023
7023
  ]
@@ -7025,10 +7025,10 @@
7025
7025
  ]
7026
7026
  }
7027
7027
  },
7028
- "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+\\-])*"
7028
+ "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_.']|(?<=[eEpP])[+-])*"
7029
7029
  },
7030
7030
  "operator_overload": {
7031
- "begin": "((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)?(?![\\w<:.]))(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?((?:__(?:cdecl|clrcall|stdcall|fastcall|thiscall|vectorcall))?)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(operator)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(?:(?:((?:delete\\[]|delete|new\\[]|<=>|<<=|new|>>=|->\\*|/=|%=|&=|>=|\\|=|\\+\\+|--|\\(\\)|\\[]|->|\\+\\+|<<|>>|--|<=|\\^=|==|!=|&&|\\|\\||\\+=|-=|\\*=|[,+\\-!~*\\&/%<>\\^|=]))|((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:\\[])?)))|(\"\")((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?=[<(])",
7031
+ "begin": "((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?]]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*\\b((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)?(?![\\w<:.]))(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))?((?:__(?:cdecl|clrcall|stdcall|fastcall|thiscall|vectorcall))?)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(operator)((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:/\\*(?:[^*]++|\\*+(?!/))*+\\*/|\"(?:[^\"]*|\\\\\")\"|'(?:[^']*|\\\\')'|\\g<55>|(?:[^'\"<>/]|/[^*])++)*>)\\s*+)?::)*+)(?:(?:((?:delete\\[]|delete|new\\[]|<=>|<<=|new|>>=|->\\*|/=|%=|&=|>=|\\|=|\\+\\+|--|\\(\\)|\\[]|->|\\+\\+|<<|>>|--|<=|\\^=|==|!=|&&|\\|\\||\\+=|-=|\\*=|[,+\\-!~*\\&/%<>^|=]))|((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)(((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))?(?:[\\&*]((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z)))*[\\&*])?((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?:\\[])?)))|(\"\")((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*(?!\\w)))((?:(?:\\s*+(/\\*)((?:[^*]++|\\*+(?!/))*+(\\*/))\\s*+)+|\\s++|(?<=\\W)|(?=\\W)|^|\\n?$|\\A|\\Z))(?=[<(])",
7032
7032
  "beginCaptures": {
7033
7033
  "0": {
7034
7034
  "name": "meta.head.function.definition.special.operator-overload.cpp"
@@ -7884,7 +7884,7 @@
7884
7884
  "name": "keyword.operator.logical.cpp"
7885
7885
  },
7886
7886
  {
7887
- "match": "[\\&|\\^~]",
7887
+ "match": "[\\&|^~]",
7888
7888
  "name": "keyword.operator.bitwise.cpp"
7889
7889
  },
7890
7890
  {
@@ -13133,7 +13133,7 @@
13133
13133
  "name": "invalid.illegal.delimiter-too-long"
13134
13134
  }
13135
13135
  },
13136
- "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?",
13136
+ "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|\\\\(?:u\\h{4}|U\\h{8}))(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*)|(_(?:[a-zA-Z0-9_]|\\\\(?:u\\h{4}|U\\h{8}))*))?",
13137
13137
  "endCaptures": {
13138
13138
  "1": {
13139
13139
  "name": "punctuation.definition.string.end"
@@ -4,7 +4,7 @@
4
4
  "cr"
5
5
  ],
6
6
  "firstLineMatch": "^#!/.*\\bcrystal",
7
- "foldingStartMarker": "^(\\s*+(annotation|module|class|struct|union|enum|def(?!.*\\bend\\s*$)|unless|if|case|begin|for|while|until|^=begin|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\s(do|begin|case)|(?<!\\$)[\\-+=\\&|*/~%\\^<>]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\{(?![^}]*+})|\\[(?![^\\]]*+]))).*$|#.*?\\(fold\\)\\s*+$",
7
+ "foldingStartMarker": "^(\\s*+(annotation|module|class|struct|union|enum|def(?!.*\\bend\\s*$)|unless|if|case|begin|for|while|until|^=begin|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\s(do|begin|case)|(?<!\\$)[-+=\\&|*/~%^<>]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\{(?![^}]*+})|\\[(?![^\\]]*+]))).*$|#.*?\\(fold\\)\\s*+$",
8
8
  "foldingStopMarker": "((^|;)\\s*+end\\s*+(#.*)?$|(^|;)\\s*+end\\..*$|^\\s*+[}\\]],?\\s*+(#.*)?$|#.*?\\(end\\)\\s*+$|^=end)",
9
9
  "name": "crystal",
10
10
  "patterns": [
@@ -254,7 +254,7 @@
254
254
  "name": "variable.other.constant.crystal"
255
255
  },
256
256
  {
257
- "begin": "(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%\\&`/|]|\\*\\*?|=?~|[\\-+]@?|\\[][?=]?|\\[]=?))\\s*(\\()",
257
+ "begin": "(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%\\&`/|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?))\\s*(\\()",
258
258
  "beginCaptures": {
259
259
  "1": {
260
260
  "name": "keyword.control.def.crystal"
@@ -311,19 +311,19 @@
311
311
  "name": "entity.name.function.crystal"
312
312
  }
313
313
  },
314
- "match": "(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%\\&`/|]|\\*\\*?|=?~|[\\-+]@?|\\[][?=]?|\\[]=?)))?",
314
+ "match": "(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%\\&`/|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?)))?",
315
315
  "name": "meta.function.method.without-arguments.crystal"
316
316
  },
317
317
  {
318
- "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+\\-]?[0-9_]+)?(f(?:32|64))?\\b",
318
+ "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f(?:32|64))?\\b",
319
319
  "name": "constant.numeric.float.crystal"
320
320
  },
321
321
  {
322
- "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+\\-]?[0-9_]+(f(?:32|64))?\\b",
322
+ "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f(?:32|64))?\\b",
323
323
  "name": "constant.numeric.float.crystal"
324
324
  },
325
325
  {
326
- "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+\\-]?[0-9_]+)?(f(?:32|64))\\b",
326
+ "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f(?:32|64))\\b",
327
327
  "name": "constant.numeric.float.crystal"
328
328
  },
329
329
  {
@@ -963,7 +963,7 @@
963
963
  "name": "punctuation.definition.constant.crystal"
964
964
  }
965
965
  },
966
- "match": "(?<!:)(:)(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%\\&`/|]|\\*\\*?|=?~|[\\-+]@?|\\[][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",
966
+ "match": "(?<!:)(:)(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%\\&`/|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",
967
967
  "name": "constant.other.symbol.crystal"
968
968
  },
969
969
  {
@@ -1416,7 +1416,7 @@
1416
1416
  ]
1417
1417
  },
1418
1418
  {
1419
- "match": "((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\])}=+\\-*/\\^$,.]|<\\s|<<[\\s|.]))",
1419
+ "match": "((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\])}=+\\-*/^$,.]|<\\s|<<[\\s|.]))",
1420
1420
  "name": "variable.other.crystal"
1421
1421
  }
1422
1422
  ],
@@ -349,7 +349,7 @@
349
349
  "match": "(?<!\\.)\\b(as)\\b\\s*(?<type_name>(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*::\\s*)?(?<name_and_type_args>\\g<identifier>\\s*(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?)(?:\\s*\\.\\s*\\g<name_and_type_args>)*|(?<tuple>\\s*\\((?:[^()]|\\g<tuple>)+\\)))(?:\\s*\\?(?!\\?))?(?:\\s*\\[\\s*(?:,\\s*)*](?:\\s*\\?(?!\\?))?)*)?"
350
350
  },
351
351
  "assignment-expression": {
352
- "begin": "(?:[*/%+\\-]|\\?\\?|[\\&\\^]|<<|>>>?|\\|)?=(?![=>])",
352
+ "begin": "(?:[*/%+-]|\\?\\?|[\\&^]|<<|>>>?|\\|)?=(?![=>])",
353
353
  "beginCaptures": {
354
354
  "0": {
355
355
  "patterns": [
@@ -660,7 +660,7 @@
660
660
  "name": "punctuation.parenthesis.close.cs"
661
661
  }
662
662
  },
663
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
663
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
664
664
  "patterns": [
665
665
  {
666
666
  "include": "#casted-constant-pattern"
@@ -1795,7 +1795,7 @@
1795
1795
  "name": "keyword.operator.logical.cs"
1796
1796
  },
1797
1797
  {
1798
- "match": "[\\&~\\^|]",
1798
+ "match": "[\\&~^|]",
1799
1799
  "name": "keyword.operator.bitwise.cs"
1800
1800
  },
1801
1801
  {
@@ -2492,7 +2492,7 @@
2492
2492
  "name": "keyword.operator.expression.pattern.is.cs"
2493
2493
  }
2494
2494
  },
2495
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=)",
2495
+ "end": "(?=[)}\\],;:?=\\&|^]|!=)",
2496
2496
  "patterns": [
2497
2497
  {
2498
2498
  "include": "#pattern"
@@ -2613,7 +2613,7 @@
2613
2613
  },
2614
2614
  "list-pattern": {
2615
2615
  "begin": "(?=\\[)",
2616
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
2616
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
2617
2617
  "patterns": [
2618
2618
  {
2619
2619
  "begin": "\\[",
@@ -2639,7 +2639,7 @@
2639
2639
  },
2640
2640
  {
2641
2641
  "begin": "(?<=])",
2642
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
2642
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
2643
2643
  "patterns": [
2644
2644
  {
2645
2645
  "include": "#intrusive"
@@ -3186,7 +3186,7 @@
3186
3186
  "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=\\h)_(?=\\h)))*)((?<!_)([eE])(\\+?)(-?)([0-9](?:[0-9]|(?<=\\h)_(?=\\h))*))?((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$"
3187
3187
  },
3188
3188
  {
3189
- "match": "(?:[0-9a-zA-Z_]|(?<=[eE])[+\\-]|\\.\\d)+",
3189
+ "match": "(?:[0-9a-zA-Z_]|(?<=[eE])[+-]|\\.\\d)+",
3190
3190
  "name": "invalid.illegal.constant.numeric.cs"
3191
3191
  }
3192
3192
  ]
@@ -3194,7 +3194,7 @@
3194
3194
  ]
3195
3195
  }
3196
3196
  },
3197
- "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_]|(?<=[eE])[+\\-]|\\.\\d)*"
3197
+ "match": "(?<!\\w)\\.?\\d(?:[0-9a-zA-Z_]|(?<=[eE])[+-]|\\.\\d)*"
3198
3198
  },
3199
3199
  "object-creation-expression": {
3200
3200
  "patterns": [
@@ -3247,7 +3247,7 @@
3247
3247
  "name": "keyword.operator.assignment.cs"
3248
3248
  },
3249
3249
  "operator-declaration": {
3250
- "begin": "(?<type_name>(?:ref\\s+(?:readonly\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*::\\s*)?(?<name_and_type_args>\\g<identifier>\\s*(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?)(?:\\s*\\.\\s*\\g<name_and_type_args>)*|(?<tuple>\\s*\\((?:[^()]|\\g<tuple>)+\\)))(?:\\s*\\?\\s*)?(?:\\s*\\[(?:\\s*,\\s*)*]\\s*\\??\\s*)*)\\s*\\b(?<operator_keyword>operator)\\b\\s*(?<operator>[+\\-*/%\\&|\\^!=~<>]+|true|false)\\s*(?=\\()",
3250
+ "begin": "(?<type_name>(?:ref\\s+(?:readonly\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*::\\s*)?(?<name_and_type_args>\\g<identifier>\\s*(?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?)(?:\\s*\\.\\s*\\g<name_and_type_args>)*|(?<tuple>\\s*\\((?:[^()]|\\g<tuple>)+\\)))(?:\\s*\\?\\s*)?(?:\\s*\\[(?:\\s*,\\s*)*]\\s*\\??\\s*)*)\\s*\\b(?<operator_keyword>operator)\\b\\s*(?<operator>[+\\-*/%\\&|^!=~<>]+|true|false)\\s*(?=\\()",
3251
3251
  "beginCaptures": {
3252
3252
  "1": {
3253
3253
  "patterns": [
@@ -3417,7 +3417,7 @@
3417
3417
  },
3418
3418
  "positional-pattern": {
3419
3419
  "begin": "(?=\\()",
3420
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
3420
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
3421
3421
  "patterns": [
3422
3422
  {
3423
3423
  "begin": "\\(",
@@ -3443,7 +3443,7 @@
3443
3443
  },
3444
3444
  {
3445
3445
  "begin": "(?<=\\))",
3446
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
3446
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
3447
3447
  "patterns": [
3448
3448
  {
3449
3449
  "include": "#intrusive"
@@ -3859,7 +3859,7 @@
3859
3859
  },
3860
3860
  "property-pattern": {
3861
3861
  "begin": "(?=\\{)",
3862
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
3862
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
3863
3863
  "patterns": [
3864
3864
  {
3865
3865
  "begin": "\\{",
@@ -3885,7 +3885,7 @@
3885
3885
  },
3886
3886
  {
3887
3887
  "begin": "(?<=})",
3888
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
3888
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
3889
3889
  "patterns": [
3890
3890
  {
3891
3891
  "include": "#intrusive"
@@ -4249,7 +4249,7 @@
4249
4249
  "name": "keyword.operator.relational.cs"
4250
4250
  }
4251
4251
  },
4252
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
4252
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
4253
4253
  "patterns": [
4254
4254
  {
4255
4255
  "include": "#expression"
@@ -5135,11 +5135,11 @@
5135
5135
  },
5136
5136
  "type-pattern": {
5137
5137
  "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*)",
5138
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
5138
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
5139
5139
  "patterns": [
5140
5140
  {
5141
5141
  "begin": "\\G",
5142
- "end": "(?!\\G[@_[:alpha:]])(?=[({@_[:alpha:])}\\],;:=\\&|\\^]|(?:\\s|^)\\?|!=|\\b(and|or|when)\\b)",
5142
+ "end": "(?!\\G[@_[:alpha:]])(?=[({@_[:alpha:])}\\],;:=\\&|^]|(?:\\s|^)\\?|!=|\\b(and|or|when)\\b)",
5143
5143
  "patterns": [
5144
5144
  {
5145
5145
  "include": "#intrusive"
@@ -5151,7 +5151,7 @@
5151
5151
  },
5152
5152
  {
5153
5153
  "begin": "(?=[({@_[:alpha:]])",
5154
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
5154
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
5155
5155
  "patterns": [
5156
5156
  {
5157
5157
  "include": "#intrusive"
@@ -5188,7 +5188,7 @@
5188
5188
  "name": "punctuation.separator.coloncolon.cs"
5189
5189
  }
5190
5190
  },
5191
- "end": "(?<=[_[:alnum:]])|(?=[.<\\[({)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
5191
+ "end": "(?<=[_[:alnum:]])|(?=[.<\\[({)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
5192
5192
  "patterns": [
5193
5193
  {
5194
5194
  "include": "#intrusive"
@@ -5210,7 +5210,7 @@
5210
5210
  "name": "punctuation.accessor.cs"
5211
5211
  }
5212
5212
  },
5213
- "end": "(?<=[_[:alnum:]])|(?=[<\\[({)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
5213
+ "end": "(?<=[_[:alnum:]])|(?=[<\\[({)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
5214
5214
  "patterns": [
5215
5215
  {
5216
5216
  "include": "#intrusive"
@@ -5368,7 +5368,7 @@
5368
5368
  "name": "storage.type.var.cs"
5369
5369
  }
5370
5370
  },
5371
- "end": "(?=[)}\\],;:?=\\&|\\^]|!=|\\b(and|or|when)\\b)",
5371
+ "end": "(?=[)}\\],;:?=\\&|^]|!=|\\b(and|or|when)\\b)",
5372
5372
  "patterns": [
5373
5373
  {
5374
5374
  "include": "#designation-pattern"
@@ -5551,7 +5551,7 @@
5551
5551
  "name": "punctuation.separator.equals.cs"
5552
5552
  }
5553
5553
  },
5554
- "match": "(?:^|\\s+)((?:([\\-_[:alnum:]]+)(:))?([\\-_[:alnum:]]+))(=)"
5554
+ "match": "(?:^|\\s+)((?:([-_[:alnum:]]+)(:))?([-_[:alnum:]]+))(=)"
5555
5555
  },
5556
5556
  {
5557
5557
  "include": "#xml-string"
@@ -5584,7 +5584,7 @@
5584
5584
  "name": "punctuation.definition.constant.cs"
5585
5585
  }
5586
5586
  },
5587
- "match": "(&)([[:alpha:]:_][[:alnum:]:_.\\-]*|#\\d+|#x\\h+)(;)",
5587
+ "match": "(&)([[:alpha:]:_][[:alnum:]:_.-]*|#\\d+|#x\\h+)(;)",
5588
5588
  "name": "constant.character.entity.cs"
5589
5589
  },
5590
5590
  {
@@ -5669,7 +5669,7 @@
5669
5669
  ]
5670
5670
  },
5671
5671
  "xml-tag": {
5672
- "begin": "(</?)((?:([\\-_[:alnum:]]+)(:))?([\\-_[:alnum:]]+))",
5672
+ "begin": "(</?)((?:([-_[:alnum:]]+)(:))?([-_[:alnum:]]+))",
5673
5673
  "beginCaptures": {
5674
5674
  "1": {
5675
5675
  "name": "punctuation.definition.tag.cs"