From 0c360f39a6b1e3273974afa3449c31e942e647c9 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sat, 8 Dec 2012 22:16:18 +0400 Subject: [PATCH] make xml strings non greedy to allow better mixed modes --- lib/ace/mode/xml_util.js | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) 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) {