Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: not applicable <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.79.0-insider OS Version: Windows 11 x64 Steps to Reproduce: an extension that implements a FileSystemProvider and serves a file containing a setting. a workspace that uses this FSP. that the setting has no effect until the workspace is reloaded. I will prepare a branch of fsprovider-sample to demonstrate the issue.
Repro steps: project () and VSIX (). an empty profile and install the VSIX into it. no folder or workspace open, run . Explorer find and open that though this specifies a font size of 24 it is displayed in the default font size. and observe that the font size is now correct. !
/assign I will submit a PR to fix this.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
/verified

Discussion:
const application = await this.reloadApplicationConfiguration(true); const { local, remote } = await this.reloadUserConfiguration(); await this.reloadWorkspaceConfiguration(); <del> await this.loadConfiguration(application, local, remote); </del> <ins> await this.loadConfiguration(application, local, remote, true); </ins> return; }

case ConfigurationTarget.USER: { const { local, remote } = await this.reloadUserConfiguration(); <del> await this.loadConfiguration(this._configuration.applicationConfiguration, local, remote); </del> <ins> await this.loadConfiguration(this._configuration.applicationConfiguration, local, remote, true); </ins> return; } case ConfigurationTarget.USER_LOCAL:

async initialize(arg: IAnyWorkspaceIdentifier): Promise<void> { mark('code/willInitWorkspaceService'); <ins> const trigger = this.initialized; this.initialized = false; </ins> const workspace = await this.createWorkspace(arg); <del> await this.updateWorkspaceAndInitializeConfiguration(workspace); </del> <ins> await this.updateWorkspaceAndInitializeConfiguration(workspace, trigger); </ins> this.checkAndMarkWorkspaceComplete(false); mark('code/didInitWorkspaceService');

} } <del> private async updateWorkspaceAndInitializeConfiguration(workspace: Workspace): Promise<void> { </del> <ins> private async updateWorkspaceAndInitializeConfiguration(workspace: Workspace, trigger: boolean): Promise<void> { </ins> const hasWorkspaceBefore = !!this.workspace; let previousState: WorkbenchState | undefined; let previousWorkspacePath: string | undefined;

this.workspace = workspace; } <del> await this.initializeConfiguration(); </del> <ins> await this.initializeConfiguration(trigger); </ins> // Trigger changes after configuration initialization so that configuration is up to date. if (hasWorkspaceBefore) {

return result; } <del> private async initializeConfiguration(): Promise<void> { </del> <ins> private async initializeConfiguration(trigger: boolean): Promise<void> { </ins> await this.defaultConfiguration.initialize(); const [, application, user] = await Promise.all([

]); mark('code/willInitWorkspaceConfiguration'); <del> await this.loadConfiguration(application, user.local, user.remote); </del> <ins> await this.loadConfiguration(application, user.local, user.remote, trigger); </ins> mark('code/didInitWorkspaceConfiguration'); }

return this.onWorkspaceFolderConfigurationChanged(folder); } <del> private async loadConfiguration(applicationConfigurationModel: ConfigurationModel, userConfigurationModel: ConfigurationModel, remoteUserConfigurationModel: ConfigurationModel): Promise<void> { </del> <ins> private async loadConfiguration(applicationConfigurationModel: ConfigurationModel, userConfigurationModel: ConfigurationModel, remoteUserConfigurationModel: ConfigurationModel, trigger: boolean): Promise<void> { </ins> // reset caches this.cachedFolderConfigs = new ResourceMap<FolderConfiguration>();

const currentConfiguration = this._configuration; this._configuration = new Configuration(this.defaultConfiguration.configurationModel, this.policyConfiguration.configurationModel, applicationConfigurationModel, userConfigurationModel, remoteUserConfigurationModel, workspaceConfiguration, folderConfigurationModels, new ConfigurationModel(), new ResourceMap<ConfigurationModel>(), this.workspace); <del> if (this.initialized) { </del> <ins> this.initialized = true; if (trigger) { </ins> const change = this._configuration.compare(currentConfiguration); this.triggerConfigurationChange(change, { data: currentConfiguration.toData(), workspace: this.workspace }, ConfigurationTarget.WORKSPACE); <del> } else { this.initialized = true; </del> } this.updateRestrictedSettings();

} } const [localUser, application] = await Promise.all(promises); <del> await this.loadConfiguration(application ?? this._configuration.applicationConfiguration, localUser, this._configuration.remoteUserConfiguration); </del> <ins> await this.loadConfiguration(application ?? this._configuration.applicationConfiguration, localUser, this._configuration.remoteUserConfiguration, true); </ins> })()); }