fix #1413 Invalid number value breaks CSS mode
This commit is contained in:
parent
d7b62038c0
commit
495318ef6b
3 changed files with 10 additions and 3 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
.text-layer {
|
.text-layer {
|
||||||
font-family: Monaco, "Courier New", monospace;
|
font-family: Monaco, "Courier New", monospace;
|
||||||
font-size: 12px;
|
font-size: 12pX;
|
||||||
cursor: text;
|
cursor: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
["support.type","font-size"],
|
["support.type","font-size"],
|
||||||
["text",": "],
|
["text",": "],
|
||||||
["constant.numeric","12"],
|
["constant.numeric","12"],
|
||||||
["keyword","px"],
|
["keyword","pX"],
|
||||||
["text",";"]
|
["text",";"]
|
||||||
],[
|
],[
|
||||||
"ruleset",
|
"ruleset",
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ var Tokenizer = function(rules) {
|
||||||
var mapping = this.matchMappings[key] = {defaultToken: "text"};
|
var mapping = this.matchMappings[key] = {defaultToken: "text"};
|
||||||
var flag = "g";
|
var flag = "g";
|
||||||
|
|
||||||
|
var spliterRurles = [];
|
||||||
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.defaultToken)
|
if (rule.defaultToken)
|
||||||
|
|
@ -104,7 +105,7 @@ var Tokenizer = function(rules) {
|
||||||
adjustedregex = this.removeCapturingGroups(rule.regex);
|
adjustedregex = this.removeCapturingGroups(rule.regex);
|
||||||
}
|
}
|
||||||
if (!rule.splitRegex && typeof rule.token != "string")
|
if (!rule.splitRegex && typeof rule.token != "string")
|
||||||
rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);
|
spliterRurles.push(rule); // flag will be known only at the very end
|
||||||
}
|
}
|
||||||
|
|
||||||
mapping[matchTotal] = i;
|
mapping[matchTotal] = i;
|
||||||
|
|
@ -118,6 +119,10 @@ var Tokenizer = function(rules) {
|
||||||
rule.__proto__ = null;
|
rule.__proto__ = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
spliterRurles.forEach(function(rule) {
|
||||||
|
rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);
|
||||||
|
}, this);
|
||||||
|
|
||||||
this.regExps[key] = new RegExp("(" + ruleRegExps.join(")|(") + ")|($)", flag);
|
this.regExps[key] = new RegExp("(" + ruleRegExps.join(")|(") + ")|($)", flag);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -146,6 +151,8 @@ var Tokenizer = function(rules) {
|
||||||
if (!str)
|
if (!str)
|
||||||
return [];
|
return [];
|
||||||
var values = this.splitRegex.exec(str);
|
var values = this.splitRegex.exec(str);
|
||||||
|
if (!values)
|
||||||
|
return "text";
|
||||||
var tokens = [];
|
var tokens = [];
|
||||||
var types = this.tokenArray;
|
var types = this.tokenArray;
|
||||||
for (var i = 0, l = types.length; i < l; i++) {
|
for (var i = 0, l = types.length; i < l; i++) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue