Skip to content

Commit

Permalink
fix: stricter cache for configs
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed Dec 23, 2022
1 parent 8e5cec4 commit 6220c4b
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions packages/language-server/src/utils/configurationHost.ts
Expand Up @@ -4,10 +4,10 @@ import { ConfigurationHost } from '@volar/language-service';
export function createConfigurationHost(params: vscode.InitializeParams, connection: vscode.Connection): ConfigurationHost & { ready(): void; } {

const callbacks: Function[] = [];
let cache: Record<string, any> = {};
const cache = new Map<string, any>();

connection.onDidChangeConfiguration(async () => {
cache = {};
cache.clear();
for (const cb of callbacks) {
cb();
}
Expand All @@ -21,8 +21,10 @@ export function createConfigurationHost(params: vscode.InitializeParams, connect
},
async getConfiguration(section, scopeUri) {
if (!scopeUri && params.capabilities.workspace?.didChangeConfiguration) {
cache[section] ??= await getConfigurationWorker(section, scopeUri);
return cache[section];
if (!cache.has(section)) {
cache.set(section, await getConfigurationWorker(section, scopeUri));
}
return cache.get(section);
}
return await getConfigurationWorker(section, scopeUri);
},
Expand Down

0 comments on commit 6220c4b

Please sign in to comment.