TextMate-style syntax highlighting in PHP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

152 lines
4.2 KiB

{
"scopeName": "source.js.regexp",
"patterns": [
{
"include": "#regexp"
}
],
"repository": {
"regex-character-class": {
"patterns": [
{
"match": "\\\\[wWsSdDtrnvf]|\\.",
"name": "constant.character.character-class.regexp"
},
{
"match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",
"name": "constant.character.numeric.regexp"
},
{
"match": "\\\\c[A-Z]",
"name": "constant.character.control.regexp"
},
{
"match": "\\\\.",
"name": "constant.character.escape.backslash.regexp"
}
]
},
"regexp": {
"patterns": [
{
"match": "\\\\[bB]|\\^|\\$",
"name": "keyword.control.anchor.regexp"
},
{
"match": "\\\\[1-9]\\d*|\\\\k<[a-zA-Z_$][\\w$]*>",
"name": "keyword.other.back-reference.regexp"
},
{
"match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",
"name": "keyword.operator.quantifier.regexp"
},
{
"match": "\\|",
"name": "keyword.operator.or.regexp"
},
{
"begin": "(\\()(?:(\\?=)|(\\?!)|(\\?<=)|(\\?<!))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.group.regexp"
},
"2": {
"name": "meta.assertion.look-ahead.regexp"
},
"3": {
"name": "meta.assertion.negative-look-ahead.regexp"
},
"4": {
"name": "meta.assertion.look-behind.regexp"
},
"5": {
"name": "meta.assertion.negative-look-behind.regexp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.group.regexp"
}
},
"name": "meta.group.assertion.regexp",
"patterns": [
{
"include": "#regexp"
}
]
},
{
"begin": "\\(((\\?:)|(\\?<[a-zA-Z_$][\\w$]*>))?",
"beginCaptures": {
"0": {
"name": "punctuation.definition.group.regexp"
}
},
"end": "\\)",
"endCaptures": {
"0": {
"name": "punctuation.definition.group.regexp"
}
},
"name": "meta.group.regexp",
"patterns": [
{
"include": "#regexp"
}
]
},
{
"begin": "(\\[)(\\^)?",
"beginCaptures": {
"1": {
"name": "punctuation.definition.character-class.regexp"
},
"2": {
"name": "keyword.operator.negation.regexp"
}
},
"end": "(\\])",
"endCaptures": {
"1": {
"name": "punctuation.definition.character-class.regexp"
}
},
"name": "constant.other.character-class.set.regexp",
"patterns": [
{
"captures": {
"1": {
"name": "constant.character.numeric.regexp"
},
"2": {
"name": "constant.character.control.regexp"
},
"3": {
"name": "constant.character.escape.backslash.regexp"
},
"4": {
"name": "constant.character.numeric.regexp"
},
"5": {
"name": "constant.character.control.regexp"
},
"6": {
"name": "constant.character.escape.backslash.regexp"
}
},
"match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
"name": "constant.other.character-class.range.regexp"
},
{
"include": "#regex-character-class"
}
]
},
{
"include": "#regex-character-class"
}
]
}
}
}