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.

162 lines
5.3 KiB
JSON

{
"keywords": "let in if then else case of where module import exposing type alias as infix infixl infixr port effect command subscription",
"contains": [
{
"beginKeywords": "port effect module",
"end": "exposing",
"keywords": "port effect module where command subscription exposing",
"contains": [
{
"begin": "\\(",
"end": "\\)",
"illegal": "\"",
"contains": [
{
"className": "type",
"begin": "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"
},
{
"variants": [
{
"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
}
]
},
{
"className": "comment",
"begin": "{-",
"end": "-}",
"contains": [
"self",
{
"$ref": "#contains.0.contains.0.contains.1.variants.0.contains.0"
},
{
"className": "doctag",
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
"relevance": 0
}
]
}
]
}
]
},
{
"$ref": "#contains.0.contains.0.contains.1"
}
],
"illegal": "\\W\\.|;"
},
{
"begin": "import",
"end": "$",
"keywords": "import as exposing",
"contains": [
{
"$ref": "#contains.0.contains.0"
},
{
"$ref": "#contains.0.contains.0.contains.1"
}
],
"illegal": "\\W\\.|;"
},
{
"begin": "type",
"end": "$",
"keywords": "type alias",
"contains": [
{
"className": "type",
"begin": "\\b[A-Z][\\w']*",
"relevance": 0
},
{
"$ref": "#contains.0.contains.0"
},
{
"begin": "{",
"end": "}",
"contains": {
"$ref": "#contains.0.contains.0.contains"
}
},
{
"$ref": "#contains.0.contains.0.contains.1"
}
]
},
{
"beginKeywords": "infix infixl infixr",
"end": "$",
"contains": [
{
"className": "number",
"begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
"relevance": 0
},
{
"$ref": "#contains.0.contains.0.contains.1"
}
]
},
{
"begin": "port",
"end": "$",
"keywords": "port",
"contains": [
{
"$ref": "#contains.0.contains.0.contains.1"
}
]
},
{
"className": "string",
"begin": "'\\\\?.",
"end": "'",
"illegal": "."
},
{
"className": "string",
"begin": "\"",
"end": "\"",
"illegal": "\\n",
"contains": [
{
"begin": "\\\\[\\s\\S]",
"relevance": 0
}
]
},
{
"$ref": "#contains.3.contains.0"
},
{
"$ref": "#contains.2.contains.0"
},
{
"className": "title",
"begin": "^[_a-z][\\w']*",
"relevance": 0
},
{
"$ref": "#contains.0.contains.0.contains.1"
},
{
"begin": "->|<-"
}
],
"illegal": ";"
}