src/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.ts/NotebookTextDiffEditor/updateLayout
class NotebookTextDiffEditor:	async updateLayout(token: CancellationToken, selections?: number[]) {
		if (!this._model) {
			return;
		}

		const diffResult = await this.notebookEditorWorkerService.computeDiff(this._model.original.resource, this._model.modified.resource);

		if (token.isCancellationRequested) {
			// after await the editor might be disposed.
			return;
		}

		NotebookTextDiffEditor.prettyChanges(this._model, diffResult.cellsDiff);
		const { viewModels, firstChangeIndex } = NotebookTextDiffEditor.computeDiff(this.instantiationService, this.configurationService, this._model, this._eventDispatcher!, diffResult);
		const isSame = this._isViewModelTheSame(viewModels);

		if (!isSame) {
			this._originalWebview?.removeInsets([...this._originalWebview?.insetMapping.keys()]);
			this._modifiedWebview?.removeInsets([...this._modifiedWebview?.insetMapping.keys()]);
			this._setViewModel(viewModels);
		}

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

		if (this._revealFirst && firstChangeIndex !== -1 && firstChangeIndex < this._list.length) {
			this._revealFirst = false;
			this._list.setFocus([firstChangeIndex]);
			this._list.reveal(firstChangeIndex, 0.3);
		}

		if (selections) {
			this._list.setFocus(selections);
		}
	}