diff --git a/src/vs/platform/configuration/common/configurationModels.ts b/src/vs/platform/configuration/common/configurationModels.ts index c6928a8ac9b..5993f0fddde 100644 --- a/src/vs/platform/configuration/common/configurationModels.ts +++ b/src/vs/platform/configuration/common/configurationModels.ts @@ -354,6 +354,8 @@ export class UserSettings extends Disposable { super(); this.parser = new ConfigurationModelParser(this.userSettingsResource.toString(), this.scopes); this._register(this.fileService.watch(extUri.dirname(this.userSettingsResource))); + // Also listen to the resource incase the resource is a symlink - https://github.com/microsoft/vscode/issues/118134 + this._register(this.fileService.watch(this.userSettingsResource)); this._register(Event.filter(this.fileService.onDidFilesChange, e => e.contains(this.userSettingsResource))(() => this._onDidChange.fire())); } diff --git a/src/vs/workbench/services/configuration/browser/configuration.ts b/src/vs/workbench/services/configuration/browser/configuration.ts index 0c26ef45eb8..d4ce3c91f3f 100644 --- a/src/vs/workbench/services/configuration/browser/configuration.ts +++ b/src/vs/workbench/services/configuration/browser/configuration.ts @@ -96,7 +96,12 @@ class FileServiceBasedConfiguration extends Disposable { ) { super(); this.allResources = [this.settingsResource, ...this.standAloneConfigurationResources.map(([, resource]) => resource)]; - this._register(combinedDisposable(...this.allResources.map(resource => this.fileService.watch(uriIdentityService.extUri.dirname(resource))))); + this._register(combinedDisposable(...this.allResources.map(resource => combinedDisposable( + this.fileService.watch(uriIdentityService.extUri.dirname(resource)), + // Also listen to the resource incase the resource is a symlink - https://github.com/microsoft/vscode/issues/118134 + this.fileService.watch(resource) + )))); + this._folderSettingsModelParser = new ConfigurationModelParser(name, this.scopes); this._standAloneConfigurations = []; this._cache = new ConfigurationModel(); diff --git a/src/vs/workbench/services/keybinding/browser/keybindingService.ts b/src/vs/workbench/services/keybinding/browser/keybindingService.ts index 4bb3a427e73..728be660d35 100644 --- a/src/vs/workbench/services/keybinding/browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/browser/keybindingService.ts @@ -677,6 +677,8 @@ class UserKeybindings extends Disposable { super(); this._register(fileService.watch(dirname(keybindingsResource))); + // Also listen to the resource incase the resource is a symlink - https://github.com/microsoft/vscode/issues/118134 + this._register(this.fileService.watch(this.keybindingsResource)); this.reloadConfigurationScheduler = this._register(new RunOnceScheduler(() => this.reload().then(changed => { if (changed) { this._onDidChange.fire();