diff --git a/lib/ace/mode/xquery.js b/lib/ace/mode/xquery.js index 60022100..eccadacb 100644 --- a/lib/ace/mode/xquery.js +++ b/lib/ace/mode/xquery.js @@ -135,12 +135,17 @@ oop.inherits(Mode, TextMode); }); worker.on("highlight", function(tokens) { - //if(that.$deltas.length > 0) return; + if(that.$deltas.length > 0) return; that.$tokenizer.tokens = tokens.data.tokens; - that.$tokenizer.lines = tokens.data.lines; + that.$tokenizer.lines = session.getDocument().getAllLines(); session.bgTokenizer.lines = []; session.bgTokenizer.states = []; - session.bgTokenizer.fireUpdateEvent(0, session.getLength() - 1); + + var rows = Object.keys(that.$tokenizer.tokens); + for(var i=0; i < rows.length; i++) { + var row = parseInt(rows[i]); + session.bgTokenizer.fireUpdateEvent(row, row); + } }); return worker; diff --git a/lib/ace/mode/xquery/visitors/SemanticHighlighter.js b/lib/ace/mode/xquery/visitors/SemanticHighlighter.js index 9aefe81b..fa7ecbb7 100644 --- a/lib/ace/mode/xquery/visitors/SemanticHighlighter.js +++ b/lib/ace/mode/xquery/visitors/SemanticHighlighter.js @@ -30,10 +30,9 @@ define(function(require, exports, module) { - var SemanticHighlighter = exports.SemanticHighlighter = function(ast, code) { + var SemanticHighlighter = exports.SemanticHighlighter = function(ast) { - this.lines = code.split("\n"); - this.tokens = new Array(ast.pos.el + 1); + this.tokens = {}; this.getTokens = function() { this.visit(ast);