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.

262 lines
8.7 KiB
JSON

{
"aliases": [
"php",
"php3",
"php4",
"php5",
"php6",
"php7"
],
"case_insensitive": true,
"keywords": "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",
"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": [
{
"className": "meta",
"begin": "<\\?(php)?|\\?>"
},
{
"$ref": "#contains.0.contains.0"
},
{
"className": "doctag",
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
"relevance": 0
}
]
},
{
"className": "comment",
"begin": "\/\\*",
"end": "\\*\/",
"contains": [
{
"className": "doctag",
"begin": "@[A-Za-z]+"
},
{
"$ref": "#contains.0.contains.0"
},
{
"className": "doctag",
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
"relevance": 0
}
]
},
{
"className": "comment",
"begin": "__halt_compiler.+?;",
"end": false,
"contains": [
{
"$ref": "#contains.0.contains.0"
},
{
"className": "doctag",
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
"relevance": 0
}
],
"endsWithParent": true,
"keywords": "__halt_compiler",
"lexemes": "[a-zA-Z_]\\w*"
},
{
"className": "string",
"begin": "<<<['\"]?\\w+['\"]?$",
"end": "^\\w+;?$",
"contains": [
{
"begin": "\\\\[\\s\\S]",
"relevance": 0
},
{
"className": "subst",
"variants": [
{
"begin": "\\$\\w+"
},
{
"begin": "\\{\\$",
"end": "\\}"
}
]
}
]
},
{
"$ref": "#contains.1.contains.0"
},
{
"className": "keyword",
"begin": "\\$this\\b"
},
{
"begin": "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"
},
{
"begin": "(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*"
},
{
"className": "function",
"beginKeywords": "function",
"end": "[;{]",
"excludeEnd": true,
"illegal": "\\$|\\[|%",
"contains": [
{
"className": "title",
"begin": "[a-zA-Z_]\\w*",
"relevance": 0
},
{
"className": "params",
"begin": "\\(",
"end": "\\)",
"contains": [
"self",
{
"$ref": "#contains.7"
},
{
"className": "comment",
"begin": "\/\\*",
"end": "\\*\/",
"contains": [
{
"$ref": "#contains.0.contains.0"
},
{
"className": "doctag",
"begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
"relevance": 0
}
]
},
{
"className": "string",
"contains": [
{
"$ref": "#contains.4.contains.0"
},
{
"$ref": "#contains.1.contains.0"
}
],
"variants": [
{
"begin": "b\"",
"end": "\""
},
{
"begin": "b'",
"end": "'"
},
{
"className": "string",
"begin": "'",
"end": "'",
"illegal": null,
"contains": [
{
"$ref": "#contains.4.contains.0"
}
]
},
{
"className": "string",
"begin": "\"",
"end": "\"",
"illegal": null,
"contains": [
{
"$ref": "#contains.4.contains.0"
}
]
}
]
},
{
"variants": [
{
"className": "number",
"begin": "\\b(0b[01]+)",
"relevance": 0
},
{
"className": "number",
"begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
"relevance": 0
}
]
}
]
}
]
},
{
"className": "class",
"beginKeywords": "class interface",
"end": "{",
"excludeEnd": true,
"illegal": "[:\\(\\$\"]",
"contains": [
{
"beginKeywords": "extends implements"
},
{
"$ref": "#contains.9.contains.0"
}
]
},
{
"beginKeywords": "namespace",
"end": ";",
"illegal": "[\\.']",
"contains": [
{
"$ref": "#contains.9.contains.0"
}
]
},
{
"beginKeywords": "use",
"end": ";",
"contains": [
{
"$ref": "#contains.9.contains.0"
}
]
},
{
"begin": "=>"
},
{
"$ref": "#contains.9.contains.1.contains.3"
},
{
"$ref": "#contains.9.contains.1.contains.4"
}
]
}