Skip to content

Commit 96a6b40

Browse files
authored
fix: compound language settings serialize incorrectly (#252539)
1 parent ee0fdc8 commit 96a6b40

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

src/vs/platform/configuration/common/configuration.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,5 +347,8 @@ export function merge(base: any, add: any, overwrite: boolean): void {
347347
}
348348

349349
export function getLanguageTagSettingPlainKey(settingKey: string) {
350-
return settingKey.replace(/[\[\]]/g, '');
350+
return settingKey
351+
.replace(/^\[/, '')
352+
.replace(/]$/g, '')
353+
.replace(/\]\[/g, ', ');
351354
}

src/vs/platform/configuration/common/configurationRegistry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ class ConfigurationRegistry extends Disposable implements IConfigurationRegistry
472472
const property: IRegisteredConfigurationPropertySchema = {
473473
type: 'object',
474474
default: newDefaultOverride.value,
475-
description: nls.localize('defaultLanguageConfiguration.description', "Configure settings to be overridden for the {0} language.", getLanguageTagSettingPlainKey(key)),
475+
description: nls.localize('defaultLanguageConfiguration.description', "Configure settings to be overridden for {0}.", getLanguageTagSettingPlainKey(key)),
476476
$ref: resourceLanguageSettingsSchemaId,
477477
defaultDefaultValue: newDefaultOverride.value,
478478
source,

src/vs/workbench/contrib/preferences/browser/settingsTree.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@ export class SettingComplexRenderer extends AbstractSettingRenderer implements I
11791179

11801180
const onClickOrKeydown = (e: UIEvent) => {
11811181
if (isLanguageTagSetting) {
1182-
this._onApplyFilter.fire(`@${LANGUAGE_SETTING_TAG}${plainKey}`);
1182+
this._onApplyFilter.fire(`@${LANGUAGE_SETTING_TAG}${plainKey.replaceAll(' ', '')}`);
11831183
} else {
11841184
this._onDidOpenSettings.fire(dataElement.setting.key);
11851185
}

src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { escapeRegExpCharacters, isFalsyOrWhitespace } from '../../../../base/co
1111
import { isUndefinedOrNull } from '../../../../base/common/types.js';
1212
import { URI } from '../../../../base/common/uri.js';
1313
import { ILanguageService } from '../../../../editor/common/languages/language.js';
14-
import { ConfigurationTarget, IConfigurationValue } from '../../../../platform/configuration/common/configuration.js';
14+
import { ConfigurationTarget, getLanguageTagSettingPlainKey, IConfigurationValue } from '../../../../platform/configuration/common/configuration.js';
1515
import { ConfigurationDefaultValueSource, ConfigurationScope, EditPresentationTypes, Extensions, IConfigurationRegistry } from '../../../../platform/configuration/common/configurationRegistry.js';
1616
import { IProductService } from '../../../../platform/product/common/productService.js';
1717
import { Registry } from '../../../../platform/registry/common/platform.js';
@@ -719,7 +719,7 @@ export function settingKeyToDisplayFormat(key: string, groupId: string = '', isL
719719
category = wordifyKey(category);
720720

721721
if (isLanguageTagSetting) {
722-
key = key.replace(/[\[\]]/g, '');
722+
key = getLanguageTagSettingPlainKey(key);
723723
key = '$(bracket) ' + key;
724724
}
725725

0 commit comments

Comments
 (0)