Skip to content

Commit d848c8c

Browse files
committed
[merge addon] Verify that diff is up to date in left/rightChunks
Issue #2438
1 parent bf852b8 commit d848c8c

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

addon/merge/merge.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@
4646
}
4747
};
4848

49+
function ensureDiff(dv) {
50+
if (dv.diffOutOfDate) {
51+
dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue());
52+
dv.diffOutOfDate = false;
53+
CodeMirror.signal(dv.edit, "updateDiff", dv.diff);
54+
}
55+
}
56+
4957
function registerUpdate(dv) {
5058
var edit = {from: 0, to: 0, marked: []};
5159
var orig = {from: 0, to: 0, marked: []};
@@ -58,11 +66,7 @@
5866
clearMarks(dv.orig, orig.marked, dv.classes);
5967
edit.from = edit.to = orig.from = orig.to = 0;
6068
}
61-
if (dv.diffOutOfDate) {
62-
dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue());
63-
dv.diffOutOfDate = false;
64-
CodeMirror.signal(dv.edit, "updateDiff", dv.diff);
65-
}
69+
ensureDiff(dv);
6670
if (dv.showDifferences) {
6771
updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);
6872
updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);
@@ -355,10 +359,10 @@
355359
if (this.left) this.left.setShowDifferences(val);
356360
},
357361
rightChunks: function() {
358-
return this.right && getChunks(this.right.diff);
362+
return this.right && getChunks(this.right);
359363
},
360364
leftChunks: function() {
361-
return this.left && getChunks(this.left.diff);
365+
return this.left && getChunks(this.left);
362366
}
363367
};
364368

@@ -409,9 +413,10 @@
409413
f(startOrig, orig.line + 1, startEdit, edit.line + 1);
410414
}
411415

412-
function getChunks(diff) {
416+
function getChunks(dv) {
417+
ensureDiff(dv);
413418
var collect = [];
414-
iterateChunks(diff, function(topOrig, botOrig, topEdit, botEdit) {
419+
iterateChunks(dv.diff, function(topOrig, botOrig, topEdit, botEdit) {
415420
collect.push({origFrom: topOrig, origTo: botOrig,
416421
editFrom: topEdit, editTo: botEdit});
417422
});

0 commit comments

Comments
 (0)