@codingame/monaco-editor-wrapper 3.9.3 → 4.0.0-next.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 (537) hide show
  1. package/dist/C2Hs-configuration.json.js +3 -0
  2. package/dist/C2Hs.json.js +3 -0
  3. package/dist/COBOL.tmLanguage.json.js +3 -0
  4. package/dist/Erlang.plist.js +2 -1751
  5. package/dist/Hsc2Hs-configuration.json.js +3 -0
  6. package/dist/Hsc2Hs.json.js +3 -0
  7. package/dist/JavaProperties.tmLanguage.json.js +3 -0
  8. package/dist/Kotlin.tmLanguage.js +2 -723
  9. package/dist/META.json.js +3 -0
  10. package/dist/META.json2.js +3 -0
  11. package/dist/Markdown Redcarpet.json.js +3 -0
  12. package/dist/RMarkdown.json.js +3 -0
  13. package/dist/Rcpp.json.js +3 -0
  14. package/dist/Rd (R Documentation).json.js +3 -0
  15. package/dist/Scala.tmLanguage.json.js +3 -0
  16. package/dist/_commonjsHelpers.js +35 -0
  17. package/dist/_rollupPluginBabelHelpers.js +1 -1
  18. package/dist/add.svg.js +3 -0
  19. package/dist/add.svg2.js +3 -0
  20. package/dist/adddep-dark.svg.js +3 -0
  21. package/dist/adddep-light.svg.js +3 -0
  22. package/dist/alex.json.js +3 -0
  23. package/dist/angular-directives.json.js +3 -0
  24. package/dist/angular-interpolations.json.js +3 -0
  25. package/dist/angular-template-language-configuration.json.js +3 -0
  26. package/dist/arrow-circle-up-dark.svg.js +3 -0
  27. package/dist/arrow-circle-up-light.svg.js +3 -0
  28. package/dist/aspnetcorerazor.tmLanguage.json.js +3 -0
  29. package/dist/atd.json.js +3 -0
  30. package/dist/book-dark.svg.js +3 -0
  31. package/dist/book-light.svg.js +3 -0
  32. package/dist/book-open-dark.svg.js +3 -0
  33. package/dist/book-open-light.svg.js +3 -0
  34. package/dist/buildtarget.json.js +3 -0
  35. package/dist/cabal-configuration.json.js +3 -0
  36. package/dist/cabal.json.js +3 -0
  37. package/dist/codeblock-cabal.json.js +3 -0
  38. package/dist/codeblock-haskell.json.js +3 -0
  39. package/dist/codeblock-literate-haskell.json.js +3 -0
  40. package/dist/codeblock.json.js +3 -0
  41. package/dist/codeblock.json2.js +3 -0
  42. package/dist/configuration/index.d.ts +0 -1
  43. package/dist/cram.json.js +3 -0
  44. package/dist/csharp.json.js +3 -0
  45. package/dist/css.worker.js +1 -1
  46. package/dist/d.json.js +3 -0
  47. package/dist/d.json2.js +3 -0
  48. package/dist/dart-language-configuration.json.js +3 -0
  49. package/dist/dart.json.js +3 -0
  50. package/dist/dcf-configuration.json.js +3 -0
  51. package/dist/dcf.json.js +3 -0
  52. package/dist/diet.json.js +3 -0
  53. package/dist/diet.json2.js +3 -0
  54. package/dist/diet.json3.js +3 -0
  55. package/dist/django-html.tmLanguage.json.js +3 -0
  56. package/dist/django-txt.tmLanguage.json.js +3 -0
  57. package/dist/dml.json.js +3 -0
  58. package/dist/document-search-dark.svg.js +3 -0
  59. package/dist/document-search-light.svg.js +3 -0
  60. package/dist/documentation-inverse.svg.js +3 -0
  61. package/dist/documentation.svg.js +3 -0
  62. package/dist/dub-convert-inverse.svg.js +3 -0
  63. package/dist/dub-convert.svg.js +3 -0
  64. package/dist/dune-project.json.js +3 -0
  65. package/dist/dune-project.json2.js +3 -0
  66. package/dist/dune-workspace.json.js +3 -0
  67. package/dist/dune.json.js +3 -0
  68. package/dist/dune.json2.js +3 -0
  69. package/dist/dune.json3.js +3 -0
  70. package/dist/edit-dub-inverse.svg.js +3 -0
  71. package/dist/edit-dub.svg.js +3 -0
  72. package/dist/edit-source-inverse.svg.js +3 -0
  73. package/dist/edit-source.svg.js +3 -0
  74. package/dist/eex-language-configuration.json.js +3 -0
  75. package/dist/eex.json.js +3 -0
  76. package/dist/elixir-language-configuration.json.js +3 -0
  77. package/dist/elixir.json.js +3 -0
  78. package/dist/erlang.configuration.json.js +3 -0
  79. package/dist/erlang.json.js +3 -0
  80. package/dist/expression.json.js +3 -0
  81. package/dist/extension-web.js.js +3 -0
  82. package/dist/extension-web.js2.js +3 -0
  83. package/dist/extension.browser.js.js +3 -0
  84. package/dist/extensions.d.ts +35 -0
  85. package/dist/features/htmlContribution.js +0 -1
  86. package/dist/features/jsonContribution.d.ts +2 -4
  87. package/dist/features/jsonContribution.js +10 -29
  88. package/dist/features/typescriptContribution.js +2 -2
  89. package/dist/file_type_java.svg.js +3 -0
  90. package/dist/file_type_scala.svg.js +3 -0
  91. package/dist/filters.json.js +3 -0
  92. package/dist/focus-dark.svg.js +3 -0
  93. package/dist/focus-light.svg.js +3 -0
  94. package/dist/general.json.js +3 -0
  95. package/dist/get-inverse.svg.js +3 -0
  96. package/dist/get.svg.js +3 -0
  97. package/dist/go.json.js +3 -0
  98. package/dist/go.mod.language-configuration.json.js +3 -0
  99. package/dist/go.mod.tmGrammar.json.js +3 -0
  100. package/dist/go.sum.tmGrammar.json.js +3 -0
  101. package/dist/govulncheck.tmGrammar.json.js +3 -0
  102. package/dist/happy.json.js +3 -0
  103. package/dist/haskell-configuration.json.js +3 -0
  104. package/dist/haskell.json.js +3 -0
  105. package/dist/hot-reload-tb.png.js +3 -0
  106. package/dist/hot-reload.svg.js +3 -0
  107. package/dist/html-eex.json.js +3 -0
  108. package/dist/html.worker.js +1 -1
  109. package/dist/index.d.ts +2 -3
  110. package/dist/index.js +9 -6
  111. package/dist/index2.js +2 -1351
  112. package/dist/inline-styles.json.js +3 -0
  113. package/dist/inline-template.json.js +3 -0
  114. package/dist/inspector.svg.js +3 -0
  115. package/dist/java-properties-configuration.json.js +3 -0
  116. package/dist/java.json.js +3 -0
  117. package/dist/javascript.json.js +3 -0
  118. package/dist/json.worker.js +1 -1
  119. package/dist/jvm-bytecode-verbose.json.js +3 -0
  120. package/dist/jvm-bytecode.json.js +3 -0
  121. package/dist/kotlin.configuration.json.js +3 -0
  122. package/dist/kotlin.json.js +3 -0
  123. package/dist/lang-config.json.js +3 -0
  124. package/dist/language-configuration.json.js +3 -0
  125. package/dist/language-configuration.json2.js +3 -0
  126. package/dist/language-configuration.json3.js +3 -0
  127. package/dist/language-configuration.json4.js +3 -0
  128. package/dist/language-configuration.json5.js +3 -0
  129. package/dist/language-configuration.json6.js +3 -0
  130. package/dist/language-configuration.json7.js +3 -0
  131. package/dist/language-configuration.json8.js +3 -0
  132. package/dist/languages/index.d.ts +0 -2
  133. package/dist/literate-haskell-configuration.json.js +3 -0
  134. package/dist/literateHaskell.json.js +3 -0
  135. package/dist/main.js +839 -3115
  136. package/dist/markdown-svelte-css.json.js +3 -0
  137. package/dist/markdown-svelte-js.json.js +3 -0
  138. package/dist/markdown-svelte.json.js +3 -0
  139. package/dist/menhir-action.json.js +3 -0
  140. package/dist/menhir.json.js +3 -0
  141. package/dist/menhir.json2.js +3 -0
  142. package/dist/merlin.json.js +3 -0
  143. package/dist/monaco.d.ts +6 -9
  144. package/dist/oasis.json.js +3 -0
  145. package/dist/oasis.json2.js +3 -0
  146. package/dist/ocaml-markdown-codeblock.json.js +3 -0
  147. package/dist/ocaml.interface.json.js +3 -0
  148. package/dist/ocaml.json.js +3 -0
  149. package/dist/ocaml.json2.js +3 -0
  150. package/dist/ocaml.json3.js +3 -0
  151. package/dist/ocamlbuild.json.js +3 -0
  152. package/dist/ocamlbuild.json2.js +3 -0
  153. package/dist/ocamldoc.json.js +3 -0
  154. package/dist/ocamlformat.json.js +3 -0
  155. package/dist/ocamlformat.json2.js +3 -0
  156. package/dist/ocamllex.json.js +3 -0
  157. package/dist/ocamllex.json2.js +3 -0
  158. package/dist/ocamllex.json3.js +3 -0
  159. package/dist/opam-install.json.js +3 -0
  160. package/dist/opam-install.json2.js +3 -0
  161. package/dist/opam.json.js +3 -0
  162. package/dist/opam.json2.js +3 -0
  163. package/dist/outdated-inverse.svg.js +3 -0
  164. package/dist/outdated.svg.js +3 -0
  165. package/dist/pascal.configuration.json.js +3 -0
  166. package/dist/pascal.json.js +3 -0
  167. package/dist/pascal.tmLanguage.js +2 -168
  168. package/dist/performance.svg.js +3 -0
  169. package/dist/pgsql.tmLanguage.js +2 -283
  170. package/dist/pip-requirements.json.js +3 -0
  171. package/dist/pip-requirements.tmLanguage.json.js +3 -0
  172. package/dist/plus-dark.svg.js +3 -0
  173. package/dist/plus-light.svg.js +3 -0
  174. package/dist/postcss.json.js +3 -0
  175. package/dist/preview-right-dark.svg.js +3 -0
  176. package/dist/preview-right-light.svg.js +3 -0
  177. package/dist/pug-svelte-dotblock.json.js +3 -0
  178. package/dist/pug-svelte-tags.json.js +3 -0
  179. package/dist/pug-svelte.json.js +3 -0
  180. package/dist/r-configuration.json.js +3 -0
  181. package/dist/r-snippets.json.js +3 -0
  182. package/dist/r.json.js +3 -0
  183. package/dist/rbuildignore-configuration.json.js +3 -0
  184. package/dist/rbuildignore.json.js +3 -0
  185. package/dist/rd-configuration.json.js +3 -0
  186. package/dist/reason-markdown-codeblock.json.js +3 -0
  187. package/dist/reason.json.js +3 -0
  188. package/dist/reason.json2.js +3 -0
  189. package/dist/ref-group-by-type-dark.svg.js +3 -0
  190. package/dist/ref-group-by-type-light.svg.js +3 -0
  191. package/dist/ref-ungroup-by-type-dark.svg.js +3 -0
  192. package/dist/ref-ungroup-by-type-light.svg.js +3 -0
  193. package/dist/refresh-dark.svg.js +3 -0
  194. package/dist/refresh-dark.svg2.js +3 -0
  195. package/dist/refresh-light.svg.js +3 -0
  196. package/dist/refresh-light.svg2.js +3 -0
  197. package/dist/repl.svg.js +3 -0
  198. package/dist/repl.svg2.js +3 -0
  199. package/dist/rmarkdown.json2.js +3 -0
  200. package/dist/rmd-configuration.json.js +3 -0
  201. package/dist/rnamespace-configuration.json.js +3 -0
  202. package/dist/rnamespace.json.js +3 -0
  203. package/dist/save.svg.js +3 -0
  204. package/dist/save.svg2.js +3 -0
  205. package/dist/scalameta-logo.png.js +3 -0
  206. package/dist/sdl.json.js +3 -0
  207. package/dist/semanticdb.json.js +3 -0
  208. package/dist/services.d.ts +4 -0
  209. package/dist/solidity.configuration.json.js +3 -0
  210. package/dist/solidity.json.js +3 -0
  211. package/dist/solidity.json2.js +3 -0
  212. package/dist/svelte.json.js +3 -0
  213. package/dist/svelte.tmLanguage.json.js +3 -0
  214. package/dist/switch-impl-intf.dark.svg.js +3 -0
  215. package/dist/switch-impl-intf.light.svg.js +3 -0
  216. package/dist/systemverilog.json.js +3 -0
  217. package/dist/systemverilog.tmLanguage.json.js +3 -0
  218. package/dist/tags.json.js +3 -0
  219. package/dist/tasty.json.js +3 -0
  220. package/dist/tcl.json.js +3 -0
  221. package/dist/tcl.json2.js +3 -0
  222. package/dist/template.json.js +3 -0
  223. package/dist/theme/index.d.ts +1 -4
  224. package/dist/tools/EditorOpenHandlerRegistry.d.ts +3 -2
  225. package/dist/ts.worker.js +1 -1
  226. package/dist/typescript.json.js +3 -0
  227. package/dist/upgrade-inverse.svg.js +3 -0
  228. package/dist/upgrade.svg.js +3 -0
  229. package/dist/vim.js +37 -36
  230. package/dist/vs2019_dark.json.js +3 -0
  231. package/dist/vs2019_light.json.js +3 -0
  232. package/dist/worker.js +14 -2
  233. package/dist/x-dark.svg.js +3 -0
  234. package/dist/x-light.svg.js +3 -0
  235. package/package.json +40 -42
  236. package/stats.html +90 -1429
  237. package/dist/COBOL.tmLanguage.js +0 -172
  238. package/dist/HTML (Eex)2.js +0 -100
  239. package/dist/JSON.tmLanguage.js +0 -221
  240. package/dist/JSONC.tmLanguage.js +0 -221
  241. package/dist/JavaProperties.tmLanguage.js +0 -116
  242. package/dist/JavaScript.tmLanguage.js +0 -5929
  243. package/dist/JavaScriptReact.tmLanguage.js +0 -5929
  244. package/dist/META.js +0 -100
  245. package/dist/MagicPython.tmLanguage.js +0 -4221
  246. package/dist/MagicRegExp.tmLanguage.js +0 -505
  247. package/dist/Markdown Redcarpet.js +0 -221
  248. package/dist/RMarkdown.js +0 -25
  249. package/dist/Rcpp.js +0 -50
  250. package/dist/Rd (R Documentation).js +0 -131
  251. package/dist/Regular Expressions (JavaScript).tmLanguage.js +0 -166
  252. package/dist/Scala.tmLanguage.js +0 -1324
  253. package/dist/TypeScript.tmLanguage.js +0 -5680
  254. package/dist/TypeScriptReact.tmLanguage.js +0 -5929
  255. package/dist/angular.js +0 -62
  256. package/dist/asp-vb-net.tmlanguage.js +0 -247
  257. package/dist/aspnetcorerazor.js +0 -72
  258. package/dist/aspnetcorerazor.tmLanguage.js +0 -1825
  259. package/dist/atd.js +0 -110
  260. package/dist/atd2.js +0 -114
  261. package/dist/buildignore.r.js +0 -5
  262. package/dist/buildtarget.js +0 -53
  263. package/dist/c.js +0 -101
  264. package/dist/c.tmLanguage.js +0 -3565
  265. package/dist/cabal.js +0 -10
  266. package/dist/cabal.tmLanguage.js +0 -66
  267. package/dist/clojure.js +0 -68
  268. package/dist/clojure.tmLanguage.js +0 -439
  269. package/dist/cobol.js +0 -6
  270. package/dist/cobol2.js +0 -341
  271. package/dist/codeblock-cabal.js +0 -42
  272. package/dist/codeblock-haskell.js +0 -42
  273. package/dist/codeblock-literate-haskell.js +0 -42
  274. package/dist/codeblock.js +0 -59
  275. package/dist/codeblock2.js +0 -36
  276. package/dist/codeblock3.js +0 -95
  277. package/dist/coffeescript-coffeescript.code-snippets.js +0 -18
  278. package/dist/coffeescript.js +0 -91
  279. package/dist/coffeescript.tmLanguage.js +0 -1324
  280. package/dist/configuration/files.d.ts +0 -6
  281. package/dist/cpp-c.code-snippets.js +0 -18
  282. package/dist/cpp-cpp.code-snippets.js +0 -18
  283. package/dist/cpp.js +0 -101
  284. package/dist/cpp.tmLanguage.js +0 -16648
  285. package/dist/cpptools.js +0 -2631
  286. package/dist/cram.js +0 -257
  287. package/dist/csharp.js +0 -92
  288. package/dist/csharp.tmLanguage.js +0 -4992
  289. package/dist/css.js +0 -106
  290. package/dist/css.tmLanguage.js +0 -1873
  291. package/dist/cuda-cpp.js +0 -101
  292. package/dist/cuda-cpp.tmLanguage.js +0 -19993
  293. package/dist/d-diet.js +0 -92
  294. package/dist/d.js +0 -3212
  295. package/dist/d2.js +0 -97
  296. package/dist/d3.js +0 -609
  297. package/dist/dart.js +0 -543
  298. package/dist/dart2.js +0 -103
  299. package/dist/dart3.js +0 -1130
  300. package/dist/dcf.js +0 -93
  301. package/dist/debian-control.r.js +0 -69
  302. package/dist/diet.js +0 -758
  303. package/dist/diet2.js +0 -100
  304. package/dist/django-html.js +0 -155
  305. package/dist/django-html.tmLanguage.js +0 -715
  306. package/dist/django-txt.js +0 -155
  307. package/dist/django-txt.tmLanguage.js +0 -269
  308. package/dist/dml.js +0 -169
  309. package/dist/dml2.js +0 -90
  310. package/dist/dockercompose.js +0 -82
  311. package/dist/dpp.js +0 -97
  312. package/dist/dscript.js +0 -90
  313. package/dist/dune-project.js +0 -481
  314. package/dist/dune-project2.js +0 -65
  315. package/dist/dune-workspace.js +0 -298
  316. package/dist/dune-workspace2.js +0 -65
  317. package/dist/dune.js +0 -2962
  318. package/dist/dune2.js +0 -65
  319. package/dist/eex.js +0 -55
  320. package/dist/elixir-snippets.js +0 -184
  321. package/dist/elixir.js +0 -2341
  322. package/dist/elixir2.js +0 -69
  323. package/dist/elixir3.js +0 -40
  324. package/dist/erlang-erlang.js +0 -195
  325. package/dist/erlang.js +0 -81
  326. package/dist/erlang2.js +0 -86
  327. package/dist/expression.js +0 -846
  328. package/dist/features/extensionConfigurations.d.ts +0 -1
  329. package/dist/features/extensionConfigurations.js +0 -44
  330. package/dist/fsharp-fsharp.code-snippets.js +0 -18
  331. package/dist/fsharp.js +0 -80
  332. package/dist/fsharp.tmLanguage.js +0 -1844
  333. package/dist/go.js +0 -103
  334. package/dist/go.mod.js +0 -8
  335. package/dist/go.mod.tmGrammar.js +0 -182
  336. package/dist/go.sum.tmGrammar.js +0 -55
  337. package/dist/go.tmLanguage.js +0 -1025
  338. package/dist/go.work.js +0 -8
  339. package/dist/govulncheck.tmGrammar.js +0 -138
  340. package/dist/groovy-groovy.code-snippets.js +0 -229
  341. package/dist/groovy.js +0 -79
  342. package/dist/groovy.tmLanguage.js +0 -1391
  343. package/dist/haskell.js +0 -88
  344. package/dist/haskell.tmLanguage.js +0 -629
  345. package/dist/haskell2.js +0 -16
  346. package/dist/html (eex).js +0 -31
  347. package/dist/html-derivative.tmLanguage.js +0 -57
  348. package/dist/html-html.code-snippets.js +0 -20
  349. package/dist/html.js +0 -11
  350. package/dist/html.tmLanguage.js +0 -2652
  351. package/dist/html.tmLanguage2.js +0 -107
  352. package/dist/inline-styles.js +0 -104
  353. package/dist/inline-template.js +0 -88
  354. package/dist/jade.js +0 -11
  355. package/dist/java-java.js +0 -125
  356. package/dist/java-properties.js +0 -73
  357. package/dist/java.js +0 -98
  358. package/dist/java.tmLanguage.js +0 -1863
  359. package/dist/java2.js +0 -917
  360. package/dist/javascript-javascript.code-snippets.js +0 -205
  361. package/dist/javascript.js +0 -197
  362. package/dist/javascriptreact.js +0 -197
  363. package/dist/jsdoc.js.injection.tmLanguage.js +0 -32
  364. package/dist/jsdoc.ts.injection.tmLanguage.js +0 -32
  365. package/dist/json.js +0 -75
  366. package/dist/jsonc.js +0 -75
  367. package/dist/jsx-tags.js +0 -158
  368. package/dist/julia.js +0 -89
  369. package/dist/julia.tmLanguage.js +0 -954
  370. package/dist/jvm-bytecode-verbose.js +0 -1231
  371. package/dist/jvm-bytecode.js +0 -565
  372. package/dist/kotlin-kotlin.js +0 -117
  373. package/dist/kotlin.js +0 -103
  374. package/dist/kotlinscript.js +0 -103
  375. package/dist/languages/extensions/extensionConfigurationLoader.d.ts +0 -3
  376. package/dist/languages/extensions/grammarLoader.d.ts +0 -2
  377. package/dist/languages/extensions/languageConfigurationLoader.d.ts +0 -2
  378. package/dist/languages/extensions/snippetLoader.d.ts +0 -2
  379. package/dist/languages/extensions/themeLoader.d.ts +0 -2
  380. package/dist/languages/snippets/index.d.ts +0 -1
  381. package/dist/languages/textMate/index.d.ts +0 -1
  382. package/dist/languages/textMate/semanticTokens.d.ts +0 -1
  383. package/dist/literate haskell.js +0 -88
  384. package/dist/literateHaskell.tmLanguage.js +0 -70
  385. package/dist/lua.js +0 -84
  386. package/dist/lua.tmLanguage.js +0 -914
  387. package/dist/lua2.js +0 -2853
  388. package/dist/markdown-basics-markdown.code-snippets.js +0 -121
  389. package/dist/markdown-svelte-css.js +0 -37
  390. package/dist/markdown-svelte-js.js +0 -37
  391. package/dist/markdown-svelte.js +0 -59
  392. package/dist/markdown-vue.js +0 -54
  393. package/dist/markdown.js +0 -49
  394. package/dist/markdown.tmLanguage.js +0 -3042
  395. package/dist/menhir-action.js +0 -51
  396. package/dist/menhir.js +0 -597
  397. package/dist/merlin.js +0 -111
  398. package/dist/namespace.r.js +0 -88
  399. package/dist/oasis.js +0 -99
  400. package/dist/objective-c.js +0 -79
  401. package/dist/objective-c.tmLanguage.js +0 -3763
  402. package/dist/objective-cpp.js +0 -79
  403. package/dist/ocaml-dune-project.js +0 -38
  404. package/dist/ocaml-dune.js +0 -53
  405. package/dist/ocaml-markdown-codeblock.js +0 -42
  406. package/dist/ocaml-ocaml.js +0 -88
  407. package/dist/ocaml-ocamllex.js +0 -12
  408. package/dist/ocaml.META.js +0 -29
  409. package/dist/ocaml.interface.js +0 -292
  410. package/dist/ocaml.interface2.js +0 -114
  411. package/dist/ocaml.js +0 -903
  412. package/dist/ocaml.menhir.js +0 -81
  413. package/dist/ocaml.oasis.js +0 -18
  414. package/dist/ocaml.ocamlbuild.js +0 -45
  415. package/dist/ocaml.ocamlformat.js +0 -8
  416. package/dist/ocaml.ocamllex.js +0 -60
  417. package/dist/ocaml.opam-install.js +0 -49
  418. package/dist/ocaml.opam.js +0 -69
  419. package/dist/ocaml2.js +0 -114
  420. package/dist/ocaml3.js +0 -136
  421. package/dist/ocamlbuild.js +0 -189
  422. package/dist/ocamldoc.js +0 -54
  423. package/dist/ocamlformat.js +0 -206
  424. package/dist/ocamllex.js +0 -133
  425. package/dist/omnisharp-csharp.js +0 -508
  426. package/dist/omnisharp.js +0 -594
  427. package/dist/opam-install.js +0 -40
  428. package/dist/opam.js +0 -140
  429. package/dist/pascal-pascal.js +0 -382
  430. package/dist/pascal.js +0 -80
  431. package/dist/pascal2.js +0 -26
  432. package/dist/perl.js +0 -93
  433. package/dist/perl.tmLanguage.js +0 -2986
  434. package/dist/perl6.js +0 -86
  435. package/dist/perl6.tmLanguage.js +0 -323
  436. package/dist/php-php.code-snippets.js +0 -267
  437. package/dist/php.js +0 -154
  438. package/dist/php.tmLanguage.js +0 -4036
  439. package/dist/pip-requirements.js +0 -8
  440. package/dist/pip-requirements.tmLanguage.js +0 -89
  441. package/dist/plaintext.js +0 -11
  442. package/dist/platform.tmLanguage.js +0 -1135
  443. package/dist/postcss.src.yaml.js +0 -393
  444. package/dist/postgres.js +0 -80
  445. package/dist/postgresql.js +0 -75
  446. package/dist/powershell.js +0 -107
  447. package/dist/powershell.tmLanguage.js +0 -1037
  448. package/dist/pug-svelte-dotblock.js +0 -69
  449. package/dist/pug-svelte-tags.js +0 -215
  450. package/dist/pug-svelte.js +0 -307
  451. package/dist/python.js +0 -236
  452. package/dist/r.js +0 -664
  453. package/dist/r2.js +0 -88
  454. package/dist/rbuildignore.js +0 -39
  455. package/dist/rd.js +0 -81
  456. package/dist/reason-markdown-codeblock.js +0 -42
  457. package/dist/reason.js +0 -79
  458. package/dist/rmd.js +0 -84
  459. package/dist/rnamespace.js +0 -283
  460. package/dist/ruby.js +0 -95
  461. package/dist/ruby.tmLanguage.js +0 -2784
  462. package/dist/rust.js +0 -84
  463. package/dist/rust.tmLanguage.js +0 -1178
  464. package/dist/sassdoc.tmLanguage.js +0 -362
  465. package/dist/scala.js +0 -85
  466. package/dist/scalameta.js +0 -224
  467. package/dist/scss.js +0 -117
  468. package/dist/scss.tmLanguage.js +0 -1887
  469. package/dist/sdl.js +0 -162
  470. package/dist/sdl2.js +0 -90
  471. package/dist/semanticdb.js +0 -62
  472. package/dist/shell-unix-bash.tmLanguage.js +0 -2038
  473. package/dist/shellscript.js +0 -93
  474. package/dist/solargraph.js +0 -192
  475. package/dist/solidity-solidity.js +0 -213
  476. package/dist/solidity.js +0 -1224
  477. package/dist/solidity2.js +0 -71
  478. package/dist/solidity3.js +0 -143
  479. package/dist/sql.js +0 -99
  480. package/dist/sql.tmLanguage.js +0 -636
  481. package/dist/svelte.js +0 -120
  482. package/dist/svelte.svelte-vscode-javascript.js +0 -45
  483. package/dist/svelte.svelte-vscode-svelte.js +0 -46
  484. package/dist/svelte.svelte-vscode-typescript.js +0 -43
  485. package/dist/svelte.svelte-vscode.js +0 -383
  486. package/dist/svelte.tmLanguage.src.yaml.js +0 -1099
  487. package/dist/svlangserver-systemverilog.js +0 -395
  488. package/dist/svlangserver.js +0 -85
  489. package/dist/swift-swift.code-snippets.js +0 -183
  490. package/dist/swift.js +0 -90
  491. package/dist/swift.tmLanguage.js +0 -3312
  492. package/dist/systemverilog.js +0 -187
  493. package/dist/systemverilog.tmLanguage.js +0 -1259
  494. package/dist/tasty.js +0 -72
  495. package/dist/tcl-tcl.js +0 -151
  496. package/dist/tcl.js +0 -78
  497. package/dist/tcl.tmlanguage.yaml.js +0 -5490
  498. package/dist/template.js +0 -207
  499. package/dist/theme-defaults~dark_plus.js +0 -210
  500. package/dist/theme-defaults~dark_plus_experimental.js +0 -145
  501. package/dist/theme-defaults~dark_vs.js +0 -412
  502. package/dist/theme-defaults~hc_black.js +0 -471
  503. package/dist/theme-defaults~hc_light.js +0 -595
  504. package/dist/theme-defaults~light_plus.js +0 -212
  505. package/dist/theme-defaults~light_plus_experimental.js +0 -158
  506. package/dist/theme-defaults~light_vs.js +0 -441
  507. package/dist/typescript-basics-typescript.code-snippets.js +0 -313
  508. package/dist/typescript-language-features.js +0 -1103
  509. package/dist/typescript.js +0 -216
  510. package/dist/typescriptreact.js +0 -216
  511. package/dist/vb-vb.code-snippets.js +0 -88
  512. package/dist/vb.js +0 -79
  513. package/dist/verilog.js +0 -187
  514. package/dist/volar-vue.js +0 -289
  515. package/dist/vscode-R-r-snippets.js +0 -534
  516. package/dist/vscode-R-rmarkdown.js +0 -461
  517. package/dist/vscode-R.js +0 -660
  518. package/dist/vscode-django-filters.js +0 -340
  519. package/dist/vscode-django.js +0 -37
  520. package/dist/vscode-go-go.js +0 -276
  521. package/dist/vscode-go.js +0 -1610
  522. package/dist/vscode-groovy.js +0 -28
  523. package/dist/vscode-python.js +0 -706
  524. package/dist/vue-directives.js +0 -25
  525. package/dist/vue-interpolations.js +0 -25
  526. package/dist/vue-sfc-style-variable-injection.js +0 -63
  527. package/dist/vue.js +0 -151
  528. package/dist/vue.tmLanguage.js +0 -1218
  529. package/dist/xml.js +0 -116
  530. package/dist/xml.tmLanguage.js +0 -395
  531. package/dist/xsl.js +0 -39
  532. package/dist/xsl.tmLanguage.js +0 -102
  533. package/dist/yaml.js +0 -82
  534. package/dist/yaml.tmLanguage.js +0 -629
  535. /package/dist/{extensions → editor}/autofold.d.ts +0 -0
  536. /package/dist/{extensions → editor}/cobol.d.ts +0 -0
  537. /package/dist/{extensions → editor}/index.d.ts +0 -0
@@ -1,4992 +0,0 @@
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 };