From b2a96bbe501e8b442a71a41deed8b76523972642 Mon Sep 17 00:00:00 2001 From: Leila Lali Date: Wed, 28 Mar 2018 11:30:44 -0700 Subject: [PATCH] Fix/use sqlops engine version (#1011) * using sqlops as engine version instead of vscode --- .../common/extensionManagement.ts | 3 ++- .../node/extensionGalleryService.ts | 13 +++++++------ src/vs/platform/extensions/common/extensions.ts | 2 ++ .../platform/extensions/node/extensionValidator.ts | 9 ++++++--- .../extensions/electron-browser/extensionPoints.ts | 4 ++++ 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts index 91ae52666a..bd3a4f27a7 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts @@ -105,7 +105,8 @@ export interface IExtensionManifest { name: string; publisher: string; version: string; - engines: { vscode: string }; + // {{SQL CARBON EDIT}} + engines: { vscode: string; sqlops?: string }; displayName?: string; description?: string; main?: string; diff --git a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts index 4fe1cc6896..8007b17861 100644 --- a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts @@ -263,8 +263,6 @@ function getVersionAsset(version: IRawGalleryExtensionVersion, type: string): IG fallbackUri: `${version.fallbackAssetUri}/${type}` }; } - - } function getDependencies(version: IRawGalleryExtensionVersion): string[] { @@ -453,11 +451,11 @@ export class ExtensionGalleryService implements IExtensionGalleryService { if (query.criteria) { const ids = query.criteria.filter(x => x.filterType === FilterType.ExtensionId).map(v => v.value.toLocaleLowerCase()); if (ids && ids.length > 0) { - filteredExtensions = filteredExtensions.filter(e => e.extensionId && ids.includes(e.extensionId.toLocaleLowerCase())); + filteredExtensions = filteredExtensions.filter(e => e.extensionId && ids.includes(e.extensionId.toLocaleLowerCase())); } const names = query.criteria.filter(x => x.filterType === FilterType.ExtensionName).map(v => v.value.toLocaleLowerCase()); if (names && names.length > 0) { - filteredExtensions = filteredExtensions.filter(e => e.extensionName && e.publisher.publisherName && names.includes(`${e.publisher.publisherName.toLocaleLowerCase()}.${e.extensionName.toLocaleLowerCase()}`)); + filteredExtensions = filteredExtensions.filter(e => e.extensionName && e.publisher.publisherName && names.includes(`${e.publisher.publisherName.toLocaleLowerCase()}.${e.extensionName.toLocaleLowerCase()}`)); } } @@ -748,14 +746,17 @@ export class ExtensionGalleryService implements IExtensionGalleryService { return this.getAsset(asset, { headers }) .then(context => asJson(context)) .then(manifest => { - const engine = manifest.engines.vscode; + if (manifest.engines && !manifest.engines.sqlops) { + manifest.engines.sqlops = '*'; + } + const engine = manifest.engines.sqlops; if (!this.isEngineValid(engine)) { return this.getLastValidExtensionVersionReccursively(extension, versions.slice(1)); } version.properties = version.properties || []; - version.properties.push({ key: PropertyType.Engine, value: manifest.engines.vscode }); + version.properties.push({ key: PropertyType.Engine, value: manifest.engines.sqlops }); return version; }); } diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index fcc554579b..61684c80c4 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -23,6 +23,8 @@ export interface IExtensionDescription { readonly activationEvents?: string[]; readonly engines: { vscode: string; + // {{SQL CARBON EDIT}} + sqlops?: string; }; readonly main?: string; readonly contributes?: { [point: string]: any; }; diff --git a/src/vs/platform/extensions/node/extensionValidator.ts b/src/vs/platform/extensions/node/extensionValidator.ts index efbdbb63d1..f676cf9b25 100644 --- a/src/vs/platform/extensions/node/extensionValidator.ts +++ b/src/vs/platform/extensions/node/extensionValidator.ts @@ -208,6 +208,8 @@ export interface IReducedExtensionDescription { isBuiltin: boolean; engines: { vscode: string; + // {{SQL CARBON EDIT}} + sqlops?: string; }; main?: string; } @@ -219,7 +221,8 @@ export function isValidExtensionVersion(version: string, extensionDesc: IReduced return true; } - return isVersionValid(version, extensionDesc.engines.vscode, notices); + // {{SQL CARBON EDIT}} + return (extensionDesc.engines.sqlops && extensionDesc.engines.sqlops === '*') || isVersionValid(version, extensionDesc.engines.sqlops, notices); } export function isVersionValid(currentVersion: string, requestedVersion: string, notices: string[] = []): boolean { @@ -289,8 +292,8 @@ function baseIsValidExtensionDescription(extensionFolderPath: string, extensionD notices.push(nls.localize('extensionDescription.engines', "property `{0}` is mandatory and must be of type `object`", 'engines')); return false; } - if (typeof extensionDescription.engines.vscode !== 'string') { - notices.push(nls.localize('extensionDescription.engines.vscode', "property `{0}` is mandatory and must be of type `string`", 'engines.vscode')); + if (typeof extensionDescription.engines.sqlops !== 'string') { + notices.push(nls.localize('extensionDescription.engines.sqlops', "property `{0}` is mandatory and must be of type `string`", 'engines.sqlops')); return false; } if (typeof extensionDescription.extensionDependencies !== 'undefined') { diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts b/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts index 1542c313c6..24cfc82969 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts @@ -58,6 +58,10 @@ class ExtensionManifestParser extends ExtensionManifestHandler { if (manifest.__metadata) { manifest.uuid = manifest.__metadata.id; } + // {{SQL CARBON EDIT}} + if (manifest.engines && !manifest.engines.sqlops) { + manifest.engines.sqlops = '*'; + } delete manifest.__metadata; return manifest; } catch (e) {