Add indicator, fixes #148672 (#149294)

* Add indicator, fixes #148672

This PR adds a default override indicator to extension-contributed
language-specific default setting overrides.

* Remove indicator from language tag settings
This commit is contained in:
Raymond Zhao 2022-05-19 08:12:29 -07:00 committed by GitHub
parent 0db3cee2a4
commit a3243b282c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 7 deletions

View file

@ -18,8 +18,9 @@ import { FOLDER_SCOPES, WORKSPACE_SCOPES, REMOTE_MACHINE_SCOPES, LOCAL_MACHINE_S
import { IJSONSchema } from 'vs/base/common/jsonSchema';
import { Disposable } from 'vs/base/common/lifecycle';
import { Emitter } from 'vs/base/common/event';
import { ConfigurationScope, EditPresentationTypes } from 'vs/platform/configuration/common/configurationRegistry';
import { ConfigurationScope, EditPresentationTypes, Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry';
import { ILanguageService } from 'vs/editor/common/languages/language';
import { Registry } from 'vs/platform/registry/common/platform';
export const ONLINE_SERVICES_SETTING_TAG = 'usesOnlineServices';
@ -221,6 +222,12 @@ export class SettingsTreeSettingElement extends SettingsTreeElement {
this.value = displayValue;
this.scopeValue = isConfigured && overrideValues[targetSelector];
this.defaultValue = overrideValues.defaultValue ?? inspected.defaultValue;
const registryValues = Registry.as<IConfigurationRegistry>(Extensions.Configuration).getConfigurationDefaultsOverrides();
const overrideValueSource = registryValues.get(`[${languageSelector}]`)?.valuesSources?.get(this.setting.key);
if (overrideValueSource) {
this.setting.defaultValueSource = overrideValueSource;
}
} else {
this.value = displayValue;
this.scopeValue = isConfigured && inspected[targetSelector];

View file

@ -707,17 +707,19 @@ export class DefaultSettings extends Disposable {
});
}
const registeredConfigurationProp = prop as IRegisteredConfigurationPropertySchema;
let defaultValueSource: string | IExtensionInfo | undefined;
if (registeredConfigurationProp && registeredConfigurationProp.defaultValueSource) {
defaultValueSource = registeredConfigurationProp.defaultValueSource;
}
let isLanguageTagSetting = false;
if (OVERRIDE_PROPERTY_REGEX.test(key)) {
isLanguageTagSetting = true;
}
let defaultValueSource: string | IExtensionInfo | undefined;
if (!isLanguageTagSetting) {
const registeredConfigurationProp = prop as IRegisteredConfigurationPropertySchema;
if (registeredConfigurationProp && registeredConfigurationProp.defaultValueSource) {
defaultValueSource = registeredConfigurationProp.defaultValueSource;
}
}
result.push({
key,
value,