From f9134083e5de152e051e1603fcd8815a7bedf71a Mon Sep 17 00:00:00 2001 From: rebornix Date: Wed, 9 Dec 2020 11:44:25 -0800 Subject: [PATCH] delay cell text model disposing. --- .../notebook/browser/diff/cellComponents.ts | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/notebook/browser/diff/cellComponents.ts b/src/vs/workbench/contrib/notebook/browser/diff/cellComponents.ts index 668cb4d2502..02e50301db8 100644 --- a/src/vs/workbench/contrib/notebook/browser/diff/cellComponents.ts +++ b/src/vs/workbench/contrib/notebook/browser/diff/cellComponents.ts @@ -28,6 +28,7 @@ import { INotificationService } from 'vs/platform/notification/common/notificati import { IAction } from 'vs/base/common/actions'; import { createAndFillInActionBarActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { Delayer } from 'vs/base/common/async'; const fixedEditorOptions: IEditorOptions = { padding: { @@ -1138,8 +1139,24 @@ export class ModifiedCell extends AbstractCellRenderer { const modifiedRef = await modifiedCell.resolveTextModelRef(); const textModel = originalRef.object.textEditorModel; const modifiedTextModel = modifiedRef.object.textEditorModel; - this._register(originalRef); - this._register(modifiedRef); + this._register({ + dispose: () => { + const delayer = new Delayer(5000); + delayer.trigger(() => { + originalRef.dispose(); + delayer.dispose(); + }); + } + }); + this._register({ + dispose: () => { + const delayer = new Delayer(5000); + delayer.trigger(() => { + modifiedRef.dispose(); + delayer.dispose(); + }); + } + }); this._editor!.setModel({ original: textModel, -- GitLab