do not wrap change events in additional e.data

This commit is contained in:
nightwing 2014-10-18 00:56:13 +04:00
commit 525fe1ffe3
14 changed files with 45 additions and 55 deletions

View file

@ -70,6 +70,7 @@ var Anchor = exports.Anchor = function(doc, row, column) {
* @returns {Object} * @returns {Object}
**/ **/
this.getPosition = function() { this.getPosition = function() {
//process.exit(2)
return this.$clipPositionToDocument(this.row, this.column); return this.$clipPositionToDocument(this.row, this.column);
}; };
@ -99,8 +100,7 @@ var Anchor = exports.Anchor = function(doc, row, column) {
* - `value`: An object describing the new Anchor position * - `value`: An object describing the new Anchor position
* *
**/ **/
this.onChange = function(e) { this.onChange = function(delta) {
var delta = e.data;
if (delta.start.row == delta.end.row && delta.start.row != this.row) if (delta.start.row == delta.end.row && delta.start.row != this.row)
return; return;

View file

@ -579,7 +579,7 @@ var Document = function(textOrLines) {
// Apply. // Apply.
applyDelta(this.$lines, delta, doNotValidate); applyDelta(this.$lines, delta, doNotValidate);
this._signal("change", {data: delta}); this._signal("change", delta);
}; };
this.$splitAndapplyLargeDelta = function(delta) { this.$splitAndapplyLargeDelta = function(delta) {

View file

@ -46,7 +46,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insert({row: 0, column: 1}, "juhu"); doc.insert({row: 0, column: 1}, "juhu");
assert.equal(doc.getValue(), ["1juhu2", "34"].join("\n")); assert.equal(doc.getValue(), ["1juhu2", "34"].join("\n"));
@ -63,7 +63,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insertMergedLines({row: 0, column: 1}, ['', '']); doc.insertMergedLines({row: 0, column: 1}, ['', '']);
assert.equal(doc.getValue(), ["1", "2", "34"].join("\n")); assert.equal(doc.getValue(), ["1", "2", "34"].join("\n"));
@ -80,7 +80,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insertFullLines(0, ["aa", "bb"]); doc.insertFullLines(0, ["aa", "bb"]);
assert.equal(doc.getValue(), ["aa", "bb", "12", "34"].join("\n")); assert.equal(doc.getValue(), ["aa", "bb", "12", "34"].join("\n"));
@ -97,7 +97,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insertFullLines(2, ["aa", "bb"]); doc.insertFullLines(2, ["aa", "bb"]);
assert.equal(doc.getValue(), ["12", "34", "aa", "bb"].join("\n")); assert.equal(doc.getValue(), ["12", "34", "aa", "bb"].join("\n"));
@ -107,7 +107,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insertFullLines(1, ["aa", "bb"]); doc.insertFullLines(1, ["aa", "bb"]);
assert.equal(doc.getValue(), ["12", "aa", "bb", "34"].join("\n")); assert.equal(doc.getValue(), ["12", "aa", "bb", "34"].join("\n"));
@ -124,7 +124,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insert({row: 0, column: 0}, "aa\nbb\ncc"); doc.insert({row: 0, column: 0}, "aa\nbb\ncc");
assert.equal(doc.getValue(), ["aa", "bb", "cc12", "34"].join("\n")); assert.equal(doc.getValue(), ["aa", "bb", "cc12", "34"].join("\n"));
@ -141,7 +141,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insert({row: 1, column: 2}, "aa\nbb\ncc"); doc.insert({row: 1, column: 2}, "aa\nbb\ncc");
assert.equal(doc.getValue(), ["12", "34aa", "bb", "cc"].join("\n")); assert.equal(doc.getValue(), ["12", "34aa", "bb", "cc"].join("\n"));
@ -158,7 +158,7 @@ module.exports = {
var doc = new Document(["12", "34"]); var doc = new Document(["12", "34"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.insert({row: 0, column: 1}, "aa\nbb\ncc"); doc.insert({row: 0, column: 1}, "aa\nbb\ncc");
assert.equal(doc.getValue(), ["1aa", "bb", "cc2", "34"].join("\n")); assert.equal(doc.getValue(), ["1aa", "bb", "cc2", "34"].join("\n"));
@ -175,7 +175,7 @@ module.exports = {
var doc = new Document(["1234", "5678"]); var doc = new Document(["1234", "5678"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.remove(new Range(0, 1, 0, 3)); doc.remove(new Range(0, 1, 0, 3));
assert.equal(doc.getValue(), ["14", "5678"].join("\n")); assert.equal(doc.getValue(), ["14", "5678"].join("\n"));
@ -192,7 +192,7 @@ module.exports = {
var doc = new Document(["1234", "5678"]); var doc = new Document(["1234", "5678"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.remove(new Range(0, 4, 1, 0)); doc.remove(new Range(0, 4, 1, 0));
assert.equal(doc.getValue(), ["12345678"].join("\n")); assert.equal(doc.getValue(), ["12345678"].join("\n"));
@ -209,7 +209,7 @@ module.exports = {
var doc = new Document(["1234", "5678", "abcd"]); var doc = new Document(["1234", "5678", "abcd"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.remove(new Range(0, 2, 2, 2)); doc.remove(new Range(0, 2, 2, 2));
assert.equal(doc.getValue(), ["12cd"].join("\n")); assert.equal(doc.getValue(), ["12cd"].join("\n"));
@ -226,7 +226,7 @@ module.exports = {
var doc = new Document(["1234", "5678", "abcd"]); var doc = new Document(["1234", "5678", "abcd"]);
var deltas = []; var deltas = [];
doc.on("change", function(e) { deltas.push(e.data); }); doc.on("change", function(e) { deltas.push(e); });
doc.remove(new Range(1, 0, 3, 0)); doc.remove(new Range(1, 0, 3, 0));
assert.equal(doc.getValue(), ["1234", ""].join("\n")); assert.equal(doc.getValue(), ["1234", ""].join("\n"));

View file

@ -249,13 +249,12 @@ var EditSession = function(text, mode) {
this.$resetRowCache(fold.start.row); this.$resetRowCache(fold.start.row);
}; };
this.onChange = function(e) { this.onChange = function(delta) {
var delta = e.data;
this.$modified = true; this.$modified = true;
this.$resetRowCache(delta.start.row); this.$resetRowCache(delta.start.row);
var removedFolds = this.$updateInternalDataOnChange(e); var removedFolds = this.$updateInternalDataOnChange(delta);
if (!this.$fromUndo && this.$undoManager && !delta.ignore) { if (!this.$fromUndo && this.$undoManager && !delta.ignore) {
this.$deltasDoc.push(delta); this.$deltasDoc.push(delta);
if (removedFolds && removedFolds.length != 0) { if (removedFolds && removedFolds.length != 0) {
@ -269,7 +268,7 @@ var EditSession = function(text, mode) {
} }
this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta); this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);
this._signal("change", e); this._signal("change", delta);
}; };
/** /**
@ -1667,11 +1666,11 @@ var EditSession = function(text, mode) {
}; };
}; };
this.$updateInternalDataOnChange = function(e) { this.$updateInternalDataOnChange = function(delta) {
var useWrapMode = this.$useWrapMode; var useWrapMode = this.$useWrapMode;
var action = e.data.action; var action = delta.action;
var start = e.data.start; var start = delta.start;
var end = e.data.end; var end = delta.end;
var firstRow = start.row; var firstRow = start.row;
var lastRow = end.row; var lastRow = end.row;
var len = lastRow - firstRow; var len = lastRow - firstRow;
@ -1683,7 +1682,7 @@ var EditSession = function(text, mode) {
this[useWrapMode ? "$wrapData" : "$rowLengthCache"].splice(firstRow, len); this[useWrapMode ? "$wrapData" : "$rowLengthCache"].splice(firstRow, len);
var foldLines = this.$foldData; var foldLines = this.$foldData;
removedFolds = this.getFoldsInRange(e.data); removedFolds = this.getFoldsInRange(delta);
this.removeFolds(removedFolds); this.removeFolds(removedFolds);
var foldLine = this.getFoldLine(end.row); var foldLine = this.getFoldLine(end.row);
@ -1748,10 +1747,10 @@ var EditSession = function(text, mode) {
} else { } else {
// Realign folds. E.g. if you add some new chars before a fold, the // Realign folds. E.g. if you add some new chars before a fold, the
// fold should "move" to the right. // fold should "move" to the right.
len = Math.abs(e.data.start.column - e.data.end.column); len = Math.abs(delta.start.column - delta.end.column);
if (action === "remove") { if (action === "remove") {
// Get all the folds in the change range and remove them. // Get all the folds in the change range and remove them.
removedFolds = this.getFoldsInRange(e.data); removedFolds = this.getFoldsInRange(delta);
this.removeFolds(removedFolds); this.removeFolds(removedFolds);
len = -len; len = -len;

View file

@ -827,8 +827,7 @@ function Folding() {
} }
}; };
this.updateFoldWidgets = function(e) { this.updateFoldWidgets = function(delta) {
var delta = e.data;
var firstRow = delta.start.row; var firstRow = delta.start.row;
var len = delta.end.row - firstRow; var len = delta.end.row - firstRow;

View file

@ -674,14 +674,13 @@ var Editor = function(renderer, session) {
* *
* *
**/ **/
this.onDocumentChange = function(e) { this.onDocumentChange = function(delta) {
// Rerender and emit "change" event. // Rerender and emit "change" event.
var delta = e.data;
var wrap = this.session.$useWrapMode; var wrap = this.session.$useWrapMode;
var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity); var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);
this.renderer.updateLines(delta.start.row, lastRow, wrap); this.renderer.updateLines(delta.start.row, lastRow, wrap);
this._signal("change", e); this._signal("change", delta);
// Update cursor because tab characters can influence the cursor position. // Update cursor because tab characters can influence the cursor position.
this.$cursorChange(); this.$cursorChange();

View file

@ -578,8 +578,7 @@ var onSelectionChange = function(evt) {
* and deleting text. * and deleting text.
* @param {!Event} evt The event. * @param {!Event} evt The event.
*/ */
var onChange = function(evt) { var onChange = function(delta) {
var data = evt.data;
switch (data.action) { switch (data.action) {
case 'remove': case 'remove':
cvox.Api.speak(data.text, 0, DELETED_PROP); cvox.Api.speak(data.text, 0, DELETED_PROP);

View file

@ -44,13 +44,12 @@ var ElasticTabstopsLite = function(editor) {
this.onExec = function() { this.onExec = function() {
recordChanges = true; recordChanges = true;
}; };
this.onChange = function(e) { this.onChange = function(delta) {
var range = e.data;
if (recordChanges) { if (recordChanges) {
if (changedRows.indexOf(range.start.row) == -1) if (changedRows.indexOf(delta.start.row) == -1)
changedRows.push(range.start.row); changedRows.push(delta.start.row);
if (range.end.row != range.start.row) if (delta.end.row != delta.start.row)
changedRows.push(range.end.row); changedRows.push(delta.end.row);
} }
}; };
}; };

View file

@ -100,10 +100,9 @@ var Gutter = function(parentEl) {
} }
}; };
this.$updateAnnotations = function (e) { this.$updateAnnotations = function (delta) {
if (!this.$annotations.length) if (!this.$annotations.length)
return; return;
var delta = e.data;
var firstRow = delta.start.row; var firstRow = delta.start.row;
var len = delta.end.row - firstRow; var len = delta.end.row - firstRow;
if (len === 0) { if (len === 0) {

View file

@ -113,11 +113,10 @@ function LineWidgets(session) {
}); });
}; };
this.updateOnChange = function(e) { this.updateOnChange = function(delta) {
var lineWidgets = this.session.lineWidgets; var lineWidgets = this.session.lineWidgets;
if (!lineWidgets) return; if (!lineWidgets) return;
var delta = e.data;
var startRow = delta.start.row; var startRow = delta.start.row;
var len = delta.end.row - startRow; var len = delta.end.row - startRow;

View file

@ -150,8 +150,7 @@ var PlaceHolder = function(session, length, pos, others, mainClass, othersClass)
* Emitted when the place holder updates. * Emitted when the place holder updates.
* *
**/ **/
this.onUpdate = function(event) { this.onUpdate = function(delta) {
var delta = event.data;
var range = delta; var range = delta;
if(range.start.row !== range.end.row) return; if(range.start.row !== range.end.row) return;
if(range.start.row !== this.pos.row) return; if(range.start.row !== this.pos.row) return;

View file

@ -180,8 +180,7 @@ var RangeList = function() {
this.session = null; this.session = null;
}; };
this.$onChange = function(e) { this.$onChange = function(delta) {
var delta = e.data;
if (delta.action == "insert"){ if (delta.action == "insert"){
var start = delta.start; var start = delta.start;
var end = delta.end; var end = delta.end;

View file

@ -667,11 +667,11 @@ var TabstopManager = function(editor) {
this.editor = null; this.editor = null;
}; };
this.onChange = function(e) { this.onChange = function(delta) {
var changeRange = e.data.range; var changeRange = delta;
var isRemove = e.data.action[0] == "r"; var isRemove = delta.action[0] == "r";
var start = changeRange.start; var start = delta.start;
var end = changeRange.end; var end = delta.end;
var startRow = start.row; var startRow = start.row;
var endRow = end.row; var endRow = end.row;
var lineDif = endRow - startRow; var lineDif = endRow - startRow;

View file

@ -162,12 +162,11 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
doc.on("change", this.changeListener); doc.on("change", this.changeListener);
}; };
this.changeListener = function(e) { this.changeListener = function(delta) {
if (!this.deltaQueue) { if (!this.deltaQueue) {
this.deltaQueue = []; this.deltaQueue = [];
setTimeout(this.$sendDeltaQueue, 0); setTimeout(this.$sendDeltaQueue, 0);
} }
var delta = e.data;
if (delta.action == "insert") if (delta.action == "insert")
this.deltaQueue.push(delta.start, delta.lines); this.deltaQueue.push(delta.start, delta.lines);
else else