Skip to content

Commit 93c91eb

Browse files
committed
microsoft#26707 do not use overridable
1 parent 1a1cbf4 commit 93c91eb

4 files changed

Lines changed: 25 additions & 34 deletions

File tree

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,14 +216,11 @@ export function compare(from: IConfigurationModel | undefined, to: IConfiguratio
216216

217217
export function toOverrides(raw: any, conflictReporter: (message: string) => void): IOverrides[] {
218218
const overrides: IOverrides[] = [];
219-
const configurationProperties = Registry.as<IConfigurationRegistry>(Extensions.Configuration).getConfigurationProperties();
220219
for (const key of Object.keys(raw)) {
221220
if (OVERRIDE_PROPERTY_PATTERN.test(key)) {
222221
const overrideRaw: any = {};
223222
for (const keyInOverrideRaw in raw[key]) {
224-
if (configurationProperties[keyInOverrideRaw] && configurationProperties[keyInOverrideRaw].overridable) {
225-
overrideRaw[keyInOverrideRaw] = raw[key][keyInOverrideRaw];
226-
}
223+
overrideRaw[keyInOverrideRaw] = raw[key][keyInOverrideRaw];
227224
}
228225
overrides.push({
229226
identifiers: [overrideIdentifierFromKey(key).trim()],

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,8 @@ class ConfigurationRegistry implements IConfigurationRegistry {
296296
this.updateOverridePropertyPatternKey();
297297
}
298298

299-
private validateAndRegisterProperties(configuration: IConfigurationNode, validate: boolean = true, scope: ConfigurationScope = ConfigurationScope.WINDOW, overridable: boolean = false): string[] {
299+
private validateAndRegisterProperties(configuration: IConfigurationNode, validate: boolean = true, scope: ConfigurationScope = ConfigurationScope.WINDOW): string[] {
300300
scope = types.isUndefinedOrNull(configuration.scope) ? scope : configuration.scope;
301-
overridable = configuration.overridable || overridable;
302301
let propertyKeys: string[] = [];
303302
let properties = configuration.properties;
304303
if (properties) {
@@ -315,11 +314,6 @@ class ConfigurationRegistry implements IConfigurationRegistry {
315314
if (types.isUndefined(defaultValue)) {
316315
property.default = getDefaultValue(property.type);
317316
}
318-
// Inherit overridable property from parent
319-
if (overridable) {
320-
property.overridable = true;
321-
}
322-
323317
if (OVERRIDE_PROPERTY_PATTERN.test(key)) {
324318
property.scope = undefined; // No scope for overridable properties `[${identifier}]`
325319
} else {
@@ -342,7 +336,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
342336
let subNodes = configuration.allOf;
343337
if (subNodes) {
344338
for (let node of subNodes) {
345-
propertyKeys.push(...this.validateAndRegisterProperties(node, validate, scope, overridable));
339+
propertyKeys.push(...this.validateAndRegisterProperties(node, validate, scope));
346340
}
347341
}
348342
return propertyKeys;

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

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -234,23 +234,6 @@ suite('ConfigurationModel', () => {
234234

235235
suite('CustomConfigurationModel', () => {
236236

237-
suiteSetup(() => {
238-
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
239-
'id': 'a',
240-
'order': 1,
241-
'title': 'a',
242-
'type': 'object',
243-
'properties': {
244-
'a': {
245-
'description': 'a',
246-
'type': 'boolean',
247-
'default': true,
248-
'overridable': true
249-
}
250-
}
251-
});
252-
});
253-
254237
test('simple merge using models', () => {
255238
let base = new ConfigurationModelParser('base');
256239
base.parseContent(JSON.stringify({ 'a': 1, 'b': 2 }));
@@ -346,6 +329,19 @@ suite('CustomConfigurationModel', () => {
346329
});
347330

348331
test('Test registering the same property again', () => {
332+
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
333+
'id': 'a',
334+
'order': 1,
335+
'title': 'a',
336+
'type': 'object',
337+
'properties': {
338+
'a': {
339+
'description': 'a',
340+
'type': 'boolean',
341+
'default': true,
342+
}
343+
}
344+
});
349345
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
350346
'id': 'a',
351347
'order': 1,

src/vs/workbench/services/configuration/test/common/configurationModels.test.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ suite('FolderSettingsModelParser', () => {
2727
'type': 'string',
2828
'default': 'isSet',
2929
scope: ConfigurationScope.RESOURCE,
30-
overridable: true
30+
},
31+
'FolderSettingsModelParser.resourceLanguage': {
32+
'type': 'string',
33+
'default': 'isSet',
34+
scope: ConfigurationScope.RESOURCE_LANGUAGE,
3135
},
3236
'FolderSettingsModelParser.application': {
3337
'type': 'string',
@@ -59,12 +63,12 @@ suite('FolderSettingsModelParser', () => {
5963
assert.deepEqual(testObject.configurationModel.contents, { 'FolderSettingsModelParser': { 'resource': 'resource' } });
6064
});
6165

62-
test('parse overridable resource settings', () => {
63-
const testObject = new ConfigurationModelParser('settings', [ConfigurationScope.RESOURCE]);
66+
test('parse resource and resource language settings', () => {
67+
const testObject = new ConfigurationModelParser('settings', [ConfigurationScope.RESOURCE, ConfigurationScope.RESOURCE_LANGUAGE]);
6468

65-
testObject.parseContent(JSON.stringify({ '[json]': { 'FolderSettingsModelParser.window': 'window', 'FolderSettingsModelParser.resource': 'resource', 'FolderSettingsModelParser.application': 'application', 'FolderSettingsModelParser.machine': 'executable' } }));
69+
testObject.parseContent(JSON.stringify({ '[json]': { 'FolderSettingsModelParser.window': 'window', 'FolderSettingsModelParser.resource': 'resource', 'FolderSettingsModelParser.resourceLanguage': 'resourceLanguage', 'FolderSettingsModelParser.application': 'application', 'FolderSettingsModelParser.machine': 'executable' } }));
6670

67-
assert.deepEqual(testObject.configurationModel.overrides, [{ 'contents': { 'FolderSettingsModelParser': { 'resource': 'resource' } }, 'identifiers': ['json'], 'keys': ['FolderSettingsModelParser.resource'] }]);
71+
assert.deepEqual(testObject.configurationModel.overrides, [{ 'contents': { 'FolderSettingsModelParser': { 'resource': 'resource', 'resourceLanguage': 'resourceLanguage' } }, 'identifiers': ['json'], 'keys': ['FolderSettingsModelParser.resource', 'FolderSettingsModelParser.resourceLanguage'] }]);
6872
});
6973

7074
test('reprocess folder settings excludes application and machine setting', () => {

0 commit comments

Comments
 (0)