From 4f0f853a46c97cd924705d01c5fea2bf41627846 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 23 Aug 2016 17:20:35 +0200 Subject: [PATCH] extension editor: JSON validation --- .../electron-browser/extensionEditor.ts | 40 +++++++++++++------ .../media/extensionEditor.css | 7 ++-- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 4f27e421e7e..a1f8281ecab 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -282,6 +282,7 @@ export class ExtensionEditor extends BaseEditor { ExtensionEditor.renderSettings(content, manifest); ExtensionEditor.renderThemes(content, manifest); + ExtensionEditor.renderJSONValidation(content, manifest); ExtensionEditor.renderDebuggers(content, manifest); })); } @@ -289,48 +290,63 @@ export class ExtensionEditor extends BaseEditor { private static renderSettings(container: HTMLElement, manifest: IExtensionManifest): void { const configuration = manifest.contributes.configuration; const properties = configuration && configuration.properties; - const settings = properties ? Object.keys(properties) : []; + const contrib = properties ? Object.keys(properties) : []; - if (!settings.length) { + if (!contrib.length) { return; } append(container, $('details', { open: true }, - $('summary', null, localize('settings', "Settings ({0})", settings.length)), + $('summary', null, localize('settings', "Settings ({0})", contrib.length)), $('table', null, $('tr', null, $('th', null, localize('setting name', "Name")), $('th', null, localize('description', "Description"))), - ...settings.map(key => $('tr', null, $('td', null, $('code', null, key)), $('td', null, properties[key].description))) + ...contrib.map(key => $('tr', null, $('td', null, $('code', null, key)), $('td', null, properties[key].description))) ) )); } private static renderDebuggers(container: HTMLElement, manifest: IExtensionManifest): void { - const debuggers = manifest.contributes.debuggers || []; + const contrib = manifest.contributes.debuggers || []; - if (!debuggers.length) { + if (!contrib.length) { return; } append(container, $('details', { open: true }, - $('summary', null, localize('debuggers', "Debuggers ({0})", debuggers.length)), + $('summary', null, localize('debuggers', "Debuggers ({0})", contrib.length)), $('table', null, $('tr', null, $('th', null, localize('debugger name', "Name")), $('th', null, localize('runtime', "Runtime"))), - ...debuggers.map(d => $('tr', null, $('td', null, d.label || d.type), $('td', null, d.runtime))) + ...contrib.map(d => $('tr', null, $('td', null, d.label || d.type), $('td', null, d.runtime))) ) )); } private static renderThemes(container: HTMLElement, manifest: IExtensionManifest): void { - const themes = manifest.contributes.themes || []; + const contrib = manifest.contributes.themes || []; - if (!themes.length) { + if (!contrib.length) { return; } append(container, $('details', { open: true }, - $('summary', null, localize('themes', "Themes ({0})", themes.length)), + $('summary', null, localize('themes', "Themes ({0})", contrib.length)), $('ul', null, - ...themes.map(theme => $('li', null, theme.label)) + ...contrib.map(theme => $('li', null, theme.label)) + ) + )); + } + + private static renderJSONValidation(container: HTMLElement, manifest: IExtensionManifest): void { + const contrib = manifest.contributes.jsonValidation || []; + + if (!contrib.length) { + return; + } + + append(container, $('details', { open: true }, + $('summary', null, localize('JSON Validation', "JSON Validation ({0})", contrib.length)), + $('ul', null, + ...contrib.map(v => $('li', null, v.fileMatch)) ) )); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css index d1cbae3fae8..5e19c2138e8 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css +++ b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css @@ -142,6 +142,7 @@ } .extension-editor > .body > .content table { + width: 100%; border-spacing: 0; border-collapse: separate; } @@ -155,6 +156,8 @@ margin-bottom: 10px; font-weight: bold; font-size: 120%; + border-bottom: 1px solid rgba(128, 128, 128, 0.22); + padding-bottom: 6px; } .extension-editor > .body > .content details > summary:focus { @@ -173,10 +176,6 @@ background-color: rgba(128, 128, 128, 0.15); } -.extension-editor > .body > .content table th { - border-bottom: 1px solid rgba(144, 144, 144, 0.5); -} - .extension-editor > .body > .content table th, .extension-editor > .body > .content table td { padding: 2px 16px 2px 4px; -- GitLab