@codingame/monaco-editor-wrapper 3.10.0-monaco-update.1 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/README.md +15 -0
  2. package/dist/COBOL.tmLanguage.js +172 -0
  3. package/dist/Erlang.plist.js +1752 -0
  4. package/dist/HTML (Eex)2.js +100 -0
  5. package/dist/JSON.tmLanguage.js +221 -0
  6. package/dist/JSONC.tmLanguage.js +221 -0
  7. package/dist/JavaProperties.tmLanguage.js +116 -0
  8. package/dist/JavaScript.tmLanguage.js +5929 -0
  9. package/dist/JavaScriptReact.tmLanguage.js +5929 -0
  10. package/dist/Kotlin.tmLanguage.js +724 -0
  11. package/dist/META.js +100 -0
  12. package/dist/MagicPython.tmLanguage.js +4221 -0
  13. package/dist/MagicRegExp.tmLanguage.js +505 -0
  14. package/dist/Markdown Redcarpet.js +221 -0
  15. package/dist/RMarkdown.js +25 -0
  16. package/dist/Rcpp.js +50 -0
  17. package/dist/Rd (R Documentation).js +131 -0
  18. package/dist/Regular Expressions (JavaScript).tmLanguage.js +166 -0
  19. package/dist/Scala.tmLanguage.js +1324 -0
  20. package/dist/TypeScript.tmLanguage.js +5680 -0
  21. package/dist/TypeScriptReact.tmLanguage.js +5929 -0
  22. package/dist/{_virtual/_commonjsHelpers.js → _monaco-editor_commonjs-external.js} +9 -2
  23. package/dist/_rollupPluginBabelHelpers.js +51 -0
  24. package/dist/angular.js +62 -0
  25. package/dist/asp-vb-net.tmlanguage.js +247 -0
  26. package/dist/aspnetcorerazor.js +72 -0
  27. package/dist/aspnetcorerazor.tmLanguage.js +1825 -0
  28. package/dist/atd.js +110 -0
  29. package/dist/atd2.js +114 -0
  30. package/dist/buildignore.r.js +5 -0
  31. package/dist/buildtarget.js +53 -0
  32. package/dist/c.js +101 -0
  33. package/dist/c.tmLanguage.js +3565 -0
  34. package/dist/cabal.js +10 -0
  35. package/dist/cabal.tmLanguage.js +66 -0
  36. package/dist/clojure.js +68 -0
  37. package/dist/clojure.tmLanguage.js +439 -0
  38. package/dist/cobol.js +6 -0
  39. package/dist/cobol2.js +341 -0
  40. package/dist/codeblock-cabal.js +42 -0
  41. package/dist/codeblock-haskell.js +42 -0
  42. package/dist/codeblock-literate-haskell.js +42 -0
  43. package/dist/codeblock.js +59 -0
  44. package/dist/codeblock2.js +36 -0
  45. package/dist/codeblock3.js +95 -0
  46. package/dist/coffeescript-coffeescript.code-snippets.js +18 -0
  47. package/dist/coffeescript.js +91 -0
  48. package/dist/coffeescript.tmLanguage.js +1324 -0
  49. package/dist/configuration/files.d.ts +6 -0
  50. package/dist/configuration/index.d.ts +2 -1
  51. package/dist/cpp-c.code-snippets.js +18 -0
  52. package/dist/cpp-cpp.code-snippets.js +18 -0
  53. package/dist/cpp.js +101 -0
  54. package/dist/cpp.tmLanguage.js +16648 -0
  55. package/dist/cpptools.js +2631 -0
  56. package/dist/cram.js +257 -0
  57. package/dist/csharp.js +92 -0
  58. package/dist/csharp.tmLanguage.js +4992 -0
  59. package/dist/css.js +106 -0
  60. package/dist/css.tmLanguage.js +1873 -0
  61. package/dist/css.worker.js +6 -0
  62. package/dist/cuda-cpp.js +101 -0
  63. package/dist/cuda-cpp.tmLanguage.js +19993 -0
  64. package/dist/d-diet.js +92 -0
  65. package/dist/d.js +3212 -0
  66. package/dist/d2.js +97 -0
  67. package/dist/d3.js +609 -0
  68. package/dist/dart.js +543 -0
  69. package/dist/dart2.js +103 -0
  70. package/dist/dart3.js +1130 -0
  71. package/dist/dcf.js +93 -0
  72. package/dist/debian-control.r.js +69 -0
  73. package/dist/diet.js +758 -0
  74. package/dist/diet2.js +100 -0
  75. package/dist/django-html.js +155 -0
  76. package/dist/django-html.tmLanguage.js +715 -0
  77. package/dist/django-txt.js +155 -0
  78. package/dist/django-txt.tmLanguage.js +269 -0
  79. package/dist/dml.js +169 -0
  80. package/dist/dml2.js +90 -0
  81. package/dist/dockercompose.js +82 -0
  82. package/dist/dpp.js +97 -0
  83. package/dist/dscript.js +90 -0
  84. package/dist/dune-project.js +481 -0
  85. package/dist/dune-project2.js +65 -0
  86. package/dist/dune-workspace.js +298 -0
  87. package/dist/dune-workspace2.js +65 -0
  88. package/dist/dune.js +2962 -0
  89. package/dist/dune2.js +65 -0
  90. package/dist/eex.js +55 -0
  91. package/dist/elixir-snippets.js +184 -0
  92. package/dist/elixir.js +2341 -0
  93. package/dist/elixir2.js +69 -0
  94. package/dist/elixir3.js +40 -0
  95. package/dist/erlang-erlang.js +195 -0
  96. package/dist/erlang.js +81 -0
  97. package/dist/erlang2.js +86 -0
  98. package/dist/expression.js +846 -0
  99. package/dist/features/cssContribution.d.ts +1 -0
  100. package/dist/features/cssContribution.js +7 -0
  101. package/dist/features/extensionConfigurations.d.ts +1 -0
  102. package/dist/features/extensionConfigurations.js +44 -0
  103. package/dist/features/htmlContribution.d.ts +4 -0
  104. package/dist/features/htmlContribution.js +112 -0
  105. package/dist/features/jsonContribution.d.ts +6 -0
  106. package/dist/features/jsonContribution.js +43 -0
  107. package/dist/features/typescriptContribution.d.ts +1 -0
  108. package/dist/features/typescriptContribution.js +32 -0
  109. package/dist/fsharp-fsharp.code-snippets.js +18 -0
  110. package/dist/fsharp.js +80 -0
  111. package/dist/fsharp.tmLanguage.js +1844 -0
  112. package/dist/go.js +103 -0
  113. package/dist/go.mod.js +8 -0
  114. package/dist/go.mod.tmGrammar.js +182 -0
  115. package/dist/go.sum.tmGrammar.js +55 -0
  116. package/dist/go.tmLanguage.js +1025 -0
  117. package/dist/go.work.js +8 -0
  118. package/dist/govulncheck.tmGrammar.js +138 -0
  119. package/dist/groovy-groovy.code-snippets.js +229 -0
  120. package/dist/groovy.js +79 -0
  121. package/dist/groovy.tmLanguage.js +1391 -0
  122. package/dist/haskell.js +88 -0
  123. package/dist/haskell.tmLanguage.js +629 -0
  124. package/dist/haskell2.js +16 -0
  125. package/dist/html (eex).js +31 -0
  126. package/dist/html-derivative.tmLanguage.js +57 -0
  127. package/dist/html-html.code-snippets.js +20 -0
  128. package/dist/html.js +11 -0
  129. package/dist/html.tmLanguage.js +2652 -0
  130. package/dist/html.tmLanguage2.js +107 -0
  131. package/dist/html.worker.js +6 -0
  132. package/dist/index.d.ts +3 -3
  133. package/dist/index.js +2207 -0
  134. package/dist/index2.js +1398 -0
  135. package/dist/inline-styles.js +104 -0
  136. package/dist/inline-template.js +88 -0
  137. package/dist/jade.js +11 -0
  138. package/dist/java-java.js +125 -0
  139. package/dist/java-properties.js +73 -0
  140. package/dist/java.js +98 -0
  141. package/dist/java.tmLanguage.js +1863 -0
  142. package/dist/java2.js +917 -0
  143. package/dist/javascript-javascript.code-snippets.js +205 -0
  144. package/dist/javascript.js +197 -0
  145. package/dist/javascriptreact.js +197 -0
  146. package/dist/jsdoc.js.injection.tmLanguage.js +32 -0
  147. package/dist/jsdoc.ts.injection.tmLanguage.js +32 -0
  148. package/dist/json.js +75 -0
  149. package/dist/json.worker.js +6 -0
  150. package/dist/jsonc.js +75 -0
  151. package/dist/jsx-tags.js +158 -0
  152. package/dist/julia.js +89 -0
  153. package/dist/julia.tmLanguage.js +954 -0
  154. package/dist/jvm-bytecode-verbose.js +1231 -0
  155. package/dist/jvm-bytecode.js +565 -0
  156. package/dist/kotlin-kotlin.js +117 -0
  157. package/dist/kotlin.js +103 -0
  158. package/dist/kotlinscript.js +103 -0
  159. package/dist/languages/extensions/extensionConfigurationLoader.d.ts +3 -0
  160. package/dist/languages/extensions/grammarLoader.d.ts +2 -0
  161. package/dist/languages/extensions/languageConfigurationLoader.d.ts +2 -0
  162. package/dist/languages/extensions/snippetLoader.d.ts +2 -0
  163. package/dist/languages/extensions/themeLoader.d.ts +2 -0
  164. package/dist/languages/index.d.ts +2 -0
  165. package/dist/languages/textMate/index.d.ts +1 -0
  166. package/dist/literate haskell.js +88 -0
  167. package/dist/literateHaskell.tmLanguage.js +70 -0
  168. package/dist/lua.js +84 -0
  169. package/dist/lua.tmLanguage.js +914 -0
  170. package/dist/lua2.js +2853 -0
  171. package/dist/main.js +3564 -9
  172. package/dist/markdown-basics-markdown.code-snippets.js +121 -0
  173. package/dist/markdown-svelte-css.js +37 -0
  174. package/dist/markdown-svelte-js.js +37 -0
  175. package/dist/markdown-svelte.js +59 -0
  176. package/dist/markdown-vue.js +54 -0
  177. package/dist/markdown.js +49 -0
  178. package/dist/markdown.tmLanguage.js +3042 -0
  179. package/dist/menhir-action.js +51 -0
  180. package/dist/menhir.js +597 -0
  181. package/dist/merlin.js +111 -0
  182. package/dist/monaco.d.ts +10 -6
  183. package/dist/namespace.r.js +88 -0
  184. package/dist/oasis.js +99 -0
  185. package/dist/objective-c.js +79 -0
  186. package/dist/objective-c.tmLanguage.js +3763 -0
  187. package/dist/objective-cpp.js +79 -0
  188. package/dist/ocaml-dune-project.js +38 -0
  189. package/dist/ocaml-dune.js +53 -0
  190. package/dist/ocaml-markdown-codeblock.js +42 -0
  191. package/dist/ocaml-ocaml.js +88 -0
  192. package/dist/ocaml-ocamllex.js +12 -0
  193. package/dist/ocaml.META.js +29 -0
  194. package/dist/ocaml.interface.js +292 -0
  195. package/dist/ocaml.interface2.js +114 -0
  196. package/dist/ocaml.js +903 -0
  197. package/dist/ocaml.menhir.js +81 -0
  198. package/dist/ocaml.oasis.js +18 -0
  199. package/dist/ocaml.ocamlbuild.js +45 -0
  200. package/dist/ocaml.ocamlformat.js +8 -0
  201. package/dist/ocaml.ocamllex.js +60 -0
  202. package/dist/ocaml.opam-install.js +49 -0
  203. package/dist/ocaml.opam.js +69 -0
  204. package/dist/ocaml2.js +114 -0
  205. package/dist/ocaml3.js +136 -0
  206. package/dist/ocamlbuild.js +189 -0
  207. package/dist/ocamldoc.js +54 -0
  208. package/dist/ocamlformat.js +206 -0
  209. package/dist/ocamllex.js +133 -0
  210. package/dist/omnisharp-csharp.js +508 -0
  211. package/dist/omnisharp.js +594 -0
  212. package/dist/opam-install.js +40 -0
  213. package/dist/opam.js +140 -0
  214. package/dist/pascal-pascal.js +382 -0
  215. package/dist/pascal.js +80 -0
  216. package/dist/pascal.tmLanguage.js +169 -0
  217. package/dist/pascal2.js +26 -0
  218. package/dist/perl.js +93 -0
  219. package/dist/perl.tmLanguage.js +2986 -0
  220. package/dist/perl6.js +86 -0
  221. package/dist/perl6.tmLanguage.js +323 -0
  222. package/dist/pgsql.tmLanguage.js +284 -0
  223. package/dist/php-php.code-snippets.js +267 -0
  224. package/dist/php.js +154 -0
  225. package/dist/php.tmLanguage.js +4036 -0
  226. package/dist/pip-requirements.js +8 -0
  227. package/dist/pip-requirements.tmLanguage.js +89 -0
  228. package/dist/plaintext.js +11 -0
  229. package/dist/platform.tmLanguage.js +1135 -0
  230. package/dist/postcss.src.yaml.js +393 -0
  231. package/dist/postgres.js +80 -0
  232. package/dist/postgresql.js +75 -0
  233. package/dist/powershell.js +107 -0
  234. package/dist/powershell.tmLanguage.js +1037 -0
  235. package/dist/pug-svelte-dotblock.js +69 -0
  236. package/dist/pug-svelte-tags.js +215 -0
  237. package/dist/pug-svelte.js +307 -0
  238. package/dist/python.js +236 -0
  239. package/dist/r.js +664 -0
  240. package/dist/r2.js +88 -0
  241. package/dist/rbuildignore.js +39 -0
  242. package/dist/rd.js +81 -0
  243. package/dist/reason-markdown-codeblock.js +42 -0
  244. package/dist/reason.js +79 -0
  245. package/dist/rmd.js +84 -0
  246. package/dist/rnamespace.js +283 -0
  247. package/dist/ruby.js +95 -0
  248. package/dist/ruby.tmLanguage.js +2784 -0
  249. package/dist/rust.js +84 -0
  250. package/dist/rust.tmLanguage.js +1178 -0
  251. package/dist/sassdoc.tmLanguage.js +362 -0
  252. package/dist/scala.js +85 -0
  253. package/dist/scalameta.js +224 -0
  254. package/dist/scss.js +117 -0
  255. package/dist/scss.tmLanguage.js +1887 -0
  256. package/dist/sdl.js +162 -0
  257. package/dist/sdl2.js +90 -0
  258. package/dist/semanticdb.js +62 -0
  259. package/dist/shell-unix-bash.tmLanguage.js +2038 -0
  260. package/dist/shellscript.js +93 -0
  261. package/dist/solargraph.js +192 -0
  262. package/dist/solidity-solidity.js +213 -0
  263. package/dist/solidity.js +1224 -0
  264. package/dist/solidity2.js +71 -0
  265. package/dist/solidity3.js +143 -0
  266. package/dist/sql.js +99 -0
  267. package/dist/sql.tmLanguage.js +636 -0
  268. package/dist/svelte.js +120 -0
  269. package/dist/svelte.svelte-vscode-javascript.js +45 -0
  270. package/dist/svelte.svelte-vscode-svelte.js +46 -0
  271. package/dist/svelte.svelte-vscode-typescript.js +43 -0
  272. package/dist/svelte.svelte-vscode.js +383 -0
  273. package/dist/svelte.tmLanguage.src.yaml.js +1099 -0
  274. package/dist/svlangserver-systemverilog.js +395 -0
  275. package/dist/svlangserver.js +85 -0
  276. package/dist/swift-swift.code-snippets.js +183 -0
  277. package/dist/swift.js +90 -0
  278. package/dist/swift.tmLanguage.js +3312 -0
  279. package/dist/systemverilog.js +187 -0
  280. package/dist/systemverilog.tmLanguage.js +1259 -0
  281. package/dist/tasty.js +72 -0
  282. package/dist/tcl-tcl.js +151 -0
  283. package/dist/tcl.js +78 -0
  284. package/dist/tcl.tmlanguage.yaml.js +5490 -0
  285. package/dist/template.js +207 -0
  286. package/dist/theme/index.d.ts +4 -1
  287. package/dist/theme-defaults~dark_plus.js +210 -0
  288. package/dist/theme-defaults~dark_plus_experimental.js +145 -0
  289. package/dist/theme-defaults~dark_vs.js +412 -0
  290. package/dist/theme-defaults~hc_black.js +471 -0
  291. package/dist/theme-defaults~hc_light.js +595 -0
  292. package/dist/theme-defaults~light_plus.js +212 -0
  293. package/dist/theme-defaults~light_plus_experimental.js +158 -0
  294. package/dist/theme-defaults~light_vs.js +441 -0
  295. package/dist/tools/EditorOpenHandlerRegistry.d.ts +2 -3
  296. package/dist/ts.worker.js +6 -0
  297. package/dist/typescript-basics-typescript.code-snippets.js +313 -0
  298. package/dist/typescript-language-features.js +1103 -0
  299. package/dist/typescript.js +216 -0
  300. package/dist/typescriptreact.js +216 -0
  301. package/dist/vb-vb.code-snippets.js +88 -0
  302. package/dist/vb.js +79 -0
  303. package/dist/verilog.js +187 -0
  304. package/dist/{node_modules/monaco-vim/lib/cm/keymap_vim.js → vim.js} +1790 -4
  305. package/dist/volar-vue.js +289 -0
  306. package/dist/vscode-R-r-snippets.js +534 -0
  307. package/dist/vscode-R-rmarkdown.js +461 -0
  308. package/dist/vscode-R.js +660 -0
  309. package/dist/vscode-django-filters.js +340 -0
  310. package/dist/vscode-django.js +37 -0
  311. package/dist/vscode-go-go.js +276 -0
  312. package/dist/vscode-go.js +1610 -0
  313. package/dist/vscode-groovy.js +28 -0
  314. package/dist/vscode-python.js +706 -0
  315. package/dist/vue-directives.js +25 -0
  316. package/dist/vue-interpolations.js +25 -0
  317. package/dist/vue-sfc-style-variable-injection.js +63 -0
  318. package/dist/vue.js +151 -0
  319. package/dist/vue.tmLanguage.js +1218 -0
  320. package/dist/worker.d.ts +10 -1
  321. package/dist/worker.js +43 -11
  322. package/dist/xml.js +116 -0
  323. package/dist/xml.tmLanguage.js +395 -0
  324. package/dist/xsl.js +39 -0
  325. package/dist/xsl.tmLanguage.js +102 -0
  326. package/dist/yaml.js +82 -0
  327. package/dist/yaml.tmLanguage.js +629 -0
  328. package/package.json +67 -127
  329. package/stats.html +1429 -90
  330. package/dist/_virtual/_monaco-editor.js +0 -6
  331. package/dist/_virtual/actions.js +0 -3
  332. package/dist/_virtual/basicInput.js +0 -3
  333. package/dist/_virtual/cm_adapter.js +0 -3
  334. package/dist/_virtual/commands.js +0 -3
  335. package/dist/_virtual/editor.api.js +0 -6
  336. package/dist/_virtual/index.js +0 -3
  337. package/dist/_virtual/index2.js +0 -3
  338. package/dist/_virtual/index3.js +0 -3
  339. package/dist/_virtual/keymap_vim.js +0 -3
  340. package/dist/_virtual/shiftCommand.js +0 -6
  341. package/dist/_virtual/state.js +0 -3
  342. package/dist/_virtual/statusbar.js +0 -3
  343. package/dist/_virtual/util.js +0 -3
  344. package/dist/assets/Angular.ng-template-16.1.8.vsix/expression-c051cd51.json +0 -834
  345. package/dist/assets/Angular.ng-template-16.1.8.vsix/inline-styles-59ea31e9.json +0 -92
  346. package/dist/assets/Angular.ng-template-16.1.8.vsix/inline-template-f0c3f556.json +0 -76
  347. package/dist/assets/Angular.ng-template-16.1.8.vsix/template-e24e3ba1.json +0 -195
  348. package/dist/assets/Dart-Code.dart-code-3.75.20231009.vsix/dart-bea1db40.json +0 -534
  349. package/dist/assets/Dart-Code.dart-code-3.75.20231009.vsix/dart-language-configuration-c4b1f694.json +0 -29
  350. package/dist/assets/Dart-Code.dart-code-3.75.20231009.vsix/flutter_activity_bar-17811551.svg +0 -14
  351. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/codeblock-67e70f41.json +0 -81
  352. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/language-configuration-3467c3a6.json +0 -57
  353. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/systemverilog-ff001e9f.json +0 -349
  354. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/systemverilog.tmLanguage-31a99a46.json +0 -1246
  355. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/tasks.schema-832643df.json +0 -30
  356. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/eex-e9a5e762.json +0 -41
  357. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/eex-language-configuration-6fb789e3.json +0 -58
  358. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/elixir-7cb5db44.json +0 -2580
  359. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/elixir-language-configuration-4bd217f4.json +0 -74
  360. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/html-eex-3079072a.json +0 -25
  361. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity-1f693465.json +0 -213
  362. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity-642a30e7.json +0 -1215
  363. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity.configuration-d0229207.json +0 -32
  364. package/dist/assets/REditorSupport.r-2.8.2.vsix/Markdown Redcarpet-12881a56.json +0 -146
  365. package/dist/assets/REditorSupport.r-2.8.2.vsix/RMarkdown-0bbb72c0.json +0 -13
  366. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rcpp-cea57c6d.json +0 -34
  367. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rd (R Documentation)-555f4e62.json +0 -117
  368. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rlogo-6d3318a6.svg +0 -14
  369. package/dist/assets/REditorSupport.r-2.8.2.vsix/dcf-3d561f42.json +0 -82
  370. package/dist/assets/REditorSupport.r-2.8.2.vsix/dcf-configuration-d58bba2d.json +0 -24
  371. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-configuration-78e137e5.json +0 -33
  372. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-fe2a45c3.json +0 -647
  373. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-snippets-9e46c45c.json +0 -475
  374. package/dist/assets/REditorSupport.r-2.8.2.vsix/rbuildignore-9cfe22f1.json +0 -27
  375. package/dist/assets/REditorSupport.r-2.8.2.vsix/rbuildignore-configuration-8eb95bcb.json +0 -2
  376. package/dist/assets/REditorSupport.r-2.8.2.vsix/rd-configuration-194dd9d9.json +0 -27
  377. package/dist/assets/REditorSupport.r-2.8.2.vsix/rmarkdown-dea1e283.json +0 -459
  378. package/dist/assets/REditorSupport.r-2.8.2.vsix/rmd-configuration-b4c6dc23.json +0 -27
  379. package/dist/assets/REditorSupport.r-2.8.2.vsix/rnamespace-290042cd.json +0 -222
  380. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.nls-8c1cec26.json +0 -24
  381. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.nls.pt-br-50a237c2.json +0 -24
  382. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal-365151a8.json +0 -414
  383. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal-93ca5af8.tmLanguage +0 -243
  384. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal.configuration-650e481b.json +0 -32
  385. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/django-html.tmLanguage-a755b992.json +0 -701
  386. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/django-txt.tmLanguage-856346a9.json +0 -255
  387. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/filters-f60b575d.json +0 -339
  388. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/language-configuration-f8af0b2f.json +0 -63
  389. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/tags-43e8b685.json +0 -496
  390. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/language-configuration-e9539ff0.json +0 -75
  391. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/tcl-10fb1e40.json +0 -142
  392. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/tcl-d73ae460.json +0 -5474
  393. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/COBOL.tmLanguage-67e1eefb.json +0 -216
  394. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/lang-config-a301d1b9.json +0 -27
  395. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/pgm_conf.schema-f8558717.json +0 -24
  396. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/proc_grps.schema-428d2a80.json +0 -55
  397. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/language-configuration-b3cf7aac.json +0 -25
  398. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/pgsql-a84fddae.tmLanguage +0 -413
  399. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/postgres-explorer-ce4bf408.svg +0 -100
  400. package/dist/assets/golang.Go-0.39.1.vsix/go-71588b74.json +0 -274
  401. package/dist/assets/golang.Go-0.39.1.vsix/go.mod.language-configuration-0301a994.json +0 -5
  402. package/dist/assets/golang.Go-0.39.1.vsix/go.mod.tmGrammar-6cbef28b.json +0 -171
  403. package/dist/assets/golang.Go-0.39.1.vsix/go.sum.tmGrammar-36d4acfd.json +0 -44
  404. package/dist/assets/golang.Go-0.39.1.vsix/govulncheck.tmGrammar-3741e2c9.json +0 -123
  405. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-directives-77c45bf9.json +0 -123
  406. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-interpolations-b1f89745.json +0 -44
  407. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-template-language-configuration-4cd1b761.json +0 -8
  408. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/C2Hs-c12145c8.json +0 -23
  409. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/C2Hs-configuration-dc72a3f0.json +0 -29
  410. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/Hsc2Hs-685ef114.json +0 -23
  411. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/Hsc2Hs-configuration-15e5e5c3.json +0 -30
  412. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/alex-07217e37.json +0 -236
  413. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/cabal-8f2b8b9f.json +0 -53
  414. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/cabal-configuration-64e517a3.json +0 -6
  415. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-cabal-34484e34.json +0 -28
  416. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-haskell-138d661e.json +0 -28
  417. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-literate-haskell-90d8db8f.json +0 -28
  418. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/happy-3cd8fa35.json +0 -196
  419. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/haskell-192ef944.json +0 -2525
  420. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/haskell-configuration-54079281.json +0 -29
  421. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/literate-haskell-configuration-23cbb80e.json +0 -29
  422. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/literateHaskell-0a08d9f7.json +0 -56
  423. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/Kotlin-5d2aa580.tmLanguage +0 -1067
  424. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/codeblock-8be87145.json +0 -22
  425. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/kotlin-9f43cb02.json +0 -107
  426. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/kotlin.configuration-1d328649.json +0 -35
  427. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/aspnetcorerazor.tmLanguage-7002af3f.json +0 -1812
  428. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/csharp-a17ace76.json +0 -493
  429. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/language-configuration-f8b16509.json +0 -24
  430. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls-b9937871.json +0 -419
  431. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.cs-80b9e0b3.json +0 -201
  432. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.de-2f7710c0.json +0 -201
  433. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.es-d1bd829b.json +0 -201
  434. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.fr-e0bc41f9.json +0 -201
  435. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.it-0e21bedf.json +0 -201
  436. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.ja-2384013f.json +0 -201
  437. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.ko-621d3dfe.json +0 -201
  438. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.pl-bd72e09e.json +0 -201
  439. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.pt-br-a446b36f.json +0 -201
  440. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.ru-923ade42.json +0 -201
  441. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.tr-10253fa3.json +0 -201
  442. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.zh-cn-00cb169d.json +0 -201
  443. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.zh-tw-1c34b33a.json +0 -201
  444. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/vs2019_dark-a56f6e51.json +0 -783
  445. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/vs2019_light-fd29b4ae.json +0 -807
  446. package/dist/assets/ms-python.python-2023.19.12861011.vsix/conda-environment-3aa03e16.json +0 -1
  447. package/dist/assets/ms-python.python-2023.19.12861011.vsix/conda-meta-e7f42ee0.json +0 -1
  448. package/dist/assets/ms-python.python-2023.19.12861011.vsix/condarc-8ad258e5.json +0 -1
  449. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls-c97ce436.json +0 -1
  450. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.cs-5dee4ffc.json +0 -1
  451. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.de-b852e3ec.json +0 -1
  452. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.es-66adbb9e.json +0 -1
  453. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.fr-6abf0276.json +0 -1
  454. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.it-12650beb.json +0 -1
  455. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.ja-de4ee3bd.json +0 -1
  456. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.ko-254d6467.json +0 -1
  457. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.pl-f957d6c6.json +0 -1
  458. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.pt-br-d02ca4d9.json +0 -1
  459. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.qps-ploc-f24b5e76.json +0 -1
  460. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.ru-e6ba5e62.json +0 -1
  461. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.tr-05d98040.json +0 -1
  462. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.zh-cn-f41941e0.json +0 -1
  463. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.zh-tw-02c30e90.json +0 -1
  464. package/dist/assets/ms-python.python-2023.19.12861011.vsix/pip-requirements-85cd5b06.json +0 -1
  465. package/dist/assets/ms-python.python-2023.19.12861011.vsix/pip-requirements.tmLanguage-5dcdde1f.json +0 -1
  466. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls-faad5326.json +0 -1006
  467. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.cs-1c63e64b.json +0 -441
  468. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.de-a80f3548.json +0 -441
  469. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.es-ed5f9669.json +0 -441
  470. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.fr-0a6f6680.json +0 -441
  471. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.it-690d744e.json +0 -441
  472. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.ja-9e548ee8.json +0 -441
  473. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.ko-b7c6d97d.json +0 -441
  474. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.pl-fac1f880.json +0 -441
  475. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.pt-br-618e6fff.json +0 -441
  476. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.ru-b8aa8e97.json +0 -441
  477. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.tr-61b293ea.json +0 -441
  478. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.zh-cn-2fb473f1.json +0 -441
  479. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.zh-tw-bd960e98.json +0 -441
  480. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/META-a4e7fa6f.json +0 -56
  481. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/META-e71a284d.json +0 -10
  482. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/atd-03beef93.json +0 -57
  483. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/cram-947e10d8.json +0 -167
  484. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-3f9df928.json +0 -24
  485. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-ac59c79b.json +0 -2949
  486. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-b84b8558.json +0 -30
  487. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-project-1f8165b1.json +0 -26
  488. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-project-c3d6414c.json +0 -326
  489. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-workspace-714d48f4.json +0 -191
  490. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/logo-1ec58c70.svg +0 -3
  491. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/menhir-318b208e.json +0 -349
  492. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/menhir-action-1de9ecfe.json +0 -29
  493. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/menhir-ba3ffd84.json +0 -27
  494. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/merlin-68658127.json +0 -73
  495. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/oasis-6cb9104d.json +0 -6
  496. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/oasis-b3731651.json +0 -69
  497. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-2b852e88.json +0 -54
  498. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-721ae493.json +0 -654
  499. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-8263d04c.json +0 -49
  500. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-markdown-codeblock-d59b1879.json +0 -24
  501. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml.interface-82c9d397.json +0 -161
  502. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlbuild-28c2016d.json +0 -110
  503. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlbuild-68c3ee9d.json +0 -16
  504. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamldoc-68623cf8.json +0 -31
  505. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlformat-12d00ff4.json +0 -5
  506. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlformat-566f44ca.json +0 -191
  507. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamllex-16f56b53.json +0 -6
  508. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamllex-2f54f6a7.json +0 -21
  509. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamllex-9eea3c0f.json +0 -108
  510. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-051cc018.json +0 -24
  511. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-a3126c97.json +0 -111
  512. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-install-24f044a3.json +0 -23
  513. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-install-5c433c27.json +0 -19
  514. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/reason-46868a8a.json +0 -2357
  515. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/reason-e5da4a73.json +0 -25
  516. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/reason-markdown-codeblock-80e4eeb5.json +0 -24
  517. package/dist/assets/pgourlain.erlang-0.9.7.vsix/Erlang-dc87abbd.plist +0 -2719
  518. package/dist/assets/pgourlain.erlang-0.9.7.vsix/erlang-ceac2319.json +0 -197
  519. package/dist/assets/pgourlain.erlang-0.9.7.vsix/erlang.configuration-52d0fdab.json +0 -25
  520. package/dist/assets/redhat.java-1.24.2023101604.vsix/JavaProperties.tmLanguage-0a8c48eb.json +0 -103
  521. package/dist/assets/redhat.java-1.24.2023101604.vsix/java-properties-configuration-97f1db18.json +0 -67
  522. package/dist/assets/redhat.java-1.24.2023101604.vsix/java.tmLanguage-7cffeca4.json +0 -1892
  523. package/dist/assets/redhat.java-1.24.2023101604.vsix/language-configuration-054e92b8.json +0 -92
  524. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls-2147d73e.json +0 -29
  525. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls.ko-a7811004.json +0 -26
  526. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls.zh-cn-5b3edff8.json +0 -27
  527. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls.zh-tw-236ee4a0.json +0 -26
  528. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.schema-58232c4f.json +0 -28
  529. package/dist/assets/scala-lang.scala-0.5.7.vsix/Scala.tmLanguage-e9b79520.json +0 -1
  530. package/dist/assets/scala-lang.scala-0.5.7.vsix/language-configuration-acc80ed1.json +0 -33
  531. package/dist/assets/scalameta.metals-1.25.2.vsix/book-dark-6f0d6908.svg +0 -5
  532. package/dist/assets/scalameta.metals-1.25.2.vsix/book-light-ba883494.svg +0 -1
  533. package/dist/assets/scalameta.metals-1.25.2.vsix/buildtarget-73bbface.json +0 -37
  534. package/dist/assets/scalameta.metals-1.25.2.vsix/file_type_java-36bb31ca.svg +0 -1
  535. package/dist/assets/scalameta.metals-1.25.2.vsix/file_type_scala-b6c14b23.svg +0 -1
  536. package/dist/assets/scalameta.metals-1.25.2.vsix/jvm-bytecode-cab4d04e.json +0 -395
  537. package/dist/assets/scalameta.metals-1.25.2.vsix/jvm-bytecode-verbose-3611fa8e.json +0 -745
  538. package/dist/assets/scalameta.metals-1.25.2.vsix/scalameta-5e510695.svg +0 -11
  539. package/dist/assets/scalameta.metals-1.25.2.vsix/scalameta-logo-f3b7b0bf.png +0 -0
  540. package/dist/assets/scalameta.metals-1.25.2.vsix/semanticdb-44c14f33.json +0 -37
  541. package/dist/assets/scalameta.metals-1.25.2.vsix/tasty-c2b151f2.json +0 -56
  542. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls-f1576108.json +0 -231
  543. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls.pt-br-44d0849d.json +0 -231
  544. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls.zh-cn-3f634909.json +0 -231
  545. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls.zh-tw-144dc848.json +0 -231
  546. package/dist/assets/sumneko.lua-3.7.0.vsix/schema-dedfd658.json +0 -3421
  547. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/javascript-7aebc91a.json +0 -43
  548. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/language-configuration-3cb1f78d.json +0 -38
  549. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/markdown-svelte-4cd58a41.json +0 -45
  550. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/markdown-svelte-css-0fdc510e.json +0 -23
  551. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/markdown-svelte-js-cd568059.json +0 -23
  552. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/package-json-schema-ec2f7bd4.json +0 -9
  553. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/postcss-05883dcd.json +0 -377
  554. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/prettier-options-schema-9e36a684.json +0 -112
  555. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/pug-svelte-04246371.json +0 -293
  556. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/pug-svelte-dotblock-b92db507.json +0 -55
  557. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/pug-svelte-tags-65124af1.json +0 -201
  558. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/svelte-a1bb47f3.json +0 -22
  559. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/svelte.tmLanguage-aec82be9.json +0 -1163
  560. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/typescript-bd1c0ff1.json +0 -37
  561. package/dist/assets/webfreak.code-d-0.23.2.vsix/d-2da26fd0.json +0 -3163
  562. package/dist/assets/webfreak.code-d-0.23.2.vsix/d-316cb838.json +0 -90
  563. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet-0b761e76.json +0 -87
  564. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet-7fe4fdb7.json +0 -92
  565. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet-83c1bebc.json +0 -742
  566. package/dist/assets/webfreak.code-d-0.23.2.vsix/dml-ef6957d3.json +0 -157
  567. package/dist/assets/webfreak.code-d-0.23.2.vsix/dub.schema-77c2f417.json +0 -377
  568. package/dist/assets/webfreak.code-d-0.23.2.vsix/general-7b927912.json +0 -84
  569. package/dist/assets/webfreak.code-d-0.23.2.vsix/sdl-b6c61596.json +0 -149
  570. package/dist/configuration/index.js +0 -45
  571. package/dist/editor/autofold.js +0 -24
  572. package/dist/editor/cobol.js +0 -67
  573. package/dist/editor/index.js +0 -9
  574. package/dist/extensions/Angular.ng-template-16.1.8.vsix.js +0 -16
  575. package/dist/extensions/Dart-Code.dart-code-3.75.20231009.vsix.js +0 -14
  576. package/dist/extensions/IMCTradingBV.svlangserver-0.4.1.vsix.js +0 -18
  577. package/dist/extensions/JakeBecker.elixir-ls-0.17.1.vsix.js +0 -18
  578. package/dist/extensions/JuanBlanco.solidity-0.0.165.vsix.js +0 -14
  579. package/dist/extensions/REditorSupport.r-2.8.2.vsix.js +0 -42
  580. package/dist/extensions/alefragnani.pascal-9.6.0.vsix.js +0 -18
  581. package/dist/extensions/batisteo.vscode-django-1.14.0.vsix.js +0 -18
  582. package/dist/extensions/bitwisecook.tcl-0.4.3.vsix.js +0 -14
  583. package/dist/extensions/broadcomMFD.cobol-language-support-2.0.3.vsix.js +0 -16
  584. package/dist/extensions/castwide.solargraph-0.24.0.vsix.js +0 -5
  585. package/dist/extensions/ckolkman.vscode-postgres-1.4.3.vsix.js +0 -14
  586. package/dist/extensions/golang.Go-0.39.1.vsix.js +0 -18
  587. package/dist/extensions/johnsoncodehk.vscode-angular-1.0.22.vsix.js +0 -14
  588. package/dist/extensions/justusadam.language-haskell-3.6.0.vsix.js +0 -38
  589. package/dist/extensions/mathiasfrohlich.Kotlin-1.7.1.vsix.js +0 -16
  590. package/dist/extensions/ms-dotnettools.csharp-2.6.24.vsix.js +0 -46
  591. package/dist/extensions/ms-python.python-2023.19.12861011.vsix.js +0 -48
  592. package/dist/extensions/ms-vscode.cpptools-1.18.0.vsix.js +0 -36
  593. package/dist/extensions/ocamllabs.ocaml-platform-1.13.1.vsix.js +0 -82
  594. package/dist/extensions/pgourlain.erlang-0.9.7.vsix.js +0 -14
  595. package/dist/extensions/redhat.java-1.24.2023101604.vsix.js +0 -26
  596. package/dist/extensions/scala-lang.scala-0.5.7.vsix.js +0 -12
  597. package/dist/extensions/scalameta.metals-1.25.2.vsix.js +0 -30
  598. package/dist/extensions/sumneko.lua-3.7.0.vsix.js +0 -18
  599. package/dist/extensions/svelte.svelte-vscode-107.12.0.vsix.js +0 -36
  600. package/dist/extensions/webfreak.code-d-0.23.2.vsix.js +0 -26
  601. package/dist/extensions.d.ts +0 -36
  602. package/dist/features/debug.js +0 -6
  603. package/dist/features/extensionHostWorker.js +0 -11
  604. package/dist/features/search.d.ts +0 -1
  605. package/dist/features/search.js +0 -7
  606. package/dist/features/viewPanels.d.ts +0 -1
  607. package/dist/features/viewPanels.js +0 -11
  608. package/dist/features/views.d.ts +0 -4
  609. package/dist/features/views.js +0 -27
  610. package/dist/keybindings/index.js +0 -36
  611. package/dist/keybindings/vim.js +0 -82
  612. package/dist/languages/index.js +0 -40
  613. package/dist/monaco.js +0 -93
  614. package/dist/node_modules/lodash.kebabcase/index.js +0 -439
  615. package/dist/node_modules/lodash.throttle/index.js +0 -443
  616. package/dist/node_modules/monaco-emacs/lib/emacs/actions.js +0 -596
  617. package/dist/node_modules/monaco-emacs/lib/emacs/basicInput.js +0 -113
  618. package/dist/node_modules/monaco-emacs/lib/emacs/commands.js +0 -184
  619. package/dist/node_modules/monaco-emacs/lib/emacs/index.js +0 -186
  620. package/dist/node_modules/monaco-emacs/lib/emacs/state.js +0 -116
  621. package/dist/node_modules/monaco-emacs/lib/emacs/util.js +0 -112
  622. package/dist/node_modules/monaco-emacs/lib/index.js +0 -31
  623. package/dist/node_modules/monaco-vim/lib/cm_adapter.js +0 -1393
  624. package/dist/node_modules/monaco-vim/lib/index.js +0 -71
  625. package/dist/node_modules/monaco-vim/lib/statusbar.js +0 -239
  626. package/dist/services.d.ts +0 -8
  627. package/dist/services.js +0 -73
  628. package/dist/style.js +0 -12
  629. package/dist/theme/index.js +0 -21
  630. package/dist/tools/EditorOpenHandlerRegistry.js +0 -108
  631. package/dist/tools/FakeWorker.d.ts +0 -5
  632. package/dist/tools/FakeWorker.js +0 -8
  633. package/dist/tools.js +0 -235
  634. /package/dist/{editor → extensions}/autofold.d.ts +0 -0
  635. /package/dist/{editor → extensions}/cobol.d.ts +0 -0
  636. /package/dist/{editor → extensions}/index.d.ts +0 -0
  637. /package/dist/{features/debug.d.ts → languages/snippets/index.d.ts} +0 -0
  638. /package/dist/{features/extensionHostWorker.d.ts → languages/textMate/semanticTokens.d.ts} +0 -0
@@ -0,0 +1,4992 @@
1
+ var information_for_contributors = [
2
+ "This file has been converted from https://github.com/microsoft/vscode/blob/master/extensions/csharp/",
3
+ "If you want to provide a fix or improvement, please create a pull request against the original repository.",
4
+ "Once accepted there, we are happy to receive an update request."
5
+ ];
6
+ var version = "https://github.com/dotnet/csharp-tmLanguage/commit/5e7dd90d2af9817b0dfb614b21c79a3e81882d9f";
7
+ var name = "C#";
8
+ var scopeName = "source.cs";
9
+ var patterns = [
10
+ {
11
+ include: "#preprocessor"
12
+ },
13
+ {
14
+ include: "#comment"
15
+ },
16
+ {
17
+ include: "#directives"
18
+ },
19
+ {
20
+ include: "#declarations"
21
+ },
22
+ {
23
+ include: "#script-top-level"
24
+ }
25
+ ];
26
+ var repository = {
27
+ directives: {
28
+ patterns: [
29
+ {
30
+ include: "#extern-alias-directive"
31
+ },
32
+ {
33
+ include: "#using-directive"
34
+ },
35
+ {
36
+ include: "#attribute-section"
37
+ },
38
+ {
39
+ include: "#punctuation-semicolon"
40
+ }
41
+ ]
42
+ },
43
+ declarations: {
44
+ patterns: [
45
+ {
46
+ include: "#namespace-declaration"
47
+ },
48
+ {
49
+ include: "#type-declarations"
50
+ },
51
+ {
52
+ include: "#punctuation-semicolon"
53
+ }
54
+ ]
55
+ },
56
+ "script-top-level": {
57
+ patterns: [
58
+ {
59
+ include: "#method-declaration"
60
+ },
61
+ {
62
+ include: "#statement"
63
+ },
64
+ {
65
+ include: "#punctuation-semicolon"
66
+ }
67
+ ]
68
+ },
69
+ "type-declarations": {
70
+ patterns: [
71
+ {
72
+ include: "#preprocessor"
73
+ },
74
+ {
75
+ include: "#comment"
76
+ },
77
+ {
78
+ include: "#storage-modifier"
79
+ },
80
+ {
81
+ include: "#class-declaration"
82
+ },
83
+ {
84
+ include: "#delegate-declaration"
85
+ },
86
+ {
87
+ include: "#enum-declaration"
88
+ },
89
+ {
90
+ include: "#interface-declaration"
91
+ },
92
+ {
93
+ include: "#record-declaration"
94
+ },
95
+ {
96
+ include: "#struct-declaration"
97
+ },
98
+ {
99
+ include: "#attribute-section"
100
+ },
101
+ {
102
+ include: "#punctuation-semicolon"
103
+ }
104
+ ]
105
+ },
106
+ "class-or-struct-members": {
107
+ patterns: [
108
+ {
109
+ include: "#preprocessor"
110
+ },
111
+ {
112
+ include: "#comment"
113
+ },
114
+ {
115
+ include: "#storage-modifier"
116
+ },
117
+ {
118
+ include: "#type-declarations"
119
+ },
120
+ {
121
+ include: "#property-declaration"
122
+ },
123
+ {
124
+ include: "#field-declaration"
125
+ },
126
+ {
127
+ include: "#event-declaration"
128
+ },
129
+ {
130
+ include: "#indexer-declaration"
131
+ },
132
+ {
133
+ include: "#variable-initializer"
134
+ },
135
+ {
136
+ include: "#constructor-declaration"
137
+ },
138
+ {
139
+ include: "#destructor-declaration"
140
+ },
141
+ {
142
+ include: "#operator-declaration"
143
+ },
144
+ {
145
+ include: "#conversion-operator-declaration"
146
+ },
147
+ {
148
+ include: "#method-declaration"
149
+ },
150
+ {
151
+ include: "#attribute-section"
152
+ },
153
+ {
154
+ include: "#punctuation-semicolon"
155
+ }
156
+ ]
157
+ },
158
+ "interface-members": {
159
+ patterns: [
160
+ {
161
+ include: "#preprocessor"
162
+ },
163
+ {
164
+ include: "#comment"
165
+ },
166
+ {
167
+ include: "#property-declaration"
168
+ },
169
+ {
170
+ include: "#event-declaration"
171
+ },
172
+ {
173
+ include: "#indexer-declaration"
174
+ },
175
+ {
176
+ include: "#method-declaration"
177
+ },
178
+ {
179
+ include: "#attribute-section"
180
+ },
181
+ {
182
+ include: "#punctuation-semicolon"
183
+ }
184
+ ]
185
+ },
186
+ statement: {
187
+ patterns: [
188
+ {
189
+ include: "#preprocessor"
190
+ },
191
+ {
192
+ include: "#comment"
193
+ },
194
+ {
195
+ include: "#while-statement"
196
+ },
197
+ {
198
+ include: "#do-statement"
199
+ },
200
+ {
201
+ include: "#for-statement"
202
+ },
203
+ {
204
+ include: "#foreach-statement"
205
+ },
206
+ {
207
+ include: "#if-statement"
208
+ },
209
+ {
210
+ include: "#else-part"
211
+ },
212
+ {
213
+ include: "#switch-statement"
214
+ },
215
+ {
216
+ include: "#goto-statement"
217
+ },
218
+ {
219
+ include: "#return-statement"
220
+ },
221
+ {
222
+ include: "#break-or-continue-statement"
223
+ },
224
+ {
225
+ include: "#throw-statement"
226
+ },
227
+ {
228
+ include: "#yield-statement"
229
+ },
230
+ {
231
+ include: "#await-statement"
232
+ },
233
+ {
234
+ include: "#try-statement"
235
+ },
236
+ {
237
+ include: "#checked-unchecked-statement"
238
+ },
239
+ {
240
+ include: "#lock-statement"
241
+ },
242
+ {
243
+ include: "#using-statement"
244
+ },
245
+ {
246
+ include: "#labeled-statement"
247
+ },
248
+ {
249
+ include: "#object-creation-expression"
250
+ },
251
+ {
252
+ include: "#array-creation-expression"
253
+ },
254
+ {
255
+ include: "#anonymous-object-creation-expression"
256
+ },
257
+ {
258
+ include: "#local-declaration"
259
+ },
260
+ {
261
+ include: "#block"
262
+ },
263
+ {
264
+ include: "#expression"
265
+ },
266
+ {
267
+ include: "#punctuation-semicolon"
268
+ }
269
+ ]
270
+ },
271
+ expression: {
272
+ patterns: [
273
+ {
274
+ include: "#preprocessor"
275
+ },
276
+ {
277
+ include: "#comment"
278
+ },
279
+ {
280
+ include: "#checked-unchecked-expression"
281
+ },
282
+ {
283
+ include: "#typeof-or-default-expression"
284
+ },
285
+ {
286
+ include: "#nameof-expression"
287
+ },
288
+ {
289
+ include: "#throw-expression"
290
+ },
291
+ {
292
+ include: "#raw-interpolated-string"
293
+ },
294
+ {
295
+ include: "#interpolated-string"
296
+ },
297
+ {
298
+ include: "#verbatim-interpolated-string"
299
+ },
300
+ {
301
+ include: "#this-or-base-expression"
302
+ },
303
+ {
304
+ include: "#switch-expression"
305
+ },
306
+ {
307
+ include: "#conditional-operator"
308
+ },
309
+ {
310
+ include: "#expression-operators"
311
+ },
312
+ {
313
+ include: "#await-expression"
314
+ },
315
+ {
316
+ include: "#query-expression"
317
+ },
318
+ {
319
+ include: "#as-expression"
320
+ },
321
+ {
322
+ include: "#is-expression"
323
+ },
324
+ {
325
+ include: "#anonymous-method-expression"
326
+ },
327
+ {
328
+ include: "#object-creation-expression"
329
+ },
330
+ {
331
+ include: "#array-creation-expression"
332
+ },
333
+ {
334
+ include: "#anonymous-object-creation-expression"
335
+ },
336
+ {
337
+ include: "#invocation-expression"
338
+ },
339
+ {
340
+ include: "#member-access-expression"
341
+ },
342
+ {
343
+ include: "#element-access-expression"
344
+ },
345
+ {
346
+ include: "#cast-expression"
347
+ },
348
+ {
349
+ include: "#literal"
350
+ },
351
+ {
352
+ include: "#parenthesized-expression"
353
+ },
354
+ {
355
+ include: "#tuple-deconstruction-assignment"
356
+ },
357
+ {
358
+ include: "#initializer-expression"
359
+ },
360
+ {
361
+ include: "#identifier"
362
+ }
363
+ ]
364
+ },
365
+ "extern-alias-directive": {
366
+ begin: "\\s*(extern)\\b\\s*(alias)\\b\\s*(@?[_[:alpha:]][_[:alnum:]]*)",
367
+ beginCaptures: {
368
+ "1": {
369
+ name: "keyword.other.extern.cs"
370
+ },
371
+ "2": {
372
+ name: "keyword.other.alias.cs"
373
+ },
374
+ "3": {
375
+ name: "variable.other.alias.cs"
376
+ }
377
+ },
378
+ end: "(?=;)"
379
+ },
380
+ "using-directive": {
381
+ patterns: [
382
+ {
383
+ begin: "\\b(using)\\b\\s+(static)\\s+",
384
+ beginCaptures: {
385
+ "1": {
386
+ name: "keyword.other.using.cs"
387
+ },
388
+ "2": {
389
+ name: "keyword.other.static.cs"
390
+ }
391
+ },
392
+ end: "(?=;)",
393
+ patterns: [
394
+ {
395
+ include: "#type"
396
+ }
397
+ ]
398
+ },
399
+ {
400
+ begin: "\\b(using)\\s+(?=(@?[_[:alpha:]][_[:alnum:]]*)\\s*=)",
401
+ beginCaptures: {
402
+ "1": {
403
+ name: "keyword.other.using.cs"
404
+ },
405
+ "2": {
406
+ name: "entity.name.type.alias.cs"
407
+ }
408
+ },
409
+ end: "(?=;)",
410
+ patterns: [
411
+ {
412
+ include: "#comment"
413
+ },
414
+ {
415
+ include: "#type"
416
+ },
417
+ {
418
+ include: "#operator-assignment"
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ begin: "\\b(using)\\s*",
424
+ beginCaptures: {
425
+ "1": {
426
+ name: "keyword.other.using.cs"
427
+ }
428
+ },
429
+ end: "(?=;)",
430
+ patterns: [
431
+ {
432
+ include: "#comment"
433
+ },
434
+ {
435
+ name: "entity.name.type.namespace.cs",
436
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
437
+ },
438
+ {
439
+ include: "#operator-assignment"
440
+ }
441
+ ]
442
+ }
443
+ ]
444
+ },
445
+ "attribute-section": {
446
+ begin: "(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?",
447
+ beginCaptures: {
448
+ "1": {
449
+ name: "punctuation.squarebracket.open.cs"
450
+ },
451
+ "2": {
452
+ name: "keyword.other.attribute-specifier.cs"
453
+ },
454
+ "3": {
455
+ name: "punctuation.separator.colon.cs"
456
+ }
457
+ },
458
+ end: "(\\])",
459
+ endCaptures: {
460
+ "1": {
461
+ name: "punctuation.squarebracket.close.cs"
462
+ }
463
+ },
464
+ patterns: [
465
+ {
466
+ include: "#comment"
467
+ },
468
+ {
469
+ include: "#attribute"
470
+ },
471
+ {
472
+ include: "#punctuation-comma"
473
+ }
474
+ ]
475
+ },
476
+ attribute: {
477
+ patterns: [
478
+ {
479
+ include: "#type-name"
480
+ },
481
+ {
482
+ include: "#attribute-arguments"
483
+ }
484
+ ]
485
+ },
486
+ "attribute-arguments": {
487
+ begin: "(\\()",
488
+ beginCaptures: {
489
+ "1": {
490
+ name: "punctuation.parenthesis.open.cs"
491
+ }
492
+ },
493
+ end: "(\\))",
494
+ endCaptures: {
495
+ "1": {
496
+ name: "punctuation.parenthesis.close.cs"
497
+ }
498
+ },
499
+ patterns: [
500
+ {
501
+ include: "#attribute-named-argument"
502
+ },
503
+ {
504
+ include: "#expression"
505
+ },
506
+ {
507
+ include: "#punctuation-comma"
508
+ }
509
+ ]
510
+ },
511
+ "attribute-named-argument": {
512
+ begin: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)",
513
+ beginCaptures: {
514
+ "1": {
515
+ name: "entity.name.variable.property.cs"
516
+ }
517
+ },
518
+ end: "(?=(,|\\)))",
519
+ patterns: [
520
+ {
521
+ include: "#operator-assignment"
522
+ },
523
+ {
524
+ include: "#expression"
525
+ }
526
+ ]
527
+ },
528
+ "namespace-declaration": {
529
+ begin: "\\b(namespace)\\s+",
530
+ beginCaptures: {
531
+ "1": {
532
+ name: "keyword.other.namespace.cs"
533
+ }
534
+ },
535
+ end: "(?<=\\})|(?=;)",
536
+ patterns: [
537
+ {
538
+ include: "#comment"
539
+ },
540
+ {
541
+ name: "entity.name.type.namespace.cs",
542
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
543
+ },
544
+ {
545
+ include: "#punctuation-accessor"
546
+ },
547
+ {
548
+ begin: "\\{",
549
+ beginCaptures: {
550
+ "0": {
551
+ name: "punctuation.curlybrace.open.cs"
552
+ }
553
+ },
554
+ end: "\\}",
555
+ endCaptures: {
556
+ "0": {
557
+ name: "punctuation.curlybrace.close.cs"
558
+ }
559
+ },
560
+ patterns: [
561
+ {
562
+ include: "#declarations"
563
+ },
564
+ {
565
+ include: "#using-directive"
566
+ },
567
+ {
568
+ include: "#punctuation-semicolon"
569
+ }
570
+ ]
571
+ }
572
+ ]
573
+ },
574
+ "storage-modifier": {
575
+ name: "storage.modifier.cs",
576
+ match: "(?<!\\.)\\b(new|public|protected|internal|private|abstract|virtual|override|sealed|static|partial|readonly|volatile|const|extern|async|unsafe|ref|required)\\b"
577
+ },
578
+ "class-declaration": {
579
+ begin: "(?=\\bclass\\b)",
580
+ end: "(?<=\\})",
581
+ patterns: [
582
+ {
583
+ begin: "(?x)\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*",
584
+ beginCaptures: {
585
+ "1": {
586
+ name: "keyword.other.class.cs"
587
+ },
588
+ "2": {
589
+ name: "entity.name.type.class.cs"
590
+ }
591
+ },
592
+ end: "(?=\\{)",
593
+ patterns: [
594
+ {
595
+ include: "#comment"
596
+ },
597
+ {
598
+ include: "#type-parameter-list"
599
+ },
600
+ {
601
+ include: "#base-types"
602
+ },
603
+ {
604
+ include: "#generic-constraints"
605
+ }
606
+ ]
607
+ },
608
+ {
609
+ begin: "\\{",
610
+ beginCaptures: {
611
+ "0": {
612
+ name: "punctuation.curlybrace.open.cs"
613
+ }
614
+ },
615
+ end: "\\}",
616
+ endCaptures: {
617
+ "0": {
618
+ name: "punctuation.curlybrace.close.cs"
619
+ }
620
+ },
621
+ patterns: [
622
+ {
623
+ include: "#class-or-struct-members"
624
+ }
625
+ ]
626
+ },
627
+ {
628
+ include: "#preprocessor"
629
+ },
630
+ {
631
+ include: "#comment"
632
+ }
633
+ ]
634
+ },
635
+ "delegate-declaration": {
636
+ begin: "(?x)\n(?:\\b(delegate)\\b)\\s+\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",
637
+ beginCaptures: {
638
+ "1": {
639
+ name: "keyword.other.delegate.cs"
640
+ },
641
+ "2": {
642
+ patterns: [
643
+ {
644
+ include: "#type"
645
+ }
646
+ ]
647
+ },
648
+ "7": {
649
+ name: "entity.name.type.delegate.cs"
650
+ },
651
+ "8": {
652
+ patterns: [
653
+ {
654
+ include: "#type-parameter-list"
655
+ }
656
+ ]
657
+ }
658
+ },
659
+ end: "(?=;)",
660
+ patterns: [
661
+ {
662
+ include: "#comment"
663
+ },
664
+ {
665
+ include: "#parenthesized-parameter-list"
666
+ },
667
+ {
668
+ include: "#generic-constraints"
669
+ }
670
+ ]
671
+ },
672
+ "enum-declaration": {
673
+ begin: "(?=\\benum\\b)",
674
+ end: "(?<=\\})",
675
+ patterns: [
676
+ {
677
+ begin: "(?=enum)",
678
+ end: "(?=\\{)",
679
+ patterns: [
680
+ {
681
+ include: "#comment"
682
+ },
683
+ {
684
+ match: "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)",
685
+ captures: {
686
+ "1": {
687
+ name: "keyword.other.enum.cs"
688
+ },
689
+ "2": {
690
+ name: "entity.name.type.enum.cs"
691
+ }
692
+ }
693
+ },
694
+ {
695
+ begin: ":",
696
+ beginCaptures: {
697
+ "0": {
698
+ name: "punctuation.separator.colon.cs"
699
+ }
700
+ },
701
+ end: "(?=\\{)",
702
+ patterns: [
703
+ {
704
+ include: "#type"
705
+ }
706
+ ]
707
+ }
708
+ ]
709
+ },
710
+ {
711
+ begin: "\\{",
712
+ beginCaptures: {
713
+ "0": {
714
+ name: "punctuation.curlybrace.open.cs"
715
+ }
716
+ },
717
+ end: "\\}",
718
+ endCaptures: {
719
+ "0": {
720
+ name: "punctuation.curlybrace.close.cs"
721
+ }
722
+ },
723
+ patterns: [
724
+ {
725
+ include: "#preprocessor"
726
+ },
727
+ {
728
+ include: "#comment"
729
+ },
730
+ {
731
+ include: "#attribute-section"
732
+ },
733
+ {
734
+ include: "#punctuation-comma"
735
+ },
736
+ {
737
+ begin: "@?[_[:alpha:]][_[:alnum:]]*",
738
+ beginCaptures: {
739
+ "0": {
740
+ name: "entity.name.variable.enum-member.cs"
741
+ }
742
+ },
743
+ end: "(?=(,|\\}))",
744
+ patterns: [
745
+ {
746
+ include: "#comment"
747
+ },
748
+ {
749
+ include: "#variable-initializer"
750
+ }
751
+ ]
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ include: "#preprocessor"
757
+ },
758
+ {
759
+ include: "#comment"
760
+ }
761
+ ]
762
+ },
763
+ "interface-declaration": {
764
+ begin: "(?=\\binterface\\b)",
765
+ end: "(?<=\\})",
766
+ patterns: [
767
+ {
768
+ begin: "(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",
769
+ beginCaptures: {
770
+ "1": {
771
+ name: "keyword.other.interface.cs"
772
+ },
773
+ "2": {
774
+ name: "entity.name.type.interface.cs"
775
+ }
776
+ },
777
+ end: "(?=\\{)",
778
+ patterns: [
779
+ {
780
+ include: "#comment"
781
+ },
782
+ {
783
+ include: "#type-parameter-list"
784
+ },
785
+ {
786
+ include: "#base-types"
787
+ },
788
+ {
789
+ include: "#generic-constraints"
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ begin: "\\{",
795
+ beginCaptures: {
796
+ "0": {
797
+ name: "punctuation.curlybrace.open.cs"
798
+ }
799
+ },
800
+ end: "\\}",
801
+ endCaptures: {
802
+ "0": {
803
+ name: "punctuation.curlybrace.close.cs"
804
+ }
805
+ },
806
+ patterns: [
807
+ {
808
+ include: "#interface-members"
809
+ }
810
+ ]
811
+ },
812
+ {
813
+ include: "#preprocessor"
814
+ },
815
+ {
816
+ include: "#comment"
817
+ }
818
+ ]
819
+ },
820
+ "record-declaration": {
821
+ begin: "(?=\\brecord\\b)",
822
+ end: "(?<=\\})",
823
+ patterns: [
824
+ {
825
+ begin: "(?x)\n(record)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",
826
+ beginCaptures: {
827
+ "1": {
828
+ name: "keyword.other.record.cs"
829
+ },
830
+ "2": {
831
+ name: "entity.name.type.record.cs"
832
+ }
833
+ },
834
+ end: "(?=\\{)",
835
+ patterns: [
836
+ {
837
+ include: "#comment"
838
+ },
839
+ {
840
+ include: "#type-parameter-list"
841
+ },
842
+ {
843
+ include: "#base-types"
844
+ },
845
+ {
846
+ include: "#generic-constraints"
847
+ }
848
+ ]
849
+ },
850
+ {
851
+ begin: "\\{",
852
+ beginCaptures: {
853
+ "0": {
854
+ name: "punctuation.curlybrace.open.cs"
855
+ }
856
+ },
857
+ end: "\\}",
858
+ endCaptures: {
859
+ "0": {
860
+ name: "punctuation.curlybrace.close.cs"
861
+ }
862
+ },
863
+ patterns: [
864
+ {
865
+ include: "#class-or-struct-members"
866
+ }
867
+ ]
868
+ },
869
+ {
870
+ include: "#preprocessor"
871
+ },
872
+ {
873
+ include: "#comment"
874
+ }
875
+ ]
876
+ },
877
+ "struct-declaration": {
878
+ begin: "(?=\\bstruct\\b)",
879
+ end: "(?<=\\})",
880
+ patterns: [
881
+ {
882
+ begin: "(?x)\n(struct)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",
883
+ beginCaptures: {
884
+ "1": {
885
+ name: "keyword.other.struct.cs"
886
+ },
887
+ "2": {
888
+ name: "entity.name.type.struct.cs"
889
+ }
890
+ },
891
+ end: "(?=\\{)",
892
+ patterns: [
893
+ {
894
+ include: "#comment"
895
+ },
896
+ {
897
+ include: "#type-parameter-list"
898
+ },
899
+ {
900
+ include: "#base-types"
901
+ },
902
+ {
903
+ include: "#generic-constraints"
904
+ }
905
+ ]
906
+ },
907
+ {
908
+ begin: "\\{",
909
+ beginCaptures: {
910
+ "0": {
911
+ name: "punctuation.curlybrace.open.cs"
912
+ }
913
+ },
914
+ end: "\\}",
915
+ endCaptures: {
916
+ "0": {
917
+ name: "punctuation.curlybrace.close.cs"
918
+ }
919
+ },
920
+ patterns: [
921
+ {
922
+ include: "#class-or-struct-members"
923
+ }
924
+ ]
925
+ },
926
+ {
927
+ include: "#preprocessor"
928
+ },
929
+ {
930
+ include: "#comment"
931
+ }
932
+ ]
933
+ },
934
+ "type-parameter-list": {
935
+ begin: "\\<",
936
+ beginCaptures: {
937
+ "0": {
938
+ name: "punctuation.definition.typeparameters.begin.cs"
939
+ }
940
+ },
941
+ end: "\\>",
942
+ endCaptures: {
943
+ "0": {
944
+ name: "punctuation.definition.typeparameters.end.cs"
945
+ }
946
+ },
947
+ patterns: [
948
+ {
949
+ match: "\\b(in|out)\\b",
950
+ captures: {
951
+ "1": {
952
+ name: "storage.modifier.cs"
953
+ }
954
+ }
955
+ },
956
+ {
957
+ match: "(@?[_[:alpha:]][_[:alnum:]]*)\\b",
958
+ captures: {
959
+ "1": {
960
+ name: "entity.name.type.type-parameter.cs"
961
+ }
962
+ }
963
+ },
964
+ {
965
+ include: "#comment"
966
+ },
967
+ {
968
+ include: "#punctuation-comma"
969
+ },
970
+ {
971
+ include: "#attribute-section"
972
+ }
973
+ ]
974
+ },
975
+ "base-types": {
976
+ begin: ":",
977
+ beginCaptures: {
978
+ "0": {
979
+ name: "punctuation.separator.colon.cs"
980
+ }
981
+ },
982
+ end: "(?=\\{|where)",
983
+ patterns: [
984
+ {
985
+ include: "#type"
986
+ },
987
+ {
988
+ include: "#punctuation-comma"
989
+ },
990
+ {
991
+ include: "#preprocessor"
992
+ }
993
+ ]
994
+ },
995
+ "generic-constraints": {
996
+ begin: "(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",
997
+ beginCaptures: {
998
+ "1": {
999
+ name: "keyword.other.where.cs"
1000
+ },
1001
+ "2": {
1002
+ name: "entity.name.type.type-parameter.cs"
1003
+ },
1004
+ "3": {
1005
+ name: "punctuation.separator.colon.cs"
1006
+ }
1007
+ },
1008
+ end: "(?=\\{|where|;|=>)",
1009
+ patterns: [
1010
+ {
1011
+ name: "keyword.other.class.cs",
1012
+ match: "\\bclass\\b"
1013
+ },
1014
+ {
1015
+ name: "keyword.other.struct.cs",
1016
+ match: "\\bstruct\\b"
1017
+ },
1018
+ {
1019
+ match: "(new)\\s*(\\()\\s*(\\))",
1020
+ captures: {
1021
+ "1": {
1022
+ name: "keyword.other.new.cs"
1023
+ },
1024
+ "2": {
1025
+ name: "punctuation.parenthesis.open.cs"
1026
+ },
1027
+ "3": {
1028
+ name: "punctuation.parenthesis.close.cs"
1029
+ }
1030
+ }
1031
+ },
1032
+ {
1033
+ include: "#type"
1034
+ },
1035
+ {
1036
+ include: "#punctuation-comma"
1037
+ },
1038
+ {
1039
+ include: "#generic-constraints"
1040
+ }
1041
+ ]
1042
+ },
1043
+ "field-declaration": {
1044
+ begin: "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)",
1045
+ beginCaptures: {
1046
+ "1": {
1047
+ patterns: [
1048
+ {
1049
+ include: "#type"
1050
+ }
1051
+ ]
1052
+ },
1053
+ "6": {
1054
+ name: "entity.name.variable.field.cs"
1055
+ }
1056
+ },
1057
+ end: "(?=;)",
1058
+ patterns: [
1059
+ {
1060
+ name: "entity.name.variable.field.cs",
1061
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
1062
+ },
1063
+ {
1064
+ include: "#punctuation-comma"
1065
+ },
1066
+ {
1067
+ include: "#comment"
1068
+ },
1069
+ {
1070
+ include: "#variable-initializer"
1071
+ },
1072
+ {
1073
+ include: "#class-or-struct-members"
1074
+ }
1075
+ ]
1076
+ },
1077
+ "property-declaration": {
1078
+ begin: "(?x)\n\n# The negative lookahead below ensures that we don't match nested types\n# or other declarations as properties.\n(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)\n\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<property_name>\\g<identifier>)\\s*\n(?=\\{|=>|$)",
1079
+ beginCaptures: {
1080
+ "1": {
1081
+ patterns: [
1082
+ {
1083
+ include: "#type"
1084
+ }
1085
+ ]
1086
+ },
1087
+ "7": {
1088
+ patterns: [
1089
+ {
1090
+ include: "#type"
1091
+ },
1092
+ {
1093
+ include: "#punctuation-accessor"
1094
+ }
1095
+ ]
1096
+ },
1097
+ "8": {
1098
+ name: "entity.name.variable.property.cs"
1099
+ }
1100
+ },
1101
+ end: "(?<=\\})|(?=;)",
1102
+ patterns: [
1103
+ {
1104
+ include: "#comment"
1105
+ },
1106
+ {
1107
+ include: "#property-accessors"
1108
+ },
1109
+ {
1110
+ include: "#expression-body"
1111
+ },
1112
+ {
1113
+ include: "#variable-initializer"
1114
+ },
1115
+ {
1116
+ include: "#class-or-struct-members"
1117
+ }
1118
+ ]
1119
+ },
1120
+ "indexer-declaration": {
1121
+ begin: "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<indexer_name>this)\\s*\n(?=\\[)",
1122
+ beginCaptures: {
1123
+ "1": {
1124
+ patterns: [
1125
+ {
1126
+ include: "#type"
1127
+ }
1128
+ ]
1129
+ },
1130
+ "7": {
1131
+ patterns: [
1132
+ {
1133
+ include: "#type"
1134
+ },
1135
+ {
1136
+ include: "#punctuation-accessor"
1137
+ }
1138
+ ]
1139
+ },
1140
+ "8": {
1141
+ name: "keyword.other.this.cs"
1142
+ }
1143
+ },
1144
+ end: "(?<=\\})|(?=;)",
1145
+ patterns: [
1146
+ {
1147
+ include: "#comment"
1148
+ },
1149
+ {
1150
+ include: "#bracketed-parameter-list"
1151
+ },
1152
+ {
1153
+ include: "#property-accessors"
1154
+ },
1155
+ {
1156
+ include: "#expression-body"
1157
+ },
1158
+ {
1159
+ include: "#variable-initializer"
1160
+ }
1161
+ ]
1162
+ },
1163
+ "event-declaration": {
1164
+ begin: "(?x)\n\\b(event)\\b\\s*\n(?<return_type>\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<event_names>\\g<identifier>(?:\\s*,\\s*\\g<identifier>)*)\\s*\n(?=\\{|;|$)",
1165
+ beginCaptures: {
1166
+ "1": {
1167
+ name: "keyword.other.event.cs"
1168
+ },
1169
+ "2": {
1170
+ patterns: [
1171
+ {
1172
+ include: "#type"
1173
+ }
1174
+ ]
1175
+ },
1176
+ "8": {
1177
+ patterns: [
1178
+ {
1179
+ include: "#type"
1180
+ },
1181
+ {
1182
+ include: "#punctuation-accessor"
1183
+ }
1184
+ ]
1185
+ },
1186
+ "9": {
1187
+ patterns: [
1188
+ {
1189
+ name: "entity.name.variable.event.cs",
1190
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
1191
+ },
1192
+ {
1193
+ include: "#punctuation-comma"
1194
+ }
1195
+ ]
1196
+ }
1197
+ },
1198
+ end: "(?<=\\})|(?=;)",
1199
+ patterns: [
1200
+ {
1201
+ include: "#comment"
1202
+ },
1203
+ {
1204
+ include: "#event-accessors"
1205
+ },
1206
+ {
1207
+ include: "#punctuation-comma"
1208
+ }
1209
+ ]
1210
+ },
1211
+ "property-accessors": {
1212
+ begin: "\\{",
1213
+ beginCaptures: {
1214
+ "0": {
1215
+ name: "punctuation.curlybrace.open.cs"
1216
+ }
1217
+ },
1218
+ end: "\\}",
1219
+ endCaptures: {
1220
+ "0": {
1221
+ name: "punctuation.curlybrace.close.cs"
1222
+ }
1223
+ },
1224
+ patterns: [
1225
+ {
1226
+ name: "storage.modifier.cs",
1227
+ match: "\\b(private|protected|internal)\\b"
1228
+ },
1229
+ {
1230
+ name: "keyword.other.get.cs",
1231
+ match: "\\b(get)\\b"
1232
+ },
1233
+ {
1234
+ name: "keyword.other.set.cs",
1235
+ match: "\\b(set)\\b"
1236
+ },
1237
+ {
1238
+ name: "keyword.other.init.cs",
1239
+ match: "\\b(init)\\b"
1240
+ },
1241
+ {
1242
+ include: "#comment"
1243
+ },
1244
+ {
1245
+ include: "#attribute-section"
1246
+ },
1247
+ {
1248
+ include: "#expression-body"
1249
+ },
1250
+ {
1251
+ include: "#block"
1252
+ },
1253
+ {
1254
+ include: "#punctuation-semicolon"
1255
+ }
1256
+ ]
1257
+ },
1258
+ "event-accessors": {
1259
+ begin: "\\{",
1260
+ beginCaptures: {
1261
+ "0": {
1262
+ name: "punctuation.curlybrace.open.cs"
1263
+ }
1264
+ },
1265
+ end: "\\}",
1266
+ endCaptures: {
1267
+ "0": {
1268
+ name: "punctuation.curlybrace.close.cs"
1269
+ }
1270
+ },
1271
+ patterns: [
1272
+ {
1273
+ name: "keyword.other.add.cs",
1274
+ match: "\\b(add)\\b"
1275
+ },
1276
+ {
1277
+ name: "keyword.other.remove.cs",
1278
+ match: "\\b(remove)\\b"
1279
+ },
1280
+ {
1281
+ include: "#comment"
1282
+ },
1283
+ {
1284
+ include: "#attribute-section"
1285
+ },
1286
+ {
1287
+ include: "#expression-body"
1288
+ },
1289
+ {
1290
+ include: "#block"
1291
+ },
1292
+ {
1293
+ include: "#punctuation-semicolon"
1294
+ }
1295
+ ]
1296
+ },
1297
+ "method-declaration": {
1298
+ begin: "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",
1299
+ beginCaptures: {
1300
+ "1": {
1301
+ patterns: [
1302
+ {
1303
+ include: "#type"
1304
+ }
1305
+ ]
1306
+ },
1307
+ "7": {
1308
+ patterns: [
1309
+ {
1310
+ include: "#type"
1311
+ },
1312
+ {
1313
+ include: "#punctuation-accessor"
1314
+ }
1315
+ ]
1316
+ },
1317
+ "8": {
1318
+ name: "entity.name.function.cs"
1319
+ },
1320
+ "9": {
1321
+ patterns: [
1322
+ {
1323
+ include: "#type-parameter-list"
1324
+ }
1325
+ ]
1326
+ }
1327
+ },
1328
+ end: "(?<=\\})|(?=;)",
1329
+ patterns: [
1330
+ {
1331
+ include: "#comment"
1332
+ },
1333
+ {
1334
+ include: "#parenthesized-parameter-list"
1335
+ },
1336
+ {
1337
+ include: "#generic-constraints"
1338
+ },
1339
+ {
1340
+ include: "#expression-body"
1341
+ },
1342
+ {
1343
+ include: "#block"
1344
+ }
1345
+ ]
1346
+ },
1347
+ "constructor-declaration": {
1348
+ begin: "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()",
1349
+ end: "(?<=\\})|(?=;)",
1350
+ patterns: [
1351
+ {
1352
+ match: "(@?[_[:alpha:]][_[:alnum:]]*)\\b",
1353
+ captures: {
1354
+ "1": {
1355
+ name: "entity.name.function.cs"
1356
+ }
1357
+ }
1358
+ },
1359
+ {
1360
+ begin: "(:)",
1361
+ beginCaptures: {
1362
+ "1": {
1363
+ name: "punctuation.separator.colon.cs"
1364
+ }
1365
+ },
1366
+ end: "(?=\\{|=>)",
1367
+ patterns: [
1368
+ {
1369
+ include: "#constructor-initializer"
1370
+ }
1371
+ ]
1372
+ },
1373
+ {
1374
+ include: "#parenthesized-parameter-list"
1375
+ },
1376
+ {
1377
+ include: "#preprocessor"
1378
+ },
1379
+ {
1380
+ include: "#comment"
1381
+ },
1382
+ {
1383
+ include: "#expression-body"
1384
+ },
1385
+ {
1386
+ include: "#block"
1387
+ }
1388
+ ]
1389
+ },
1390
+ "constructor-initializer": {
1391
+ begin: "\\b(?:(base)|(this))\\b\\s*(?=\\()",
1392
+ beginCaptures: {
1393
+ "1": {
1394
+ name: "keyword.other.base.cs"
1395
+ },
1396
+ "2": {
1397
+ name: "keyword.other.this.cs"
1398
+ }
1399
+ },
1400
+ end: "(?<=\\))",
1401
+ patterns: [
1402
+ {
1403
+ include: "#argument-list"
1404
+ }
1405
+ ]
1406
+ },
1407
+ "destructor-declaration": {
1408
+ begin: "(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()",
1409
+ beginCaptures: {
1410
+ "1": {
1411
+ name: "punctuation.tilde.cs"
1412
+ },
1413
+ "2": {
1414
+ name: "entity.name.function.cs"
1415
+ }
1416
+ },
1417
+ end: "(?<=\\})|(?=;)",
1418
+ patterns: [
1419
+ {
1420
+ include: "#comment"
1421
+ },
1422
+ {
1423
+ include: "#parenthesized-parameter-list"
1424
+ },
1425
+ {
1426
+ include: "#expression-body"
1427
+ },
1428
+ {
1429
+ include: "#block"
1430
+ }
1431
+ ]
1432
+ },
1433
+ "operator-declaration": {
1434
+ begin: "(?x)\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?<operator_keyword>(?:\\b(?:operator)))\\s*\n(?<operator>(?:\\+|-|\\*|/|%|&|\\||\\^|\\<\\<|\\>\\>|==|!=|\\>|\\<|\\>=|\\<=|!|~|\\+\\+|--|true|false))\\s*\n(?=\\()",
1435
+ beginCaptures: {
1436
+ "1": {
1437
+ patterns: [
1438
+ {
1439
+ include: "#type"
1440
+ }
1441
+ ]
1442
+ },
1443
+ "6": {
1444
+ name: "keyword.other.operator-decl.cs"
1445
+ },
1446
+ "7": {
1447
+ name: "entity.name.function.cs"
1448
+ }
1449
+ },
1450
+ end: "(?<=\\})|(?=;)",
1451
+ patterns: [
1452
+ {
1453
+ include: "#comment"
1454
+ },
1455
+ {
1456
+ include: "#parenthesized-parameter-list"
1457
+ },
1458
+ {
1459
+ include: "#expression-body"
1460
+ },
1461
+ {
1462
+ include: "#block"
1463
+ }
1464
+ ]
1465
+ },
1466
+ "conversion-operator-declaration": {
1467
+ begin: "(?x)\n(?<explicit_or_implicit_keyword>(?:\\b(?:explicit|implicit)))\\s*\n(?<operator_keyword>(?:\\b(?:operator)))\\s*\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\()",
1468
+ beginCaptures: {
1469
+ "1": {
1470
+ patterns: [
1471
+ {
1472
+ match: "\\b(explicit)\\b",
1473
+ captures: {
1474
+ "1": {
1475
+ name: "keyword.other.explicit.cs"
1476
+ }
1477
+ }
1478
+ },
1479
+ {
1480
+ match: "\\b(implicit)\\b",
1481
+ captures: {
1482
+ "1": {
1483
+ name: "keyword.other.implicit.cs"
1484
+ }
1485
+ }
1486
+ }
1487
+ ]
1488
+ },
1489
+ "2": {
1490
+ name: "keyword.other.operator-decl.cs"
1491
+ },
1492
+ "3": {
1493
+ patterns: [
1494
+ {
1495
+ include: "#type"
1496
+ }
1497
+ ]
1498
+ }
1499
+ },
1500
+ end: "(?<=\\})|(?=;)",
1501
+ patterns: [
1502
+ {
1503
+ include: "#comment"
1504
+ },
1505
+ {
1506
+ include: "#parenthesized-parameter-list"
1507
+ },
1508
+ {
1509
+ include: "#expression-body"
1510
+ },
1511
+ {
1512
+ include: "#block"
1513
+ }
1514
+ ]
1515
+ },
1516
+ block: {
1517
+ begin: "\\{",
1518
+ beginCaptures: {
1519
+ "0": {
1520
+ name: "punctuation.curlybrace.open.cs"
1521
+ }
1522
+ },
1523
+ end: "\\}",
1524
+ endCaptures: {
1525
+ "0": {
1526
+ name: "punctuation.curlybrace.close.cs"
1527
+ }
1528
+ },
1529
+ patterns: [
1530
+ {
1531
+ include: "#statement"
1532
+ }
1533
+ ]
1534
+ },
1535
+ "variable-initializer": {
1536
+ begin: "(?<!=|!)(=)(?!=|>)",
1537
+ beginCaptures: {
1538
+ "1": {
1539
+ name: "keyword.operator.assignment.cs"
1540
+ }
1541
+ },
1542
+ end: "(?=[,\\)\\];}])",
1543
+ patterns: [
1544
+ {
1545
+ include: "#ref-modifier"
1546
+ },
1547
+ {
1548
+ include: "#expression"
1549
+ }
1550
+ ]
1551
+ },
1552
+ "expression-body": {
1553
+ begin: "=>",
1554
+ beginCaptures: {
1555
+ "0": {
1556
+ name: "keyword.operator.arrow.cs"
1557
+ }
1558
+ },
1559
+ end: "(?=[,\\);}])",
1560
+ patterns: [
1561
+ {
1562
+ include: "#ref-modifier"
1563
+ },
1564
+ {
1565
+ include: "#expression"
1566
+ }
1567
+ ]
1568
+ },
1569
+ "goto-statement": {
1570
+ begin: "(?<!\\.)\\b(goto)\\b",
1571
+ beginCaptures: {
1572
+ "1": {
1573
+ name: "keyword.control.goto.cs"
1574
+ }
1575
+ },
1576
+ end: "(?=;)",
1577
+ patterns: [
1578
+ {
1579
+ begin: "\\b(case)\\b",
1580
+ beginCaptures: {
1581
+ "1": {
1582
+ name: "keyword.control.case.cs"
1583
+ }
1584
+ },
1585
+ end: "(?=;)",
1586
+ patterns: [
1587
+ {
1588
+ include: "#expression"
1589
+ }
1590
+ ]
1591
+ },
1592
+ {
1593
+ match: "\\b(default)\\b",
1594
+ captures: {
1595
+ "1": {
1596
+ name: "keyword.control.default.cs"
1597
+ }
1598
+ }
1599
+ },
1600
+ {
1601
+ name: "entity.name.label.cs",
1602
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
1603
+ }
1604
+ ]
1605
+ },
1606
+ "return-statement": {
1607
+ begin: "(?<!\\.)\\b(return)\\b",
1608
+ beginCaptures: {
1609
+ "1": {
1610
+ name: "keyword.control.flow.return.cs"
1611
+ }
1612
+ },
1613
+ end: "(?=;)",
1614
+ patterns: [
1615
+ {
1616
+ include: "#ref-modifier"
1617
+ },
1618
+ {
1619
+ include: "#expression"
1620
+ }
1621
+ ]
1622
+ },
1623
+ "break-or-continue-statement": {
1624
+ match: "(?<!\\.)\\b(?:(break)|(continue))\\b",
1625
+ captures: {
1626
+ "1": {
1627
+ name: "keyword.control.flow.break.cs"
1628
+ },
1629
+ "2": {
1630
+ name: "keyword.control.flow.continue.cs"
1631
+ }
1632
+ }
1633
+ },
1634
+ "throw-statement": {
1635
+ begin: "(?<!\\.)\\b(throw)\\b",
1636
+ beginCaptures: {
1637
+ "1": {
1638
+ name: "keyword.control.flow.throw.cs"
1639
+ }
1640
+ },
1641
+ end: "(?=;)",
1642
+ patterns: [
1643
+ {
1644
+ include: "#expression"
1645
+ }
1646
+ ]
1647
+ },
1648
+ "yield-statement": {
1649
+ patterns: [
1650
+ {
1651
+ include: "#yield-return-statement"
1652
+ },
1653
+ {
1654
+ include: "#yield-break-statement"
1655
+ }
1656
+ ]
1657
+ },
1658
+ "yield-return-statement": {
1659
+ begin: "(?<!\\.)\\b(yield)\\b\\s*\\b(return)\\b",
1660
+ beginCaptures: {
1661
+ "1": {
1662
+ name: "keyword.control.flow.yield.cs"
1663
+ },
1664
+ "2": {
1665
+ name: "keyword.control.flow.return.cs"
1666
+ }
1667
+ },
1668
+ end: "(?=;)",
1669
+ patterns: [
1670
+ {
1671
+ include: "#expression"
1672
+ }
1673
+ ]
1674
+ },
1675
+ "yield-break-statement": {
1676
+ match: "(?<!\\.)\\b(yield)\\b\\s*\\b(break)\\b",
1677
+ captures: {
1678
+ "1": {
1679
+ name: "keyword.control.flow.yield.cs"
1680
+ },
1681
+ "2": {
1682
+ name: "keyword.control.flow.break.cs"
1683
+ }
1684
+ }
1685
+ },
1686
+ "await-statement": {
1687
+ begin: "(?<!\\.)\\b(await)\\b",
1688
+ beginCaptures: {
1689
+ "1": {
1690
+ name: "keyword.other.await.cs"
1691
+ }
1692
+ },
1693
+ end: "(?=;)",
1694
+ patterns: [
1695
+ {
1696
+ include: "#statement"
1697
+ }
1698
+ ]
1699
+ },
1700
+ "if-statement": {
1701
+ begin: "(?<!\\.)\\b(if)\\b\\s*(?=\\()",
1702
+ beginCaptures: {
1703
+ "1": {
1704
+ name: "keyword.control.conditional.if.cs"
1705
+ }
1706
+ },
1707
+ end: "(?<=\\})|(?=;)",
1708
+ patterns: [
1709
+ {
1710
+ begin: "\\(",
1711
+ beginCaptures: {
1712
+ "0": {
1713
+ name: "punctuation.parenthesis.open.cs"
1714
+ }
1715
+ },
1716
+ end: "\\)",
1717
+ endCaptures: {
1718
+ "0": {
1719
+ name: "punctuation.parenthesis.close.cs"
1720
+ }
1721
+ },
1722
+ patterns: [
1723
+ {
1724
+ include: "#expression"
1725
+ }
1726
+ ]
1727
+ },
1728
+ {
1729
+ include: "#statement"
1730
+ }
1731
+ ]
1732
+ },
1733
+ "else-part": {
1734
+ begin: "(?<!\\.)\\b(else)\\b",
1735
+ beginCaptures: {
1736
+ "1": {
1737
+ name: "keyword.control.conditional.else.cs"
1738
+ }
1739
+ },
1740
+ end: "(?<=\\})|(?=;)",
1741
+ patterns: [
1742
+ {
1743
+ include: "#statement"
1744
+ }
1745
+ ]
1746
+ },
1747
+ "switch-statement": {
1748
+ begin: "(?<!\\.)\\b(switch)\\b\\s*(?=\\()",
1749
+ beginCaptures: {
1750
+ "1": {
1751
+ name: "keyword.control.switch.cs"
1752
+ }
1753
+ },
1754
+ end: "(?<=\\})",
1755
+ patterns: [
1756
+ {
1757
+ begin: "\\(",
1758
+ beginCaptures: {
1759
+ "0": {
1760
+ name: "punctuation.parenthesis.open.cs"
1761
+ }
1762
+ },
1763
+ end: "\\)",
1764
+ endCaptures: {
1765
+ "0": {
1766
+ name: "punctuation.parenthesis.close.cs"
1767
+ }
1768
+ },
1769
+ patterns: [
1770
+ {
1771
+ include: "#expression"
1772
+ }
1773
+ ]
1774
+ },
1775
+ {
1776
+ begin: "\\{",
1777
+ beginCaptures: {
1778
+ "0": {
1779
+ name: "punctuation.curlybrace.open.cs"
1780
+ }
1781
+ },
1782
+ end: "\\}",
1783
+ endCaptures: {
1784
+ "0": {
1785
+ name: "punctuation.curlybrace.close.cs"
1786
+ }
1787
+ },
1788
+ patterns: [
1789
+ {
1790
+ include: "#switch-label"
1791
+ },
1792
+ {
1793
+ include: "#statement"
1794
+ }
1795
+ ]
1796
+ }
1797
+ ]
1798
+ },
1799
+ "switch-expression": {
1800
+ begin: "(?x) (?<!\\.)\\b(switch)\\b",
1801
+ beginCaptures: {
1802
+ "1": {
1803
+ name: "keyword.control.switch.cs"
1804
+ }
1805
+ },
1806
+ end: "(?<=\\})",
1807
+ endCaptures: {
1808
+ "0": {
1809
+ name: "punctuation.curlybrace.close.cs"
1810
+ }
1811
+ },
1812
+ patterns: [
1813
+ {
1814
+ begin: "\\{",
1815
+ beginCaptures: {
1816
+ "0": {
1817
+ name: "punctuation.curlybrace.open.cs"
1818
+ }
1819
+ },
1820
+ end: "\\}",
1821
+ endCaptures: {
1822
+ "0": {
1823
+ name: "punctuation.curlybrace.close.cs"
1824
+ }
1825
+ },
1826
+ patterns: [
1827
+ {
1828
+ include: "#comment"
1829
+ },
1830
+ {
1831
+ include: "#literal"
1832
+ },
1833
+ {
1834
+ include: "#switch-var-pattern"
1835
+ },
1836
+ {
1837
+ include: "#switch-property-expression"
1838
+ },
1839
+ {
1840
+ include: "#member-access-expression"
1841
+ },
1842
+ {
1843
+ include: "#switch-pattern"
1844
+ },
1845
+ {
1846
+ include: "#expression-body"
1847
+ },
1848
+ {
1849
+ include: "#punctuation-comma"
1850
+ }
1851
+ ]
1852
+ }
1853
+ ]
1854
+ },
1855
+ "switch-pattern": {
1856
+ begin: "(?x) # e.g. int x OR var x\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\b\\s*",
1857
+ beginCaptures: {
1858
+ "1": {
1859
+ patterns: [
1860
+ {
1861
+ include: "#type"
1862
+ }
1863
+ ]
1864
+ },
1865
+ "2": {
1866
+ name: "entity.name.variable.local.cs"
1867
+ }
1868
+ },
1869
+ end: "(?==>)",
1870
+ patterns: [
1871
+ {
1872
+ include: "#comment"
1873
+ },
1874
+ {
1875
+ include: "#switch-when-clause"
1876
+ }
1877
+ ]
1878
+ },
1879
+ "switch-property-expression": {
1880
+ begin: "(?x) # e.g. int x OR var x\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(\\{)",
1881
+ beginCaptures: {
1882
+ "1": {
1883
+ patterns: [
1884
+ {
1885
+ include: "#type"
1886
+ }
1887
+ ]
1888
+ },
1889
+ "6": {
1890
+ name: "punctuation.curlybrace.open.cs"
1891
+ }
1892
+ },
1893
+ end: "\\}",
1894
+ endCaptures: {
1895
+ "0": {
1896
+ name: "punctuation.curlybrace.close.cs"
1897
+ }
1898
+ },
1899
+ patterns: [
1900
+ {
1901
+ include: "#expression"
1902
+ },
1903
+ {
1904
+ include: "#punctuation-comma"
1905
+ }
1906
+ ]
1907
+ },
1908
+ "switch-var-pattern": {
1909
+ begin: "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*",
1910
+ beginCaptures: {
1911
+ "1": {
1912
+ name: "keyword.other.var.cs"
1913
+ },
1914
+ "2": {
1915
+ patterns: [
1916
+ {
1917
+ include: "#tuple-declaration-deconstruction-element-list"
1918
+ }
1919
+ ]
1920
+ }
1921
+ },
1922
+ end: "(?==>)",
1923
+ patterns: [
1924
+ {
1925
+ include: "#comment"
1926
+ },
1927
+ {
1928
+ include: "#switch-when-clause"
1929
+ }
1930
+ ]
1931
+ },
1932
+ "switch-when-clause": {
1933
+ begin: "(?<!\\.)\\b(when)\\b\\s*(\\()?",
1934
+ beginCaptures: {
1935
+ "1": {
1936
+ name: "keyword.control.try.when.cs"
1937
+ },
1938
+ "2": {
1939
+ name: "punctuation.parenthesis.open.cs"
1940
+ }
1941
+ },
1942
+ end: "(?==>)",
1943
+ patterns: [
1944
+ {
1945
+ include: "#comment"
1946
+ },
1947
+ {
1948
+ include: "#expression"
1949
+ },
1950
+ {
1951
+ include: "#punctuation-comma"
1952
+ },
1953
+ {
1954
+ match: "\\(",
1955
+ captures: {
1956
+ "0": {
1957
+ name: "punctuation.parenthesis.open.cs"
1958
+ }
1959
+ }
1960
+ },
1961
+ {
1962
+ match: "\\)",
1963
+ captures: {
1964
+ "0": {
1965
+ name: "punctuation.parenthesis.close.cs"
1966
+ }
1967
+ }
1968
+ }
1969
+ ]
1970
+ },
1971
+ "switch-label": {
1972
+ patterns: [
1973
+ {
1974
+ begin: "(?<!\\.)\\b(case)\\b\\s+",
1975
+ beginCaptures: {
1976
+ "1": {
1977
+ name: "keyword.control.case.cs"
1978
+ }
1979
+ },
1980
+ end: ":",
1981
+ endCaptures: {
1982
+ "0": {
1983
+ name: "punctuation.separator.colon.cs"
1984
+ }
1985
+ },
1986
+ patterns: [
1987
+ {
1988
+ include: "#expression"
1989
+ }
1990
+ ]
1991
+ },
1992
+ {
1993
+ match: "(?<!\\.)\\b(default)\\b\\s*(:)",
1994
+ captures: {
1995
+ "1": {
1996
+ name: "keyword.control.default.cs"
1997
+ },
1998
+ "2": {
1999
+ name: "punctuation.separator.colon.cs"
2000
+ }
2001
+ }
2002
+ }
2003
+ ]
2004
+ },
2005
+ "do-statement": {
2006
+ begin: "(?<!\\.)\\b(do)\\b",
2007
+ beginCaptures: {
2008
+ "1": {
2009
+ name: "keyword.control.loop.do.cs"
2010
+ }
2011
+ },
2012
+ end: "(?=;|})",
2013
+ patterns: [
2014
+ {
2015
+ include: "#statement"
2016
+ }
2017
+ ]
2018
+ },
2019
+ "while-statement": {
2020
+ begin: "(?<!\\.)\\b(while)\\b\\s*(?=\\()",
2021
+ beginCaptures: {
2022
+ "1": {
2023
+ name: "keyword.control.loop.while.cs"
2024
+ }
2025
+ },
2026
+ end: "(?<=\\})|(?=;)",
2027
+ patterns: [
2028
+ {
2029
+ begin: "\\(",
2030
+ beginCaptures: {
2031
+ "0": {
2032
+ name: "punctuation.parenthesis.open.cs"
2033
+ }
2034
+ },
2035
+ end: "\\)",
2036
+ endCaptures: {
2037
+ "0": {
2038
+ name: "punctuation.parenthesis.close.cs"
2039
+ }
2040
+ },
2041
+ patterns: [
2042
+ {
2043
+ include: "#expression"
2044
+ }
2045
+ ]
2046
+ },
2047
+ {
2048
+ include: "#statement"
2049
+ }
2050
+ ]
2051
+ },
2052
+ "for-statement": {
2053
+ begin: "(?<!\\.)\\b(for)\\b\\s*(?=\\()",
2054
+ beginCaptures: {
2055
+ "1": {
2056
+ name: "keyword.control.loop.for.cs"
2057
+ }
2058
+ },
2059
+ end: "(?<=\\})|(?=;)",
2060
+ patterns: [
2061
+ {
2062
+ begin: "\\(",
2063
+ beginCaptures: {
2064
+ "0": {
2065
+ name: "punctuation.parenthesis.open.cs"
2066
+ }
2067
+ },
2068
+ end: "\\)",
2069
+ endCaptures: {
2070
+ "0": {
2071
+ name: "punctuation.parenthesis.close.cs"
2072
+ }
2073
+ },
2074
+ patterns: [
2075
+ {
2076
+ include: "#local-variable-declaration"
2077
+ },
2078
+ {
2079
+ include: "#expression"
2080
+ },
2081
+ {
2082
+ include: "#punctuation-comma"
2083
+ },
2084
+ {
2085
+ include: "#punctuation-semicolon"
2086
+ }
2087
+ ]
2088
+ },
2089
+ {
2090
+ include: "#statement"
2091
+ }
2092
+ ]
2093
+ },
2094
+ "foreach-statement": {
2095
+ begin: "(?<!\\.)\\b(foreach)\\b\\s*(?=\\()",
2096
+ beginCaptures: {
2097
+ "1": {
2098
+ name: "keyword.control.loop.foreach.cs"
2099
+ }
2100
+ },
2101
+ end: "(?<=\\})|(?=;)",
2102
+ patterns: [
2103
+ {
2104
+ begin: "\\(",
2105
+ beginCaptures: {
2106
+ "0": {
2107
+ name: "punctuation.parenthesis.open.cs"
2108
+ }
2109
+ },
2110
+ end: "\\)",
2111
+ endCaptures: {
2112
+ "0": {
2113
+ name: "punctuation.parenthesis.close.cs"
2114
+ }
2115
+ },
2116
+ patterns: [
2117
+ {
2118
+ match: "(?x)\n(?:\n (\\bvar\\b)|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b",
2119
+ captures: {
2120
+ "1": {
2121
+ name: "keyword.other.var.cs"
2122
+ },
2123
+ "2": {
2124
+ patterns: [
2125
+ {
2126
+ include: "#type"
2127
+ }
2128
+ ]
2129
+ },
2130
+ "7": {
2131
+ name: "entity.name.variable.local.cs"
2132
+ },
2133
+ "8": {
2134
+ name: "keyword.control.loop.in.cs"
2135
+ }
2136
+ }
2137
+ },
2138
+ {
2139
+ match: "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b",
2140
+ captures: {
2141
+ "1": {
2142
+ name: "keyword.other.var.cs"
2143
+ },
2144
+ "2": {
2145
+ patterns: [
2146
+ {
2147
+ include: "#tuple-declaration-deconstruction-element-list"
2148
+ }
2149
+ ]
2150
+ },
2151
+ "3": {
2152
+ name: "keyword.control.loop.in.cs"
2153
+ }
2154
+ }
2155
+ },
2156
+ {
2157
+ include: "#expression"
2158
+ }
2159
+ ]
2160
+ },
2161
+ {
2162
+ include: "#statement"
2163
+ }
2164
+ ]
2165
+ },
2166
+ "try-statement": {
2167
+ patterns: [
2168
+ {
2169
+ include: "#try-block"
2170
+ },
2171
+ {
2172
+ include: "#catch-clause"
2173
+ },
2174
+ {
2175
+ include: "#finally-clause"
2176
+ }
2177
+ ]
2178
+ },
2179
+ "try-block": {
2180
+ begin: "(?<!\\.)\\b(try)\\b",
2181
+ beginCaptures: {
2182
+ "1": {
2183
+ name: "keyword.control.try.cs"
2184
+ }
2185
+ },
2186
+ end: "(?<=\\})",
2187
+ patterns: [
2188
+ {
2189
+ include: "#comment"
2190
+ },
2191
+ {
2192
+ include: "#block"
2193
+ }
2194
+ ]
2195
+ },
2196
+ "finally-clause": {
2197
+ begin: "(?<!\\.)\\b(finally)\\b",
2198
+ beginCaptures: {
2199
+ "1": {
2200
+ name: "keyword.control.try.finally.cs"
2201
+ }
2202
+ },
2203
+ end: "(?<=\\})",
2204
+ patterns: [
2205
+ {
2206
+ include: "#comment"
2207
+ },
2208
+ {
2209
+ include: "#block"
2210
+ }
2211
+ ]
2212
+ },
2213
+ "catch-clause": {
2214
+ begin: "(?<!\\.)\\b(catch)\\b",
2215
+ beginCaptures: {
2216
+ "1": {
2217
+ name: "keyword.control.try.catch.cs"
2218
+ }
2219
+ },
2220
+ end: "(?<=\\})",
2221
+ patterns: [
2222
+ {
2223
+ begin: "\\(",
2224
+ beginCaptures: {
2225
+ "0": {
2226
+ name: "punctuation.parenthesis.open.cs"
2227
+ }
2228
+ },
2229
+ end: "\\)",
2230
+ endCaptures: {
2231
+ "0": {
2232
+ name: "punctuation.parenthesis.close.cs"
2233
+ }
2234
+ },
2235
+ patterns: [
2236
+ {
2237
+ match: "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?",
2238
+ captures: {
2239
+ "1": {
2240
+ patterns: [
2241
+ {
2242
+ include: "#type"
2243
+ }
2244
+ ]
2245
+ },
2246
+ "6": {
2247
+ name: "entity.name.variable.local.cs"
2248
+ }
2249
+ }
2250
+ }
2251
+ ]
2252
+ },
2253
+ {
2254
+ include: "#when-clause"
2255
+ },
2256
+ {
2257
+ include: "#comment"
2258
+ },
2259
+ {
2260
+ include: "#block"
2261
+ }
2262
+ ]
2263
+ },
2264
+ "when-clause": {
2265
+ begin: "(?<!\\.)\\b(when)\\b\\s*(\\()",
2266
+ beginCaptures: {
2267
+ "1": {
2268
+ name: "keyword.control.try.when.cs"
2269
+ },
2270
+ "2": {
2271
+ name: "punctuation.parenthesis.open.cs"
2272
+ }
2273
+ },
2274
+ end: "\\)",
2275
+ endCaptures: {
2276
+ "0": {
2277
+ name: "punctuation.parenthesis.close.cs"
2278
+ }
2279
+ },
2280
+ patterns: [
2281
+ {
2282
+ include: "#expression"
2283
+ },
2284
+ {
2285
+ include: "#comment"
2286
+ }
2287
+ ]
2288
+ },
2289
+ "checked-unchecked-statement": {
2290
+ begin: "(?<!\\.)\\b(?:(checked)|(unchecked))\\b\\s*(?!\\()",
2291
+ beginCaptures: {
2292
+ "1": {
2293
+ name: "keyword.other.checked.cs"
2294
+ },
2295
+ "2": {
2296
+ name: "keyword.other.unchecked.cs"
2297
+ }
2298
+ },
2299
+ end: "(?<=\\})",
2300
+ patterns: [
2301
+ {
2302
+ include: "#block"
2303
+ },
2304
+ {
2305
+ include: "#comment"
2306
+ }
2307
+ ]
2308
+ },
2309
+ "lock-statement": {
2310
+ begin: "(?<!\\.)\\b(lock)\\b\\s*(?=\\()",
2311
+ beginCaptures: {
2312
+ "1": {
2313
+ name: "keyword.other.lock.cs"
2314
+ }
2315
+ },
2316
+ end: "(?<=\\})|(?=;)",
2317
+ patterns: [
2318
+ {
2319
+ begin: "\\(",
2320
+ beginCaptures: {
2321
+ "0": {
2322
+ name: "punctuation.parenthesis.open.cs"
2323
+ }
2324
+ },
2325
+ end: "\\)",
2326
+ endCaptures: {
2327
+ "0": {
2328
+ name: "punctuation.parenthesis.close.cs"
2329
+ }
2330
+ },
2331
+ patterns: [
2332
+ {
2333
+ include: "#expression"
2334
+ }
2335
+ ]
2336
+ },
2337
+ {
2338
+ include: "#statement"
2339
+ }
2340
+ ]
2341
+ },
2342
+ "using-statement": {
2343
+ begin: "(?<!\\.)\\b(using)\\b\\s*(?=\\()",
2344
+ beginCaptures: {
2345
+ "1": {
2346
+ name: "keyword.other.using.cs"
2347
+ }
2348
+ },
2349
+ end: "(?=\\;|})",
2350
+ patterns: [
2351
+ {
2352
+ begin: "\\(",
2353
+ beginCaptures: {
2354
+ "0": {
2355
+ name: "punctuation.parenthesis.open.cs"
2356
+ }
2357
+ },
2358
+ end: "\\)",
2359
+ endCaptures: {
2360
+ "0": {
2361
+ name: "punctuation.parenthesis.close.cs"
2362
+ }
2363
+ },
2364
+ patterns: [
2365
+ {
2366
+ include: "#local-variable-declaration"
2367
+ },
2368
+ {
2369
+ include: "#expression"
2370
+ }
2371
+ ]
2372
+ },
2373
+ {
2374
+ include: "#statement"
2375
+ }
2376
+ ]
2377
+ },
2378
+ "labeled-statement": {
2379
+ match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",
2380
+ captures: {
2381
+ "1": {
2382
+ name: "entity.name.label.cs"
2383
+ },
2384
+ "2": {
2385
+ name: "punctuation.separator.colon.cs"
2386
+ }
2387
+ }
2388
+ },
2389
+ "local-declaration": {
2390
+ patterns: [
2391
+ {
2392
+ include: "#local-constant-declaration"
2393
+ },
2394
+ {
2395
+ include: "#local-variable-declaration"
2396
+ },
2397
+ {
2398
+ include: "#local-function-declaration"
2399
+ },
2400
+ {
2401
+ include: "#local-tuple-var-deconstruction"
2402
+ }
2403
+ ]
2404
+ },
2405
+ "local-variable-declaration": {
2406
+ begin: "(?x)\n(?:\n (?:(\\busing)\\s+)?\n (?:(\\bref)\\s+(?:(\\breadonly)\\s+)?)?(\\bvar\\b)| # ref local\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref local\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?!=>)\n(?=,|;|=|\\))",
2407
+ beginCaptures: {
2408
+ "1": {
2409
+ name: "keyword.other.using.cs"
2410
+ },
2411
+ "2": {
2412
+ name: "storage.modifier.cs"
2413
+ },
2414
+ "3": {
2415
+ name: "storage.modifier.cs"
2416
+ },
2417
+ "4": {
2418
+ name: "keyword.other.var.cs"
2419
+ },
2420
+ "5": {
2421
+ patterns: [
2422
+ {
2423
+ include: "#type"
2424
+ }
2425
+ ]
2426
+ },
2427
+ "10": {
2428
+ name: "entity.name.variable.local.cs"
2429
+ }
2430
+ },
2431
+ end: "(?=;|\\))",
2432
+ patterns: [
2433
+ {
2434
+ name: "entity.name.variable.local.cs",
2435
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
2436
+ },
2437
+ {
2438
+ include: "#punctuation-comma"
2439
+ },
2440
+ {
2441
+ include: "#comment"
2442
+ },
2443
+ {
2444
+ include: "#variable-initializer"
2445
+ }
2446
+ ]
2447
+ },
2448
+ "local-constant-declaration": {
2449
+ begin: "(?x)\n(?<const_keyword>\\b(?:const)\\b)\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=)",
2450
+ beginCaptures: {
2451
+ "1": {
2452
+ name: "storage.modifier.cs"
2453
+ },
2454
+ "2": {
2455
+ patterns: [
2456
+ {
2457
+ include: "#type"
2458
+ }
2459
+ ]
2460
+ },
2461
+ "7": {
2462
+ name: "entity.name.variable.local.cs"
2463
+ }
2464
+ },
2465
+ end: "(?=;)",
2466
+ patterns: [
2467
+ {
2468
+ name: "entity.name.variable.local.cs",
2469
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
2470
+ },
2471
+ {
2472
+ include: "#punctuation-comma"
2473
+ },
2474
+ {
2475
+ include: "#comment"
2476
+ },
2477
+ {
2478
+ include: "#variable-initializer"
2479
+ }
2480
+ ]
2481
+ },
2482
+ "local-function-declaration": {
2483
+ patterns: [
2484
+ {
2485
+ include: "#method-declaration"
2486
+ }
2487
+ ]
2488
+ },
2489
+ "local-tuple-var-deconstruction": {
2490
+ begin: "(?x) # e.g. var (x, y) = GetPoint();\n(?:\\b(var)\\b\\s*)\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*\n(?=;|=|\\))",
2491
+ beginCaptures: {
2492
+ "1": {
2493
+ name: "keyword.other.var.cs"
2494
+ },
2495
+ "2": {
2496
+ patterns: [
2497
+ {
2498
+ include: "#tuple-declaration-deconstruction-element-list"
2499
+ }
2500
+ ]
2501
+ }
2502
+ },
2503
+ end: "(?=;|\\))",
2504
+ patterns: [
2505
+ {
2506
+ include: "#comment"
2507
+ },
2508
+ {
2509
+ include: "#variable-initializer"
2510
+ }
2511
+ ]
2512
+ },
2513
+ "tuple-deconstruction-assignment": {
2514
+ match: "(?x)\n(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*\n(?!=>|==)(?==)",
2515
+ captures: {
2516
+ "1": {
2517
+ patterns: [
2518
+ {
2519
+ include: "#tuple-deconstruction-element-list"
2520
+ }
2521
+ ]
2522
+ }
2523
+ }
2524
+ },
2525
+ "tuple-declaration-deconstruction-element-list": {
2526
+ begin: "\\(",
2527
+ beginCaptures: {
2528
+ "0": {
2529
+ name: "punctuation.parenthesis.open.cs"
2530
+ }
2531
+ },
2532
+ end: "\\)",
2533
+ endCaptures: {
2534
+ "0": {
2535
+ name: "punctuation.parenthesis.close.cs"
2536
+ }
2537
+ },
2538
+ patterns: [
2539
+ {
2540
+ include: "#comment"
2541
+ },
2542
+ {
2543
+ include: "#tuple-declaration-deconstruction-element-list"
2544
+ },
2545
+ {
2546
+ include: "#declaration-expression-tuple"
2547
+ },
2548
+ {
2549
+ include: "#punctuation-comma"
2550
+ },
2551
+ {
2552
+ match: "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])",
2553
+ captures: {
2554
+ "1": {
2555
+ name: "entity.name.variable.tuple-element.cs"
2556
+ }
2557
+ }
2558
+ }
2559
+ ]
2560
+ },
2561
+ "tuple-deconstruction-element-list": {
2562
+ begin: "\\(",
2563
+ beginCaptures: {
2564
+ "0": {
2565
+ name: "punctuation.parenthesis.open.cs"
2566
+ }
2567
+ },
2568
+ end: "\\)",
2569
+ endCaptures: {
2570
+ "0": {
2571
+ name: "punctuation.parenthesis.close.cs"
2572
+ }
2573
+ },
2574
+ patterns: [
2575
+ {
2576
+ include: "#comment"
2577
+ },
2578
+ {
2579
+ include: "#tuple-deconstruction-element-list"
2580
+ },
2581
+ {
2582
+ include: "#declaration-expression-tuple"
2583
+ },
2584
+ {
2585
+ include: "#punctuation-comma"
2586
+ },
2587
+ {
2588
+ match: "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])",
2589
+ captures: {
2590
+ "1": {
2591
+ name: "variable.other.readwrite.cs"
2592
+ }
2593
+ }
2594
+ }
2595
+ ]
2596
+ },
2597
+ "declaration-expression-local": {
2598
+ match: "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\b\\s*\n(?=[,)\\]])",
2599
+ captures: {
2600
+ "1": {
2601
+ name: "keyword.other.var.cs"
2602
+ },
2603
+ "2": {
2604
+ patterns: [
2605
+ {
2606
+ include: "#type"
2607
+ }
2608
+ ]
2609
+ },
2610
+ "7": {
2611
+ name: "entity.name.variable.local.cs"
2612
+ }
2613
+ }
2614
+ },
2615
+ "declaration-expression-tuple": {
2616
+ match: "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\b\\s*\n(?=[,)])",
2617
+ captures: {
2618
+ "1": {
2619
+ name: "keyword.other.var.cs"
2620
+ },
2621
+ "2": {
2622
+ patterns: [
2623
+ {
2624
+ include: "#type"
2625
+ }
2626
+ ]
2627
+ },
2628
+ "7": {
2629
+ name: "entity.name.variable.tuple-element.cs"
2630
+ }
2631
+ }
2632
+ },
2633
+ "checked-unchecked-expression": {
2634
+ begin: "(?<!\\.)\\b(?:(checked)|(unchecked))\\b\\s*(\\()",
2635
+ beginCaptures: {
2636
+ "1": {
2637
+ name: "keyword.other.checked.cs"
2638
+ },
2639
+ "2": {
2640
+ name: "keyword.other.unchecked.cs"
2641
+ },
2642
+ "3": {
2643
+ name: "punctuation.parenthesis.open.cs"
2644
+ }
2645
+ },
2646
+ end: "\\)",
2647
+ endCaptures: {
2648
+ "0": {
2649
+ name: "punctuation.parenthesis.close.cs"
2650
+ }
2651
+ },
2652
+ patterns: [
2653
+ {
2654
+ include: "#expression"
2655
+ }
2656
+ ]
2657
+ },
2658
+ "typeof-or-default-expression": {
2659
+ begin: "(?<!\\.)\\b(?:(typeof)|(default))\\b\\s*(\\()",
2660
+ beginCaptures: {
2661
+ "1": {
2662
+ name: "keyword.other.typeof.cs"
2663
+ },
2664
+ "2": {
2665
+ name: "keyword.other.default.cs"
2666
+ },
2667
+ "3": {
2668
+ name: "punctuation.parenthesis.open.cs"
2669
+ }
2670
+ },
2671
+ end: "\\)",
2672
+ endCaptures: {
2673
+ "0": {
2674
+ name: "punctuation.parenthesis.close.cs"
2675
+ }
2676
+ },
2677
+ patterns: [
2678
+ {
2679
+ include: "#type"
2680
+ }
2681
+ ]
2682
+ },
2683
+ "nameof-expression": {
2684
+ begin: "(?<!\\.)\\b(nameof)\\b\\s*(\\()",
2685
+ beginCaptures: {
2686
+ "1": {
2687
+ name: "keyword.other.nameof.cs"
2688
+ },
2689
+ "2": {
2690
+ name: "punctuation.parenthesis.open.cs"
2691
+ }
2692
+ },
2693
+ end: "\\)",
2694
+ endCaptures: {
2695
+ "0": {
2696
+ name: "punctuation.parenthesis.close.cs"
2697
+ }
2698
+ },
2699
+ patterns: [
2700
+ {
2701
+ include: "#expression"
2702
+ }
2703
+ ]
2704
+ },
2705
+ "throw-expression": {
2706
+ match: "(?<!\\.)\\b(throw)\\b",
2707
+ captures: {
2708
+ "1": {
2709
+ name: "keyword.control.flow.throw.cs"
2710
+ }
2711
+ }
2712
+ },
2713
+ "interpolated-string": {
2714
+ name: "string.quoted.double.cs",
2715
+ begin: "\\$\"",
2716
+ beginCaptures: {
2717
+ "0": {
2718
+ name: "punctuation.definition.string.begin.cs"
2719
+ }
2720
+ },
2721
+ end: "(\")|((?:[^\\\\\\n])$)",
2722
+ endCaptures: {
2723
+ "1": {
2724
+ name: "punctuation.definition.string.end.cs"
2725
+ },
2726
+ "2": {
2727
+ name: "invalid.illegal.newline.cs"
2728
+ }
2729
+ },
2730
+ patterns: [
2731
+ {
2732
+ include: "#string-character-escape"
2733
+ },
2734
+ {
2735
+ include: "#interpolation"
2736
+ }
2737
+ ]
2738
+ },
2739
+ "verbatim-interpolated-string": {
2740
+ name: "string.quoted.double.cs",
2741
+ begin: "(?:\\$@|@\\$)\"",
2742
+ beginCaptures: {
2743
+ "0": {
2744
+ name: "punctuation.definition.string.begin.cs"
2745
+ }
2746
+ },
2747
+ end: "\"(?=[^\"])",
2748
+ endCaptures: {
2749
+ "0": {
2750
+ name: "punctuation.definition.string.end.cs"
2751
+ }
2752
+ },
2753
+ patterns: [
2754
+ {
2755
+ include: "#verbatim-string-character-escape"
2756
+ },
2757
+ {
2758
+ include: "#interpolation"
2759
+ }
2760
+ ]
2761
+ },
2762
+ interpolation: {
2763
+ name: "meta.interpolation.cs",
2764
+ begin: "(?<=[^\\{]|^)((?:\\{\\{)*)(\\{)(?=[^\\{])",
2765
+ beginCaptures: {
2766
+ "1": {
2767
+ name: "string.quoted.double.cs"
2768
+ },
2769
+ "2": {
2770
+ name: "punctuation.definition.interpolation.begin.cs"
2771
+ }
2772
+ },
2773
+ end: "\\}",
2774
+ endCaptures: {
2775
+ "0": {
2776
+ name: "punctuation.definition.interpolation.end.cs"
2777
+ }
2778
+ },
2779
+ patterns: [
2780
+ {
2781
+ include: "#expression"
2782
+ }
2783
+ ]
2784
+ },
2785
+ "raw-interpolated-string": {
2786
+ patterns: [
2787
+ {
2788
+ include: "#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation"
2789
+ },
2790
+ {
2791
+ include: "#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation"
2792
+ },
2793
+ {
2794
+ include: "#raw-interpolated-string-quadruple-quote-double-interpolation"
2795
+ },
2796
+ {
2797
+ include: "#raw-interpolated-string-quadruple-quote-single-interpolation"
2798
+ },
2799
+ {
2800
+ include: "#raw-interpolated-string-triple-quote-double-interpolation"
2801
+ },
2802
+ {
2803
+ include: "#raw-interpolated-string-triple-quote-single-interpolation"
2804
+ }
2805
+ ]
2806
+ },
2807
+ "raw-interpolated-string-triple-quote-single-interpolation": {
2808
+ name: "string.quoted.double.cs",
2809
+ begin: "\\$\"\"\"",
2810
+ beginCaptures: {
2811
+ "0": {
2812
+ name: "punctuation.definition.string.begin.cs"
2813
+ }
2814
+ },
2815
+ end: "\"\"\"",
2816
+ endCaptures: {
2817
+ "0": {
2818
+ name: "punctuation.definition.string.end.cs"
2819
+ }
2820
+ },
2821
+ patterns: [
2822
+ {
2823
+ include: "#raw-interpolation"
2824
+ }
2825
+ ]
2826
+ },
2827
+ "raw-interpolated-string-triple-quote-double-interpolation": {
2828
+ name: "string.quoted.double.cs",
2829
+ begin: "\\$\\$\"\"\"",
2830
+ beginCaptures: {
2831
+ "0": {
2832
+ name: "punctuation.definition.string.begin.cs"
2833
+ }
2834
+ },
2835
+ end: "\"\"\"",
2836
+ endCaptures: {
2837
+ "0": {
2838
+ name: "punctuation.definition.string.end.cs"
2839
+ }
2840
+ },
2841
+ patterns: [
2842
+ {
2843
+ include: "#double-raw-interpolation"
2844
+ }
2845
+ ]
2846
+ },
2847
+ "raw-interpolated-string-quadruple-quote-single-interpolation": {
2848
+ name: "string.quoted.double.cs",
2849
+ begin: "\\$\"\"\"\"",
2850
+ beginCaptures: {
2851
+ "0": {
2852
+ name: "punctuation.definition.string.begin.cs"
2853
+ }
2854
+ },
2855
+ end: "\"\"\"\"",
2856
+ endCaptures: {
2857
+ "0": {
2858
+ name: "punctuation.definition.string.end.cs"
2859
+ }
2860
+ },
2861
+ patterns: [
2862
+ {
2863
+ include: "#raw-interpolation"
2864
+ }
2865
+ ]
2866
+ },
2867
+ "raw-interpolated-string-quadruple-quote-double-interpolation": {
2868
+ name: "string.quoted.double.cs",
2869
+ begin: "\\$\\$\"\"\"\"",
2870
+ beginCaptures: {
2871
+ "0": {
2872
+ name: "punctuation.definition.string.begin.cs"
2873
+ }
2874
+ },
2875
+ end: "\"\"\"\"",
2876
+ endCaptures: {
2877
+ "0": {
2878
+ name: "punctuation.definition.string.end.cs"
2879
+ }
2880
+ },
2881
+ patterns: [
2882
+ {
2883
+ include: "#double-raw-interpolation"
2884
+ }
2885
+ ]
2886
+ },
2887
+ "raw-interpolated-string-three-or-more-quote-three-or-more-interpolation": {
2888
+ name: "string.quoted.double.cs",
2889
+ begin: "\\$\\$\\$+\"\"\"+",
2890
+ beginCaptures: {
2891
+ "0": {
2892
+ name: "punctuation.definition.string.begin.cs"
2893
+ }
2894
+ },
2895
+ end: "\"\"\"+",
2896
+ endCaptures: {
2897
+ "0": {
2898
+ name: "punctuation.definition.string.end.cs"
2899
+ }
2900
+ }
2901
+ },
2902
+ "raw-interpolated-string-five-or-more-quote-one-or-more-interpolation": {
2903
+ name: "string.quoted.double.cs",
2904
+ begin: "\\$+\"\"\"\"\"+",
2905
+ beginCaptures: {
2906
+ "0": {
2907
+ name: "punctuation.definition.string.begin.cs"
2908
+ }
2909
+ },
2910
+ end: "\"\"\"\"\"+",
2911
+ endCaptures: {
2912
+ "0": {
2913
+ name: "punctuation.definition.string.end.cs"
2914
+ }
2915
+ }
2916
+ },
2917
+ "raw-interpolation": {
2918
+ name: "meta.interpolation.cs",
2919
+ begin: "(?<=[^\\{]|^)((?:\\{)*)(\\{)(?=[^\\{])",
2920
+ beginCaptures: {
2921
+ "1": {
2922
+ name: "string.quoted.double.cs"
2923
+ },
2924
+ "2": {
2925
+ name: "punctuation.definition.interpolation.begin.cs"
2926
+ }
2927
+ },
2928
+ end: "\\}",
2929
+ endCaptures: {
2930
+ "0": {
2931
+ name: "punctuation.definition.interpolation.end.cs"
2932
+ }
2933
+ },
2934
+ patterns: [
2935
+ {
2936
+ include: "#expression"
2937
+ }
2938
+ ]
2939
+ },
2940
+ "double-raw-interpolation": {
2941
+ name: "meta.interpolation.cs",
2942
+ begin: "(?<=[^\\{][^\\{]|^)((?:\\{)*)(\\{\\{)(?=[^\\{])",
2943
+ beginCaptures: {
2944
+ "1": {
2945
+ name: "string.quoted.double.cs"
2946
+ },
2947
+ "2": {
2948
+ name: "punctuation.definition.interpolation.begin.cs"
2949
+ }
2950
+ },
2951
+ end: "\\}\\}",
2952
+ endCaptures: {
2953
+ "0": {
2954
+ name: "punctuation.definition.interpolation.end.cs"
2955
+ }
2956
+ },
2957
+ patterns: [
2958
+ {
2959
+ include: "#expression"
2960
+ }
2961
+ ]
2962
+ },
2963
+ literal: {
2964
+ patterns: [
2965
+ {
2966
+ include: "#boolean-literal"
2967
+ },
2968
+ {
2969
+ include: "#null-literal"
2970
+ },
2971
+ {
2972
+ include: "#numeric-literal"
2973
+ },
2974
+ {
2975
+ include: "#char-literal"
2976
+ },
2977
+ {
2978
+ include: "#raw-string-literal"
2979
+ },
2980
+ {
2981
+ include: "#string-literal"
2982
+ },
2983
+ {
2984
+ include: "#verbatim-string-literal"
2985
+ },
2986
+ {
2987
+ include: "#tuple-literal"
2988
+ }
2989
+ ]
2990
+ },
2991
+ "boolean-literal": {
2992
+ patterns: [
2993
+ {
2994
+ name: "constant.language.boolean.true.cs",
2995
+ match: "(?<!\\.)\\btrue\\b"
2996
+ },
2997
+ {
2998
+ name: "constant.language.boolean.false.cs",
2999
+ match: "(?<!\\.)\\bfalse\\b"
3000
+ }
3001
+ ]
3002
+ },
3003
+ "null-literal": {
3004
+ name: "constant.language.null.cs",
3005
+ match: "(?<!\\.)\\bnull\\b"
3006
+ },
3007
+ "numeric-literal": {
3008
+ match: "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|_)|(?<=[eE])[+-])*",
3009
+ captures: {
3010
+ "0": {
3011
+ patterns: [
3012
+ {
3013
+ begin: "(?=.)",
3014
+ end: "$",
3015
+ patterns: [
3016
+ {
3017
+ match: "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?([fFdDmM](?!\\w))?$",
3018
+ captures: {
3019
+ "2": {
3020
+ name: "constant.numeric.decimal.cs",
3021
+ patterns: [
3022
+ {
3023
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3024
+ name: "constant.numeric.other.separator.thousands.cs"
3025
+ }
3026
+ ]
3027
+ },
3028
+ "3": {
3029
+ name: "constant.numeric.other.separator.thousands.cs"
3030
+ },
3031
+ "4": {
3032
+ name: "constant.numeric.other.separator.decimals.cs"
3033
+ },
3034
+ "5": {
3035
+ name: "constant.numeric.decimal.cs",
3036
+ patterns: [
3037
+ {
3038
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3039
+ name: "constant.numeric.other.separator.thousands.cs"
3040
+ }
3041
+ ]
3042
+ },
3043
+ "6": {
3044
+ name: "constant.numeric.other.separator.thousands.cs"
3045
+ },
3046
+ "8": {
3047
+ name: "constant.numeric.other.exponent.cs"
3048
+ },
3049
+ "9": {
3050
+ name: "keyword.operator.arithmetic.cs"
3051
+ },
3052
+ "10": {
3053
+ name: "keyword.operator.arithmetic.cs"
3054
+ },
3055
+ "11": {
3056
+ name: "constant.numeric.decimal.cs",
3057
+ patterns: [
3058
+ {
3059
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3060
+ name: "constant.numeric.other.separator.thousands.cs"
3061
+ }
3062
+ ]
3063
+ },
3064
+ "12": {
3065
+ name: "constant.numeric.other.suffix.cs"
3066
+ }
3067
+ }
3068
+ },
3069
+ {
3070
+ match: "(\\G0[bB])([01_](?:[01_]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$",
3071
+ captures: {
3072
+ "1": {
3073
+ name: "constant.numeric.other.preffix.binary.cs"
3074
+ },
3075
+ "2": {
3076
+ name: "constant.numeric.binary.cs",
3077
+ patterns: [
3078
+ {
3079
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3080
+ name: "constant.numeric.other.separator.thousands.cs"
3081
+ }
3082
+ ]
3083
+ },
3084
+ "3": {
3085
+ name: "constant.numeric.other.separator.thousands.cs"
3086
+ },
3087
+ "4": {
3088
+ name: "constant.numeric.other.suffix.cs"
3089
+ }
3090
+ }
3091
+ },
3092
+ {
3093
+ match: "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$",
3094
+ captures: {
3095
+ "1": {
3096
+ name: "constant.numeric.other.preffix.hex.cs"
3097
+ },
3098
+ "2": {
3099
+ name: "constant.numeric.hex.cs",
3100
+ patterns: [
3101
+ {
3102
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3103
+ name: "constant.numeric.other.separator.thousands.cs"
3104
+ }
3105
+ ]
3106
+ },
3107
+ "3": {
3108
+ name: "constant.numeric.other.separator.thousands.cs"
3109
+ },
3110
+ "4": {
3111
+ name: "constant.numeric.other.suffix.cs"
3112
+ }
3113
+ }
3114
+ },
3115
+ {
3116
+ match: "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$",
3117
+ captures: {
3118
+ "2": {
3119
+ name: "constant.numeric.decimal.cs",
3120
+ patterns: [
3121
+ {
3122
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3123
+ name: "constant.numeric.other.separator.thousands.cs"
3124
+ }
3125
+ ]
3126
+ },
3127
+ "3": {
3128
+ name: "constant.numeric.other.separator.thousands.cs"
3129
+ },
3130
+ "5": {
3131
+ name: "constant.numeric.other.exponent.cs"
3132
+ },
3133
+ "6": {
3134
+ name: "keyword.operator.arithmetic.cs"
3135
+ },
3136
+ "7": {
3137
+ name: "keyword.operator.arithmetic.cs"
3138
+ },
3139
+ "8": {
3140
+ name: "constant.numeric.decimal.cs",
3141
+ patterns: [
3142
+ {
3143
+ match: "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",
3144
+ name: "constant.numeric.other.separator.thousands.cs"
3145
+ }
3146
+ ]
3147
+ },
3148
+ "9": {
3149
+ name: "constant.numeric.other.suffix.cs"
3150
+ }
3151
+ }
3152
+ },
3153
+ {
3154
+ match: "(?:(?:[0-9a-zA-Z_\\.]|_)|(?<=[eE])[+-])+",
3155
+ name: "invalid.illegal.constant.numeric.cs"
3156
+ }
3157
+ ]
3158
+ }
3159
+ ]
3160
+ }
3161
+ }
3162
+ },
3163
+ "char-literal": {
3164
+ name: "string.quoted.single.cs",
3165
+ begin: "'",
3166
+ beginCaptures: {
3167
+ "0": {
3168
+ name: "punctuation.definition.char.begin.cs"
3169
+ }
3170
+ },
3171
+ end: "(\\')|((?:[^\\\\\\n])$)",
3172
+ endCaptures: {
3173
+ "1": {
3174
+ name: "punctuation.definition.char.end.cs"
3175
+ },
3176
+ "2": {
3177
+ name: "invalid.illegal.newline.cs"
3178
+ }
3179
+ },
3180
+ patterns: [
3181
+ {
3182
+ include: "#char-character-escape"
3183
+ }
3184
+ ]
3185
+ },
3186
+ "char-character-escape": {
3187
+ name: "constant.character.escape.cs",
3188
+ match: "\\\\(['\"\\\\0abfnrtv]|x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4})"
3189
+ },
3190
+ "string-literal": {
3191
+ name: "string.quoted.double.cs",
3192
+ begin: "(?<!@)\"",
3193
+ beginCaptures: {
3194
+ "0": {
3195
+ name: "punctuation.definition.string.begin.cs"
3196
+ }
3197
+ },
3198
+ end: "(\")|((?:[^\\\\\\n])$)",
3199
+ endCaptures: {
3200
+ "1": {
3201
+ name: "punctuation.definition.string.end.cs"
3202
+ },
3203
+ "2": {
3204
+ name: "invalid.illegal.newline.cs"
3205
+ }
3206
+ },
3207
+ patterns: [
3208
+ {
3209
+ include: "#string-character-escape"
3210
+ }
3211
+ ]
3212
+ },
3213
+ "string-character-escape": {
3214
+ name: "constant.character.escape.cs",
3215
+ match: "\\\\(['\"\\\\0abfnrtv]|x[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4})"
3216
+ },
3217
+ "verbatim-string-literal": {
3218
+ name: "string.quoted.double.cs",
3219
+ begin: "@\"",
3220
+ beginCaptures: {
3221
+ "0": {
3222
+ name: "punctuation.definition.string.begin.cs"
3223
+ }
3224
+ },
3225
+ end: "\"(?=[^\"])",
3226
+ endCaptures: {
3227
+ "0": {
3228
+ name: "punctuation.definition.string.end.cs"
3229
+ }
3230
+ },
3231
+ patterns: [
3232
+ {
3233
+ include: "#verbatim-string-character-escape"
3234
+ }
3235
+ ]
3236
+ },
3237
+ "verbatim-string-character-escape": {
3238
+ name: "constant.character.escape.cs",
3239
+ match: "\"\""
3240
+ },
3241
+ "raw-string-literal": {
3242
+ patterns: [
3243
+ {
3244
+ include: "#raw-string-literal-more"
3245
+ },
3246
+ {
3247
+ include: "#raw-string-literal-quadruple"
3248
+ },
3249
+ {
3250
+ include: "#raw-string-literal-triple"
3251
+ }
3252
+ ]
3253
+ },
3254
+ "raw-string-literal-triple": {
3255
+ name: "string.quoted.double.cs",
3256
+ begin: "\"\"\"",
3257
+ beginCaptures: {
3258
+ "0": {
3259
+ name: "punctuation.definition.string.begin.cs"
3260
+ }
3261
+ },
3262
+ end: "\"\"\"",
3263
+ endCaptures: {
3264
+ "0": {
3265
+ name: "punctuation.definition.string.end.cs"
3266
+ }
3267
+ }
3268
+ },
3269
+ "raw-string-literal-quadruple": {
3270
+ name: "string.quoted.double.cs",
3271
+ begin: "\"\"\"\"",
3272
+ beginCaptures: {
3273
+ "0": {
3274
+ name: "punctuation.definition.string.begin.cs"
3275
+ }
3276
+ },
3277
+ end: "\"\"\"\"",
3278
+ endCaptures: {
3279
+ "0": {
3280
+ name: "punctuation.definition.string.end.cs"
3281
+ }
3282
+ }
3283
+ },
3284
+ "raw-string-literal-more": {
3285
+ name: "string.quoted.double.cs",
3286
+ begin: "\"\"\"\"\"+",
3287
+ beginCaptures: {
3288
+ "0": {
3289
+ name: "punctuation.definition.string.begin.cs"
3290
+ }
3291
+ },
3292
+ end: "\"\"\"\"\"+",
3293
+ endCaptures: {
3294
+ "0": {
3295
+ name: "punctuation.definition.string.end.cs"
3296
+ }
3297
+ }
3298
+ },
3299
+ "tuple-literal": {
3300
+ begin: "(\\()(?=.*[:,])",
3301
+ beginCaptures: {
3302
+ "1": {
3303
+ name: "punctuation.parenthesis.open.cs"
3304
+ }
3305
+ },
3306
+ end: "\\)",
3307
+ endCaptures: {
3308
+ "0": {
3309
+ name: "punctuation.parenthesis.close.cs"
3310
+ }
3311
+ },
3312
+ patterns: [
3313
+ {
3314
+ include: "#comment"
3315
+ },
3316
+ {
3317
+ include: "#tuple-literal-element"
3318
+ },
3319
+ {
3320
+ include: "#expression"
3321
+ },
3322
+ {
3323
+ include: "#punctuation-comma"
3324
+ }
3325
+ ]
3326
+ },
3327
+ "tuple-literal-element": {
3328
+ begin: "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?=:)",
3329
+ beginCaptures: {
3330
+ "1": {
3331
+ name: "entity.name.variable.tuple-element.cs"
3332
+ }
3333
+ },
3334
+ end: "(:)",
3335
+ endCaptures: {
3336
+ "0": {
3337
+ name: "punctuation.separator.colon.cs"
3338
+ }
3339
+ }
3340
+ },
3341
+ "expression-operators": {
3342
+ patterns: [
3343
+ {
3344
+ name: "keyword.operator.assignment.compound.cs",
3345
+ match: "\\*=|/=|%=|\\+=|-=|\\?\\?="
3346
+ },
3347
+ {
3348
+ name: "keyword.operator.assignment.compound.bitwise.cs",
3349
+ match: "\\&=|\\^=|<<=|>>=|\\|="
3350
+ },
3351
+ {
3352
+ name: "keyword.operator.bitwise.shift.cs",
3353
+ match: "<<|>>"
3354
+ },
3355
+ {
3356
+ name: "keyword.operator.comparison.cs",
3357
+ match: "==|!="
3358
+ },
3359
+ {
3360
+ name: "keyword.operator.relational.cs",
3361
+ match: "<=|>=|<|>"
3362
+ },
3363
+ {
3364
+ name: "keyword.operator.logical.cs",
3365
+ match: "\\!|&&|\\|\\|"
3366
+ },
3367
+ {
3368
+ name: "keyword.operator.bitwise.cs",
3369
+ match: "\\&|~|\\^|\\|"
3370
+ },
3371
+ {
3372
+ name: "keyword.operator.assignment.cs",
3373
+ match: "\\="
3374
+ },
3375
+ {
3376
+ name: "keyword.operator.decrement.cs",
3377
+ match: "--"
3378
+ },
3379
+ {
3380
+ name: "keyword.operator.increment.cs",
3381
+ match: "\\+\\+"
3382
+ },
3383
+ {
3384
+ name: "keyword.operator.arithmetic.cs",
3385
+ match: "%|\\*|/|-|\\+"
3386
+ },
3387
+ {
3388
+ name: "keyword.operator.null-coalescing.cs",
3389
+ match: "\\?\\?"
3390
+ }
3391
+ ]
3392
+ },
3393
+ "switch-literal": {
3394
+ name: "constant.language.null.cs",
3395
+ match: "(?<!\\.)\\bnull\\b",
3396
+ beginCaptures: {
3397
+ "1": {
3398
+ name: "constant.language.null.cs"
3399
+ }
3400
+ },
3401
+ patterns: [
3402
+ {
3403
+ include: "#comment"
3404
+ },
3405
+ {
3406
+ include: "#punctuation-comma"
3407
+ },
3408
+ {
3409
+ include: "#expression-body"
3410
+ }
3411
+ ]
3412
+ },
3413
+ "conditional-operator": {
3414
+ begin: "\\?(?!\\s*[?.\\[]|\\s*$)",
3415
+ beginCaptures: {
3416
+ "0": {
3417
+ name: "keyword.operator.conditional.question-mark.cs"
3418
+ }
3419
+ },
3420
+ end: ":",
3421
+ endCaptures: {
3422
+ "0": {
3423
+ name: "keyword.operator.conditional.colon.cs"
3424
+ }
3425
+ },
3426
+ patterns: [
3427
+ {
3428
+ include: "#expression"
3429
+ }
3430
+ ]
3431
+ },
3432
+ "await-expression": {
3433
+ name: "keyword.other.await.cs",
3434
+ match: "(?!\\.)\\b(await)\\b"
3435
+ },
3436
+ "parenthesized-expression": {
3437
+ begin: "\\(",
3438
+ beginCaptures: {
3439
+ "0": {
3440
+ name: "punctuation.parenthesis.open.cs"
3441
+ }
3442
+ },
3443
+ end: "\\)",
3444
+ endCaptures: {
3445
+ "0": {
3446
+ name: "punctuation.parenthesis.close.cs"
3447
+ }
3448
+ },
3449
+ patterns: [
3450
+ {
3451
+ include: "#expression"
3452
+ }
3453
+ ]
3454
+ },
3455
+ "initializer-expression": {
3456
+ begin: "\\{",
3457
+ beginCaptures: {
3458
+ "0": {
3459
+ name: "punctuation.curlybrace.open.cs"
3460
+ }
3461
+ },
3462
+ end: "\\}",
3463
+ endCaptures: {
3464
+ "0": {
3465
+ name: "punctuation.curlybrace.close.cs"
3466
+ }
3467
+ },
3468
+ patterns: [
3469
+ {
3470
+ include: "#expression"
3471
+ },
3472
+ {
3473
+ include: "#punctuation-comma"
3474
+ }
3475
+ ]
3476
+ },
3477
+ identifier: {
3478
+ name: "variable.other.readwrite.cs",
3479
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
3480
+ },
3481
+ "cast-expression": {
3482
+ match: "(?x)\n(\\()\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])",
3483
+ captures: {
3484
+ "1": {
3485
+ name: "punctuation.parenthesis.open.cs"
3486
+ },
3487
+ "2": {
3488
+ patterns: [
3489
+ {
3490
+ include: "#type"
3491
+ }
3492
+ ]
3493
+ },
3494
+ "7": {
3495
+ name: "punctuation.parenthesis.close.cs"
3496
+ }
3497
+ }
3498
+ },
3499
+ "as-expression": {
3500
+ match: "(?x)\n(?<!\\.)\\b(as)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?",
3501
+ captures: {
3502
+ "1": {
3503
+ name: "keyword.other.as.cs"
3504
+ },
3505
+ "2": {
3506
+ patterns: [
3507
+ {
3508
+ include: "#type"
3509
+ }
3510
+ ]
3511
+ }
3512
+ }
3513
+ },
3514
+ "is-expression": {
3515
+ match: "(?x)\n(?<!\\.)\\b(is)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?",
3516
+ captures: {
3517
+ "1": {
3518
+ name: "keyword.other.is.cs"
3519
+ },
3520
+ "2": {
3521
+ patterns: [
3522
+ {
3523
+ include: "#type"
3524
+ }
3525
+ ]
3526
+ }
3527
+ }
3528
+ },
3529
+ "this-or-base-expression": {
3530
+ match: "\\b(?:(base)|(this))\\b",
3531
+ captures: {
3532
+ "1": {
3533
+ name: "keyword.other.base.cs"
3534
+ },
3535
+ "2": {
3536
+ name: "keyword.other.this.cs"
3537
+ }
3538
+ }
3539
+ },
3540
+ "invocation-expression": {
3541
+ begin: "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(?:(\\.)\\s*)? # preceding dot?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?<type_args>\\s*<([^<>]|\\g<type_args>)+>\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list",
3542
+ beginCaptures: {
3543
+ "1": {
3544
+ name: "keyword.operator.null-conditional.cs"
3545
+ },
3546
+ "2": {
3547
+ name: "punctuation.accessor.cs"
3548
+ },
3549
+ "3": {
3550
+ name: "entity.name.function.cs"
3551
+ },
3552
+ "4": {
3553
+ patterns: [
3554
+ {
3555
+ include: "#type-arguments"
3556
+ }
3557
+ ]
3558
+ }
3559
+ },
3560
+ end: "(?<=\\))",
3561
+ patterns: [
3562
+ {
3563
+ include: "#argument-list"
3564
+ }
3565
+ ]
3566
+ },
3567
+ "element-access-expression": {
3568
+ begin: "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(?:(\\.)\\s*)? # preceding dot?\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list",
3569
+ beginCaptures: {
3570
+ "1": {
3571
+ name: "keyword.operator.null-conditional.cs"
3572
+ },
3573
+ "2": {
3574
+ name: "punctuation.accessor.cs"
3575
+ },
3576
+ "3": {
3577
+ name: "variable.other.object.property.cs"
3578
+ },
3579
+ "4": {
3580
+ name: "keyword.operator.null-conditional.cs"
3581
+ }
3582
+ },
3583
+ end: "(?<=\\])(?!\\s*\\[)",
3584
+ patterns: [
3585
+ {
3586
+ include: "#bracketed-argument-list"
3587
+ }
3588
+ ]
3589
+ },
3590
+ "member-access-expression": {
3591
+ patterns: [
3592
+ {
3593
+ match: "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(\\.)\\s* # preceding dot\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[",
3594
+ captures: {
3595
+ "1": {
3596
+ name: "keyword.operator.null-conditional.cs"
3597
+ },
3598
+ "2": {
3599
+ name: "punctuation.accessor.cs"
3600
+ },
3601
+ "3": {
3602
+ name: "variable.other.object.property.cs"
3603
+ }
3604
+ }
3605
+ },
3606
+ {
3607
+ match: "(?x)\n(\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?<type_params>\\s*<([^<>]|\\g<type_params>)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)",
3608
+ captures: {
3609
+ "1": {
3610
+ name: "punctuation.accessor.cs"
3611
+ },
3612
+ "2": {
3613
+ name: "variable.other.object.cs"
3614
+ },
3615
+ "3": {
3616
+ patterns: [
3617
+ {
3618
+ include: "#type-arguments"
3619
+ }
3620
+ ]
3621
+ }
3622
+ }
3623
+ },
3624
+ {
3625
+ match: "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)",
3626
+ captures: {
3627
+ "1": {
3628
+ name: "variable.other.object.cs"
3629
+ }
3630
+ }
3631
+ }
3632
+ ]
3633
+ },
3634
+ "object-creation-expression": {
3635
+ patterns: [
3636
+ {
3637
+ include: "#object-creation-expression-with-parameters"
3638
+ },
3639
+ {
3640
+ include: "#object-creation-expression-with-no-parameters"
3641
+ }
3642
+ ]
3643
+ },
3644
+ "object-creation-expression-with-parameters": {
3645
+ begin: "(?x)\n(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\()",
3646
+ beginCaptures: {
3647
+ "1": {
3648
+ name: "keyword.other.new.cs"
3649
+ },
3650
+ "2": {
3651
+ patterns: [
3652
+ {
3653
+ include: "#type"
3654
+ }
3655
+ ]
3656
+ }
3657
+ },
3658
+ end: "(?<=\\))",
3659
+ patterns: [
3660
+ {
3661
+ include: "#argument-list"
3662
+ }
3663
+ ]
3664
+ },
3665
+ "object-creation-expression-with-no-parameters": {
3666
+ match: "(?x)\n(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\{|$)",
3667
+ captures: {
3668
+ "1": {
3669
+ name: "keyword.other.new.cs"
3670
+ },
3671
+ "2": {
3672
+ patterns: [
3673
+ {
3674
+ include: "#type"
3675
+ }
3676
+ ]
3677
+ }
3678
+ }
3679
+ },
3680
+ "array-creation-expression": {
3681
+ begin: "(?x)\n\\b(new|stackalloc)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(?=\\[)",
3682
+ beginCaptures: {
3683
+ "1": {
3684
+ name: "keyword.other.new.cs"
3685
+ },
3686
+ "2": {
3687
+ patterns: [
3688
+ {
3689
+ include: "#type"
3690
+ }
3691
+ ]
3692
+ }
3693
+ },
3694
+ end: "(?<=\\])",
3695
+ patterns: [
3696
+ {
3697
+ include: "#bracketed-argument-list"
3698
+ }
3699
+ ]
3700
+ },
3701
+ "anonymous-object-creation-expression": {
3702
+ begin: "\\b(new)\\b\\s*(?=\\{|$)",
3703
+ beginCaptures: {
3704
+ "1": {
3705
+ name: "keyword.other.new.cs"
3706
+ }
3707
+ },
3708
+ end: "(?<=\\})",
3709
+ patterns: [
3710
+ {
3711
+ include: "#initializer-expression"
3712
+ }
3713
+ ]
3714
+ },
3715
+ "bracketed-parameter-list": {
3716
+ begin: "(?=(\\[))",
3717
+ beginCaptures: {
3718
+ "1": {
3719
+ name: "punctuation.squarebracket.open.cs"
3720
+ }
3721
+ },
3722
+ end: "(?=(\\]))",
3723
+ endCaptures: {
3724
+ "1": {
3725
+ name: "punctuation.squarebracket.close.cs"
3726
+ }
3727
+ },
3728
+ patterns: [
3729
+ {
3730
+ begin: "(?<=\\[)",
3731
+ end: "(?=\\])",
3732
+ patterns: [
3733
+ {
3734
+ include: "#comment"
3735
+ },
3736
+ {
3737
+ include: "#attribute-section"
3738
+ },
3739
+ {
3740
+ include: "#parameter"
3741
+ },
3742
+ {
3743
+ include: "#punctuation-comma"
3744
+ },
3745
+ {
3746
+ include: "#variable-initializer"
3747
+ }
3748
+ ]
3749
+ }
3750
+ ]
3751
+ },
3752
+ "parenthesized-parameter-list": {
3753
+ begin: "(\\()",
3754
+ beginCaptures: {
3755
+ "0": {
3756
+ name: "punctuation.parenthesis.open.cs"
3757
+ }
3758
+ },
3759
+ end: "(\\))",
3760
+ endCaptures: {
3761
+ "0": {
3762
+ name: "punctuation.parenthesis.close.cs"
3763
+ }
3764
+ },
3765
+ patterns: [
3766
+ {
3767
+ include: "#comment"
3768
+ },
3769
+ {
3770
+ include: "#attribute-section"
3771
+ },
3772
+ {
3773
+ include: "#parameter"
3774
+ },
3775
+ {
3776
+ include: "#punctuation-comma"
3777
+ },
3778
+ {
3779
+ include: "#variable-initializer"
3780
+ }
3781
+ ]
3782
+ },
3783
+ parameter: {
3784
+ match: "(?x)\n(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?\n(?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)",
3785
+ captures: {
3786
+ "1": {
3787
+ name: "storage.modifier.cs"
3788
+ },
3789
+ "2": {
3790
+ patterns: [
3791
+ {
3792
+ include: "#type"
3793
+ }
3794
+ ]
3795
+ },
3796
+ "7": {
3797
+ name: "entity.name.variable.parameter.cs"
3798
+ }
3799
+ }
3800
+ },
3801
+ "argument-list": {
3802
+ begin: "\\(",
3803
+ beginCaptures: {
3804
+ "0": {
3805
+ name: "punctuation.parenthesis.open.cs"
3806
+ }
3807
+ },
3808
+ end: "\\)",
3809
+ endCaptures: {
3810
+ "0": {
3811
+ name: "punctuation.parenthesis.close.cs"
3812
+ }
3813
+ },
3814
+ patterns: [
3815
+ {
3816
+ include: "#named-argument"
3817
+ },
3818
+ {
3819
+ include: "#argument"
3820
+ },
3821
+ {
3822
+ include: "#punctuation-comma"
3823
+ }
3824
+ ]
3825
+ },
3826
+ "bracketed-argument-list": {
3827
+ begin: "\\[",
3828
+ beginCaptures: {
3829
+ "0": {
3830
+ name: "punctuation.squarebracket.open.cs"
3831
+ }
3832
+ },
3833
+ end: "\\]",
3834
+ endCaptures: {
3835
+ "0": {
3836
+ name: "punctuation.squarebracket.close.cs"
3837
+ }
3838
+ },
3839
+ patterns: [
3840
+ {
3841
+ include: "#named-argument"
3842
+ },
3843
+ {
3844
+ include: "#argument"
3845
+ },
3846
+ {
3847
+ include: "#punctuation-comma"
3848
+ }
3849
+ ]
3850
+ },
3851
+ "named-argument": {
3852
+ begin: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",
3853
+ beginCaptures: {
3854
+ "1": {
3855
+ name: "entity.name.variable.parameter.cs"
3856
+ },
3857
+ "2": {
3858
+ name: "punctuation.separator.colon.cs"
3859
+ }
3860
+ },
3861
+ end: "(?=(,|\\)|\\]))",
3862
+ patterns: [
3863
+ {
3864
+ include: "#argument"
3865
+ }
3866
+ ]
3867
+ },
3868
+ argument: {
3869
+ patterns: [
3870
+ {
3871
+ name: "storage.modifier.cs",
3872
+ match: "\\b(ref|out|in)\\b"
3873
+ },
3874
+ {
3875
+ include: "#declaration-expression-local"
3876
+ },
3877
+ {
3878
+ include: "#expression"
3879
+ }
3880
+ ]
3881
+ },
3882
+ "query-expression": {
3883
+ begin: "(?x)\n\\b(from)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g<identifier>)\\b\\s*\n\\b(in)\\b\\s*",
3884
+ beginCaptures: {
3885
+ "1": {
3886
+ name: "keyword.query.from.cs"
3887
+ },
3888
+ "2": {
3889
+ patterns: [
3890
+ {
3891
+ include: "#type"
3892
+ }
3893
+ ]
3894
+ },
3895
+ "7": {
3896
+ name: "entity.name.variable.range-variable.cs"
3897
+ },
3898
+ "8": {
3899
+ name: "keyword.query.in.cs"
3900
+ }
3901
+ },
3902
+ end: "(?=;|\\))",
3903
+ patterns: [
3904
+ {
3905
+ include: "#query-body"
3906
+ },
3907
+ {
3908
+ include: "#expression"
3909
+ }
3910
+ ]
3911
+ },
3912
+ "query-body": {
3913
+ patterns: [
3914
+ {
3915
+ include: "#let-clause"
3916
+ },
3917
+ {
3918
+ include: "#where-clause"
3919
+ },
3920
+ {
3921
+ include: "#join-clause"
3922
+ },
3923
+ {
3924
+ include: "#orderby-clause"
3925
+ },
3926
+ {
3927
+ include: "#select-clause"
3928
+ },
3929
+ {
3930
+ include: "#group-clause"
3931
+ }
3932
+ ]
3933
+ },
3934
+ "let-clause": {
3935
+ begin: "(?x)\n\\b(let)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=)\\s*",
3936
+ beginCaptures: {
3937
+ "1": {
3938
+ name: "keyword.query.let.cs"
3939
+ },
3940
+ "2": {
3941
+ name: "entity.name.variable.range-variable.cs"
3942
+ },
3943
+ "3": {
3944
+ name: "keyword.operator.assignment.cs"
3945
+ }
3946
+ },
3947
+ end: "(?=;|\\))",
3948
+ patterns: [
3949
+ {
3950
+ include: "#query-body"
3951
+ },
3952
+ {
3953
+ include: "#expression"
3954
+ }
3955
+ ]
3956
+ },
3957
+ "where-clause": {
3958
+ begin: "(?x)\n\\b(where)\\b\\s*",
3959
+ beginCaptures: {
3960
+ "1": {
3961
+ name: "keyword.query.where.cs"
3962
+ }
3963
+ },
3964
+ end: "(?=;|\\))",
3965
+ patterns: [
3966
+ {
3967
+ include: "#query-body"
3968
+ },
3969
+ {
3970
+ include: "#expression"
3971
+ }
3972
+ ]
3973
+ },
3974
+ "join-clause": {
3975
+ begin: "(?x)\n\\b(join)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g<identifier>)\\b\\s*\n\\b(in)\\b\\s*",
3976
+ beginCaptures: {
3977
+ "1": {
3978
+ name: "keyword.query.join.cs"
3979
+ },
3980
+ "2": {
3981
+ patterns: [
3982
+ {
3983
+ include: "#type"
3984
+ }
3985
+ ]
3986
+ },
3987
+ "7": {
3988
+ name: "entity.name.variable.range-variable.cs"
3989
+ },
3990
+ "8": {
3991
+ name: "keyword.query.in.cs"
3992
+ }
3993
+ },
3994
+ end: "(?=;|\\))",
3995
+ patterns: [
3996
+ {
3997
+ include: "#join-on"
3998
+ },
3999
+ {
4000
+ include: "#join-equals"
4001
+ },
4002
+ {
4003
+ include: "#join-into"
4004
+ },
4005
+ {
4006
+ include: "#query-body"
4007
+ },
4008
+ {
4009
+ include: "#expression"
4010
+ }
4011
+ ]
4012
+ },
4013
+ "join-on": {
4014
+ match: "\\b(on)\\b\\s*",
4015
+ captures: {
4016
+ "1": {
4017
+ name: "keyword.query.on.cs"
4018
+ }
4019
+ }
4020
+ },
4021
+ "join-equals": {
4022
+ match: "\\b(equals)\\b\\s*",
4023
+ captures: {
4024
+ "1": {
4025
+ name: "keyword.query.equals.cs"
4026
+ }
4027
+ }
4028
+ },
4029
+ "join-into": {
4030
+ match: "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*",
4031
+ captures: {
4032
+ "1": {
4033
+ name: "keyword.query.into.cs"
4034
+ },
4035
+ "2": {
4036
+ name: "entity.name.variable.range-variable.cs"
4037
+ }
4038
+ }
4039
+ },
4040
+ "orderby-clause": {
4041
+ begin: "\\b(orderby)\\b\\s*",
4042
+ beginCaptures: {
4043
+ "1": {
4044
+ name: "keyword.query.orderby.cs"
4045
+ }
4046
+ },
4047
+ end: "(?=;|\\))",
4048
+ patterns: [
4049
+ {
4050
+ include: "#ordering-direction"
4051
+ },
4052
+ {
4053
+ include: "#query-body"
4054
+ },
4055
+ {
4056
+ include: "#expression"
4057
+ },
4058
+ {
4059
+ include: "#punctuation-comma"
4060
+ }
4061
+ ]
4062
+ },
4063
+ "ordering-direction": {
4064
+ match: "\\b(?:(ascending)|(descending))\\b",
4065
+ captures: {
4066
+ "1": {
4067
+ name: "keyword.query.ascending.cs"
4068
+ },
4069
+ "2": {
4070
+ name: "keyword.query.descending.cs"
4071
+ }
4072
+ }
4073
+ },
4074
+ "select-clause": {
4075
+ begin: "\\b(select)\\b\\s*",
4076
+ beginCaptures: {
4077
+ "1": {
4078
+ name: "keyword.query.select.cs"
4079
+ }
4080
+ },
4081
+ end: "(?=;|\\))",
4082
+ patterns: [
4083
+ {
4084
+ include: "#query-body"
4085
+ },
4086
+ {
4087
+ include: "#expression"
4088
+ }
4089
+ ]
4090
+ },
4091
+ "group-clause": {
4092
+ begin: "\\b(group)\\b\\s*",
4093
+ beginCaptures: {
4094
+ "1": {
4095
+ name: "keyword.query.group.cs"
4096
+ }
4097
+ },
4098
+ end: "(?=;|\\))",
4099
+ patterns: [
4100
+ {
4101
+ include: "#group-by"
4102
+ },
4103
+ {
4104
+ include: "#group-into"
4105
+ },
4106
+ {
4107
+ include: "#query-body"
4108
+ },
4109
+ {
4110
+ include: "#expression"
4111
+ }
4112
+ ]
4113
+ },
4114
+ "group-by": {
4115
+ match: "\\b(by)\\b\\s*",
4116
+ captures: {
4117
+ "1": {
4118
+ name: "keyword.query.by.cs"
4119
+ }
4120
+ }
4121
+ },
4122
+ "group-into": {
4123
+ match: "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*",
4124
+ captures: {
4125
+ "1": {
4126
+ name: "keyword.query.into.cs"
4127
+ },
4128
+ "2": {
4129
+ name: "entity.name.variable.range-variable.cs"
4130
+ }
4131
+ }
4132
+ },
4133
+ "anonymous-method-expression": {
4134
+ patterns: [
4135
+ {
4136
+ begin: "(?x)\n(?:\\b(async)\\b\\s*)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=>)",
4137
+ beginCaptures: {
4138
+ "1": {
4139
+ name: "storage.modifier.cs"
4140
+ },
4141
+ "2": {
4142
+ name: "entity.name.variable.parameter.cs"
4143
+ },
4144
+ "3": {
4145
+ name: "keyword.operator.arrow.cs"
4146
+ }
4147
+ },
4148
+ end: "(?=\\)|;|}|,)",
4149
+ patterns: [
4150
+ {
4151
+ include: "#block"
4152
+ },
4153
+ {
4154
+ include: "#ref-modifier"
4155
+ },
4156
+ {
4157
+ include: "#expression"
4158
+ }
4159
+ ]
4160
+ },
4161
+ {
4162
+ begin: "(?x)\n(?:\\b(async)\\b\\s*)?\n(\\(.*?\\))\\s*\n(=>)",
4163
+ beginCaptures: {
4164
+ "1": {
4165
+ name: "storage.modifier.cs"
4166
+ },
4167
+ "2": {
4168
+ patterns: [
4169
+ {
4170
+ include: "#lambda-parameter-list"
4171
+ }
4172
+ ]
4173
+ },
4174
+ "3": {
4175
+ name: "keyword.operator.arrow.cs"
4176
+ }
4177
+ },
4178
+ end: "(?=\\)|;|}|,)",
4179
+ patterns: [
4180
+ {
4181
+ include: "#block"
4182
+ },
4183
+ {
4184
+ include: "#ref-modifier"
4185
+ },
4186
+ {
4187
+ include: "#expression"
4188
+ }
4189
+ ]
4190
+ },
4191
+ {
4192
+ begin: "(?x)\n(?:\\b(async)\\b\\s*)?\n(?:\\b(delegate)\\b\\s*)",
4193
+ beginCaptures: {
4194
+ "1": {
4195
+ name: "storage.modifier.cs"
4196
+ },
4197
+ "2": {
4198
+ name: "keyword.other.delegate.cs"
4199
+ }
4200
+ },
4201
+ end: "(?=\\)|;|}|,)",
4202
+ patterns: [
4203
+ {
4204
+ include: "#parenthesized-parameter-list"
4205
+ },
4206
+ {
4207
+ include: "#block"
4208
+ },
4209
+ {
4210
+ include: "#expression"
4211
+ }
4212
+ ]
4213
+ }
4214
+ ]
4215
+ },
4216
+ "lambda-parameter-list": {
4217
+ begin: "\\(",
4218
+ beginCaptures: {
4219
+ "0": {
4220
+ name: "punctuation.parenthesis.open.cs"
4221
+ }
4222
+ },
4223
+ end: "\\)",
4224
+ endCaptures: {
4225
+ "0": {
4226
+ name: "punctuation.parenthesis.close.cs"
4227
+ }
4228
+ },
4229
+ patterns: [
4230
+ {
4231
+ include: "#comment"
4232
+ },
4233
+ {
4234
+ include: "#attribute-section"
4235
+ },
4236
+ {
4237
+ include: "#lambda-parameter"
4238
+ },
4239
+ {
4240
+ include: "#punctuation-comma"
4241
+ }
4242
+ ]
4243
+ },
4244
+ "lambda-parameter": {
4245
+ match: "(?x)\n(?:\\b(ref|out|in)\\b)?\\s*\n(?:(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+)?\n(\\g<identifier>)\\b\\s*\n(?=[,)])",
4246
+ captures: {
4247
+ "1": {
4248
+ name: "storage.modifier.cs"
4249
+ },
4250
+ "2": {
4251
+ patterns: [
4252
+ {
4253
+ include: "#type"
4254
+ }
4255
+ ]
4256
+ },
4257
+ "7": {
4258
+ name: "entity.name.variable.parameter.cs"
4259
+ }
4260
+ }
4261
+ },
4262
+ type: {
4263
+ name: "meta.type.cs",
4264
+ patterns: [
4265
+ {
4266
+ include: "#comment"
4267
+ },
4268
+ {
4269
+ include: "#ref-modifier"
4270
+ },
4271
+ {
4272
+ include: "#readonly-modifier"
4273
+ },
4274
+ {
4275
+ include: "#tuple-type"
4276
+ },
4277
+ {
4278
+ include: "#type-builtin"
4279
+ },
4280
+ {
4281
+ include: "#type-name"
4282
+ },
4283
+ {
4284
+ include: "#type-arguments"
4285
+ },
4286
+ {
4287
+ include: "#type-array-suffix"
4288
+ },
4289
+ {
4290
+ include: "#type-nullable-suffix"
4291
+ }
4292
+ ]
4293
+ },
4294
+ "ref-modifier": {
4295
+ name: "storage.modifier.cs",
4296
+ match: "\\b(ref)\\b"
4297
+ },
4298
+ "readonly-modifier": {
4299
+ name: "storage.modifier.cs",
4300
+ match: "\\b(readonly)\\b"
4301
+ },
4302
+ "tuple-type": {
4303
+ begin: "\\(",
4304
+ beginCaptures: {
4305
+ "0": {
4306
+ name: "punctuation.parenthesis.open.cs"
4307
+ }
4308
+ },
4309
+ end: "\\)",
4310
+ endCaptures: {
4311
+ "0": {
4312
+ name: "punctuation.parenthesis.close.cs"
4313
+ }
4314
+ },
4315
+ patterns: [
4316
+ {
4317
+ include: "#tuple-element"
4318
+ },
4319
+ {
4320
+ include: "#punctuation-comma"
4321
+ }
4322
+ ]
4323
+ },
4324
+ "tuple-element": {
4325
+ match: "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\n(?:(?<tuple_name>\\g<identifier>)\\b)?",
4326
+ captures: {
4327
+ "1": {
4328
+ patterns: [
4329
+ {
4330
+ include: "#type"
4331
+ }
4332
+ ]
4333
+ },
4334
+ "6": {
4335
+ name: "entity.name.variable.tuple-element.cs"
4336
+ }
4337
+ }
4338
+ },
4339
+ "type-builtin": {
4340
+ match: "\\b(bool|byte|char|decimal|double|float|int|long|object|sbyte|short|string|uint|ulong|ushort|void|dynamic)\\b",
4341
+ captures: {
4342
+ "1": {
4343
+ name: "keyword.type.cs"
4344
+ }
4345
+ }
4346
+ },
4347
+ "type-name": {
4348
+ patterns: [
4349
+ {
4350
+ match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)",
4351
+ captures: {
4352
+ "1": {
4353
+ name: "entity.name.type.alias.cs"
4354
+ },
4355
+ "2": {
4356
+ name: "punctuation.separator.coloncolon.cs"
4357
+ }
4358
+ }
4359
+ },
4360
+ {
4361
+ match: "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)",
4362
+ captures: {
4363
+ "1": {
4364
+ name: "entity.name.type.cs"
4365
+ },
4366
+ "2": {
4367
+ name: "punctuation.accessor.cs"
4368
+ }
4369
+ }
4370
+ },
4371
+ {
4372
+ match: "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)",
4373
+ captures: {
4374
+ "1": {
4375
+ name: "punctuation.accessor.cs"
4376
+ },
4377
+ "2": {
4378
+ name: "entity.name.type.cs"
4379
+ }
4380
+ }
4381
+ },
4382
+ {
4383
+ name: "entity.name.type.cs",
4384
+ match: "@?[_[:alpha:]][_[:alnum:]]*"
4385
+ }
4386
+ ]
4387
+ },
4388
+ "type-arguments": {
4389
+ begin: "<",
4390
+ beginCaptures: {
4391
+ "0": {
4392
+ name: "punctuation.definition.typeparameters.begin.cs"
4393
+ }
4394
+ },
4395
+ end: ">",
4396
+ endCaptures: {
4397
+ "0": {
4398
+ name: "punctuation.definition.typeparameters.end.cs"
4399
+ }
4400
+ },
4401
+ patterns: [
4402
+ {
4403
+ include: "#comment"
4404
+ },
4405
+ {
4406
+ include: "#type"
4407
+ },
4408
+ {
4409
+ include: "#punctuation-comma"
4410
+ }
4411
+ ]
4412
+ },
4413
+ "type-array-suffix": {
4414
+ begin: "\\[",
4415
+ beginCaptures: {
4416
+ "0": {
4417
+ name: "punctuation.squarebracket.open.cs"
4418
+ }
4419
+ },
4420
+ end: "\\]",
4421
+ endCaptures: {
4422
+ "0": {
4423
+ name: "punctuation.squarebracket.close.cs"
4424
+ }
4425
+ },
4426
+ patterns: [
4427
+ {
4428
+ include: "#punctuation-comma"
4429
+ }
4430
+ ]
4431
+ },
4432
+ "type-nullable-suffix": {
4433
+ match: "\\?",
4434
+ captures: {
4435
+ "0": {
4436
+ name: "punctuation.separator.question-mark.cs"
4437
+ }
4438
+ }
4439
+ },
4440
+ "operator-assignment": {
4441
+ name: "keyword.operator.assignment.cs",
4442
+ match: "(?<!=|!)(=)(?!=)"
4443
+ },
4444
+ "punctuation-comma": {
4445
+ name: "punctuation.separator.comma.cs",
4446
+ match: ","
4447
+ },
4448
+ "punctuation-semicolon": {
4449
+ name: "punctuation.terminator.statement.cs",
4450
+ match: ";"
4451
+ },
4452
+ "punctuation-accessor": {
4453
+ name: "punctuation.accessor.cs",
4454
+ match: "\\."
4455
+ },
4456
+ preprocessor: {
4457
+ name: "meta.preprocessor.cs",
4458
+ begin: "^\\s*(\\#)\\s*",
4459
+ beginCaptures: {
4460
+ "1": {
4461
+ name: "punctuation.separator.hash.cs"
4462
+ }
4463
+ },
4464
+ end: "(?<=$)",
4465
+ patterns: [
4466
+ {
4467
+ include: "#comment"
4468
+ },
4469
+ {
4470
+ include: "#preprocessor-define-or-undef"
4471
+ },
4472
+ {
4473
+ include: "#preprocessor-if-or-elif"
4474
+ },
4475
+ {
4476
+ include: "#preprocessor-else-or-endif"
4477
+ },
4478
+ {
4479
+ include: "#preprocessor-warning-or-error"
4480
+ },
4481
+ {
4482
+ include: "#preprocessor-region"
4483
+ },
4484
+ {
4485
+ include: "#preprocessor-endregion"
4486
+ },
4487
+ {
4488
+ include: "#preprocessor-load"
4489
+ },
4490
+ {
4491
+ include: "#preprocessor-r"
4492
+ },
4493
+ {
4494
+ include: "#preprocessor-line"
4495
+ },
4496
+ {
4497
+ include: "#preprocessor-pragma-warning"
4498
+ },
4499
+ {
4500
+ include: "#preprocessor-pragma-checksum"
4501
+ }
4502
+ ]
4503
+ },
4504
+ "preprocessor-define-or-undef": {
4505
+ match: "\\b(?:(define)|(undef))\\b\\s*\\b([_[:alpha:]][_[:alnum:]]*)\\b",
4506
+ captures: {
4507
+ "1": {
4508
+ name: "keyword.preprocessor.define.cs"
4509
+ },
4510
+ "2": {
4511
+ name: "keyword.preprocessor.undef.cs"
4512
+ },
4513
+ "3": {
4514
+ name: "entity.name.variable.preprocessor.symbol.cs"
4515
+ }
4516
+ }
4517
+ },
4518
+ "preprocessor-if-or-elif": {
4519
+ begin: "\\b(?:(if)|(elif))\\b",
4520
+ beginCaptures: {
4521
+ "1": {
4522
+ name: "keyword.preprocessor.if.cs"
4523
+ },
4524
+ "2": {
4525
+ name: "keyword.preprocessor.elif.cs"
4526
+ }
4527
+ },
4528
+ end: "(?=$)",
4529
+ patterns: [
4530
+ {
4531
+ include: "#comment"
4532
+ },
4533
+ {
4534
+ include: "#preprocessor-expression"
4535
+ }
4536
+ ]
4537
+ },
4538
+ "preprocessor-else-or-endif": {
4539
+ match: "\\b(?:(else)|(endif))\\b",
4540
+ captures: {
4541
+ "1": {
4542
+ name: "keyword.preprocessor.else.cs"
4543
+ },
4544
+ "2": {
4545
+ name: "keyword.preprocessor.endif.cs"
4546
+ }
4547
+ }
4548
+ },
4549
+ "preprocessor-warning-or-error": {
4550
+ match: "\\b(?:(warning)|(error))\\b\\s*(.*)(?=$)",
4551
+ captures: {
4552
+ "1": {
4553
+ name: "keyword.preprocessor.warning.cs"
4554
+ },
4555
+ "2": {
4556
+ name: "keyword.preprocessor.error.cs"
4557
+ },
4558
+ "3": {
4559
+ name: "string.unquoted.preprocessor.message.cs"
4560
+ }
4561
+ }
4562
+ },
4563
+ "preprocessor-load": {
4564
+ begin: "\\b(load)\\b",
4565
+ beginCaptures: {
4566
+ "1": {
4567
+ name: "keyword.preprocessor.load.cs"
4568
+ }
4569
+ },
4570
+ end: "(?=$)",
4571
+ patterns: [
4572
+ {
4573
+ match: "\\\"[^\"]*\\\"",
4574
+ captures: {
4575
+ "0": {
4576
+ name: "string.quoted.double.cs"
4577
+ }
4578
+ }
4579
+ }
4580
+ ]
4581
+ },
4582
+ "preprocessor-r": {
4583
+ begin: "\\b(r)\\b",
4584
+ beginCaptures: {
4585
+ "1": {
4586
+ name: "keyword.preprocessor.r.cs"
4587
+ }
4588
+ },
4589
+ end: "(?=$)",
4590
+ patterns: [
4591
+ {
4592
+ match: "\\\"[^\"]*\\\"",
4593
+ captures: {
4594
+ "0": {
4595
+ name: "string.quoted.double.cs"
4596
+ }
4597
+ }
4598
+ }
4599
+ ]
4600
+ },
4601
+ "preprocessor-region": {
4602
+ match: "\\b(region)\\b\\s*(.*)(?=$)",
4603
+ captures: {
4604
+ "1": {
4605
+ name: "keyword.preprocessor.region.cs"
4606
+ },
4607
+ "2": {
4608
+ name: "string.unquoted.preprocessor.message.cs"
4609
+ }
4610
+ }
4611
+ },
4612
+ "preprocessor-endregion": {
4613
+ match: "\\b(endregion)\\b",
4614
+ captures: {
4615
+ "1": {
4616
+ name: "keyword.preprocessor.endregion.cs"
4617
+ }
4618
+ }
4619
+ },
4620
+ "preprocessor-line": {
4621
+ begin: "\\b(line)\\b",
4622
+ beginCaptures: {
4623
+ "1": {
4624
+ name: "keyword.preprocessor.line.cs"
4625
+ }
4626
+ },
4627
+ end: "(?=$)",
4628
+ patterns: [
4629
+ {
4630
+ match: "\\b(?:(default|hidden))",
4631
+ captures: {
4632
+ "1": {
4633
+ name: "keyword.preprocessor.default.cs"
4634
+ },
4635
+ "2": {
4636
+ name: "keyword.preprocessor.hidden.cs"
4637
+ }
4638
+ }
4639
+ },
4640
+ {
4641
+ match: "[0-9]+",
4642
+ captures: {
4643
+ "0": {
4644
+ name: "constant.numeric.decimal.cs"
4645
+ }
4646
+ }
4647
+ },
4648
+ {
4649
+ match: "\\\"[^\"]*\\\"",
4650
+ captures: {
4651
+ "0": {
4652
+ name: "string.quoted.double.cs"
4653
+ }
4654
+ }
4655
+ }
4656
+ ]
4657
+ },
4658
+ "preprocessor-pragma-warning": {
4659
+ match: "\\b(pragma)\\b\\s*\\b(warning)\\b\\s*\\b(?:(disable)|(restore))\\b(\\s*[0-9]+(?:\\s*,\\s*[0-9]+)?)?",
4660
+ captures: {
4661
+ "1": {
4662
+ name: "keyword.preprocessor.pragma.cs"
4663
+ },
4664
+ "2": {
4665
+ name: "keyword.preprocessor.warning.cs"
4666
+ },
4667
+ "3": {
4668
+ name: "keyword.preprocessor.disable.cs"
4669
+ },
4670
+ "4": {
4671
+ name: "keyword.preprocessor.restore.cs"
4672
+ },
4673
+ "5": {
4674
+ patterns: [
4675
+ {
4676
+ match: "[0-9]+",
4677
+ captures: {
4678
+ "0": {
4679
+ name: "constant.numeric.decimal.cs"
4680
+ }
4681
+ }
4682
+ },
4683
+ {
4684
+ include: "#punctuation-comma"
4685
+ }
4686
+ ]
4687
+ }
4688
+ }
4689
+ },
4690
+ "preprocessor-pragma-checksum": {
4691
+ match: "\\b(pragma)\\b\\s*\\b(checksum)\\b\\s*(\\\"[^\"]*\\\")\\s*(\\\"[^\"]*\\\")\\s*(\\\"[^\"]*\\\")",
4692
+ captures: {
4693
+ "1": {
4694
+ name: "keyword.preprocessor.pragma.cs"
4695
+ },
4696
+ "2": {
4697
+ name: "keyword.preprocessor.checksum.cs"
4698
+ },
4699
+ "3": {
4700
+ name: "string.quoted.double.cs"
4701
+ },
4702
+ "4": {
4703
+ name: "string.quoted.double.cs"
4704
+ },
4705
+ "5": {
4706
+ name: "string.quoted.double.cs"
4707
+ }
4708
+ }
4709
+ },
4710
+ "preprocessor-expression": {
4711
+ patterns: [
4712
+ {
4713
+ begin: "\\(",
4714
+ beginCaptures: {
4715
+ "0": {
4716
+ name: "punctuation.parenthesis.open.cs"
4717
+ }
4718
+ },
4719
+ end: "\\)",
4720
+ endCaptures: {
4721
+ "0": {
4722
+ name: "punctuation.parenthesis.close.cs"
4723
+ }
4724
+ },
4725
+ patterns: [
4726
+ {
4727
+ include: "#preprocessor-expression"
4728
+ }
4729
+ ]
4730
+ },
4731
+ {
4732
+ match: "\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\b",
4733
+ captures: {
4734
+ "1": {
4735
+ name: "constant.language.boolean.true.cs"
4736
+ },
4737
+ "2": {
4738
+ name: "constant.language.boolean.false.cs"
4739
+ },
4740
+ "3": {
4741
+ name: "entity.name.variable.preprocessor.symbol.cs"
4742
+ }
4743
+ }
4744
+ },
4745
+ {
4746
+ match: "(==|!=)|(\\!|&&|\\|\\|)",
4747
+ captures: {
4748
+ "1": {
4749
+ name: "keyword.operator.comparison.cs"
4750
+ },
4751
+ "2": {
4752
+ name: "keyword.operator.logical.cs"
4753
+ }
4754
+ }
4755
+ }
4756
+ ]
4757
+ },
4758
+ comment: {
4759
+ patterns: [
4760
+ {
4761
+ name: "comment.block.cs",
4762
+ begin: "/\\*",
4763
+ beginCaptures: {
4764
+ "0": {
4765
+ name: "punctuation.definition.comment.cs"
4766
+ }
4767
+ },
4768
+ end: "\\*/",
4769
+ endCaptures: {
4770
+ "0": {
4771
+ name: "punctuation.definition.comment.cs"
4772
+ }
4773
+ }
4774
+ },
4775
+ {
4776
+ begin: "(^\\s+)?(?=//)",
4777
+ beginCaptures: {
4778
+ "1": {
4779
+ name: "punctuation.whitespace.comment.leading.cs"
4780
+ }
4781
+ },
4782
+ end: "(?=$)",
4783
+ patterns: [
4784
+ {
4785
+ name: "comment.block.documentation.cs",
4786
+ begin: "(?<!/)///(?!/)",
4787
+ beginCaptures: {
4788
+ "0": {
4789
+ name: "punctuation.definition.comment.cs"
4790
+ }
4791
+ },
4792
+ end: "(?=$)",
4793
+ patterns: [
4794
+ {
4795
+ include: "#xml-doc-comment"
4796
+ }
4797
+ ]
4798
+ },
4799
+ {
4800
+ name: "comment.line.double-slash.cs",
4801
+ begin: "(?<!/)//(?:(?!/)|(?=//))",
4802
+ beginCaptures: {
4803
+ "0": {
4804
+ name: "punctuation.definition.comment.cs"
4805
+ }
4806
+ },
4807
+ end: "(?=$)"
4808
+ }
4809
+ ]
4810
+ }
4811
+ ]
4812
+ },
4813
+ "xml-doc-comment": {
4814
+ patterns: [
4815
+ {
4816
+ include: "#xml-comment"
4817
+ },
4818
+ {
4819
+ include: "#xml-character-entity"
4820
+ },
4821
+ {
4822
+ include: "#xml-cdata"
4823
+ },
4824
+ {
4825
+ include: "#xml-tag"
4826
+ }
4827
+ ]
4828
+ },
4829
+ "xml-tag": {
4830
+ name: "meta.tag.cs",
4831
+ begin: "(?x)\n(</?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)",
4832
+ beginCaptures: {
4833
+ "1": {
4834
+ name: "punctuation.definition.tag.cs"
4835
+ },
4836
+ "2": {
4837
+ name: "entity.name.tag.cs"
4838
+ },
4839
+ "3": {
4840
+ name: "entity.name.tag.namespace.cs"
4841
+ },
4842
+ "4": {
4843
+ name: "punctuation.separator.colon.cs"
4844
+ },
4845
+ "5": {
4846
+ name: "entity.name.tag.localname.cs"
4847
+ }
4848
+ },
4849
+ end: "(/?>)",
4850
+ endCaptures: {
4851
+ "1": {
4852
+ name: "punctuation.definition.tag.cs"
4853
+ }
4854
+ },
4855
+ patterns: [
4856
+ {
4857
+ include: "#xml-attribute"
4858
+ }
4859
+ ]
4860
+ },
4861
+ "xml-attribute": {
4862
+ patterns: [
4863
+ {
4864
+ match: "(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)",
4865
+ captures: {
4866
+ "1": {
4867
+ name: "entity.other.attribute-name.cs"
4868
+ },
4869
+ "2": {
4870
+ name: "entity.other.attribute-name.namespace.cs"
4871
+ },
4872
+ "3": {
4873
+ name: "punctuation.separator.colon.cs"
4874
+ },
4875
+ "4": {
4876
+ name: "entity.other.attribute-name.localname.cs"
4877
+ },
4878
+ "5": {
4879
+ name: "punctuation.separator.equals.cs"
4880
+ }
4881
+ }
4882
+ },
4883
+ {
4884
+ include: "#xml-string"
4885
+ }
4886
+ ]
4887
+ },
4888
+ "xml-cdata": {
4889
+ name: "string.unquoted.cdata.cs",
4890
+ begin: "<!\\[CDATA\\[",
4891
+ beginCaptures: {
4892
+ "0": {
4893
+ name: "punctuation.definition.string.begin.cs"
4894
+ }
4895
+ },
4896
+ end: "\\]\\]>",
4897
+ endCaptures: {
4898
+ "0": {
4899
+ name: "punctuation.definition.string.end.cs"
4900
+ }
4901
+ }
4902
+ },
4903
+ "xml-string": {
4904
+ patterns: [
4905
+ {
4906
+ name: "string.quoted.single.cs",
4907
+ begin: "\\'",
4908
+ beginCaptures: {
4909
+ "0": {
4910
+ name: "punctuation.definition.string.begin.cs"
4911
+ }
4912
+ },
4913
+ end: "\\'",
4914
+ endCaptures: {
4915
+ "0": {
4916
+ name: "punctuation.definition.string.end.cs"
4917
+ }
4918
+ },
4919
+ patterns: [
4920
+ {
4921
+ include: "#xml-character-entity"
4922
+ }
4923
+ ]
4924
+ },
4925
+ {
4926
+ name: "string.quoted.double.cs",
4927
+ begin: "\\\"",
4928
+ beginCaptures: {
4929
+ "0": {
4930
+ name: "punctuation.definition.string.begin.cs"
4931
+ }
4932
+ },
4933
+ end: "\\\"",
4934
+ endCaptures: {
4935
+ "0": {
4936
+ name: "punctuation.definition.string.end.cs"
4937
+ }
4938
+ },
4939
+ patterns: [
4940
+ {
4941
+ include: "#xml-character-entity"
4942
+ }
4943
+ ]
4944
+ }
4945
+ ]
4946
+ },
4947
+ "xml-character-entity": {
4948
+ patterns: [
4949
+ {
4950
+ name: "constant.character.entity.cs",
4951
+ match: "(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)",
4952
+ captures: {
4953
+ "1": {
4954
+ name: "punctuation.definition.constant.cs"
4955
+ },
4956
+ "3": {
4957
+ name: "punctuation.definition.constant.cs"
4958
+ }
4959
+ }
4960
+ },
4961
+ {
4962
+ name: "invalid.illegal.bad-ampersand.cs",
4963
+ match: "&"
4964
+ }
4965
+ ]
4966
+ },
4967
+ "xml-comment": {
4968
+ name: "comment.block.cs",
4969
+ begin: "<!--",
4970
+ beginCaptures: {
4971
+ "0": {
4972
+ name: "punctuation.definition.comment.cs"
4973
+ }
4974
+ },
4975
+ end: "-->",
4976
+ endCaptures: {
4977
+ "0": {
4978
+ name: "punctuation.definition.comment.cs"
4979
+ }
4980
+ }
4981
+ }
4982
+ };
4983
+ var csharp_tmLanguage = {
4984
+ information_for_contributors: information_for_contributors,
4985
+ version: version,
4986
+ name: name,
4987
+ scopeName: scopeName,
4988
+ patterns: patterns,
4989
+ repository: repository
4990
+ };
4991
+
4992
+ export { csharp_tmLanguage as default, information_for_contributors, name, patterns, repository, scopeName, version };