fix html tokenizer regressions
This commit is contained in:
parent
6abddb1746
commit
b323001d29
2 changed files with 10 additions and 15 deletions
|
|
@ -47,8 +47,7 @@ var HtmlHighlightRules = function() {
|
|||
// regexp must not have capturing parentheses
|
||||
// regexps are ordered -> the first match is used
|
||||
function string(state) {
|
||||
return [
|
||||
{
|
||||
return [{
|
||||
token : "string",
|
||||
regex : '".*?"'
|
||||
}, {
|
||||
|
|
@ -94,6 +93,9 @@ var HtmlHighlightRules = function() {
|
|||
next : name + "-attribute-list"
|
||||
}];
|
||||
|
||||
states[name + "-qstring"] = multiLineString("'", name);
|
||||
states[name + "-qqstring"] = multiLineString("\"", name);
|
||||
|
||||
states[name + "-attribute-list"] = [{
|
||||
token : "text",
|
||||
regex : ">",
|
||||
|
|
@ -107,7 +109,7 @@ var HtmlHighlightRules = function() {
|
|||
}, {
|
||||
token : "text",
|
||||
regex : "\\s+"
|
||||
}].concat(string("attribute-list"));
|
||||
}].concat(string(name));
|
||||
};
|
||||
|
||||
this.$rules = {
|
||||
|
|
@ -143,14 +145,7 @@ var HtmlHighlightRules = function() {
|
|||
token : "text",
|
||||
regex : "[^<]+"
|
||||
} ],
|
||||
|
||||
"style-qstring": multiLineString("'", "style"),
|
||||
"style-qqstring": multiLineString('"', "style"),
|
||||
"script-qstring": multiLineString("'", "script"),
|
||||
"script-qqstring": multiLineString('"', "script"),
|
||||
"tag-qstring": multiLineString("'", "tag"),
|
||||
"tag-qqstring": multiLineString('"', "tag"),
|
||||
|
||||
|
||||
cdata : [ {
|
||||
token : "text",
|
||||
regex : "\\]\\]>",
|
||||
|
|
|
|||
|
|
@ -56,15 +56,15 @@ module.exports = {
|
|||
|
||||
//assert.equal(10, tokens.length);
|
||||
assert.equal("text", tokens[0].type);
|
||||
assert.equal("keyword", tokens[1].type);
|
||||
assert.equal("meta.tag", tokens[1].type);
|
||||
assert.equal("text", tokens[2].type);
|
||||
assert.equal("keyword", tokens[3].type);
|
||||
assert.equal("entity.other.attribute-name", tokens[3].type);
|
||||
assert.equal("text", tokens[4].type);
|
||||
assert.equal("string", tokens[5].type);
|
||||
assert.equal("text", tokens[6].type);
|
||||
assert.equal("keyword", tokens[7].type);
|
||||
assert.equal("text", tokens[8].type);
|
||||
assert.equal("keyword", tokens[9].type);
|
||||
assert.equal("meta.tag", tokens[9].type);
|
||||
assert.equal("text", tokens[10].type);
|
||||
},
|
||||
|
||||
|
|
@ -77,7 +77,7 @@ module.exports = {
|
|||
},
|
||||
|
||||
"test: tokenize multiline attribute value with single quotes": function() {
|
||||
var line1 = this.tokenizer.getLineTokens('<a href=\'abc', "start");
|
||||
var line1 = this.tokenizer.getLineTokens("<a href='abc", "start");
|
||||
var t1 = line1.tokens;
|
||||
var t2 = this.tokenizer.getLineTokens('def\'>', line1.state).tokens;
|
||||
assert.equal(t1[t1.length-1].type, "string");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue