diff --git a/lib/ace/mode/xml_util.js b/lib/ace/mode/xml_util.js index cc3dffa0..a2cdea1b 100644 --- a/lib/ace/mode/xml_util.js +++ b/lib/ace/mode/xml_util.js @@ -34,34 +34,24 @@ define(function(require, exports, module) { function string(state) { return [{ token : "string", - regex : '".*?"' - }, { - token : "string", // multi line string start - merge : true, - regex : '["].*', + regex : '"', next : state + "_qqstring" }, { token : "string", - regex : "'.*?'" - }, { - token : "string", // multi line string start - merge : true, - regex : "['].*", + regex : "'", next : state + "_qstring" }]; } function multiLineString(quote, state) { - return [{ - token : "string", - merge : true, - regex : ".*?" + quote, - next : state - }, { - token : "string", - merge : true, - regex : '.+' - }]; + return [ + {token : "string", regex : quote, next : state}, + { + token : "constant.language.escape", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, + {token : "string", merge : true, regex : '\\w+|.|\\s+'} + ]; } exports.tag = function(states, name, nextState, tagMap) {