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": [
|
"regex": [
|
||||||
{
|
{
|
||||||
|
// escapes
|
||||||
token: "regexp.keyword.operator",
|
token: "regexp.keyword.operator",
|
||||||
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
||||||
}, {
|
}, {
|
||||||
|
|
@ -251,13 +252,21 @@ var JavaScriptHighlightRules = function() {
|
||||||
regex: "/\\w*",
|
regex: "/\\w*",
|
||||||
next: "start",
|
next: "start",
|
||||||
merge: true
|
merge: true
|
||||||
|
}, {
|
||||||
|
// invalid operators
|
||||||
|
token : "invalid",
|
||||||
|
regex: /\{\d+,?(?:\d+)?}[+*]|[+*^$?][+*]|\?\?/ // |[^$][?]
|
||||||
|
}, {
|
||||||
|
// operators
|
||||||
|
token : "constant.language.escape",
|
||||||
|
regex: /\(\?[:=!]|\)|\{\d+,?(?:\d+)?}|[+*]\?|[(|)$^+*?]/
|
||||||
}, {
|
}, {
|
||||||
token: "string.regexp",
|
token: "string.regexp",
|
||||||
regex: "[^\\\\/\\[]+",
|
regex: /{|[^\[\\{()$^+*?\/]+/,
|
||||||
merge: true
|
merge: true
|
||||||
}, {
|
}, {
|
||||||
token: "string.regexp.charachterclass",
|
token: "constant.language.escape",
|
||||||
regex: "\\[",
|
regex: /\[\^?/,
|
||||||
next: "regex_character_class",
|
next: "regex_character_class",
|
||||||
merge: true
|
merge: true
|
||||||
}, {
|
}, {
|
||||||
|
|
@ -271,13 +280,16 @@ var JavaScriptHighlightRules = function() {
|
||||||
token: "regexp.keyword.operator",
|
token: "regexp.keyword.operator",
|
||||||
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
||||||
}, {
|
}, {
|
||||||
token: "string.regexp.charachterclass",
|
token: "constant.language.escape",
|
||||||
regex: "]",
|
regex: "]",
|
||||||
next: "regex",
|
next: "regex",
|
||||||
merge: true
|
merge: true
|
||||||
|
}, {
|
||||||
|
token: "constant.language.escape",
|
||||||
|
regex: "-",
|
||||||
}, {
|
}, {
|
||||||
token: "string.regexp.charachterclass",
|
token: "string.regexp.charachterclass",
|
||||||
regex: "[^\\\\\\]]+",
|
regex: /[^\]\-\\]+/,
|
||||||
merge: true
|
merge: true
|
||||||
}, {
|
}, {
|
||||||
token: "empty",
|
token: "empty",
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ module.exports = {
|
||||||
assert.equal("string.regexp", tokens[2].type);
|
assert.equal("string.regexp", tokens[2].type);
|
||||||
|
|
||||||
var tokens = this.tokenizer.getLineTokens("a = 1 + /2 + 1/b", "start").tokens;
|
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);
|
assert.equal("string.regexp", tokens[8].type);
|
||||||
|
|
||||||
var tokens = this.tokenizer.getLineTokens("a=/a/ / /a/", "start").tokens;
|
var tokens = this.tokenizer.getLineTokens("a=/a/ / /a/", "start").tokens;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue