From 8b9495d494ab5ec84d8909ffb282908cfcb07bf9 Mon Sep 17 00:00:00 2001 From: Ramya Rao Date: Fri, 13 Jul 2018 15:28:59 -0700 Subject: [PATCH] Support multiple configurations in extension editor (#54116) * Support multiple configurations in extension editor * Check array only if properties not found * Allow contributes.configuration to be an array --- .../extensionManagement/common/extensionManagement.ts | 2 +- .../parts/extensions/electron-browser/extensionEditor.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) 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) {