Skip to content

Commit 622f083

Browse files
authored
Merge pull request microsoft#75286 from mjbvz/mutable-disposable-in-code-lens-controller
Use MutableDisposable in codeLensController
2 parents 8de74d9 + 15f6609 commit 622f083

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

src/vs/editor/contrib/codelens/codelensController.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { CancelablePromise, RunOnceScheduler, createCancelablePromise, disposableTimeout } from 'vs/base/common/async';
77
import { onUnexpectedError, onUnexpectedExternalError } from 'vs/base/common/errors';
8-
import { dispose, toDisposable, DisposableStore } from 'vs/base/common/lifecycle';
8+
import { toDisposable, DisposableStore, MutableDisposable } from 'vs/base/common/lifecycle';
99
import { StableEditorScrollState } from 'vs/editor/browser/core/editorState';
1010
import * as editorBrowser from 'vs/editor/browser/editorBrowser';
1111
import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
@@ -29,7 +29,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
2929
private readonly _localToDispose = new DisposableStore();
3030
private _lenses: CodeLensWidget[] = [];
3131
private _currentFindCodeLensSymbolsPromise: CancelablePromise<CodeLensModel> | undefined;
32-
private _currentCodeLensModel: CodeLensModel | undefined;
32+
private readonly _currentCodeLensModel = new MutableDisposable<CodeLensModel>();
3333
private _modelChangeCounter: number = 0;
3434
private _currentResolveCodeLensSymbolsPromise: CancelablePromise<any> | undefined;
3535
private _detectVisibleLenses: RunOnceScheduler;
@@ -58,6 +58,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
5858
dispose(): void {
5959
this._localDispose();
6060
this._globalToDispose.dispose();
61+
this._currentCodeLensModel.dispose();
6162
}
6263

6364
private _localDispose(): void {
@@ -71,7 +72,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
7172
this._currentResolveCodeLensSymbolsPromise = undefined;
7273
}
7374
this._localToDispose.clear();
74-
dispose(this._currentCodeLensModel);
75+
this._currentCodeLensModel.clear();
7576
}
7677

7778
getId(): string {
@@ -132,9 +133,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
132133

133134
this._currentFindCodeLensSymbolsPromise.then(result => {
134135
if (counterValue === this._modelChangeCounter) { // only the last one wins
135-
// lifecycle -> dispose old model
136-
dispose(this._currentCodeLensModel);
137-
this._currentCodeLensModel = result;
136+
this._currentCodeLensModel.value = result;
138137

139138
// cache model to reduce flicker
140139
this._codeLensCache.put(model, result);

0 commit comments

Comments
 (0)