update tests
This commit is contained in:
parent
30f7f8a3f2
commit
3d6b93b946
4 changed files with 47 additions and 47 deletions
|
|
@ -379,7 +379,7 @@
|
||||||
["constant.numeric","1."],
|
["constant.numeric","1."],
|
||||||
["text","00"],
|
["text","00"],
|
||||||
["identifier","E"],
|
["identifier","E"],
|
||||||
["text","^"],
|
["keyword.operator","^"],
|
||||||
["constant.numeric","1"],
|
["constant.numeric","1"],
|
||||||
["punctuation.operator",","],
|
["punctuation.operator",","],
|
||||||
["text"," "],
|
["text"," "],
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ var oop = require("../lib/oop");
|
||||||
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
|
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
|
||||||
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
||||||
|
|
||||||
var JavaScriptHighlightRules = function() {
|
var JavaScriptHighlightRules = function(options) {
|
||||||
// see: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects
|
// see: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects
|
||||||
var keywordMapper = this.createKeywordMapper({
|
var keywordMapper = this.createKeywordMapper({
|
||||||
"variable.language":
|
"variable.language":
|
||||||
|
|
@ -187,45 +187,12 @@ var JavaScriptHighlightRules = function() {
|
||||||
regex : identifierRe
|
regex : identifierRe
|
||||||
}, {
|
}, {
|
||||||
token : "keyword.operator",
|
token : "keyword.operator",
|
||||||
regex : /--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,
|
regex : /--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
|
||||||
next : "start"
|
next : "start"
|
||||||
}, {
|
}, {
|
||||||
token : "punctuation.operator",
|
token : "punctuation.operator",
|
||||||
regex : /\?|\:|\,|\;|\./,
|
regex : /[?:,;.]/,
|
||||||
next : "start"
|
next : "start"
|
||||||
}, {
|
|
||||||
regex: "[{}]", onMatch: function(val, state, stack) {
|
|
||||||
console.log(val, state, stack)
|
|
||||||
this.next = "";
|
|
||||||
if (val == "{" && stack.length) {
|
|
||||||
stack.unshift("start", state);
|
|
||||||
return "paren";
|
|
||||||
}
|
|
||||||
if (val == "}" && stack.length) {
|
|
||||||
stack.shift();
|
|
||||||
this.next = stack.shift();
|
|
||||||
if (this.next.indexOf("string") != -1)
|
|
||||||
return "paren.quasi.end";
|
|
||||||
}
|
|
||||||
return "paren";
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
token : "string.quasi.start",
|
|
||||||
regex : /`/,
|
|
||||||
push : [{
|
|
||||||
token : "constant.language.escape",
|
|
||||||
regex : escapedRe
|
|
||||||
}, {
|
|
||||||
token : "paren.quasi.start",
|
|
||||||
regex : /\${/,
|
|
||||||
push : "start"
|
|
||||||
}, {
|
|
||||||
token : "string.quasi.end",
|
|
||||||
regex : /`/,
|
|
||||||
next : "pop"
|
|
||||||
}, {
|
|
||||||
defaultToken: "string.quasi"
|
|
||||||
}]
|
|
||||||
}, {
|
}, {
|
||||||
token : "paren.lparen",
|
token : "paren.lparen",
|
||||||
regex : /[\[({]/,
|
regex : /[\[({]/,
|
||||||
|
|
@ -233,10 +200,6 @@ var JavaScriptHighlightRules = function() {
|
||||||
}, {
|
}, {
|
||||||
token : "paren.rparen",
|
token : "paren.rparen",
|
||||||
regex : /[\])}]/
|
regex : /[\])}]/
|
||||||
}, {
|
|
||||||
token : "keyword.operator",
|
|
||||||
regex : /\/=?/,
|
|
||||||
next : "start"
|
|
||||||
}, {
|
}, {
|
||||||
token: "comment",
|
token: "comment",
|
||||||
regex: /^#!.*$/
|
regex: /^#!.*$/
|
||||||
|
|
@ -387,7 +350,45 @@ var JavaScriptHighlightRules = function() {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
if (!options || !options.noES6) {
|
||||||
|
this.$rules.no_regex.unshift({
|
||||||
|
regex: "[{}]", onMatch: function(val, state, stack) {
|
||||||
|
this.next = val == "{" ? this.nextState : "";
|
||||||
|
if (val == "{" && stack.length) {
|
||||||
|
stack.unshift("start", state);
|
||||||
|
return "paren";
|
||||||
|
}
|
||||||
|
if (val == "}" && stack.length) {
|
||||||
|
stack.shift();
|
||||||
|
this.next = stack.shift();
|
||||||
|
if (this.next.indexOf("string") != -1)
|
||||||
|
return "paren.quasi.end";
|
||||||
|
}
|
||||||
|
return val == "{" ? "paren.lparen" : "paren.rparen";
|
||||||
|
},
|
||||||
|
nextState: "start"
|
||||||
|
}, {
|
||||||
|
token : "string.quasi.start",
|
||||||
|
regex : /`/,
|
||||||
|
push : [{
|
||||||
|
token : "constant.language.escape",
|
||||||
|
regex : escapedRe
|
||||||
|
}, {
|
||||||
|
token : "paren.quasi.start",
|
||||||
|
regex : /\${/,
|
||||||
|
push : "start"
|
||||||
|
}, {
|
||||||
|
token : "string.quasi.end",
|
||||||
|
regex : /`/,
|
||||||
|
next : "pop"
|
||||||
|
}, {
|
||||||
|
defaultToken: "string.quasi"
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.embedRules(DocCommentHighlightRules, "doc-",
|
this.embedRules(DocCommentHighlightRules, "doc-",
|
||||||
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
|
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScrip
|
||||||
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
||||||
|
|
||||||
var SJSHighlightRules = function() {
|
var SJSHighlightRules = function() {
|
||||||
var parent = new JavaScriptHighlightRules();
|
var parent = new JavaScriptHighlightRules({noES6: true});
|
||||||
var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
|
var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
|
||||||
"u[0-9a-fA-F]{4}|" + // unicode
|
"u[0-9a-fA-F]{4}|" + // unicode
|
||||||
"[0-2][0-7]{0,2}|" + // oct
|
"[0-2][0-7]{0,2}|" + // oct
|
||||||
|
|
@ -177,10 +177,10 @@ var SJSHighlightRules = function() {
|
||||||
// for use within interpreted contexts
|
// for use within interpreted contexts
|
||||||
// without interfering with context nesting
|
// without interfering with context nesting
|
||||||
var embeddableRules = [];
|
var embeddableRules = [];
|
||||||
for (var i=0; i<this.$rules.no_regex.length; i++) {
|
for (var i=0; i < this.$rules.no_regex.length; i++) {
|
||||||
var rule = this.$rules.no_regex[i];
|
var rule = this.$rules.no_regex[i];
|
||||||
var token = String(rule.token);
|
var token = String(rule.token);
|
||||||
if(token.indexOf('paren') == -1 && (!rule.next || rule.next.isContextAware)) {
|
if (token.indexOf('paren') == -1 && (!rule.next || rule.next.isContextAware)) {
|
||||||
embeddableRules.push(rule);
|
embeddableRules.push(rule);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ var TextHighlightRules = function() {
|
||||||
var state = rules[key];
|
var state = rules[key];
|
||||||
for (var i = 0; i < state.length; i++) {
|
for (var i = 0; i < state.length; i++) {
|
||||||
var rule = state[i];
|
var rule = state[i];
|
||||||
if (rule.next) {
|
if (rule.next || rule.onMatch) {
|
||||||
if (typeof rule.next != "string") {
|
if (typeof rule.next != "string") {
|
||||||
if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)
|
if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)
|
||||||
rule.nextState = prefix + rule.nextState;
|
rule.nextState = prefix + rule.nextState;
|
||||||
|
|
@ -68,7 +68,6 @@ var TextHighlightRules = function() {
|
||||||
if (rule.next.indexOf(prefix) !== 0)
|
if (rule.next.indexOf(prefix) !== 0)
|
||||||
rule.next = prefix + rule.next;
|
rule.next = prefix + rule.next;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$rules[prefix + key] = state;
|
this.$rules[prefix + key] = state;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue