Add changeDelta event on the document
Conflicts: lib/ace/document.js
This commit is contained in:
parent
2cd73789ca
commit
7ccd377f13
1 changed files with 25 additions and 19 deletions
|
|
@ -511,15 +511,17 @@ var Document = function(text, mode) {
|
|||
args.push.apply(args, lines);
|
||||
this.$lines.splice.apply(this.$lines, args);
|
||||
|
||||
var delta = {
|
||||
action: "insertText",
|
||||
range: new Range(row, 0, row + lines.length, 0),
|
||||
text: lines.join(nl) + nl
|
||||
};
|
||||
if (!fromUndo && this.$undoManager) {
|
||||
var nl = this.$getNewLineCharacter();
|
||||
this.$deltas.push({
|
||||
action: "insertText",
|
||||
range: new Range(row, 0, row + lines.length, 0),
|
||||
text: lines.join(nl) + nl
|
||||
});
|
||||
this.$deltas.push(delta);
|
||||
this.$informUndoManager.schedule();
|
||||
}
|
||||
this._dispatchEvent("changeDelta", { data: delta });
|
||||
},
|
||||
|
||||
this.$insert = function(position, text, fromUndo) {
|
||||
|
|
@ -571,14 +573,16 @@ var Document = function(text, mode) {
|
|||
};
|
||||
}
|
||||
|
||||
var delta = {
|
||||
action: "insertText",
|
||||
range: Range.fromPoints(position, end),
|
||||
text: text
|
||||
};
|
||||
if (!fromUndo && this.$undoManager) {
|
||||
this.$deltas.push({
|
||||
action: "insertText",
|
||||
range: Range.fromPoints(position, end),
|
||||
text: text
|
||||
});
|
||||
this.$deltas.push(delta);
|
||||
this.$informUndoManager.schedule();
|
||||
}
|
||||
this._dispatchEvent("changeDelta", { data: delta });
|
||||
|
||||
return end;
|
||||
};
|
||||
|
|
@ -623,13 +627,13 @@ var Document = function(text, mode) {
|
|||
if (range.isEmpty())
|
||||
return;
|
||||
|
||||
var delta = {
|
||||
action: "removeText",
|
||||
range: range.clone(),
|
||||
text: this.getTextRange(range)
|
||||
};
|
||||
if (!fromUndo && this.$undoManager) {
|
||||
var nl = this.$getNewLineCharacter();
|
||||
this.$deltas.push({
|
||||
action: "removeText",
|
||||
range: range.clone(),
|
||||
text: this.getTextRange(range)
|
||||
});
|
||||
this.$deltas.push(delta);
|
||||
this.$informUndoManager.schedule();
|
||||
}
|
||||
|
||||
|
|
@ -645,6 +649,8 @@ var Document = function(text, mode) {
|
|||
this.$lines.splice(firstRow, lastRow - firstRow + 1, row);
|
||||
else
|
||||
this.$lines.splice(firstRow, lastRow - firstRow + 1, "");
|
||||
|
||||
this._dispatchEvent("changeDelta", { data: delta });
|
||||
return range.start;
|
||||
};
|
||||
|
||||
|
|
@ -729,9 +735,9 @@ var Document = function(text, mode) {
|
|||
deleteRange.start.column = j;
|
||||
deleteRange.end.column = j + 1;
|
||||
} else {
|
||||
deleteRange.start.column = 0;
|
||||
deleteRange.end.column = j;
|
||||
}
|
||||
deleteRange.start.column = 0;
|
||||
deleteRange.end.column = j;
|
||||
}
|
||||
if (i == range.start.row)
|
||||
range.start.column -= deleteRange.end.column - deleteRange.start.column;
|
||||
if (i == range.end.row)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue