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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/README.md +15 -0
  2. package/dist/COBOL.tmLanguage.js +172 -0
  3. package/dist/Erlang.plist.js +1752 -0
  4. package/dist/HTML (Eex)2.js +100 -0
  5. package/dist/JSON.tmLanguage.js +221 -0
  6. package/dist/JSONC.tmLanguage.js +221 -0
  7. package/dist/JavaProperties.tmLanguage.js +116 -0
  8. package/dist/JavaScript.tmLanguage.js +5929 -0
  9. package/dist/JavaScriptReact.tmLanguage.js +5929 -0
  10. package/dist/Kotlin.tmLanguage.js +724 -0
  11. package/dist/META.js +100 -0
  12. package/dist/MagicPython.tmLanguage.js +4221 -0
  13. package/dist/MagicRegExp.tmLanguage.js +505 -0
  14. package/dist/Markdown Redcarpet.js +221 -0
  15. package/dist/RMarkdown.js +25 -0
  16. package/dist/Rcpp.js +50 -0
  17. package/dist/Rd (R Documentation).js +131 -0
  18. package/dist/Regular Expressions (JavaScript).tmLanguage.js +166 -0
  19. package/dist/Scala.tmLanguage.js +1324 -0
  20. package/dist/TypeScript.tmLanguage.js +5680 -0
  21. package/dist/TypeScriptReact.tmLanguage.js +5929 -0
  22. package/dist/{_virtual/_commonjsHelpers.js → _monaco-editor_commonjs-external.js} +9 -2
  23. package/dist/_rollupPluginBabelHelpers.js +51 -0
  24. package/dist/angular.js +62 -0
  25. package/dist/asp-vb-net.tmlanguage.js +247 -0
  26. package/dist/aspnetcorerazor.js +72 -0
  27. package/dist/aspnetcorerazor.tmLanguage.js +1825 -0
  28. package/dist/atd.js +110 -0
  29. package/dist/atd2.js +114 -0
  30. package/dist/buildignore.r.js +5 -0
  31. package/dist/buildtarget.js +53 -0
  32. package/dist/c.js +101 -0
  33. package/dist/c.tmLanguage.js +3565 -0
  34. package/dist/cabal.js +10 -0
  35. package/dist/cabal.tmLanguage.js +66 -0
  36. package/dist/clojure.js +68 -0
  37. package/dist/clojure.tmLanguage.js +439 -0
  38. package/dist/cobol.js +6 -0
  39. package/dist/cobol2.js +341 -0
  40. package/dist/codeblock-cabal.js +42 -0
  41. package/dist/codeblock-haskell.js +42 -0
  42. package/dist/codeblock-literate-haskell.js +42 -0
  43. package/dist/codeblock.js +59 -0
  44. package/dist/codeblock2.js +36 -0
  45. package/dist/codeblock3.js +95 -0
  46. package/dist/coffeescript-coffeescript.code-snippets.js +18 -0
  47. package/dist/coffeescript.js +91 -0
  48. package/dist/coffeescript.tmLanguage.js +1324 -0
  49. package/dist/configuration/files.d.ts +6 -0
  50. package/dist/configuration/index.d.ts +2 -1
  51. package/dist/cpp-c.code-snippets.js +18 -0
  52. package/dist/cpp-cpp.code-snippets.js +18 -0
  53. package/dist/cpp.js +101 -0
  54. package/dist/cpp.tmLanguage.js +16648 -0
  55. package/dist/cpptools.js +2631 -0
  56. package/dist/cram.js +257 -0
  57. package/dist/csharp.js +92 -0
  58. package/dist/csharp.tmLanguage.js +4992 -0
  59. package/dist/css.js +106 -0
  60. package/dist/css.tmLanguage.js +1873 -0
  61. package/dist/css.worker.js +6 -0
  62. package/dist/cuda-cpp.js +101 -0
  63. package/dist/cuda-cpp.tmLanguage.js +19993 -0
  64. package/dist/d-diet.js +92 -0
  65. package/dist/d.js +3212 -0
  66. package/dist/d2.js +97 -0
  67. package/dist/d3.js +609 -0
  68. package/dist/dart.js +543 -0
  69. package/dist/dart2.js +103 -0
  70. package/dist/dart3.js +1130 -0
  71. package/dist/dcf.js +93 -0
  72. package/dist/debian-control.r.js +69 -0
  73. package/dist/diet.js +758 -0
  74. package/dist/diet2.js +100 -0
  75. package/dist/django-html.js +155 -0
  76. package/dist/django-html.tmLanguage.js +715 -0
  77. package/dist/django-txt.js +155 -0
  78. package/dist/django-txt.tmLanguage.js +269 -0
  79. package/dist/dml.js +169 -0
  80. package/dist/dml2.js +90 -0
  81. package/dist/dockercompose.js +82 -0
  82. package/dist/dpp.js +97 -0
  83. package/dist/dscript.js +90 -0
  84. package/dist/dune-project.js +481 -0
  85. package/dist/dune-project2.js +65 -0
  86. package/dist/dune-workspace.js +298 -0
  87. package/dist/dune-workspace2.js +65 -0
  88. package/dist/dune.js +2962 -0
  89. package/dist/dune2.js +65 -0
  90. package/dist/eex.js +55 -0
  91. package/dist/elixir-snippets.js +184 -0
  92. package/dist/elixir.js +2341 -0
  93. package/dist/elixir2.js +69 -0
  94. package/dist/elixir3.js +40 -0
  95. package/dist/erlang-erlang.js +195 -0
  96. package/dist/erlang.js +81 -0
  97. package/dist/erlang2.js +86 -0
  98. package/dist/expression.js +846 -0
  99. package/dist/features/cssContribution.d.ts +1 -0
  100. package/dist/features/cssContribution.js +7 -0
  101. package/dist/features/extensionConfigurations.d.ts +1 -0
  102. package/dist/features/extensionConfigurations.js +44 -0
  103. package/dist/features/htmlContribution.d.ts +4 -0
  104. package/dist/features/htmlContribution.js +112 -0
  105. package/dist/features/jsonContribution.d.ts +6 -0
  106. package/dist/features/jsonContribution.js +43 -0
  107. package/dist/features/typescriptContribution.d.ts +1 -0
  108. package/dist/features/typescriptContribution.js +32 -0
  109. package/dist/fsharp-fsharp.code-snippets.js +18 -0
  110. package/dist/fsharp.js +80 -0
  111. package/dist/fsharp.tmLanguage.js +1844 -0
  112. package/dist/go.js +103 -0
  113. package/dist/go.mod.js +8 -0
  114. package/dist/go.mod.tmGrammar.js +182 -0
  115. package/dist/go.sum.tmGrammar.js +55 -0
  116. package/dist/go.tmLanguage.js +1025 -0
  117. package/dist/go.work.js +8 -0
  118. package/dist/govulncheck.tmGrammar.js +138 -0
  119. package/dist/groovy-groovy.code-snippets.js +229 -0
  120. package/dist/groovy.js +79 -0
  121. package/dist/groovy.tmLanguage.js +1391 -0
  122. package/dist/haskell.js +88 -0
  123. package/dist/haskell.tmLanguage.js +629 -0
  124. package/dist/haskell2.js +16 -0
  125. package/dist/html (eex).js +31 -0
  126. package/dist/html-derivative.tmLanguage.js +57 -0
  127. package/dist/html-html.code-snippets.js +20 -0
  128. package/dist/html.js +11 -0
  129. package/dist/html.tmLanguage.js +2652 -0
  130. package/dist/html.tmLanguage2.js +107 -0
  131. package/dist/html.worker.js +6 -0
  132. package/dist/index.d.ts +3 -3
  133. package/dist/index.js +2207 -0
  134. package/dist/index2.js +1398 -0
  135. package/dist/inline-styles.js +104 -0
  136. package/dist/inline-template.js +88 -0
  137. package/dist/jade.js +11 -0
  138. package/dist/java-java.js +125 -0
  139. package/dist/java-properties.js +73 -0
  140. package/dist/java.js +98 -0
  141. package/dist/java.tmLanguage.js +1863 -0
  142. package/dist/java2.js +917 -0
  143. package/dist/javascript-javascript.code-snippets.js +205 -0
  144. package/dist/javascript.js +197 -0
  145. package/dist/javascriptreact.js +197 -0
  146. package/dist/jsdoc.js.injection.tmLanguage.js +32 -0
  147. package/dist/jsdoc.ts.injection.tmLanguage.js +32 -0
  148. package/dist/json.js +75 -0
  149. package/dist/json.worker.js +6 -0
  150. package/dist/jsonc.js +75 -0
  151. package/dist/jsx-tags.js +158 -0
  152. package/dist/julia.js +89 -0
  153. package/dist/julia.tmLanguage.js +954 -0
  154. package/dist/jvm-bytecode-verbose.js +1231 -0
  155. package/dist/jvm-bytecode.js +565 -0
  156. package/dist/kotlin-kotlin.js +117 -0
  157. package/dist/kotlin.js +103 -0
  158. package/dist/kotlinscript.js +103 -0
  159. package/dist/languages/extensions/extensionConfigurationLoader.d.ts +3 -0
  160. package/dist/languages/extensions/grammarLoader.d.ts +2 -0
  161. package/dist/languages/extensions/languageConfigurationLoader.d.ts +2 -0
  162. package/dist/languages/extensions/snippetLoader.d.ts +2 -0
  163. package/dist/languages/extensions/themeLoader.d.ts +2 -0
  164. package/dist/languages/index.d.ts +2 -0
  165. package/dist/languages/textMate/index.d.ts +1 -0
  166. package/dist/literate haskell.js +88 -0
  167. package/dist/literateHaskell.tmLanguage.js +70 -0
  168. package/dist/lua.js +84 -0
  169. package/dist/lua.tmLanguage.js +914 -0
  170. package/dist/lua2.js +2853 -0
  171. package/dist/main.js +3564 -9
  172. package/dist/markdown-basics-markdown.code-snippets.js +121 -0
  173. package/dist/markdown-svelte-css.js +37 -0
  174. package/dist/markdown-svelte-js.js +37 -0
  175. package/dist/markdown-svelte.js +59 -0
  176. package/dist/markdown-vue.js +54 -0
  177. package/dist/markdown.js +49 -0
  178. package/dist/markdown.tmLanguage.js +3042 -0
  179. package/dist/menhir-action.js +51 -0
  180. package/dist/menhir.js +597 -0
  181. package/dist/merlin.js +111 -0
  182. package/dist/monaco.d.ts +10 -6
  183. package/dist/namespace.r.js +88 -0
  184. package/dist/oasis.js +99 -0
  185. package/dist/objective-c.js +79 -0
  186. package/dist/objective-c.tmLanguage.js +3763 -0
  187. package/dist/objective-cpp.js +79 -0
  188. package/dist/ocaml-dune-project.js +38 -0
  189. package/dist/ocaml-dune.js +53 -0
  190. package/dist/ocaml-markdown-codeblock.js +42 -0
  191. package/dist/ocaml-ocaml.js +88 -0
  192. package/dist/ocaml-ocamllex.js +12 -0
  193. package/dist/ocaml.META.js +29 -0
  194. package/dist/ocaml.interface.js +292 -0
  195. package/dist/ocaml.interface2.js +114 -0
  196. package/dist/ocaml.js +903 -0
  197. package/dist/ocaml.menhir.js +81 -0
  198. package/dist/ocaml.oasis.js +18 -0
  199. package/dist/ocaml.ocamlbuild.js +45 -0
  200. package/dist/ocaml.ocamlformat.js +8 -0
  201. package/dist/ocaml.ocamllex.js +60 -0
  202. package/dist/ocaml.opam-install.js +49 -0
  203. package/dist/ocaml.opam.js +69 -0
  204. package/dist/ocaml2.js +114 -0
  205. package/dist/ocaml3.js +136 -0
  206. package/dist/ocamlbuild.js +189 -0
  207. package/dist/ocamldoc.js +54 -0
  208. package/dist/ocamlformat.js +206 -0
  209. package/dist/ocamllex.js +133 -0
  210. package/dist/omnisharp-csharp.js +508 -0
  211. package/dist/omnisharp.js +594 -0
  212. package/dist/opam-install.js +40 -0
  213. package/dist/opam.js +140 -0
  214. package/dist/pascal-pascal.js +382 -0
  215. package/dist/pascal.js +80 -0
  216. package/dist/pascal.tmLanguage.js +169 -0
  217. package/dist/pascal2.js +26 -0
  218. package/dist/perl.js +93 -0
  219. package/dist/perl.tmLanguage.js +2986 -0
  220. package/dist/perl6.js +86 -0
  221. package/dist/perl6.tmLanguage.js +323 -0
  222. package/dist/pgsql.tmLanguage.js +284 -0
  223. package/dist/php-php.code-snippets.js +267 -0
  224. package/dist/php.js +154 -0
  225. package/dist/php.tmLanguage.js +4036 -0
  226. package/dist/pip-requirements.js +8 -0
  227. package/dist/pip-requirements.tmLanguage.js +89 -0
  228. package/dist/plaintext.js +11 -0
  229. package/dist/platform.tmLanguage.js +1135 -0
  230. package/dist/postcss.src.yaml.js +393 -0
  231. package/dist/postgres.js +80 -0
  232. package/dist/postgresql.js +75 -0
  233. package/dist/powershell.js +107 -0
  234. package/dist/powershell.tmLanguage.js +1037 -0
  235. package/dist/pug-svelte-dotblock.js +69 -0
  236. package/dist/pug-svelte-tags.js +215 -0
  237. package/dist/pug-svelte.js +307 -0
  238. package/dist/python.js +236 -0
  239. package/dist/r.js +664 -0
  240. package/dist/r2.js +88 -0
  241. package/dist/rbuildignore.js +39 -0
  242. package/dist/rd.js +81 -0
  243. package/dist/reason-markdown-codeblock.js +42 -0
  244. package/dist/reason.js +79 -0
  245. package/dist/rmd.js +84 -0
  246. package/dist/rnamespace.js +283 -0
  247. package/dist/ruby.js +95 -0
  248. package/dist/ruby.tmLanguage.js +2784 -0
  249. package/dist/rust.js +84 -0
  250. package/dist/rust.tmLanguage.js +1178 -0
  251. package/dist/sassdoc.tmLanguage.js +362 -0
  252. package/dist/scala.js +85 -0
  253. package/dist/scalameta.js +224 -0
  254. package/dist/scss.js +117 -0
  255. package/dist/scss.tmLanguage.js +1887 -0
  256. package/dist/sdl.js +162 -0
  257. package/dist/sdl2.js +90 -0
  258. package/dist/semanticdb.js +62 -0
  259. package/dist/shell-unix-bash.tmLanguage.js +2038 -0
  260. package/dist/shellscript.js +93 -0
  261. package/dist/solargraph.js +192 -0
  262. package/dist/solidity-solidity.js +213 -0
  263. package/dist/solidity.js +1224 -0
  264. package/dist/solidity2.js +71 -0
  265. package/dist/solidity3.js +143 -0
  266. package/dist/sql.js +99 -0
  267. package/dist/sql.tmLanguage.js +636 -0
  268. package/dist/svelte.js +120 -0
  269. package/dist/svelte.svelte-vscode-javascript.js +45 -0
  270. package/dist/svelte.svelte-vscode-svelte.js +46 -0
  271. package/dist/svelte.svelte-vscode-typescript.js +43 -0
  272. package/dist/svelte.svelte-vscode.js +383 -0
  273. package/dist/svelte.tmLanguage.src.yaml.js +1099 -0
  274. package/dist/svlangserver-systemverilog.js +395 -0
  275. package/dist/svlangserver.js +85 -0
  276. package/dist/swift-swift.code-snippets.js +183 -0
  277. package/dist/swift.js +90 -0
  278. package/dist/swift.tmLanguage.js +3312 -0
  279. package/dist/systemverilog.js +187 -0
  280. package/dist/systemverilog.tmLanguage.js +1259 -0
  281. package/dist/tasty.js +72 -0
  282. package/dist/tcl-tcl.js +151 -0
  283. package/dist/tcl.js +78 -0
  284. package/dist/tcl.tmlanguage.yaml.js +5490 -0
  285. package/dist/template.js +207 -0
  286. package/dist/theme/index.d.ts +4 -1
  287. package/dist/theme-defaults~dark_plus.js +210 -0
  288. package/dist/theme-defaults~dark_plus_experimental.js +145 -0
  289. package/dist/theme-defaults~dark_vs.js +412 -0
  290. package/dist/theme-defaults~hc_black.js +471 -0
  291. package/dist/theme-defaults~hc_light.js +595 -0
  292. package/dist/theme-defaults~light_plus.js +212 -0
  293. package/dist/theme-defaults~light_plus_experimental.js +158 -0
  294. package/dist/theme-defaults~light_vs.js +441 -0
  295. package/dist/tools/EditorOpenHandlerRegistry.d.ts +2 -3
  296. package/dist/ts.worker.js +6 -0
  297. package/dist/typescript-basics-typescript.code-snippets.js +313 -0
  298. package/dist/typescript-language-features.js +1103 -0
  299. package/dist/typescript.js +216 -0
  300. package/dist/typescriptreact.js +216 -0
  301. package/dist/vb-vb.code-snippets.js +88 -0
  302. package/dist/vb.js +79 -0
  303. package/dist/verilog.js +187 -0
  304. package/dist/{node_modules/monaco-vim/lib/cm/keymap_vim.js → vim.js} +1790 -4
  305. package/dist/volar-vue.js +289 -0
  306. package/dist/vscode-R-r-snippets.js +534 -0
  307. package/dist/vscode-R-rmarkdown.js +461 -0
  308. package/dist/vscode-R.js +660 -0
  309. package/dist/vscode-django-filters.js +340 -0
  310. package/dist/vscode-django.js +37 -0
  311. package/dist/vscode-go-go.js +276 -0
  312. package/dist/vscode-go.js +1610 -0
  313. package/dist/vscode-groovy.js +28 -0
  314. package/dist/vscode-python.js +706 -0
  315. package/dist/vue-directives.js +25 -0
  316. package/dist/vue-interpolations.js +25 -0
  317. package/dist/vue-sfc-style-variable-injection.js +63 -0
  318. package/dist/vue.js +151 -0
  319. package/dist/vue.tmLanguage.js +1218 -0
  320. package/dist/worker.d.ts +10 -1
  321. package/dist/worker.js +43 -11
  322. package/dist/xml.js +116 -0
  323. package/dist/xml.tmLanguage.js +395 -0
  324. package/dist/xsl.js +39 -0
  325. package/dist/xsl.tmLanguage.js +102 -0
  326. package/dist/yaml.js +82 -0
  327. package/dist/yaml.tmLanguage.js +629 -0
  328. package/package.json +67 -127
  329. package/stats.html +1429 -90
  330. package/dist/_virtual/_monaco-editor.js +0 -6
  331. package/dist/_virtual/actions.js +0 -3
  332. package/dist/_virtual/basicInput.js +0 -3
  333. package/dist/_virtual/cm_adapter.js +0 -3
  334. package/dist/_virtual/commands.js +0 -3
  335. package/dist/_virtual/editor.api.js +0 -6
  336. package/dist/_virtual/index.js +0 -3
  337. package/dist/_virtual/index2.js +0 -3
  338. package/dist/_virtual/index3.js +0 -3
  339. package/dist/_virtual/keymap_vim.js +0 -3
  340. package/dist/_virtual/shiftCommand.js +0 -6
  341. package/dist/_virtual/state.js +0 -3
  342. package/dist/_virtual/statusbar.js +0 -3
  343. package/dist/_virtual/util.js +0 -3
  344. package/dist/assets/Angular.ng-template-16.1.8.vsix/expression-c051cd51.json +0 -834
  345. package/dist/assets/Angular.ng-template-16.1.8.vsix/inline-styles-59ea31e9.json +0 -92
  346. package/dist/assets/Angular.ng-template-16.1.8.vsix/inline-template-f0c3f556.json +0 -76
  347. package/dist/assets/Angular.ng-template-16.1.8.vsix/template-e24e3ba1.json +0 -195
  348. package/dist/assets/Dart-Code.dart-code-3.75.20231009.vsix/dart-bea1db40.json +0 -534
  349. package/dist/assets/Dart-Code.dart-code-3.75.20231009.vsix/dart-language-configuration-c4b1f694.json +0 -29
  350. package/dist/assets/Dart-Code.dart-code-3.75.20231009.vsix/flutter_activity_bar-17811551.svg +0 -14
  351. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/codeblock-67e70f41.json +0 -81
  352. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/language-configuration-3467c3a6.json +0 -57
  353. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/systemverilog-ff001e9f.json +0 -349
  354. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/systemverilog.tmLanguage-31a99a46.json +0 -1246
  355. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/tasks.schema-832643df.json +0 -30
  356. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/eex-e9a5e762.json +0 -41
  357. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/eex-language-configuration-6fb789e3.json +0 -58
  358. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/elixir-7cb5db44.json +0 -2580
  359. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/elixir-language-configuration-4bd217f4.json +0 -74
  360. package/dist/assets/JakeBecker.elixir-ls-0.17.1.vsix/html-eex-3079072a.json +0 -25
  361. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity-1f693465.json +0 -213
  362. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity-642a30e7.json +0 -1215
  363. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity.configuration-d0229207.json +0 -32
  364. package/dist/assets/REditorSupport.r-2.8.2.vsix/Markdown Redcarpet-12881a56.json +0 -146
  365. package/dist/assets/REditorSupport.r-2.8.2.vsix/RMarkdown-0bbb72c0.json +0 -13
  366. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rcpp-cea57c6d.json +0 -34
  367. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rd (R Documentation)-555f4e62.json +0 -117
  368. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rlogo-6d3318a6.svg +0 -14
  369. package/dist/assets/REditorSupport.r-2.8.2.vsix/dcf-3d561f42.json +0 -82
  370. package/dist/assets/REditorSupport.r-2.8.2.vsix/dcf-configuration-d58bba2d.json +0 -24
  371. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-configuration-78e137e5.json +0 -33
  372. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-fe2a45c3.json +0 -647
  373. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-snippets-9e46c45c.json +0 -475
  374. package/dist/assets/REditorSupport.r-2.8.2.vsix/rbuildignore-9cfe22f1.json +0 -27
  375. package/dist/assets/REditorSupport.r-2.8.2.vsix/rbuildignore-configuration-8eb95bcb.json +0 -2
  376. package/dist/assets/REditorSupport.r-2.8.2.vsix/rd-configuration-194dd9d9.json +0 -27
  377. package/dist/assets/REditorSupport.r-2.8.2.vsix/rmarkdown-dea1e283.json +0 -459
  378. package/dist/assets/REditorSupport.r-2.8.2.vsix/rmd-configuration-b4c6dc23.json +0 -27
  379. package/dist/assets/REditorSupport.r-2.8.2.vsix/rnamespace-290042cd.json +0 -222
  380. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.nls-8c1cec26.json +0 -24
  381. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.nls.pt-br-50a237c2.json +0 -24
  382. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal-365151a8.json +0 -414
  383. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal-93ca5af8.tmLanguage +0 -243
  384. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal.configuration-650e481b.json +0 -32
  385. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/django-html.tmLanguage-a755b992.json +0 -701
  386. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/django-txt.tmLanguage-856346a9.json +0 -255
  387. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/filters-f60b575d.json +0 -339
  388. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/language-configuration-f8af0b2f.json +0 -63
  389. package/dist/assets/batisteo.vscode-django-1.14.0.vsix/tags-43e8b685.json +0 -496
  390. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/language-configuration-e9539ff0.json +0 -75
  391. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/tcl-10fb1e40.json +0 -142
  392. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/tcl-d73ae460.json +0 -5474
  393. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/COBOL.tmLanguage-67e1eefb.json +0 -216
  394. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/lang-config-a301d1b9.json +0 -27
  395. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/pgm_conf.schema-f8558717.json +0 -24
  396. package/dist/assets/broadcomMFD.cobol-language-support-2.0.3.vsix/proc_grps.schema-428d2a80.json +0 -55
  397. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/language-configuration-b3cf7aac.json +0 -25
  398. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/pgsql-a84fddae.tmLanguage +0 -413
  399. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/postgres-explorer-ce4bf408.svg +0 -100
  400. package/dist/assets/golang.Go-0.39.1.vsix/go-71588b74.json +0 -274
  401. package/dist/assets/golang.Go-0.39.1.vsix/go.mod.language-configuration-0301a994.json +0 -5
  402. package/dist/assets/golang.Go-0.39.1.vsix/go.mod.tmGrammar-6cbef28b.json +0 -171
  403. package/dist/assets/golang.Go-0.39.1.vsix/go.sum.tmGrammar-36d4acfd.json +0 -44
  404. package/dist/assets/golang.Go-0.39.1.vsix/govulncheck.tmGrammar-3741e2c9.json +0 -123
  405. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-directives-77c45bf9.json +0 -123
  406. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-interpolations-b1f89745.json +0 -44
  407. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-template-language-configuration-4cd1b761.json +0 -8
  408. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/C2Hs-c12145c8.json +0 -23
  409. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/C2Hs-configuration-dc72a3f0.json +0 -29
  410. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/Hsc2Hs-685ef114.json +0 -23
  411. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/Hsc2Hs-configuration-15e5e5c3.json +0 -30
  412. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/alex-07217e37.json +0 -236
  413. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/cabal-8f2b8b9f.json +0 -53
  414. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/cabal-configuration-64e517a3.json +0 -6
  415. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-cabal-34484e34.json +0 -28
  416. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-haskell-138d661e.json +0 -28
  417. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-literate-haskell-90d8db8f.json +0 -28
  418. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/happy-3cd8fa35.json +0 -196
  419. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/haskell-192ef944.json +0 -2525
  420. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/haskell-configuration-54079281.json +0 -29
  421. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/literate-haskell-configuration-23cbb80e.json +0 -29
  422. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/literateHaskell-0a08d9f7.json +0 -56
  423. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/Kotlin-5d2aa580.tmLanguage +0 -1067
  424. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/codeblock-8be87145.json +0 -22
  425. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/kotlin-9f43cb02.json +0 -107
  426. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/kotlin.configuration-1d328649.json +0 -35
  427. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/aspnetcorerazor.tmLanguage-7002af3f.json +0 -1812
  428. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/csharp-a17ace76.json +0 -493
  429. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/language-configuration-f8b16509.json +0 -24
  430. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls-b9937871.json +0 -419
  431. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.cs-80b9e0b3.json +0 -201
  432. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.de-2f7710c0.json +0 -201
  433. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.es-d1bd829b.json +0 -201
  434. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.fr-e0bc41f9.json +0 -201
  435. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.it-0e21bedf.json +0 -201
  436. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.ja-2384013f.json +0 -201
  437. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.ko-621d3dfe.json +0 -201
  438. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.pl-bd72e09e.json +0 -201
  439. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.pt-br-a446b36f.json +0 -201
  440. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.ru-923ade42.json +0 -201
  441. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.tr-10253fa3.json +0 -201
  442. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.zh-cn-00cb169d.json +0 -201
  443. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/package.nls.zh-tw-1c34b33a.json +0 -201
  444. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/vs2019_dark-a56f6e51.json +0 -783
  445. package/dist/assets/ms-dotnettools.csharp-2.6.24.vsix/vs2019_light-fd29b4ae.json +0 -807
  446. package/dist/assets/ms-python.python-2023.19.12861011.vsix/conda-environment-3aa03e16.json +0 -1
  447. package/dist/assets/ms-python.python-2023.19.12861011.vsix/conda-meta-e7f42ee0.json +0 -1
  448. package/dist/assets/ms-python.python-2023.19.12861011.vsix/condarc-8ad258e5.json +0 -1
  449. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls-c97ce436.json +0 -1
  450. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.cs-5dee4ffc.json +0 -1
  451. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.de-b852e3ec.json +0 -1
  452. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.es-66adbb9e.json +0 -1
  453. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.fr-6abf0276.json +0 -1
  454. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.it-12650beb.json +0 -1
  455. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.ja-de4ee3bd.json +0 -1
  456. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.ko-254d6467.json +0 -1
  457. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.pl-f957d6c6.json +0 -1
  458. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.pt-br-d02ca4d9.json +0 -1
  459. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.qps-ploc-f24b5e76.json +0 -1
  460. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.ru-e6ba5e62.json +0 -1
  461. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.tr-05d98040.json +0 -1
  462. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.zh-cn-f41941e0.json +0 -1
  463. package/dist/assets/ms-python.python-2023.19.12861011.vsix/package.nls.zh-tw-02c30e90.json +0 -1
  464. package/dist/assets/ms-python.python-2023.19.12861011.vsix/pip-requirements-85cd5b06.json +0 -1
  465. package/dist/assets/ms-python.python-2023.19.12861011.vsix/pip-requirements.tmLanguage-5dcdde1f.json +0 -1
  466. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls-faad5326.json +0 -1006
  467. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.cs-1c63e64b.json +0 -441
  468. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.de-a80f3548.json +0 -441
  469. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.es-ed5f9669.json +0 -441
  470. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.fr-0a6f6680.json +0 -441
  471. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.it-690d744e.json +0 -441
  472. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.ja-9e548ee8.json +0 -441
  473. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.ko-b7c6d97d.json +0 -441
  474. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.pl-fac1f880.json +0 -441
  475. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.pt-br-618e6fff.json +0 -441
  476. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.ru-b8aa8e97.json +0 -441
  477. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.tr-61b293ea.json +0 -441
  478. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.zh-cn-2fb473f1.json +0 -441
  479. package/dist/assets/ms-vscode.cpptools-1.18.0.vsix/package.nls.zh-tw-bd960e98.json +0 -441
  480. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/META-a4e7fa6f.json +0 -56
  481. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/META-e71a284d.json +0 -10
  482. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/atd-03beef93.json +0 -57
  483. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/cram-947e10d8.json +0 -167
  484. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-3f9df928.json +0 -24
  485. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-ac59c79b.json +0 -2949
  486. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-b84b8558.json +0 -30
  487. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-project-1f8165b1.json +0 -26
  488. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-project-c3d6414c.json +0 -326
  489. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/dune-workspace-714d48f4.json +0 -191
  490. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/logo-1ec58c70.svg +0 -3
  491. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/menhir-318b208e.json +0 -349
  492. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/menhir-action-1de9ecfe.json +0 -29
  493. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/menhir-ba3ffd84.json +0 -27
  494. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/merlin-68658127.json +0 -73
  495. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/oasis-6cb9104d.json +0 -6
  496. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/oasis-b3731651.json +0 -69
  497. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-2b852e88.json +0 -54
  498. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-721ae493.json +0 -654
  499. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-8263d04c.json +0 -49
  500. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml-markdown-codeblock-d59b1879.json +0 -24
  501. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocaml.interface-82c9d397.json +0 -161
  502. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlbuild-28c2016d.json +0 -110
  503. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlbuild-68c3ee9d.json +0 -16
  504. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamldoc-68623cf8.json +0 -31
  505. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlformat-12d00ff4.json +0 -5
  506. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamlformat-566f44ca.json +0 -191
  507. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamllex-16f56b53.json +0 -6
  508. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamllex-2f54f6a7.json +0 -21
  509. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/ocamllex-9eea3c0f.json +0 -108
  510. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-051cc018.json +0 -24
  511. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-a3126c97.json +0 -111
  512. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-install-24f044a3.json +0 -23
  513. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/opam-install-5c433c27.json +0 -19
  514. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/reason-46868a8a.json +0 -2357
  515. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/reason-e5da4a73.json +0 -25
  516. package/dist/assets/ocamllabs.ocaml-platform-1.13.1.vsix/reason-markdown-codeblock-80e4eeb5.json +0 -24
  517. package/dist/assets/pgourlain.erlang-0.9.7.vsix/Erlang-dc87abbd.plist +0 -2719
  518. package/dist/assets/pgourlain.erlang-0.9.7.vsix/erlang-ceac2319.json +0 -197
  519. package/dist/assets/pgourlain.erlang-0.9.7.vsix/erlang.configuration-52d0fdab.json +0 -25
  520. package/dist/assets/redhat.java-1.24.2023101604.vsix/JavaProperties.tmLanguage-0a8c48eb.json +0 -103
  521. package/dist/assets/redhat.java-1.24.2023101604.vsix/java-properties-configuration-97f1db18.json +0 -67
  522. package/dist/assets/redhat.java-1.24.2023101604.vsix/java.tmLanguage-7cffeca4.json +0 -1892
  523. package/dist/assets/redhat.java-1.24.2023101604.vsix/language-configuration-054e92b8.json +0 -92
  524. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls-2147d73e.json +0 -29
  525. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls.ko-a7811004.json +0 -26
  526. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls.zh-cn-5b3edff8.json +0 -27
  527. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.nls.zh-tw-236ee4a0.json +0 -26
  528. package/dist/assets/redhat.java-1.24.2023101604.vsix/package.schema-58232c4f.json +0 -28
  529. package/dist/assets/scala-lang.scala-0.5.7.vsix/Scala.tmLanguage-e9b79520.json +0 -1
  530. package/dist/assets/scala-lang.scala-0.5.7.vsix/language-configuration-acc80ed1.json +0 -33
  531. package/dist/assets/scalameta.metals-1.25.2.vsix/book-dark-6f0d6908.svg +0 -5
  532. package/dist/assets/scalameta.metals-1.25.2.vsix/book-light-ba883494.svg +0 -1
  533. package/dist/assets/scalameta.metals-1.25.2.vsix/buildtarget-73bbface.json +0 -37
  534. package/dist/assets/scalameta.metals-1.25.2.vsix/file_type_java-36bb31ca.svg +0 -1
  535. package/dist/assets/scalameta.metals-1.25.2.vsix/file_type_scala-b6c14b23.svg +0 -1
  536. package/dist/assets/scalameta.metals-1.25.2.vsix/jvm-bytecode-cab4d04e.json +0 -395
  537. package/dist/assets/scalameta.metals-1.25.2.vsix/jvm-bytecode-verbose-3611fa8e.json +0 -745
  538. package/dist/assets/scalameta.metals-1.25.2.vsix/scalameta-5e510695.svg +0 -11
  539. package/dist/assets/scalameta.metals-1.25.2.vsix/scalameta-logo-f3b7b0bf.png +0 -0
  540. package/dist/assets/scalameta.metals-1.25.2.vsix/semanticdb-44c14f33.json +0 -37
  541. package/dist/assets/scalameta.metals-1.25.2.vsix/tasty-c2b151f2.json +0 -56
  542. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls-f1576108.json +0 -231
  543. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls.pt-br-44d0849d.json +0 -231
  544. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls.zh-cn-3f634909.json +0 -231
  545. package/dist/assets/sumneko.lua-3.7.0.vsix/package.nls.zh-tw-144dc848.json +0 -231
  546. package/dist/assets/sumneko.lua-3.7.0.vsix/schema-dedfd658.json +0 -3421
  547. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/javascript-7aebc91a.json +0 -43
  548. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/language-configuration-3cb1f78d.json +0 -38
  549. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/markdown-svelte-4cd58a41.json +0 -45
  550. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/markdown-svelte-css-0fdc510e.json +0 -23
  551. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/markdown-svelte-js-cd568059.json +0 -23
  552. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/package-json-schema-ec2f7bd4.json +0 -9
  553. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/postcss-05883dcd.json +0 -377
  554. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/prettier-options-schema-9e36a684.json +0 -112
  555. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/pug-svelte-04246371.json +0 -293
  556. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/pug-svelte-dotblock-b92db507.json +0 -55
  557. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/pug-svelte-tags-65124af1.json +0 -201
  558. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/svelte-a1bb47f3.json +0 -22
  559. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/svelte.tmLanguage-aec82be9.json +0 -1163
  560. package/dist/assets/svelte.svelte-vscode-107.12.0.vsix/typescript-bd1c0ff1.json +0 -37
  561. package/dist/assets/webfreak.code-d-0.23.2.vsix/d-2da26fd0.json +0 -3163
  562. package/dist/assets/webfreak.code-d-0.23.2.vsix/d-316cb838.json +0 -90
  563. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet-0b761e76.json +0 -87
  564. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet-7fe4fdb7.json +0 -92
  565. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet-83c1bebc.json +0 -742
  566. package/dist/assets/webfreak.code-d-0.23.2.vsix/dml-ef6957d3.json +0 -157
  567. package/dist/assets/webfreak.code-d-0.23.2.vsix/dub.schema-77c2f417.json +0 -377
  568. package/dist/assets/webfreak.code-d-0.23.2.vsix/general-7b927912.json +0 -84
  569. package/dist/assets/webfreak.code-d-0.23.2.vsix/sdl-b6c61596.json +0 -149
  570. package/dist/configuration/index.js +0 -45
  571. package/dist/editor/autofold.js +0 -24
  572. package/dist/editor/cobol.js +0 -67
  573. package/dist/editor/index.js +0 -9
  574. package/dist/extensions/Angular.ng-template-16.1.8.vsix.js +0 -16
  575. package/dist/extensions/Dart-Code.dart-code-3.75.20231009.vsix.js +0 -14
  576. package/dist/extensions/IMCTradingBV.svlangserver-0.4.1.vsix.js +0 -18
  577. package/dist/extensions/JakeBecker.elixir-ls-0.17.1.vsix.js +0 -18
  578. package/dist/extensions/JuanBlanco.solidity-0.0.165.vsix.js +0 -14
  579. package/dist/extensions/REditorSupport.r-2.8.2.vsix.js +0 -42
  580. package/dist/extensions/alefragnani.pascal-9.6.0.vsix.js +0 -18
  581. package/dist/extensions/batisteo.vscode-django-1.14.0.vsix.js +0 -18
  582. package/dist/extensions/bitwisecook.tcl-0.4.3.vsix.js +0 -14
  583. package/dist/extensions/broadcomMFD.cobol-language-support-2.0.3.vsix.js +0 -16
  584. package/dist/extensions/castwide.solargraph-0.24.0.vsix.js +0 -5
  585. package/dist/extensions/ckolkman.vscode-postgres-1.4.3.vsix.js +0 -14
  586. package/dist/extensions/golang.Go-0.39.1.vsix.js +0 -18
  587. package/dist/extensions/johnsoncodehk.vscode-angular-1.0.22.vsix.js +0 -14
  588. package/dist/extensions/justusadam.language-haskell-3.6.0.vsix.js +0 -38
  589. package/dist/extensions/mathiasfrohlich.Kotlin-1.7.1.vsix.js +0 -16
  590. package/dist/extensions/ms-dotnettools.csharp-2.6.24.vsix.js +0 -46
  591. package/dist/extensions/ms-python.python-2023.19.12861011.vsix.js +0 -48
  592. package/dist/extensions/ms-vscode.cpptools-1.18.0.vsix.js +0 -36
  593. package/dist/extensions/ocamllabs.ocaml-platform-1.13.1.vsix.js +0 -82
  594. package/dist/extensions/pgourlain.erlang-0.9.7.vsix.js +0 -14
  595. package/dist/extensions/redhat.java-1.24.2023101604.vsix.js +0 -26
  596. package/dist/extensions/scala-lang.scala-0.5.7.vsix.js +0 -12
  597. package/dist/extensions/scalameta.metals-1.25.2.vsix.js +0 -30
  598. package/dist/extensions/sumneko.lua-3.7.0.vsix.js +0 -18
  599. package/dist/extensions/svelte.svelte-vscode-107.12.0.vsix.js +0 -36
  600. package/dist/extensions/webfreak.code-d-0.23.2.vsix.js +0 -26
  601. package/dist/extensions.d.ts +0 -36
  602. package/dist/features/debug.js +0 -6
  603. package/dist/features/extensionHostWorker.js +0 -11
  604. package/dist/features/search.d.ts +0 -1
  605. package/dist/features/search.js +0 -7
  606. package/dist/features/viewPanels.d.ts +0 -1
  607. package/dist/features/viewPanels.js +0 -11
  608. package/dist/features/views.d.ts +0 -4
  609. package/dist/features/views.js +0 -27
  610. package/dist/keybindings/index.js +0 -36
  611. package/dist/keybindings/vim.js +0 -82
  612. package/dist/languages/index.js +0 -40
  613. package/dist/monaco.js +0 -93
  614. package/dist/node_modules/lodash.kebabcase/index.js +0 -439
  615. package/dist/node_modules/lodash.throttle/index.js +0 -443
  616. package/dist/node_modules/monaco-emacs/lib/emacs/actions.js +0 -596
  617. package/dist/node_modules/monaco-emacs/lib/emacs/basicInput.js +0 -113
  618. package/dist/node_modules/monaco-emacs/lib/emacs/commands.js +0 -184
  619. package/dist/node_modules/monaco-emacs/lib/emacs/index.js +0 -186
  620. package/dist/node_modules/monaco-emacs/lib/emacs/state.js +0 -116
  621. package/dist/node_modules/monaco-emacs/lib/emacs/util.js +0 -112
  622. package/dist/node_modules/monaco-emacs/lib/index.js +0 -31
  623. package/dist/node_modules/monaco-vim/lib/cm_adapter.js +0 -1393
  624. package/dist/node_modules/monaco-vim/lib/index.js +0 -71
  625. package/dist/node_modules/monaco-vim/lib/statusbar.js +0 -239
  626. package/dist/services.d.ts +0 -8
  627. package/dist/services.js +0 -73
  628. package/dist/style.js +0 -12
  629. package/dist/theme/index.js +0 -21
  630. package/dist/tools/EditorOpenHandlerRegistry.js +0 -108
  631. package/dist/tools/FakeWorker.d.ts +0 -5
  632. package/dist/tools/FakeWorker.js +0 -8
  633. package/dist/tools.js +0 -235
  634. /package/dist/{editor → extensions}/autofold.d.ts +0 -0
  635. /package/dist/{editor → extensions}/cobol.d.ts +0 -0
  636. /package/dist/{editor → extensions}/index.d.ts +0 -0
  637. /package/dist/{features/debug.d.ts → languages/snippets/index.d.ts} +0 -0
  638. /package/dist/{features/extensionHostWorker.d.ts → languages/textMate/semanticTokens.d.ts} +0 -0
@@ -1,2525 +0,0 @@
1
- {
2
- "fileTypes": [
3
- "hs",
4
- "hs-boot",
5
- "hsig"
6
- ],
7
- "keyEquivalent": "^~H",
8
- "name": "Haskell",
9
- "patterns": [
10
- {
11
- "include": "#liquid_haskell"
12
- },
13
- {
14
- "include": "#comment_like"
15
- },
16
- {
17
- "include": "#numeric_literals"
18
- },
19
- {
20
- "include": "#string_literal"
21
- },
22
- {
23
- "include": "#char_literal"
24
- },
25
- {
26
- "match": "(?<!@|#)-\\}",
27
- "name": "invalid"
28
- },
29
- {
30
- "match": "(\\()\\s*(\\))",
31
- "name": "constant.language.unit.haskell",
32
- "captures": {
33
- "1": {
34
- "name": "punctuation.paren.haskell"
35
- },
36
- "2": {
37
- "name": "punctuation.paren.haskell"
38
- }
39
- }
40
- },
41
- {
42
- "match": "(\\()(#)\\s*(#)(\\))",
43
- "name": "constant.language.unit.unboxed.haskell",
44
- "captures": {
45
- "1": {
46
- "name": "punctuation.paren.haskell"
47
- },
48
- "2": {
49
- "name": "keyword.operator.hash.haskell"
50
- },
51
- "3": {
52
- "name": "keyword.operator.hash.haskell"
53
- },
54
- "4": {
55
- "name": "punctuation.paren.haskell"
56
- }
57
- }
58
- },
59
- {
60
- "match": "(\\()\\s*,[\\s,]*(\\))",
61
- "name": "support.constant.tuple.haskell",
62
- "captures": {
63
- "1": {
64
- "name": "punctuation.paren.haskell"
65
- },
66
- "2": {
67
- "name": "punctuation.paren.haskell"
68
- }
69
- }
70
- },
71
- {
72
- "match": "(\\()(#)\\s*,[\\s,]*(#)(\\))",
73
- "name": "support.constant.tuple.unboxed.haskell",
74
- "captures": {
75
- "1": {
76
- "name": "punctuation.paren.haskell"
77
- },
78
- "2": {
79
- "name": "keyword.operator.hash.haskell"
80
- },
81
- "3": {
82
- "name": "keyword.operator.hash.haskell"
83
- },
84
- "4": {
85
- "name": "punctuation.paren.haskell"
86
- }
87
- }
88
- },
89
- {
90
- "match": "(\\[)\\s*(\\])",
91
- "name": "constant.language.empty-list.haskell",
92
- "captures": {
93
- "1": {
94
- "name": "punctuation.bracket.haskell"
95
- },
96
- "2": {
97
- "name": "punctuation.bracket.haskell"
98
- }
99
- }
100
- },
101
- {
102
- "begin": "(\\b(?<!')(module)|^(signature))(\\b(?!'))",
103
- "beginCaptures": {
104
- "2": {
105
- "name": "keyword.other.module.haskell"
106
- },
107
- "3": {
108
- "name": "keyword.other.signature.haskell"
109
- }
110
- },
111
- "end": "(?=\\b(?<!')where\\b(?!'))",
112
- "name": "meta.declaration.module.haskell",
113
- "patterns": [
114
- {
115
- "include": "#comment_like"
116
- },
117
- {
118
- "include": "#module_name"
119
- },
120
- {
121
- "include": "#module_exports"
122
- },
123
- {
124
- "match": "[a-z]+",
125
- "name": "invalid"
126
- }
127
- ]
128
- },
129
- {
130
- "include": "#ffi"
131
- },
132
- {
133
- "begin": "^(\\s*)(class)(\\b(?!'))",
134
- "beginCaptures": {
135
- "2": {
136
- "name": "keyword.other.class.haskell"
137
- }
138
- },
139
- "end": "(?x) # Detect end of class declaration:\n # 'where' keyword\n (?=(?<!')\\bwhere\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )",
140
- "name": "meta.declaration.class.haskell",
141
- "patterns": [
142
- {
143
- "include": "#comment_like"
144
- },
145
- {
146
- "include": "#where"
147
- },
148
- {
149
- "include": "#type_signature"
150
- }
151
- ]
152
- },
153
- {
154
- "begin": "(?x)\n ^(\\s*)(data|newtype)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n ((?:(?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?<!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)\n (?=\\b(?<!'')where\\b(?!''))",
155
- "beginCaptures": {
156
- "2": {
157
- "name": "keyword.other.$2.haskell"
158
- },
159
- "3": {
160
- "name": "keyword.other.instance.haskell"
161
- },
162
- "4": {
163
- "patterns": [
164
- {
165
- "include": "#type_signature"
166
- }
167
- ]
168
- }
169
- },
170
- "name": "meta.declaration.$2.generalized.haskell",
171
- "end": "(?x) # Detect end of data declaration:\n # Deriving clause\n (?=(?<!')\\bderiving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
172
- "patterns": [
173
- {
174
- "include": "#comment_like"
175
- },
176
- {
177
- "begin": "(?x)\n (?<!')\\b(where)\n \\s*(\\{)(?!-)",
178
- "end": "\\}",
179
- "beginCaptures": {
180
- "1": {
181
- "name": "keyword.other.where.haskell"
182
- },
183
- "2": {
184
- "name": "punctuation.brace.haskell"
185
- }
186
- },
187
- "endCaptures": {
188
- "1": {
189
- "name": "punctuation.brace.haskell"
190
- }
191
- },
192
- "patterns": [
193
- {
194
- "include": "#comment_like"
195
- },
196
- {
197
- "include": "#gadt_constructor"
198
- },
199
- {
200
- "match": ";",
201
- "name": "punctuation.semicolon.haskell"
202
- }
203
- ]
204
- },
205
- {
206
- "match": "\\b(?<!')(where)\\b(?!')",
207
- "name": "keyword.other.where.haskell"
208
- },
209
- {
210
- "include": "#deriving"
211
- },
212
- {
213
- "include": "#gadt_constructor"
214
- }
215
- ]
216
- },
217
- {
218
- "include": "#role_annotation"
219
- },
220
- {
221
- "name": "meta.declaration.pattern.type.haskell",
222
- "begin": "^(\\s*)(pattern)\\s+(.*?)\\s+(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])",
223
- "beginCaptures": {
224
- "2": {
225
- "name": "keyword.other.pattern.haskell"
226
- },
227
- "3": {
228
- "patterns": [
229
- {
230
- "include": "#comma"
231
- },
232
- {
233
- "include": "#data_constructor"
234
- }
235
- ]
236
- },
237
- "4": {
238
- "name": "keyword.operator.double-colon.haskell"
239
- }
240
- },
241
- "end": "(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
242
- "patterns": [
243
- {
244
- "include": "#type_signature"
245
- }
246
- ]
247
- },
248
- {
249
- "name": "meta.declaration.pattern.haskell",
250
- "begin": "^\\s*(pattern)\\b(?!')",
251
- "captures": {
252
- "1": {
253
- "name": "keyword.other.pattern.haskell"
254
- }
255
- },
256
- "end": "(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
257
- "patterns": [
258
- {
259
- "include": "$self"
260
- }
261
- ]
262
- },
263
- {
264
- "begin": "(?x)\n # Data declaration\n ^(\\s*)(data|newtype)(?:\\s+(family|instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?<!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)",
265
- "beginCaptures": {
266
- "2": {
267
- "name": "keyword.other.$2.haskell"
268
- },
269
- "3": {
270
- "name": "keyword.other.$3.haskell"
271
- },
272
- "4": {
273
- "patterns": [
274
- {
275
- "include": "#type_signature"
276
- }
277
- ]
278
- }
279
- },
280
- "name": "meta.declaration.$2.algebraic.haskell",
281
- "end": "(?x) # Detect end of data declaration: \n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )",
282
- "patterns": [
283
- {
284
- "include": "#comment_like"
285
- },
286
- {
287
- "include": "#deriving"
288
- },
289
- {
290
- "include": "#forall"
291
- },
292
- {
293
- "include": "#adt_constructor"
294
- },
295
- {
296
- "include": "#data_context"
297
- },
298
- {
299
- "include": "#record_decl"
300
- },
301
- {
302
- "include": "#type_signature"
303
- }
304
- ]
305
- },
306
- {
307
- "name": "meta.declaration.type.family.haskell",
308
- "begin": "(?x)\n # Type family\n ^(\\s*)(type)\\s+(family)\\b(?!')\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" keyword, or\n | \\b(?<!')where\\b(?!')\n # the start of a block comment.\n | {-\n #\n ).)*)",
309
- "beginCaptures": {
310
- "2": {
311
- "name": "keyword.other.type.haskell"
312
- },
313
- "3": {
314
- "name": "keyword.other.family.haskell"
315
- },
316
- "4": {
317
- "patterns": [
318
- {
319
- "include": "#comment_like"
320
- },
321
- {
322
- "include": "#where"
323
- },
324
- {
325
- "include": "#type_signature"
326
- }
327
- ]
328
- }
329
- },
330
- "end": "(?x) # Detect end of type family by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
331
- "patterns": [
332
- {
333
- "include": "#comment_like"
334
- },
335
- {
336
- "include": "#where"
337
- },
338
- {
339
- "include": "#type_signature"
340
- }
341
- ]
342
- },
343
- {
344
- "name": "meta.declaration.type.haskell",
345
- "begin": "(?x)\n # Type declaration\n ^(\\s*)(type)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol, the start of a single-line comment, or a type signature\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+|::|∷)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the start of a block comment.\n | {-\n #\n ).)*)",
346
- "beginCaptures": {
347
- "2": {
348
- "name": "keyword.other.type.haskell"
349
- },
350
- "3": {
351
- "name": "keyword.other.instance.haskell"
352
- },
353
- "4": {
354
- "patterns": [
355
- {
356
- "include": "#type_signature"
357
- }
358
- ]
359
- }
360
- },
361
- "end": "(?x) # Detect end of type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
362
- "patterns": [
363
- {
364
- "include": "#type_signature"
365
- }
366
- ]
367
- },
368
- {
369
- "begin": "^(\\s*)(instance)(\\b(?!'))",
370
- "beginCaptures": {
371
- "2": {
372
- "name": "keyword.other.instance.haskell"
373
- }
374
- },
375
- "end": "(?x) # Detect end of instance declaration:\n # 'where' keyword\n (?=\\b(?<!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
376
- "name": "meta.declaration.instance.haskell",
377
- "patterns": [
378
- {
379
- "include": "#comment_like"
380
- },
381
- {
382
- "include": "#where"
383
- },
384
- {
385
- "include": "#type_signature"
386
- }
387
- ]
388
- },
389
- {
390
- "begin": "^(\\s*)(import)(\\b(?!'))",
391
- "beginCaptures": {
392
- "2": {
393
- "name": "keyword.other.import.haskell"
394
- }
395
- },
396
- "end": "(?x) # Detect end of import\n # 'where' keyword\n (?=\\b(?<!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
397
- "name": "meta.import.haskell",
398
- "patterns": [
399
- {
400
- "include": "#comment_like"
401
- },
402
- {
403
- "include": "#where"
404
- },
405
- {
406
- "match": "(qualified|as|hiding)",
407
- "captures": {
408
- "1": {
409
- "name": "keyword.other.$1.haskell"
410
- }
411
- }
412
- },
413
- {
414
- "include": "#module_name"
415
- },
416
- {
417
- "include": "#module_exports"
418
- }
419
- ]
420
- },
421
- {
422
- "include": "#deriving"
423
- },
424
- {
425
- "include": "#layout_herald"
426
- },
427
- {
428
- "include": "#keyword"
429
- },
430
- {
431
- "match": "^\\s*(infix[lr]?)\\s+(.*)",
432
- "captures": {
433
- "1": {
434
- "name": "keyword.other.fixity.$1.haskell"
435
- },
436
- "2": {
437
- "patterns": [
438
- {
439
- "include": "#comment_like"
440
- },
441
- {
442
- "include": "#integer_literals"
443
- },
444
- {
445
- "match": ":[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*",
446
- "name": "constant.other.operator.infix.haskell"
447
- },
448
- {
449
- "include": "#infix_op"
450
- }
451
- ]
452
- }
453
- },
454
- "name": "meta.fixity-declaration.haskell"
455
- },
456
- {
457
- "include": "#start_type_signature"
458
- },
459
- {
460
- "include": "#overloaded_label"
461
- },
462
- {
463
- "include": "#type_application"
464
- },
465
- {
466
- "include": "#reserved_symbol"
467
- },
468
- {
469
- "include": "#fun_decl"
470
- },
471
- {
472
- "include": "#qualifier"
473
- },
474
- {
475
- "match": ":[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*",
476
- "name": "constant.other.operator.infix.haskell"
477
- },
478
- {
479
- "include": "#data_constructor"
480
- },
481
- {
482
- "include": "#prefix_op"
483
- },
484
- {
485
- "include": "#infix_op"
486
- },
487
- {
488
- "begin": "(\\()(#)\\s",
489
- "end": "(#)(\\))",
490
- "beginCaptures": {
491
- "1": {
492
- "name": "punctuation.paren.haskell"
493
- },
494
- "2": {
495
- "name": "keyword.operator.hash.haskell"
496
- }
497
- },
498
- "endCaptures": {
499
- "1": {
500
- "name": "keyword.operator.hash.haskell"
501
- },
502
- "2": {
503
- "name": "punctuation.paren.haskell"
504
- }
505
- },
506
- "patterns": [
507
- {
508
- "include": "#comma"
509
- },
510
- {
511
- "include": "$self"
512
- }
513
- ]
514
- },
515
- {
516
- "begin": "(\\()",
517
- "end": "(\\))",
518
- "beginCaptures": {
519
- "1": {
520
- "name": "punctuation.paren.haskell"
521
- }
522
- },
523
- "endCaptures": {
524
- "1": {
525
- "name": "punctuation.paren.haskell"
526
- }
527
- },
528
- "patterns": [
529
- {
530
- "include": "#comma"
531
- },
532
- {
533
- "include": "$self"
534
- }
535
- ]
536
- },
537
- {
538
- "include": "#quasi_quote"
539
- },
540
- {
541
- "begin": "(\\[)",
542
- "end": "(\\])",
543
- "beginCaptures": {
544
- "1": {
545
- "name": "punctuation.bracket.haskell"
546
- }
547
- },
548
- "endCaptures": {
549
- "1": {
550
- "name": "punctuation.bracket.haskell"
551
- }
552
- },
553
- "patterns": [
554
- {
555
- "include": "#comma"
556
- },
557
- {
558
- "include": "$self"
559
- }
560
- ]
561
- },
562
- {
563
- "include": "#record"
564
- }
565
- ],
566
- "repository": {
567
- "block_comment": {
568
- "applyEndPatternLast": 1,
569
- "begin": "\\{-",
570
- "captures": {
571
- "0": {
572
- "name": "punctuation.definition.comment.haskell"
573
- }
574
- },
575
- "end": "-\\}",
576
- "name": "comment.block.haskell",
577
- "patterns": [
578
- {
579
- "include": "#block_comment"
580
- }
581
- ]
582
- },
583
- "comments": {
584
- "patterns": [
585
- {
586
- "begin": "^(\\s*)(--\\s[\\|\\$])",
587
- "beginCaptures": {
588
- "2": {
589
- "name": "punctuation.whitespace.comment.leading.haskell"
590
- }
591
- },
592
- "end": "(?=^(?!\\1--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])))",
593
- "name": "comment.block.documentation.haskell"
594
- },
595
- {
596
- "begin": "(^[ \\t]+)?(--\\s[\\^\\*])",
597
- "beginCaptures": {
598
- "1": {
599
- "name": "punctuation.whitespace.comment.leading.haskell"
600
- }
601
- },
602
- "end": "\\n",
603
- "name": "comment.line.documentation.haskell"
604
- },
605
- {
606
- "applyEndPatternLast": 1,
607
- "begin": "\\{-\\s?[\\|\\$\\*\\^]",
608
- "captures": {
609
- "0": {
610
- "name": "punctuation.definition.comment.haskell"
611
- }
612
- },
613
- "end": "-\\}",
614
- "name": "comment.block.documentation.haskell",
615
- "patterns": [
616
- {
617
- "include": "#block_comment"
618
- }
619
- ]
620
- },
621
- {
622
- "begin": "(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))",
623
- "beginCaptures": {
624
- "1": {
625
- "name": "punctuation.whitespace.comment.leading.haskell"
626
- }
627
- },
628
- "comment": "Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.",
629
- "end": "(?!\\G)",
630
- "patterns": [
631
- {
632
- "begin": "--",
633
- "beginCaptures": {
634
- "0": {
635
- "name": "punctuation.definition.comment.haskell"
636
- }
637
- },
638
- "end": "\\n",
639
- "name": "comment.line.double-dash.haskell"
640
- }
641
- ]
642
- },
643
- {
644
- "include": "#block_comment"
645
- }
646
- ]
647
- },
648
- "comment_like": {
649
- "patterns": [
650
- {
651
- "include": "#cpp"
652
- },
653
- {
654
- "include": "#pragma"
655
- },
656
- {
657
- "include": "#comments"
658
- }
659
- ]
660
- },
661
- "cpp": {
662
- "captures": {
663
- "1": {
664
- "name": "punctuation.definition.preprocessor.c"
665
- }
666
- },
667
- "comment": "In addition to Haskell's \"native\" syntax, GHC permits the C preprocessor to be run on a source file.",
668
- "match": "^(#).*$",
669
- "name": "meta.preprocessor.c"
670
- },
671
- "where": {
672
- "patterns": [
673
- {
674
- "begin": "(?x)\n (?<!')\\b(where)\n \\s*(\\{)(?!-)",
675
- "end": "(\\})",
676
- "beginCaptures": {
677
- "1": {
678
- "name": "keyword.other.where.haskell"
679
- },
680
- "2": {
681
- "name": "punctuation.brace.haskell"
682
- }
683
- },
684
- "endCaptures": {
685
- "1": {
686
- "name": "punctuation.brace.haskell"
687
- }
688
- },
689
- "patterns": [
690
- {
691
- "include": "$self"
692
- },
693
- {
694
- "match": ";",
695
- "name": "punctuation.semicolon.haskell"
696
- }
697
- ]
698
- },
699
- {
700
- "match": "\\b(?<!')(where)\\b(?!')",
701
- "name": "keyword.other.where.haskell"
702
- }
703
- ]
704
- },
705
- "layout_herald": {
706
- "begin": "(?x)\n (?:(?<!')\\b(?:(where|let|m?do)|(of))|(\\\\\\s*case))\n \\s*(\\{)(?!-)",
707
- "end": "(\\})",
708
- "beginCaptures": {
709
- "1": {
710
- "name": "keyword.other.$1.haskell"
711
- },
712
- "2": {
713
- "name": "keyword.control.of.haskell"
714
- },
715
- "3": {
716
- "name": "keyword.control.lambda-case.haskell"
717
- },
718
- "4": {
719
- "name": "punctuation.brace.haskell"
720
- }
721
- },
722
- "endCaptures": {
723
- "1": {
724
- "name": "punctuation.brace.haskell"
725
- }
726
- },
727
- "patterns": [
728
- {
729
- "include": "$self"
730
- },
731
- {
732
- "match": ";",
733
- "name": "punctuation.semicolon.haskell"
734
- }
735
- ]
736
- },
737
- "keyword": {
738
- "match": "\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\b(?!')",
739
- "captures": {
740
- "1": {
741
- "name": "keyword.other.$1.haskell"
742
- },
743
- "2": {
744
- "name": "keyword.control.$2.haskell"
745
- }
746
- }
747
- },
748
- "deriving": {
749
- "patterns": [
750
- {
751
- "begin": "^(\\s*)(deriving)\\s+(?:(via|stock|newtype|anyclass)\\s+)?",
752
- "beginCaptures": {
753
- "2": {
754
- "name": "keyword.other.deriving.haskell"
755
- },
756
- "3": {
757
- "name": "keyword.other.deriving.strategy.$3.haskell"
758
- }
759
- },
760
- "end": "(?x) # Detect end of deriving statement\n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )",
761
- "patterns": [
762
- {
763
- "include": "#comment_like"
764
- },
765
- {
766
- "match": "(?<!')\\b(instance)\\b(?!')",
767
- "name": "keyword.other.instance.haskell"
768
- },
769
- {
770
- "match": "(?<!')\\b(via|stock|newtype|anyclass)\\b(?!')",
771
- "captures": {
772
- "1": {
773
- "name": "keyword.other.deriving.strategy.$1.haskell"
774
- }
775
- }
776
- },
777
- {
778
- "include": "#type_signature"
779
- }
780
- ],
781
- "name": "meta.deriving.haskell"
782
- },
783
- {
784
- "begin": "(deriving)(?:\\s+(stock|newtype|anyclass))?\\s*(\\()",
785
- "beginCaptures": {
786
- "1": {
787
- "name": "keyword.other.deriving.haskell"
788
- },
789
- "2": {
790
- "name": "keyword.other.deriving.strategy.$2.haskell"
791
- },
792
- "3": {
793
- "name": "punctuation.paren.haskell"
794
- }
795
- },
796
- "end": "(\\))",
797
- "endCaptures": {
798
- "1": {
799
- "name": "punctuation.paren.haskell"
800
- }
801
- },
802
- "name": "meta.deriving.haskell",
803
- "patterns": [
804
- {
805
- "include": "#type_signature"
806
- }
807
- ]
808
- },
809
- {
810
- "match": "(?x)\n (deriving)(?:\\s+(stock|newtype|anyclass))?\\s+\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n (\\s+(via)\\s+(.*)$)?\n",
811
- "captures": {
812
- "1": {
813
- "name": "keyword.other.deriving.haskell"
814
- },
815
- "2": {
816
- "name": "keyword.other.deriving.strategy.$2.haskell"
817
- },
818
- "3": {
819
- "patterns": [
820
- {
821
- "include": "#type_signature"
822
- }
823
- ]
824
- },
825
- "5": {
826
- "name": "keyword.other.deriving.strategy.via.haskell"
827
- },
828
- "6": {
829
- "patterns": [
830
- {
831
- "include": "#type_signature"
832
- }
833
- ]
834
- }
835
- },
836
- "name": "meta.deriving.haskell"
837
- },
838
- {
839
- "match": "(?<!')\\b(via)\\b(?!')",
840
- "name": "keyword.other.deriving.strategy.via.haskell"
841
- }
842
- ]
843
- },
844
- "prefix_op": {
845
- "patterns": [
846
- {
847
- "comment": "An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\n",
848
- "match": "(?x)\n (\\()\\s*(?!(?:--+|\\.\\.)\\))(\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))\\s*(\\))",
849
- "captures": {
850
- "1": {
851
- "name": "punctuation.paren.haskell"
852
- },
853
- "2": {
854
- "name": "entity.name.function.infix.haskell"
855
- },
856
- "3": {
857
- "name": "punctuation.paren.haskell"
858
- }
859
- }
860
- }
861
- ]
862
- },
863
- "infix_op": {
864
- "patterns": [
865
- {
866
- "match": "(?x)\n ((?:(?<!'')('')?[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)\n (\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))",
867
- "comment": "In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\n",
868
- "captures": {
869
- "1": {
870
- "name": "keyword.operator.promotion.haskell"
871
- },
872
- "2": {
873
- "name": "entity.name.namespace.haskell"
874
- },
875
- "3": {
876
- "name": "keyword.operator.infix.haskell"
877
- }
878
- }
879
- },
880
- {
881
- "match": "(`)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*)(`)",
882
- "captures": {
883
- "1": {
884
- "name": "punctuation.backtick.haskell"
885
- },
886
- "2": {
887
- "name": "entity.name.namespace.haskell"
888
- },
889
- "3": {
890
- "patterns": [
891
- {
892
- "include": "#data_constructor"
893
- }
894
- ]
895
- },
896
- "4": {
897
- "name": "punctuation.backtick.haskell"
898
- }
899
- },
900
- "comment": "In case this regex seems unusual for an infix operator, note that Haskell\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\nas an infix expression (4 `elem` [1..10]).\n",
901
- "name": "keyword.operator.function.infix.haskell"
902
- }
903
- ]
904
- },
905
- "module_exports": {
906
- "begin": "\\(",
907
- "beginCaptures": {
908
- "0": {
909
- "name": "punctuation.paren.haskell"
910
- }
911
- },
912
- "end": "\\)",
913
- "endCaptures": {
914
- "0": {
915
- "name": "punctuation.paren.haskell"
916
- }
917
- },
918
- "applyEndPatternLast": 1,
919
- "name": "meta.declaration.exports.haskell",
920
- "patterns": [
921
- {
922
- "include": "#comment_like"
923
- },
924
- {
925
- "match": "\\b(?<!')(module)\\b(?!')",
926
- "captures": {
927
- "1": {
928
- "name": "keyword.other.module.haskell"
929
- }
930
- }
931
- },
932
- {
933
- "include": "#comma"
934
- },
935
- {
936
- "include": "#export_constructs"
937
- },
938
- {
939
- "begin": "\\(",
940
- "beginCaptures": {
941
- "0": {
942
- "name": "punctuation.paren.haskell"
943
- }
944
- },
945
- "end": "\\)",
946
- "endCaptures": {
947
- "0": {
948
- "name": "punctuation.paren.haskell"
949
- }
950
- },
951
- "patterns": [
952
- {
953
- "include": "#comment_like"
954
- },
955
- {
956
- "include": "#record_wildcard"
957
- },
958
- {
959
- "match": "(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))",
960
- "name": "constant.other.operator.prefix.haskell"
961
- },
962
- {
963
- "include": "#export_constructs"
964
- },
965
- {
966
- "include": "#comma"
967
- }
968
- ]
969
- }
970
- ]
971
- },
972
- "export_constructs": {
973
- "patterns": [
974
- {
975
- "include": "#comment_like"
976
- },
977
- {
978
- "begin": "\\b(?<!')(pattern)\\b(?!')",
979
- "beginCaptures": {
980
- "1": {
981
- "name": "keyword.other.pattern.haskell"
982
- }
983
- },
984
- "end": "(?x)\n # Data constructor\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of symbolic constructor\n | (\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))",
985
- "endCaptures": {
986
- "1": {
987
- "name": "constant.other.haskell"
988
- },
989
- "2": {
990
- "name": "punctuation.paren.haskell"
991
- },
992
- "3": {
993
- "name": "constant.other.operator.prefix.haskell"
994
- },
995
- "4": {
996
- "name": "punctuation.paren.haskell"
997
- }
998
- },
999
- "patterns": [
1000
- {
1001
- "include": "#comment_like"
1002
- }
1003
- ]
1004
- },
1005
- {
1006
- "begin": "\\b(?<!')(type)\\b(?!')",
1007
- "beginCaptures": {
1008
- "1": {
1009
- "name": "keyword.other.type.haskell"
1010
- }
1011
- },
1012
- "end": "(?x)\n # Type name\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of type operator\n | (\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))",
1013
- "endCaptures": {
1014
- "1": {
1015
- "name": "storage.type.haskell"
1016
- },
1017
- "2": {
1018
- "name": "punctuation.paren.haskell"
1019
- },
1020
- "3": {
1021
- "name": "storage.type.operator.haskell"
1022
- },
1023
- "4": {
1024
- "name": "punctuation.paren.haskell"
1025
- }
1026
- },
1027
- "patterns": [
1028
- {
1029
- "include": "#comment_like"
1030
- }
1031
- ]
1032
- },
1033
- {
1034
- "include": "#record_wildcard"
1035
- },
1036
- {
1037
- "include": "#reserved_symbol"
1038
- },
1039
- {
1040
- "match": "(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))",
1041
- "name": "storage.type.operator.haskell"
1042
- },
1043
- {
1044
- "match": "(?<!')\\b[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",
1045
- "name": "entity.name.function.haskell"
1046
- },
1047
- {
1048
- "match": "(?<!')\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",
1049
- "name": "storage.type.haskell"
1050
- },
1051
- {
1052
- "include": "#prefix_op"
1053
- }
1054
- ]
1055
- },
1056
- "comma": {
1057
- "match": ",",
1058
- "name": "punctuation.separator.comma.haskell"
1059
- },
1060
- "module_name": {
1061
- "match": "(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.\\g<conid>)?)",
1062
- "name": "entity.name.namespace.haskell"
1063
- },
1064
- "pragma": {
1065
- "begin": "\\{-#",
1066
- "end": "#-\\}",
1067
- "name": "meta.preprocessor.haskell",
1068
- "patterns": [
1069
- {
1070
- "include": "#comments"
1071
- },
1072
- {
1073
- "begin": "(?xi) \\b(?<!')(LANGUAGE)\\b(?!')",
1074
- "end": "(?=#-\\})",
1075
- "beginCaptures": {
1076
- "1": {
1077
- "name": "keyword.other.preprocessor.pragma.haskell"
1078
- }
1079
- },
1080
- "patterns": [
1081
- {
1082
- "include": "#comments"
1083
- },
1084
- {
1085
- "match": "(?x)\n \\b(?<!')\n (?:No)?\n (?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)\n \\b(?!')",
1086
- "name": "invalid.deprecated"
1087
- },
1088
- {
1089
- "match": "(?x)\n \\b(?<!')\n (\n (?:No)?\n (?:AllowAmbiguousTypes|AlternativeLayoutRuleTransitional|AlternativeLayoutRule|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali(?:s|z)edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LexicalNegation|LiberalTypeSynonyms|LinearTypes|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QualifiedDo|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|StrictData|Strict|TemplateHaskellQuotes|TemplateHaskell|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns|UnliftedDatatypes|OverloadedRecordDot|OverloadedRecordUpdate|FieldSelectors)\n )\n \\b(?!')",
1090
- "captures": {
1091
- "1": {
1092
- "name": "keyword.other.preprocessor.extension.haskell"
1093
- }
1094
- }
1095
- },
1096
- {
1097
- "include": "#comma"
1098
- }
1099
- ]
1100
- },
1101
- {
1102
- "begin": "(?xi)\n \\b(?<!')(SPECIALI(?:S|Z)E)\n (?:\n \\s*( \\[ [^\\[\\]]* \\])?\\s*\n |\\s+\n )\n (instance)\\b(?!')",
1103
- "end": "(?=#-\\})",
1104
- "beginCaptures": {
1105
- "1": {
1106
- "name": "keyword.other.preprocessor.pragma.haskell"
1107
- },
1108
- "2": {
1109
- "patterns": [
1110
- {
1111
- "include": "#inline_phase"
1112
- }
1113
- ]
1114
- },
1115
- "3": {
1116
- "name": "keyword.other.instance.haskell"
1117
- }
1118
- },
1119
- "patterns": [
1120
- {
1121
- "include": "#type_signature"
1122
- }
1123
- ]
1124
- },
1125
- {
1126
- "begin": "(?xi)\n \\b(?<!')(SPECIALI(?:S|Z)E)\\b(?!')\n (?:\\s+(INLINE)\\b(?!'))?\n (?:\\s*(\\[ [^\\[\\]]* \\])?)\n \\s*",
1127
- "end": "(?=#-\\})",
1128
- "beginCaptures": {
1129
- "1": {
1130
- "name": "keyword.other.preprocessor.pragma.haskell"
1131
- },
1132
- "2": {
1133
- "name": "keyword.other.preprocessor.pragma.haskell"
1134
- },
1135
- "3": {
1136
- "patterns": [
1137
- {
1138
- "include": "#inline_phase"
1139
- }
1140
- ]
1141
- }
1142
- },
1143
- "patterns": [
1144
- {
1145
- "include": "$self"
1146
- }
1147
- ]
1148
- },
1149
- {
1150
- "match": "(?xi) \\b(?<!')\n (LANGUAGE|OPTIONS_GHC|OPTIONS_HADDOCK|OPTIONS|INCLUDE\n |MINIMAL|UNPACK|OVERLAPS|INCOHERENT\n |NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE\n |NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES\n |COMPLETE)\\b(?!')",
1151
- "name": "keyword.other.preprocessor.haskell"
1152
- },
1153
- {
1154
- "begin": "(?i)\\b(DEPRECATED|WARNING)\\b",
1155
- "beginCaptures": {
1156
- "1": {
1157
- "name": "keyword.other.preprocessor.pragma.haskell"
1158
- }
1159
- },
1160
- "end": "(?=#-\\})",
1161
- "patterns": [
1162
- {
1163
- "include": "#comments"
1164
- },
1165
- {
1166
- "include": "#string_literal"
1167
- }
1168
- ]
1169
- }
1170
- ]
1171
- },
1172
- "liquid_haskell": {
1173
- "name": "block.liquidhaskell.haskell",
1174
- "begin": "\\{-@",
1175
- "end": "@-\\}",
1176
- "patterns": [
1177
- {
1178
- "include": "$self"
1179
- }
1180
- ]
1181
- },
1182
- "data_context": {
1183
- "match": "(?x)\n (.*)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (=>|⇒)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n",
1184
- "captures": {
1185
- "1": {
1186
- "patterns": [
1187
- {
1188
- "include": "#comment_like"
1189
- },
1190
- {
1191
- "include": "#forall"
1192
- },
1193
- {
1194
- "begin": "(?='?\\()",
1195
- "end": "(?=\\))",
1196
- "patterns": [
1197
- {
1198
- "include": "#type_signature"
1199
- }
1200
- ]
1201
- },
1202
- {
1203
- "begin": "(?='?\\[)",
1204
- "end": "(?=\\])",
1205
- "patterns": [
1206
- {
1207
- "include": "#type_signature"
1208
- }
1209
- ]
1210
- },
1211
- {
1212
- "match": "(?x)\n (\\S*)\\s*\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (::|∷|=)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])",
1213
- "captures": {
1214
- "1": {
1215
- "patterns": [
1216
- {
1217
- "include": "#comment_like"
1218
- },
1219
- {
1220
- "include": "#forall"
1221
- },
1222
- {
1223
- "include": "#record_decl_field"
1224
- }
1225
- ]
1226
- },
1227
- "2": {
1228
- "patterns": [
1229
- {
1230
- "include": "#reserved_symbol"
1231
- }
1232
- ]
1233
- },
1234
- "3": {
1235
- "patterns": [
1236
- {
1237
- "include": "#type_signature"
1238
- }
1239
- ]
1240
- }
1241
- }
1242
- },
1243
- {
1244
- "include": "#type_signature"
1245
- }
1246
- ]
1247
- },
1248
- "2": {
1249
- "name": "keyword.operator.big-arrow.haskell"
1250
- }
1251
- }
1252
- },
1253
- "data_constructor": {
1254
- "patterns": [
1255
- {
1256
- "match": "\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?![\\.'\\w])",
1257
- "name": "constant.other.haskell"
1258
- },
1259
- {
1260
- "match": "(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))",
1261
- "name": "constant.other.operator.haskell"
1262
- }
1263
- ]
1264
- },
1265
- "qualifier": {
1266
- "match": "\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.",
1267
- "name": "entity.name.namespace.haskell"
1268
- },
1269
- "record_decl": {
1270
- "begin": "({)(?!-)",
1271
- "beginCaptures": {
1272
- "1": {
1273
- "name": "punctuation.brace.haskell"
1274
- }
1275
- },
1276
- "end": "(?<!-)(})",
1277
- "endCaptures": {
1278
- "1": {
1279
- "name": "punctuation.brace.haskell"
1280
- }
1281
- },
1282
- "name": "meta.record.definition.haskell",
1283
- "patterns": [
1284
- {
1285
- "include": "#comment_like"
1286
- },
1287
- {
1288
- "include": "#record_decl_field"
1289
- }
1290
- ]
1291
- },
1292
- "record": {
1293
- "begin": "({)(?!-)",
1294
- "beginCaptures": {
1295
- "1": {
1296
- "name": "punctuation.brace.haskell"
1297
- }
1298
- },
1299
- "end": "(?<!-)(})",
1300
- "endCaptures": {
1301
- "1": {
1302
- "name": "punctuation.brace.haskell"
1303
- }
1304
- },
1305
- "name": "meta.record.haskell",
1306
- "patterns": [
1307
- {
1308
- "include": "#comment_like"
1309
- },
1310
- {
1311
- "include": "#record_field"
1312
- }
1313
- ]
1314
- },
1315
- "record_decl_field": {
1316
- "begin": "(?x)\n (?:([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n",
1317
- "end": "(,)|(?=})",
1318
- "beginCaptures": {
1319
- "1": {
1320
- "name": "variable.other.member.definition.haskell"
1321
- },
1322
- "2": {
1323
- "name": "punctuation.paren.haskell"
1324
- },
1325
- "3": {
1326
- "name": "variable.other.member.definition.haskell"
1327
- },
1328
- "4": {
1329
- "name": "punctuation.paren.haskell"
1330
- }
1331
- },
1332
- "endCaptures": {
1333
- "1": {
1334
- "name": "punctuation.comma.haskell"
1335
- }
1336
- },
1337
- "patterns": [
1338
- {
1339
- "include": "#comment_like"
1340
- },
1341
- {
1342
- "include": "#comma"
1343
- },
1344
- {
1345
- "include": "#double_colon"
1346
- },
1347
- {
1348
- "include": "#type_signature"
1349
- },
1350
- {
1351
- "include": "#record_decl_field"
1352
- }
1353
- ]
1354
- },
1355
- "record_wildcard": {
1356
- "match": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (\\.\\.)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])",
1357
- "captures": {
1358
- "1": {
1359
- "name": "variable.other.member.wildcard.haskell"
1360
- }
1361
- }
1362
- },
1363
- "record_field": {
1364
- "patterns": [
1365
- {
1366
- "begin": "(?x)\n (?:([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\.']*)\n |(\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n",
1367
- "end": "(,)|(?=})",
1368
- "beginCaptures": {
1369
- "1": {
1370
- "name": "variable.other.member.haskell",
1371
- "patterns": [
1372
- {
1373
- "include": "#qualifier"
1374
- }
1375
- ]
1376
- },
1377
- "2": {
1378
- "name": "punctuation.paren.haskell"
1379
- },
1380
- "3": {
1381
- "name": "variable.other.member.haskell"
1382
- },
1383
- "4": {
1384
- "name": "punctuation.paren.haskell"
1385
- }
1386
- },
1387
- "endCaptures": {
1388
- "1": {
1389
- "name": "punctuation.comma.haskell"
1390
- }
1391
- },
1392
- "patterns": [
1393
- {
1394
- "include": "#comment_like"
1395
- },
1396
- {
1397
- "include": "#comma"
1398
- },
1399
- {
1400
- "include": "$self"
1401
- }
1402
- ]
1403
- },
1404
- {
1405
- "include": "#record_wildcard"
1406
- }
1407
- ]
1408
- },
1409
- "role_annotation": {
1410
- "patterns": [
1411
- {
1412
- "begin": "^(\\s*)(type)\\s+(role)\\b(?!')",
1413
- "beginCaptures": {
1414
- "2": {
1415
- "name": "keyword.other.type.haskell"
1416
- },
1417
- "3": {
1418
- "name": "keyword.other.role.haskell"
1419
- }
1420
- },
1421
- "end": "(?x) # Detect end of block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )",
1422
- "name": "meta.role-annotation.haskell",
1423
- "patterns": [
1424
- {
1425
- "include": "#comment_like"
1426
- },
1427
- {
1428
- "include": "#type_constructor"
1429
- },
1430
- {
1431
- "match": "\\b(?<!')(nominal|representational|phantom)\\b(?!')",
1432
- "captures": {
1433
- "1": {
1434
- "name": "keyword.other.role.$1.haskell"
1435
- }
1436
- }
1437
- }
1438
- ]
1439
- }
1440
- ]
1441
- },
1442
- "fun_decl": {
1443
- "begin": "(?x)^(\\s*)\n (?<fn>\n (?:\n [\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\#*\n | \\(\\s*\n (?!--+\\))\n [\\p{S}\\p{P}&&[^(),:;\\[\\]`{}_\"']]\n [\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*\n \\s*\\)\n )\n (?:\\s*,\\s*\\g<fn>)?\n )\n \\s*(?<![\\p{S}\\p{P}&&[^\\),;\\]`}_\"']])(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])\n",
1444
- "beginCaptures": {
1445
- "2": {
1446
- "name": "entity.name.function.haskell",
1447
- "patterns": [
1448
- {
1449
- "include": "#reserved_symbol"
1450
- },
1451
- {
1452
- "include": "#prefix_op"
1453
- }
1454
- ]
1455
- },
1456
- "3": {
1457
- "name": "keyword.operator.double-colon.haskell"
1458
- }
1459
- },
1460
- "name": "meta.function.type-declaration.haskell",
1461
- "patterns": [
1462
- {
1463
- "include": "#type_signature"
1464
- }
1465
- ],
1466
- "end": "(?x)\n # End of type annotation:\n # To the left of a reserved symbolic keyword such as = or <-\n (?= \n # non-symbolic character\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n # symbolic keyword except (->)\n ((<-|←)|(=)|(-<|↢)|(-<<|⤛))\n # non-symbolic character\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n )\n # Decreasing indentation:\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n"
1467
- },
1468
- "adt_constructor": {
1469
- "patterns": [
1470
- {
1471
- "include": "#comment_like"
1472
- },
1473
- {
1474
- "begin": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:(=)|(\\|))\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol",
1475
- "beginCaptures": {
1476
- "1": {
1477
- "name": "keyword.operator.eq.haskell"
1478
- },
1479
- "2": {
1480
- "name": "keyword.operator.pipe.haskell"
1481
- }
1482
- },
1483
- "end": "(?x)\n (?: # Infix data constructor\n # First argument\n (?:\n # Simple type\n (?<!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)\n # Type inside balanced parentheses\n | ('? # Optional promotion tick\n (?<paren>\n \\( # Opening parenthesis\n (?:\n [^\\(\\)]* # Match non-parentheses\n | \\g<paren> # or recurse into further depth\n )*\n \\) # Closing parenthesis\n )\n )\n # Type inside balanced brackets\n | ('? # Optional promotion tick\n (?<brac>\n \\[ # Opening bracket\n (?:\n [^\\[\\]]* # Match non-brackets\n | \\g<brac> # or recurse into further depth\n )*\n \\] # Closing bracket\n )\n )\n )\n # Then either\n \\s*\n # - a symbolic infix constructor, or\n (?:(?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\n # - an alphabetic infix constructor\n | (`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`)\n )\n ) # Otherwise, prefix data constructor, either:\n | # - an alphabetic data constructor e.g. \"Cons_123\"\n (?:(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))\n | # - a symbolic (prefix) data constructor\n (\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n | # Otherwise, try to fail early to avoid excessive backtracking (https://github.com/JustusAdam/language-haskell/issues/161)\n # Fail when detecting a lowercase identifier and then something not starting with a tick or colon\n (?=\\b(?<!')(?!(?:forall|deriving)\\s)[\\p{Ll}_]\\S+\\s+[^`:])\n # Fail when seeing another equal signs or pipe symbol\n |(?=\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|\\|)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )",
1484
- "endCaptures": {
1485
- "1": {
1486
- "patterns": [
1487
- {
1488
- "include": "#type_signature"
1489
- }
1490
- ]
1491
- },
1492
- "2": {
1493
- "patterns": [
1494
- {
1495
- "include": "#type_signature"
1496
- }
1497
- ]
1498
- },
1499
- "4": {
1500
- "patterns": [
1501
- {
1502
- "include": "#type_signature"
1503
- }
1504
- ]
1505
- },
1506
- "6": {
1507
- "name": "constant.other.operator.infix.haskell"
1508
- },
1509
- "7": {
1510
- "name": "punctuation.backtick.haskell"
1511
- },
1512
- "8": {
1513
- "name": "constant.other.infix.haskell"
1514
- },
1515
- "9": {
1516
- "name": "punctuation.backtick.haskell"
1517
- },
1518
- "10": {
1519
- "name": "constant.other.haskell"
1520
- },
1521
- "11": {
1522
- "name": "punctuation.paren.haskell"
1523
- },
1524
- "12": {
1525
- "name": "constant.other.operator.prefix.haskell"
1526
- },
1527
- "13": {
1528
- "name": "punctuation.paren.haskell"
1529
- }
1530
- },
1531
- "patterns": [
1532
- {
1533
- "include": "#comment_like"
1534
- },
1535
- {
1536
- "include": "#deriving"
1537
- },
1538
- {
1539
- "include": "#record_decl"
1540
- },
1541
- {
1542
- "include": "#forall"
1543
- },
1544
- {
1545
- "include": "#data_context"
1546
- },
1547
- {
1548
- "include": "#type_signature"
1549
- }
1550
- ]
1551
- }
1552
- ]
1553
- },
1554
- "gadt_constructor": {
1555
- "patterns": [
1556
- {
1557
- "begin": "(?x)\n ^(\\s*)\n (?:\n (\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n )",
1558
- "beginCaptures": {
1559
- "2": {
1560
- "name": "constant.other.haskell"
1561
- },
1562
- "3": {
1563
- "name": "punctuation.paren.haskell"
1564
- },
1565
- "4": {
1566
- "name": "constant.other.operator.prefix.haskell"
1567
- },
1568
- "5": {
1569
- "name": "punctuation.paren.haskell"
1570
- }
1571
- },
1572
- "end": "(?x)\n # GADT constructor ends\n (?=\\b(?<!'')deriving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
1573
- "patterns": [
1574
- {
1575
- "include": "#comment_like"
1576
- },
1577
- {
1578
- "include": "#deriving"
1579
- },
1580
- {
1581
- "include": "#double_colon"
1582
- },
1583
- {
1584
- "include": "#record_decl"
1585
- },
1586
- {
1587
- "include": "#type_signature"
1588
- }
1589
- ]
1590
- },
1591
- {
1592
- "begin": "(?x)\n (\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}]*) # named constructor\n |(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\)) # prefix operator",
1593
- "beginCaptures": {
1594
- "1": {
1595
- "name": "constant.other.haskell"
1596
- },
1597
- "2": {
1598
- "name": "punctuation.paren.haskell"
1599
- },
1600
- "3": {
1601
- "name": "constant.other.operator.prefix.haskell"
1602
- },
1603
- "4": {
1604
- "name": "punctuation.paren.haskell"
1605
- }
1606
- },
1607
- "end": "(?=;|\\}|$)",
1608
- "patterns": [
1609
- {
1610
- "include": "#comment_like"
1611
- },
1612
- {
1613
- "include": "#deriving"
1614
- },
1615
- {
1616
- "include": "#double_colon"
1617
- },
1618
- {
1619
- "include": "#record_decl"
1620
- },
1621
- {
1622
- "include": "#type_signature"
1623
- }
1624
- ]
1625
- }
1626
- ]
1627
- },
1628
- "type_application": {
1629
- "patterns": [
1630
- {
1631
- "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(')?(\\()",
1632
- "beginCaptures": {
1633
- "1": {
1634
- "name": "keyword.operator.prefix.at.haskell"
1635
- },
1636
- "2": {
1637
- "name": "keyword.operator.promotion.haskell"
1638
- },
1639
- "3": {
1640
- "name": "punctuation.paren.haskell"
1641
- }
1642
- },
1643
- "end": "\\)",
1644
- "endCaptures": {
1645
- "0": {
1646
- "name": "punctuation.paren.haskell"
1647
- }
1648
- },
1649
- "name": "meta.type-application.haskell",
1650
- "patterns": [
1651
- {
1652
- "include": "#type_signature"
1653
- }
1654
- ]
1655
- },
1656
- {
1657
- "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(')?(\\[)",
1658
- "beginCaptures": {
1659
- "1": {
1660
- "name": "keyword.operator.prefix.at.haskell"
1661
- },
1662
- "2": {
1663
- "name": "keyword.operator.promotion.haskell"
1664
- },
1665
- "3": {
1666
- "name": "punctuation.bracket.haskell"
1667
- }
1668
- },
1669
- "end": "\\]",
1670
- "name": "meta.type-application.haskell",
1671
- "endCaptures": {
1672
- "0": {
1673
- "name": "punctuation.bracket.haskell"
1674
- }
1675
- },
1676
- "patterns": [
1677
- {
1678
- "include": "#type_signature"
1679
- }
1680
- ]
1681
- },
1682
- {
1683
- "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(?=\\\")",
1684
- "beginCaptures": {
1685
- "1": {
1686
- "name": "keyword.operator.prefix.at.haskell"
1687
- }
1688
- },
1689
- "end": "(?<=\\\")",
1690
- "name": "meta.type-application.haskell",
1691
- "patterns": [
1692
- {
1693
- "include": "#string_literal"
1694
- }
1695
- ]
1696
- },
1697
- {
1698
- "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])",
1699
- "beginCaptures": {
1700
- "1": {
1701
- "name": "keyword.operator.prefix.at.haskell"
1702
- }
1703
- },
1704
- "end": "(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])",
1705
- "name": "meta.type-application.haskell",
1706
- "patterns": [
1707
- {
1708
- "include": "#type_signature"
1709
- }
1710
- ]
1711
- }
1712
- ]
1713
- },
1714
- "type_signature": {
1715
- "patterns": [
1716
- {
1717
- "include": "#comment_like"
1718
- },
1719
- {
1720
- "match": "(')?(\\()\\s*(\\))",
1721
- "captures": {
1722
- "1": {
1723
- "name": "keyword.operator.promotion.haskell"
1724
- },
1725
- "2": {
1726
- "name": "punctuation.paren.haskell"
1727
- },
1728
- "3": {
1729
- "name": "punctuation.paren.haskell"
1730
- }
1731
- },
1732
- "name": "support.constant.unit.haskell"
1733
- },
1734
- {
1735
- "match": "(\\()(#)\\s*(#)(\\))",
1736
- "name": "support.constant.unit.unboxed.haskell",
1737
- "captures": {
1738
- "1": {
1739
- "name": "punctuation.paren.haskell"
1740
- },
1741
- "2": {
1742
- "name": "keyword.operator.hash.haskell"
1743
- },
1744
- "3": {
1745
- "name": "keyword.operator.hash.haskell"
1746
- },
1747
- "4": {
1748
- "name": "punctuation.paren.haskell"
1749
- }
1750
- }
1751
- },
1752
- {
1753
- "match": "(')?(\\()\\s*,[\\s,]*(\\))",
1754
- "captures": {
1755
- "1": {
1756
- "name": "keyword.operator.promotion.haskell"
1757
- },
1758
- "2": {
1759
- "name": "punctuation.paren.haskell"
1760
- },
1761
- "3": {
1762
- "name": "punctuation.paren.haskell"
1763
- }
1764
- },
1765
- "name": "support.constant.tuple.haskell"
1766
- },
1767
- {
1768
- "match": "(\\()(#)\\s*(#)(\\))",
1769
- "name": "support.constant.unit.unboxed.haskell",
1770
- "captures": {
1771
- "1": {
1772
- "name": "punctuation.paren.haskell"
1773
- },
1774
- "2": {
1775
- "name": "keyword.operator.hash.haskell"
1776
- },
1777
- "3": {
1778
- "name": "keyword.operator.hash.haskell"
1779
- },
1780
- "4": {
1781
- "name": "punctuation.paren.haskell"
1782
- }
1783
- }
1784
- },
1785
- {
1786
- "match": "(\\()(#)\\s*,[\\s,]*(#)(\\))",
1787
- "captures": {
1788
- "1": {
1789
- "name": "punctuation.paren.haskell"
1790
- },
1791
- "2": {
1792
- "name": "keyword.operator.hash.haskell"
1793
- },
1794
- "3": {
1795
- "name": "keyword.operator.hash.haskell"
1796
- },
1797
- "4": {
1798
- "name": "punctuation.paren.haskell"
1799
- }
1800
- },
1801
- "name": "support.constant.tuple.unboxed.haskell"
1802
- },
1803
- {
1804
- "match": "(')?(\\[)\\s*(\\])",
1805
- "captures": {
1806
- "1": {
1807
- "name": "keyword.operator.promotion.haskell"
1808
- },
1809
- "2": {
1810
- "name": "punctuation.bracket.haskell"
1811
- },
1812
- "3": {
1813
- "name": "punctuation.bracket.haskell"
1814
- }
1815
- },
1816
- "name": "support.constant.empty-list.haskell"
1817
- },
1818
- {
1819
- "include": "#integer_literals"
1820
- },
1821
- {
1822
- "match": "(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])",
1823
- "name": "keyword.operator.double-colon.haskell"
1824
- },
1825
- {
1826
- "include": "#forall"
1827
- },
1828
- {
1829
- "match": "=>|⇒",
1830
- "name": "keyword.operator.big-arrow.haskell"
1831
- },
1832
- {
1833
- "include": "#string_literal"
1834
- },
1835
- {
1836
- "match": "'[^']'",
1837
- "name": "invalid"
1838
- },
1839
- {
1840
- "include": "#type_application"
1841
- },
1842
- {
1843
- "include": "#reserved_symbol"
1844
- },
1845
- {
1846
- "include": "#type_operator"
1847
- },
1848
- {
1849
- "include": "#type_constructor"
1850
- },
1851
- {
1852
- "begin": "(\\()(#)",
1853
- "end": "(#)(\\))",
1854
- "beginCaptures": {
1855
- "1": {
1856
- "name": "punctuation.paren.haskell"
1857
- },
1858
- "2": {
1859
- "name": "keyword.operator.hash.haskell"
1860
- }
1861
- },
1862
- "endCaptures": {
1863
- "1": {
1864
- "name": "keyword.operator.hash.haskell"
1865
- },
1866
- "2": {
1867
- "name": "punctuation.paren.haskell"
1868
- }
1869
- },
1870
- "patterns": [
1871
- {
1872
- "include": "#comma"
1873
- },
1874
- {
1875
- "include": "#type_signature"
1876
- }
1877
- ]
1878
- },
1879
- {
1880
- "begin": "(')?(\\()",
1881
- "end": "(\\))",
1882
- "beginCaptures": {
1883
- "1": {
1884
- "name": "keyword.operator.promotion.haskell"
1885
- },
1886
- "2": {
1887
- "name": "punctuation.paren.haskell"
1888
- }
1889
- },
1890
- "endCaptures": {
1891
- "1": {
1892
- "name": "punctuation.paren.haskell"
1893
- }
1894
- },
1895
- "patterns": [
1896
- {
1897
- "include": "#comma"
1898
- },
1899
- {
1900
- "include": "#type_signature"
1901
- }
1902
- ]
1903
- },
1904
- {
1905
- "begin": "(')?(\\[)",
1906
- "end": "(\\])",
1907
- "beginCaptures": {
1908
- "1": {
1909
- "name": "keyword.operator.promotion.haskell"
1910
- },
1911
- "2": {
1912
- "name": "punctuation.bracket.haskell"
1913
- }
1914
- },
1915
- "endCaptures": {
1916
- "1": {
1917
- "name": "punctuation.bracket.haskell"
1918
- }
1919
- },
1920
- "patterns": [
1921
- {
1922
- "include": "#comma"
1923
- },
1924
- {
1925
- "include": "#type_signature"
1926
- }
1927
- ]
1928
- },
1929
- {
1930
- "include": "#type_variable"
1931
- }
1932
- ]
1933
- },
1934
- "double_colon": {
1935
- "match": "\\s*(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\\s*",
1936
- "captures": {
1937
- "1": {
1938
- "name": "keyword.operator.double-colon.haskell"
1939
- }
1940
- }
1941
- },
1942
- "start_type_signature": {
1943
- "patterns": [
1944
- {
1945
- "begin": "^(\\s*)(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])\\s*",
1946
- "beginCaptures": {
1947
- "2": {
1948
- "name": "keyword.operator.double-colon.haskell"
1949
- }
1950
- },
1951
- "end": "(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |(?<!')\\b(in|then|else|of)\\b(?!') # keyword\n | # symbolic keyword except (->)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(<-|←)\n |(=)\n |(-<|↢)\n |(-<<|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n |(\\#|@)-\\} # End of annotation block (LiquidHaskell or pragma)\n # Decreasing indentation:\n | (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s*\\S # - equally indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n )",
1952
- "patterns": [
1953
- {
1954
- "include": "#type_signature"
1955
- }
1956
- ],
1957
- "name": "meta.type-declaration.haskell"
1958
- },
1959
- {
1960
- "begin": "(?<![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])",
1961
- "beginCaptures": {
1962
- "1": {
1963
- "name": "keyword.operator.double-colon.haskell"
1964
- }
1965
- },
1966
- "end": "(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |\\b(?<!')(in|then|else|of)\\b(?!') # keyword\n |(\\#|@)-\\} # End of annotation block (LiquidHaskell or pragma)\n | # symbolic keyword except (->)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(<-|←)\n |(=)\n |(-<|↢)\n |(-<<|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n # Indentation \n |(?=\\}|;) # Explicit indentation\n |$ # End of line\n )",
1967
- "patterns": [
1968
- {
1969
- "include": "#type_signature"
1970
- }
1971
- ]
1972
- }
1973
- ]
1974
- },
1975
- "type_variable": {
1976
- "match": "\\b(?<!')(?!(?:forall|deriving)\\b(?!'))[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",
1977
- "name": "variable.other.generic-type.haskell"
1978
- },
1979
- "type_constructor": {
1980
- "patterns": [
1981
- {
1982
- "match": "(?x)\n # Optional promotion tick\n (')?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n (\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",
1983
- "captures": {
1984
- "1": {
1985
- "name": "keyword.operator.promotion.haskell"
1986
- },
1987
- "2": {
1988
- "name": "entity.name.namespace.haskell"
1989
- },
1990
- "3": {
1991
- "name": "storage.type.haskell"
1992
- }
1993
- }
1994
- },
1995
- {
1996
- "match": "(?x)\n # Optional promotion tick\n (')?\n # Opening parenthesis\n (\\()\\s*\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n ([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\n # Closing parenthesis\n \\s*(\\))",
1997
- "captures": {
1998
- "1": {
1999
- "name": "keyword.operator.promotion.haskell"
2000
- },
2001
- "2": {
2002
- "name": "punctuation.paren.haskell"
2003
- },
2004
- "3": {
2005
- "name": "entity.name.namespace.haskell"
2006
- },
2007
- "4": {
2008
- "name": "storage.type.operator.haskell"
2009
- },
2010
- "5": {
2011
- "name": "punctuation.paren.haskell"
2012
- }
2013
- }
2014
- }
2015
- ]
2016
- },
2017
- "overloaded_label": {
2018
- "patterns": [
2019
- {
2020
- "match": "(?x) \n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^(,;\\[`{]]) # Disallow closing characters\n (\\#)\n (?:\n # String\n (\"(?:\\\\\"|[^\"])*\")\n # Sequence of allowed label identifiers\n |[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+\n )",
2021
- "captures": {
2022
- "1": {
2023
- "name": "keyword.operator.prefix.hash.haskell"
2024
- },
2025
- "2": {
2026
- "patterns": [
2027
- {
2028
- "include": "#string_literal"
2029
- }
2030
- ]
2031
- }
2032
- },
2033
- "name": "entity.name.label.haskell"
2034
- }
2035
- ]
2036
- },
2037
- "reserved_symbol": {
2038
- "patterns": [
2039
- {
2040
- "match": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])\n (?:\n (\\.\\.)\n |(:)\n |(=)\n |(\\\\) # λ not reserved as it is a letter\n |(\\|)\n |(<-|←)\n |(->|→)\n |(-<|↢)\n |(-<<|⤛)\n |(>-|⤚)\n |(>>-|⤜)\n )\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])",
2041
- "captures": {
2042
- "1": {
2043
- "name": "keyword.operator.double-dot.haskell"
2044
- },
2045
- "2": {
2046
- "name": "keyword.operator.colon.haskell"
2047
- },
2048
- "3": {
2049
- "name": "keyword.operator.eq.haskell"
2050
- },
2051
- "4": {
2052
- "name": "keyword.operator.lambda.haskell"
2053
- },
2054
- "5": {
2055
- "name": "keyword.operator.pipe.haskell"
2056
- },
2057
- "6": {
2058
- "name": "keyword.operator.arrow.left.haskell"
2059
- },
2060
- "7": {
2061
- "name": "keyword.operator.arrow.haskell"
2062
- },
2063
- "8": {
2064
- "name": "keyword.operator.arrow.left.tail.haskell"
2065
- },
2066
- "9": {
2067
- "name": "keyword.operator.arrow.left.tail.double.haskell"
2068
- },
2069
- "10": {
2070
- "name": "keyword.operator.arrow.tail.haskell"
2071
- },
2072
- "11": {
2073
- "name": "keyword.operator.arrow.tail.double.haskell"
2074
- }
2075
- }
2076
- },
2077
- {
2078
- "match": "(?x)\n (?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^\\#,;\\[`{]]) # Require closing characters\n (\\#+)\n (?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^),;\\]`}]]) # Disallow opening character",
2079
- "captures": {
2080
- "1": {
2081
- "name": "keyword.operator.postfix.hash.haskell"
2082
- }
2083
- }
2084
- },
2085
- {
2086
- "match": "(?x)\n (?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\)\\}\\]]) # Require closing characters\n (@)\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\(\\[\\{]) # Require opening character",
2087
- "captures": {
2088
- "1": {
2089
- "name": "keyword.operator.infix.tight.at.haskell"
2090
- }
2091
- }
2092
- },
2093
- {
2094
- "match": "(?x)\n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^(,;\\[`{]]) # Disallow closing characters\n (?:(~)|(!)|(-)|(\\$\\$)|(\\$)|(%))\n (?=[\\p{Ll}_'\\p{Lu}\\p{Lt}\\p{Nd}\\(\\{\\[]) # Require opening character (non operator symbol)",
2095
- "captures": {
2096
- "1": {
2097
- "name": "keyword.operator.prefix.tilde.haskell"
2098
- },
2099
- "2": {
2100
- "name": "keyword.operator.prefix.bang.haskell"
2101
- },
2102
- "3": {
2103
- "name": "keyword.operator.prefix.minus.haskell"
2104
- },
2105
- "4": {
2106
- "name": "keyword.operator.prefix.double-dollar.haskell"
2107
- },
2108
- "5": {
2109
- "name": "keyword.operator.prefix.dollar.haskell"
2110
- },
2111
- "6": {
2112
- "name": "keyword.operator.prefix.modifier.haskell"
2113
- }
2114
- }
2115
- }
2116
- ]
2117
- },
2118
- "type_operator": {
2119
- "patterns": [
2120
- {
2121
- "match": "(?x)\n # Optional promotion tick\n (?:(?<!')('))?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n (?![#@]?-})(\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))\n #((?:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']&&[^#@]]|[@#](?!-}))+)",
2122
- "captures": {
2123
- "1": {
2124
- "name": "keyword.operator.promotion.haskell"
2125
- },
2126
- "2": {
2127
- "name": "entity.name.namespace.haskell"
2128
- },
2129
- "3": {
2130
- "name": "storage.type.operator.infix.haskell"
2131
- }
2132
- }
2133
- },
2134
- {
2135
- "match": "(?x)\n # Optional promotion tick\n (')?\n # Opening backtick\n (\\`)\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Closing backtick\n (`)",
2136
- "captures": {
2137
- "1": {
2138
- "name": "keyword.operator.promotion.haskell"
2139
- },
2140
- "2": {
2141
- "name": "punctuation.backtick.haskell"
2142
- },
2143
- "3": {
2144
- "name": "entity.name.namespace.haskell"
2145
- },
2146
- "4": {
2147
- "name": "storage.type.infix.haskell"
2148
- },
2149
- "5": {
2150
- "name": "punctuation.backtick.haskell"
2151
- }
2152
- }
2153
- }
2154
- ]
2155
- },
2156
- "forall": {
2157
- "begin": "(?x)\n # Alphabetic forall\n (?:\n \\b(?<!')\n (forall)\n \\b(?!')\n )\n |\n # Symbolic forall\n (?:\n # Not preceded by a symbol except reserved symbols\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])\n (∀)\n # Not followed by a symbol except reserved symbols\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])\n )",
2158
- "end": "(\\.)|(->|→)",
2159
- "beginCaptures": {
2160
- "1": {
2161
- "name": "keyword.other.forall.haskell"
2162
- },
2163
- "2": {
2164
- "name": "keyword.other.forall.haskell"
2165
- }
2166
- },
2167
- "endCaptures": {
2168
- "1": {
2169
- "name": "keyword.operator.period.haskell"
2170
- },
2171
- "2": {
2172
- "name": "keyword.operator.arrow.haskell"
2173
- }
2174
- },
2175
- "patterns": [
2176
- {
2177
- "include": "#comment_like"
2178
- },
2179
- {
2180
- "include": "#type_variable"
2181
- },
2182
- {
2183
- "include": "#type_signature"
2184
- }
2185
- ]
2186
- },
2187
- "string_literal": {
2188
- "begin": "\"",
2189
- "beginCaptures": {
2190
- "0": {
2191
- "name": "punctuation.definition.string.begin.haskell"
2192
- }
2193
- },
2194
- "end": "\"",
2195
- "endCaptures": {
2196
- "0": {
2197
- "name": "punctuation.definition.string.end.haskell"
2198
- }
2199
- },
2200
- "name": "string.quoted.double.haskell",
2201
- "patterns": [
2202
- {
2203
- "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])",
2204
- "name": "constant.character.escape.haskell"
2205
- },
2206
- {
2207
- "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+",
2208
- "name": "constant.character.escape.octal.haskell"
2209
- },
2210
- {
2211
- "match": "\\\\\\^[A-Z@\\[\\]\\\\\\^_]",
2212
- "name": "constant.character.escape.control.haskell"
2213
- },
2214
- {
2215
- "begin": "\\\\\\s",
2216
- "beginCaptures": {
2217
- "0": {
2218
- "name": "constant.character.escape.begin.haskell"
2219
- }
2220
- },
2221
- "end": "\\\\",
2222
- "endCaptures": {
2223
- "0": {
2224
- "name": "constant.character.escape.end.haskell"
2225
- }
2226
- },
2227
- "patterns": [
2228
- {
2229
- "match": "\\S+",
2230
- "name": "invalid.illegal.character-not-allowed-here.haskell"
2231
- }
2232
- ]
2233
- }
2234
- ]
2235
- },
2236
- "char_literal": {
2237
- "captures": {
2238
- "1": {
2239
- "name": "punctuation.definition.string.begin.haskell"
2240
- },
2241
- "2": {
2242
- "name": "constant.character.escape.haskell"
2243
- },
2244
- "3": {
2245
- "name": "constant.character.escape.octal.haskell"
2246
- },
2247
- "4": {
2248
- "name": "constant.character.escape.hexadecimal.haskell"
2249
- },
2250
- "5": {
2251
- "name": "constant.character.escape.control.haskell"
2252
- },
2253
- "6": {
2254
- "name": "punctuation.definition.string.end.haskell"
2255
- }
2256
- },
2257
- "match": "(?x)\n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])\n (')\n (?:\n [\\ -\\[\\]-~] # Basic Char\n | (\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE\n |DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS\n |US|SP|DEL|[abfnrtv\\\\\\\"'\\\\&])) # Escapes\n | (\\\\o[0-7]+) # Octal Escapes\n | (\\\\x[0-9A-Fa-f]+) # Hexadecimal Escapes\n | (\\\\\\^[A-Z@\\[\\]\\\\\\^_]) # Control Chars\n )\n (')\n",
2258
- "name": "string.quoted.single.haskell"
2259
- },
2260
- "float_literals": {
2261
- "comment": "Floats are decimal or hexadecimal",
2262
- "match": "(?x)\n \\b(?<!')\n (?: # Decimal\n ([0-9][_0-9]*\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?\n |[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*\n )\n | # Hexadecimal\n (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?\n |0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*\n )\n )\\b(?!')",
2263
- "captures": {
2264
- "1": {
2265
- "name": "constant.numeric.floating.decimal.haskell"
2266
- },
2267
- "2": {
2268
- "name": "constant.numeric.floating.hexadecimal.haskell"
2269
- }
2270
- }
2271
- },
2272
- "integer_literals": {
2273
- "match": "(?x)\n \\b(?<!')\n (?:\n ([0-9][_0-9]*) # Decimal integer\n | (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*) # Hexadecimal integer\n | (0[oO]_*[0-7][_0-7]*) # Octal integer\n | (0[bB]_*[01][_01]*) # Binary integer\n )\n \\b(?!')",
2274
- "captures": {
2275
- "1": {
2276
- "name": "constant.numeric.integral.decimal.haskell"
2277
- },
2278
- "2": {
2279
- "name": "constant.numeric.integral.hexadecimal.haskell"
2280
- },
2281
- "3": {
2282
- "name": "constant.numeric.integral.octal.haskell"
2283
- },
2284
- "4": {
2285
- "name": "constant.numeric.integral.binary.haskell"
2286
- }
2287
- }
2288
- },
2289
- "numeric_literals": {
2290
- "patterns": [
2291
- {
2292
- "include": "#float_literals"
2293
- },
2294
- {
2295
- "include": "#integer_literals"
2296
- }
2297
- ]
2298
- },
2299
- "ffi": {
2300
- "begin": "^(\\s*)(foreign)\\s+(import|export)\\s+",
2301
- "beginCaptures": {
2302
- "2": {
2303
- "name": "keyword.other.foreign.haskell"
2304
- },
2305
- "3": {
2306
- "name": "keyword.other.$3.haskell"
2307
- }
2308
- },
2309
- "name": "meta.$3.foreign.haskell",
2310
- "end": "(?x) # Detect end of FFI block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n",
2311
- "patterns": [
2312
- {
2313
- "include": "#comment_like"
2314
- },
2315
- {
2316
- "match": "\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\s+",
2317
- "captures": {
2318
- "1": {
2319
- "name": "keyword.other.calling-convention.$1.haskell"
2320
- }
2321
- }
2322
- },
2323
- {
2324
- "begin": "(?=\")|(?=\\b(?<!')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))",
2325
- "end": "(?=(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))",
2326
- "patterns": [
2327
- {
2328
- "include": "#comment_like"
2329
- },
2330
- {
2331
- "match": "(?x)\n \\b(?<!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*\n (?:\n (?:\\b(?<!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:\\(\\s*(?!--+\\))([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*\\))\n )\n",
2332
- "captures": {
2333
- "1": {
2334
- "name": "keyword.other.safety.$1.haskell"
2335
- },
2336
- "2": {
2337
- "name": "entity.name.foreign.haskell",
2338
- "patterns": [
2339
- {
2340
- "include": "#string_literal"
2341
- }
2342
- ]
2343
- },
2344
- "3": {
2345
- "name": "entity.name.function.haskell"
2346
- },
2347
- "4": {
2348
- "name": "entity.name.function.infix.haskell"
2349
- }
2350
- }
2351
- },
2352
- {
2353
- "match": "(?x)\n \\b(?<!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*$\n",
2354
- "captures": {
2355
- "1": {
2356
- "name": "keyword.other.safety.$1.haskell"
2357
- },
2358
- "2": {
2359
- "name": "entity.name.foreign.haskell",
2360
- "patterns": [
2361
- {
2362
- "include": "#string_literal"
2363
- }
2364
- ]
2365
- }
2366
- }
2367
- },
2368
- {
2369
- "match": "(?x)\n \"(?:\\\\\"|[^\"])*\"",
2370
- "captures": {
2371
- "0": {
2372
- "name": "entity.name.foreign.haskell",
2373
- "patterns": [
2374
- {
2375
- "include": "#string_literal"
2376
- }
2377
- ]
2378
- }
2379
- }
2380
- },
2381
- {
2382
- "match": "(?x)\n (?:\\b(?<!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:(\\()\\s*(?!--+\\))([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\)))\n",
2383
- "captures": {
2384
- "1": {
2385
- "name": "entity.name.function.haskell"
2386
- },
2387
- "2": {
2388
- "name": "punctuation.paren.haskell"
2389
- },
2390
- "3": {
2391
- "name": "entity.name.function.infix.haskell"
2392
- },
2393
- "4": {
2394
- "name": "punctuation.paren.haskell"
2395
- }
2396
- }
2397
- }
2398
- ]
2399
- },
2400
- {
2401
- "include": "#double_colon"
2402
- },
2403
- {
2404
- "include": "#type_signature"
2405
- }
2406
- ]
2407
- },
2408
- "inline_phase": {
2409
- "begin": "\\[",
2410
- "beginCaptures": {
2411
- "0": {
2412
- "name": "punctuation.bracket.haskell"
2413
- }
2414
- },
2415
- "end": "\\]",
2416
- "endCaptures": {
2417
- "0": {
2418
- "name": "punctuation.bracket.haskell"
2419
- }
2420
- },
2421
- "name": "meta.inlining-phase.haskell",
2422
- "patterns": [
2423
- {
2424
- "match": "~",
2425
- "name": "punctuation.tilde.haskell"
2426
- },
2427
- {
2428
- "include": "#integer_literals"
2429
- },
2430
- {
2431
- "match": "\\w*",
2432
- "name": "invalid"
2433
- }
2434
- ]
2435
- },
2436
- "quasi_quote": {
2437
- "patterns": [
2438
- {
2439
- "begin": "(?x)\n (\\[)\n (e|d|p)?\n (\\|(?:\\|(?!\\]))?)",
2440
- "beginCaptures": {
2441
- "1": {
2442
- "name": "keyword.operator.quasi-quotation.begin.haskell"
2443
- },
2444
- "2": {
2445
- "name": "entity.name.quasi-quoter.haskell"
2446
- },
2447
- "3": {
2448
- "name": "keyword.operator.quasi-quotation.begin.haskell"
2449
- }
2450
- },
2451
- "end": "\\3\\]",
2452
- "endCaptures": {
2453
- "0": {
2454
- "name": "keyword.operator.quasi-quotation.end.haskell"
2455
- }
2456
- },
2457
- "name": "meta.quasi-quotation.haskell",
2458
- "patterns": [
2459
- {
2460
- "include": "$self"
2461
- }
2462
- ]
2463
- },
2464
- {
2465
- "begin": "(?x)\n (\\[)\n (t)\n (\\|(?:\\|(?!\\]))?)",
2466
- "beginCaptures": {
2467
- "1": {
2468
- "name": "keyword.operator.quasi-quotation.begin.haskell"
2469
- },
2470
- "2": {
2471
- "name": "entity.name.quasi-quoter.haskell"
2472
- },
2473
- "3": {
2474
- "name": "keyword.operator.quasi-quotation.begin.haskell"
2475
- }
2476
- },
2477
- "end": "\\3\\]",
2478
- "endCaptures": {
2479
- "0": {
2480
- "name": "keyword.operator.quasi-quotation.end.haskell"
2481
- }
2482
- },
2483
- "name": "meta.quasi-quotation.haskell",
2484
- "patterns": [
2485
- {
2486
- "include": "#type_signature"
2487
- }
2488
- ]
2489
- },
2490
- {
2491
- "begin": "(?x)\n (\\[)\n (?:(\\$\\$)|(\\$))?\n (?!'\\|') # Don't parse ['|'...] as a quasi quotation\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*) # Optional qualifier\n ((?:[^\\s\\p{S}\\p{P}]|['_])*) # Quasi-quoter\n (\\|)",
2492
- "beginCaptures": {
2493
- "1": {
2494
- "name": "keyword.operator.quasi-quotation.begin.haskell"
2495
- },
2496
- "2": {
2497
- "name": "keyword.operator.prefix.double-dollar.haskell"
2498
- },
2499
- "3": {
2500
- "name": "keyword.operator.prefix.dollar.haskell"
2501
- },
2502
- "4": {
2503
- "name": "entity.name.namespace.haskell"
2504
- },
2505
- "5": {
2506
- "name": "entity.name.quasi-quoter.haskell"
2507
- },
2508
- "6": {
2509
- "name": "keyword.operator.quasi-quotation.begin.haskell"
2510
- }
2511
- },
2512
- "end": "\\|\\]",
2513
- "endCaptures": {
2514
- "0": {
2515
- "name": "keyword.operator.quasi-quotation.end.haskell"
2516
- }
2517
- },
2518
- "name": "meta.quasi-quotation.haskell meta.embedded.block.$5"
2519
- }
2520
- ]
2521
- }
2522
- },
2523
- "scopeName": "source.haskell",
2524
- "uuid": "5C034675-1F6D-497E-8073-369D37E2FD7D"
2525
- }