From 1a1cbf4799f498df10e0b2dda6c75317ea343e66 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 16 Dec 2019 10:44:14 +0100 Subject: [PATCH] #26707 Use resource language scope instead of override property --- .../common/config/commonEditorConfig.ts | 3 +- .../common/configurationRegistry.ts | 51 ++++------------- .../api/common/configurationExtensionPoint.ts | 4 +- .../browser/parts/editor/breadcrumbs.ts | 56 +++++++++---------- .../files/browser/files.contribution.ts | 24 +++----- .../outline/browser/outline.contribution.ts | 38 ++++++------- 6 files changed, 70 insertions(+), 106 deletions(-) diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index f9f34b493f8..cee6665029f 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -432,8 +432,7 @@ export const editorConfigurationBaseNode = Object.freeze({ order: 5, type: 'object', title: nls.localize('editorConfigurationTitle', "Editor"), - overridable: true, - scope: ConfigurationScope.RESOURCE, + scope: ConfigurationScope.RESOURCE_LANGUAGE, }); const configurationRegistry = Registry.as(Extensions.Configuration); diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 64fac4d9c64..7c4615473be 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -147,9 +147,9 @@ export const machineSettings: { properties: SettingProperties, patternProperties export const machineOverridableSettings: { properties: SettingProperties, patternProperties: SettingProperties } = { properties: {}, patternProperties: {} }; export const windowSettings: { properties: SettingProperties, patternProperties: SettingProperties } = { properties: {}, patternProperties: {} }; export const resourceSettings: { properties: SettingProperties, patternProperties: SettingProperties } = { properties: {}, patternProperties: {} }; -export const resourceLanguageSettings: { properties: SettingProperties, patternProperties: SettingProperties } = { properties: {}, patternProperties: {} }; -export const editorConfigurationSchemaId = 'vscode://schemas/settings/editor'; +export const resourceLanguageSettingsSchemaId = 'vscode://schemas/settings/resourceLanguage'; + const contributionRegistry = Registry.as(JSONExtensions.JSONContribution); class ConfigurationRegistry implements IConfigurationRegistry { @@ -158,7 +158,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { private readonly configurationContributors: IConfigurationNode[]; private readonly configurationProperties: { [qualifiedKey: string]: IJSONSchema }; private readonly excludedConfigurationProperties: { [qualifiedKey: string]: IJSONSchema }; - private readonly editorConfigurationSchema: IJSONSchema; + private readonly resourceLanguageSettingsSchema: IJSONSchema; private readonly overrideIdentifiers: string[] = []; private overridePropertyPattern: string; @@ -175,12 +175,12 @@ class ConfigurationRegistry implements IConfigurationRegistry { properties: {} }; this.configurationContributors = [this.defaultOverridesConfigurationNode]; - this.editorConfigurationSchema = { properties: {}, patternProperties: {}, additionalProperties: false, errorMessage: 'Unknown editor configuration setting', allowTrailingCommas: true, allowComments: true }; + this.resourceLanguageSettingsSchema = { properties: {}, patternProperties: {}, additionalProperties: false, errorMessage: 'Unknown editor configuration setting', allowTrailingCommas: true, allowComments: true }; this.configurationProperties = {}; this.excludedConfigurationProperties = {}; this.overridePropertyPattern = this.computeOverridePropertyPattern(); - contributionRegistry.registerSchema(editorConfigurationSchemaId, this.editorConfigurationSchema); + contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema); } public registerConfiguration(configuration: IConfigurationNode, validate: boolean = true): void { @@ -193,9 +193,9 @@ class ConfigurationRegistry implements IConfigurationRegistry { properties.push(...this.validateAndRegisterProperties(configuration, validate)); // fills in defaults this.configurationContributors.push(configuration); this.registerJSONConfiguration(configuration); - this.updateSchemaForOverrideSettingsConfiguration(configuration); }); + contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema); this._onDidSchemaChange.fire(); this._onDidUpdateConfiguration.fire(properties); } @@ -208,7 +208,6 @@ class ConfigurationRegistry implements IConfigurationRegistry { properties.push(key); delete this.configurationProperties[key]; - delete this.editorConfigurationSchema.properties![key]; // Delete from schema delete allSettings.properties[key]; @@ -226,11 +225,8 @@ class ConfigurationRegistry implements IConfigurationRegistry { delete windowSettings.properties[key]; break; case ConfigurationScope.RESOURCE: - delete resourceSettings.properties[key]; - break; case ConfigurationScope.RESOURCE_LANGUAGE: delete resourceSettings.properties[key]; - delete resourceLanguageSettings.properties[key]; break; } } @@ -247,7 +243,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { } } - contributionRegistry.registerSchema(editorConfigurationSchemaId, this.editorConfigurationSchema); + contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema); this._onDidSchemaChange.fire(); this._onDidUpdateConfiguration.fire(properties); } @@ -263,7 +259,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { type: 'object', default: defaultValue, description: nls.localize('overrideSettings.description', "Configure editor settings to be overridden for {0} language.", key), - $ref: editorConfigurationSchemaId + $ref: resourceLanguageSettingsSchemaId }; allSettings.properties[key] = propertySchema; this.defaultOverridesConfigurationNode.properties![key] = propertySchema; @@ -365,7 +361,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { } private registerJSONConfiguration(configuration: IConfigurationNode) { - function register(configuration: IConfigurationNode) { + const register = (configuration: IConfigurationNode) => { let properties = configuration.properties; if (properties) { for (const key in properties) { @@ -388,7 +384,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { break; case ConfigurationScope.RESOURCE_LANGUAGE: resourceSettings.properties[key] = properties[key]; - resourceLanguageSettings.properties[key] = properties[key]; + this.resourceLanguageSettingsSchema.properties![key] = properties[key]; break; } } @@ -397,17 +393,10 @@ class ConfigurationRegistry implements IConfigurationRegistry { if (subNodes) { subNodes.forEach(register); } - } + }; register(configuration); } - private updateSchemaForOverrideSettingsConfiguration(configuration: IConfigurationNode): void { - if (configuration.id !== SETTINGS_OVERRRIDE_NODE_ID) { - this.update(configuration); - contributionRegistry.registerSchema(editorConfigurationSchemaId, this.editorConfigurationSchema); - } - } - private updateOverridePropertyPatternKey(): void { let patternProperties: IJSONSchema = allSettings.patternProperties[this.overridePropertyPattern]; if (!patternProperties) { @@ -415,7 +404,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { type: 'object', description: nls.localize('overrideSettings.defaultDescription', "Configure editor settings to be overridden for a language."), errorMessage: 'Unknown Identifier. Use language identifiers', - $ref: editorConfigurationSchemaId + $ref: resourceLanguageSettingsSchemaId }; } @@ -438,27 +427,11 @@ class ConfigurationRegistry implements IConfigurationRegistry { this._onDidSchemaChange.fire(); } - private update(configuration: IConfigurationNode): void { - let properties = configuration.properties; - if (properties) { - for (let key in properties) { - if (properties[key].overridable) { - this.editorConfigurationSchema.properties![key] = this.getConfigurationProperties()[key]; - } - } - } - let subNodes = configuration.allOf; - if (subNodes) { - subNodes.forEach(subNode => this.update(subNode)); - } - } - private computeOverridePropertyPattern(): string { return this.overrideIdentifiers.length ? OVERRIDE_PATTERN_WITH_SUBSTITUTION.replace('${0}', this.overrideIdentifiers.map(identifier => strings.createRegExp(identifier, false).source).join('|')) : OVERRIDE_PROPERTY; } } -const SETTINGS_OVERRRIDE_NODE_ID = 'override'; const OVERRIDE_PROPERTY = '\\[.*\\]$'; const OVERRIDE_PATTERN_WITH_SUBSTITUTION = '\\[(${0})\\]$'; export const OVERRIDE_PROPERTY_PATTERN = new RegExp(OVERRIDE_PROPERTY); diff --git a/src/vs/workbench/api/common/configurationExtensionPoint.ts b/src/vs/workbench/api/common/configurationExtensionPoint.ts index 29cc4ba3231..1f8513f02bf 100644 --- a/src/vs/workbench/api/common/configurationExtensionPoint.ts +++ b/src/vs/workbench/api/common/configurationExtensionPoint.ts @@ -8,7 +8,7 @@ import * as objects from 'vs/base/common/objects'; import { Registry } from 'vs/platform/registry/common/platform'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { ExtensionsRegistry, IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry'; -import { IConfigurationNode, IConfigurationRegistry, Extensions, editorConfigurationSchemaId, IDefaultConfigurationExtension, validateProperty, ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; +import { IConfigurationNode, IConfigurationRegistry, Extensions, resourceLanguageSettingsSchemaId, IDefaultConfigurationExtension, validateProperty, ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import { workspaceSettingsSchemaId, launchSchemaId, tasksSchemaId } from 'vs/workbench/services/configuration/common/configuration'; import { isObject } from 'vs/base/common/types'; @@ -91,7 +91,7 @@ const defaultConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint(Extensions.Configuration).registerConfigurat description: localize('symbolSortOrder', "Controls how symbols are sorted in the breadcrumbs outline view."), type: 'string', default: 'position', - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, enum: ['position', 'name', 'type'], enumDescriptions: [ localize('symbolSortOrder.position', "Show symbol outline in file position order."), @@ -166,157 +166,157 @@ Registry.as(Extensions.Configuration).registerConfigurat 'breadcrumbs.showFiles': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.file', "When enabled breadcrumbs show `file`-symbols.") }, 'breadcrumbs.showModules': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.module', "When enabled breadcrumbs show `module`-symbols.") }, 'breadcrumbs.showNamespaces': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.namespace', "When enabled breadcrumbs show `namespace`-symbols.") }, 'breadcrumbs.showPackages': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.package', "When enabled breadcrumbs show `package`-symbols.") }, 'breadcrumbs.showClasses': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.class', "When enabled breadcrumbs show `class`-symbols.") }, 'breadcrumbs.showMethods': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.method', "When enabled breadcrumbs show `method`-symbols.") }, 'breadcrumbs.showProperties': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.property', "When enabled breadcrumbs show `property`-symbols.") }, 'breadcrumbs.showFields': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.field', "When enabled breadcrumbs show `field`-symbols.") }, 'breadcrumbs.showConstructors': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.constructor', "When enabled breadcrumbs show `constructor`-symbols.") }, 'breadcrumbs.showEnums': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.enum', "When enabled breadcrumbs show `enum`-symbols.") }, 'breadcrumbs.showInterfaces': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.interface', "When enabled breadcrumbs show `interface`-symbols.") }, 'breadcrumbs.showFunctions': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.function', "When enabled breadcrumbs show `function`-symbols.") }, 'breadcrumbs.showVariables': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.variable', "When enabled breadcrumbs show `variable`-symbols.") }, 'breadcrumbs.showConstants': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.constant', "When enabled breadcrumbs show `constant`-symbols.") }, 'breadcrumbs.showStrings': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.string', "When enabled breadcrumbs show `string`-symbols.") }, 'breadcrumbs.showNumbers': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.number', "When enabled breadcrumbs show `number`-symbols.") }, 'breadcrumbs.showBooleans': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.boolean', "When enabled breadcrumbs show `boolean`-symbols.") }, 'breadcrumbs.showArrays': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.array', "When enabled breadcrumbs show `array`-symbols.") }, 'breadcrumbs.showObjects': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.object', "When enabled breadcrumbs show `object`-symbols.") }, 'breadcrumbs.showKeys': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.key', "When enabled breadcrumbs show `key`-symbols.") }, 'breadcrumbs.showNull': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.null', "When enabled breadcrumbs show `null`-symbols.") }, 'breadcrumbs.showEnumMembers': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.enumMember', "When enabled breadcrumbs show `enumMember`-symbols.") }, 'breadcrumbs.showStructs': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.struct', "When enabled breadcrumbs show `struct`-symbols.") }, 'breadcrumbs.showEvents': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.event', "When enabled breadcrumbs show `event`-symbols.") }, 'breadcrumbs.showOperators': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.operator', "When enabled breadcrumbs show `operator`-symbols.") }, 'breadcrumbs.showTypeParameters': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.typeParameter', "When enabled breadcrumbs show `typeParameter`-symbols.") } } diff --git a/src/vs/workbench/contrib/files/browser/files.contribution.ts b/src/vs/workbench/contrib/files/browser/files.contribution.ts index 9e4e46be9f4..615c14812d8 100644 --- a/src/vs/workbench/contrib/files/browser/files.contribution.ts +++ b/src/vs/workbench/contrib/files/browser/files.contribution.ts @@ -244,25 +244,22 @@ configurationRegistry.registerConfiguration({ }, 'files.encoding': { 'type': 'string', - 'overridable': true, 'enum': Object.keys(SUPPORTED_ENCODINGS), 'default': 'utf8', 'description': nls.localize('encoding', "The default character set encoding to use when reading and writing files. This setting can also be configured per language."), - 'scope': ConfigurationScope.RESOURCE, + 'scope': ConfigurationScope.RESOURCE_LANGUAGE, 'enumDescriptions': Object.keys(SUPPORTED_ENCODINGS).map(key => SUPPORTED_ENCODINGS[key].labelLong), 'included': Object.keys(SUPPORTED_ENCODINGS).length > 1 }, 'files.autoGuessEncoding': { 'type': 'boolean', - 'overridable': true, 'default': false, 'description': nls.localize('autoGuessEncoding', "When enabled, the editor will attempt to guess the character set encoding when opening files. This setting can also be configured per language."), - 'scope': ConfigurationScope.RESOURCE, + 'scope': ConfigurationScope.RESOURCE_LANGUAGE, 'included': Object.keys(SUPPORTED_ENCODINGS).length > 1 }, 'files.eol': { 'type': 'string', - 'overridable': true, 'enum': [ '\n', '\r\n', @@ -275,7 +272,7 @@ configurationRegistry.registerConfiguration({ ], 'default': 'auto', 'description': nls.localize('eol', "The default end of line character."), - 'scope': ConfigurationScope.RESOURCE + 'scope': ConfigurationScope.RESOURCE_LANGUAGE }, 'files.enableTrash': { 'type': 'boolean', @@ -286,22 +283,19 @@ configurationRegistry.registerConfiguration({ 'type': 'boolean', 'default': false, 'description': nls.localize('trimTrailingWhitespace', "When enabled, will trim trailing whitespace when saving a file."), - 'overridable': true, - 'scope': ConfigurationScope.RESOURCE + 'scope': ConfigurationScope.RESOURCE_LANGUAGE }, 'files.insertFinalNewline': { 'type': 'boolean', 'default': false, 'description': nls.localize('insertFinalNewline', "When enabled, insert a final new line at the end of the file when saving it."), - 'overridable': true, - 'scope': ConfigurationScope.RESOURCE + 'scope': ConfigurationScope.RESOURCE_LANGUAGE }, 'files.trimFinalNewlines': { 'type': 'boolean', 'default': false, 'description': nls.localize('trimFinalNewlines', "When enabled, will trim all new lines after the final new line at the end of the file when saving it."), - 'overridable': true, - 'scope': ConfigurationScope.RESOURCE + scope: ConfigurationScope.RESOURCE_LANGUAGE, }, 'files.autoSave': { 'type': 'string', @@ -358,15 +352,13 @@ configurationRegistry.registerConfiguration({ 'type': 'boolean', 'default': false, 'description': nls.localize('formatOnSave', "Format a file on save. A formatter must be available, the file must not be saved after delay, and the editor must not be shutting down."), - 'overridable': true, - 'scope': ConfigurationScope.RESOURCE + scope: ConfigurationScope.RESOURCE_LANGUAGE, }, 'editor.formatOnSaveTimeout': { 'type': 'number', 'default': 750, 'description': nls.localize('formatOnSaveTimeout', "Timeout in milliseconds after which the formatting that is run on file save is cancelled."), - 'overridable': true, - 'scope': ConfigurationScope.RESOURCE + scope: ConfigurationScope.RESOURCE_LANGUAGE, } } }); diff --git a/src/vs/workbench/contrib/outline/browser/outline.contribution.ts b/src/vs/workbench/contrib/outline/browser/outline.contribution.ts index 33ab1f4a348..dc855f0f9d6 100644 --- a/src/vs/workbench/contrib/outline/browser/outline.contribution.ts +++ b/src/vs/workbench/contrib/outline/browser/outline.contribution.ts @@ -8,7 +8,7 @@ import { IViewsRegistry, IViewDescriptor, Extensions as ViewExtensions } from 'v import { OutlinePane } from './outlinePane'; import { VIEW_CONTAINER } from 'vs/workbench/contrib/files/common/files'; import { Registry } from 'vs/platform/registry/common/platform'; -import { IConfigurationRegistry, Extensions as ConfigurationExtensions } from 'vs/platform/configuration/common/configurationRegistry'; +import { IConfigurationRegistry, Extensions as ConfigurationExtensions, ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; import { OutlineConfigKeys, OutlineViewId } from 'vs/editor/contrib/documentSymbols/outline'; // import './outlineNavigation'; @@ -55,110 +55,110 @@ Registry.as(ConfigurationExtensions.Configuration).regis }, 'outline.showFiles': { type: 'boolean', - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, default: true, markdownDescription: localize('filteredTypes.file', "When enabled outline shows `file`-symbols.") }, 'outline.showModules': { type: 'boolean', - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, default: true, markdownDescription: localize('filteredTypes.module', "When enabled outline shows `module`-symbols.") }, 'outline.showNamespaces': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.namespace', "When enabled outline shows `namespace`-symbols.") }, 'outline.showPackages': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.package', "When enabled outline shows `package`-symbols.") }, 'outline.showClasses': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.class', "When enabled outline shows `class`-symbols.") }, 'outline.showMethods': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.method', "When enabled outline shows `method`-symbols.") }, 'outline.showProperties': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.property', "When enabled outline shows `property`-symbols.") }, 'outline.showFields': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.field', "When enabled outline shows `field`-symbols.") }, 'outline.showConstructors': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.constructor', "When enabled outline shows `constructor`-symbols.") }, 'outline.showEnums': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.enum', "When enabled outline shows `enum`-symbols.") }, 'outline.showInterfaces': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.interface', "When enabled outline shows `interface`-symbols.") }, 'outline.showFunctions': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.function', "When enabled outline shows `function`-symbols.") }, 'outline.showVariables': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.variable', "When enabled outline shows `variable`-symbols.") }, 'outline.showConstants': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.constant', "When enabled outline shows `constant`-symbols.") }, 'outline.showStrings': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.string', "When enabled outline shows `string`-symbols.") }, 'outline.showNumbers': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.number', "When enabled outline shows `number`-symbols.") }, 'outline.showBooleans': { type: 'boolean', - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, default: true, markdownDescription: localize('filteredTypes.boolean', "When enabled outline shows `boolean`-symbols.") }, 'outline.showArrays': { type: 'boolean', default: true, - overridable: true, + scope: ConfigurationScope.RESOURCE_LANGUAGE, markdownDescription: localize('filteredTypes.array', "When enabled outline shows `array`-symbols.") }, 'outline.showObjects': { -- GitLab