@shikijs/langs 3.2.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cpp.mjs +1 -1
- package/dist/haskell.mjs +1 -1
- package/dist/mermaid.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\":\"(?x) # Detect end of class declaration:\\n # 'where' keyword\\n (?=(?<!')\\\\bwhere\\\\b(?!')) \\n # Decreasing indentation\\n |(?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"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\":\"(?x) # Detect end of data declaration:\\n # Deriving clause\\n (?=(?<!')\\\\bderiving\\\\b(?!')) \\n # Decreasing indentation\\n |(?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"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\":\"(?x) # Detect end of pattern type definition by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"name\":\"meta.declaration.pattern.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\s*(pattern)\\\\b(?!')\",\"captures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"(?x) # Detect end of pattern type definition by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"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\":\"(?x) # Detect end of data declaration: \\n # Decreasing indentation\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"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\":\"(?x) # Detect end of type family by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"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\":\"(?x) # Detect end of type definition by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"name\":\"meta.declaration.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(instance)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.instance.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(import)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.import.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.import.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"}},\"match\":\"(qualified|as|hiding)\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"}]},{\"include\":\"#deriving\"},{\"include\":\"#layout_herald\"},{\"include\":\"#keyword\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#integer_literals\"},{\"include\":\"#infix_op\"}]}},\"match\":\"^\\\\s*(infix[lr]?)\\\\s+(.*)\",\"name\":\"meta.fixity-declaration.haskell\"},{\"include\":\"#overloaded_label\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#fun_decl\"},{\"include\":\"#qualifier\"},{\"include\":\"#data_constructor\"},{\"include\":\"#start_type_signature\"},{\"include\":\"#prefix_op\"},{\"include\":\"#infix_op\"},{\"begin\":\"(\\\\()(#)\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#quasi_quote\"},{\"begin\":\"(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record\"}],\"repository\":{\"adt_constructor\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:(=)|(\\\\|))(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.eq.haskell\"},\"2\":{\"name\":\"keyword.operator.pipe.haskell\"}},\"end\":\"(?:\\\\G|^)\\\\s*(?:(?<!')\\\\b([\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'.]+)|('?(?<paren>\\\\((?:[^()]*|\\\\g<paren>)*\\\\)))|('?(?<brac>\\\\((?:[^\\\\[\\\\]]*|\\\\g<brac>)*])))\\\\s*(?:(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)|(`)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`))|(?<!')\\\\b([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"2\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"6\":{\"name\":\"constant.other.operator.haskell\"},\"7\":{\"name\":\"punctuation.backtick.haskell\"},\"8\":{\"name\":\"constant.other.haskell\"},\"9\":{\"name\":\"punctuation.backtick.haskell\"},\"10\":{\"name\":\"constant.other.haskell\"},\"11\":{\"name\":\"punctuation.paren.haskell\"},\"12\":{\"name\":\"constant.other.operator.haskell\"},\"13\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#record_decl\"},{\"include\":\"#forall\"},{\"include\":\"#context\"}]}]},\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},\"char_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.haskell\"},\"2\":{\"name\":\"constant.character.escape.haskell\"},\"3\":{\"name\":\"constant.character.escape.octal.haskell\"},\"4\":{\"name\":\"constant.character.escape.hexadecimal.haskell\"},\"5\":{\"name\":\"constant.character.escape.control.haskell\"},\"6\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"match\":\"(?<![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])(')(?:[ -\\\\[\\\\]-~]|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x\\\\h+)|(\\\\\\\\\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))(')\",\"name\":\"string.quoted.single.haskell\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.haskell\"},\"comment_like\":{\"patterns\":[{\"include\":\"#cpp\"},{\"include\":\"#pragma\"},{\"include\":\"#comments\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(--\\\\s[|$])\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?=^(?!\\\\1--+(?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]`{}_\\\"']])))\",\"name\":\"comment.block.documentation.haskell\"},{\"begin\":\"(^[ \\\\t]+)?(--\\\\s[\\\\^*])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.documentation.haskell\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\\\\s?[|$*\\\\^]\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.documentation.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},{\"begin\":\"(^[ \\\\t]+)?(?=--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-dash.haskell\"}]},{\"include\":\"#block_comment\"}]},\"context\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_signature\"}]},\"2\":{\"name\":\"keyword.operator.big-arrow.haskell\"}},\"match\":\"(.*)(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(=>|⇒)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"cpp\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.c\"}},\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*(?![.'\\\\w])\",\"name\":\"constant.other.haskell\"},\"deriving\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(deriving)\\\\s+(?:(via|stock|newtype|anyclass)\\\\s+)?\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.deriving.haskell\"},\"3\":{\"name\":\"keyword.other.deriving.strategy.$3.haskell\"}},\"end\":\"(?x) # Detect end of deriving statement\\n # Decreasing indentation\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"match\":\"(?<!')\\\\b(instance)\\\\b(?!')\",\"name\":\"keyword.other.instance.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.strategy.$1.haskell\"}},\"match\":\"(?<!')\\\\b(via|stock|newtype|anyclass)\\\\b(?!')\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"5\":{\"name\":\"keyword.other.deriving.strategy.via.haskell\"},\"6\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s+([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(\\\\s+(via)\\\\s+(.*)$)?\",\"name\":\"meta.deriving.haskell\"},{\"match\":\"(?<!')\\\\b(via)\\\\b(?!')\",\"name\":\"keyword.other.deriving.strategy.via.haskell\"}]},\"double_colon\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"match\":\"\\\\s*(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\\\\s*\"},\"export_constructs\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"\\\\b(?<!')(pattern)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"begin\":\"\\\\b(?<!')(type)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.type.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"storage.type.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"match\":\"(?<!')\\\\b[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"storage.type.haskell\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"ffi\":{\"begin\":\"^(\\\\s*)(foreign)\\\\s+(import|export)\\\\s+\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.foreign.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"}},\"end\":\"(?x) # Detect end of FFI block by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"name\":\"meta.$3.foreign.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.calling-convention.$1.haskell\"}},\"match\":\"\\\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\\\s+\"},{\"begin\":\"(?=\\\")|(?=\\\\b(?<!')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!'))\",\"end\":\"(?=(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},\"3\":{\"name\":\"entity.name.function.haskell\"},\"4\":{\"name\":\"entity.name.function.infix.haskell\"}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*(?:\\\\b(?<!'')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!')|\\\\(\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*\\\\))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*$\"},{\"captures\":{\"0\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\"\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.function.infix.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"\\\\b(?<!'')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!')|(\\\\()\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\"}]},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]},\"float_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.floating.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.floating.hexadecimal.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][_0-9]*\\\\.[0-9][_0-9]*(?:[eE][\\\\-+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\\\\-+]?[0-9][_0-9]*)|(0(?:[xX]_*\\\\h[_\\\\h]*\\\\.\\\\h[_\\\\h]*(?:[pP][\\\\-+]?[0-9][_0-9]*)?|[xX]_*\\\\h[_\\\\h]*[pP][\\\\-+]?[0-9][_0-9]*)))\\\\b(?!')\"},\"forall\":{\"begin\":\"\\\\b(?<!')(forall|∀)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.forall.haskell\"}},\"end\":\"(\\\\.)|(->|→)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.period.haskell\"},\"2\":{\"name\":\"keyword.operator.arrow.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_variable\"},{\"include\":\"#type_signature\"}]},\"fun_decl\":{\"begin\":\"^(\\\\s*)(?<fn>(?:[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*#*|\\\\(\\\\s*(?!--+\\\\))[[\\\\p{S}\\\\p{P}]&&[^(),:;\\\\[\\\\]`{}_\\\"']][[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*\\\\s*\\\\))(?:\\\\s*,\\\\s*\\\\g<fn>)?)\\\\s*(?<![[\\\\p{S}\\\\p{P}]&&[^),;\\\\]`}_\\\"']])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.haskell\",\"patterns\":[{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"3\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]]))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.function.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},\"gadt_constructor\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(?:(\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\)))\",\"beginCaptures\":{\"2\":{\"name\":\"constant.other.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"},\"4\":{\"name\":\"constant.other.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(?x)\\n # GADT constructor ends\\n (?=\\\\b(?<!'')deriving\\\\b(?!')) \\n # Decreasing indentation\\n |(?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]}]},\"infix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"keyword.operator.infix.haskell\"}},\"match\":\"((?:(?<!'')('')?[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.backtick.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`)\",\"name\":\"keyword.operator.function.infix.haskell\"}]},\"inline_phase\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.inlining-phase.haskell\",\"patterns\":[{\"match\":\"~\",\"name\":\"punctuation.tilde.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"\\\\w*\",\"name\":\"invalid\"}]},\"integer_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.integral.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.integral.hexadecimal.haskell\"},\"3\":{\"name\":\"constant.numeric.integral.octal.haskell\"},\"4\":{\"name\":\"constant.numeric.integral.binary.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*\\\\h[_\\\\h]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\\\\b(?!')\"},\"keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.$2.haskell\"}},\"match\":\"\\\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\\\b(?!')\"},\"layout_herald\":{\"begin\":\"(?<!')\\\\b(?:(where|let|m?do)|(of))\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.of.haskell\"},\"3\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},\"liquid_haskell\":{\"begin\":\"\\\\{-@\",\"end\":\"@-}\",\"name\":\"block.liquidhaskell.haskell\",\"patterns\":[{\"include\":\"$self\"}]},\"module_exports\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.declaration.exports.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.module.haskell\"}},\"match\":\"\\\\b(?<!')(module)\\\\b(?!')\"},{\"include\":\"#comma\"},{\"include\":\"#export_constructs\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#export_constructs\"},{\"include\":\"#comma\"}]}]},\"module_name\":{\"match\":\"(?<conid>[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*(\\\\.\\\\g<conid>)?)\",\"name\":\"entity.name.namespace.haskell\"},\"numeric_literals\":{\"patterns\":[{\"include\":\"#float_literals\"},{\"include\":\"#integer_literals\"}]},\"overloaded_label\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.hash.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"(?<![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(#)(?:(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")|[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'.]+)\",\"name\":\"entity.name.label.haskell\"}]},\"pragma\":{\"begin\":\"\\\\{-#\",\"end\":\"#-}\",\"name\":\"meta.preprocessor.haskell\",\"patterns\":[{\"begin\":\"(?i)\\\\b(?<!')(LANGUAGE)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"match\":\"(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)\",\"name\":\"invalid.deprecated\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.preprocessor.extension.haskell\"}},\"match\":\"((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))\"},{\"include\":\"#comma\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)(?:\\\\s*(\\\\[[^\\\\[\\\\]]*])?\\\\s*|\\\\s+)(instance)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#inline_phase\"}]},\"3\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)\\\\b(?!')(?:\\\\s+(INLINE)\\\\b(?!'))?\\\\s*(\\\\[[^\\\\[\\\\]]*])?\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#inline_phase\"}]}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"(?i)\\\\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\\\\b(?!')\",\"name\":\"keyword.other.preprocessor.haskell\"},{\"begin\":\"(?i)\\\\b(DEPRECATED|WARNING)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#string_literal\"}]}]},\"prefix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"entity.name.function.infix.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(?!(?:--+|\\\\.\\\\.)\\\\))(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\\\\s*(\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\[)([edp])?(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\[)(t)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\[)(?:(\\\\$\\\\$)|(\\\\$))?([[^\\\\s\\\\p{S}\\\\p{P}].'_]*)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"4\":{\"name\":\"entity.name.quasi-quoter.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"5\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\5\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\"}]},\"record\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_field\"}]},\"record_decl\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.definition.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_decl_field\"}]},\"record_decl_field\":{\"begin\":\"(?:([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.definition.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.definition.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"},{\"include\":\"#record_decl_field\"}]},\"record_field\":{\"patterns\":[{\"begin\":\"(?:([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d.']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record_wildcard\"}]},\"record_wildcard\":{\"captures\":{\"1\":{\"name\":\"variable.other.member.wildcard.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(\\\\.\\\\.)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"reserved_symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-dot.haskell\"},\"2\":{\"name\":\"keyword.operator.colon.haskell\"},\"3\":{\"name\":\"keyword.operator.eq.haskell\"},\"4\":{\"name\":\"keyword.operator.lambda.haskell\"},\"5\":{\"name\":\"keyword.operator.pipe.haskell\"},\"6\":{\"name\":\"keyword.operator.arrow.left.haskell\"},\"7\":{\"name\":\"keyword.operator.arrow.haskell\"},\"8\":{\"name\":\"keyword.operator.arrow.left.tail.haskell\"},\"9\":{\"name\":\"keyword.operator.arrow.left.tail.double.haskell\"},\"10\":{\"name\":\"keyword.operator.arrow.tail.haskell\"},\"11\":{\"name\":\"keyword.operator.arrow.tail.double.haskell\"},\"12\":{\"name\":\"keyword.other.forall.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:(\\\\.\\\\.)|(:)|(=)|(\\\\\\\\)|(\\\\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.postfix.hash.haskell\"}},\"match\":\"(?<=[[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^#,;\\\\[`{]])(#+)(?![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^),;\\\\]`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d)}\\\\]])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d(\\\\[{])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.tilde.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.bang.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.minus.haskell\"},\"4\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"5\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"}},\"match\":\"(?<![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(?:(~)|(!)|(-)|(\\\\$)|(\\\\$\\\\$))(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d({\\\\[])\"}]},\"role_annotation\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(type)\\\\s+(role)\\\\b(?!')\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.role.haskell\"}},\"end\":\"(?x) # Detect end of block by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"name\":\"meta.role-annotation.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_constructor\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.role.$1.haskell\"}},\"match\":\"\\\\b(?<!')(nominal|representational|phantom)\\\\b(?!')\"}]}]},\"start_type_signature\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[\\\\],]|(?<!')\\\\b(in|then|else|of)\\\\b(?!')|(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]])|([#@])-}|(?=[};])|^(?!\\\\1\\\\s*\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$)))\",\"name\":\"meta.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[\\\\],]|\\\\b(?<!')(in|then|else|of)\\\\b(?!')|([#@])-}|(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]])|(?=[};])|$)\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"string_literal\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.haskell\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"name\":\"string.quoted.double.haskell\",\"patterns\":[{\"match\":\"\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\"'\\\\&])\",\"name\":\"constant.character.escape.haskell\"},{\"match\":\"\\\\\\\\(?:o[0-7]+|x\\\\h+|[0-9]+)\",\"name\":\"constant.character.escape.octal.haskell\"},{\"match\":\"\\\\\\\\\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.haskell\"},{\"begin\":\"\\\\\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.begin.haskell\"}},\"end\":\"\\\\\\\\\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.end.haskell\"}},\"patterns\":[{\"match\":\"\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.haskell\"}]}]},\"type_application\":{\"patterns\":[{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(?=\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?<=\\\")\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"type_constructor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.haskell\"}},\"match\":\"(')?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\"}]},\"type_operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.operator.infix.haskell\"}},\"match\":\"(?:(?<!')('))?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(?![#@]?-})(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.backtick.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.infix.haskell\"},\"5\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(')?(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`)\"}]},\"type_signature\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*(\\\\))\",\"name\":\"support.constant.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*,[\\\\s,]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[\\\\s,]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(')?(\\\\[)\\\\s*(])\",\"name\":\"support.constant.empty-list.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"name\":\"keyword.operator.double-colon.haskell\"},{\"include\":\"#forall\"},{\"match\":\"=>|⇒\",\"name\":\"keyword.operator.big-arrow.haskell\"},{\"include\":\"#string_literal\"},{\"match\":\"'[^']'\",\"name\":\"invalid\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#type_operator\"},{\"include\":\"#type_constructor\"},{\"begin\":\"(\\\\()(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"include\":\"#type_variable\"}]},\"type_variable\":{\"match\":\"\\\\b(?<!')(?!(?:forall|deriving)\\\\b(?!'))[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"variable.other.generic-type.haskell\"},\"where\":{\"patterns\":[{\"begin\":\"(?<!')\\\\b(where)\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\b(?<!')(where)\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"}]}},\"scopeName\":\"source.haskell\",\"aliases\":[\"hs\"]}"))
|
|
1
|
+
const lang = Object.freeze(JSON.parse("{\"displayName\":\"Haskell\",\"fileTypes\":[\"hs\",\"hs-boot\",\"hsig\"],\"name\":\"haskell\",\"patterns\":[{\"include\":\"#liquid_haskell\"},{\"include\":\"#comment_like\"},{\"include\":\"#numeric_literals\"},{\"include\":\"#string_literal\"},{\"include\":\"#char_literal\"},{\"match\":\"(?<![@#])-}\",\"name\":\"invalid\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(\\\\))\",\"name\":\"constant.language.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"constant.language.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*,[\\\\s,]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[\\\\s,]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(\\\\[)\\\\s*(])\",\"name\":\"constant.language.empty-list.haskell\"},{\"begin\":\"(\\\\b(?<!')(module)|^(signature))(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.module.haskell\"},\"3\":{\"name\":\"keyword.other.signature.haskell\"}},\"end\":\"(?=\\\\b(?<!')where\\\\b(?!'))\",\"name\":\"meta.declaration.module.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"},{\"match\":\"[a-z]+\",\"name\":\"invalid\"}]},{\"include\":\"#ffi\"},{\"begin\":\"^(\\\\s*)(class)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.class.haskell\"}},\"end\":\"(?x) # Detect end of class declaration:\\n # 'where' keyword\\n (?=(?<!')\\\\bwhere\\\\b(?!')) \\n # Decreasing indentation\\n |(?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"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\":\"(?x) # Detect end of data declaration:\\n # Deriving clause\\n (?=(?<!')\\\\bderiving\\\\b(?!')) \\n # Decreasing indentation\\n |(?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"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\":\"(?x) # Detect end of pattern type definition by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"name\":\"meta.declaration.pattern.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\s*(pattern)\\\\b(?!')\",\"captures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"(?x) # Detect end of pattern type definition by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"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\":\"(?x) # Detect end of data declaration: \\n # Decreasing indentation\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"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\":\"(?x) # Detect end of type family by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"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\":\"(?x) # Detect end of type definition by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"name\":\"meta.declaration.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(instance)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.declaration.instance.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\s*)(import)(\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.import.haskell\"}},\"end\":\"(?=\\\\b(?<!')(where)\\\\b(?!'))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.import.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"}},\"match\":\"(qualified|as|hiding)\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"}]},{\"include\":\"#deriving\"},{\"include\":\"#layout_herald\"},{\"include\":\"#keyword\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#integer_literals\"},{\"include\":\"#infix_op\"}]}},\"match\":\"^\\\\s*(infix[lr]?)\\\\s+(.*)\",\"name\":\"meta.fixity-declaration.haskell\"},{\"include\":\"#overloaded_label\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#fun_decl\"},{\"include\":\"#qualifier\"},{\"include\":\"#data_constructor\"},{\"include\":\"#start_type_signature\"},{\"include\":\"#prefix_op\"},{\"include\":\"#infix_op\"},{\"begin\":\"(\\\\()(#)\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#quasi_quote\"},{\"begin\":\"(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record\"}],\"repository\":{\"adt_constructor\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:(=)|(\\\\|))(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.eq.haskell\"},\"2\":{\"name\":\"keyword.operator.pipe.haskell\"}},\"end\":\"(?:\\\\G|^)\\\\s*(?:(?<!')\\\\b([\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'.]+)|('?(?<paren>\\\\((?:[^()]?|\\\\g<paren>)*\\\\)))|('?(?<brac>\\\\((?:[^\\\\[\\\\]]?|\\\\g<brac>)*])))\\\\s*(?:(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)|(`)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`))|(?<!')\\\\b([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"2\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"6\":{\"name\":\"constant.other.operator.haskell\"},\"7\":{\"name\":\"punctuation.backtick.haskell\"},\"8\":{\"name\":\"constant.other.haskell\"},\"9\":{\"name\":\"punctuation.backtick.haskell\"},\"10\":{\"name\":\"constant.other.haskell\"},\"11\":{\"name\":\"punctuation.paren.haskell\"},\"12\":{\"name\":\"constant.other.operator.haskell\"},\"13\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#record_decl\"},{\"include\":\"#forall\"},{\"include\":\"#context\"}]}]},\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},\"char_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.haskell\"},\"2\":{\"name\":\"constant.character.escape.haskell\"},\"3\":{\"name\":\"constant.character.escape.octal.haskell\"},\"4\":{\"name\":\"constant.character.escape.hexadecimal.haskell\"},\"5\":{\"name\":\"constant.character.escape.control.haskell\"},\"6\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"match\":\"(?<![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])(')(?:[ -\\\\[\\\\]-~]|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x\\\\h+)|(\\\\\\\\\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))(')\",\"name\":\"string.quoted.single.haskell\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.haskell\"},\"comment_like\":{\"patterns\":[{\"include\":\"#cpp\"},{\"include\":\"#pragma\"},{\"include\":\"#comments\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(--\\\\s[|$])\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?=^(?!\\\\1--+(?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]`{}_\\\"']])))\",\"name\":\"comment.block.documentation.haskell\"},{\"begin\":\"(^[ \\\\t]+)?(--\\\\s[\\\\^*])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.documentation.haskell\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\{-\\\\s?[|$*\\\\^]\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-}\",\"name\":\"comment.block.documentation.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},{\"begin\":\"(^[ \\\\t]+)?(?=--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-dash.haskell\"}]},{\"include\":\"#block_comment\"}]},\"context\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_signature\"}]},\"2\":{\"name\":\"keyword.operator.big-arrow.haskell\"}},\"match\":\"(.*)(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(=>|⇒)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"cpp\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.c\"}},\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*(?![.'\\\\w])\",\"name\":\"constant.other.haskell\"},\"deriving\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(deriving)\\\\s+(?:(via|stock|newtype|anyclass)\\\\s+)?\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.deriving.haskell\"},\"3\":{\"name\":\"keyword.other.deriving.strategy.$3.haskell\"}},\"end\":\"(?x) # Detect end of deriving statement\\n # Decreasing indentation\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"match\":\"(?<!')\\\\b(instance)\\\\b(?!')\",\"name\":\"keyword.other.instance.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.strategy.$1.haskell\"}},\"match\":\"(?<!')\\\\b(via|stock|newtype|anyclass)\\\\b(?!')\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"5\":{\"name\":\"keyword.other.deriving.strategy.via.haskell\"},\"6\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"(deriving)(?:\\\\s+(stock|newtype|anyclass))?\\\\s+([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(\\\\s+(via)\\\\s+(.*)$)?\",\"name\":\"meta.deriving.haskell\"},{\"match\":\"(?<!')\\\\b(via)\\\\b(?!')\",\"name\":\"keyword.other.deriving.strategy.via.haskell\"}]},\"double_colon\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"match\":\"\\\\s*(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\\\\s*\"},\"export_constructs\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"\\\\b(?<!')(pattern)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"begin\":\"\\\\b(?<!')(type)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.type.haskell\"}},\"end\":\"([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"storage.type.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"match\":\"(?<!')\\\\b[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"storage.type.haskell\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"ffi\":{\"begin\":\"^(\\\\s*)(foreign)\\\\s+(import|export)\\\\s+\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.foreign.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"}},\"end\":\"(?x) # Detect end of FFI block by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"name\":\"meta.$3.foreign.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.calling-convention.$1.haskell\"}},\"match\":\"\\\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\\\s+\"},{\"begin\":\"(?=\\\")|(?=\\\\b(?<!')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!'))\",\"end\":\"(?=(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},\"3\":{\"name\":\"entity.name.function.haskell\"},\"4\":{\"name\":\"entity.name.function.infix.haskell\"}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*(?:\\\\b(?<!'')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!')|\\\\(\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*\\\\))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\\b(?<!')(safe|unsafe|interruptible)\\\\b(?!')\\\\s*(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")?\\\\s*$\"},{\"captures\":{\"0\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\"\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.function.infix.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"\\\\b(?<!'')([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\\\\b(?!')|(\\\\()\\\\s*(?!--+\\\\))([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\"}]},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]},\"float_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.floating.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.floating.hexadecimal.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][_0-9]*\\\\.[0-9][_0-9]*(?:[eE][\\\\-+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\\\\-+]?[0-9][_0-9]*)|(0(?:[xX]_*\\\\h[_\\\\h]*\\\\.\\\\h[_\\\\h]*(?:[pP][\\\\-+]?[0-9][_0-9]*)?|[xX]_*\\\\h[_\\\\h]*[pP][\\\\-+]?[0-9][_0-9]*)))\\\\b(?!')\"},\"forall\":{\"begin\":\"\\\\b(?<!')(forall|∀)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.forall.haskell\"}},\"end\":\"(\\\\.)|(->|→)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.period.haskell\"},\"2\":{\"name\":\"keyword.operator.arrow.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_variable\"},{\"include\":\"#type_signature\"}]},\"fun_decl\":{\"begin\":\"^(\\\\s*)(?<fn>(?:[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*#*|\\\\(\\\\s*(?!--+\\\\))[[\\\\p{S}\\\\p{P}]&&[^(),:;\\\\[\\\\]`{}_\\\"']][[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*\\\\s*\\\\))(?:\\\\s*,\\\\s*\\\\g<fn>)?)\\\\s*(?<![[\\\\p{S}\\\\p{P}]&&[^),;\\\\]`}_\\\"']])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.haskell\",\"patterns\":[{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"3\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]]))|(?=[};])|^(?!\\\\1\\\\s+\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$))\",\"name\":\"meta.function.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},\"gadt_constructor\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(?:(\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\)))\",\"beginCaptures\":{\"2\":{\"name\":\"constant.other.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"},\"4\":{\"name\":\"constant.other.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(?x)\\n # GADT constructor ends\\n (?=\\\\b(?<!'')deriving\\\\b(?!')) \\n # Decreasing indentation\\n |(?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\\n\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d]*)|(\\\\()\\\\s*(:[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]*)\\\\s*(\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]}]},\"infix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"keyword.operator.infix.haskell\"}},\"match\":\"((?:(?<!'')('')?[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.backtick.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`)\",\"name\":\"keyword.operator.function.infix.haskell\"}]},\"inline_phase\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.inlining-phase.haskell\",\"patterns\":[{\"match\":\"~\",\"name\":\"punctuation.tilde.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"\\\\w*\",\"name\":\"invalid\"}]},\"integer_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.integral.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.integral.hexadecimal.haskell\"},\"3\":{\"name\":\"constant.numeric.integral.octal.haskell\"},\"4\":{\"name\":\"constant.numeric.integral.binary.haskell\"}},\"match\":\"\\\\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*\\\\h[_\\\\h]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\\\\b(?!')\"},\"keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.$2.haskell\"}},\"match\":\"\\\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\\\b(?!')\"},\"layout_herald\":{\"begin\":\"(?<!')\\\\b(?:(where|let|m?do)|(of))\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.of.haskell\"},\"3\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},\"liquid_haskell\":{\"begin\":\"\\\\{-@\",\"end\":\"@-}\",\"name\":\"block.liquidhaskell.haskell\",\"patterns\":[{\"include\":\"$self\"}]},\"module_exports\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.declaration.exports.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.module.haskell\"}},\"match\":\"\\\\b(?<!')(module)\\\\b(?!')\"},{\"include\":\"#comma\"},{\"include\":\"#export_constructs\"},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#export_constructs\"},{\"include\":\"#comma\"}]}]},\"module_name\":{\"match\":\"(?<conid>[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*(\\\\.\\\\g<conid>)?)\",\"name\":\"entity.name.namespace.haskell\"},\"numeric_literals\":{\"patterns\":[{\"include\":\"#float_literals\"},{\"include\":\"#integer_literals\"}]},\"overloaded_label\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.hash.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"(?<![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(#)(?:(\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\")|[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'.]+)\",\"name\":\"entity.name.label.haskell\"}]},\"pragma\":{\"begin\":\"\\\\{-#\",\"end\":\"#-}\",\"name\":\"meta.preprocessor.haskell\",\"patterns\":[{\"begin\":\"(?i)\\\\b(?<!')(LANGUAGE)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"match\":\"(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)\",\"name\":\"invalid.deprecated\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.preprocessor.extension.haskell\"}},\"match\":\"((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))\"},{\"include\":\"#comma\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)(?:\\\\s*(\\\\[[^\\\\[\\\\]]*])?\\\\s*|\\\\s+)(instance)\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#inline_phase\"}]},\"3\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?i)\\\\b(?<!')(SPECIALI[SZ]E)\\\\b(?!')(?:\\\\s+(INLINE)\\\\b(?!'))?\\\\s*(\\\\[[^\\\\[\\\\]]*])?\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#inline_phase\"}]}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"(?i)\\\\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\\\\b(?!')\",\"name\":\"keyword.other.preprocessor.haskell\"},{\"begin\":\"(?i)\\\\b(DEPRECATED|WARNING)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-})\",\"patterns\":[{\"include\":\"#string_literal\"}]}]},\"prefix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"entity.name.function.infix.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()\\\\s*(?!(?:--+|\\\\.\\\\.)\\\\))(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\\\\s*(\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\b(?<!')[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\[)([edp])?(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\[)(t)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\3\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\[)(?:(\\\\$\\\\$)|(\\\\$))?([[^\\\\s\\\\p{S}\\\\p{P}].'_]*)(\\\\|\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"4\":{\"name\":\"entity.name.quasi-quoter.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"5\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\5\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\"}]},\"record\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_field\"}]},\"record_decl\":{\"begin\":\"(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.definition.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_decl_field\"}]},\"record_decl_field\":{\"begin\":\"(?:([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.definition.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.definition.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"},{\"include\":\"#record_decl_field\"}]},\"record_field\":{\"patterns\":[{\"begin\":\"(?:([\\\\p{Ll}\\\\p{Lu}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d.']*)|(\\\\()\\\\s*([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record_wildcard\"}]},\"record_wildcard\":{\"captures\":{\"1\":{\"name\":\"variable.other.member.wildcard.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(\\\\.\\\\.)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},\"reserved_symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-dot.haskell\"},\"2\":{\"name\":\"keyword.operator.colon.haskell\"},\"3\":{\"name\":\"keyword.operator.eq.haskell\"},\"4\":{\"name\":\"keyword.operator.lambda.haskell\"},\"5\":{\"name\":\"keyword.operator.pipe.haskell\"},\"6\":{\"name\":\"keyword.operator.arrow.left.haskell\"},\"7\":{\"name\":\"keyword.operator.arrow.haskell\"},\"8\":{\"name\":\"keyword.operator.arrow.left.tail.haskell\"},\"9\":{\"name\":\"keyword.operator.arrow.left.tail.double.haskell\"},\"10\":{\"name\":\"keyword.operator.arrow.tail.haskell\"},\"11\":{\"name\":\"keyword.operator.arrow.tail.double.haskell\"},\"12\":{\"name\":\"keyword.other.forall.haskell\"}},\"match\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:(\\\\.\\\\.)|(:)|(=)|(\\\\\\\\)|(\\\\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.postfix.hash.haskell\"}},\"match\":\"(?<=[[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^#,;\\\\[`{]])(#+)(?![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^),;\\\\]`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d)}\\\\]])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d(\\\\[{])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.tilde.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.bang.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.minus.haskell\"},\"4\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"5\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"}},\"match\":\"(?<![[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{]])(?:(~)|(!)|(-)|(\\\\$)|(\\\\$\\\\$))(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d({\\\\[])\"}]},\"role_annotation\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(type)\\\\s+(role)\\\\b(?!')\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.role.haskell\"}},\"end\":\"(?x) # Detect end of block by decreasing indentation:\\n (?=\\\\}|;) # Explicit indentation\\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\\n \\\\1\\\\s+\\\\S # - more indented, or\\n | \\\\s* # - starts with whitespace, followed by:\\n (?: $ # - the end of the line (i.e. empty line), or\\n |\\\\{-[^@] # - the start of a block comment, or\\n |--+ # - the start of a single-line comment.\\n (?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$) # non-symbol\\n # The double dash may not be followed by other operator characters\\n # (then it would be an operator, not a comment)\\n )\",\"name\":\"meta.role-annotation.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_constructor\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.role.$1.haskell\"}},\"match\":\"\\\\b(?<!')(nominal|representational|phantom)\\\\b(?!')\"}]}]},\"start_type_signature\":{\"patterns\":[{\"begin\":\"^(\\\\s*)(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[\\\\],]|(?<!')\\\\b(in|then|else|of)\\\\b(?!')|(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]])|([#@])-}|(?=[};])|^(?!\\\\1\\\\s*\\\\S|\\\\s*(?:$|\\\\{-[^@]|--+(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]{}`_\\\"']]).*$)))\",\"name\":\"meta.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(,;\\\\[`{_\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=#?\\\\)|[\\\\],]|\\\\b(?<!')(in|then|else|of)\\\\b(?!')|([#@])-}|(?<![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])(?:([\\\\\\\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\[\\\\]`{}_\\\"'[^\\\\p{S}\\\\p{P}]])|(?=[};])|$)\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"string_literal\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.haskell\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"name\":\"string.quoted.double.haskell\",\"patterns\":[{\"match\":\"\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\"'\\\\&])\",\"name\":\"constant.character.escape.haskell\"},{\"match\":\"\\\\\\\\(?:o[0-7]+|x\\\\h+|[0-9]+)\",\"name\":\"constant.character.escape.octal.haskell\"},{\"match\":\"\\\\\\\\\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.haskell\"},{\"begin\":\"\\\\\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.begin.haskell\"}},\"end\":\"\\\\\\\\\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.end.haskell\"}},\"patterns\":[{\"match\":\"\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.haskell\"}]}]},\"type_application\":{\"patterns\":[{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(?=\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?<=\\\")\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},{\"begin\":\"(?<=[\\\\s,;\\\\[\\\\]{}\\\"])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d'])\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"type_constructor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.haskell\"}},\"match\":\"(')?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+)\\\\s*(\\\\))\"}]},\"type_operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.operator.infix.haskell\"}},\"match\":\"(?:(?<!')('))?((?:\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)(?![#@]?-})(#+|[[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']]+(?<!#))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.backtick.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.infix.haskell\"},\"5\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(')?(`)((?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\\\\.)*)([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*)(`)\"}]},\"type_signature\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*(\\\\))\",\"name\":\"support.constant.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\()\\\\s*,[\\\\s,]*(\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*(#)(\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\()(#)\\\\s*,[\\\\s,]*(#)(\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(')?(\\\\[)\\\\s*(])\",\"name\":\"support.constant.empty-list.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"(::|∷)(?![[\\\\p{S}\\\\p{P}]&&[^(),;\\\\[\\\\]`{}_\\\"']])\",\"name\":\"keyword.operator.double-colon.haskell\"},{\"include\":\"#forall\"},{\"match\":\"=>|⇒\",\"name\":\"keyword.operator.big-arrow.haskell\"},{\"include\":\"#string_literal\"},{\"match\":\"'[^']'\",\"name\":\"invalid\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#type_operator\"},{\"include\":\"#type_constructor\"},{\"begin\":\"(\\\\()(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"include\":\"#type_variable\"}]},\"type_variable\":{\"match\":\"\\\\b(?<!')(?!(?:forall|deriving)\\\\b(?!'))[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\d']*\",\"name\":\"variable.other.generic-type.haskell\"},\"where\":{\"patterns\":[{\"begin\":\"(?<!')\\\\b(where)\\\\s*(\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\b(?<!')(where)\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"}]}},\"scopeName\":\"source.haskell\",\"aliases\":[\"hs\"]}"))
|
|
2
2
|
|
|
3
3
|
export default [
|
|
4
4
|
lang
|
package/dist/mermaid.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const lang = Object.freeze(JSON.parse("{\"displayName\":\"Mermaid\",\"fileTypes\":[],\"injectionSelector\":\"L:text.html.markdown\",\"name\":\"mermaid\",\"patterns\":[{\"include\":\"#mermaid-code-block\"},{\"include\":\"#mermaid-code-block-with-attributes\"},{\"include\":\"#mermaid-ado-code-block\"}],\"repository\":{\"mermaid\":{\"patterns\":[{\"begin\":\"^\\\\s*(architecture-beta)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"string\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"string\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"8\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"9\":{\"name\":\"string\"},\"10\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"11\":{\"name\":\"keyword.control.mermaid\"},\"12\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(group|service)\\\\s+([\\\\w\\\\-]+)\\\\s*(\\\\()?([\\\\w\\\\s\\\\-]+)?(:)?([\\\\w\\\\s\\\\-]+)?(\\\\))?\\\\s*(\\\\[)?([\\\\w\\\\s\\\\-]+)?\\\\s*(])?\\\\s*(in)?\\\\s*([\\\\w\\\\-]+)?\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"entity.name.function.mermaid\"},\"7\":{\"name\":\"keyword.control.mermaid\"},\"8\":{\"name\":\"entity.name.function.mermaid\"},\"9\":{\"name\":\"keyword.control.mermaid\"},\"10\":{\"name\":\"variable\"},\"11\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"12\":{\"name\":\"variable\"},\"13\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s*(\\\\{)?\\\\s*(group)?(})?\\\\s*(:)\\\\s*([TBLR])\\\\s+(<?-->?)\\\\s+([TBLR])\\\\s*(:)\\\\s*([\\\\w\\\\-]+)\\\\s*(\\\\{)?\\\\s*(group)?(})?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(junction)\\\\s+([\\\\w\\\\-]+)\\\\s*(in)?\\\\s*([\\\\w\\\\-]+)?\"}]},{\"begin\":\"^\\\\s*(classDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"entity.name.type.class.mermaid\"},\"6\":{\"name\":\"keyword.control.mermaid\"},\"7\":{\"name\":\"string\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s(\\\"(?:\\\\d+|\\\\*|0..\\\\d+|1..\\\\d+|1..\\\\*)\\\")?\\\\s?(--o|--\\\\*|<--|-->|<\\\\.\\\\.|\\\\.\\\\.>|<\\\\|\\\\.\\\\.|\\\\.\\\\.\\\\|>|<\\\\|--|--\\\\|>|--\\\\*|--|\\\\.\\\\.|\\\\*--|o--)\\\\s(\\\"(?:\\\\d+|\\\\*|0..\\\\d+|1..\\\\d+|1..\\\\*)\\\")?\\\\s?([\\\\w\\\\-]+)\\\\s?(:)?\\\\s(.*)$\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"entity.name.function.mermaid\"},\"5\":{\"name\":\"punctuation.parenthesis.open.mermaid\"},\"6\":{\"name\":\"storage.type.mermaid\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"8\":{\"name\":\"storage.type.mermaid\"},\"9\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"10\":{\"name\":\"entity.name.variable.parameter.mermaid\"},\"11\":{\"name\":\"punctuation.parenthesis.closed.mermaid\"},\"12\":{\"name\":\"keyword.control.mermaid\"},\"13\":{\"name\":\"storage.type.mermaid\"},\"14\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"15\":{\"name\":\"storage.type.mermaid\"},\"16\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s?(:)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(\\\\()([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?\\\\s?([\\\\w\\\\-]+)?(\\\\))([*$]{0,2})\\\\s?([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?$\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"6\":{\"name\":\"storage.type.mermaid\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"8\":{\"name\":\"entity.name.variable.field.mermaid\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s?(:)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\\\\s([\\\\w\\\\-]+)?$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"4\":{\"name\":\"entity.name.type.class.mermaid\"}},\"match\":\"(?i)(<<)([\\\\w\\\\-]+)(>>)\\\\s?([\\\\w\\\\-]+)?\"},{\"begin\":\"(?i)(class)\\\\s+([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\\\\s?(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.type.class.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"6\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"punctuation.parenthesis.open.mermaid\"}},\"end\":\"(?i)(\\\\))([*$]{0,2})\\\\s?([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.closed.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"storage.type.mermaid\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"5\":{\"name\":\"storage.type.mermaid\"},\"6\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mermaid\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"3\":{\"name\":\"storage.type.mermaid\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"5\":{\"name\":\"entity.name.variable.parameter.mermaid\"}},\"match\":\"(?i)\\\\s*,?\\\\s*([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?\\\\s?([\\\\w\\\\-]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"6\":{\"name\":\"entity.name.variable.field.mermaid\"}},\"match\":\"(?i)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\\\\s([\\\\w\\\\-]+)?$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"4\":{\"name\":\"entity.name.type.class.mermaid\"}},\"match\":\"(?i)(<<)([\\\\w\\\\-]+)(>>)\\\\s?([\\\\w\\\\-]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.type.class.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"match\":\"(?i)(class)\\\\s+([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\"}]},{\"begin\":\"^\\\\s*(erDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"},\"4\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)^\\\\s*([\\\\w\\\\-]+)\\\\s*(\\\\[)?\\\\s*([\\\\w\\\\-]+|\\\"[\\\\w\\\\s\\\\-]+\\\")?\\\\s*(])?$\"},{\"begin\":\"(?i)\\\\s+([\\\\w\\\\-]+)\\\\s*(\\\\[)?\\\\s*([\\\\w\\\\-]+|\\\"[\\\\w\\\\s\\\\-]+\\\")?\\\\s*(])?\\\\s*(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s+([\\\\w\\\\-]+)\\\\s+(PK|FK)?\\\\s*(\\\"[\\\"($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")?\\\\s*\"},{\"match\":\"%%.*\",\"name\":\"comment\"}]},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s*((?:\\\\|o|\\\\|\\\\||}o|}\\\\||one or (?:zero|more|many)|zero or (?:one|more|many)|many\\\\([01]\\\\)|only one|0\\\\+|1\\\\+?)(?:..|--)(?:o\\\\||\\\\|\\\\||o\\\\{|\\\\|\\\\{|one or (?:zero|more|many)|zero or (?:one|more|many)|many\\\\([01]\\\\)|only one|0\\\\+|1\\\\+?))\\\\s*([\\\\w\\\\-]+)\\\\s*(:)\\\\s*(\\\"[\\\\w\\\\s]*\\\"|[\\\\w\\\\-]+)\"}]},{\"begin\":\"^\\\\s*(gantt)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)^\\\\s*(dateFormat)\\\\s+([\\\\w\\\\-.]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)^\\\\s*(axisFormat)\\\\s+([\\\\w%/\\\\\\\\\\\\-.]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)(tickInterval)\\\\s+(([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(excludes)\\\\s+((?:[\\\\d\\\\-,\\\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s+(todayMarker)\\\\s+(.*)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(section)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)^\\\\s(.*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"(crit|done|active|after)\",\"name\":\"entity.name.function.mermaid\"},{\"match\":\"%%.*\",\"name\":\"comment\"}]}]},{\"begin\":\"^\\\\s*(gitGraph)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)^\\\\s*(commit)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(id)(:)\\\\s?(\\\"[^\\\"\\\\n]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)\\\\s*(type)(:)\\\\s?(NORMAL|REVERSE|HIGHLIGHT)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(tag)(:)\\\\s?(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)^\\\\s*(checkout)\\\\s*([^\\\\s\\\"]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)^\\\\s*(branch)\\\\s*([^\\\\s\\\"]*)\\\\s*(?:(order)(:)\\\\s?(\\\\d+))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(merge)\\\\s*([^\\\\s\\\"]*)\\\\s*(?:(tag)(:)\\\\s?(\\\"[^\\\"\\\\n]*\\\"))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(cherry-pick)\\\\s+(id)(:)\\\\s*(\\\"[^\\\"\\\\n]*\\\")\"}]},{\"begin\":\"^\\\\s*(graph|flowchart)\\\\s+([\\\\p{L} 0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"},\"5\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)^\\\\s*(subgraph)\\\\s+(\\\\w+)(\\\\[)(\\\"?[\\\\w\\\\s*+%=\\\\\\\\/:.\\\\-'`,\\\\&\\\\^#$!?<>]*\\\"?)(])\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"^\\\\s*(subgraph)\\\\s+([\\\\p{L} 0-9<>]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"^(?i)\\\\s*(direction)\\\\s+(RB|BT|RL|TD|LR)\"},{\"match\":\"\\\\b(end)\\\\b\",\"name\":\"keyword.control.mermaid\"},{\"begin\":\"(?i)(\\\\b(?:(?!--|==)[\\\\-\\\\w])+\\\\b\\\\s*)(\\\\(\\\\[|\\\\[\\\\[|\\\\[\\\\(|\\\\[|\\\\(+|[>{]|\\\\(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"end\":\"(?i)(]\\\\)|]]|\\\\)]|]|\\\\)+|}|\\\\)\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"begin\":\"\\\\s*(\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string\"}},\"patterns\":[{\"begin\":\"(?i)([^\\\"]*)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(?=\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment\"}},\"match\":\"([^\\\"]*)\"}]}]},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"}]},{\"begin\":\"(?i)\\\\s*((?:-{2,5}|={2,5})[xo>]?\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(?i)(\\\\|)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"begin\":\"\\\\s*(\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string\"}},\"patterns\":[{\"begin\":\"(?i)([^\\\"]*)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(?=\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment\"}},\"match\":\"([^\\\"]*)\"}]}]},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([xo<]?(?:-{2,5}|={2,5}|-\\\\.{1,3}|-\\\\.))((?:(?!--|==)[\\\\w\\\\s*+%=\\\\\\\\/:.\\\\-'`,\\\"\\\\&\\\\^#$!?<>\\\\[\\\\]])*)((?:-{2,5}|={2,5}|\\\\.{1,3}-|\\\\.-)[xo>]?)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)\"},{\"match\":\"(\\\\b(?:(?!--|==)[\\\\-\\\\w])+\\\\b\\\\s*)\",\"name\":\"variable\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(class)\\\\s+(\\\\b[\\\\-,\\\\w]+)\\\\s+(\\\\b\\\\w+\\\\b)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(classDef)\\\\s+(\\\\b\\\\w+\\\\b)\\\\s+(\\\\b[\\\\-,:;#\\\\w]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(click)\\\\s+(\\\\b[\\\\-\\\\w]+\\\\b\\\\s*)(\\\\b\\\\w+\\\\b)?\\\\s(\\\"*.*\\\")\"}]},{\"begin\":\"^\\\\s*(pie)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)\\\\s(.*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"}]}]},{\"begin\":\"^\\\\s*(quadrantChart)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)^\\\\s*([xy]-axis)\\\\s+((?:(?!-->)[$\\\\&%/#.,?!*+='\\\\\\\\\\\\-\\\\w\\\\s])*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(-->)\\\\s*([$\\\\&%/#.,?!*+='\\\\\\\\\\\\-\\\\w\\\\s]*)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(quadrant-[1234])\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"7\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([$\\\\&%/#.,?!*+='\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(:)\\\\s*(\\\\[)\\\\s*(\\\\d\\\\.\\\\d+)\\\\s*(,)\\\\s*(\\\\d\\\\.\\\\d+)\\\\s*(])\"}]},{\"begin\":\"^\\\\s*(requirementDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)^\\\\s*((?:functional|interface|performance|physical)?requirement|designConstraint)\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(?i)\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(id:)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(text:)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)\\\\s*(risk:)\\\\s*(low|medium|high)\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)\\\\s*(verifymethod:)\\\\s*(analysis|inspection|test|demonstration)\\\\s*$\"}]},{\"begin\":\"(?i)^\\\\s*(element)\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(?i)\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(type:)\\\\s*([\\\"$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(docref:)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"}]},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"}},\"match\":\"(?i)^\\\\s*(\\\\w+)\\\\s*(-)\\\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\\\s*(->)\\\\s*(\\\\w+)\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"}},\"match\":\"(?i)^\\\\s*(\\\\w+)\\\\s*(<-)\\\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\\\s*(-)\\\\s*(\\\\w+)\\\\s*$\"}]},{\"begin\":\"^\\\\s*(sequenceDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"(%%|#).*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)(title)\\\\s*(:)?\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(participant|actor)\\\\s+((?:(?! as )[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s])+)\\\\s*(as)?\\\\s([\\\"()$\\\\&%\\\\^/#.,?!*=<>'\\\\\\\\\\\\w\\\\s]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*((?:de)?activate)\\\\s+(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"},\"6\":{\"name\":\"keyword.control.mermaid\"},\"7\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(Note)\\\\s+((?:left|right)\\\\sof|over)\\\\s+(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?\\\\s*)(,)?(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?\\\\s*)?(:)(?:\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(loop)(?:\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"\\\\s*(end)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(alt|else|option|par|and|rect|autonumber|critical|opt)(?:\\\\s+([^#;]*))?$\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?)\\\\s*(-?-[>x)]>?[+\\\\-]?)\\\\s*([\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?)\\\\s*(:)\\\\s*([^;#]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(box)\\\\s+(transparent)(?:\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(box)(?:\\\\s+([^;#]*))?\"}]},{\"begin\":\"^\\\\s*(stateDiagram(?:-v2)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"\\\\s+(})\\\\s+\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"\\\\s+(--)\\\\s+\"},{\"match\":\"^\\\\s*([\\\\w\\\\-]+)$\",\"name\":\"variable\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s+(:)\\\\s+(\\\\s*[\\\\-\\\\w\\\\s]+\\\\b)\"},{\"begin\":\"(?i)^\\\\s*(state)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(\\\"[\\\\-\\\\w\\\\s]+\\\\b\\\")\\\\s+(as)\\\\s+([\\\\w\\\\-]+)\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s+(\\\\{)\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s+(<<(?:fork|join)>>)\"}]},{\"begin\":\"(?i)([\\\\w\\\\-]+)\\\\s+(-->)\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+([\\\\w\\\\-]+)\\\\s*(:)?\\\\s*([^\\\\n:]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)(\\\\[\\\\*])\\\\s*(:)?\\\\s*([^\\\\n:]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)(\\\\[\\\\*])\\\\s+(-->)\\\\s+([\\\\w\\\\-]+)\\\\s*(:)?\\\\s*([^\\\\n:]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(note (?:left|right) of)\\\\s+([\\\\w\\\\-]+)\\\\s+(:)\\\\s*([^\\\\n:]+)\"},{\"begin\":\"(?i)^\\\\s*(note (?:left|right) of)\\\\s+([\\\\w\\\\-]+)(.|\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"contentName\":\"string\",\"end\":\"(?i)(end note)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}}}]},{\"begin\":\"^\\\\s*(journey)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title|section)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)\\\\s*([\\\"()$\\\\&%\\\\^/.,?!*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(:)\\\\s*(\\\\d+)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*,?\\\\s*([^,#\\\\n]+)\"}]}]},{\"begin\":\"^\\\\s*(xychart(?:-beta)?(?:\\\\s+horizontal)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)^\\\\s*(x-axis)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\\\\s*(-->)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+([($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w]*)\"},{\"begin\":\"\\\\s*(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"\\\\s*(])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([($\\\\&%\\\\^/#.?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*(,)\"}]}]},{\"begin\":\"(?i)^\\\\s*(y-axis)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\\\\s*(-->)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+([($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w]*)\"}]},{\"begin\":\"(?i)^\\\\s*(line|bar)\\\\s*(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"\\\\s*(])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*(,)\"}]}]}]},\"mermaid-ado-code-block\":{\"begin\":\"(?i)\\\\s*:::\\\\s*mermaid\\\\s*$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"\\\\s*:::\\\\s*\",\"patterns\":[{\"include\":\"#mermaid\"}]},\"mermaid-code-block\":{\"begin\":\"(?i)(?<=[`~])mermaid(\\\\s+[^`~]*)?$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"(^|\\\\G)(?=\\\\s*[`~]{3,}\\\\s*$)\",\"patterns\":[{\"include\":\"#mermaid\"}]},\"mermaid-code-block-with-attributes\":{\"begin\":\"(?i)(?<=[`~])\\\\{\\\\s*\\\\.?mermaid(\\\\s+[^`~]*)?$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"(^|\\\\G)(?=\\\\s*[`~]{3,}\\\\s*$)\",\"patterns\":[{\"include\":\"#mermaid\"}]}},\"scopeName\":\"markdown.mermaid.codeblock\",\"aliases\":[\"mmd\"]}"))
|
|
1
|
+
const lang = Object.freeze(JSON.parse("{\"displayName\":\"Mermaid\",\"fileTypes\":[],\"injectionSelector\":\"L:text.html.markdown\",\"name\":\"mermaid\",\"patterns\":[{\"include\":\"#mermaid-code-block\"},{\"include\":\"#mermaid-code-block-with-attributes\"},{\"include\":\"#mermaid-ado-code-block\"}],\"repository\":{\"mermaid\":{\"patterns\":[{\"begin\":\"^\\\\s*(architecture-beta)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"string\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"string\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"8\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"9\":{\"name\":\"string\"},\"10\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"11\":{\"name\":\"keyword.control.mermaid\"},\"12\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(group|service)\\\\s+([\\\\w\\\\-]+)\\\\s*(\\\\()?([\\\\w\\\\s\\\\-]+)?(:)?([\\\\w\\\\s\\\\-]+)?(\\\\))?\\\\s*(\\\\[)?([\\\\w\\\\s\\\\-]+)?\\\\s*(])?\\\\s*(in)?\\\\s*([\\\\w\\\\-]+)?\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"entity.name.function.mermaid\"},\"7\":{\"name\":\"keyword.control.mermaid\"},\"8\":{\"name\":\"entity.name.function.mermaid\"},\"9\":{\"name\":\"keyword.control.mermaid\"},\"10\":{\"name\":\"variable\"},\"11\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"12\":{\"name\":\"variable\"},\"13\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s*(\\\\{)?\\\\s*(group)?(})?\\\\s*(:)\\\\s*([TBLR])\\\\s+(<?-->?)\\\\s+([TBLR])\\\\s*(:)\\\\s*([\\\\w\\\\-]+)\\\\s*(\\\\{)?\\\\s*(group)?(})?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(junction)\\\\s+([\\\\w\\\\-]+)\\\\s*(in)?\\\\s*([\\\\w\\\\-]+)?\"}]},{\"begin\":\"^\\\\s*(classDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"entity.name.type.class.mermaid\"},\"6\":{\"name\":\"keyword.control.mermaid\"},\"7\":{\"name\":\"string\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s(\\\"(?:\\\\d+|\\\\*|0..\\\\d+|1..\\\\d+|1..\\\\*)\\\")?\\\\s?(--o|--\\\\*|<--|-->|<\\\\.\\\\.|\\\\.\\\\.>|<\\\\|\\\\.\\\\.|\\\\.\\\\.\\\\|>|<\\\\|--|--\\\\|>|--\\\\*|--|\\\\.\\\\.|\\\\*--|o--)\\\\s(\\\"(?:\\\\d+|\\\\*|0..\\\\d+|1..\\\\d+|1..\\\\*)\\\")?\\\\s?([\\\\w\\\\-]+)\\\\s?(:)?\\\\s(.*)$\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"entity.name.function.mermaid\"},\"5\":{\"name\":\"punctuation.parenthesis.open.mermaid\"},\"6\":{\"name\":\"storage.type.mermaid\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"8\":{\"name\":\"storage.type.mermaid\"},\"9\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"10\":{\"name\":\"entity.name.variable.parameter.mermaid\"},\"11\":{\"name\":\"punctuation.parenthesis.closed.mermaid\"},\"12\":{\"name\":\"keyword.control.mermaid\"},\"13\":{\"name\":\"storage.type.mermaid\"},\"14\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"15\":{\"name\":\"storage.type.mermaid\"},\"16\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s?(:)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(\\\\()([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?\\\\s?([\\\\w\\\\-]+)?(\\\\))([*$]{0,2})\\\\s?([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?$\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"6\":{\"name\":\"storage.type.mermaid\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"8\":{\"name\":\"entity.name.variable.field.mermaid\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s?(:)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\\\\s([\\\\w\\\\-]+)?$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"4\":{\"name\":\"entity.name.type.class.mermaid\"}},\"match\":\"(?i)(<<)([\\\\w\\\\-]+)(>>)\\\\s?([\\\\w\\\\-]+)?\"},{\"begin\":\"(?i)(class)\\\\s+([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\\\\s?(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.type.class.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"6\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"punctuation.parenthesis.open.mermaid\"}},\"end\":\"(?i)(\\\\))([*$]{0,2})\\\\s?([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.closed.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"storage.type.mermaid\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"5\":{\"name\":\"storage.type.mermaid\"},\"6\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mermaid\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"3\":{\"name\":\"storage.type.mermaid\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"5\":{\"name\":\"entity.name.variable.parameter.mermaid\"}},\"match\":\"(?i)\\\\s*,?\\\\s*([\\\\w\\\\-]+)?(~)?([\\\\w\\\\-]+)?(~)?\\\\s?([\\\\w\\\\-]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"6\":{\"name\":\"entity.name.variable.field.mermaid\"}},\"match\":\"(?i)\\\\s([+~#\\\\-])?([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\\\\s([\\\\w\\\\-]+)?$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"4\":{\"name\":\"entity.name.type.class.mermaid\"}},\"match\":\"(?i)(<<)([\\\\w\\\\-]+)(>>)\\\\s?([\\\\w\\\\-]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.type.class.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"match\":\"(?i)(class)\\\\s+([\\\\w\\\\-]+)(~)?([\\\\w\\\\-]+)?(~)?\"}]},{\"begin\":\"^\\\\s*(erDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"},\"4\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)^\\\\s*([\\\\w\\\\-]+)\\\\s*(\\\\[)?\\\\s*([\\\\w\\\\-]+|\\\"[\\\\w\\\\s\\\\-]+\\\")?\\\\s*(])?$\"},{\"begin\":\"(?i)\\\\s+([\\\\w\\\\-]+)\\\\s*(\\\\[)?\\\\s*([\\\\w\\\\-]+|\\\"[\\\\w\\\\s\\\\-]+\\\")?\\\\s*(])?\\\\s*(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s+([\\\\w\\\\-]+)\\\\s+(PK|FK)?\\\\s*(\\\"[\\\"($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")?\\\\s*\"},{\"match\":\"%%.*\",\"name\":\"comment\"}]},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s*((?:\\\\|o|\\\\|\\\\||}o|}\\\\||one or (?:zero|more|many)|zero or (?:one|more|many)|many\\\\([01]\\\\)|only one|0\\\\+|1\\\\+?)(?:..|--)(?:o\\\\||\\\\|\\\\||o\\\\{|\\\\|\\\\{|one or (?:zero|more|many)|zero or (?:one|more|many)|many\\\\([01]\\\\)|only one|0\\\\+|1\\\\+?))\\\\s*([\\\\w\\\\-]+)\\\\s*(:)\\\\s*(\\\"[\\\\w\\\\s]*\\\"|[\\\\w\\\\-]+)\"}]},{\"begin\":\"^\\\\s*(gantt)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)^\\\\s*(dateFormat)\\\\s+([\\\\w\\\\-.]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)^\\\\s*(axisFormat)\\\\s+([\\\\w%/\\\\\\\\\\\\-.]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)(tickInterval)\\\\s+(([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(excludes)\\\\s+((?:[\\\\d\\\\-,\\\\s]|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s+(todayMarker)\\\\s+(.*)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(section)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)^\\\\s(.*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"(crit|done|active|after)\",\"name\":\"entity.name.function.mermaid\"},{\"match\":\"%%.*\",\"name\":\"comment\"}]}]},{\"begin\":\"^\\\\s*(gitGraph)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)^\\\\s*(commit)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(id)(:)\\\\s?(\\\"[^\\\"\\\\n]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)\\\\s*(type)(:)\\\\s?(NORMAL|REVERSE|HIGHLIGHT)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(tag)(:)\\\\s?(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)^\\\\s*(checkout)\\\\s*([^\\\\s\\\"]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)^\\\\s*(branch)\\\\s*([^\\\\s\\\"]*)\\\\s*(?:(order)(:)\\\\s?(\\\\d+))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(merge)\\\\s*([^\\\\s\\\"]*)\\\\s*(?:(tag)(:)\\\\s?(\\\"[^\\\"\\\\n]*\\\"))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(cherry-pick)\\\\s+(id)(:)\\\\s*(\\\"[^\\\"\\\\n]*\\\")\"}]},{\"begin\":\"^\\\\s*(graph|flowchart)\\\\s+([\\\\p{L} 0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"},\"5\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)^\\\\s*(subgraph)\\\\s+(\\\\w+)(\\\\[)(\\\"?[\\\\w\\\\s*+%=\\\\\\\\/:.\\\\-'`,\\\\&\\\\^#$!?<>]*\\\"?)(])\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"^\\\\s*(subgraph)\\\\s+([\\\\p{L} 0-9<>]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"^(?i)\\\\s*(direction)\\\\s+(RB|BT|RL|TD|LR)\"},{\"match\":\"\\\\b(end)\\\\b\",\"name\":\"keyword.control.mermaid\"},{\"begin\":\"(?i)(\\\\b(?:(?!--|==)[\\\\-\\\\w])+\\\\b\\\\s*)(\\\\(\\\\[|\\\\[\\\\[|\\\\[\\\\(|\\\\[|\\\\(+|[>{]|\\\\(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"end\":\"(?i)(]\\\\)|]]|\\\\)]|]|\\\\)+|}|\\\\)\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"begin\":\"\\\\s*(\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string\"}},\"patterns\":[{\"begin\":\"(?i)([^\\\"]*)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(?=\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment\"}},\"match\":\"([^\\\"]*)\"}]}]},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"}]},{\"begin\":\"(?i)\\\\s*((?:-{2,5}|={2,5})[xo>]?\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(?i)(\\\\|)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"begin\":\"\\\\s*(\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string\"}},\"patterns\":[{\"begin\":\"(?i)([^\\\"]*)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"end\":\"(?=\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment\"}},\"match\":\"([^\\\"]*)\"}]}]},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([xo<]?(?:-{2,5}|={2,5}|-\\\\.{1,3}|-\\\\.))((?:(?!--|==)[\\\\w\\\\s*+%=\\\\\\\\/:.\\\\-'`,\\\"\\\\&\\\\^#$!?<>\\\\[\\\\]])*)((?:-{2,5}|={2,5}|\\\\.{1,3}-|\\\\.-)[xo>]?)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)\"},{\"match\":\"(\\\\b(?:(?!--|==)[\\\\-\\\\w])+\\\\b\\\\s*)\",\"name\":\"variable\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(class)\\\\s+(\\\\b[\\\\-,\\\\w]+)\\\\s+(\\\\b\\\\w+\\\\b)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(classDef)\\\\s+(\\\\b\\\\w+\\\\b)\\\\s+(\\\\b[\\\\-,:;#\\\\w]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(click)\\\\s+(\\\\b[\\\\-\\\\w]+\\\\b\\\\s*)(\\\\b\\\\w+\\\\b)?\\\\s(\\\"*.*\\\")\"}]},{\"begin\":\"^\\\\s*(pie)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)\\\\s(.*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"}]}]},{\"begin\":\"^\\\\s*(quadrantChart)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)^\\\\s*([xy]-axis)\\\\s+((?:(?!-->)[$\\\\&%/#.,?!*+='\\\\\\\\\\\\-\\\\w\\\\s])*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(-->)\\\\s*([$\\\\&%/#.,?!*+='\\\\\\\\\\\\-\\\\w\\\\s]*)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(quadrant-[1234])\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"7\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([$\\\\&%/#.,?!*+='\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(:)\\\\s*(\\\\[)\\\\s*(\\\\d\\\\.\\\\d+)\\\\s*(,)\\\\s*(\\\\d\\\\.\\\\d+)\\\\s*(])\"}]},{\"begin\":\"^\\\\s*(requirementDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)^\\\\s*((?:functional|interface|performance|physical)?requirement|designConstraint)\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(?i)\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(id:)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(text:)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)\\\\s*(risk:)\\\\s*(low|medium|high)\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)\\\\s*(verifymethod:)\\\\s*(analysis|inspection|test|demonstration)\\\\s*$\"}]},{\"begin\":\"(?i)^\\\\s*(element)\\\\s*([\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(?i)\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(type:)\\\\s*([\\\"$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(docref:)\\\\s*([$\\\\&%\\\\^/#.,?!;:*+<>_'\\\\\\\\\\\\w\\\\s]+)\"}]},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"}},\"match\":\"(?i)^\\\\s*(\\\\w+)\\\\s*(-)\\\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\\\s*(->)\\\\s*(\\\\w+)\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"}},\"match\":\"(?i)^\\\\s*(\\\\w+)\\\\s*(<-)\\\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\\\s*(-)\\\\s*(\\\\w+)\\\\s*$\"}]},{\"begin\":\"^\\\\s*(sequenceDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"(%%|#).*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)(title)\\\\s*(:)?\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(participant|actor)\\\\s+((?:(?! as )[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s])+)\\\\s*(as)?\\\\s([\\\"()$\\\\&%\\\\^/#.,?!*=<>'\\\\\\\\\\\\w\\\\s]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*((?:de)?activate)\\\\s+(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"},\"6\":{\"name\":\"keyword.control.mermaid\"},\"7\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(Note)\\\\s+((?:left|right)\\\\sof|over)\\\\s+(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?\\\\s*)(,)?(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?\\\\s*)?(:)(?:\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(loop)(?:\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"\\\\s*(end)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(alt|else|option|par|and|rect|autonumber|critical|opt)(?:\\\\s+([^#;]*))?$\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(\\\\b[\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?)\\\\s*(-?-[>x)]>?[+\\\\-]?)\\\\s*([\\\"()$\\\\&%\\\\^/#.?!*=<>'\\\\\\\\\\\\w\\\\s]+\\\\b\\\\)?)\\\\s*(:)\\\\s*([^;#]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(box)\\\\s+(transparent)(?:\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(box)(?:\\\\s+([^;#]*))?\"}]},{\"begin\":\"^\\\\s*(stateDiagram(?:-v2)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"\\\\s+(})\\\\s+\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"\\\\s+(--)\\\\s+\"},{\"match\":\"^\\\\s*([\\\\w\\\\-]+)$\",\"name\":\"variable\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)([\\\\w\\\\-]+)\\\\s+(:)\\\\s+(\\\\s*[\\\\-\\\\w\\\\s]+\\\\b)\"},{\"begin\":\"(?i)^\\\\s*(state)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*(\\\"[\\\\-\\\\w\\\\s]+\\\\b\\\")\\\\s+(as)\\\\s+([\\\\w\\\\-]+)\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s+(\\\\{)\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\w\\\\-]+)\\\\s+(<<(?:fork|join)>>)\"}]},{\"begin\":\"(?i)([\\\\w\\\\-]+)\\\\s+(-->)\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+([\\\\w\\\\-]+)\\\\s*(:)?\\\\s*([^\\\\n:]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"match\":\"(?i)(\\\\[\\\\*])\\\\s*(:)?\\\\s*([^\\\\n:]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"match\":\"(?i)(\\\\[\\\\*])\\\\s+(-->)\\\\s+([\\\\w\\\\-]+)\\\\s*(:)?\\\\s*([^\\\\n:]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(note (?:left|right) of)\\\\s+([\\\\w\\\\-]+)\\\\s+(:)\\\\s*([^\\\\n:]+)\"},{\"begin\":\"(?i)^\\\\s*(note (?:left|right) of)\\\\s+([\\\\w\\\\-]+)(.|\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"contentName\":\"string\",\"end\":\"(?i)(end note)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}}}]},{\"begin\":\"^\\\\s*(journey)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title|section)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)\\\\s*([\\\"()$\\\\&%\\\\^/.,?!*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\\\\s*(:)\\\\s*(\\\\d+)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable\"}},\"match\":\"(?i)\\\\s*,?\\\\s*([^,#\\\\n]+)\"}]}]},{\"begin\":\"^\\\\s*(xychart(?:-beta)?(?:\\\\s+horizontal)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"(^|\\\\G)(?=\\\\s*[`:~]{3,}\\\\s*$)\",\"patterns\":[{\"match\":\"%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\s*(title)\\\\s+(\\\\s*[\\\"()$\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*)\"},{\"begin\":\"(?i)^\\\\s*(x-axis)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\\\\s*(-->)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+([($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w]*)\"},{\"begin\":\"\\\\s*(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"\\\\s*(])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s*([($\\\\&%\\\\^/#.?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*(,)\"}]}]},{\"begin\":\"(?i)^\\\\s*(y-axis)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\\\\s*(-->)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+(\\\"[($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w\\\\s]*\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"match\":\"(?i)\\\\s+([($\\\\&%\\\\^/#.,?!;:*+=<>'\\\\\\\\\\\\-\\\\w]*)\"}]},{\"begin\":\"(?i)^\\\\s*(line|bar)\\\\s*(\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"\\\\s*(])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"match\":\"(?i)\\\\s*([\\\\-+]?\\\\d+\\\\.?\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"match\":\"(?i)\\\\s*(,)\"}]}]}]},\"mermaid-ado-code-block\":{\"begin\":\"(?i)\\\\s*:::\\\\s*mermaid\\\\s*$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"\\\\s*:::\\\\s*\",\"patterns\":[{\"include\":\"#mermaid\"}]},\"mermaid-code-block\":{\"begin\":\"(?i)(?<=[`~])mermaid(\\\\s+[^`~]*)?$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"(^|\\\\G)(?=\\\\s*[`~]{3,}\\\\s*$)\",\"patterns\":[{\"include\":\"#mermaid\"}]},\"mermaid-code-block-with-attributes\":{\"begin\":\"(?i)(?<=[`~])\\\\{\\\\s*\\\\.?mermaid(\\\\s+[^`~]*)?$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"(^|\\\\G)(?=\\\\s*[`~]{3,}\\\\s*$)\",\"patterns\":[{\"include\":\"#mermaid\"}]}},\"scopeName\":\"markdown.mermaid.codeblock\",\"aliases\":[\"mmd\"]}"))
|
|
2
2
|
|
|
3
3
|
export default [
|
|
4
4
|
lang
|