better highlighting of js regexps
This commit is contained in:
parent
86750fbadb
commit
2a5e44eba2
2 changed files with 18 additions and 6 deletions
|
|
@ -243,6 +243,7 @@ var JavaScriptHighlightRules = function() {
|
|||
],
|
||||
"regex": [
|
||||
{
|
||||
// escapes
|
||||
token: "regexp.keyword.operator",
|
||||
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
||||
}, {
|
||||
|
|
@ -251,13 +252,21 @@ var JavaScriptHighlightRules = function() {
|
|||
regex: "/\\w*",
|
||||
next: "start",
|
||||
merge: true
|
||||
}, {
|
||||
// invalid operators
|
||||
token : "invalid",
|
||||
regex: /\{\d+,?(?:\d+)?}[+*]|[+*^$?][+*]|\?\?/ // |[^$][?]
|
||||
}, {
|
||||
// operators
|
||||
token : "constant.language.escape",
|
||||
regex: /\(\?[:=!]|\)|\{\d+,?(?:\d+)?}|[+*]\?|[(|)$^+*?]/
|
||||
}, {
|
||||
token: "string.regexp",
|
||||
regex: "[^\\\\/\\[]+",
|
||||
regex: /{|[^\[\\{()$^+*?\/]+/,
|
||||
merge: true
|
||||
}, {
|
||||
token: "string.regexp.charachterclass",
|
||||
regex: "\\[",
|
||||
token: "constant.language.escape",
|
||||
regex: /\[\^?/,
|
||||
next: "regex_character_class",
|
||||
merge: true
|
||||
}, {
|
||||
|
|
@ -271,13 +280,16 @@ var JavaScriptHighlightRules = function() {
|
|||
token: "regexp.keyword.operator",
|
||||
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
||||
}, {
|
||||
token: "string.regexp.charachterclass",
|
||||
token: "constant.language.escape",
|
||||
regex: "]",
|
||||
next: "regex",
|
||||
merge: true
|
||||
}, {
|
||||
token: "constant.language.escape",
|
||||
regex: "-",
|
||||
}, {
|
||||
token: "string.regexp.charachterclass",
|
||||
regex: "[^\\\\\\]]+",
|
||||
regex: /[^\]\-\\]+/,
|
||||
merge: true
|
||||
}, {
|
||||
token: "empty",
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ module.exports = {
|
|||
assert.equal("string.regexp", tokens[2].type);
|
||||
|
||||
var tokens = this.tokenizer.getLineTokens("a = 1 + /2 + 1/b", "start").tokens;
|
||||
assert.equal(9, tokens.length);
|
||||
assert.equal(11, tokens.length);
|
||||
assert.equal("string.regexp", tokens[8].type);
|
||||
|
||||
var tokens = this.tokenizer.getLineTokens("a=/a/ / /a/", "start").tokens;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue