treehouse/static/syntax/javascript.json

77 lines
3.1 KiB
JSON

{
"patterns": [
{ "regex": "\\/\\/.*", "is": "comment" },
{
"regex": "\\/\\*.*?\\*\\/",
"flags": ["dotMatchesNewline"],
"is": "comment"
},
{ "regex": "[A-Z_][a-zA-Z0-9_]*", "is": "keyword2" },
{
"regex": "[a-zA-Z_][a-zA-Z0-9_]*(\\()",
"is": { "default": "function", "captures": ["default"] }
},
{ "regex": "[a-zA-Z_][a-zA-Z0-9_]*", "is": "identifier" },
{ "regex": "0[bB][01_]+n?", "is": "literal" },
{ "regex": "0[oO][0-7_]+n?", "is": "literal" },
{ "regex": "0[xX][0-9a-fA-F_]+n?", "is": "literal" },
{ "regex": "[0-9_]+n", "is": "literal" },
{ "regex": "[0-9_]+(\\.[0-9_]*([eE][-+]?[0-9_]+)?)?", "is": "literal" },
{ "regex": "'(\\'|[^'])*'", "is": "string" },
{ "regex": "\"(\\\"|[^\"])*\"", "is": "string" },
{ "regex": "`(\\`|[^`])*`", "is": "string" },
{ "regex": "[+=/*^%<>!~|&\\.?:-]+", "is": "operator" },
{ "regex": "[,;]", "is": "punct" }
],
"keywords": {
"as": { "into": "keyword1", "onlyReplaces": "identifier" },
"async": { "into": "keyword1", "onlyReplaces": "identifier" },
"await": { "into": "keyword1" },
"break": { "into": "keyword1" },
"case": { "into": "keyword1" },
"catch": { "into": "keyword1" },
"class": { "into": "keyword1" },
"const": { "into": "keyword1" },
"continue": { "into": "keyword1" },
"debugger": { "into": "keyword1" },
"default": { "into": "keyword1" },
"delete": { "into": "keyword1" },
"do": { "into": "keyword1" },
"else": { "into": "keyword1" },
"export": { "into": "keyword1" },
"extends": { "into": "keyword1" },
"finally": { "into": "keyword1" },
"for": { "into": "keyword1" },
"from": { "into": "keyword1", "onlyReplaces": "identifier" },
"function": { "into": "keyword1" },
"get": { "into": "keyword1", "onlyReplaces": "identifier" },
"if": { "into": "keyword1" },
"import": { "into": "keyword1" },
"in": { "into": "keyword1" },
"instanceof": { "into": "keyword1" },
"let": { "into": "keyword1" },
"new": { "into": "keyword1" },
"of": { "into": "keyword1", "onlyReplaces": "identifier" },
"return": { "into": "keyword1" },
"set": { "into": "keyword1", "onlyReplaces": "identifier" },
"static": { "into": "keyword1" },
"switch": { "into": "keyword1" },
"throw": { "into": "keyword1" },
"try": { "into": "keyword1" },
"typeof": { "into": "keyword1" },
"var": { "into": "keyword1" },
"void": { "into": "keyword1" },
"while": { "into": "keyword1" },
"with": { "into": "keyword1" },
"yield": { "into": "keyword1" },
"super": { "into": "keyword2" },
"this": { "into": "keyword2" },
"false": { "into": "literal" },
"true": { "into": "literal" },
"undefined": { "into": "literal" },
"null": { "into": "literal" }
}
}