commit
aded11265f
7 changed files with 288 additions and 66 deletions
|
|
@ -406,10 +406,11 @@ var EditSession = function(text, mode) {
|
|||
if (self.$deltas.length > 0) {
|
||||
undoManager.execute({
|
||||
action: "aceupdate",
|
||||
args: [self.$deltas, self]
|
||||
args: [self.$deltas, self],
|
||||
merge: self.mergeUndoDeltas
|
||||
});
|
||||
}
|
||||
|
||||
self.mergeUndoDeltas = false;
|
||||
self.$deltas = [];
|
||||
}
|
||||
this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);
|
||||
|
|
@ -1220,7 +1221,7 @@ var EditSession = function(text, mode) {
|
|||
var range, point;
|
||||
var lastDeltaIsInsert = false;
|
||||
if (isInsert(delta)) {
|
||||
range = delta.range.clone();
|
||||
range = Range.fromPoints(delta.range.start, delta.range.end);
|
||||
lastDeltaIsInsert = true;
|
||||
} else {
|
||||
range = Range.fromPoints(delta.range.start, delta.range.start);
|
||||
|
|
@ -1252,6 +1253,11 @@ var EditSession = function(text, mode) {
|
|||
// Check if this range and the last undo range has something in common.
|
||||
// If true, merge the ranges.
|
||||
if (lastUndoRange != null) {
|
||||
if (Range.comparePoints(lastUndoRange.start, range.start) == 0) {
|
||||
lastUndoRange.start.column += range.end.column - range.start.column;
|
||||
lastUndoRange.end.column += range.end.column - range.start.column;
|
||||
}
|
||||
|
||||
var cmp = lastUndoRange.compareRange(range);
|
||||
if (cmp == 1) {
|
||||
range.setStart(lastUndoRange.start);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue