You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
345 lines
15 KiB
JSON
345 lines
15 KiB
JSON
{
|
|
"aliases": [
|
|
"re"
|
|
],
|
|
"keywords": {
|
|
"keyword": "and as asr assert begin class constraint do done downto else end exception externalfor fun function functor if in include inherit initializerland lazy let lor lsl lsr lxor match method mod module mutable new nonrecobject of open or private rec sig struct then to try type val virtual when while with",
|
|
"built_in": "array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",
|
|
"literal": "true false"
|
|
},
|
|
"illegal": "(:\\-|:=|\\${|\\+=)",
|
|
"contains": [
|
|
{
|
|
"className": "comment",
|
|
"begin": "\/\\*",
|
|
"end": "\\*\/",
|
|
"contains": [
|
|
{
|
|
"begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
|
|
},
|
|
{
|
|
"className": "doctag",
|
|
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
|
|
"relevance": 0
|
|
}
|
|
],
|
|
"illegal": "^(\\#,\\\/\\\/)"
|
|
},
|
|
{
|
|
"className": "character",
|
|
"begin": "'(\\\\[^']+|[^'])'",
|
|
"illegal": "\\n",
|
|
"relevance": 0
|
|
},
|
|
{
|
|
"className": "string",
|
|
"begin": "\"",
|
|
"end": "\"",
|
|
"illegal": "\\n",
|
|
"contains": [
|
|
{
|
|
"begin": "\\\\[\\s\\S]",
|
|
"relevance": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "literal",
|
|
"begin": "\\(\\)",
|
|
"relevance": 0
|
|
},
|
|
{
|
|
"className": "literal",
|
|
"begin": "\\[\\|",
|
|
"end": "\\|\\]",
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"className": "identifier",
|
|
"relevance": 0,
|
|
"begin": "~?[a-z$_][0-9a-zA-Z$_]*"
|
|
},
|
|
{
|
|
"className": "operator",
|
|
"relevance": 0,
|
|
"begin": "(\\|\\||\\&\\&|\\+\\+|\\*\\*|\\+\\.|\\*|\\\/|\\*\\.|\\\/\\.|\\.\\.\\.|\\|\\>|==|===)"
|
|
},
|
|
{
|
|
"className": "number",
|
|
"relevance": 0,
|
|
"variants": [
|
|
{
|
|
"begin": "\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)"
|
|
},
|
|
{
|
|
"begin": "\\(\\-\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)\\)"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "literal",
|
|
"begin": "\\[",
|
|
"end": "\\]",
|
|
"relevance": 0,
|
|
"contains": {
|
|
"$ref": "#contains.4.contains"
|
|
}
|
|
},
|
|
{
|
|
"className": "constructor",
|
|
"begin": "`?[A-Z$_][0-9a-zA-Z$_]*\\(",
|
|
"end": "\\)",
|
|
"illegal": "\\n",
|
|
"keywords": {
|
|
"$ref": "#keywords"
|
|
},
|
|
"contains": [
|
|
{
|
|
"$ref": "#contains.2"
|
|
},
|
|
{
|
|
"$ref": "#contains.4.contains.1"
|
|
},
|
|
{
|
|
"className": "params",
|
|
"begin": "\\b~?[a-z$_][0-9a-zA-Z$_]*"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "operator",
|
|
"begin": "\\s+(\\|\\||\\&\\&|\\+\\+|\\*\\*|\\+\\.|\\*|\\\/|\\*\\.|\\\/\\.|\\.\\.\\.|\\|\\>|==|===)\\s+",
|
|
"illegal": "\\-\\->",
|
|
"relevance": 0
|
|
},
|
|
{
|
|
"$ref": "#contains.4.contains.2"
|
|
},
|
|
{
|
|
"className": "comment",
|
|
"begin": "\/\/",
|
|
"end": "$",
|
|
"contains": [
|
|
{
|
|
"$ref": "#contains.0.contains.0"
|
|
},
|
|
{
|
|
"className": "doctag",
|
|
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
|
|
"relevance": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "pattern-match",
|
|
"begin": "\\|",
|
|
"returnBegin": true,
|
|
"keywords": {
|
|
"$ref": "#keywords"
|
|
},
|
|
"end": "=>",
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"$ref": "#contains.6"
|
|
},
|
|
{
|
|
"$ref": "#contains.4.contains.1"
|
|
},
|
|
{
|
|
"relevance": 0,
|
|
"className": "constructor",
|
|
"begin": "`?[A-Z$_][0-9a-zA-Z$_]*"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "function",
|
|
"relevance": 0,
|
|
"keywords": {
|
|
"$ref": "#keywords"
|
|
},
|
|
"variants": [
|
|
{
|
|
"begin": "\\s(\\(\\.?.*?\\)|~?[a-z$_][0-9a-zA-Z$_]*)\\s*=>",
|
|
"end": "\\s*=>",
|
|
"returnBegin": true,
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"className": "params",
|
|
"variants": [
|
|
{
|
|
"begin": "~?[a-z$_][0-9a-zA-Z$_]*"
|
|
},
|
|
{
|
|
"begin": "~?[a-z$_][0-9a-zA-Z$_]*(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?"
|
|
},
|
|
{
|
|
"begin": "\\(\\s*\\)"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s\\(\\.?[^;\\|]*\\)\\s*=>",
|
|
"end": "\\s=>",
|
|
"returnBegin": true,
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"className": "params",
|
|
"relevance": 0,
|
|
"variants": [
|
|
{
|
|
"begin": "~?[a-z$_][0-9a-zA-Z$_]*",
|
|
"end": "(,|\\n|\\))",
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"$ref": "#contains.4.contains.1"
|
|
},
|
|
{
|
|
"className": "typing",
|
|
"begin": ":",
|
|
"end": "(,|\\n)",
|
|
"returnBegin": true,
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"className": "module",
|
|
"begin": "\\b`?[A-Z$_][0-9a-zA-Z$_]*",
|
|
"returnBegin": true,
|
|
"end": ".",
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"className": "identifier",
|
|
"begin": "`?[A-Z$_][0-9a-zA-Z$_]*",
|
|
"relevance": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "module-access",
|
|
"keywords": {
|
|
"$ref": "#keywords"
|
|
},
|
|
"returnBegin": true,
|
|
"variants": [
|
|
{
|
|
"begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+~?[a-z$_][0-9a-zA-Z$_]*"
|
|
},
|
|
{
|
|
"begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+\\(",
|
|
"end": "\\)",
|
|
"returnBegin": true,
|
|
"contains": [
|
|
{
|
|
"$ref": "#contains.11"
|
|
},
|
|
{
|
|
"begin": "\\(",
|
|
"end": "\\)",
|
|
"skip": true
|
|
},
|
|
{
|
|
"$ref": "#contains.2"
|
|
},
|
|
{
|
|
"$ref": "#contains.4.contains.1"
|
|
},
|
|
{
|
|
"className": "module",
|
|
"begin": "\\b`?[A-Z$_][0-9a-zA-Z$_]*",
|
|
"returnBegin": true,
|
|
"end": ".",
|
|
"contains": [
|
|
{
|
|
"className": "identifier",
|
|
"begin": "`?[A-Z$_][0-9a-zA-Z$_]*",
|
|
"relevance": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#contains.11"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\b(`?[A-Z$_][0-9a-zA-Z$_]*\\.)+{",
|
|
"end": "}"
|
|
}
|
|
],
|
|
"contains": [
|
|
{
|
|
"$ref": "#contains.2"
|
|
},
|
|
{
|
|
"$ref": "#contains.4.contains.1"
|
|
},
|
|
{
|
|
"$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1.variants.1.contains.4"
|
|
},
|
|
{
|
|
"$ref": "#contains.11"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\(\\.\\s~?[a-z$_][0-9a-zA-Z$_]*\\)\\s*=>"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"className": "module-def",
|
|
"begin": "\\bmodule\\s+~?[a-z$_][0-9a-zA-Z$_]*\\s+`?[A-Z$_][0-9a-zA-Z$_]*\\s+=\\s+{",
|
|
"end": "}",
|
|
"returnBegin": true,
|
|
"keywords": {
|
|
"$ref": "#keywords"
|
|
},
|
|
"relevance": 0,
|
|
"contains": [
|
|
{
|
|
"className": "module",
|
|
"relevance": 0,
|
|
"begin": "`?[A-Z$_][0-9a-zA-Z$_]*"
|
|
},
|
|
{
|
|
"begin": "{",
|
|
"end": "}",
|
|
"skip": true
|
|
},
|
|
{
|
|
"$ref": "#contains.2"
|
|
},
|
|
{
|
|
"$ref": "#contains.4.contains.1"
|
|
},
|
|
{
|
|
"$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1.variants.1.contains.4"
|
|
},
|
|
{
|
|
"$ref": "#contains.11"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#contains.11.variants.1.contains.0.variants.0.contains.1.contains.1"
|
|
}
|
|
]
|
|
}
|