diff --git a/lib/ace/mode/xquery_worker.js b/lib/ace/mode/xquery_worker.js index c823bfee..ab0fec4a 100644 --- a/lib/ace/mode/xquery_worker.js +++ b/lib/ace/mode/xquery_worker.js @@ -51,12 +51,14 @@ oop.inherits(XQueryWorker, Mirror); var value = this.doc.getValue(); var h = new JSONParseTreeHandler(); var parser = new XQueryParser(value, h); - var recover = false; try { parser.parse_XQuery(); this.sender.emit("ok"); - } catch(e) { - var recover = true; + var ast = h.getParseTree(); + var highlighter = new SyntaxHighlighter(value, ast); + var tokens = highlighter.getTokens(); + this.sender.emit("highlight", tokens); + } catch(e) { var prefix = value.substring(0, e.getBegin()); var line = prefix.split("\n").length; var column = e.getBegin() - prefix.lastIndexOf("\n"); @@ -68,11 +70,7 @@ oop.inherits(XQueryWorker, Mirror); type: "error" }); } - var ast = h.getParseTree(); - var highlighter = new SyntaxHighlighter(value, ast); - var tokens = highlighter.getTokens(recover); - this.sender.emit("highlight", tokens); - }; + }; }).call(XQueryWorker.prototype);