@shikijs/langs 3.2.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/abap.mjs +1 -1
  2. package/dist/actionscript-3.mjs +1 -1
  3. package/dist/ada.mjs +1 -1
  4. package/dist/angular-expression.mjs +1 -1
  5. package/dist/angular-html.mjs +1 -1
  6. package/dist/angular-inline-style.mjs +1 -1
  7. package/dist/angular-inline-template.mjs +1 -1
  8. package/dist/angular-let-declaration.mjs +1 -1
  9. package/dist/angular-template-blocks.mjs +1 -1
  10. package/dist/angular-ts.mjs +1 -1
  11. package/dist/apache.mjs +1 -1
  12. package/dist/apex.mjs +1 -1
  13. package/dist/apl.mjs +1 -1
  14. package/dist/applescript.mjs +1 -1
  15. package/dist/ara.mjs +1 -1
  16. package/dist/asciidoc.mjs +1 -1
  17. package/dist/asm.mjs +1 -1
  18. package/dist/astro.mjs +1 -1
  19. package/dist/awk.mjs +1 -1
  20. package/dist/ballerina.mjs +1 -1
  21. package/dist/bat.mjs +1 -1
  22. package/dist/beancount.mjs +1 -1
  23. package/dist/berry.mjs +1 -1
  24. package/dist/bibtex.mjs +1 -1
  25. package/dist/bicep.mjs +1 -1
  26. package/dist/blade.mjs +1 -1
  27. package/dist/bsl.mjs +1 -1
  28. package/dist/c.mjs +1 -1
  29. package/dist/cadence.mjs +1 -1
  30. package/dist/cairo.mjs +1 -1
  31. package/dist/clarity.mjs +1 -1
  32. package/dist/clojure.mjs +1 -1
  33. package/dist/cobol.mjs +1 -1
  34. package/dist/codeql.mjs +1 -1
  35. package/dist/coffee.mjs +1 -1
  36. package/dist/common-lisp.mjs +1 -1
  37. package/dist/coq.mjs +1 -1
  38. package/dist/cpp-macro.mjs +1 -1
  39. package/dist/cpp.mjs +1 -1
  40. package/dist/crystal.mjs +1 -1
  41. package/dist/csharp.mjs +1 -1
  42. package/dist/css.mjs +1 -1
  43. package/dist/cue.mjs +1 -1
  44. package/dist/cypher.mjs +1 -1
  45. package/dist/d.mjs +1 -1
  46. package/dist/dart.mjs +1 -1
  47. package/dist/dax.mjs +1 -1
  48. package/dist/desktop.mjs +1 -1
  49. package/dist/diff.mjs +1 -1
  50. package/dist/dotenv.mjs +1 -1
  51. package/dist/dream-maker.mjs +1 -1
  52. package/dist/edge.mjs +1 -1
  53. package/dist/elixir.mjs +1 -1
  54. package/dist/elm.mjs +1 -1
  55. package/dist/emacs-lisp.mjs +1 -1
  56. package/dist/erb.mjs +1 -1
  57. package/dist/erlang.mjs +1 -1
  58. package/dist/es-tag-css.mjs +1 -1
  59. package/dist/es-tag-glsl.mjs +1 -1
  60. package/dist/es-tag-html.mjs +1 -1
  61. package/dist/es-tag-sql.mjs +1 -1
  62. package/dist/es-tag-xml.mjs +1 -1
  63. package/dist/fennel.mjs +1 -1
  64. package/dist/fish.mjs +1 -1
  65. package/dist/fluent.mjs +1 -1
  66. package/dist/fortran-fixed-form.mjs +1 -1
  67. package/dist/fortran-free-form.mjs +1 -1
  68. package/dist/fsharp.mjs +1 -1
  69. package/dist/gdresource.mjs +1 -1
  70. package/dist/gdscript.mjs +1 -1
  71. package/dist/gdshader.mjs +1 -1
  72. package/dist/genie.mjs +1 -1
  73. package/dist/gherkin.mjs +1 -1
  74. package/dist/gleam.mjs +1 -1
  75. package/dist/glimmer-js.mjs +1 -1
  76. package/dist/glimmer-ts.mjs +1 -1
  77. package/dist/glsl.mjs +1 -1
  78. package/dist/gnuplot.mjs +1 -1
  79. package/dist/go.mjs +1 -1
  80. package/dist/graphql.mjs +1 -1
  81. package/dist/groovy.mjs +1 -1
  82. package/dist/hack.mjs +1 -1
  83. package/dist/haml.mjs +1 -1
  84. package/dist/handlebars.mjs +1 -1
  85. package/dist/haskell.mjs +1 -1
  86. package/dist/haxe.mjs +1 -1
  87. package/dist/hcl.mjs +1 -1
  88. package/dist/hjson.mjs +1 -1
  89. package/dist/hlsl.mjs +1 -1
  90. package/dist/html-derivative.mjs +1 -1
  91. package/dist/html.mjs +1 -1
  92. package/dist/http.mjs +1 -1
  93. package/dist/hxml.mjs +1 -1
  94. package/dist/hy.mjs +1 -1
  95. package/dist/imba.mjs +1 -1
  96. package/dist/ini.mjs +1 -1
  97. package/dist/java.mjs +1 -1
  98. package/dist/javascript.mjs +1 -1
  99. package/dist/jinja.mjs +1 -1
  100. package/dist/jison.mjs +1 -1
  101. package/dist/json.mjs +1 -1
  102. package/dist/json5.mjs +1 -1
  103. package/dist/jsonc.mjs +1 -1
  104. package/dist/jsonl.mjs +1 -1
  105. package/dist/jsonnet.mjs +1 -1
  106. package/dist/jssm.mjs +1 -1
  107. package/dist/jsx.mjs +1 -1
  108. package/dist/julia.mjs +1 -1
  109. package/dist/kotlin.mjs +1 -1
  110. package/dist/kusto.mjs +1 -1
  111. package/dist/latex.mjs +1 -1
  112. package/dist/lean.mjs +1 -1
  113. package/dist/less.mjs +1 -1
  114. package/dist/liquid.mjs +1 -1
  115. package/dist/llvm.mjs +1 -1
  116. package/dist/log.mjs +1 -1
  117. package/dist/logo.mjs +1 -1
  118. package/dist/lua.mjs +1 -1
  119. package/dist/luau.mjs +1 -1
  120. package/dist/make.mjs +1 -1
  121. package/dist/markdown-vue.mjs +1 -1
  122. package/dist/markdown.mjs +1 -1
  123. package/dist/marko.mjs +1 -1
  124. package/dist/matlab.mjs +1 -1
  125. package/dist/mdc.mjs +1 -1
  126. package/dist/mdx.mjs +1 -1
  127. package/dist/mermaid.mjs +1 -1
  128. package/dist/mipsasm.mjs +1 -1
  129. package/dist/mojo.mjs +1 -1
  130. package/dist/move.mjs +1 -1
  131. package/dist/narrat.mjs +1 -1
  132. package/dist/nextflow.mjs +1 -1
  133. package/dist/nginx.mjs +1 -1
  134. package/dist/nim.mjs +1 -1
  135. package/dist/nix.mjs +1 -1
  136. package/dist/nushell.mjs +1 -1
  137. package/dist/objective-c.mjs +1 -1
  138. package/dist/objective-cpp.mjs +1 -1
  139. package/dist/ocaml.mjs +1 -1
  140. package/dist/pascal.mjs +1 -1
  141. package/dist/perl.mjs +1 -1
  142. package/dist/php.mjs +1 -1
  143. package/dist/plsql.mjs +1 -1
  144. package/dist/po.mjs +1 -1
  145. package/dist/polar.mjs +1 -1
  146. package/dist/postcss.mjs +1 -1
  147. package/dist/powerquery.mjs +1 -1
  148. package/dist/powershell.mjs +1 -1
  149. package/dist/prisma.mjs +1 -1
  150. package/dist/prolog.mjs +1 -1
  151. package/dist/proto.mjs +1 -1
  152. package/dist/pug.mjs +1 -1
  153. package/dist/puppet.mjs +1 -1
  154. package/dist/purescript.mjs +1 -1
  155. package/dist/python.mjs +1 -1
  156. package/dist/qml.mjs +1 -1
  157. package/dist/qss.mjs +1 -1
  158. package/dist/r.mjs +1 -1
  159. package/dist/racket.mjs +1 -1
  160. package/dist/raku.mjs +1 -1
  161. package/dist/razor.mjs +1 -1
  162. package/dist/reg.mjs +1 -1
  163. package/dist/regexp.mjs +1 -1
  164. package/dist/rel.mjs +1 -1
  165. package/dist/riscv.mjs +1 -1
  166. package/dist/rst.mjs +1 -1
  167. package/dist/ruby.mjs +1 -1
  168. package/dist/rust.mjs +1 -1
  169. package/dist/sas.mjs +1 -1
  170. package/dist/sass.mjs +1 -1
  171. package/dist/scala.mjs +1 -1
  172. package/dist/scheme.mjs +1 -1
  173. package/dist/scss.mjs +1 -1
  174. package/dist/sdbl.mjs +1 -1
  175. package/dist/shaderlab.mjs +1 -1
  176. package/dist/shellscript.mjs +1 -1
  177. package/dist/shellsession.mjs +1 -1
  178. package/dist/smalltalk.mjs +1 -1
  179. package/dist/solidity.mjs +1 -1
  180. package/dist/soy.mjs +1 -1
  181. package/dist/sparql.mjs +1 -1
  182. package/dist/splunk.mjs +1 -1
  183. package/dist/sql.mjs +1 -1
  184. package/dist/ssh-config.mjs +1 -1
  185. package/dist/stata.mjs +1 -1
  186. package/dist/stylus.mjs +1 -1
  187. package/dist/svelte.mjs +1 -1
  188. package/dist/swift.mjs +1 -1
  189. package/dist/system-verilog.mjs +1 -1
  190. package/dist/systemd.mjs +1 -1
  191. package/dist/talonscript.mjs +1 -1
  192. package/dist/tasl.mjs +1 -1
  193. package/dist/tcl.mjs +1 -1
  194. package/dist/templ.mjs +1 -1
  195. package/dist/terraform.mjs +1 -1
  196. package/dist/tex.mjs +1 -1
  197. package/dist/toml.mjs +1 -1
  198. package/dist/tsx.mjs +1 -1
  199. package/dist/turtle.mjs +1 -1
  200. package/dist/twig.mjs +1 -1
  201. package/dist/typescript.mjs +1 -1
  202. package/dist/typespec.mjs +1 -1
  203. package/dist/typst.mjs +1 -1
  204. package/dist/v.mjs +1 -1
  205. package/dist/vala.mjs +1 -1
  206. package/dist/vb.mjs +1 -1
  207. package/dist/verilog.mjs +1 -1
  208. package/dist/vhdl.mjs +1 -1
  209. package/dist/viml.mjs +1 -1
  210. package/dist/vue-html.mjs +1 -1
  211. package/dist/vue-sfc-style-variable-injection.mjs +1 -1
  212. package/dist/vue.mjs +3 -3
  213. package/dist/vyper.mjs +1 -1
  214. package/dist/wasm.mjs +1 -1
  215. package/dist/wenyan.mjs +1 -1
  216. package/dist/wgsl.mjs +1 -1
  217. package/dist/wikitext.mjs +1 -1
  218. package/dist/wit.mjs +1 -1
  219. package/dist/wolfram.mjs +1 -1
  220. package/dist/xml.mjs +1 -1
  221. package/dist/xsl.mjs +1 -1
  222. package/dist/yaml.mjs +1 -1
  223. package/dist/zenscript.mjs +1 -1
  224. package/dist/zig.mjs +1 -1
  225. package/package.json +3 -3
@@ -3,7 +3,7 @@ import css from './css.mjs'
3
3
  import javascript from './javascript.mjs'
4
4
  import yaml from './yaml.mjs'
5
5
 
6
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"Handlebars\",\"name\":\"handlebars\",\"patterns\":[{\"include\":\"#yfm\"},{\"include\":\"#extends\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"},{\"include\":\"#inline_script\"},{\"include\":\"#html_tags\"},{\"include\":\"text.html.basic\"}],\"repository\":{\"block_comments\":{\"patterns\":[{\"begin\":\"\\\\{\\\\{!--\",\"end\":\"--}}\",\"name\":\"comment.block.handlebars\",\"patterns\":[{\"match\":\"@\\\\w*\",\"name\":\"keyword.annotation.handlebars\"},{\"include\":\"#comments\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-{2,3}\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]}]},\"block_helper\":{\"begin\":\"(\\\\{\\\\{)(~?#)([-a-zA-Z0-9_./>]+)\\\\s?(@?[-a-zA-Z0-9_./]+)*\\\\s?(@?[-a-zA-Z0-9_./]+)*\\\\s?(@?[-a-zA-Z0-9_./]+)*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars keyword.control\"},\"4\":{\"name\":\"variable.parameter.handlebars\"},\"5\":{\"name\":\"support.constant.handlebars\"},\"6\":{\"name\":\"variable.parameter.handlebars\"},\"7\":{\"name\":\"support.constant.handlebars\"}},\"end\":\"(~?}})\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.block.start.handlebars\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#handlebars_attribute\"}]},\"comments\":{\"patterns\":[{\"begin\":\"\\\\{\\\\{!\",\"end\":\"}}\",\"name\":\"comment.block.handlebars\",\"patterns\":[{\"match\":\"@\\\\w*\",\"name\":\"keyword.annotation.handlebars\"},{\"include\":\"#comments\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-{2,3}\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]}]},\"else_token\":{\"begin\":\"(\\\\{\\\\{)(~?else)(@?\\\\s(if)\\\\s([-a-zA-Z0-9_.(\\\\s)/]+))?\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars\"},\"4\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(~?}}}*)\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.inline.else.handlebars\"},\"end_block\":{\"begin\":\"(\\\\{\\\\{)(~?/)([a-zA-Z0-9/_.-]+)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars keyword.control\"}},\"end\":\"(~?}})\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.block.end.handlebars\",\"patterns\":[]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x\\\\h+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"escaped-double-quote\":{\"match\":\"\\\\\\\\\\\"\",\"name\":\"constant.character.escape.js\"},\"escaped-single-quote\":{\"match\":\"\\\\\\\\'\",\"name\":\"constant.character.escape.js\"},\"extends\":{\"patterns\":[{\"begin\":\"(\\\\{\\\\{!<)\\\\s([-a-zA-Z0-9_./]+)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.handlebars\"},\"2\":{\"name\":\"support.class.handlebars\"}},\"end\":\"(}})\",\"endCaptures\":{\"1\":{\"name\":\"support.function.handlebars\"}},\"name\":\"meta.preprocessor.handlebars\"}]},\"handlebars_attribute\":{\"patterns\":[{\"include\":\"#handlebars_attribute_name\"},{\"include\":\"#handlebars_attribute_value\"}]},\"handlebars_attribute_name\":{\"begin\":\"\\\\b([-a-zA-Z0-9_.]+)\\\\b=\",\"captures\":{\"1\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(?=['\\\"]|)\",\"name\":\"entity.other.attribute-name.handlebars\"},\"handlebars_attribute_value\":{\"begin\":\"([-a-zA-Z0-9_./]+)\\\\b\",\"captures\":{\"1\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(['\\\"]|)\",\"name\":\"entity.other.attribute-value.handlebars\",\"patterns\":[{\"include\":\"#string\"}]},\"html_tags\":{\"patterns\":[{\"begin\":\"(<)([a-zA-Z0-9:-]+)(?=[^>]*></\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag_generic_attribute\"},{\"include\":\"#string\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(DOCTYPE|doctype)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\"[^\\\">]*\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\[CDATA\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\s*)(?!--|>)\\\\S(\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"(?:^\\\\s+)?(<)((?i:style))\\\\b(?![^>]*/>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.style.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)((?i:style))(>)(?:\\\\s*\\\\n)?\",\"name\":\"source.css.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(?=</(?i:style))\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"(?:^\\\\s+)?(<)((?i:script))\\\\b(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\s*\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.js.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"(//).*?((?=</script)|$\\\\n?)\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\*/|(?=</script)\",\"name\":\"comment.block.js\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(</?)((?i:body|head|html)\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|[qs]|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-zA-Z0-9:-]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-zA-Z0-9{}:-]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.tokenised.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.tokenised.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]},\"inline_script\":{\"begin\":\"(?:^\\\\s+)?(<)((?i:script))\\\\b.*(type)=([\\\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\\\"'])(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"},\"3\":{\"name\":\"entity.other.attribute-name.html\"},\"4\":{\"name\":\"string.quoted.double.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\s*\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.handlebars.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"},{\"include\":\"#html_tags\"},{\"include\":\"text.html.basic\"}]}]},\"partial_and_var\":{\"begin\":\"(\\\\{\\\\{~?\\\\{*(>|!<)*)\\\\s*(@?[-a-zA-Z0-9$_./]+)*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"3\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(~?}}}*)\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.inline.other.handlebars\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#handlebars_attribute\"}]},\"string\":{\"patterns\":[{\"include\":\"#string-single-quoted\"},{\"include\":\"#string-double-quoted\"}]},\"string-double-quoted\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.handlebars\",\"patterns\":[{\"include\":\"#escaped-double-quote\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#else_token\"},{\"include\":\"#end_block\"},{\"include\":\"#partial_and_var\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.handlebars\",\"patterns\":[{\"include\":\"#escaped-single-quote\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#else_token\"},{\"include\":\"#end_block\"},{\"include\":\"#partial_and_var\"}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#tag_id_attribute\"},{\"include\":\"#tag_generic_attribute\"},{\"include\":\"#string\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"}]},\"tag_generic_attribute\":{\"begin\":\"\\\\b([a-zA-Z0-9_-]+)\\\\b\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.generic.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=['\\\"]|)\",\"name\":\"entity.other.attribute-name.html\",\"patterns\":[{\"include\":\"#string\"}]},\"tag_id_attribute\":{\"begin\":\"\\\\b(id)\\\\b\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=['\\\"]|)\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"include\":\"#string\"}]},\"yfm\":{\"patterns\":[{\"begin\":\"(?<!\\\\s)---\\\\n$\",\"end\":\"^---\\\\s\",\"name\":\"markup.raw.yaml.front-matter\",\"patterns\":[{\"include\":\"source.yaml\"}]}]}},\"scopeName\":\"text.html.handlebars\",\"embeddedLangs\":[\"html\",\"css\",\"javascript\",\"yaml\"],\"aliases\":[\"hbs\"]}"))
6
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"Handlebars\",\"name\":\"handlebars\",\"patterns\":[{\"include\":\"#yfm\"},{\"include\":\"#extends\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"},{\"include\":\"#inline_script\"},{\"include\":\"#html_tags\"},{\"include\":\"text.html.basic\"}],\"repository\":{\"block_comments\":{\"patterns\":[{\"begin\":\"\\\\{\\\\{!--\",\"end\":\"--}}\",\"name\":\"comment.block.handlebars\",\"patterns\":[{\"match\":\"@\\\\w*\",\"name\":\"keyword.annotation.handlebars\"},{\"include\":\"#comments\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-{2,3}\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]}]},\"block_helper\":{\"begin\":\"(\\\\{\\\\{)(~?#)([\\\\--9>A-Z_a-z]+)\\\\s?(@?[\\\\--9A-Z_a-z]+)*\\\\s?(@?[\\\\--9A-Z_a-z]+)*\\\\s?(@?[\\\\--9A-Z_a-z]+)*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars keyword.control\"},\"4\":{\"name\":\"variable.parameter.handlebars\"},\"5\":{\"name\":\"support.constant.handlebars\"},\"6\":{\"name\":\"variable.parameter.handlebars\"},\"7\":{\"name\":\"support.constant.handlebars\"}},\"end\":\"(~?}})\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.block.start.handlebars\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#handlebars_attribute\"}]},\"comments\":{\"patterns\":[{\"begin\":\"\\\\{\\\\{!\",\"end\":\"}}\",\"name\":\"comment.block.handlebars\",\"patterns\":[{\"match\":\"@\\\\w*\",\"name\":\"keyword.annotation.handlebars\"},{\"include\":\"#comments\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-{2,3}\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]}]},\"else_token\":{\"begin\":\"(\\\\{\\\\{)(~?else)(@?\\\\s(if)\\\\s([()\\\\--9A-Z_a-z\\\\s]+))?\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars\"},\"4\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(~?}}}*)\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.inline.else.handlebars\"},\"end_block\":{\"begin\":\"(\\\\{\\\\{)(~?/)([\\\\--9A-Z_a-z]+)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars keyword.control\"}},\"end\":\"(~?}})\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.block.end.handlebars\",\"patterns\":[]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([0-9A-Za-z]+|#[0-9]+|#x\\\\h+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"escaped-double-quote\":{\"match\":\"\\\\\\\\\\\"\",\"name\":\"constant.character.escape.js\"},\"escaped-single-quote\":{\"match\":\"\\\\\\\\'\",\"name\":\"constant.character.escape.js\"},\"extends\":{\"patterns\":[{\"begin\":\"(\\\\{\\\\{!<)\\\\s([\\\\--9A-Z_a-z]+)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.handlebars\"},\"2\":{\"name\":\"support.class.handlebars\"}},\"end\":\"(}})\",\"endCaptures\":{\"1\":{\"name\":\"support.function.handlebars\"}},\"name\":\"meta.preprocessor.handlebars\"}]},\"handlebars_attribute\":{\"patterns\":[{\"include\":\"#handlebars_attribute_name\"},{\"include\":\"#handlebars_attribute_value\"}]},\"handlebars_attribute_name\":{\"begin\":\"\\\\b([-.0-9A-Z_a-z]+)\\\\b=\",\"captures\":{\"1\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(?=[\\\"']|)\",\"name\":\"entity.other.attribute-name.handlebars\"},\"handlebars_attribute_value\":{\"begin\":\"([\\\\--9A-Z_a-z]+)\\\\b\",\"captures\":{\"1\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"([\\\"']|)\",\"name\":\"entity.other.attribute-value.handlebars\",\"patterns\":[{\"include\":\"#string\"}]},\"html_tags\":{\"patterns\":[{\"begin\":\"(<)([-0-:A-Za-z]+)(?=[^>]*></\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag_generic_attribute\"},{\"include\":\"#string\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(DOCTYPE|doctype)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\"[^\\\">]*\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\[CDATA\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\s*)(?!--|>)\\\\S(\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"(?:^\\\\s+)?(<)((?i:style))\\\\b(?![^>]*/>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.style.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)((?i:style))(>)(?:\\\\s*\\\\n)?\",\"name\":\"source.css.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(?=</(?i:style))\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"(?:^\\\\s+)?(<)((?i:script))\\\\b(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\s*\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.js.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"(//).*?((?=</script)|$\\\\n?)\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\*/|(?=</script)\",\"name\":\"comment.block.js\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(</?)((?i:body|head|html))\\\\b\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre))\\\\b\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|[qs]|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var))\\\\b\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([-0-:A-Za-z]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([-0-:A-Za-{}]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.tokenised.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.tokenised.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]},\"inline_script\":{\"begin\":\"(?:^\\\\s+)?(<)((?i:script))\\\\b.*(type)=([\\\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\\\"'])(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"},\"3\":{\"name\":\"entity.other.attribute-name.html\"},\"4\":{\"name\":\"string.quoted.double.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\s*\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.handlebars.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"},{\"include\":\"#html_tags\"},{\"include\":\"text.html.basic\"}]}]},\"partial_and_var\":{\"begin\":\"(\\\\{\\\\{~?\\\\{*(>|!<)*)\\\\s*(@?[$\\\\--9A-Z_a-z]+)*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"3\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(~?}}}*)\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.inline.other.handlebars\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#handlebars_attribute\"}]},\"string\":{\"patterns\":[{\"include\":\"#string-single-quoted\"},{\"include\":\"#string-double-quoted\"}]},\"string-double-quoted\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.handlebars\",\"patterns\":[{\"include\":\"#escaped-double-quote\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#else_token\"},{\"include\":\"#end_block\"},{\"include\":\"#partial_and_var\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.handlebars\",\"patterns\":[{\"include\":\"#escaped-single-quote\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#else_token\"},{\"include\":\"#end_block\"},{\"include\":\"#partial_and_var\"}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#tag_id_attribute\"},{\"include\":\"#tag_generic_attribute\"},{\"include\":\"#string\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"}]},\"tag_generic_attribute\":{\"begin\":\"\\\\b([-0-9A-Z_a-z]+)\\\\b\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.generic.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[\\\"']|)\",\"name\":\"entity.other.attribute-name.html\",\"patterns\":[{\"include\":\"#string\"}]},\"tag_id_attribute\":{\"begin\":\"\\\\b(id)\\\\b\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[\\\"']|)\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"include\":\"#string\"}]},\"yfm\":{\"patterns\":[{\"begin\":\"(?<!\\\\s)---\\\\n$\",\"end\":\"^---\\\\s\",\"name\":\"markup.raw.yaml.front-matter\",\"patterns\":[{\"include\":\"source.yaml\"}]}]}},\"scopeName\":\"text.html.handlebars\",\"embeddedLangs\":[\"html\",\"css\",\"javascript\",\"yaml\"],\"aliases\":[\"hbs\"]}"))
7
7
 
8
8
  export default [
9
9
  ...html,
package/dist/haskell.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"Haskell\",\"fileTypes\":[\"hs\",\"hs-boot\",\"hsig\"],\"name\":\"haskell\",\"patterns\":[{\"include\":\"#liquid_haskell\"},{\"include\":\"#comment_like\"},{\"include\":\"#numeric_literals\"},{\"include\":\"#string_literal\"},{\"include\":\"#char_literal\"},{\"match\":\"(?<![@#])-}\",\"name\":\"invalid\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(\\\\))\",\"name\":\"constant.language.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"constant.language.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*,[\\\\s,]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[\\\\s,]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(\\\\[)\\\\s*(])\",\"name\":\"constant.language.empty-list.haskell\"},{\"begin\":\"(\\\\b(?<!')(module)|^(signature))(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.module.haskell\"},\"3\":{\"name\":\"keyword.other.signature.haskell\"}},\"end\":\"(?=\\\\b(?<!')where\\\\b(?!'))\",\"name\":\"meta.declaration.module.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"},{\"match\":\"[a-z]+\",\"name\":\"invalid\"}]},{\"include\":\"#ffi\"},{\"begin\":\"^(\\\\s*)(class)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.class.haskell\"}},\"end\":\"(?=(?<!')\\\\bwhere\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.class.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(data|newtype)(?:\\\\s+(instance))?\\\\s+((?:(?!(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:=|--+)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])|\\\\b(?<!')(?:where|deriving)\\\\b(?!')|\\\\{-).)*)(?=\\\\b(?<!'')where\\\\b(?!''))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.$2.haskell\"},\"3\":{\"name\":\"keyword.other.instance.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=(?<!')\\\\bderiving\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.$2.generalized.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<!')\\\\b(where)\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#gadt_constructor\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\b(?<!')(where)\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"},{\"include\":\"#deriving\"},{\"include\":\"#gadt_constructor\"}]},{\"include\":\"#role_annotation\"},{\"begin\":\"^(\\\\s*)(pattern)\\\\s+(.*?)\\\\s+(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.pattern.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.pattern.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\s*(pattern)\\\\b(?!')\",\"captures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.pattern.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\s*)(data|newtype)(?:\\\\s+(family|instance))?\\\\s+(((?!(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:=|--+)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])|\\\\b(?<!')(?:where|deriving)\\\\b(?!')|\\\\{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.$2.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.$2.algebraic.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#forall\"},{\"include\":\"#adt_constructor\"},{\"include\":\"#context\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(type)\\\\s+(family)\\\\b(?!')(((?!(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:=|--+)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])|\\\\b(?<!')where\\\\b(?!')|\\\\{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.family.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.type.family.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(type)(?:\\\\s+(instance))?\\\\s+(((?!(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:=|--+|::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])|\\\\{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.instance.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(instance)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.instance.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(import)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.import.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.import.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"}},\"match\":\"(qualified|as|hiding)\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"}]},{\"include\":\"#deriving\"},{\"include\":\"#layout_herald\"},{\"include\":\"#keyword\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#integer_literals\"},{\"include\":\"#infix_op\"}]}},\"match\":\"^\\\\s*(infix[lr]?)\\\\s+(.*)\",\"name\":\"meta.fixity-declaration.haskell\"},{\"include\":\"#overloaded_label\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#fun_decl\"},{\"include\":\"#qualifier\"},{\"include\":\"#data_constructor\"},{\"include\":\"#start_type_signature\"},{\"include\":\"#prefix_op\"},{\"include\":\"#infix_op\"},{\"begin\":\"(\\\\()(#)\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#quasi_quote\"},{\"begin\":\"(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record\"}],\"repository\":{\"adt_constructor\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:(=)|(\\\\|))(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.eq.haskell\"},\"2\":{\"name\":\"keyword.operator.pipe.haskell\"}},\"end\":\"(?:\\\\G|^)\\\\s*(?:(?<!')\\\\b([\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'.]+)|('?(?<paren>\\\\((?:[^()]?|\\\\g<paren>)*\\\\)))|('?(?<brac>\\\\((?:[^\\\\[\\\\]]?|\\\\g<brac>)*])))\\\\s*(?:(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)|(`)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`))|(?<!')\\\\b([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"2\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"6\":{\"name\":\"constant.other.operator.haskell\"},\"7\":{\"name\":\"punctuation.backtick.haskell\"},\"8\":{\"name\":\"constant.other.haskell\"},\"9\":{\"name\":\"punctuation.backtick.haskell\"},\"10\":{\"name\":\"constant.other.haskell\"},\"11\":{\"name\":\"punctuation.paren.haskell\"},\"12\":{\"name\":\"constant.other.operator.haskell\"},\"13\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#record_decl\"},{\"include\":\"#forall\"},{\"include\":\"#context\"}]}]},\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},\"char_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.haskell\"},\"2\":{\"name\":\"constant.character.escape.haskell\"},\"3\":{\"name\":\"constant.character.escape.octal.haskell\"},\"4\":{\"name\":\"constant.character.escape.hexadecimal.haskell\"},\"5\":{\"name\":\"constant.character.escape.control.haskell\"},\"6\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"match\":\"(?<![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])(')(?:[ -\\\\[\\\\]-~]|(\\\\\\\\(?: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\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x\\\\h+)|(\\\\\\\\\\\\^[A-Z@\\\\[\\\\]\\\\\\\\^_]))(')\",\"name\":\"string.quoted.single.haskell\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.haskell\"},\"comment_like\":{\"patterns\":[{\"include\":\"#cpp\"},{\"include\":\"#pragma\"},{\"include\":\"#comments\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(--\\\\s[|$])\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?=^(?!\\\\1--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])))\",\"name\":\"comment.block.documentation.haskell\"},{\"begin\":\"(^[ \\\\t]+)?(--\\\\s[\\\\^*])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.documentation.haskell\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\\\\s?[|$*^]\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.documentation.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},{\"begin\":\"(^[ \\\\t]+)?(?=--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-dash.haskell\"}]},{\"include\":\"#block_comment\"}]},\"context\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_signature\"}]},\"2\":{\"name\":\"keyword.operator.big-arrow.haskell\"}},\"match\":\"(.*)(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(=>|⇒)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"cpp\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.c\"}},\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*(?![.'\\\\w])\",\"name\":\"constant.other.haskell\"},\"deriving\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(deriving)\\\\s+(?:(via|stock|newtype|anyclass)\\\\s+)?\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.deriving.haskell\"},\"3\":{\"name\":\"keyword.other.deriving.strategy.$3.haskell\"}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"match\":\"(?<!')\\\\b(instance)\\\\b(?!')\",\"name\":\"keyword.other.instance.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.strategy.$1.haskell\"}},\"match\":\"(?<!')\\\\b(via|stock|newtype|anyclass)\\\\b(?!')\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"5\":{\"name\":\"keyword.other.deriving.strategy.via.haskell\"},\"6\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s+([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(\\\\s+(via)\\\\s+(.*)$)?\",\"name\":\"meta.deriving.haskell\"},{\"match\":\"(?<!')\\\\b(via)\\\\b(?!')\",\"name\":\"keyword.other.deriving.strategy.via.haskell\"}]},\"double_colon\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"match\":\"\\\\s*(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\\\\s*\"},\"export_constructs\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"\\\\b(?<!')(pattern)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"begin\":\"\\\\b(?<!')(type)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.type.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"storage.type.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"match\":\"(?<!')\\\\b[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"storage.type.haskell\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"ffi\":{\"begin\":\"^(\\\\s*)(foreign)\\\\s+(import|export)\\\\s+\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.foreign.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.$3.foreign.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.calling-convention.$1.haskell\"}},\"match\":\"\\\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\\\s+\"},{\"begin\":\"(?=\\\")|(?=\\\\b(?<!')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!'))\",\"end\":\"(?=(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},\"3\":{\"name\":\"entity.name.function.haskell\"},\"4\":{\"name\":\"entity.name.function.infix.haskell\"}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*(?:\\\\b(?<!'')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!')|\\\\(\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*\\\\))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*$\"},{\"captures\":{\"0\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\"\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.function.infix.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"\\\\b(?<!'')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!')|(\\\\()\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\"}]},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]},\"float_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.floating.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.floating.hexadecimal.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][_0-9]*\\\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*)|(0(?:[xX]_*\\\\h[_\\\\h]*\\\\.\\\\h[_\\\\h]*(?:[pP][-+]?[0-9][_0-9]*)?|[xX]_*\\\\h[_\\\\h]*[pP][-+]?[0-9][_0-9]*)))\\\\b(?!')\"},\"forall\":{\"begin\":\"\\\\b(?<!')(forall|∀)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.forall.haskell\"}},\"end\":\"(\\\\.)|(->|→)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.period.haskell\"},\"2\":{\"name\":\"keyword.operator.arrow.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_variable\"},{\"include\":\"#type_signature\"}]},\"fun_decl\":{\"begin\":\"^(\\\\s*)(?<fn>(?:[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*#*|\\\\(\\\\s*(?!--+\\\\))[[\\\\p{S}\\\\p{P}]&&[^(),:;\\\\[\\\\]`{}_\\\"']][[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*\\\\s*\\\\))(?:\\\\s*,\\\\s*\\\\g<fn>)?)\\\\s*(?<![[\\\\p{S}\\\\p{P}]&&[^),;\\\\]`}_\\\"']])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.haskell\",\"patterns\":[{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"3\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]]))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.function.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},\"gadt_constructor\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(?:(\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\)))\",\"beginCaptures\":{\"2\":{\"name\":\"constant.other.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"},\"4\":{\"name\":\"constant.other.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(?=\\\\b(?<!'')deriving\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]}]},\"infix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"keyword.operator.infix.haskell\"}},\"match\":\"((?:(?<!'')('')?[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.backtick.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`)\",\"name\":\"keyword.operator.function.infix.haskell\"}]},\"inline_phase\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.inlining-phase.haskell\",\"patterns\":[{\"match\":\"~\",\"name\":\"punctuation.tilde.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"\\\\w*\",\"name\":\"invalid\"}]},\"integer_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.integral.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.integral.hexadecimal.haskell\"},\"3\":{\"name\":\"constant.numeric.integral.octal.haskell\"},\"4\":{\"name\":\"constant.numeric.integral.binary.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*\\\\h[_\\\\h]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\\\\b(?!')\"},\"keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.$2.haskell\"}},\"match\":\"\\\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\\\b(?!')\"},\"layout_herald\":{\"begin\":\"(?<!')\\\\b(?:(where|let|m?do)|(of))\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.of.haskell\"},\"3\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},\"liquid_haskell\":{\"begin\":\"\\\\{-@\",\"end\":\"@-}\",\"name\":\"block.liquidhaskell.haskell\",\"patterns\":[{\"include\":\"$self\"}]},\"module_exports\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.declaration.exports.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.module.haskell\"}},\"match\":\"\\\\b(?<!')(module)\\\\b(?!')\"},{\"include\":\"#comma\"},{\"include\":\"#export_constructs\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#export_constructs\"},{\"include\":\"#comma\"}]}]},\"module_name\":{\"match\":\"(?<conid>[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*(\\\\.\\\\g<conid>)?)\",\"name\":\"entity.name.namespace.haskell\"},\"numeric_literals\":{\"patterns\":[{\"include\":\"#float_literals\"},{\"include\":\"#integer_literals\"}]},\"overloaded_label\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.hash.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"(?<![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(#)(?:(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")|[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'.]+)\",\"name\":\"entity.name.label.haskell\"}]},\"pragma\":{\"begin\":\"\\\\{-#\",\"end\":\"#-}\",\"name\":\"meta.preprocessor.haskell\",\"patterns\":[{\"begin\":\"(?i)\\\\b(?<!')(LANGUAGE)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"match\":\"(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)\",\"name\":\"invalid.deprecated\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.preprocessor.extension.haskell\"}},\"match\":\"((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|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[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|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|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))\"},{\"include\":\"#comma\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)(?:\\\\s*(\\\\[[^\\\\[\\\\]]*])?\\\\s*|\\\\s+)(instance)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#inline_phase\"}]},\"3\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)\\\\b(?!')(?:\\\\s+(INLINE)\\\\b(?!'))?\\\\s*(\\\\[[^\\\\[\\\\]]*])?\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#inline_phase\"}]}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"(?i)\\\\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\\\\b(?!')\",\"name\":\"keyword.other.preprocessor.haskell\"},{\"begin\":\"(?i)\\\\b(DEPRECATED|WARNING)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#string_literal\"}]}]},\"prefix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"entity.name.function.infix.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(?!(?:--+|\\\\.\\\\.)\\\\))(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\\\\s*(\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\[)([edp])?(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\[)(t)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\[)(?:(\\\\$\\\\$)|(\\\\$))?([[^\\\\s\\\\p{S}\\\\p{P}].'_]*)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"4\":{\"name\":\"entity.name.quasi-quoter.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"5\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\5]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\"}]},\"record\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_field\"}]},\"record_decl\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.definition.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_decl_field\"}]},\"record_decl_field\":{\"begin\":\"(?:([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.definition.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.definition.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"},{\"include\":\"#record_decl_field\"}]},\"record_field\":{\"patterns\":[{\"begin\":\"(?:([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d.']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record_wildcard\"}]},\"record_wildcard\":{\"captures\":{\"1\":{\"name\":\"variable.other.member.wildcard.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(\\\\.\\\\.)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"reserved_symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-dot.haskell\"},\"2\":{\"name\":\"keyword.operator.colon.haskell\"},\"3\":{\"name\":\"keyword.operator.eq.haskell\"},\"4\":{\"name\":\"keyword.operator.lambda.haskell\"},\"5\":{\"name\":\"keyword.operator.pipe.haskell\"},\"6\":{\"name\":\"keyword.operator.arrow.left.haskell\"},\"7\":{\"name\":\"keyword.operator.arrow.haskell\"},\"8\":{\"name\":\"keyword.operator.arrow.left.tail.haskell\"},\"9\":{\"name\":\"keyword.operator.arrow.left.tail.double.haskell\"},\"10\":{\"name\":\"keyword.operator.arrow.tail.haskell\"},\"11\":{\"name\":\"keyword.operator.arrow.tail.double.haskell\"},\"12\":{\"name\":\"keyword.other.forall.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:(\\\\.\\\\.)|(:)|(=)|(\\\\\\\\)|(\\\\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.postfix.hash.haskell\"}},\"match\":\"(?<=[[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^#,;\\\\[`{]])(#+)(?![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^),;\\\\]`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d)}\\\\]])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d(\\\\[{])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.tilde.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.bang.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.minus.haskell\"},\"4\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"5\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"}},\"match\":\"(?<![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(?:(~)|(!)|(-)|(\\\\$)|(\\\\$\\\\$))(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d({\\\\[])\"}]},\"role_annotation\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(type)\\\\s+(role)\\\\b(?!')\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.role.haskell\"}},\"end\":\"(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.role-annotation.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_constructor\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.role.$1.haskell\"}},\"match\":\"\\\\b(?<!')(nominal|representational|phantom)\\\\b(?!')\"}]}]},\"start_type_signature\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[\\\\],]|(?<!')\\\\b(in|then|else|of)\\\\b(?!')|(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]])|([#@])-}|(?=[};])|^(?!\\\\1\\\\s*\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$)))\",\"name\":\"meta.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[\\\\],]|\\\\b(?<!')(in|then|else|of)\\\\b(?!')|([#@])-}|(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]])|(?=[};])|$)\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"string_literal\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.haskell\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"name\":\"string.quoted.double.haskell\",\"patterns\":[{\"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\\\\\\\\\\\"'\\\\&])\",\"name\":\"constant.character.escape.haskell\"},{\"match\":\"\\\\\\\\(?:o[0-7]+|x\\\\h+|[0-9]+)\",\"name\":\"constant.character.escape.octal.haskell\"},{\"match\":\"\\\\\\\\\\\\^[A-Z@\\\\[\\\\]\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.haskell\"},{\"begin\":\"\\\\\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.begin.haskell\"}},\"end\":\"\\\\\\\\\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.end.haskell\"}},\"patterns\":[{\"match\":\"\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.haskell\"}]}]},\"type_application\":{\"patterns\":[{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(?=\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?<=\\\")\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"type_constructor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.haskell\"}},\"match\":\"(')?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\"}]},\"type_operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.operator.infix.haskell\"}},\"match\":\"(?:(?<!')('))?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(?![#@]?-})(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.backtick.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.infix.haskell\"},\"5\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(')?(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`)\"}]},\"type_signature\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*(\\\\))\",\"name\":\"support.constant.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*,[\\\\s,]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[\\\\s,]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(')?(\\\\[)\\\\s*(])\",\"name\":\"support.constant.empty-list.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"name\":\"keyword.operator.double-colon.haskell\"},{\"include\":\"#forall\"},{\"match\":\"=>|⇒\",\"name\":\"keyword.operator.big-arrow.haskell\"},{\"include\":\"#string_literal\"},{\"match\":\"'[^']'\",\"name\":\"invalid\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#type_operator\"},{\"include\":\"#type_constructor\"},{\"begin\":\"(\\\\()(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"include\":\"#type_variable\"}]},\"type_variable\":{\"match\":\"\\\\b(?<!')(?!(?:forall|deriving)\\\\b(?!'))[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"variable.other.generic-type.haskell\"},\"where\":{\"patterns\":[{\"begin\":\"(?<!')\\\\b(where)\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\b(?<!')(where)\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"}]}},\"scopeName\":\"source.haskell\",\"aliases\":[\"hs\"]}"))
1
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"Haskell\",\"fileTypes\":[\"hs\",\"hs-boot\",\"hsig\"],\"name\":\"haskell\",\"patterns\":[{\"include\":\"#liquid_haskell\"},{\"include\":\"#comment_like\"},{\"include\":\"#numeric_literals\"},{\"include\":\"#string_literal\"},{\"include\":\"#char_literal\"},{\"match\":\"(?<![#@])-}\",\"name\":\"invalid\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(\\\\))\",\"name\":\"constant.language.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"constant.language.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*,[,\\\\s]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[,\\\\s]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(\\\\[)\\\\s*(])\",\"name\":\"constant.language.empty-list.haskell\"},{\"begin\":\"(\\\\b(?<!')(module)|^(signature))\\\\b((?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.module.haskell\"},\"3\":{\"name\":\"keyword.other.signature.haskell\"}},\"end\":\"(?=\\\\b(?<!')where\\\\b(?!'))\",\"name\":\"meta.declaration.module.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"},{\"match\":\"[a-z]+\",\"name\":\"invalid\"}]},{\"include\":\"#ffi\"},{\"begin\":\"^(\\\\s*)(class)\\\\b((?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.class.haskell\"}},\"end\":\"(?=(?<!')\\\\bwhere\\\\b(?!'))|(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.class.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(data|newtype)(?:\\\\s+(instance))?\\\\s+((?:(?!(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:=|--+)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])|\\\\b(?<!')(?:where|deriving)\\\\b(?!')|\\\\{-).)*)(?=\\\\b(?<!'')where\\\\b(?!''))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.$2.haskell\"},\"3\":{\"name\":\"keyword.other.instance.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=(?<!')\\\\bderiving\\\\b(?!'))|(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.$2.generalized.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<!')\\\\b(where)\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#gadt_constructor\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\b(?<!')(where)\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"},{\"include\":\"#deriving\"},{\"include\":\"#gadt_constructor\"}]},{\"include\":\"#role_annotation\"},{\"begin\":\"^(\\\\s*)(pattern)\\\\s+(.*?)\\\\s+(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.pattern.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.pattern.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\s*(pattern)\\\\b(?!')\",\"captures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.pattern.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\s*)(data|newtype)(?:\\\\s+(family|instance))?\\\\s+(((?!(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:=|--+)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])|\\\\b(?<!')(?:where|deriving)\\\\b(?!')|\\\\{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.$2.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.$2.algebraic.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#forall\"},{\"include\":\"#adt_constructor\"},{\"include\":\"#context\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(type)\\\\s+(family)\\\\b(?!')(((?!(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:=|--+)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])|\\\\b(?<!')where\\\\b(?!')|\\\\{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.family.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.type.family.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(type)(?:\\\\s+(instance))?\\\\s+(((?!(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:=|--+|::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])|\\\\{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.instance.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(instance)\\\\b((?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.declaration.instance.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(import)\\\\b((?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.import.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.import.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"}},\"match\":\"(qualified|as|hiding)\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"}]},{\"include\":\"#deriving\"},{\"include\":\"#layout_herald\"},{\"include\":\"#keyword\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#integer_literals\"},{\"include\":\"#infix_op\"}]}},\"match\":\"^\\\\s*(infix[lr]?)\\\\s+(.*)\",\"name\":\"meta.fixity-declaration.haskell\"},{\"include\":\"#overloaded_label\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#fun_decl\"},{\"include\":\"#qualifier\"},{\"include\":\"#data_constructor\"},{\"include\":\"#start_type_signature\"},{\"include\":\"#prefix_op\"},{\"include\":\"#infix_op\"},{\"begin\":\"(\\\\()(#)\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#quasi_quote\"},{\"begin\":\"(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record\"}],\"repository\":{\"adt_constructor\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:(=)|(\\\\|))(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.eq.haskell\"},\"2\":{\"name\":\"keyword.operator.pipe.haskell\"}},\"end\":\"(?:\\\\G|^)\\\\s*(?:(?<!')\\\\b(['._\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]+)|('?(?<paren>\\\\((?:[^()]?|\\\\g<paren>)*\\\\)))|('?(?<brac>\\\\((?:[^]\\\\[]?|\\\\g<brac>)*])))\\\\s*(?:(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(:[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]*)|(`)([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)(`))|(?<!')\\\\b([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]*)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"2\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"6\":{\"name\":\"constant.other.operator.haskell\"},\"7\":{\"name\":\"punctuation.backtick.haskell\"},\"8\":{\"name\":\"constant.other.haskell\"},\"9\":{\"name\":\"punctuation.backtick.haskell\"},\"10\":{\"name\":\"constant.other.haskell\"},\"11\":{\"name\":\"punctuation.paren.haskell\"},\"12\":{\"name\":\"constant.other.operator.haskell\"},\"13\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#record_decl\"},{\"include\":\"#forall\"},{\"include\":\"#context\"}]}]},\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},\"char_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.haskell\"},\"2\":{\"name\":\"constant.character.escape.haskell\"},\"3\":{\"name\":\"constant.character.escape.octal.haskell\"},\"4\":{\"name\":\"constant.character.escape.hexadecimal.haskell\"},\"5\":{\"name\":\"constant.character.escape.control.haskell\"},\"6\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"match\":\"(?<!['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d])(')(?:[ -\\\\[\\\\]-~]|(\\\\\\\\(?: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]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x\\\\h+)|(\\\\\\\\\\\\^[@-_]))(')\",\"name\":\"string.quoted.single.haskell\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.haskell\"},\"comment_like\":{\"patterns\":[{\"include\":\"#cpp\"},{\"include\":\"#pragma\"},{\"include\":\"#comments\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(--\\\\s[$|])\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?=^(?!\\\\1--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])))\",\"name\":\"comment.block.documentation.haskell\"},{\"begin\":\"(^[\\\\t ]+)?(--\\\\s[*^])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.documentation.haskell\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\\\\s?[$*^|]\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.documentation.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},{\"begin\":\"(^[\\\\t ]+)?(?=--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-dash.haskell\"}]},{\"include\":\"#block_comment\"}]},\"context\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_signature\"}]},\"2\":{\"name\":\"keyword.operator.big-arrow.haskell\"}},\"match\":\"(.*)(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(=>|⇒)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\"},\"cpp\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.c\"}},\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*(?!['.\\\\w])\",\"name\":\"constant.other.haskell\"},\"deriving\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(deriving)\\\\s+(?:(via|stock|newtype|anyclass)\\\\s+)?\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.deriving.haskell\"},\"3\":{\"name\":\"keyword.other.deriving.strategy.$3.haskell\"}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"match\":\"(?<!')\\\\b(instance)\\\\b(?!')\",\"name\":\"keyword.other.instance.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.strategy.$1.haskell\"}},\"match\":\"(?<!')\\\\b(via|stock|newtype|anyclass)\\\\b(?!')\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"5\":{\"name\":\"keyword.other.deriving.strategy.via.haskell\"},\"6\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s+([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)(\\\\s+(via)\\\\s+(.*)$)?\",\"name\":\"meta.deriving.haskell\"},{\"match\":\"(?<!')\\\\b(via)\\\\b(?!')\",\"name\":\"keyword.other.deriving.strategy.via.haskell\"}]},\"double_colon\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"match\":\"\\\\s*(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\\\\s*\"},\"export_constructs\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"\\\\b(?<!')(pattern)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"begin\":\"\\\\b(?<!')(type)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.type.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"storage.type.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"match\":\"(?<!')\\\\b[_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\b[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\",\"name\":\"storage.type.haskell\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"ffi\":{\"begin\":\"^(\\\\s*)(foreign)\\\\s+((?:im|ex)port)\\\\s+\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.foreign.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.$3.foreign.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.calling-convention.$1.haskell\"}},\"match\":\"\\\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\\\s+\"},{\"begin\":\"(?=\\\")|(?=\\\\b(?<!')([_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)\\\\b(?!'))\",\"end\":\"(?=(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},\"3\":{\"name\":\"entity.name.function.haskell\"},\"4\":{\"name\":\"entity.name.function.infix.haskell\"}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*(?:\\\\b(?<!'')([_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)\\\\b(?!')|\\\\(\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*\\\\))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*$\"},{\"captures\":{\"0\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\"\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.function.infix.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"\\\\b(?<!'')([_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)\\\\b(?!')|(\\\\()\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*(\\\\))\"}]},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]},\"float_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.floating.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.floating.hexadecimal.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][0-9_]*\\\\.[0-9][0-9_]*(?:[Ee][-+]?[0-9][0-9_]*)?|[0-9][0-9_]*[Ee][-+]?[0-9][0-9_]*)|(0(?:[Xx]_*\\\\h[_\\\\h]*\\\\.\\\\h[_\\\\h]*(?:[Pp][-+]?[0-9][0-9_]*)?|[Xx]_*\\\\h[_\\\\h]*[Pp][-+]?[0-9][0-9_]*)))\\\\b(?!')\"},\"forall\":{\"begin\":\"\\\\b(?<!')(forall|∀)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.forall.haskell\"}},\"end\":\"(\\\\.)|(->|→)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.period.haskell\"},\"2\":{\"name\":\"keyword.operator.arrow.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_variable\"},{\"include\":\"#type_signature\"}]},\"fun_decl\":{\"begin\":\"^(\\\\s*)(?<fn>(?:[_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*#*|\\\\(\\\\s*(?!--+\\\\))[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),:;\\\\[_`{}]][[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]*\\\\s*\\\\))(?:\\\\s*,\\\\s*\\\\g<fn>)?)\\\\s*(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'),;_`}]])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^\\\"'(,;\\\\[_`{]])\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.haskell\",\"patterns\":[{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"3\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([]\\\"'(),;\\\\[_`{}[^\\\\p{S}\\\\p{P}]]))|(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.function.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},\"gadt_constructor\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(?:\\\\b((?<!')[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]*)\\\\s*(\\\\)))\",\"beginCaptures\":{\"2\":{\"name\":\"constant.other.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"},\"4\":{\"name\":\"constant.other.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(?=\\\\b(?<!'')deriving\\\\b(?!'))|(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"\\\\b((?<!')[\\\\p{Lu}\\\\p{Lt}][_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]*)\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]}]},\"infix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"keyword.operator.infix.haskell\"}},\"match\":\"((?:(?<!'')('')?[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.)*)(#+|[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.backtick.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(`)((?:[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.)*)([_\\\\p{Ll}\\\\p{Lu}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)(`)\",\"name\":\"keyword.operator.function.infix.haskell\"}]},\"inline_phase\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.inlining-phase.haskell\",\"patterns\":[{\"match\":\"~\",\"name\":\"punctuation.tilde.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"\\\\w*\",\"name\":\"invalid\"}]},\"integer_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.integral.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.integral.hexadecimal.haskell\"},\"3\":{\"name\":\"constant.numeric.integral.octal.haskell\"},\"4\":{\"name\":\"constant.numeric.integral.binary.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][0-9_]*)|(0[Xx]_*\\\\h[_\\\\h]*)|(0[Oo]_*[0-7][0-7_]*)|(0[Bb]_*[01][01_]*))\\\\b(?!')\"},\"keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.$2.haskell\"}},\"match\":\"\\\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\\\b(?!')\"},\"layout_herald\":{\"begin\":\"(?<!')\\\\b(?:(where|let|m?do)|(of))\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.of.haskell\"},\"3\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},\"liquid_haskell\":{\"begin\":\"\\\\{-@\",\"end\":\"@-}\",\"name\":\"block.liquidhaskell.haskell\",\"patterns\":[{\"include\":\"$self\"}]},\"module_exports\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.declaration.exports.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.module.haskell\"}},\"match\":\"\\\\b(?<!')(module)\\\\b(?!')\"},{\"include\":\"#comma\"},{\"include\":\"#export_constructs\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#export_constructs\"},{\"include\":\"#comma\"}]}]},\"module_name\":{\"match\":\"(?<conid>[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*(\\\\.\\\\g<conid>)?)\",\"name\":\"entity.name.namespace.haskell\"},\"numeric_literals\":{\"patterns\":[{\"include\":\"#float_literals\"},{\"include\":\"#integer_literals\"}]},\"overloaded_label\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.hash.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"(?<![[_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(#)(?:(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")|['._\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]+)\",\"name\":\"entity.name.label.haskell\"}]},\"pragma\":{\"begin\":\"\\\\{-#\",\"end\":\"#-}\",\"name\":\"meta.preprocessor.haskell\",\"patterns\":[{\"begin\":\"(?i)\\\\b(?<!')(LANGUAGE)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"match\":\"(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)\",\"name\":\"invalid.deprecated\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.preprocessor.extension.haskell\"}},\"match\":\"((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|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[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|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|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))\"},{\"include\":\"#comma\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)(?:\\\\s*(\\\\[[^]\\\\[]*])?\\\\s*|\\\\s+)(instance)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#inline_phase\"}]},\"3\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)\\\\b(?!')(?:\\\\s+(INLINE)\\\\b(?!'))?\\\\s*(\\\\[[^]\\\\[]*])?\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#inline_phase\"}]}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"(?i)\\\\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\\\\b(?!')\",\"name\":\"keyword.other.preprocessor.haskell\"},{\"begin\":\"(?i)\\\\b(DEPRECATED|WARNING)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#string_literal\"}]}]},\"prefix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"entity.name.function.infix.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(?!(?:--+|\\\\.\\\\.)\\\\))(#+|[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+(?<!#))\\\\s*(\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\[)([dep])?(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\[)(t)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\[)(?:(\\\\$\\\\$)|(\\\\$))?(['._[^\\\\s\\\\p{S}\\\\p{P}]]*)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"4\":{\"name\":\"entity.name.quasi-quoter.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"5\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\5]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\"}]},\"record\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_field\"}]},\"record_decl\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.definition.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_decl_field\"}]},\"record_decl_field\":{\"begin\":\"([_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.definition.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.definition.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"},{\"include\":\"#record_decl_field\"}]},\"record_field\":{\"patterns\":[{\"begin\":\"([_\\\\p{Ll}\\\\p{Lu}]['._\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record_wildcard\"}]},\"record_wildcard\":{\"captures\":{\"1\":{\"name\":\"variable.other.member.wildcard.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(\\\\.\\\\.)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\"},\"reserved_symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-dot.haskell\"},\"2\":{\"name\":\"keyword.operator.colon.haskell\"},\"3\":{\"name\":\"keyword.operator.eq.haskell\"},\"4\":{\"name\":\"keyword.operator.lambda.haskell\"},\"5\":{\"name\":\"keyword.operator.pipe.haskell\"},\"6\":{\"name\":\"keyword.operator.arrow.left.haskell\"},\"7\":{\"name\":\"keyword.operator.arrow.haskell\"},\"8\":{\"name\":\"keyword.operator.arrow.left.tail.haskell\"},\"9\":{\"name\":\"keyword.operator.arrow.left.tail.double.haskell\"},\"10\":{\"name\":\"keyword.operator.arrow.tail.haskell\"},\"11\":{\"name\":\"keyword.operator.arrow.tail.double.haskell\"},\"12\":{\"name\":\"keyword.other.forall.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:(\\\\.\\\\.)|(:)|(=)|(\\\\\\\\)|(\\\\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.postfix.hash.haskell\"}},\"match\":\"(?<=[[_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^#,;\\\\[`{]])(#+)(?![[_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^]),;`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[])_}\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d])(@)(?=[(\\\\[_{\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.tilde.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.bang.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.minus.haskell\"},\"4\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"5\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"}},\"match\":\"(?<![[_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(?:(~)|(!)|(-)|(\\\\$)|(\\\\$\\\\$))(?=[(\\\\[_{\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d])\"}]},\"role_annotation\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(type)\\\\s+(role)\\\\b(?!')\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.role.haskell\"}},\"end\":\"(?=[;}])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$))\",\"name\":\"meta.role-annotation.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_constructor\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.role.$1.haskell\"}},\"match\":\"\\\\b(?<!')(nominal|representational|phantom)\\\\b(?!')\"}]}]},\"start_type_signature\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^\\\"'(,;\\\\[_`{]])\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[],]|(?<!')\\\\b(in|then|else|of)\\\\b(?!')|(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([]\\\"'(),;\\\\[_`{}[^\\\\p{S}\\\\p{P}]])|([#@])-}|(?=[;}])|^(?!\\\\1\\\\s*\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]).*$)))\",\"name\":\"meta.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^\\\"'(,;\\\\[_`{]])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^\\\"'(,;\\\\[_`{]])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[],]|\\\\b(?<!')(in|then|else|of)\\\\b(?!')|([#@])-}|(?<![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([]\\\"'(),;\\\\[_`{}[^\\\\p{S}\\\\p{P}]])|(?=[;}])|$)\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"string_literal\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.haskell\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"name\":\"string.quoted.double.haskell\",\"patterns\":[{\"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])\",\"name\":\"constant.character.escape.haskell\"},{\"match\":\"\\\\\\\\(?:o[0-7]+|x\\\\h+|[0-9]+)\",\"name\":\"constant.character.escape.octal.haskell\"},{\"match\":\"\\\\\\\\\\\\^[@-_]\",\"name\":\"constant.character.escape.control.haskell\"},{\"begin\":\"\\\\\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.begin.haskell\"}},\"end\":\"\\\\\\\\\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.end.haskell\"}},\"patterns\":[{\"match\":\"\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.haskell\"}]}]},\"type_application\":{\"patterns\":[{\"begin\":\"(?<=[]\\\",;\\\\[{}\\\\s])(@)(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[]\\\",;\\\\[{}\\\\s])(@)(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[]\\\",;\\\\[{}\\\\s])(@)(?=\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?<=\\\")\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},{\"begin\":\"(?<=[]\\\",;\\\\[{}\\\\s])(@)(?=['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?!['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d])\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"type_constructor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.haskell\"}},\"match\":\"(')?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.)*)\\\\b([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*((?:[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.)*)([[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+)\\\\s*(\\\\))\"}]},\"type_operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.operator.infix.haskell\"}},\"match\":\"(?:(?<!')('))?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.)*)(?![#@]?-})(#+|[[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.backtick.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.infix.haskell\"},\"5\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(')?(`)((?:[\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\\\\.)*)([\\\\p{Lu}\\\\p{Lt}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*)(`)\"}]},\"type_signature\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*(\\\\))\",\"name\":\"support.constant.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*,[,\\\\s]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[,\\\\s]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(')?(\\\\[)\\\\s*(])\",\"name\":\"support.constant.empty-list.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^]\\\"'(),;\\\\[_`{}]])\",\"name\":\"keyword.operator.double-colon.haskell\"},{\"include\":\"#forall\"},{\"match\":\"=>|⇒\",\"name\":\"keyword.operator.big-arrow.haskell\"},{\"include\":\"#string_literal\"},{\"match\":\"'[^']'\",\"name\":\"invalid\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#type_operator\"},{\"include\":\"#type_constructor\"},{\"begin\":\"(\\\\()(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"include\":\"#type_variable\"}]},\"type_variable\":{\"match\":\"\\\\b(?<!')(?!(?:forall|deriving)\\\\b(?!'))[_\\\\p{Ll}]['_\\\\p{Ll}\\\\p{Lu}\\\\p{Lt}\\\\d]*\",\"name\":\"variable.other.generic-type.haskell\"},\"where\":{\"patterns\":[{\"begin\":\"(?<!')\\\\b(where)\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\b(?<!')(where)\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"}]}},\"scopeName\":\"source.haskell\",\"aliases\":[\"hs\"]}"))
2
2
 
3
3
  export default [
4
4
  lang