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.

315 lines
10 KiB
JSON

{
"case_insensitive": true,
"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
}
]
},
{
"className": "comment",
"begin": "\/\\*",
"end": "\\*\/",
"contains": [
{
"$ref": "#contains.0.contains.0"
},
{
"className": "doctag",
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
"relevance": 0
}
]
},
{
"className": "keyword",
"begin": "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
"starts": {
"end": "[;{}]",
"returnEnd": true,
"contains": [
{
"$ref": "#contains.0"
},
{
"$ref": "#contains.1"
},
{
"className": "string",
"begin": "~?'.*?'"
},
{
"className": "string",
"begin": "~?\".*?\""
},
{
"className": "number",
"begin": "\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
"relevance": 0
},
{
"begin": "(url|data-uri)\\(",
"starts": {
"className": "string",
"end": "[\\)\\n]",
"excludeEnd": true
}
},
{
"className": "number",
"begin": "#[0-9A-Fa-f]+\\b"
},
{
"begin": "\\(",
"end": "\\)",
"contains": {
"$ref": "#contains.2.starts.contains"
},
"relevance": 0
},
{
"className": "variable",
"begin": "@@?[\\w\\-]+",
"relevance": 10
},
{
"className": "variable",
"begin": "@{[\\w\\-]+}"
},
{
"className": "built_in",
"begin": "~?`[^`]*?`"
},
{
"className": "attribute",
"begin": "[\\w\\-]+\\s*:",
"end": ":",
"returnBegin": true,
"excludeEnd": true
},
{
"className": "meta",
"begin": "!important"
}
],
"relevance": 0
}
},
{
"className": "variable",
"variants": [
{
"begin": "@[\\w\\-]+\\s*:",
"relevance": 15
},
{
"begin": "@[\\w\\-]+"
}
],
"starts": {
"end": "[;}]",
"returnEnd": true,
"contains": [
{
"$ref": "#contains.0"
},
{
"$ref": "#contains.1"
},
{
"$ref": "#contains.2.starts.contains.2"
},
{
"$ref": "#contains.2.starts.contains.3"
},
{
"$ref": "#contains.2.starts.contains.4"
},
{
"$ref": "#contains.2.starts.contains.5"
},
{
"$ref": "#contains.2.starts.contains.6"
},
{
"$ref": "#contains.2.starts.contains.7"
},
{
"$ref": "#contains.2.starts.contains.8"
},
{
"$ref": "#contains.2.starts.contains.9"
},
{
"$ref": "#contains.2.starts.contains.10"
},
{
"$ref": "#contains.2.starts.contains.11"
},
{
"$ref": "#contains.2.starts.contains.12"
},
{
"begin": "{",
"end": "}",
"contains": {
"$ref": "#contains"
}
}
]
}
},
{
"begin": "([\\w\\-]+|@{[\\w\\-]+})\\s*:",
"returnBegin": true,
"end": "[;}]",
"relevance": 0,
"contains": [
{
"className": "attribute",
"begin": "([\\w\\-]+|@{[\\w\\-]+})",
"end": ":",
"excludeEnd": true,
"starts": {
"endsWithParent": true,
"illegal": "[<=$]",
"relevance": 0,
"contains": {
"$ref": "#contains.2.starts.contains"
}
}
}
]
},
{
"variants": [
{
"begin": "[\\.#:&\\[>]",
"end": "[;{}]"
},
{
"begin": "([\\w\\-]+|@{[\\w\\-]+})",
"end": "{"
}
],
"returnBegin": true,
"returnEnd": true,
"illegal": "[<='$\"]",
"relevance": 0,
"contains": [
{
"$ref": "#contains.0"
},
{
"$ref": "#contains.1"
},
{
"beginKeywords": "when",
"endsWithParent": true,
"contains": [
{
"beginKeywords": "and not"
},
{
"$ref": "#contains.0"
},
{
"$ref": "#contains.1"
},
{
"$ref": "#contains.2.starts.contains.2"
},
{
"$ref": "#contains.2.starts.contains.3"
},
{
"$ref": "#contains.2.starts.contains.4"
},
{
"$ref": "#contains.2.starts.contains.5"
},
{
"$ref": "#contains.2.starts.contains.6"
},
{
"$ref": "#contains.2.starts.contains.7"
},
{
"$ref": "#contains.2.starts.contains.8"
},
{
"$ref": "#contains.2.starts.contains.9"
},
{
"$ref": "#contains.2.starts.contains.10"
},
{
"$ref": "#contains.2.starts.contains.11"
},
{
"$ref": "#contains.2.starts.contains.12"
}
]
},
{
"className": "keyword",
"begin": "all\\b"
},
{
"className": "variable",
"begin": "@{[\\w\\-]+}"
},
{
"className": "selector-tag",
"begin": "([\\w\\-]+|@{[\\w\\-]+})%?",
"relevance": 0
},
{
"className": "selector-id",
"begin": "#([\\w\\-]+|@{[\\w\\-]+})"
},
{
"className": "selector-class",
"begin": "\\.([\\w\\-]+|@{[\\w\\-]+})",
"relevance": 0
},
{
"className": "selector-tag",
"begin": "&",
"relevance": 0
},
{
"className": "selector-attr",
"begin": "\\[",
"end": "\\]"
},
{
"className": "selector-pseudo",
"begin": ":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+"
},
{
"begin": "\\(",
"end": "\\)",
"contains": {
"$ref": "#contains.3.starts.contains"
}
},
{
"begin": "!important"
}
]
}
]
}