{ "fileTypes": [ ], "scopeName": "hint.message.haskell", "macros": { "identStartCharClass": "[\\p{Ll}_\\p{Lu}\\p{Lt}]", "identContCharClass": "[\\p{Ll}_\\p{Lu}\\p{Lt}']", "identCharClass": "[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']", "functionNameOne": "[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", "classNameOne": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", "functionName": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", "className": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*", "operatorChar": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]", "operator": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+", "operatorFun": "(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))", "basicChar": "[\\ -\\[\\]-~]", "escapeChar": "\\\\(?: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\\\\\\\"'\\&])", "octalChar": "(?:\\\\o[0-7]+)", "hexChar": "(?:\\\\x[0-9A-Fa-f]+)", "controlChar": "(?:\\^[A-Z@\\[\\]\\\\\\^_])", "character": "(?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\^[A-Z@\\[\\]\\\\\\^_])|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", "functionTypeDeclaration": "(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))))*))(?:\\s*((?|=>)+\\s*)+)", "ctor": "(?:(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?|=>)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)))*)?))", "typeDeclOne": "(?:(?!(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?(?:(?:(?!(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?|→)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])" }, { "name": "keyword.other.big-arrow.haskell", "match": "(?|⇒)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])" }, { "include": "#operator" }, { "name": "variable.other.generic-type.haskell", "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?|=>)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)))*)?))", "captures": { "1": { "patterns": [ { "include": "#type_ctor" } ] }, "2": { "name": "meta.type-signature.haskell", "patterns": [ { "include": "#type_signature" } ] } } }, { "match": "\\|", "captures": { "0": { "name": "punctuation.separator.pipe.haskell" } } }, { "name": "meta.declaration.type.data.record.block.haskell", "begin": "\\{", "beginCaptures": { "0": { "name": "keyword.operator.record.begin.haskell" } }, "end": "\\}", "endCaptures": { "0": { "name": "keyword.operator.record.end.haskell" } }, "patterns": [ { "include": "#comments" }, { "include": "#comma" }, { "include": "#record_field_declaration" } ] }, { "include": "#ctor_type_declaration" } ] } ] }, "type_alias": { "patterns": [ { "name": "meta.declaration.type.type.haskell", "begin": "^([ \\t]*)(type)(?:(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))", "end": "^(?!\\1[ \\t]|[ \\t]*$)", "contentName": "meta.type-signature.haskell", "beginCaptures": { "2": { "name": "storage.type.data.haskell" } }, "patterns": [ { "include": "#comments" }, { "include": "#family_and_instance" }, { "include": "#where" }, { "include": "#assignment_op" }, { "include": "#type_signature" } ] } ] }, "keywords": { "patterns": [ { "name": "keyword.other.haskell", "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?(?:[^\\(\\)]|\\(\\g\\))*)(?(?:[^\\(\\)]|\\(\\g\\))*))\\)", "captures": { "1": { "patterns": [ { "include": "#haskell_expr" } ] } } }, { "match": "((?