{ "fileTypes": [ ], "scopeName": "hint.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}](?|=>)+\\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}](?|⇒)(?!(?:[\\p{S}\\p{P}](?|=>)+\\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": "keyword.other.type.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": "((?