mirror of
https://github.com/linuxserver/core.git
synced 2026-02-20 05:07:19 +08:00
fix inconsistency between getState and setState
This commit is contained in:
parent
cef4157eb3
commit
ce06798521
2
node_modules/ace/lib/ace/editor.js
generated
vendored
2
node_modules/ace/lib/ace/editor.js
generated
vendored
@ -111,8 +111,6 @@ var Editor = function(renderer, session) {
|
||||
oop.implement(this, EventEmitter);
|
||||
|
||||
this.$initOperationListeners = function() {
|
||||
this.commands.toggleRecording();
|
||||
|
||||
this.commands.on("exec", this.startOperation.bind(this), true);
|
||||
this.commands.on("afterExec", this.endOperation.bind(this), true);
|
||||
|
||||
|
||||
3
node_modules/ace/lib/ace/undomanager.js
generated
vendored
3
node_modules/ace/lib/ace/undomanager.js
generated
vendored
@ -219,7 +219,8 @@ var UndoManager = function() {
|
||||
this.$undoStack = [];
|
||||
this.$redoStack = [];
|
||||
this.$rev = 0;
|
||||
this.mark = 0;
|
||||
this.mark = -1;
|
||||
this.$redoStackBaseRev = this.$rev;
|
||||
this.selections = [];
|
||||
};
|
||||
|
||||
|
||||
@ -360,29 +360,46 @@ define(function(require, exports, module) {
|
||||
getState: function() {
|
||||
console.log("getState()");
|
||||
var aceUndo = this.$aceUndo;
|
||||
var stack = aceUndo.$undoStack.map(function(deltaSet) {
|
||||
return deltaSet.filter(function (d) {
|
||||
var mark = -1;
|
||||
var aceMark = aceUndo.mark;
|
||||
var stack = [];
|
||||
function transform(deltaSet) {
|
||||
var newDelta = deltaSet.filter(function (d) {
|
||||
if (d.id == aceMark) mark = stack.length;
|
||||
return d.action == "insert" || d.action == "remove";
|
||||
});
|
||||
});
|
||||
stack.push(newDelta);
|
||||
}
|
||||
aceUndo.$undoStack.forEach(transform);
|
||||
if (aceUndo.$redoStackBaseRev == aceUndo.$rev)
|
||||
aceUndo.$redoStack.forEach(transform);
|
||||
return {
|
||||
stack: stack,
|
||||
mark: aceUndo.mark,
|
||||
position: stack.length - 1
|
||||
mark: mark,
|
||||
position: aceUndo.$undoStack.length - 1
|
||||
};
|
||||
},
|
||||
setState: function(e, silent) {
|
||||
console.log("setState()");
|
||||
var aceUndo = this.$aceUndo;
|
||||
aceUndo.$undoStack = (e.stack || []).filter(function(x) {
|
||||
var stack = e.stack || [];
|
||||
var marked = stack[e.mark] && stack[e.mark][0];
|
||||
var pos = e.position + 1;
|
||||
var undo = stack.slice(0, pos);
|
||||
var redo = stack.slice(pos);
|
||||
aceUndo.$undoStack = undo.filter(function(x) {
|
||||
return x.length;
|
||||
}).map(updateDeltas);
|
||||
var stack = aceUndo.$undoStack;
|
||||
aceUndo.$redoStack = redo.filter(function(x) {
|
||||
return x.length;
|
||||
}).map(updateDeltas);
|
||||
stack = aceUndo.$undoStack;
|
||||
var lastDeltaGroup = stack[stack.length - 1];
|
||||
var lastRev = lastDeltaGroup && lastDeltaGroup[0].id || 0;
|
||||
aceUndo.$rev = lastRev;
|
||||
aceUndo.$redoStackBaseRev == aceUndo.$rev;
|
||||
aceUndo.$maxRev = Math.max(aceUndo.$maxRev, lastRev);
|
||||
this.$aceUndo.bookmark(e.mark);
|
||||
this.$aceUndo.bookmark(marked && marked.id != null ? marked.id : -1);
|
||||
silent || this._emit("change");
|
||||
},
|
||||
isAtBookmark: function() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user