Skip to content

Commit 54d33cf

Browse files
committed
fix diff editor reload on content editing.
1 parent 5979135 commit 54d33cf

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

src/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.ts

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,9 @@ export class NotebookTextDiffEditor extends EditorPane implements INotebookTextD
413413
this._originalWebview?.removeInsets([...this._originalWebview?.insetMapping.keys()]);
414414
this._modifiedWebview?.removeInsets([...this._modifiedWebview?.insetMapping.keys()]);
415415

416-
this._diffElementViewModels = viewModels;
417-
this._list.splice(0, this._list.length, this._diffElementViewModels);
416+
this._setViewModel(viewModels);
417+
// this._diffElementViewModels = viewModels;
418+
// this._list.splice(0, this._list.length, this._diffElementViewModels);
418419

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

427+
private _setViewModel(viewModels: DiffElementViewModelBase[]) {
428+
let isSame = true;
429+
if (this._diffElementViewModels.length === viewModels.length) {
430+
for (let i = 0; i < viewModels.length; i++) {
431+
const a = this._diffElementViewModels[i];
432+
const b = viewModels[i];
433+
434+
if (a.original?.textModel.getHashValue() !== b.original?.textModel.getHashValue()
435+
|| a.modified?.textModel.getHashValue() !== b.modified?.textModel.getHashValue()) {
436+
isSame = false;
437+
break;
438+
}
439+
}
440+
} else {
441+
isSame = false;
442+
}
443+
444+
if (isSame) {
445+
return;
446+
}
447+
448+
this._diffElementViewModels = viewModels;
449+
this._list.splice(0, this._list.length, this._diffElementViewModels);
450+
451+
}
452+
426453
/**
427454
* making sure that swapping cells are always translated to `insert+delete`.
428455
*/

0 commit comments

Comments
 (0)