Fix bug on the semantic highlighter.

This commit is contained in:
William Candillon 2012-05-22 16:44:32 +02:00
commit ee0fdbb74f
70 changed files with 48456 additions and 121 deletions

View file

@ -118,21 +118,6 @@ oop.inherits(Mode, TextMode);
}
};
this.mergeLines = function(newLines, oldLines) {
console.log("New Lines: " + newLines.length);
console.log("Old Lines: " + oldLines.length);
var lines = new Array(newLines.length);
for(var i in lines)
{
if(newLines.length === oldLines.length) {
lines[i] = newLines[i].tokens[0].type === "_error" ? oldLines[i] : newLines[i];
} else {
lines[i] = newLines[i].tokens[0].type === "_error" ? undefined : newLines[i];
}
}
return lines;
};
this.createWorker = function(session) {
this.$deltas = [];
var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker");
@ -195,7 +180,7 @@ oop.inherits(Mode, TextMode);
}
}
}
session.bgTokenizer.lines = that.mergeLines(lines, session.bgTokenizer.lines);
session.bgTokenizer.lines = lines;
session.bgTokenizer.fireUpdateEvent(firstRow, lastRow);
});

View file

@ -1,5 +1,5 @@
define(function(require, exports, module) {
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/StringLexer.g 2012-05-22 13:12:20
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/StringLexer.g 2012-05-22 16:42:44
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1

View file

@ -1,5 +1,5 @@
define(function(require, exports, module) {
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XMLLexer.g 2012-05-22 13:12:21
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XMLLexer.g 2012-05-22 16:42:46
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1

View file

@ -1,5 +1,5 @@
define(function(require, exports, module) {
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryLexer.g 2012-05-22 13:12:18
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryLexer.g 2012-05-22 16:42:43
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1

View file

@ -1,5 +1,5 @@
define(function(require, exports, module) {
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryParser.g 2012-05-22 13:12:27
// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryParser.g 2012-05-22 16:42:51
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
@ -1202,7 +1202,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: enc, ver
// elements: ver, enc
// token labels:
// rule labels: retval, ver, enc
// token list labels:
@ -1414,7 +1414,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: p_ModuleDecl, pm_Prolog
// elements: pm_Prolog, p_ModuleDecl
// token labels:
// rule labels: retval
// token list labels:
@ -1815,7 +1815,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: nd, i, s, od, fto, dnd
// elements: s, nd, dnd, fto, od, i
// token labels:
// rule labels: retval
// token list labels:
@ -3923,7 +3923,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: ah, sp, us
// elements: ah, us, sp
// token labels:
// rule labels: retval, sp, us
// token list labels:
@ -4329,7 +4329,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: us, nn, ah
// elements: ah, nn, us
// token labels:
// rule labels: retval, nn, us
// token list labels:
@ -4478,7 +4478,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: us, nn
// elements: nn, us
// token labels:
// rule labels: retval, nn, us
// token list labels:
@ -5234,7 +5234,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: vv, vdv, qn, td
// elements: td, vv, vdv, qn
// token labels:
// rule labels: qn, vv, retval, vdv, td
// token list labels:
@ -5848,15 +5848,15 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: st, pl, qn, soe
// elements: pl, soe, qn, st
// token labels:
// rule labels: soe, qn, retval, pl, st
// rule labels: qn, soe, retval, pl, st
// token list labels:
// rule list labels:
if ( this.state.backtracking===0 ) {
retval.tree = root_0;
var stream_soe=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token soe",soe!=null?soe.tree:null);
var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null);
var stream_soe=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token soe",soe!=null?soe.tree:null);
var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null);
var stream_pl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token pl",pl!=null?pl.tree:null);
var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null);
@ -6125,7 +6125,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: qn, td
// elements: td, qn
// token labels:
// rule labels: qn, retval, td
// token list labels:
@ -17899,7 +17899,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: p_DirAttributeList, pm_DirElemContent
// elements: pm_DirElemContent, p_DirAttributeList
// token labels:
// rule labels: retval
// token list labels:
@ -20809,7 +20809,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: l, k, r
// elements: k, r, l
// token labels: r, l, k
// rule labels: retval
// token list labels:
@ -21108,7 +21108,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: LPAREN, RPAREN, BINARY
// elements: BINARY, LPAREN, RPAREN
// token labels:
// rule labels: retval
// token list labels:
@ -21156,7 +21156,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: ITEM, RPAREN, LPAREN
// elements: RPAREN, LPAREN, ITEM
// token labels:
// rule labels: retval
// token list labels:
@ -24504,7 +24504,7 @@ org.antlr.lang.augmentObject(XQueryParser.prototype, {
// AST REWRITE
// elements: nl, nn
// elements: nn, nl
// token labels:
// rule labels: retval, nn, nl
// token list labels:

View file

@ -37,6 +37,7 @@ define(function(require, exports, module){
var Position = require("./Position").Position;
var XQuerySemanticHighlighter = exports.XQuerySemanticHighlighter = function() {
this.tokenizer = null;
this.plain = null;
this.source = [];
this.lines = [];
@ -95,7 +96,12 @@ define(function(require, exports, module){
} else {
console.log("sourceLine: " + sourceLine);
console.log("tokenizedLine: " + tokenizedLine);
result[i] = { tokens: [ { type: "_error", value: sourceLine } ], state: nextState };
result[i] = { tokens: [ { type: "text", value: sourceLine } ], state: nextState };
}
if(result[i].tokens.length === 1 && result[i].tokens[0].type === "text" && this.tokenizer instanceof Object) {
var prev = result[i - 1] ? result[i - 1].state : "start";
result[i] = this.tokenizer.getLineTokens(result[i].tokens[0].value, prev);
}
}
return result;

View file

@ -41,6 +41,8 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
var Mirror = require("../worker/mirror").Mirror;
var xquery = require("../mode/xquery/xquery");
var Tokenizer = require("../tokenizer").Tokenizer;
var XQueryHighlightRules = require("./xquery_highlight_rules").XQueryHighlightRules;
window.addEventListener = function() {};
@ -74,6 +76,7 @@ oop.inherits(XQueryWorker, Mirror);
} else {
this.sender.emit("ok");
}
parser.highlighter.tokenizer = new Tokenizer(new XQueryHighlightRules().getRules());
var tokens = parser.highlighter.getTokens();
this.sender.emit("highlight", tokens);
};