Skip to content

Commit

Permalink
fix diff editor reload on content editing.
Browse files Browse the repository at this point in the history
  • Loading branch information
rebornix committed May 9, 2021
1 parent 5979135 commit 54d33cf
Showing 1 changed file with 29 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,9 @@ export class NotebookTextDiffEditor extends EditorPane implements INotebookTextD
this._originalWebview?.removeInsets([...this._originalWebview?.insetMapping.keys()]);
this._modifiedWebview?.removeInsets([...this._modifiedWebview?.insetMapping.keys()]);

this._diffElementViewModels = viewModels;
this._list.splice(0, this._list.length, this._diffElementViewModels);
this._setViewModel(viewModels);
// this._diffElementViewModels = viewModels;
// this._list.splice(0, this._list.length, this._diffElementViewModels);

if (this._revealFirst && firstChangeIndex !== -1) {
this._revealFirst = false;
Expand All @@ -423,6 +424,32 @@ export class NotebookTextDiffEditor extends EditorPane implements INotebookTextD
}
}

private _setViewModel(viewModels: DiffElementViewModelBase[]) {
let isSame = true;
if (this._diffElementViewModels.length === viewModels.length) {
for (let i = 0; i < viewModels.length; i++) {
const a = this._diffElementViewModels[i];
const b = viewModels[i];

if (a.original?.textModel.getHashValue() !== b.original?.textModel.getHashValue()
|| a.modified?.textModel.getHashValue() !== b.modified?.textModel.getHashValue()) {
isSame = false;
break;
}
}
} else {
isSame = false;
}

if (isSame) {
return;
}

this._diffElementViewModels = viewModels;
this._list.splice(0, this._list.length, this._diffElementViewModels);

}

/**
* making sure that swapping cells are always translated to `insert+delete`.
*/
Expand Down

0 comments on commit 54d33cf

Please sign in to comment.