@shikijs/langs 2.3.1 → 2.3.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/actionscript-3.mjs +1 -1
- package/dist/applescript.mjs +1 -1
- package/dist/ara.mjs +1 -1
- package/dist/asciidoc.mjs +1 -1
- package/dist/beancount.mjs +1 -1
- package/dist/bsl.mjs +1 -1
- package/dist/cadence.mjs +1 -1
- package/dist/clarity.mjs +1 -1
- package/dist/cmake.mjs +1 -1
- package/dist/cobol.mjs +1 -1
- package/dist/coq.mjs +1 -1
- package/dist/crystal.mjs +1 -1
- package/dist/cypher.mjs +1 -1
- package/dist/dax.mjs +1 -1
- package/dist/diff.mjs +1 -1
- package/dist/docker.mjs +1 -1
- package/dist/dotenv.mjs +1 -1
- package/dist/dream-maker.mjs +1 -1
- package/dist/elixir.mjs +1 -1
- package/dist/elm.mjs +1 -1
- package/dist/erlang.mjs +1 -1
- package/dist/fish.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/git-commit.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/haskell.mjs +1 -1
- package/dist/hcl.mjs +1 -1
- package/dist/html.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/jssm.mjs +1 -1
- package/dist/julia.mjs +1 -1
- package/dist/kusto.mjs +1 -1
- package/dist/latex.mjs +1 -1
- package/dist/less.mjs +1 -1
- package/dist/markdown.mjs +1 -1
- package/dist/marko.mjs +1 -1
- package/dist/matlab.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/nim.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/perl.mjs +1 -1
- package/dist/po.mjs +1 -1
- package/dist/polar.mjs +1 -1
- package/dist/powershell.mjs +1 -1
- package/dist/pug.mjs +1 -1
- package/dist/puppet.mjs +1 -1
- package/dist/python.mjs +1 -1
- package/dist/regexp.mjs +1 -1
- package/dist/riscv.mjs +1 -1
- package/dist/ruby.mjs +1 -1
- package/dist/rust.mjs +1 -1
- package/dist/sas.mjs +1 -1
- package/dist/scala.mjs +1 -1
- package/dist/scheme.mjs +1 -1
- package/dist/sdbl.mjs +1 -1
- package/dist/shellscript.mjs +1 -1
- package/dist/smalltalk.mjs +1 -1
- package/dist/splunk.mjs +1 -1
- package/dist/sql.mjs +1 -1
- package/dist/stata.mjs +1 -1
- package/dist/stylus.mjs +1 -1
- package/dist/tcl.mjs +1 -1
- package/dist/terraform.mjs +1 -1
- package/dist/toml.mjs +1 -1
- package/dist/twig.mjs +1 -1
- package/dist/typst.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/zenscript.mjs +1 -1
- package/dist/zig.mjs +1 -1
- package/package.json +3 -3
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(?<!')(?:([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\"]}"))
|
|
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\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-dash.haskell\"}]},{\"include\":\"#block_comment\"}]},\"context\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_signature\"}]},\"2\":{\"name\":\"keyword.operator.big-arrow.haskell\"}},\"match\":\"(.*)(?<![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]`{}_\\\"']])(=>|⇒)(?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"cpp\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.c\"}},\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\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\"}},\"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\"}},\"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\"}},\"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\"}},\"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
|
package/dist/hcl.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const lang = Object.freeze(JSON.parse("{\"displayName\":\"HashiCorp HCL\",\"fileTypes\":[\"hcl\"],\"name\":\"hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#block\"},{\"include\":\"#expressions\"}],\"repository\":{\"attribute_access\":{\"begin\":\"\\\\.(?!\\\\*)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"comment\":\"Matches traversal attribute access such as .attr\",\"end\":\"[[:alpha:]][\\\\w-]*|\\\\d*\",\"endCaptures\":{\"0\":{\"patterns\":[{\"comment\":\"Attribute name\",\"match\":\"(?!null|false|true)[[:alpha:]][\\\\w-]*\",\"name\":\"variable.other.member.hcl\"},{\"comment\":\"Optional attribute index\",\"match\":\"\\\\d+\",\"name\":\"constant.numeric.integer.hcl\"}]}}},\"attribute_definition\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.hcl\"},\"2\":{\"name\":\"variable.other.readwrite.hcl\"},\"3\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"4\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"comment\":\"Identifier \\\"=\\\" with optional parens\",\"match\":\"(\\\\()?(\\\\b(?!null\\\\b|false\\\\b|true\\\\b)[[:alpha:]][[:alnum:]_-]*)(\\\\))?\\\\s*(\\\\=(?!\\\\=|\\\\>))\\\\s*\",\"name\":\"variable.declaration.hcl\"},\"attribute_splat\":{\"begin\":\"\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"comment\":\"Legacy attribute-only splat\",\"end\":\"\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.splat.hcl\"}}},\"block\":{\"begin\":\"([\\\\w][\\\\-\\\\w]*)(([^\\\\S\\\\r\\\\n]+([\\\\w][\\\\-_\\\\w]*|\\\\\\\"[^\\\\\\\"\\\\r\\\\n]*\\\\\\\"))*)[^\\\\S\\\\r\\\\n]*(\\\\{)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"comment\":\"Block type\",\"match\":\"\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\b\",\"name\":\"entity.name.type.hcl\"}]},\"2\":{\"patterns\":[{\"comment\":\"Block label (String Literal)\",\"match\":\"\\\\\\\"[^\\\\\\\"\\\\r\\\\n]*\\\\\\\"\",\"name\":\"variable.other.enummember.hcl\"},{\"comment\":\"Block label (Identifier)\",\"match\":\"[[:alpha:]][[:alnum:]_-]*\",\"name\":\"variable.other.enummember.hcl\"}]},\"5\":{\"name\":\"punctuation.section.block.begin.hcl\"}},\"comment\":\"This will match HCL blocks like `thing1 \\\"one\\\" \\\"two\\\" {` or `thing2 {`\",\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.hcl\"}},\"name\":\"meta.block.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#expressions\"},{\"include\":\"#block\"}]},\"block_inline_comments\":{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence\",\"end\":\"\\\\*/\",\"name\":\"comment.block.hcl\"},\"brackets\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.hcl\"}},\"end\":\"\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"comment\":\"Splat operator\",\"match\":\"\\\\*\",\"name\":\"keyword.operator.splat.hcl\"},{\"include\":\"#comma\"},{\"include\":\"#comments\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"char_escapes\":{\"comment\":\"Character Escapes\",\"match\":\"\\\\\\\\[nrt\\\"\\\\\\\\]|\\\\\\\\u(\\\\h{8}|\\\\h{4})\",\"name\":\"constant.character.escape.hcl\"},\"comma\":{\"comment\":\"Commas - used in certain expressions\",\"match\":\"\\\\,\",\"name\":\"punctuation.separator.hcl\"},\"comments\":{\"patterns\":[{\"include\":\"#hash_line_comments\"},{\"include\":\"#double_slash_line_comments\"},{\"include\":\"#block_inline_comments\"}]},\"double_slash_line_comments\":{\"begin\":\"//\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence\",\"end\":\"$\\\\n?\",\"name\":\"comment.line.double-slash.hcl\"},\"expressions\":{\"patterns\":[{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#brackets\"},{\"include\":\"#objects\"},{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"},{\"include\":\"#functions\"},{\"include\":\"#parens\"}]},\"for_expression_body\":{\"patterns\":[{\"comment\":\"in keyword\",\"match\":\"\\\\bin\\\\b\",\"name\":\"keyword.operator.word.hcl\"},{\"comment\":\"if keyword\",\"match\":\"\\\\bif\\\\b\",\"name\":\"keyword.control.conditional.hcl\"},{\"match\":\"\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"functions\":{\"begin\":\"([:\\\\-\\\\w]+)(\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\b[[:alpha:]][\\\\w_-]*::([[:alpha:]][\\\\w_-]*::)?[[:alpha:]][\\\\w_-]*\\\\b\",\"name\":\"support.function.namespaced.hcl\"},{\"match\":\"\\\\b[[:alpha:]][\\\\w_-]*\\\\b\",\"name\":\"support.function.builtin.hcl\"}]},\"2\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Built-in function calls\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"name\":\"meta.function-call.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"},{\"include\":\"#comma\"}]},\"hash_line_comments\":{\"begin\":\"#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence\",\"end\":\"$\\\\n?\",\"name\":\"comment.line.number-sign.hcl\"},\"hcl_type_keywords\":{\"comment\":\"Type keywords known to HCL.\",\"match\":\"\\\\b(any|string|number|bool|list|set|map|tuple|object)\\\\b\",\"name\":\"storage.type.hcl\"},\"heredoc\":{\"begin\":\"(\\\\<\\\\<\\\\-?)\\\\s*(\\\\w+)\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.hcl\"},\"2\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"comment\":\"String Heredoc\",\"end\":\"^\\\\s*\\\\2\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"name\":\"string.unquoted.heredoc.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"}]},\"inline_for_expression\":{\"captures\":{\"1\":{\"name\":\"keyword.control.hcl\"},\"2\":{\"patterns\":[{\"match\":\"\\\\=\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]}},\"match\":\"(for)\\\\b(.*)\\\\n\"},\"inline_if_expression\":{\"begin\":\"(if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.hcl\"}},\"end\":\"\\\\n\",\"patterns\":[{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"language_constants\":{\"comment\":\"Language Constants\",\"match\":\"\\\\b(true|false|null)\\\\b\",\"name\":\"constant.language.hcl\"},\"literal_values\":{\"patterns\":[{\"include\":\"#numeric_literals\"},{\"include\":\"#language_constants\"},{\"include\":\"#string_literals\"},{\"include\":\"#heredoc\"},{\"include\":\"#hcl_type_keywords\"}]},\"local_identifiers\":{\"comment\":\"Local Identifiers\",\"match\":\"\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\b\",\"name\":\"variable.other.readwrite.hcl\"},\"numeric_literals\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"comment\":\"Integer, no fraction, optional exponent\",\"match\":\"\\\\b\\\\d+([Ee][+-]?)\\\\d+\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.hcl\"},\"2\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"comment\":\"Integer, fraction, optional exponent\",\"match\":\"\\\\b\\\\d+(\\\\.)\\\\d+(?:([Ee][+-]?)\\\\d+)?\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"comment\":\"Integers\",\"match\":\"\\\\b\\\\d+\\\\b\",\"name\":\"constant.numeric.integer.hcl\"}]},\"object_for_expression\":{\"begin\":\"(\\\\{)\\\\s?(for)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"patterns\":[{\"match\":\"\\\\=\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]},\"object_key_values\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#heredoc\"},{\"include\":\"#functions\"}]},\"objects\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.hcl\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"name\":\"meta.braces.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#objects\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl variable.other.readwrite.hcl\"},\"2\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"comment\":\"Literal, named object key\",\"match\":\"\\\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\\\s*(\\\\=(?!=))\\\\s*\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl string.quoted.double.hcl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.hcl\"},\"3\":{\"name\":\"punctuation.definition.string.end.hcl\"},\"4\":{\"name\":\"keyword.operator.hcl\"}},\"comment\":\"String object key\",\"match\":\"^\\\\s*((\\\").*(\\\"))\\\\s*(\\\\=)\\\\s*\"},{\"begin\":\"^\\\\s*\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Computed object key (any expression between parens)\",\"end\":\"(\\\\))\\\\s*(=|:)\\\\s*\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"2\":{\"name\":\"keyword.operator.hcl\"}},\"name\":\"meta.mapping.key.hcl\",\"patterns\":[{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"}]},{\"include\":\"#object_key_values\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\>\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\<\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\=\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\!\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\+\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\-\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\*\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\/\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\%\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\&\\\\&\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\|\\\\|\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\!\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\>\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\<\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\?\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\.\\\\.\\\\.\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\=\\\\>\",\"name\":\"keyword.operator.hcl\"}]},\"parens\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Parens - matched *after* function syntax\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"}]},\"string_interpolation\":{\"begin\":\"(?<![%$])([%$]{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.interpolation.begin.hcl\"}},\"comment\":\"String interpolation\",\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.interpolation.end.hcl\"}},\"name\":\"meta.interpolation.hcl\",\"patterns\":[{\"comment\":\"Trim left whitespace\",\"match\":\"\\\\~\\\\s\",\"name\":\"keyword.operator.template.left.trim.hcl\"},{\"comment\":\"Trim right whitespace\",\"match\":\"\\\\s\\\\~\",\"name\":\"keyword.operator.template.right.trim.hcl\"},{\"comment\":\"if/else/endif and for/in/endfor directives\",\"match\":\"\\\\b(if|else|endif|for|in|endfor)\\\\b\",\"name\":\"keyword.control.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"string_literals\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hcl\"}},\"comment\":\"Strings\",\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.hcl\"}},\"name\":\"string.quoted.double.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"},{\"include\":\"#char_escapes\"}]},\"tuple_for_expression\":{\"begin\":\"(\\\\[)\\\\s?(for)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.brackets.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"include\":\"#for_expression_body\"}]}},\"scopeName\":\"source.hcl\"}"))
|
|
1
|
+
const lang = Object.freeze(JSON.parse("{\"displayName\":\"HashiCorp HCL\",\"fileTypes\":[\"hcl\"],\"name\":\"hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#block\"},{\"include\":\"#expressions\"}],\"repository\":{\"attribute_access\":{\"begin\":\"\\\\.(?!\\\\*)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"end\":\"[[:alpha:]][\\\\w-]*|\\\\d*\",\"endCaptures\":{\"0\":{\"patterns\":[{\"match\":\"(?!null|false|true)[[:alpha:]][\\\\w-]*\",\"name\":\"variable.other.member.hcl\"},{\"match\":\"\\\\d+\",\"name\":\"constant.numeric.integer.hcl\"}]}}},\"attribute_definition\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.hcl\"},\"2\":{\"name\":\"variable.other.readwrite.hcl\"},\"3\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"4\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"match\":\"(\\\\()?(\\\\b(?!null\\\\b|false\\\\b|true\\\\b)[[:alpha:]][[:alnum:]_-]*)(\\\\))?\\\\s*(\\\\=(?!\\\\=|\\\\>))\\\\s*\",\"name\":\"variable.declaration.hcl\"},\"attribute_splat\":{\"begin\":\"\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"end\":\"\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.splat.hcl\"}}},\"block\":{\"begin\":\"([\\\\w][\\\\-\\\\w]*)(([^\\\\S\\\\r\\\\n]+([\\\\w][\\\\-_\\\\w]*|\\\\\\\"[^\\\\\\\"\\\\r\\\\n]*\\\\\\\"))*)[^\\\\S\\\\r\\\\n]*(\\\\{)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\b\",\"name\":\"entity.name.type.hcl\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\"[^\\\\\\\"\\\\r\\\\n]*\\\\\\\"\",\"name\":\"variable.other.enummember.hcl\"},{\"match\":\"[[:alpha:]][[:alnum:]_-]*\",\"name\":\"variable.other.enummember.hcl\"}]},\"5\":{\"name\":\"punctuation.section.block.begin.hcl\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.hcl\"}},\"name\":\"meta.block.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#expressions\"},{\"include\":\"#block\"}]},\"block_inline_comments\":{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"end\":\"\\\\*/\",\"name\":\"comment.block.hcl\"},\"brackets\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.hcl\"}},\"end\":\"\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"keyword.operator.splat.hcl\"},{\"include\":\"#comma\"},{\"include\":\"#comments\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"char_escapes\":{\"match\":\"\\\\\\\\[nrt\\\"\\\\\\\\]|\\\\\\\\u(\\\\h{8}|\\\\h{4})\",\"name\":\"constant.character.escape.hcl\"},\"comma\":{\"match\":\"\\\\,\",\"name\":\"punctuation.separator.hcl\"},\"comments\":{\"patterns\":[{\"include\":\"#hash_line_comments\"},{\"include\":\"#double_slash_line_comments\"},{\"include\":\"#block_inline_comments\"}]},\"double_slash_line_comments\":{\"begin\":\"//\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"end\":\"$\\\\n?\",\"name\":\"comment.line.double-slash.hcl\"},\"expressions\":{\"patterns\":[{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#brackets\"},{\"include\":\"#objects\"},{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"},{\"include\":\"#functions\"},{\"include\":\"#parens\"}]},\"for_expression_body\":{\"patterns\":[{\"match\":\"\\\\bin\\\\b\",\"name\":\"keyword.operator.word.hcl\"},{\"match\":\"\\\\bif\\\\b\",\"name\":\"keyword.control.conditional.hcl\"},{\"match\":\"\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"functions\":{\"begin\":\"([:\\\\-\\\\w]+)(\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\b[[:alpha:]][\\\\w_-]*::([[:alpha:]][\\\\w_-]*::)?[[:alpha:]][\\\\w_-]*\\\\b\",\"name\":\"support.function.namespaced.hcl\"},{\"match\":\"\\\\b[[:alpha:]][\\\\w_-]*\\\\b\",\"name\":\"support.function.builtin.hcl\"}]},\"2\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"name\":\"meta.function-call.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"},{\"include\":\"#comma\"}]},\"hash_line_comments\":{\"begin\":\"#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"end\":\"$\\\\n?\",\"name\":\"comment.line.number-sign.hcl\"},\"hcl_type_keywords\":{\"match\":\"\\\\b(any|string|number|bool|list|set|map|tuple|object)\\\\b\",\"name\":\"storage.type.hcl\"},\"heredoc\":{\"begin\":\"(\\\\<\\\\<\\\\-?)\\\\s*(\\\\w+)\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.hcl\"},\"2\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"end\":\"^\\\\s*\\\\2\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"name\":\"string.unquoted.heredoc.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"}]},\"inline_for_expression\":{\"captures\":{\"1\":{\"name\":\"keyword.control.hcl\"},\"2\":{\"patterns\":[{\"match\":\"\\\\=\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]}},\"match\":\"(for)\\\\b(.*)\\\\n\"},\"inline_if_expression\":{\"begin\":\"(if)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.hcl\"}},\"end\":\"\\\\n\",\"patterns\":[{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"language_constants\":{\"match\":\"\\\\b(true|false|null)\\\\b\",\"name\":\"constant.language.hcl\"},\"literal_values\":{\"patterns\":[{\"include\":\"#numeric_literals\"},{\"include\":\"#language_constants\"},{\"include\":\"#string_literals\"},{\"include\":\"#heredoc\"},{\"include\":\"#hcl_type_keywords\"}]},\"local_identifiers\":{\"match\":\"\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\b\",\"name\":\"variable.other.readwrite.hcl\"},\"numeric_literals\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"match\":\"\\\\b\\\\d+([Ee][+-]?)\\\\d+\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.hcl\"},\"2\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"match\":\"\\\\b\\\\d+(\\\\.)\\\\d+(?:([Ee][+-]?)\\\\d+)?\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"match\":\"\\\\b\\\\d+\\\\b\",\"name\":\"constant.numeric.integer.hcl\"}]},\"object_for_expression\":{\"begin\":\"(\\\\{)\\\\s?(for)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"patterns\":[{\"match\":\"\\\\=\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]},\"object_key_values\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#heredoc\"},{\"include\":\"#functions\"}]},\"objects\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.hcl\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"name\":\"meta.braces.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#objects\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl variable.other.readwrite.hcl\"},\"2\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"match\":\"\\\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\\\s*(\\\\=(?!=))\\\\s*\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl string.quoted.double.hcl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.hcl\"},\"3\":{\"name\":\"punctuation.definition.string.end.hcl\"},\"4\":{\"name\":\"keyword.operator.hcl\"}},\"match\":\"^\\\\s*((\\\").*(\\\"))\\\\s*(\\\\=)\\\\s*\"},{\"begin\":\"^\\\\s*\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"end\":\"(\\\\))\\\\s*(=|:)\\\\s*\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"2\":{\"name\":\"keyword.operator.hcl\"}},\"name\":\"meta.mapping.key.hcl\",\"patterns\":[{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"}]},{\"include\":\"#object_key_values\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\>\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\<\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\=\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\!\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\+\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\-\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\*\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\/\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\%\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\&\\\\&\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\|\\\\|\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\!\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\>\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\<\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\?\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\.\\\\.\\\\.\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\=\\\\>\",\"name\":\"keyword.operator.hcl\"}]},\"parens\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"}]},\"string_interpolation\":{\"begin\":\"(?<![%$])([%$]{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.interpolation.begin.hcl\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.interpolation.end.hcl\"}},\"name\":\"meta.interpolation.hcl\",\"patterns\":[{\"match\":\"\\\\~\\\\s\",\"name\":\"keyword.operator.template.left.trim.hcl\"},{\"match\":\"\\\\s\\\\~\",\"name\":\"keyword.operator.template.right.trim.hcl\"},{\"match\":\"\\\\b(if|else|endif|for|in|endfor)\\\\b\",\"name\":\"keyword.control.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"string_literals\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hcl\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.hcl\"}},\"name\":\"string.quoted.double.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"},{\"include\":\"#char_escapes\"}]},\"tuple_for_expression\":{\"begin\":\"(\\\\[)\\\\s?(for)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.brackets.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"include\":\"#for_expression_body\"}]}},\"scopeName\":\"source.hcl\"}"))
|
|
2
2
|
|
|
3
3
|
export default [
|
|
4
4
|
lang
|