diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts index 0bd9ad1eb1f..eaa3ec6ed6f 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts @@ -96,7 +96,7 @@ export interface IColor { export interface IExtensionContributions { commands?: ICommand[]; - configuration?: IConfiguration; + configuration?: IConfiguration | IConfiguration[]; debuggers?: IDebugger[]; grammars?: IGrammar[]; jsonValidation?: IJSONValidation[]; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 5e247ac5bdd..997b386f29b 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -667,7 +667,14 @@ export class ExtensionEditor extends BaseEditor { private renderSettings(container: HTMLElement, manifest: IExtensionManifest, onDetailsToggle: Function): boolean { const contributes = manifest.contributes; const configuration = contributes && contributes.configuration; - const properties = configuration && configuration.properties; + let properties = {}; + if (Array.isArray(configuration)) { + configuration.forEach(config => { + properties = { ...properties, ...config.properties }; + }); + } else if (configuration) { + properties = configuration.properties; + } const contrib = properties ? Object.keys(properties) : []; if (!contrib.length) {