From 873143a72585a515635d4172dd674fd96ea4cc2d Mon Sep 17 00:00:00 2001 From: nightwing Date: Mon, 5 Jan 2015 16:32:58 +0400 Subject: [PATCH] fix metadata tests --- node_modules/ace/lib/ace/undomanager.js | 4 ++-- plugins/c9.ide.ace/ace.js | 24 ++++++++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/node_modules/ace/lib/ace/undomanager.js b/node_modules/ace/lib/ace/undomanager.js index cd0f1711..3bf6b5bc 100644 --- a/node_modules/ace/lib/ace/undomanager.js +++ b/node_modules/ace/lib/ace/undomanager.js @@ -43,7 +43,6 @@ define(function(require, exports, module) { **/ var UndoManager = function() { this.$maxRev = 0; - this.mark = 0; this.$fromUndo = false; this.reset(); }; @@ -203,7 +202,7 @@ var UndoManager = function() { this.$syncRev = function() { var stack = this.$undoStack; var nextDelta = stack[stack.length - 1]; - var id = nextDelta && nextDelta[0] && nextDelta[0].id || 0; + var id = nextDelta && nextDelta[0].id || 0; this.$redoStackBaseRev = id; this.$rev = id; }; @@ -216,6 +215,7 @@ var UndoManager = function() { this.$undoStack = []; this.$redoStack = []; this.$rev = 0; + this.mark = 0; this.selections = []; }; diff --git a/plugins/c9.ide.ace/ace.js b/plugins/c9.ide.ace/ace.js index 3f6bca39..8f94dfc2 100644 --- a/plugins/c9.ide.ace/ace.js +++ b/plugins/c9.ide.ace/ace.js @@ -297,9 +297,13 @@ define(function(require, exports, module) { undoManager.canRedo = this.canRedo; undoManager.getState = this.getState; undoManager.setState = this.setState; - this._emit = undoManager.getEmitter(); + undoManager.bookmark = this.bookmark; + undoManager.isAtBookmark = this.isAtBookmark; + undoManager.__defineGetter__("position", this.getPosition); + undoManager.__defineGetter__("length", this.getLength); + undoManager._emit = this._emit = undoManager.getEmitter(); - undoManager.setState(state); + this.setState(state); } function updateDeltas(deltas) { if (deltas[0] && deltas[0].deltas) { @@ -356,7 +360,7 @@ define(function(require, exports, module) { return { stack: stack, mark: aceUndo.mark, - position: aceUndo.$rev + position: stack.length - 1 }; }, setState: function(e) { @@ -365,7 +369,11 @@ define(function(require, exports, module) { aceUndo.$undoStack = (e.stack || []).filter(function(x) { return x.length; }); - aceUndo.$rev = e.position; + var stack = aceUndo.$undoStack; + var lastDeltaGroup = stack[stack.length] - 1; + var lastRev = lastDeltaGroup && lastDeltaGroup[0].id || 0; + aceUndo.$rev = lastRev; + aceUndo.$maxRev = Math.max(aceUndo.$maxRev, lastRev); this.bookmark(e.mark); }, isAtBookmark: function() { @@ -377,6 +385,14 @@ define(function(require, exports, module) { }, setSession: function(session) { this.$aceUndo.setSession(session); + }, + getPosition: function() { + var aceUndo = this.$aceUndo; + return aceUndo.$undoStack.length - 1; + }, + getLength: function() { + var aceUndo = this.$aceUndo; + return aceUndo.$undoStack.length + aceUndo.$redoStack.length; } };