@shikijs/langs 1.26.0 → 1.26.2
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.
- package/dist/abap.mjs +1 -1
- package/dist/actionscript-3.mjs +1 -1
- package/dist/ada.mjs +1 -1
- package/dist/angular-expression.mjs +1 -1
- package/dist/angular-let-declaration.mjs +1 -1
- package/dist/angular-ts.mjs +1 -1
- package/dist/apex.mjs +1 -1
- package/dist/apl.mjs +1 -1
- package/dist/applescript.mjs +1 -1
- package/dist/ara.mjs +1 -1
- package/dist/asciidoc.mjs +1 -1
- package/dist/asm.mjs +1 -1
- package/dist/astro.mjs +1 -1
- package/dist/awk.mjs +1 -1
- package/dist/ballerina.mjs +1 -1
- package/dist/bat.mjs +1 -1
- package/dist/beancount.mjs +1 -1
- package/dist/berry.mjs +1 -1
- package/dist/bibtex.mjs +1 -1
- package/dist/bicep.mjs +1 -1
- package/dist/blade.mjs +1 -1
- package/dist/c.mjs +1 -1
- package/dist/cadence.mjs +1 -1
- package/dist/cairo.mjs +1 -1
- package/dist/clarity.mjs +1 -1
- package/dist/clojure.mjs +1 -1
- package/dist/cobol.mjs +1 -1
- package/dist/codeql.mjs +1 -1
- package/dist/coffee.mjs +1 -1
- package/dist/common-lisp.mjs +1 -1
- package/dist/coq.mjs +1 -1
- package/dist/cpp-macro.mjs +1 -1
- package/dist/cpp.mjs +1 -1
- package/dist/crystal.mjs +1 -1
- package/dist/csharp.mjs +1 -1
- package/dist/css.mjs +1 -1
- package/dist/cue.mjs +1 -1
- package/dist/cypher.mjs +1 -1
- package/dist/d.mjs +1 -1
- package/dist/dart.mjs +1 -1
- package/dist/dax.mjs +1 -1
- package/dist/diff.mjs +1 -1
- package/dist/dotenv.mjs +1 -1
- package/dist/dream-maker.mjs +1 -1
- package/dist/edge.mjs +1 -1
- package/dist/elixir.mjs +1 -1
- package/dist/elm.mjs +1 -1
- package/dist/emacs-lisp.mjs +1 -1
- package/dist/erlang.mjs +1 -1
- package/dist/es-tag-css.mjs +1 -1
- package/dist/es-tag-glsl.mjs +1 -1
- package/dist/es-tag-html.mjs +1 -1
- package/dist/es-tag-sql.mjs +1 -1
- package/dist/es-tag-xml.mjs +1 -1
- package/dist/fennel.mjs +1 -1
- package/dist/fish.mjs +1 -1
- package/dist/fluent.mjs +1 -1
- package/dist/fortran-free-form.mjs +1 -1
- package/dist/fsharp.mjs +1 -1
- package/dist/gdresource.mjs +1 -1
- package/dist/gdscript.mjs +1 -1
- package/dist/gdshader.mjs +1 -1
- package/dist/genie.mjs +1 -1
- package/dist/git-commit.mjs +1 -1
- package/dist/gleam.mjs +1 -1
- package/dist/glimmer-js.mjs +1 -1
- package/dist/glimmer-ts.mjs +1 -1
- package/dist/gnuplot.mjs +1 -1
- package/dist/go.mjs +1 -1
- package/dist/graphql.mjs +1 -1
- package/dist/groovy.mjs +1 -1
- package/dist/hack.mjs +1 -1
- package/dist/haml.mjs +1 -1
- package/dist/handlebars.mjs +1 -1
- package/dist/haskell.mjs +1 -1
- package/dist/haxe.mjs +1 -1
- package/dist/hcl.mjs +1 -1
- package/dist/hjson.mjs +1 -1
- package/dist/hlsl.mjs +1 -1
- package/dist/html.mjs +1 -1
- package/dist/http.mjs +1 -1
- package/dist/hy.mjs +1 -1
- package/dist/imba.mjs +1 -1
- package/dist/index.d.mts +3 -1
- package/dist/index.mjs +90 -6
- package/dist/java.mjs +1 -1
- package/dist/javascript.mjs +1 -1
- package/dist/jinja.mjs +1 -1
- package/dist/jison.mjs +1 -1
- package/dist/json.mjs +1 -1
- package/dist/json5.mjs +1 -1
- package/dist/jsonc.mjs +1 -1
- package/dist/jsonl.mjs +1 -1
- package/dist/jsonnet.mjs +1 -1
- package/dist/jssm.mjs +1 -1
- package/dist/jsx.mjs +1 -1
- package/dist/julia.mjs +1 -1
- package/dist/kotlin.mjs +1 -1
- package/dist/kusto.mjs +1 -1
- package/dist/latex.mjs +1 -1
- package/dist/lean.mjs +1 -1
- package/dist/less.mjs +1 -1
- package/dist/liquid.mjs +1 -1
- package/dist/log.mjs +1 -1
- package/dist/logo.mjs +1 -1
- package/dist/lua.mjs +1 -1
- package/dist/luau.mjs +1 -1
- package/dist/make.mjs +1 -1
- package/dist/markdown.mjs +1 -1
- package/dist/marko.mjs +1 -1
- package/dist/matlab.mjs +1 -1
- package/dist/mdc.mjs +1 -1
- package/dist/mdx.mjs +1 -1
- package/dist/mermaid.mjs +1 -1
- package/dist/mipsasm.mjs +1 -1
- package/dist/mojo.mjs +1 -1
- package/dist/move.mjs +1 -1
- package/dist/nextflow.mjs +1 -1
- package/dist/nginx.mjs +1 -1
- package/dist/nim.mjs +1 -1
- package/dist/nix.mjs +1 -1
- package/dist/nushell.mjs +1 -1
- package/dist/objective-c.mjs +1 -1
- package/dist/objective-cpp.mjs +1 -1
- package/dist/ocaml.mjs +1 -1
- package/dist/perl.mjs +1 -1
- package/dist/php.mjs +1 -1
- package/dist/polar.mjs +1 -1
- package/dist/postcss.mjs +1 -1
- package/dist/powerquery.mjs +1 -1
- package/dist/powershell.mjs +1 -1
- package/dist/prisma.mjs +1 -1
- package/dist/prolog.mjs +1 -1
- package/dist/proto.mjs +1 -1
- package/dist/pug.mjs +1 -1
- package/dist/puppet.mjs +1 -1
- package/dist/purescript.mjs +1 -1
- package/dist/python.mjs +1 -1
- package/dist/qml.mjs +1 -1
- package/dist/r.mjs +1 -1
- package/dist/racket.mjs +1 -1
- package/dist/raku.mjs +1 -1
- package/dist/razor.mjs +1 -1
- package/dist/reg.mjs +1 -1
- package/dist/regexp.mjs +1 -1
- package/dist/rel.mjs +1 -1
- package/dist/riscv.mjs +1 -1
- package/dist/rst.mjs +1 -1
- package/dist/ruby.mjs +1 -1
- package/dist/rust.mjs +1 -1
- package/dist/sas.mjs +1 -1
- package/dist/sass.mjs +1 -1
- package/dist/scala.mjs +1 -1
- package/dist/scheme.mjs +1 -1
- package/dist/scss.mjs +1 -1
- package/dist/shaderlab.mjs +1 -1
- package/dist/shellscript.mjs +1 -1
- package/dist/smalltalk.mjs +1 -1
- package/dist/solidity.mjs +1 -1
- package/dist/soy.mjs +1 -1
- package/dist/sparql.mjs +1 -1
- package/dist/splunk.mjs +1 -1
- package/dist/sql.mjs +1 -1
- package/dist/ssh-config.mjs +1 -1
- package/dist/stata.mjs +1 -1
- package/dist/stylus.mjs +1 -1
- package/dist/svelte.mjs +1 -1
- package/dist/swift.mjs +1 -1
- package/dist/system-verilog.mjs +1 -1
- package/dist/systemd.mjs +1 -1
- package/dist/talonscript.mjs +1 -1
- package/dist/tcl.mjs +1 -1
- package/dist/templ.mjs +1 -1
- package/dist/terraform.mjs +1 -1
- package/dist/tex.mjs +1 -1
- package/dist/toml.mjs +1 -1
- package/dist/tsx.mjs +1 -1
- package/dist/turtle.mjs +1 -1
- package/dist/twig.mjs +1 -1
- package/dist/typescript.mjs +1 -1
- package/dist/typespec.mjs +1 -1
- package/dist/typst.mjs +1 -1
- package/dist/v.mjs +1 -1
- package/dist/vala.mjs +1 -1
- package/dist/vb.mjs +1 -1
- package/dist/verilog.mjs +1 -1
- package/dist/vhdl.mjs +1 -1
- package/dist/viml.mjs +1 -1
- package/dist/vue-html.mjs +1 -1
- package/dist/vue.mjs +1 -1
- package/dist/vyper.mjs +1 -1
- package/dist/wasm.mjs +1 -1
- package/dist/wgsl.mjs +1 -1
- package/dist/wikitext.mjs +1 -1
- package/dist/wolfram.mjs +1 -1
- package/dist/xml.mjs +1 -1
- package/dist/yaml.mjs +1 -1
- package/dist/zenscript.mjs +1 -1
- package/dist/zig.mjs +1 -1
- package/package.json +3 -3
package/dist/haml.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import javascript from './javascript.mjs'
|
|
2
2
|
import css from './css.mjs'
|
|
3
3
|
|
|
4
|
-
const lang = Object.freeze(JSON.parse("{\"displayName\":\"Ruby Haml\",\"fileTypes\":[\"haml\",\"html.haml\"],\"foldingStartMarker\":\"^\\\\s*([
|
|
4
|
+
const lang = Object.freeze(JSON.parse("{\"displayName\":\"Ruby Haml\",\"fileTypes\":[\"haml\",\"html.haml\"],\"foldingStartMarker\":\"^\\\\s*([-%#\\\\:\\\\.\\\\w\\\\=].*)\\\\s$\",\"foldingStopMarker\":\"^\\\\s*$\",\"name\":\"haml\",\"patterns\":[{\"begin\":\"^(\\\\s*)==\",\"contentName\":\"string.quoted.double.ruby\",\"end\":\"$\\\\n*\",\"patterns\":[{\"include\":\"#interpolated_ruby\"}]},{\"begin\":\"^(\\\\s*):ruby\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.prolog.haml\"}},\"match\":\"^(!!!)($|\\\\s.*)\",\"name\":\"meta.prolog.haml\"},{\"begin\":\"^(\\\\s*):javascript\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"js.haml\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\s*)%script\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"js.inline.haml\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\s*):ruby$\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.section.comment.haml\"}},\"match\":\"^(\\\\s*)(\\\\/\\\\[[^\\\\]].*?$\\\\n?)\",\"name\":\"comment.line.slash.haml\"},{\"begin\":\"^(\\\\s*)(\\\\-\\\\#|\\\\/|\\\\-\\\\s*\\\\/\\\\*+)\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.comment.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|\\\\n)\",\"name\":\"comment.block.haml\",\"patterns\":[{\"include\":\"text.haml\"}]},{\"begin\":\"^\\\\s*(?:((%)([-\\\\w:]+))|(?=\\\\.|#))\",\"captures\":{\"1\":{\"name\":\"meta.tag.haml\"},\"2\":{\"name\":\"punctuation.definition.tag.haml\"},\"3\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"$|(?!\\\\.|#|\\\\{|\\\\(|\\\\[|&|=|-|~|!=|&=|/)\",\"patterns\":[{\"begin\":\"==\",\"contentName\":\"string.quoted.double.ruby\",\"end\":\"$\\\\n?\",\"patterns\":[{\"include\":\"#interpolated_ruby\"}]},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.class\"}},\"match\":\"(\\\\.[\\\\w\\\\-\\\\:]+)\",\"name\":\"meta.selector.css\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id\"}},\"match\":\"(#[\\\\w-]+)\",\"name\":\"meta.selector.css\"},{\"begin\":\"(?<!\\\\#)\\\\{(?=.*(,|(do)|\\\\{|\\\\}|\\\\||(\\\\#.*)|\\\\R)\\\\s*)\",\"end\":\"\\\\s*\\\\}(?!\\\\s*\\\\,)(?!\\\\s*\\\\|)(?!\\\\#\\\\{.*\\\\})\",\"name\":\"meta.section.attributes.haml\",\"patterns\":[{\"include\":\"source.ruby\"},{\"include\":\"#continuation\"},{\"include\":\"#rubyline\"}]},{\"begin\":\"\\\\(\",\"end\":\"\\\\)\",\"name\":\"meta.section.attributes.plain.haml\",\"patterns\":[{\"match\":\"([\\\\w-]+)\",\"name\":\"constant.other.symbol.ruby\"},{\"match\":\"\\\\=\",\"name\":\"punctuation\"},{\"include\":\"#variables\"},{\"begin\":\"\\\"\",\"end\":\"\\\"\",\"name\":\"string.quoted.double.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\(x\\\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#interpolated_ruby\"}]},{\"include\":\"#interpolated_ruby\"}]},{\"begin\":\"\\\\[(?=.+(,|\\\\[|\\\\]|\\\\||(\\\\#.*))\\\\s*)\",\"end\":\"\\\\s*\\\\](?!.*(?!\\\\#\\\\[)\\\\])\",\"name\":\"meta.section.object.haml\",\"patterns\":[{\"include\":\"source.ruby\"},{\"include\":\"#continuation\"},{\"include\":\"#rubyline\"}]},{\"include\":\"#interpolated_ruby_line\"},{\"include\":\"#rubyline\"},{\"match\":\"/\",\"name\":\"punctuation.terminator.tag.haml\"}]},{\"begin\":\"^(\\\\s*):(ruby|opal)$\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\s*):ruby$\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\s*):(style|sass)$\",\"end\":\"^(?=\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.sass.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\s*):coffee(script)?\",\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.coffee.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.coffee\"}]},{\"begin\":\"^(\\\\s*):plain$\",\"end\":\"^(?=\\\\1\\\\s+|$\\\\n*)\",\"name\":\"text.plain.embedded.filter.haml\",\"patterns\":[{\"include\":\"text.plain\"}]},{\"begin\":\"^(\\\\s*)(:ruby)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.filter.haml\"}},\"end\":\"(?m:(?<=\\\\n)(?!\\\\1\\\\s+|$\\\\n*))\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\s*)(:sass)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.filter.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.embedded.filter.sass\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\s*):(styles|sass)$\",\"end\":\"^(?=\\\\1\\\\s+|$\\\\n*)\",\"name\":\"source.sass.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\s*):plain$\",\"end\":\"^(?=\\\\1\\\\s+|$\\\\n*)\",\"name\":\"text.plain.embedded.filter.haml\",\"patterns\":[{\"include\":\"text.plain\"}]},{\"captures\":{\"1\":{\"name\":\"meta.escape.haml\"}},\"match\":\"^\\\\s*(\\\\.)\"},{\"begin\":\"^\\\\s*(?==|-|~|!=|&=)\",\"end\":\"$\",\"patterns\":[{\"include\":\"#interpolated_ruby_line\"},{\"include\":\"#rubyline\"}]},{\"begin\":\"^(\\\\s*)(:php)\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"meta.embedded.php\",\"patterns\":[{\"include\":\"text.html.php#language\"}]},{\"begin\":\"^(\\\\s*)(:markdown)\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"meta.embedded.markdown\",\"patterns\":[{\"include\":\"text.html.markdown\"}]},{\"begin\":\"^(\\\\s*)(:(css|styles?))$\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"^(\\\\s*)(:sass)$\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"meta.embedded.sass\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\s*)(:scss)$\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\1\\\\s+|$\\\\n*)\",\"name\":\"meta.embedded.scss\",\"patterns\":[{\"include\":\"source.scss\"}]}],\"repository\":{\"continuation\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.continuation.haml\"}},\"match\":\"(\\\\|)\\\\s*\\\\n\"},\"interpolated_ruby\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"},\"1\":{\"name\":\"source.ruby.embedded.source.empty\"}},\"match\":\"#\\\\{(\\\\})\",\"name\":\"source.ruby.embedded.source\"},{\"begin\":\"#\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"}},\"end\":\"(\\\\})\",\"name\":\"source.ruby.embedded.source\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"source.ruby\"}]},{\"include\":\"#variables\"}]},\"interpolated_ruby_line\":{\"begin\":\"!?==\",\"contentName\":\"string.source.ruby.embedded.haml\",\"end\":\"$\",\"name\":\"meta.line.ruby.interpolated.haml\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.ruby#escaped_char\"}]},\"nest_curly_and_self\":{\"patterns\":[{\"begin\":\"\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"\\\\}\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"source.ruby\"}]}]},\"rubyline\":{\"begin\":\"(&|!)?(=|-|~)\",\"contentName\":\"source.ruby.embedded.haml\",\"end\":\"((do|\\\\{)( \\\\|[.*]+\\\\|)?)$|$|^(?!.*\\\\|\\\\s*)$\\\\n?\",\"endCaptures\":{\"1\":{\"name\":\"source.ruby.embedded.html\"},\"2\":{\"name\":\"keyword.control.ruby.start-block\"}},\"name\":\"meta.line.ruby.haml\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.php\"}},\"match\":\"\\\\s+((elseif|foreach|switch|declare|default|use))(?=\\\\s|\\\\()\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.include.php\"}},\"match\":\"\\\\s+(require_once|include_once)(?=\\\\s|\\\\()\"},{\"match\":\"\\\\s+(catch|try|throw|exception|finally|die)(?=\\\\s|\\\\(|\\\\n*)\",\"name\":\"keyword.control.exception.php\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.php\"}},\"match\":\"\\\\s+(function\\\\s*)((?=\\\\())\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.php\"}},\"match\":\"\\\\s+(use\\\\s*)((?=\\\\())\"},{\"match\":\"(\\\\||,|<|do|\\\\{)\\\\s*(\\\\#.*)?$\\\\n*\",\"name\":\"source.ruby\",\"patterns\":[{\"include\":\"#rubyline\"}]},{\"comment\":\"Hack to let ruby comments work in this context properly\",\"match\":\"#.*$\",\"name\":\"comment.line.number-sign.ruby\"},{\"include\":\"source.ruby\"},{\"include\":\"#continuation\"}]},\"variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#@)[a-zA-Z_]\\\\w*\",\"name\":\"variable.other.readwrite.instance.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#@@)[a-zA-Z_]\\\\w*\",\"name\":\"variable.other.readwrite.class.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#\\\\$)[a-zA-Z_]\\\\w*\",\"name\":\"variable.other.readwrite.global.ruby\"}]}},\"scopeName\":\"text.haml\",\"embeddedLangs\":[\"javascript\",\"css\"],\"embeddedLangsLazy\":[\"ruby\",\"sass\",\"coffee\",\"markdown\"]}"))
|
|
5
5
|
|
|
6
6
|
export default [
|
|
7
7
|
...javascript,
|
package/dist/handlebars.mjs
CHANGED
|
@@ -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]+|#\\\\d+|#x[0-9a-fA-F]+)(;)\",\"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|q|s|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\":\"(\\\\{\\\\{)(~?\\\\#)([-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[0-9a-fA-F]+)(;)\",\"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|q|s|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\"]}"))
|
|
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}\\\\p{Nd}'\\\\.])+)|('?(?<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}\\\\p{Nd}']*)(`)))|(?:(?<!')\\\\b([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*))|(\\\\()\\\\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}\\\\p{Nd}'])(')(?:[ -\\\\[\\\\]-~]|(\\\\\\\\(?: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[0-9A-Fa-f]+)|(\\\\\\\\\\\\^[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\"}},\"comment\":\"Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.\",\"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\"}},\"comment\":\"In addition to Haskell's \\\"native\\\" syntax, GHC permits the C preprocessor to be run on a source file.\",\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?![\\\\.'\\\\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}\\\\p{Nd}']*)(\\\\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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}']*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*\",\"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}\\\\p{Nd}']*)\\\\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}\\\\p{Nd}']*)\\\\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}\\\\p{Nd}']*)\\\\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\"}},\"comment\":\"Floats are decimal or hexadecimal\",\"match\":\"\\\\b(?<!')(?:(\\\\d[_0-9]*\\\\.\\\\d[_0-9]*(?:[eE][-+]?\\\\d[_0-9]*)?|\\\\d[_0-9]*[eE][-+]?\\\\d[_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?\\\\d[_0-9]*)?|0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?\\\\d[_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}\\\\p{Nd}']*\\\\#*|\\\\(\\\\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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}]*)|(\\\\()\\\\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\"}},\"comment\":\"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\\n\",\"match\":\"((?:(?<!'')('')?[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'']*\\\\.)*)(\\\\#+|[\\\\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\"}},\"comment\":\"In case this regex seems unusual for an infix operator, note that Haskell\\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\\nas an infix expression (4 `elem` [1..10]).\\n\",\"match\":\"(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'']*\\\\.)*)([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'']*)(`)\",\"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(?<!')(?:(\\\\d[_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*)|(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}\\\\p{Nd}']*(\\\\.\\\\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}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^(,;\\\\[`{]])(\\\\#)(?:(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")|[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'\\\\.]+)\",\"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(?:s|z)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(?:S|Z)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(?:S|Z)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\"}},\"comment\":\"An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\\n\",\"match\":\"(\\\\()\\\\s*(?!(?:--+|\\\\.\\\\.)\\\\))(\\\\#+|[\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!\\\\#))\\\\s*(\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\[)(e|d|p)?(\\\\|\\\\|?)\",\"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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}\\\\.']*)|(\\\\()\\\\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}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^#,;\\\\[`{]])(\\\\#+)(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^),;\\\\]`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd})}\\\\]])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}(\\\\[{])\"},{\"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}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^(,;\\\\[`{]])(?:(~)|(!)|(-)|(\\\\$)|(\\\\$\\\\$))(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}({\\\\[])\"}]},\"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[0-9A-Fa-f]+|\\\\\\\\\\\\d+\",\"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}\\\\p{Nd}'])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'])\",\"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}\\\\p{Nd}']*\\\\.)*)(\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)\"},{\"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}\\\\p{Nd}']*\\\\.)*)([\\\\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}\\\\p{Nd}']*\\\\.)*)(?![#@]?-})(\\\\#+|[\\\\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}\\\\p{Nd}']*\\\\.)*)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)(`)\"}]},\"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}\\\\p{Nd}']*\",\"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}\\\\p{Nd}'\\\\.])+)|('?(?<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}\\\\p{Nd}']*)(`)))|(?:(?<!')\\\\b([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*))|(\\\\()\\\\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}\\\\p{Nd}'])(')(?:[\\\\ -\\\\[\\\\]-~]|(\\\\\\\\(?: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[0-9A-Fa-f]+)|(\\\\\\\\\\\\^[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\"}},\"comment\":\"Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.\",\"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\"}},\"comment\":\"In addition to Haskell's \\\"native\\\" syntax, GHC permits the C preprocessor to be run on a source file.\",\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?![\\\\.'\\\\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}\\\\p{Nd}']*)(\\\\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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}']*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*\",\"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}\\\\p{Nd}']*)\\\\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}\\\\p{Nd}']*)\\\\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}\\\\p{Nd}']*)\\\\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\"}},\"comment\":\"Floats are decimal or hexadecimal\",\"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]_*[0-9a-fA-F][_0-9a-fA-F]*\\\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?|0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[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}\\\\p{Nd}']*\\\\#*|\\\\(\\\\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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}]*)|(\\\\()\\\\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\"}},\"comment\":\"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\\n\",\"match\":\"((?:(?<!'')('')?[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'']*\\\\.)*)(\\\\#+|[\\\\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\"}},\"comment\":\"In case this regex seems unusual for an infix operator, note that Haskell\\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\\nas an infix expression (4 `elem` [1..10]).\\n\",\"match\":\"(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'']*\\\\.)*)([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'']*)(`)\",\"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]_*[0-9a-fA-F][_0-9a-fA-F]*)|(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}\\\\p{Nd}']*(\\\\.\\\\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}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^(,;\\\\[`{]])(\\\\#)(?:(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")|[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'\\\\.]+)\",\"name\":\"entity.name.label.haskell\"}]},\"pragma\":{\"begin\":\"\\\\{-#\",\"end\":\"#-\\\\}\",\"name\":\"meta.preprocessor.haskell\",\"patterns\":[{\"begin\":\"(?xi) \\\\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(?:s|z)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\":\"(?xi)\\n \\\\b(?<!')(SPECIALI(?:S|Z)E)\\n (?:\\n \\\\s*( \\\\[ [^\\\\[\\\\]]* \\\\])?\\\\s*\\n |\\\\s+\\n )\\n (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\":\"(?xi)\\n \\\\b(?<!')(SPECIALI(?:S|Z)E)\\\\b(?!')\\n (?:\\\\s+(INLINE)\\\\b(?!'))?\\n (?:\\\\s*(\\\\[ [^\\\\[\\\\]]* \\\\])?)\\n \\\\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\":\"(?xi) \\\\b(?<!')\\n (LANGUAGE|OPTIONS_GHC|INCLUDE\\n |MINIMAL|UNPACK|OVERLAPS|INCOHERENT\\n |NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE\\n |NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES\\n |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\"}},\"comment\":\"An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\\n\",\"match\":\"(\\\\()\\\\s*(?!(?:--+|\\\\.\\\\.)\\\\))(\\\\#+|[\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!\\\\#))\\\\s*(\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\[)(e|d|p)?(\\\\|\\\\|?)\",\"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}\\\\p{Nd}']*)|(\\\\()\\\\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}\\\\p{Nd}\\\\.']*)|(\\\\()\\\\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}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^\\\\#,;\\\\[`{]])(\\\\#+)(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^),;\\\\]`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\)\\\\}\\\\]])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\(\\\\[\\\\{])\"},{\"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}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^(,;\\\\[`{]])(?:(~)|(!)|(-)|(\\\\$)|(\\\\$\\\\$))(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\(\\\\{\\\\[])\"}]},\"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[0-9A-Fa-f]+|\\\\\\\\[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}\\\\p{Nd}'])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}'])\",\"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}\\\\p{Nd}']*\\\\.)*)(\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)\"},{\"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}\\\\p{Nd}']*\\\\.)*)([\\\\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}\\\\p{Nd}']*\\\\.)*)(?![#@]?-})(\\\\#+|[\\\\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}\\\\p{Nd}']*\\\\.)*)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)(`)\"}]},\"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}\\\\p{Nd}']*\",\"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
|