Fix semantic highlighting bug.
This commit is contained in:
parent
031e72c3e3
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
|
|
@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue