fix foldwidgets getting out of sync with document

This commit is contained in:
nightwing 2012-05-22 23:15:34 +04:00
commit 505b1fc3c6
4 changed files with 14 additions and 28 deletions

View file

@ -42,7 +42,7 @@ var oop = require("./lib/oop");
var EventEmitter = require("./lib/event_emitter").EventEmitter;
var Range = require("./range").Range;
var Anchor = require("./anchor").Anchor;
var lang = require("./lib/lang");
/**
* class Document
*
@ -326,8 +326,15 @@ var Document = function(text) {
if (lines.length == 0)
return {row: row, column: 0};
if (lines.length > 0xFFFF) {
var end = this.insertLines(row, lines.slice(0xFFFF));
lines = lines.slice(0, 0xFFFF);
}
var args = [row, 0];
this.$lines = lang.chunkLines(lines, this.$lines, args, true);
args.push.apply(args, lines);
this.$lines.splice.apply(this.$lines, args);
var range = new Range(row, 0, row + lines.length, 0);
var delta = {
action: "insertLines",
@ -335,7 +342,7 @@ var Document = function(text) {
lines: lines
};
this._emit("change", { data: delta });
return range.end;
return end || range.end;
};
/**