do not wrap change events in additional e.data
This commit is contained in:
parent
bb827051a6
commit
525fe1ffe3
14 changed files with 45 additions and 55 deletions
|
|
@ -70,6 +70,7 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|||
* @returns {Object}
|
||||
**/
|
||||
this.getPosition = function() {
|
||||
//process.exit(2)
|
||||
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
|
||||
*
|
||||
**/
|
||||
this.onChange = function(e) {
|
||||
var delta = e.data;
|
||||
this.onChange = function(delta) {
|
||||
if (delta.start.row == delta.end.row && delta.start.row != this.row)
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -579,7 +579,7 @@ var Document = function(textOrLines) {
|
|||
|
||||
// Apply.
|
||||
applyDelta(this.$lines, delta, doNotValidate);
|
||||
this._signal("change", {data: delta});
|
||||
this._signal("change", delta);
|
||||
};
|
||||
|
||||
this.$splitAndapplyLargeDelta = function(delta) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
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");
|
||||
assert.equal(doc.getValue(), ["1juhu2", "34"].join("\n"));
|
||||
|
|
@ -63,7 +63,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
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}, ['', '']);
|
||||
assert.equal(doc.getValue(), ["1", "2", "34"].join("\n"));
|
||||
|
|
@ -80,7 +80,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
var deltas = [];
|
||||
doc.on("change", function(e) { deltas.push(e.data); });
|
||||
doc.on("change", function(e) { deltas.push(e); });
|
||||
|
||||
doc.insertFullLines(0, ["aa", "bb"]);
|
||||
assert.equal(doc.getValue(), ["aa", "bb", "12", "34"].join("\n"));
|
||||
|
|
@ -97,7 +97,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
var deltas = [];
|
||||
doc.on("change", function(e) { deltas.push(e.data); });
|
||||
doc.on("change", function(e) { deltas.push(e); });
|
||||
|
||||
doc.insertFullLines(2, ["aa", "bb"]);
|
||||
assert.equal(doc.getValue(), ["12", "34", "aa", "bb"].join("\n"));
|
||||
|
|
@ -107,7 +107,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
var deltas = [];
|
||||
doc.on("change", function(e) { deltas.push(e.data); });
|
||||
doc.on("change", function(e) { deltas.push(e); });
|
||||
|
||||
doc.insertFullLines(1, ["aa", "bb"]);
|
||||
assert.equal(doc.getValue(), ["12", "aa", "bb", "34"].join("\n"));
|
||||
|
|
@ -124,7 +124,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
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");
|
||||
assert.equal(doc.getValue(), ["aa", "bb", "cc12", "34"].join("\n"));
|
||||
|
|
@ -141,7 +141,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
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");
|
||||
assert.equal(doc.getValue(), ["12", "34aa", "bb", "cc"].join("\n"));
|
||||
|
|
@ -158,7 +158,7 @@ module.exports = {
|
|||
var doc = new Document(["12", "34"]);
|
||||
|
||||
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");
|
||||
assert.equal(doc.getValue(), ["1aa", "bb", "cc2", "34"].join("\n"));
|
||||
|
|
@ -175,7 +175,7 @@ module.exports = {
|
|||
var doc = new Document(["1234", "5678"]);
|
||||
|
||||
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));
|
||||
assert.equal(doc.getValue(), ["14", "5678"].join("\n"));
|
||||
|
|
@ -192,7 +192,7 @@ module.exports = {
|
|||
var doc = new Document(["1234", "5678"]);
|
||||
|
||||
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));
|
||||
assert.equal(doc.getValue(), ["12345678"].join("\n"));
|
||||
|
|
@ -209,7 +209,7 @@ module.exports = {
|
|||
var doc = new Document(["1234", "5678", "abcd"]);
|
||||
|
||||
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));
|
||||
assert.equal(doc.getValue(), ["12cd"].join("\n"));
|
||||
|
|
@ -226,7 +226,7 @@ module.exports = {
|
|||
var doc = new Document(["1234", "5678", "abcd"]);
|
||||
|
||||
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));
|
||||
assert.equal(doc.getValue(), ["1234", ""].join("\n"));
|
||||
|
|
|
|||
|
|
@ -249,13 +249,12 @@ var EditSession = function(text, mode) {
|
|||
this.$resetRowCache(fold.start.row);
|
||||
};
|
||||
|
||||
this.onChange = function(e) {
|
||||
var delta = e.data;
|
||||
this.onChange = function(delta) {
|
||||
this.$modified = true;
|
||||
|
||||
this.$resetRowCache(delta.start.row);
|
||||
|
||||
var removedFolds = this.$updateInternalDataOnChange(e);
|
||||
var removedFolds = this.$updateInternalDataOnChange(delta);
|
||||
if (!this.$fromUndo && this.$undoManager && !delta.ignore) {
|
||||
this.$deltasDoc.push(delta);
|
||||
if (removedFolds && removedFolds.length != 0) {
|
||||
|
|
@ -269,7 +268,7 @@ var EditSession = function(text, mode) {
|
|||
}
|
||||
|
||||
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 action = e.data.action;
|
||||
var start = e.data.start;
|
||||
var end = e.data.end;
|
||||
var action = delta.action;
|
||||
var start = delta.start;
|
||||
var end = delta.end;
|
||||
var firstRow = start.row;
|
||||
var lastRow = end.row;
|
||||
var len = lastRow - firstRow;
|
||||
|
|
@ -1683,7 +1682,7 @@ var EditSession = function(text, mode) {
|
|||
this[useWrapMode ? "$wrapData" : "$rowLengthCache"].splice(firstRow, len);
|
||||
|
||||
var foldLines = this.$foldData;
|
||||
removedFolds = this.getFoldsInRange(e.data);
|
||||
removedFolds = this.getFoldsInRange(delta);
|
||||
this.removeFolds(removedFolds);
|
||||
|
||||
var foldLine = this.getFoldLine(end.row);
|
||||
|
|
@ -1748,10 +1747,10 @@ var EditSession = function(text, mode) {
|
|||
} else {
|
||||
// Realign folds. E.g. if you add some new chars before a fold, the
|
||||
// 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") {
|
||||
// Get all the folds in the change range and remove them.
|
||||
removedFolds = this.getFoldsInRange(e.data);
|
||||
removedFolds = this.getFoldsInRange(delta);
|
||||
this.removeFolds(removedFolds);
|
||||
|
||||
len = -len;
|
||||
|
|
|
|||
|
|
@ -827,8 +827,7 @@ function Folding() {
|
|||
}
|
||||
};
|
||||
|
||||
this.updateFoldWidgets = function(e) {
|
||||
var delta = e.data;
|
||||
this.updateFoldWidgets = function(delta) {
|
||||
var firstRow = delta.start.row;
|
||||
var len = delta.end.row - firstRow;
|
||||
|
||||
|
|
|
|||
|
|
@ -674,14 +674,13 @@ var Editor = function(renderer, session) {
|
|||
*
|
||||
*
|
||||
**/
|
||||
this.onDocumentChange = function(e) {
|
||||
this.onDocumentChange = function(delta) {
|
||||
// Rerender and emit "change" event.
|
||||
var delta = e.data;
|
||||
var wrap = this.session.$useWrapMode;
|
||||
var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);
|
||||
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.
|
||||
this.$cursorChange();
|
||||
|
|
|
|||
|
|
@ -578,8 +578,7 @@ var onSelectionChange = function(evt) {
|
|||
* and deleting text.
|
||||
* @param {!Event} evt The event.
|
||||
*/
|
||||
var onChange = function(evt) {
|
||||
var data = evt.data;
|
||||
var onChange = function(delta) {
|
||||
switch (data.action) {
|
||||
case 'remove':
|
||||
cvox.Api.speak(data.text, 0, DELETED_PROP);
|
||||
|
|
|
|||
|
|
@ -44,13 +44,12 @@ var ElasticTabstopsLite = function(editor) {
|
|||
this.onExec = function() {
|
||||
recordChanges = true;
|
||||
};
|
||||
this.onChange = function(e) {
|
||||
var range = e.data;
|
||||
this.onChange = function(delta) {
|
||||
if (recordChanges) {
|
||||
if (changedRows.indexOf(range.start.row) == -1)
|
||||
changedRows.push(range.start.row);
|
||||
if (range.end.row != range.start.row)
|
||||
changedRows.push(range.end.row);
|
||||
if (changedRows.indexOf(delta.start.row) == -1)
|
||||
changedRows.push(delta.start.row);
|
||||
if (delta.end.row != delta.start.row)
|
||||
changedRows.push(delta.end.row);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -100,10 +100,9 @@ var Gutter = function(parentEl) {
|
|||
}
|
||||
};
|
||||
|
||||
this.$updateAnnotations = function (e) {
|
||||
this.$updateAnnotations = function (delta) {
|
||||
if (!this.$annotations.length)
|
||||
return;
|
||||
var delta = e.data;
|
||||
var firstRow = delta.start.row;
|
||||
var len = delta.end.row - firstRow;
|
||||
if (len === 0) {
|
||||
|
|
|
|||
|
|
@ -113,11 +113,10 @@ function LineWidgets(session) {
|
|||
});
|
||||
};
|
||||
|
||||
this.updateOnChange = function(e) {
|
||||
this.updateOnChange = function(delta) {
|
||||
var lineWidgets = this.session.lineWidgets;
|
||||
if (!lineWidgets) return;
|
||||
|
||||
var delta = e.data;
|
||||
|
||||
var startRow = delta.start.row;
|
||||
var len = delta.end.row - startRow;
|
||||
|
||||
|
|
|
|||
|
|
@ -150,8 +150,7 @@ var PlaceHolder = function(session, length, pos, others, mainClass, othersClass)
|
|||
* Emitted when the place holder updates.
|
||||
*
|
||||
**/
|
||||
this.onUpdate = function(event) {
|
||||
var delta = event.data;
|
||||
this.onUpdate = function(delta) {
|
||||
var range = delta;
|
||||
if(range.start.row !== range.end.row) return;
|
||||
if(range.start.row !== this.pos.row) return;
|
||||
|
|
|
|||
|
|
@ -180,8 +180,7 @@ var RangeList = function() {
|
|||
this.session = null;
|
||||
};
|
||||
|
||||
this.$onChange = function(e) {
|
||||
var delta = e.data;
|
||||
this.$onChange = function(delta) {
|
||||
if (delta.action == "insert"){
|
||||
var start = delta.start;
|
||||
var end = delta.end;
|
||||
|
|
|
|||
|
|
@ -667,11 +667,11 @@ var TabstopManager = function(editor) {
|
|||
this.editor = null;
|
||||
};
|
||||
|
||||
this.onChange = function(e) {
|
||||
var changeRange = e.data.range;
|
||||
var isRemove = e.data.action[0] == "r";
|
||||
var start = changeRange.start;
|
||||
var end = changeRange.end;
|
||||
this.onChange = function(delta) {
|
||||
var changeRange = delta;
|
||||
var isRemove = delta.action[0] == "r";
|
||||
var start = delta.start;
|
||||
var end = delta.end;
|
||||
var startRow = start.row;
|
||||
var endRow = end.row;
|
||||
var lineDif = endRow - startRow;
|
||||
|
|
|
|||
|
|
@ -162,12 +162,11 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
|
|||
doc.on("change", this.changeListener);
|
||||
};
|
||||
|
||||
this.changeListener = function(e) {
|
||||
this.changeListener = function(delta) {
|
||||
if (!this.deltaQueue) {
|
||||
this.deltaQueue = [];
|
||||
setTimeout(this.$sendDeltaQueue, 0);
|
||||
}
|
||||
var delta = e.data;
|
||||
if (delta.action == "insert")
|
||||
this.deltaQueue.push(delta.start, delta.lines);
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue