Skip to content

Commit e877519

Browse files
committed
1 parent 72860a0 commit e877519

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

src/vs/workbench/contrib/preferences/browser/preferencesEditor.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { Disposable } from 'vs/base/common/lifecycle';
6+
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
77
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
88
import { ConfigurationTarget } from 'vs/platform/configuration/common/configuration';
99
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
@@ -15,7 +15,8 @@ import { SettingsEditorModel } from 'vs/workbench/services/preferences/common/pr
1515
export class SettingsEditorContribution extends Disposable {
1616
static readonly ID: string = 'editor.contrib.settings';
1717

18-
private _currentRenderer: IPreferencesRenderer | undefined;
18+
private currentRenderer: IPreferencesRenderer | undefined;
19+
private readonly disposables = this._register(new DisposableStore());
1920

2021
constructor(
2122
private readonly editor: ICodeEditor,
@@ -30,24 +31,25 @@ export class SettingsEditorContribution extends Disposable {
3031
}
3132

3233
private async _createPreferencesRenderer(): Promise<void> {
33-
this._currentRenderer?.dispose();
34-
this._currentRenderer = undefined;
34+
this.disposables.clear();
35+
this.currentRenderer = undefined;
3536

3637
const model = this.editor.getModel();
3738
if (model) {
3839
const settingsModel = await this.preferencesService.createPreferencesEditorModel(model.uri);
3940
if (settingsModel instanceof SettingsEditorModel && this.editor.getModel()) {
41+
this.disposables.add(settingsModel);
4042
switch (settingsModel.configurationTarget) {
4143
case ConfigurationTarget.WORKSPACE:
42-
this._currentRenderer = this.instantiationService.createInstance(WorkspaceSettingsRenderer, this.editor, settingsModel);
44+
this.currentRenderer = this.disposables.add(this.instantiationService.createInstance(WorkspaceSettingsRenderer, this.editor, settingsModel));
4345
break;
4446
default:
45-
this._currentRenderer = this.instantiationService.createInstance(UserSettingsRenderer, this.editor, settingsModel);
47+
this.currentRenderer = this.disposables.add(this.instantiationService.createInstance(UserSettingsRenderer, this.editor, settingsModel));
4648
break;
4749
}
4850
}
4951

50-
this._currentRenderer?.render();
52+
this.currentRenderer?.render();
5153
}
5254
}
5355
}

src/vs/workbench/contrib/preferences/browser/preferencesRenderers.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,6 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend
134134
return !!(editableSetting && this.editSettingActionRenderer.activateOnSetting(editableSetting));
135135
}
136136

137-
public override dispose(): void {
138-
this.preferencesModel.dispose();
139-
}
140137
}
141138

142139
export class WorkspaceSettingsRenderer extends UserSettingsRenderer implements IPreferencesRenderer {

0 commit comments

Comments
 (0)