diff --git a/src/vs/platform/configuration/common/configurationModels.ts b/src/vs/platform/configuration/common/configurationModels.ts index fcc05810bdb9d6c87807d9cab9b6cebafd831893..c77ec09812854b2f95ab65f5fbe7f17a4817a338 100644 --- a/src/vs/platform/configuration/common/configurationModels.ts +++ b/src/vs/platform/configuration/common/configurationModels.ts @@ -219,7 +219,6 @@ export class Configuration { private _globalConfiguration: ConfigurationModel; private _workspaceConsolidatedConfiguration: ConfigurationModel; protected _foldersConsolidatedConfigurations: StrictResourceMap; - protected _memoryConsolidatedConfigurations: StrictResourceMap; constructor(protected _defaults: ConfigurationModel, protected _user: ConfigurationModel, @@ -245,18 +244,18 @@ export class Configuration { protected merge(): void { this._globalConfiguration = this._defaults.merge(this._user); - this._workspaceConsolidatedConfiguration = this._globalConfiguration.merge(this._workspaceConfiguration); + this.updateWorkspaceConsolidateConfiguration(); this._foldersConsolidatedConfigurations = new StrictResourceMap(); for (const folder of this.folders.keys()) { this.mergeFolder(folder); } } - protected mergeFolder(folder: URI) { - this._foldersConsolidatedConfigurations.set(folder, this._workspaceConsolidatedConfiguration.merge(this.folders.get(folder))); + private updateWorkspaceConsolidateConfiguration() { + this._workspaceConsolidatedConfiguration = this._globalConfiguration.merge(this._workspaceConfiguration).merge(this._memoryConfiguration); } - protected mergeMemory(folder: URI) { + protected mergeFolder(folder: URI) { this._foldersConsolidatedConfigurations.set(folder, this._workspaceConsolidatedConfiguration.merge(this.folders.get(folder))); } @@ -281,11 +280,16 @@ export class Configuration { } else { memoryConfiguration = this._memoryConfiguration; } + if (value === void 0) { memoryConfiguration.removeValue(key); } else { memoryConfiguration.setValue(key, value); } + + if (!overrides.resource) { + this.updateWorkspaceConsolidateConfiguration(); + } } lookup(key: string, overrides: IConfigurationOverrides = {}): { @@ -335,7 +339,7 @@ export class Configuration { } if (!resource) { - return this._workspaceConsolidatedConfiguration.merge(this._memoryConfiguration); + return this._workspaceConsolidatedConfiguration; } let consolidateConfiguration = this._workspaceConsolidatedConfiguration;