Files
atom/vendor/ace/worker/mirror.js
Chris Wanstrath 0d5d3d865f update ace
Loading is now visibly more janky, but I think
d3ba5b8111
fixes a lot of our problems.

I tested this on split-panes-2.0 and a major bug (no input
after resizing) is now gone. Poof.
2011-11-25 22:58:50 -08:00

43 lines
1016 B
JavaScript

define(function(require, exports, module) {
var Document = require("../document").Document;
var lang = require("../lib/lang");
var Mirror = exports.Mirror = function(sender) {
this.sender = sender;
var doc = this.doc = new Document("");
var deferredUpdate = this.deferredUpdate = lang.deferredCall(this.onUpdate.bind(this));
var _self = this;
sender.on("change", function(e) {
doc.applyDeltas([e.data]);
deferredUpdate.schedule(_self.$timeout);
});
};
(function() {
this.$timeout = 500;
this.setTimeout = function(timeout) {
this.$timeout = timeout;
};
this.setValue = function(value) {
this.doc.setValue(value);
this.deferredUpdate.schedule(this.$timeout);
};
this.getValue = function(callbackId) {
this.sender.callback(this.doc.getValue(), callbackId);
};
this.onUpdate = function() {
// abstract method
};
}).call(Mirror.prototype);
});