Skip to content

Commit e2e9e8a

Browse files
committed
fix #199736
1 parent 6435e38 commit e2e9e8a

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/vs/workbench/services/configuration/browser/configurationService.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class WorkspaceService extends Disposable implements IWorkbenchConfigurat
104104
private readonly configurationRegistry: IConfigurationRegistry;
105105

106106
private instantiationService: IInstantiationService | undefined;
107-
private configurationEditing: ConfigurationEditing | undefined;
107+
private configurationEditing: Promise<ConfigurationEditing> | undefined;
108108

109109
constructor(
110110
{ remoteAuthority, configurationCache }: { remoteAuthority?: string; configurationCache: IConfigurationCache },
@@ -1030,8 +1030,8 @@ export class WorkspaceService extends Disposable implements IWorkbenchConfigurat
10301030
}
10311031

10321032
// Use same instance of ConfigurationEditing to make sure all writes go through the same queue
1033-
this.configurationEditing = this.configurationEditing ?? this.instantiationService.createInstance(ConfigurationEditing, (await this.remoteAgentService.getEnvironment())?.settingsPath ?? null);
1034-
await this.configurationEditing.writeConfiguration(editableConfigurationTarget, { key, value }, { scopes: overrides, ...options });
1033+
this.configurationEditing = this.configurationEditing ?? this.createConfigurationEditingService(this.instantiationService);
1034+
await (await this.configurationEditing).writeConfiguration(editableConfigurationTarget, { key, value }, { scopes: overrides, ...options });
10351035
switch (editableConfigurationTarget) {
10361036
case EditableConfigurationTarget.USER_LOCAL:
10371037
if (this.applicationConfiguration && this.isSettingAppliedForAllProfiles(key)) {
@@ -1053,6 +1053,11 @@ export class WorkspaceService extends Disposable implements IWorkbenchConfigurat
10531053
}
10541054
}
10551055

1056+
private async createConfigurationEditingService(instantiationService: IInstantiationService): Promise<ConfigurationEditing> {
1057+
const remoteSettingsResource = (await this.remoteAgentService.getEnvironment())?.settingsPath ?? null;
1058+
return instantiationService.createInstance(ConfigurationEditing, remoteSettingsResource);
1059+
}
1060+
10561061
private getConfigurationModelForEditableConfigurationTarget(target: EditableConfigurationTarget, resource?: URI | null): ConfigurationModel | undefined {
10571062
switch (target) {
10581063
case EditableConfigurationTarget.USER_LOCAL: return this._configuration.localUserConfiguration;

0 commit comments

Comments
 (0)