From 6cef31c0302e6918f07e3f700d33fe573c32403c Mon Sep 17 00:00:00 2001 From: William Candillon Date: Tue, 22 May 2012 14:01:47 +0200 Subject: [PATCH] Fix bug with XQuery semantic highlighter. --- build/src/mode-xquery.js | 25 ++++++++++++------------- lib/ace/mode/xquery.js | 25 ++++++++++++------------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/build/src/mode-xquery.js b/build/src/mode-xquery.js index 631897ef..c2017be2 100644 --- a/build/src/mode-xquery.js +++ b/build/src/mode-xquery.js @@ -119,12 +119,18 @@ oop.inherits(Mode, TextMode); }; this.mergeLines = function(newLines, oldLines) { - var lines = new Array(newLines.length); - for(var i in lines) - { - lines[i] = newLines[i].tokens[0].type === "_error" ? oldLines[i] : newLines[i]; + console.log("New Lines: " + newLines.length); + console.log("Old Lines: " + oldLines.length); + if(newLines.length === oldLines.length) { + var lines = new Array(newLines.length); + for(var i in lines) + { + lines[i] = newLines[i].tokens[0].type === "_error" ? oldLines[i] : newLines[i]; + } + return lines; + } else { + return newLines; } - return lines; }; this.createWorker = function(session) { @@ -189,14 +195,7 @@ oop.inherits(Mode, TextMode); } } } - //this.$highlighter = new XQueryBackgroundHighlighter(session); - //this.$highlighter.lines = lines; - //for(var i=0; i < that.$deltas.length; i++) - //{ - // var delta = that.$deltas[i]; - // this.$highlighter.processDelta(delta); - //} - session.bgTokenizer.lines = this.mergeLines(lines, session.bgTokenizer);// this.$highlighter.lines; + session.bgTokenizer.lines = that.mergeLines(lines, session.bgTokenizer.lines); session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); }); diff --git a/lib/ace/mode/xquery.js b/lib/ace/mode/xquery.js index dee92bf0..d43919d7 100644 --- a/lib/ace/mode/xquery.js +++ b/lib/ace/mode/xquery.js @@ -119,12 +119,18 @@ oop.inherits(Mode, TextMode); }; this.mergeLines = function(newLines, oldLines) { - var lines = new Array(newLines.length); - for(var i in lines) - { - lines[i] = newLines[i].tokens[0].type === "_error" ? oldLines[i] : newLines[i]; + console.log("New Lines: " + newLines.length); + console.log("Old Lines: " + oldLines.length); + if(newLines.length === oldLines.length) { + var lines = new Array(newLines.length); + for(var i in lines) + { + lines[i] = newLines[i].tokens[0].type === "_error" ? oldLines[i] : newLines[i]; + } + return lines; + } else { + return newLines; } - return lines; }; this.createWorker = function(session) { @@ -189,14 +195,7 @@ oop.inherits(Mode, TextMode); } } } - //this.$highlighter = new XQueryBackgroundHighlighter(session); - //this.$highlighter.lines = lines; - //for(var i=0; i < that.$deltas.length; i++) - //{ - // var delta = that.$deltas[i]; - // this.$highlighter.processDelta(delta); - //} - session.bgTokenizer.lines = this.mergeLines(lines, session.bgTokenizer);// this.$highlighter.lines; + session.bgTokenizer.lines = that.mergeLines(lines, session.bgTokenizer.lines); session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); });