From feae07708376d699f3465c6883826c4f96587cbd Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Wed, 29 Jul 2026 13:32:53 -0700 Subject: [PATCH 1/2] Reduce settings change noise --- Extension/src/LanguageServer/extension.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 1f1d58477..55a5b28d7 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -293,7 +293,9 @@ export function updateLanguageConfigurations(): void { async function onDidChangeSettings(event: vscode.ConfigurationChangeEvent): Promise { clients.forEach(client => { if (client instanceof DefaultClient) { - void client.onDidChangeSettings(event).catch(logAndReturn.undefined); + if (['C_Cpp', 'files', 'editor', 'search', 'workbench'].some(section => event.affectsConfiguration(section, client.RootUri))) { + void client.onDidChangeSettings(event).catch(logAndReturn.undefined); + } } }); } From 191a47e9ac1863536fd5d6edc43fd9512493d688 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 30 Jul 2026 11:05:18 -0700 Subject: [PATCH 2/2] address PR feedback --- Extension/src/LanguageServer/extension.ts | 4 ++-- Extension/src/LanguageServer/settings.ts | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 55a5b28d7..e1857ba9e 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -38,7 +38,7 @@ import { CppConfigurationLanguageModelTool } from './lmTool'; import { getLocaleId } from './localization'; import { PersistentState } from './persistentState'; import { NodeType, TreeNode } from './referencesModel'; -import { CppSettings } from './settings'; +import { CppSettings, trackedSections } from './settings'; import { LanguageStatusUI, getUI } from './ui'; import { makeLspRange, rangeEquals, showInstallCompilerWalkthrough } from './utils'; @@ -293,7 +293,7 @@ export function updateLanguageConfigurations(): void { async function onDidChangeSettings(event: vscode.ConfigurationChangeEvent): Promise { clients.forEach(client => { if (client instanceof DefaultClient) { - if (['C_Cpp', 'files', 'editor', 'search', 'workbench'].some(section => event.affectsConfiguration(section, client.RootUri))) { + if (trackedSections.some(section => event.affectsConfiguration(section, client.RootUri))) { void client.onDidChangeSettings(event).catch(logAndReturn.undefined); } } diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 71f6730bd..502144300 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -32,6 +32,10 @@ export interface Associations { [key: string]: string; } +// The settings sections that we provide accessors for. +// This is used to filter out settings changed events that do not impact the extension. +export const trackedSections: string[] = ['C_Cpp', 'editor', 'files', 'search', 'workbench']; + // Settings that can be undefined have default values assigned in the native code or are meant to return undefined. export interface WorkspaceFolderSettingsParams { uri: string | undefined;