diff --git a/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.ts index d128b85c182..607a104123e 100644 --- a/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.ts @@ -92,7 +92,7 @@ export class DiffEditorWidget extends DelegatingEditor implements IDiffEditor { codeEditorWidgetOptions: IDiffCodeEditorWidgetOptions, @IContextKeyService private readonly _parentContextKeyService: IContextKeyService, @IInstantiationService private readonly _parentInstantiationService: IInstantiationService, - @ICodeEditorService codeEditorService: ICodeEditorService, + @ICodeEditorService private readonly _codeEditorService: ICodeEditorService, @IAccessibilitySignalService private readonly _accessibilitySignalService: IAccessibilitySignalService, @IEditorProgressService private readonly _editorProgressService: IEditorProgressService, ) { @@ -180,7 +180,7 @@ export class DiffEditorWidget extends DelegatingEditor implements IDiffEditor { }); this._diffValue = this._diffModel.map((m, r) => m?.diff.read(r)); this.onDidUpdateDiff = Event.fromObservableLight(this._diffValue); - codeEditorService.willCreateDiffEditor(); + this._codeEditorService.willCreateDiffEditor(); this._contextKeyService.createKey('isInDiffEditor', true); @@ -344,7 +344,10 @@ export class DiffEditorWidget extends DelegatingEditor implements IDiffEditor { this._createDiffEditorContributions(); - codeEditorService.addDiffEditor(this); + this._codeEditorService.addDiffEditor(this); + this._register(toDisposable(() => { + this._codeEditorService.removeDiffEditor(this); + })); this._gutter = derivedDisposable(this, reader => { return this._options.shouldRenderGutterMenu.read(reader)