2961 lines
97 KiB
JSON
2961 lines
97 KiB
JSON
{
|
|
"name": "ocaml",
|
|
"scopeName": "source.ocaml",
|
|
"fileTypes": [".ml", ".mli"],
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#decl"
|
|
}
|
|
],
|
|
"repository": {
|
|
"attribute": {
|
|
"begin": "(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\]",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributePayload"
|
|
}
|
|
]
|
|
},
|
|
"attributeIdentifier": {
|
|
"match": "((?<![#\\-:!?.@*/&%^+<=>|~$])%(?![#\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",
|
|
"captures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
}
|
|
},
|
|
"attributePayload": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pathModuleExtended"
|
|
},
|
|
{
|
|
"include": "#pathRecord"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=\\])",
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
},
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=\\])",
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=\\])|\\bwhen\\b",
|
|
"endCaptures": {
|
|
"1": {}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))",
|
|
"end": "(?=\\])",
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
"bindClassTerm": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "entity.name.function strong emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#bindTermArgs"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#literalClassType"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bindClassType": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "entity.name.function strong emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#bindTermArgs"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#literalClassType"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#literalClassType"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bindConstructor": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag"
|
|
},
|
|
"3": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"match": "\\.\\.",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
{
|
|
"match": "\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))",
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bindSignature": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModuleExtended"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bindStructure": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"match": "\\bmodule\\b",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
},
|
|
{
|
|
"match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",
|
|
"name": "entity.name.function strong emphasis"
|
|
},
|
|
{
|
|
"begin": "\\((?!\\))",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#variableModule"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#literalUnit"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#structure"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bindTerm": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",
|
|
"end": "(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"4": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",
|
|
"end": "(?=\\b(?:module|open)\\b)|(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\brec\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.function strong emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#comment"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))",
|
|
"end": "((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "entity.name.function strong emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#bindTermArgs"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#bindTermArgs"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#declModule"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))",
|
|
"end": "(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#pathModuleSimple"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\btype\\b|(?=[^[:space:]])",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"bindTermArgs": {
|
|
"patterns": [
|
|
{
|
|
"begin": "~|\\?",
|
|
"end": ":|(?=[^[:space:]])",
|
|
"applyEndPatternLast": true,
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "\\((?!\\*)",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=\\()",
|
|
"end": ":|=",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=:)",
|
|
"end": "=|(?=\\))",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=\\))",
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
"bindType": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#pathType"
|
|
},
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "entity.name.function strong"
|
|
},
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#bindConstructor"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"comment": {
|
|
"patterns": [
|
|
{
|
|
"include": "#attribute"
|
|
},
|
|
{
|
|
"include": "#extension"
|
|
},
|
|
{
|
|
"include": "#commentBlock"
|
|
},
|
|
{
|
|
"include": "#commentDoc"
|
|
}
|
|
]
|
|
},
|
|
"commentBlock": {
|
|
"begin": "\\(\\*(?!\\*[^\\)])",
|
|
"end": "\\*\\)",
|
|
"name": "comment constant.regexp meta.separator.markdown",
|
|
"contentName": "emphasis",
|
|
"patterns": [
|
|
{
|
|
"include": "#commentBlock"
|
|
},
|
|
{
|
|
"include": "#commentDoc"
|
|
}
|
|
]
|
|
},
|
|
"commentDoc": {
|
|
"begin": "\\(\\*\\*",
|
|
"end": "\\*\\)",
|
|
"name": "comment constant.regexp meta.separator.markdown",
|
|
"patterns": [
|
|
{
|
|
"match": "\\*"
|
|
},
|
|
{
|
|
"include": "#comment"
|
|
}
|
|
]
|
|
},
|
|
"decl": {
|
|
"patterns": [
|
|
{
|
|
"include": "#declClass"
|
|
},
|
|
{
|
|
"include": "#declException"
|
|
},
|
|
{
|
|
"include": "#declInclude"
|
|
},
|
|
{
|
|
"include": "#declModule"
|
|
},
|
|
{
|
|
"include": "#declOpen"
|
|
},
|
|
{
|
|
"include": "#declTerm"
|
|
},
|
|
{
|
|
"include": "#declType"
|
|
}
|
|
]
|
|
},
|
|
"declClass": {
|
|
"begin": "\\bclass\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "entity.name.class constant.numeric markup.underline"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))",
|
|
"end": "\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "entity.name.class constant.numeric markup.underline"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#bindClassTerm"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#bindClassType"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"declException": {
|
|
"begin": "\\bexception\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword markup.underline"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#bindConstructor"
|
|
}
|
|
]
|
|
},
|
|
"declInclude": {
|
|
"begin": "\\binclude\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
"declModule": {
|
|
"begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",
|
|
"end": "(\\btype\\b)|(?=[[:upper:]])",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"match": "\\brec\\b",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#bindSignature"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?=[[:upper:]])",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#bindStructure"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"declOpen": {
|
|
"begin": "\\bopen\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#pathModuleExtended"
|
|
}
|
|
]
|
|
},
|
|
"declTerm": {
|
|
"begin": "\\b(?:(external|val)|(method)|(let))\\b(!?)",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "support.type markup.underline"
|
|
},
|
|
"2": {
|
|
"name": "storage.type markup.underline"
|
|
},
|
|
"3": {
|
|
"name": "keyword.control markup.underline"
|
|
},
|
|
"4": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#bindTerm"
|
|
}
|
|
]
|
|
},
|
|
"declType": {
|
|
"begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword markup.underline"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#bindType"
|
|
}
|
|
]
|
|
},
|
|
"extension": {
|
|
"begin": "(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\]",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributePayload"
|
|
}
|
|
]
|
|
},
|
|
"literal": {
|
|
"patterns": [
|
|
{
|
|
"include": "#termConstructor"
|
|
},
|
|
{
|
|
"include": "#literalArray"
|
|
},
|
|
{
|
|
"include": "#literalBoolean"
|
|
},
|
|
{
|
|
"include": "#literalCharacter"
|
|
},
|
|
{
|
|
"include": "#literalList"
|
|
},
|
|
{
|
|
"include": "#literalNumber"
|
|
},
|
|
{
|
|
"include": "#literalObjectTerm"
|
|
},
|
|
{
|
|
"include": "#literalString"
|
|
},
|
|
{
|
|
"include": "#literalRecord"
|
|
},
|
|
{
|
|
"include": "#literalUnit"
|
|
}
|
|
]
|
|
},
|
|
"literalArray": {
|
|
"begin": "\\[\\|",
|
|
"end": "\\|\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
"literalBoolean": {
|
|
"match": "\\bfalse|true\\b",
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
"literalCharacter": {
|
|
"begin": "(?<![[:word:]])'",
|
|
"end": "'",
|
|
"name": "markup.punctuation.quote.beginning",
|
|
"patterns": [
|
|
{
|
|
"include": "#literalCharacterEscape"
|
|
}
|
|
]
|
|
},
|
|
"literalCharacterEscape": {
|
|
"match": "\\\\(?:[\\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])"
|
|
},
|
|
"literalClassType": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "\\bobject\\b",
|
|
"end": "\\bend\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "\\binherit\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "\\bas\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#variablePattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#pattern"
|
|
},
|
|
{
|
|
"include": "#declTerm"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\[",
|
|
"end": "\\]"
|
|
}
|
|
]
|
|
},
|
|
"literalList": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"literalNumber": {
|
|
"match": "(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?",
|
|
"name": "constant.numeric"
|
|
},
|
|
"literalObjectTerm": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "\\bobject\\b",
|
|
"end": "\\bend\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "\\binherit\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "\\bas\\b",
|
|
"end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#variablePattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#pattern"
|
|
},
|
|
{
|
|
"include": "#declTerm"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\[",
|
|
"end": "\\]"
|
|
}
|
|
]
|
|
},
|
|
"literalRecord": {
|
|
"begin": "\\{",
|
|
"end": "\\}",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=\\{|;)",
|
|
"end": "(:)|(=)|(;)|(with)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"4": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",
|
|
"end": "(:)|(=)|(;)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(;)|(=)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": ";|(?=\\})",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"literalString": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\"",
|
|
"end": "\"",
|
|
"name": "string beginning.punctuation.definition.quote.markdown",
|
|
"patterns": [
|
|
{
|
|
"include": "#literalStringEscape"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(\\{)([_[:lower:]]*?)(\\|)",
|
|
"end": "(\\|)(\\2)(\\})",
|
|
"name": "string beginning.punctuation.definition.quote.markdown",
|
|
"patterns": [
|
|
{
|
|
"include": "#literalStringEscape"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"literalStringEscape": {
|
|
"match": "\\\\(?:[\\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])"
|
|
},
|
|
"literalUnit": {
|
|
"match": "\\(\\)",
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
"pathModuleExtended": {
|
|
"patterns": [
|
|
{
|
|
"include": "#pathModulePrefixExtended"
|
|
},
|
|
{
|
|
"match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",
|
|
"name": "entity.name.class constant.numeric"
|
|
}
|
|
]
|
|
},
|
|
"pathModulePrefixExtended": {
|
|
"begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()",
|
|
"end": "(?![[:space:]\\.]|$|\\()",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "entity.name.class constant.numeric"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "\\(",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",
|
|
"name": "string.other.link variable.language variable.parameter emphasis"
|
|
},
|
|
{
|
|
"include": "#structure"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword strong"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "entity.name.class constant.numeric"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.function strong"
|
|
},
|
|
"3": {
|
|
"name": "string.other.link variable.language variable.parameter emphasis"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"pathModulePrefixExtendedParens": {
|
|
"begin": "\\(",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",
|
|
"name": "string.other.link variable.language variable.parameter emphasis"
|
|
},
|
|
{
|
|
"include": "#structure"
|
|
}
|
|
]
|
|
},
|
|
"pathModulePrefixSimple": {
|
|
"begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)",
|
|
"end": "(?![[:space:]\\.])",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "entity.name.class constant.numeric"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword strong"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "entity.name.class constant.numeric"
|
|
},
|
|
"2": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"pathModuleSimple": {
|
|
"patterns": [
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",
|
|
"name": "entity.name.class constant.numeric"
|
|
}
|
|
]
|
|
},
|
|
"pathRecord": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"end": "(?=[^[:space:]\\.])(?!\\(\\*)",
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "((?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword strong"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "keyword strong"
|
|
},
|
|
"2": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"begin": "\\((?!\\*)",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"pattern": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#patternArray"
|
|
},
|
|
{
|
|
"include": "#patternLazy"
|
|
},
|
|
{
|
|
"include": "#patternList"
|
|
},
|
|
{
|
|
"include": "#patternMisc"
|
|
},
|
|
{
|
|
"include": "#patternModule"
|
|
},
|
|
{
|
|
"include": "#patternRecord"
|
|
},
|
|
{
|
|
"include": "#literal"
|
|
},
|
|
{
|
|
"include": "#patternParens"
|
|
},
|
|
{
|
|
"include": "#patternType"
|
|
},
|
|
{
|
|
"include": "#variablePattern"
|
|
},
|
|
{
|
|
"include": "#termOperator"
|
|
}
|
|
]
|
|
},
|
|
"patternArray": {
|
|
"begin": "\\[\\|",
|
|
"end": "\\|\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
"patternLazy": {
|
|
"match": "lazy",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"patternList": {
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
"patternMisc": {
|
|
"match": "((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b",
|
|
"captures": {
|
|
"1": {
|
|
"name": "string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
}
|
|
},
|
|
"patternModule": {
|
|
"begin": "\\bmodule\\b",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#declModule"
|
|
}
|
|
]
|
|
},
|
|
"patternParens": {
|
|
"begin": "\\((?!\\))",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
"patternRecord": {
|
|
"begin": "\\{",
|
|
"end": "\\}",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=\\{|;)",
|
|
"end": "(:)|(=)|(;)|(with)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"4": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",
|
|
"end": "(:)|(=)|(;)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(;)|(=)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": ";|(?=\\})",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"patternType": {
|
|
"begin": "\\btype\\b",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#declType"
|
|
}
|
|
]
|
|
},
|
|
"pragma": {
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#literalNumber"
|
|
},
|
|
{
|
|
"include": "#literalString"
|
|
}
|
|
]
|
|
},
|
|
"signature": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#signatureLiteral"
|
|
},
|
|
{
|
|
"include": "#signatureFunctor"
|
|
},
|
|
{
|
|
"include": "#pathModuleExtended"
|
|
},
|
|
{
|
|
"include": "#signatureParens"
|
|
},
|
|
{
|
|
"include": "#signatureRecovered"
|
|
},
|
|
{
|
|
"include": "#signatureConstraints"
|
|
}
|
|
]
|
|
},
|
|
"signatureConstraints": {
|
|
"begin": "\\bwith\\b",
|
|
"end": "(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",
|
|
"end": "\\b(?:(module)|(type))\\b",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
},
|
|
"2": {
|
|
"name": "keyword"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"include": "#declModule"
|
|
},
|
|
{
|
|
"include": "#declType"
|
|
}
|
|
]
|
|
},
|
|
"signatureFunctor": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\bfunctor\\b",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",
|
|
"end": "(\\(\\))|(\\((?!\\)))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?<=\\()",
|
|
"end": "(:)|(\\))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#variableModule"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=\\))",
|
|
"end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"name": "support.type strong"
|
|
}
|
|
]
|
|
},
|
|
"signatureLiteral": {
|
|
"begin": "\\bsig\\b",
|
|
"end": "\\bend\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#decl"
|
|
}
|
|
]
|
|
},
|
|
"signatureParens": {
|
|
"begin": "\\((?!\\))",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
"signatureRecovered": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))",
|
|
"end": "\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",
|
|
"end": "\\btype\\b",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",
|
|
"end": "\\bof\\b",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"structure": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#structureLiteral"
|
|
},
|
|
{
|
|
"include": "#structureFunctor"
|
|
},
|
|
{
|
|
"include": "#pathModuleExtended"
|
|
},
|
|
{
|
|
"include": "#structureParens"
|
|
}
|
|
]
|
|
},
|
|
"structureFunctor": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\bfunctor\\b",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",
|
|
"end": "(\\(\\))|(\\((?!\\)))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?<=\\()",
|
|
"end": "(:)|(\\))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#variableModule"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#signature"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=\\))",
|
|
"end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#structure"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"name": "support.type strong"
|
|
}
|
|
]
|
|
},
|
|
"structureLiteral": {
|
|
"begin": "\\bstruct\\b",
|
|
"end": "\\bend\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag emphasis"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pragma"
|
|
},
|
|
{
|
|
"include": "#decl"
|
|
}
|
|
]
|
|
},
|
|
"structureParens": {
|
|
"begin": "\\(",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#structureUnpack"
|
|
},
|
|
{
|
|
"include": "#structure"
|
|
}
|
|
]
|
|
},
|
|
"structureUnpack": {
|
|
"begin": "\\bval\\b",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
}
|
|
},
|
|
"term": {
|
|
"patterns": [
|
|
{
|
|
"include": "#termLet"
|
|
},
|
|
{
|
|
"include": "#termAtomic"
|
|
}
|
|
]
|
|
},
|
|
"termAtomic": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#termConditional"
|
|
},
|
|
{
|
|
"include": "#termConstructor"
|
|
},
|
|
{
|
|
"include": "#termDelim"
|
|
},
|
|
{
|
|
"include": "#termFor"
|
|
},
|
|
{
|
|
"include": "#termFunction"
|
|
},
|
|
{
|
|
"include": "#literal"
|
|
},
|
|
{
|
|
"include": "#termMatch"
|
|
},
|
|
{
|
|
"include": "#termMatchRule"
|
|
},
|
|
{
|
|
"include": "#termPun"
|
|
},
|
|
{
|
|
"include": "#termOperator"
|
|
},
|
|
{
|
|
"include": "#termTry"
|
|
},
|
|
{
|
|
"include": "#termWhile"
|
|
},
|
|
{
|
|
"include": "#pathRecord"
|
|
}
|
|
]
|
|
},
|
|
"termConditional": {
|
|
"match": "\\b(?:if|then|else)\\b",
|
|
"name": "keyword.control"
|
|
},
|
|
"termConstructor": {
|
|
"patterns": [
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong"
|
|
}
|
|
]
|
|
},
|
|
"termDelim": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\((?!\\))",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\bbegin\\b",
|
|
"end": "\\bend\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"termFor": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\bfor\\b",
|
|
"end": "\\bdone\\b",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "\\b(?:downto|to)\\b",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))",
|
|
"end": "\\bdo\\b",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",
|
|
"end": "(?=\\bdone\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"termFunction": {
|
|
"match": "\\b(?:(fun)|(function))\\b",
|
|
"captures": {
|
|
"1": {
|
|
"name": "storage.type"
|
|
},
|
|
"2": {
|
|
"name": "storage.type"
|
|
}
|
|
}
|
|
},
|
|
"termLet": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+",
|
|
"end": "\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
},
|
|
"2": {
|
|
"name": "storage.type markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)",
|
|
"end": "\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "storage.type markup.underline"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline"
|
|
},
|
|
"2": {
|
|
"name": "storage.type markup.underline"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#bindTerm"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"termMatch": {
|
|
"begin": "\\bmatch\\b",
|
|
"end": "\\bwith\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
"termMatchRule": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "support.type strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#attributeIdentifier"
|
|
},
|
|
{
|
|
"include": "#pattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "support.type strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pattern"
|
|
},
|
|
{
|
|
"begin": "\\bwhen\\b",
|
|
"end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"termOperator": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "entity.name.function"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "<-",
|
|
"captures": {
|
|
"0": {
|
|
"name": "keyword.control strong"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
]
|
|
},
|
|
"termPun": {
|
|
"begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])",
|
|
"end": ":|(?=[^[:space:]:])",
|
|
"applyEndPatternLast": true,
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"termTry": {
|
|
"begin": "\\btry\\b",
|
|
"end": "\\bwith\\b",
|
|
"captures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
"termWhile": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\bwhile\\b",
|
|
"end": "\\bdone\\b",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))",
|
|
"end": "\\bdo\\b",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",
|
|
"end": "(?=\\bdone\\b)",
|
|
"patterns": [
|
|
{
|
|
"include": "#term"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"type": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"match": "\\bnonrec\\b",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixExtended"
|
|
},
|
|
{
|
|
"include": "#typeLabel"
|
|
},
|
|
{
|
|
"include": "#typeObject"
|
|
},
|
|
{
|
|
"include": "#typeOperator"
|
|
},
|
|
{
|
|
"include": "#typeParens"
|
|
},
|
|
{
|
|
"include": "#typePolymorphicVariant"
|
|
},
|
|
{
|
|
"include": "#typeRecord"
|
|
},
|
|
{
|
|
"include": "#typeConstructor"
|
|
}
|
|
]
|
|
},
|
|
"typeConstructor": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(_)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])",
|
|
"end": "(?=\\((?!\\*)|\\*|:|,|=|\\.|>|-|\\{|\\[|\\+|\\}|\\)|\\]|;|\\|)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "comment constant.regexp meta.separator.markdown"
|
|
},
|
|
"3": {
|
|
"name": "string.other.link variable.language variable.parameter emphasis strong emphasis"
|
|
},
|
|
"4": {
|
|
"name": "keyword.control emphasis"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "entity.name.function strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixExtended"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"typeLabel": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(\\??)((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword strong emphasis"
|
|
},
|
|
"2": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
},
|
|
"3": {
|
|
"name": "keyword"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"typeModule": {
|
|
"begin": "\\bmodule\\b",
|
|
"end": "(?=\\))",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#pathModuleExtended"
|
|
},
|
|
{
|
|
"include": "#signatureConstraints"
|
|
}
|
|
]
|
|
},
|
|
"typeObject": {
|
|
"begin": "<",
|
|
"end": ">",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=<|;)",
|
|
"end": "(:)|(?=>)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"4": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(;)|(?=>)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"typeOperator": {
|
|
"patterns": [
|
|
{
|
|
"match": ",|;|[#\\-:!?.@*/&%^+<=>|~$]+",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
}
|
|
]
|
|
},
|
|
"typeParens": {
|
|
"begin": "\\(",
|
|
"end": "\\)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": ",",
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
{
|
|
"include": "#typeModule"
|
|
},
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
"typePolymorphicVariant": {
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"patterns": []
|
|
},
|
|
"typeRecord": {
|
|
"begin": "\\{",
|
|
"end": "\\}",
|
|
"captures": {
|
|
"0": {
|
|
"name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=\\{|;)",
|
|
"end": "(:)|(=)|(;)|(with)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"4": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comment"
|
|
},
|
|
{
|
|
"include": "#pathModulePrefixSimple"
|
|
},
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",
|
|
"end": "(:)|(=)|(;)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp strong"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",
|
|
"name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": "(;)|(=)|(?=\\})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
},
|
|
"2": {
|
|
"name": "support.type strong"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",
|
|
"end": ";|(?=\\})",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "variable.other.class.js message.error variable.interpolation string.regexp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#type"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"variableModule": {
|
|
"match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "string.other.link variable.language variable.parameter emphasis"
|
|
}
|
|
}
|
|
},
|
|
"variablePattern": {
|
|
"match": "(\\b_\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",
|
|
"captures": {
|
|
"1": {
|
|
"name": "comment constant.regexp meta.separator.markdown"
|
|
},
|
|
"2": {
|
|
"name": "string.other.link variable.language variable.parameter emphasis"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|