Fix semantic highlighting bug.

This commit is contained in:
William Candillon 2012-04-23 19:04:21 +02:00
commit 994e8fd4e9
11 changed files with 149 additions and 50 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -130,6 +130,7 @@ oop.inherits(Mode, TextMode);
worker.attachToDocument(session.getDocument());
worker.on("start", function(e) {
console.log("start");
that.deltas = [];
});
@ -150,10 +151,10 @@ oop.inherits(Mode, TextMode);
for(var i in that.deltas)
{
var delta = that.deltas[i];
//console.log(delta);
if (delta.action === "insertLines")
{
var newLineCount = delta.range.end.row - delta.range.start.row;
this.$insertNewRows(delta.range.start.row, newLineCount);
for (var i = 0; i < newLineCount; i++) {
lines.splice(delta.range.start.row + i, 0, undefined);
}
@ -162,20 +163,21 @@ oop.inherits(Mode, TextMode);
{
if (session.getDocument().isNewLine(delta.text))
{
lines.splice(delta.range.start.row, 0, undefined);
lines.splice(delta.range.end.row, 0, undefined);
} else {
delete lines[delta.range.start.row];
}
} else if (delta.action === "removeLines") {
var oldLineCount = delta.range.end.row - delta.range.start.row;
lines.splice(delta.range.start.row, oldLineCount);
for (var i = 0; i < newLineCount; i++) {
lines.splice(delta.range.start.row + i, 1);
}
} else if (delta.action === "removeText") {
if (session.getDocument().isNewLine(delta.text))
{
lines.splice(delta.range.start.row, 0);
} else {
delete lines[delta.range.start.row];
lines.splice(delta.range.end.row, 1);
}
delete lines[delta.range.start.row];
}
}

View file

@ -130,6 +130,7 @@ oop.inherits(Mode, TextMode);
worker.attachToDocument(session.getDocument());
worker.on("start", function(e) {
console.log("start");
that.deltas = [];
});
@ -150,10 +151,10 @@ oop.inherits(Mode, TextMode);
for(var i in that.deltas)
{
var delta = that.deltas[i];
//console.log(delta);
if (delta.action === "insertLines")
{
var newLineCount = delta.range.end.row - delta.range.start.row;
this.$insertNewRows(delta.range.start.row, newLineCount);
for (var i = 0; i < newLineCount; i++) {
lines.splice(delta.range.start.row + i, 0, undefined);
}
@ -162,20 +163,21 @@ oop.inherits(Mode, TextMode);
{
if (session.getDocument().isNewLine(delta.text))
{
lines.splice(delta.range.start.row, 0, undefined);
lines.splice(delta.range.end.row, 0, undefined);
} else {
delete lines[delta.range.start.row];
}
} else if (delta.action === "removeLines") {
var oldLineCount = delta.range.end.row - delta.range.start.row;
lines.splice(delta.range.start.row, oldLineCount);
for (var i = 0; i < newLineCount; i++) {
lines.splice(delta.range.start.row + i, 1);
}
} else if (delta.action === "removeText") {
if (session.getDocument().isNewLine(delta.text))
{
lines.splice(delta.range.start.row, 0);
} else {
delete lines[delta.range.start.row];
lines.splice(delta.range.end.row, 1);
}
delete lines[delta.range.start.row];
}
}

File diff suppressed because one or more lines are too long