@codingame/monaco-editor-wrapper 4.0.0-next.3 → 4.0.1

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 (563) hide show
  1. package/README.md +0 -26
  2. package/dist/_virtual/_commonjsHelpers.js +1 -4
  3. package/dist/_virtual/_monaco-editor.js +1 -1
  4. package/dist/assets/Angular.ng-template-17.1.0.vsix/expression.json +834 -0
  5. package/dist/assets/Angular.ng-template-17.1.0.vsix/inline-styles.json +98 -0
  6. package/dist/assets/Angular.ng-template-17.1.0.vsix/inline-template.json +76 -0
  7. package/dist/assets/Angular.ng-template-17.1.0.vsix/package.json +260 -0
  8. package/dist/assets/Angular.ng-template-17.1.0.vsix/template-blocks.json +83 -0
  9. package/dist/assets/Angular.ng-template-17.1.0.vsix/template.json +195 -0
  10. package/dist/assets/Dart-Code.dart-code-3.81.20240117.vsix/dart-language-configuration.json +29 -0
  11. package/dist/assets/Dart-Code.dart-code-3.81.20240117.vsix/dart.json +526 -0
  12. package/dist/assets/Dart-Code.dart-code-3.81.20240117.vsix/flutter_activity_bar.svg +14 -0
  13. package/dist/assets/Dart-Code.dart-code-3.81.20240117.vsix/package.json +3094 -0
  14. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/codeblock.json +81 -0
  15. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/language-configuration.json +57 -0
  16. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/package.json +279 -0
  17. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/systemverilog.json +349 -0
  18. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/systemverilog.tmLanguage.json +1246 -0
  19. package/dist/assets/IMCTradingBV.svlangserver-0.4.1.vsix/tasks.schema.json +30 -0
  20. package/dist/assets/JakeBecker.elixir-ls-0.19.0.vsix/eex-language-configuration.json +58 -0
  21. package/dist/assets/JakeBecker.elixir-ls-0.19.0.vsix/eex.json +41 -0
  22. package/dist/assets/JakeBecker.elixir-ls-0.19.0.vsix/elixir-language-configuration.json +182 -0
  23. package/dist/assets/JakeBecker.elixir-ls-0.19.0.vsix/elixir.json +2698 -0
  24. package/dist/assets/JakeBecker.elixir-ls-0.19.0.vsix/html-eex.json +25 -0
  25. package/dist/assets/JakeBecker.elixir-ls-0.19.0.vsix/package.json +623 -0
  26. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/package.json +569 -0
  27. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity.configuration.json +32 -0
  28. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity.json +1215 -0
  29. package/dist/assets/JuanBlanco.solidity-0.0.165.vsix/solidity2.json +213 -0
  30. package/dist/assets/REditorSupport.r-2.8.2.vsix/Markdown Redcarpet.json +146 -0
  31. package/dist/assets/REditorSupport.r-2.8.2.vsix/RMarkdown.json +13 -0
  32. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rcpp.json +34 -0
  33. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rd (R Documentation).json +117 -0
  34. package/dist/assets/REditorSupport.r-2.8.2.vsix/Rlogo.svg +14 -0
  35. package/dist/assets/REditorSupport.r-2.8.2.vsix/dcf-configuration.json +24 -0
  36. package/dist/assets/REditorSupport.r-2.8.2.vsix/dcf.json +82 -0
  37. package/dist/assets/REditorSupport.r-2.8.2.vsix/package.json +2156 -0
  38. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-configuration.json +33 -0
  39. package/dist/assets/REditorSupport.r-2.8.2.vsix/r-snippets.json +475 -0
  40. package/dist/assets/REditorSupport.r-2.8.2.vsix/r.json +647 -0
  41. package/dist/assets/REditorSupport.r-2.8.2.vsix/rbuildignore-configuration.json +2 -0
  42. package/dist/assets/REditorSupport.r-2.8.2.vsix/rbuildignore.json +27 -0
  43. package/dist/assets/REditorSupport.r-2.8.2.vsix/rd-configuration.json +27 -0
  44. package/dist/assets/REditorSupport.r-2.8.2.vsix/rmarkdown2.json +459 -0
  45. package/dist/assets/REditorSupport.r-2.8.2.vsix/rmd-configuration.json +27 -0
  46. package/dist/assets/REditorSupport.r-2.8.2.vsix/rnamespace.json +222 -0
  47. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.json +263 -0
  48. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.nls.json +24 -0
  49. package/dist/assets/alefragnani.pascal-9.6.0.vsix/package.nls.pt-br.json +24 -0
  50. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal.configuration.json +32 -0
  51. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal.json +414 -0
  52. package/dist/assets/alefragnani.pascal-9.6.0.vsix/pascal.tmLanguage +243 -0
  53. package/dist/assets/batisteo.vscode-django-1.15.0.vsix/django-html.tmLanguage.json +701 -0
  54. package/dist/assets/batisteo.vscode-django-1.15.0.vsix/django-txt.tmLanguage.json +255 -0
  55. package/dist/assets/batisteo.vscode-django-1.15.0.vsix/filters.json +339 -0
  56. package/dist/assets/batisteo.vscode-django-1.15.0.vsix/language-configuration.json +63 -0
  57. package/dist/assets/batisteo.vscode-django-1.15.0.vsix/package.json +156 -0
  58. package/dist/assets/batisteo.vscode-django-1.15.0.vsix/tags.json +524 -0
  59. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/language-configuration.json +75 -0
  60. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/package.json +102 -0
  61. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/tcl.json +5474 -0
  62. package/dist/assets/bitwisecook.tcl-0.4.3.vsix/tcl2.json +142 -0
  63. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/CICS.tmLanguage.json +66 -0
  64. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/COBOL.tmLanguage.json +165 -0
  65. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/SQL.tmLanguage.json +25 -0
  66. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/lang-config.json +27 -0
  67. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/package.json +513 -0
  68. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/pgm_conf.schema.json +24 -0
  69. package/dist/assets/broadcomMFD.cobol-language-support-2.1.0.vsix/proc_grps.schema.json +55 -0
  70. package/dist/assets/castwide.solargraph-0.24.1.vsix/package.json +295 -0
  71. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/language-configuration.json +25 -0
  72. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/package.json +468 -0
  73. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/pgsql.tmLanguage +413 -0
  74. package/dist/assets/ckolkman.vscode-postgres-1.4.3.vsix/postgres-explorer.svg +100 -0
  75. package/dist/assets/golang.Go-0.40.3.vsix/go.json +274 -0
  76. package/dist/assets/golang.Go-0.40.3.vsix/go.mod.language-configuration.json +5 -0
  77. package/dist/assets/golang.Go-0.40.3.vsix/go.mod.tmGrammar.json +171 -0
  78. package/dist/assets/golang.Go-0.40.3.vsix/go.sum.tmGrammar.json +44 -0
  79. package/dist/assets/golang.Go-0.40.3.vsix/package.json +2828 -0
  80. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-directives.json +123 -0
  81. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-interpolations.json +44 -0
  82. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/angular-template-language-configuration.json +8 -0
  83. package/dist/assets/johnsoncodehk.vscode-angular-1.0.22.vsix/package.json +102 -0
  84. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/C2Hs-configuration.json +29 -0
  85. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/C2Hs.json +23 -0
  86. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/Hsc2Hs-configuration.json +30 -0
  87. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/Hsc2Hs.json +23 -0
  88. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/alex.json +236 -0
  89. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/cabal-configuration.json +6 -0
  90. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/cabal.json +53 -0
  91. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-cabal.json +28 -0
  92. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-haskell.json +28 -0
  93. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/codeblock-literate-haskell.json +28 -0
  94. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/happy.json +196 -0
  95. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/haskell-configuration.json +29 -0
  96. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/haskell.json +2525 -0
  97. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/literate-haskell-configuration.json +29 -0
  98. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/literateHaskell.json +56 -0
  99. package/dist/assets/justusadam.language-haskell-3.6.0.vsix/package.json +234 -0
  100. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/Kotlin.tmLanguage +1067 -0
  101. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/codeblock.json +22 -0
  102. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/kotlin.configuration.json +35 -0
  103. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/kotlin.json +107 -0
  104. package/dist/assets/mathiasfrohlich.Kotlin-1.7.1.vsix/package.json +100 -0
  105. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/aspnetcorerazor.tmLanguage.json +1812 -0
  106. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/csharp.json +493 -0
  107. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/language-configuration.json +24 -0
  108. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.json +5694 -0
  109. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.cs.json +203 -0
  110. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.de.json +203 -0
  111. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.es.json +203 -0
  112. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.fr.json +203 -0
  113. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.it.json +203 -0
  114. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.ja.json +203 -0
  115. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.json +421 -0
  116. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.ko.json +203 -0
  117. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.pl.json +203 -0
  118. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.pt-br.json +203 -0
  119. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.ru.json +203 -0
  120. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.tr.json +203 -0
  121. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.zh-cn.json +203 -0
  122. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/package.nls.zh-tw.json +203 -0
  123. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/vs2019_dark.json +783 -0
  124. package/dist/assets/ms-dotnettools.csharp-2.16.24.vsix/vs2019_light.json +807 -0
  125. package/dist/assets/ms-python.python-2023.25.10221012.vsix/conda-environment.json +1 -0
  126. package/dist/assets/ms-python.python-2023.25.10221012.vsix/conda-meta.json +1 -0
  127. package/dist/assets/ms-python.python-2023.25.10221012.vsix/condarc.json +1 -0
  128. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.json +1 -0
  129. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.cs.json +1 -0
  130. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.de.json +1 -0
  131. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.es.json +1 -0
  132. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.fr.json +1 -0
  133. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.it.json +1 -0
  134. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.ja.json +1 -0
  135. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.json +1 -0
  136. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.ko.json +1 -0
  137. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.pl.json +1 -0
  138. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.pt-br.json +1 -0
  139. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.qps-ploc.json +1 -0
  140. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.ru.json +1 -0
  141. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.tr.json +1 -0
  142. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.zh-cn.json +1 -0
  143. package/dist/assets/ms-python.python-2023.25.10221012.vsix/package.nls.zh-tw.json +1 -0
  144. package/dist/assets/ms-python.python-2023.25.10221012.vsix/pip-requirements.json +1 -0
  145. package/dist/assets/ms-python.python-2023.25.10221012.vsix/pip-requirements.tmLanguage.json +1 -0
  146. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.json +6383 -0
  147. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.cs.json +441 -0
  148. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.de.json +441 -0
  149. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.es.json +441 -0
  150. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.fr.json +441 -0
  151. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.it.json +441 -0
  152. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.ja.json +441 -0
  153. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.json +1006 -0
  154. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.ko.json +441 -0
  155. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.pl.json +441 -0
  156. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.pt-br.json +441 -0
  157. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.ru.json +441 -0
  158. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.tr.json +441 -0
  159. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.zh-cn.json +441 -0
  160. package/dist/assets/ms-vscode.cpptools-1.19.2.vsix/package.nls.zh-tw.json +441 -0
  161. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/META.json +56 -0
  162. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/META2.json +10 -0
  163. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/atd.json +57 -0
  164. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/cram.json +167 -0
  165. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/dune-project.json +326 -0
  166. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/dune-project2.json +26 -0
  167. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/dune-workspace.json +191 -0
  168. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/dune.json +2949 -0
  169. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/dune2.json +20 -0
  170. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/dune3.json +34 -0
  171. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/logo.svg +3 -0
  172. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/menhir-action.json +29 -0
  173. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/menhir.json +349 -0
  174. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/menhir2.json +17 -0
  175. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/merlin.json +73 -0
  176. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/oasis.json +69 -0
  177. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/oasis2.json +6 -0
  178. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocaml-markdown-codeblock.json +24 -0
  179. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocaml.interface.json +161 -0
  180. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocaml.json +654 -0
  181. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocaml2.json +44 -0
  182. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocaml3.json +54 -0
  183. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamlbuild.json +110 -0
  184. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamlbuild2.json +12 -0
  185. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamldoc.json +31 -0
  186. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamlformat.json +239 -0
  187. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamlformat2.json +5 -0
  188. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamllex.json +108 -0
  189. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamllex2.json +14 -0
  190. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/ocamllex3.json +6 -0
  191. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/opam-install.json +23 -0
  192. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/opam-install2.json +8 -0
  193. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/opam.json +111 -0
  194. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/opam2.json +21 -0
  195. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/package.json +1231 -0
  196. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/reason-markdown-codeblock.json +24 -0
  197. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/reason.json +2357 -0
  198. package/dist/assets/ocamllabs.ocaml-platform-1.16.1.vsix/reason2.json +21 -0
  199. package/dist/assets/pgourlain.erlang-0.9.8.vsix/Erlang.plist +2719 -0
  200. package/dist/assets/pgourlain.erlang-0.9.8.vsix/erlang.configuration.json +25 -0
  201. package/dist/assets/pgourlain.erlang-0.9.8.vsix/erlang.json +197 -0
  202. package/dist/assets/pgourlain.erlang-0.9.8.vsix/package.json +305 -0
  203. package/dist/assets/redhat.java-1.27.2024012608.vsix/JavaProperties.tmLanguage.json +103 -0
  204. package/dist/assets/redhat.java-1.27.2024012608.vsix/inline-html.json +44 -0
  205. package/dist/assets/redhat.java-1.27.2024012608.vsix/inline-json.json +44 -0
  206. package/dist/assets/redhat.java-1.27.2024012608.vsix/inline-sql.json +46 -0
  207. package/dist/assets/redhat.java-1.27.2024012608.vsix/inline-xml.json +44 -0
  208. package/dist/assets/redhat.java-1.27.2024012608.vsix/inline-yaml.json +44 -0
  209. package/dist/assets/redhat.java-1.27.2024012608.vsix/java-properties-configuration.json +67 -0
  210. package/dist/assets/redhat.java-1.27.2024012608.vsix/java.tmLanguage.json +1888 -0
  211. package/dist/assets/redhat.java-1.27.2024012608.vsix/kotlin.tmLanguage.json +702 -0
  212. package/dist/assets/redhat.java-1.27.2024012608.vsix/language-configuration.json +92 -0
  213. package/dist/assets/redhat.java-1.27.2024012608.vsix/language-configuration2.json +27 -0
  214. package/dist/assets/redhat.java-1.27.2024012608.vsix/package.json +1819 -0
  215. package/dist/assets/redhat.java-1.27.2024012608.vsix/package.nls.json +30 -0
  216. package/dist/assets/redhat.java-1.27.2024012608.vsix/package.nls.ko.json +27 -0
  217. package/dist/assets/redhat.java-1.27.2024012608.vsix/package.nls.zh-cn.json +28 -0
  218. package/dist/assets/redhat.java-1.27.2024012608.vsix/package.nls.zh-tw.json +27 -0
  219. package/dist/assets/redhat.java-1.27.2024012608.vsix/package.schema.json +48 -0
  220. package/dist/assets/scala-lang.scala-0.5.7.vsix/Scala.tmLanguage.json +1 -0
  221. package/dist/assets/scala-lang.scala-0.5.7.vsix/language-configuration.json +33 -0
  222. package/dist/assets/scala-lang.scala-0.5.7.vsix/package.json +67 -0
  223. package/dist/assets/scalameta.metals-1.27.3.vsix/book-dark.svg +5 -0
  224. package/dist/assets/scalameta.metals-1.27.3.vsix/book-light.svg +1 -0
  225. package/dist/assets/scalameta.metals-1.27.3.vsix/buildtarget.json +37 -0
  226. package/dist/assets/scalameta.metals-1.27.3.vsix/file_type_java.svg +1 -0
  227. package/dist/assets/scalameta.metals-1.27.3.vsix/file_type_scala.svg +1 -0
  228. package/dist/assets/scalameta.metals-1.27.3.vsix/jvm-bytecode-verbose.json +745 -0
  229. package/dist/assets/scalameta.metals-1.27.3.vsix/jvm-bytecode.json +395 -0
  230. package/dist/assets/scalameta.metals-1.27.3.vsix/package.json +1096 -0
  231. package/dist/assets/scalameta.metals-1.27.3.vsix/scalameta-logo.png +0 -0
  232. package/dist/assets/scalameta.metals-1.27.3.vsix/scalameta.svg +11 -0
  233. package/dist/assets/scalameta.metals-1.27.3.vsix/semanticdb.json +37 -0
  234. package/dist/assets/scalameta.metals-1.27.3.vsix/tasty.json +56 -0
  235. package/dist/assets/sumneko.lua-3.7.4.vsix/package.json +3347 -0
  236. package/dist/assets/sumneko.lua-3.7.4.vsix/package.nls.json +231 -0
  237. package/dist/assets/sumneko.lua-3.7.4.vsix/package.nls.pt-br.json +231 -0
  238. package/dist/assets/sumneko.lua-3.7.4.vsix/package.nls.zh-cn.json +231 -0
  239. package/dist/assets/sumneko.lua-3.7.4.vsix/package.nls.zh-tw.json +231 -0
  240. package/dist/assets/sumneko.lua-3.7.4.vsix/schema.json +3423 -0
  241. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/javascript.json +43 -0
  242. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/language-configuration.json +38 -0
  243. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/markdown-svelte-css.json +23 -0
  244. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/markdown-svelte-js.json +23 -0
  245. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/markdown-svelte.json +45 -0
  246. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/package-json-schema.json +9 -0
  247. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/package.json +732 -0
  248. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/postcss.json +377 -0
  249. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/prettier-options-schema.json +112 -0
  250. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/pug-svelte-dotblock.json +55 -0
  251. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/pug-svelte-tags.json +201 -0
  252. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/pug-svelte.json +293 -0
  253. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/svelte.json +26 -0
  254. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/svelte.tmLanguage.json +1171 -0
  255. package/dist/assets/svelte.svelte-vscode-108.2.1.vsix/typescript.json +37 -0
  256. package/dist/assets/webfreak.code-d-0.23.2.vsix/d.json +3163 -0
  257. package/dist/assets/webfreak.code-d-0.23.2.vsix/d2.json +90 -0
  258. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet.json +742 -0
  259. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet2.json +92 -0
  260. package/dist/assets/webfreak.code-d-0.23.2.vsix/diet3.json +87 -0
  261. package/dist/assets/webfreak.code-d-0.23.2.vsix/dml.json +157 -0
  262. package/dist/assets/webfreak.code-d-0.23.2.vsix/dub.schema.json +377 -0
  263. package/dist/assets/webfreak.code-d-0.23.2.vsix/general.json +84 -0
  264. package/dist/assets/webfreak.code-d-0.23.2.vsix/package.json +1306 -0
  265. package/dist/assets/webfreak.code-d-0.23.2.vsix/sdl.json +149 -0
  266. package/dist/configuration/index.d.ts +1 -1
  267. package/dist/configuration/index.js +2 -2
  268. package/dist/editor/cobol.js +1 -1
  269. package/dist/extensions/Angular.ng-template-17.1.0.vsix.js +20 -0
  270. package/dist/extensions/Dart-Code.dart-code-3.81.20240117.vsix.js +16 -0
  271. package/dist/extensions/IMCTradingBV.svlangserver-0.4.1.vsix.js +14 -12
  272. package/dist/extensions/JakeBecker.elixir-ls-0.19.0.vsix.js +20 -0
  273. package/dist/extensions/JuanBlanco.solidity-0.0.165.vsix.js +16 -0
  274. package/dist/extensions/REditorSupport.r-2.8.2.vsix.js +44 -0
  275. package/dist/extensions/alefragnani.pascal-9.6.0.vsix.js +16 -9
  276. package/dist/extensions/batisteo.vscode-django-1.15.0.vsix.js +20 -0
  277. package/dist/extensions/bitwisecook.tcl-0.4.3.vsix.js +12 -9
  278. package/dist/extensions/broadcomMFD.cobol-language-support-2.1.0.vsix.js +22 -0
  279. package/dist/extensions/castwide.solargraph-0.24.1.vsix.js +10 -0
  280. package/dist/extensions/ckolkman.vscode-postgres-1.4.3.vsix.js +16 -0
  281. package/dist/extensions/golang.Go-0.40.3.vsix.js +18 -0
  282. package/dist/extensions/johnsoncodehk.vscode-angular-1.0.22.vsix.js +12 -9
  283. package/dist/extensions/justusadam.language-haskell-3.6.0.vsix.js +24 -25
  284. package/dist/extensions/mathiasfrohlich.Kotlin-1.7.1.vsix.js +13 -10
  285. package/dist/extensions/ms-dotnettools.csharp-2.16.24.vsix.js +48 -0
  286. package/dist/extensions/ms-python.python-2023.25.10221012.vsix.js +50 -0
  287. package/dist/extensions/ms-vscode.cpptools-1.19.2.vsix.js +38 -0
  288. package/dist/extensions/ocamllabs.ocaml-platform-1.16.1.vsix.js +84 -0
  289. package/dist/extensions/pgourlain.erlang-0.9.8.vsix.js +16 -0
  290. package/dist/extensions/redhat.java-1.27.2024012608.vsix.js +42 -0
  291. package/dist/extensions/scala-lang.scala-0.5.7.vsix.js +14 -0
  292. package/dist/extensions/scalameta.metals-1.27.3.vsix.js +32 -0
  293. package/dist/extensions/sumneko.lua-3.7.4.vsix.js +20 -0
  294. package/dist/extensions/svelte.svelte-vscode-108.2.1.vsix.js +38 -0
  295. package/dist/extensions/webfreak.code-d-0.23.2.vsix.js +18 -18
  296. package/dist/extensions.d.ts +35 -35
  297. package/dist/features/debug.js +1 -2
  298. package/dist/features/extensionHostWorker.d.ts +1 -0
  299. package/dist/features/extensionHostWorker.js +11 -0
  300. package/dist/features/search.d.ts +1 -1
  301. package/dist/features/search.js +3 -3
  302. package/dist/features/viewPanels.d.ts +1 -1
  303. package/dist/features/viewPanels.js +7 -4
  304. package/dist/features/views.d.ts +4 -4
  305. package/dist/features/views.js +19 -9
  306. package/dist/index.d.ts +2 -1
  307. package/dist/keybindings/index.js +1 -1
  308. package/dist/keybindings/vim.js +1 -1
  309. package/dist/languages/index.js +1 -1
  310. package/dist/main.js +3 -2
  311. package/dist/monaco.d.ts +1 -3
  312. package/dist/monaco.js +61 -60
  313. package/dist/node_modules/monaco-vim/lib/cm_adapter.js +7 -3
  314. package/dist/services.d.ts +3 -1
  315. package/dist/services.js +56 -26
  316. package/dist/tools/EditorOpenHandlerRegistry.d.ts +1 -1
  317. package/dist/tools/EditorOpenHandlerRegistry.js +3 -3
  318. package/dist/tools/FakeWorker.d.ts +5 -0
  319. package/dist/tools/FakeWorker.js +8 -0
  320. package/dist/tools/crossOriginWorker.d.ts +9 -0
  321. package/dist/tools/crossOriginWorker.js +35 -0
  322. package/dist/tools.js +1 -1
  323. package/dist/worker.d.ts +1 -0
  324. package/dist/worker.js +9 -2
  325. package/package.json +113 -39
  326. package/stats.html +32 -28
  327. package/dist/_virtual/Angular.ng-template-15.2.1.vsix_package.json.vsjson.js +0 -3
  328. package/dist/_virtual/C2Hs-configuration.json.raw.js +0 -3
  329. package/dist/_virtual/C2Hs.json.raw.js +0 -3
  330. package/dist/_virtual/COBOL.tmLanguage.json.raw.js +0 -3
  331. package/dist/_virtual/Dart-Code.dart-code-3.63.20230419.vsix_package.json.vsjson.js +0 -3
  332. package/dist/_virtual/Erlang.plist.raw.js +0 -3
  333. package/dist/_virtual/Hsc2Hs-configuration.json.raw.js +0 -3
  334. package/dist/_virtual/Hsc2Hs.json.raw.js +0 -3
  335. package/dist/_virtual/IMCTradingBV.svlangserver-0.4.1.vsix_package.json.vsjson.js +0 -3
  336. package/dist/_virtual/JakeBecker.elixir-ls-0.14.5.vsix_package.json.vsjson.js +0 -3
  337. package/dist/_virtual/JavaProperties.tmLanguage.json.raw.js +0 -3
  338. package/dist/_virtual/JuanBlanco.solidity-0.0.152.vsix_package.json.vsjson.js +0 -3
  339. package/dist/_virtual/Kotlin.tmLanguage.raw.js +0 -3
  340. package/dist/_virtual/META.json.raw.js +0 -3
  341. package/dist/_virtual/META.json.raw2.js +0 -3
  342. package/dist/_virtual/Markdown Redcarpet.json.raw.js +0 -3
  343. package/dist/_virtual/REditorSupport.r-2.7.2.vsix_package.json.vsjson.js +0 -3
  344. package/dist/_virtual/RMarkdown.json.raw.js +0 -3
  345. package/dist/_virtual/Rcpp.json.raw.js +0 -3
  346. package/dist/_virtual/Rd (R Documentation).json.raw.js +0 -3
  347. package/dist/_virtual/Rlogo.svg.raw.js +0 -3
  348. package/dist/_virtual/Scala.tmLanguage.json.raw.js +0 -3
  349. package/dist/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -31
  350. package/dist/_virtual/alefragnani.pascal-9.6.0.vsix_package.json.vsjson.js +0 -3
  351. package/dist/_virtual/alex.json.raw.js +0 -3
  352. package/dist/_virtual/angular-directives.json.raw.js +0 -3
  353. package/dist/_virtual/angular-interpolations.json.raw.js +0 -3
  354. package/dist/_virtual/angular-template-language-configuration.json.raw.js +0 -3
  355. package/dist/_virtual/aspnetcorerazor.tmLanguage.json.raw.js +0 -3
  356. package/dist/_virtual/atd.json.raw.js +0 -3
  357. package/dist/_virtual/batisteo.vscode-django-1.10.0.vsix_package.json.vsjson.js +0 -3
  358. package/dist/_virtual/bitwisecook.tcl-0.4.3.vsix_package.json.vsjson.js +0 -3
  359. package/dist/_virtual/book-dark.svg.raw.js +0 -3
  360. package/dist/_virtual/book-light.svg.raw.js +0 -3
  361. package/dist/_virtual/broadcomMFD.cobol-language-support-1.2.1.vsix_package.json.vsjson.js +0 -3
  362. package/dist/_virtual/buildtarget.json.raw.js +0 -3
  363. package/dist/_virtual/cabal-configuration.json.raw.js +0 -3
  364. package/dist/_virtual/cabal.json.raw.js +0 -3
  365. package/dist/_virtual/castwide.solargraph-0.24.0.vsix_package.json.vsjson.js +0 -3
  366. package/dist/_virtual/ckolkman.vscode-postgres-1.4.2.vsix_package.json.vsjson.js +0 -3
  367. package/dist/_virtual/codeblock-cabal.json.raw.js +0 -3
  368. package/dist/_virtual/codeblock-haskell.json.raw.js +0 -3
  369. package/dist/_virtual/codeblock-literate-haskell.json.raw.js +0 -3
  370. package/dist/_virtual/codeblock.json.raw.js +0 -3
  371. package/dist/_virtual/codeblock.json.raw2.js +0 -3
  372. package/dist/_virtual/conda-environment.json.raw.js +0 -3
  373. package/dist/_virtual/conda-meta.json.raw.js +0 -3
  374. package/dist/_virtual/condarc.json.raw.js +0 -3
  375. package/dist/_virtual/cram.json.raw.js +0 -3
  376. package/dist/_virtual/csharp.json.raw.js +0 -3
  377. package/dist/_virtual/css.worker.js +0 -6
  378. package/dist/_virtual/d.json.raw.js +0 -3
  379. package/dist/_virtual/d.json.raw2.js +0 -3
  380. package/dist/_virtual/dart-language-configuration.json.raw.js +0 -3
  381. package/dist/_virtual/dart.json.raw.js +0 -3
  382. package/dist/_virtual/dcf-configuration.json.raw.js +0 -3
  383. package/dist/_virtual/dcf.json.raw.js +0 -3
  384. package/dist/_virtual/diet.json.raw.js +0 -3
  385. package/dist/_virtual/diet.json.raw2.js +0 -3
  386. package/dist/_virtual/diet.json.raw3.js +0 -3
  387. package/dist/_virtual/django-html.tmLanguage.json.raw.js +0 -3
  388. package/dist/_virtual/django-txt.tmLanguage.json.raw.js +0 -3
  389. package/dist/_virtual/dml.json.raw.js +0 -3
  390. package/dist/_virtual/dub.schema.json.raw.js +0 -3
  391. package/dist/_virtual/dune-project.json.raw.js +0 -3
  392. package/dist/_virtual/dune-project.json.raw2.js +0 -3
  393. package/dist/_virtual/dune-workspace.json.raw.js +0 -3
  394. package/dist/_virtual/dune.json.raw.js +0 -3
  395. package/dist/_virtual/dune.json.raw2.js +0 -3
  396. package/dist/_virtual/dune.json.raw3.js +0 -3
  397. package/dist/_virtual/editor.worker.js +0 -6
  398. package/dist/_virtual/eex-language-configuration.json.raw.js +0 -3
  399. package/dist/_virtual/eex.json.raw.js +0 -3
  400. package/dist/_virtual/elixir-language-configuration.json.raw.js +0 -3
  401. package/dist/_virtual/elixir.json.raw.js +0 -3
  402. package/dist/_virtual/erlang.configuration.json.raw.js +0 -3
  403. package/dist/_virtual/erlang.json.raw.js +0 -3
  404. package/dist/_virtual/expression.json.raw.js +0 -3
  405. package/dist/_virtual/file_type_java.svg.raw.js +0 -3
  406. package/dist/_virtual/file_type_scala.svg.raw.js +0 -3
  407. package/dist/_virtual/filters.json.raw.js +0 -3
  408. package/dist/_virtual/flutter_activity_bar.svg.raw.js +0 -3
  409. package/dist/_virtual/general.json.raw.js +0 -3
  410. package/dist/_virtual/go.json.raw.js +0 -3
  411. package/dist/_virtual/go.mod.language-configuration.json.raw.js +0 -3
  412. package/dist/_virtual/go.mod.tmGrammar.json.raw.js +0 -3
  413. package/dist/_virtual/go.sum.tmGrammar.json.raw.js +0 -3
  414. package/dist/_virtual/golang.Go-0.38.0.vsix_package.json.vsjson.js +0 -3
  415. package/dist/_virtual/govulncheck.tmGrammar.json.raw.js +0 -3
  416. package/dist/_virtual/happy.json.raw.js +0 -3
  417. package/dist/_virtual/haskell-configuration.json.raw.js +0 -3
  418. package/dist/_virtual/haskell.json.raw.js +0 -3
  419. package/dist/_virtual/html-eex.json.raw.js +0 -3
  420. package/dist/_virtual/html.worker.js +0 -6
  421. package/dist/_virtual/inline-styles.json.raw.js +0 -3
  422. package/dist/_virtual/inline-template.json.raw.js +0 -3
  423. package/dist/_virtual/java-properties-configuration.json.raw.js +0 -3
  424. package/dist/_virtual/java.json.raw.js +0 -3
  425. package/dist/_virtual/javascript.json.raw.js +0 -3
  426. package/dist/_virtual/johnsoncodehk.vscode-angular-1.0.22.vsix_package.json.vsjson.js +0 -3
  427. package/dist/_virtual/json.worker.js +0 -6
  428. package/dist/_virtual/justusadam.language-haskell-3.6.0.vsix_package.json.vsjson.js +0 -3
  429. package/dist/_virtual/jvm-bytecode-verbose.json.raw.js +0 -3
  430. package/dist/_virtual/jvm-bytecode.json.raw.js +0 -3
  431. package/dist/_virtual/kotlin.configuration.json.raw.js +0 -3
  432. package/dist/_virtual/kotlin.json.raw.js +0 -3
  433. package/dist/_virtual/lang-config.json.raw.js +0 -3
  434. package/dist/_virtual/language-configuration.json.raw.js +0 -3
  435. package/dist/_virtual/language-configuration.json.raw2.js +0 -3
  436. package/dist/_virtual/language-configuration.json.raw3.js +0 -3
  437. package/dist/_virtual/language-configuration.json.raw4.js +0 -3
  438. package/dist/_virtual/language-configuration.json.raw5.js +0 -3
  439. package/dist/_virtual/language-configuration.json.raw6.js +0 -3
  440. package/dist/_virtual/language-configuration.json.raw7.js +0 -3
  441. package/dist/_virtual/language-configuration.json.raw8.js +0 -3
  442. package/dist/_virtual/literate-haskell-configuration.json.raw.js +0 -3
  443. package/dist/_virtual/literateHaskell.json.raw.js +0 -3
  444. package/dist/_virtual/logo.svg.raw.js +0 -3
  445. package/dist/_virtual/markdown-svelte-css.json.raw.js +0 -3
  446. package/dist/_virtual/markdown-svelte-js.json.raw.js +0 -3
  447. package/dist/_virtual/markdown-svelte.json.raw.js +0 -3
  448. package/dist/_virtual/mathiasfrohlich.Kotlin-1.7.1.vsix_package.json.vsjson.js +0 -3
  449. package/dist/_virtual/menhir-action.json.raw.js +0 -3
  450. package/dist/_virtual/menhir.json.raw.js +0 -3
  451. package/dist/_virtual/menhir.json.raw2.js +0 -3
  452. package/dist/_virtual/merlin.json.raw.js +0 -3
  453. package/dist/_virtual/ms-dotnettools.csharp-1.25.4.vsix_package.json.vsjson.js +0 -3
  454. package/dist/_virtual/ms-python.python-2023.7.11111009.vsix_package.json.vsjson.js +0 -3
  455. package/dist/_virtual/ms-vscode.cpptools-1.15.2.vsix_package.json.vsjson.js +0 -3
  456. package/dist/_virtual/oasis.json.raw.js +0 -3
  457. package/dist/_virtual/oasis.json.raw2.js +0 -3
  458. package/dist/_virtual/ocaml-markdown-codeblock.json.raw.js +0 -3
  459. package/dist/_virtual/ocaml.interface.json.raw.js +0 -3
  460. package/dist/_virtual/ocaml.json.raw.js +0 -3
  461. package/dist/_virtual/ocaml.json.raw2.js +0 -3
  462. package/dist/_virtual/ocaml.json.raw3.js +0 -3
  463. package/dist/_virtual/ocamlbuild.json.raw.js +0 -3
  464. package/dist/_virtual/ocamlbuild.json.raw2.js +0 -3
  465. package/dist/_virtual/ocamldoc.json.raw.js +0 -3
  466. package/dist/_virtual/ocamlformat.json.raw.js +0 -3
  467. package/dist/_virtual/ocamlformat.json.raw2.js +0 -3
  468. package/dist/_virtual/ocamllabs.ocaml-platform-1.12.2.vsix_package.json.vsjson.js +0 -3
  469. package/dist/_virtual/ocamllex.json.raw.js +0 -3
  470. package/dist/_virtual/ocamllex.json.raw2.js +0 -3
  471. package/dist/_virtual/ocamllex.json.raw3.js +0 -3
  472. package/dist/_virtual/opam-install.json.raw.js +0 -3
  473. package/dist/_virtual/opam-install.json.raw2.js +0 -3
  474. package/dist/_virtual/opam.json.raw.js +0 -3
  475. package/dist/_virtual/opam.json.raw2.js +0 -3
  476. package/dist/_virtual/package-json-schema.json.raw.js +0 -3
  477. package/dist/_virtual/package.schema.json.raw.js +0 -3
  478. package/dist/_virtual/pascal.configuration.json.raw.js +0 -3
  479. package/dist/_virtual/pascal.json.raw.js +0 -3
  480. package/dist/_virtual/pascal.tmLanguage.raw.js +0 -3
  481. package/dist/_virtual/pgourlain.erlang-0.8.8.vsix_package.json.vsjson.js +0 -3
  482. package/dist/_virtual/pgsql.tmLanguage.raw.js +0 -3
  483. package/dist/_virtual/pip-requirements.json.raw.js +0 -3
  484. package/dist/_virtual/pip-requirements.tmLanguage.json.raw.js +0 -3
  485. package/dist/_virtual/postcss.json.raw.js +0 -3
  486. package/dist/_virtual/postgres-explorer.svg.raw.js +0 -3
  487. package/dist/_virtual/prettier-options-schema.json.raw.js +0 -3
  488. package/dist/_virtual/pug-svelte-dotblock.json.raw.js +0 -3
  489. package/dist/_virtual/pug-svelte-tags.json.raw.js +0 -3
  490. package/dist/_virtual/pug-svelte.json.raw.js +0 -3
  491. package/dist/_virtual/r-configuration.json.raw.js +0 -3
  492. package/dist/_virtual/r-snippets.json.raw.js +0 -3
  493. package/dist/_virtual/r.json.raw.js +0 -3
  494. package/dist/_virtual/rbuildignore-configuration.json.raw.js +0 -3
  495. package/dist/_virtual/rbuildignore.json.raw.js +0 -3
  496. package/dist/_virtual/rd-configuration.json.raw.js +0 -3
  497. package/dist/_virtual/reason-markdown-codeblock.json.raw.js +0 -3
  498. package/dist/_virtual/reason.json.raw.js +0 -3
  499. package/dist/_virtual/reason.json.raw2.js +0 -3
  500. package/dist/_virtual/redhat.java-1.18.2023042204.vsix_package.json.vsjson.js +0 -3
  501. package/dist/_virtual/rmarkdown.json.raw2.js +0 -3
  502. package/dist/_virtual/rmd-configuration.json.raw.js +0 -3
  503. package/dist/_virtual/rnamespace-configuration.json.raw.js +0 -3
  504. package/dist/_virtual/rnamespace.json.raw.js +0 -3
  505. package/dist/_virtual/scala-lang.scala-0.5.6.vsix_package.json.vsjson.js +0 -3
  506. package/dist/_virtual/scalameta-logo.png.raw.js +0 -3
  507. package/dist/_virtual/scalameta.metals-1.23.0.vsix_package.json.vsjson.js +0 -3
  508. package/dist/_virtual/scalameta.svg.raw.js +0 -3
  509. package/dist/_virtual/schema.json.raw.js +0 -3
  510. package/dist/_virtual/sdl.json.raw.js +0 -3
  511. package/dist/_virtual/semanticdb.json.raw.js +0 -3
  512. package/dist/_virtual/solidity.configuration.json.raw.js +0 -3
  513. package/dist/_virtual/solidity.json.raw.js +0 -3
  514. package/dist/_virtual/solidity.json.raw2.js +0 -3
  515. package/dist/_virtual/sumneko.lua-3.6.18.vsix_package.json.vsjson.js +0 -3
  516. package/dist/_virtual/svelte.json.raw.js +0 -3
  517. package/dist/_virtual/svelte.svelte-vscode-107.3.0.vsix_package.json.vsjson.js +0 -3
  518. package/dist/_virtual/svelte.tmLanguage.json.raw.js +0 -3
  519. package/dist/_virtual/systemverilog.json.raw.js +0 -3
  520. package/dist/_virtual/systemverilog.tmLanguage.json.raw.js +0 -3
  521. package/dist/_virtual/tags.json.raw.js +0 -3
  522. package/dist/_virtual/tasks.schema.json.raw.js +0 -3
  523. package/dist/_virtual/tasty.json.raw.js +0 -3
  524. package/dist/_virtual/tcl.json.raw.js +0 -3
  525. package/dist/_virtual/tcl.json.raw2.js +0 -3
  526. package/dist/_virtual/template.json.raw.js +0 -3
  527. package/dist/_virtual/ts.worker.js +0 -6
  528. package/dist/_virtual/typescript.json.raw.js +0 -3
  529. package/dist/_virtual/vs2019_dark.json.raw.js +0 -3
  530. package/dist/_virtual/vs2019_light.json.raw.js +0 -3
  531. package/dist/_virtual/webfreak.code-d-0.23.2.vsix_package.json.vsjson.js +0 -3
  532. package/dist/extensions/Angular.ng-template-15.2.1.vsix.js +0 -15
  533. package/dist/extensions/Dart-Code.dart-code-3.63.20230419.vsix.js +0 -14
  534. package/dist/extensions/JakeBecker.elixir-ls-0.14.5.vsix.js +0 -18
  535. package/dist/extensions/JuanBlanco.solidity-0.0.152.vsix.js +0 -13
  536. package/dist/extensions/REditorSupport.r-2.7.2.vsix.js +0 -47
  537. package/dist/extensions/batisteo.vscode-django-1.10.0.vsix.js +0 -17
  538. package/dist/extensions/broadcomMFD.cobol-language-support-1.2.1.vsix.js +0 -11
  539. package/dist/extensions/castwide.solargraph-0.24.0.vsix.js +0 -8
  540. package/dist/extensions/ckolkman.vscode-postgres-1.4.2.vsix.js +0 -14
  541. package/dist/extensions/golang.Go-0.38.0.vsix.js +0 -17
  542. package/dist/extensions/ms-dotnettools.csharp-1.25.4.vsix.js +0 -17
  543. package/dist/extensions/ms-python.python-2023.7.11111009.vsix.js +0 -20
  544. package/dist/extensions/ms-vscode.cpptools-1.15.2.vsix.js +0 -8
  545. package/dist/extensions/ocamllabs.ocaml-platform-1.12.2.vsix.js +0 -92
  546. package/dist/extensions/pgourlain.erlang-0.8.8.vsix.js +0 -13
  547. package/dist/extensions/redhat.java-1.18.2023042204.vsix.js +0 -19
  548. package/dist/extensions/scala-lang.scala-0.5.6.vsix.js +0 -11
  549. package/dist/extensions/scalameta.metals-1.23.0.vsix.js +0 -34
  550. package/dist/extensions/sumneko.lua-3.6.18.vsix.js +0 -10
  551. package/dist/extensions/svelte.svelte-vscode-107.3.0.vsix.js +0 -37
  552. package/dist/features/cssContribution.d.ts +0 -1
  553. package/dist/features/cssContribution.js +0 -6
  554. package/dist/features/htmlContribution.d.ts +0 -4
  555. package/dist/features/htmlContribution.js +0 -102
  556. package/dist/features/jsonContribution.d.ts +0 -4
  557. package/dist/features/jsonContribution.js +0 -22
  558. package/dist/features/typescriptContribution.d.ts +0 -1
  559. package/dist/features/typescriptContribution.js +0 -44
  560. package/dist/node_modules/@types/node/console.d.js +0 -3
  561. package/dist/node_modules/@types/node/globals.d.js +0 -3
  562. package/dist/node_modules/@types/node/process.d.js +0 -3
  563. package/dist/node_modules/tslib/tslib.es6.js +0 -77
@@ -0,0 +1,2525 @@
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
+ }