From a47be8c8c116d79070c015b93609e44f8697b654 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 1 Dec 2017 10:35:58 +0100 Subject: [PATCH] enable proposed api usage via product.json --- src/vs/platform/node/product.ts | 1 + src/vs/workbench/api/node/extHost.api.impl.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/vs/platform/node/product.ts b/src/vs/platform/node/product.ts index aec3cd8a91a..68802e24d9b 100644 --- a/src/vs/platform/node/product.ts +++ b/src/vs/platform/node/product.ts @@ -31,6 +31,7 @@ export interface IProductConfiguration { exeBasedExtensionTips: { [id: string]: any; }; extensionKeywords: { [extension: string]: string[]; }; extensionAllowedBadgeProviders: string[]; + extensionAllowedProposedApi: string[]; keymapExtensionTips: string[]; crashReporter: { companyName: string; diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 2fbe3f0ec19..22201ab41be 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -58,6 +58,7 @@ import { ExtHostDecorations } from 'vs/workbench/api/node/extHostDecorations'; import { toGlobPattern, toLanguageSelector } from 'vs/workbench/api/node/extHostTypeConverters'; import { ExtensionActivatedByAPI } from 'vs/workbench/api/node/extHostExtensionActivator'; import { ILogService } from 'vs/platform/log/common/log'; +import { isFalsyOrEmpty } from 'vs/base/common/arrays'; export interface IExtensionApiFactory { (extension: IExtensionDescription): typeof vscode; @@ -128,8 +129,14 @@ export function createApiFactory( const EXTENSION_ID = extension.id; - if (extension.enableProposedApi && !extension.isBuiltin) { + if (!isFalsyOrEmpty(product.extensionAllowedProposedApi) + && product.extensionAllowedProposedApi.indexOf(extension.id) >= 0 + ) { + // fast lane -> proposed api is available to all extensions + // that are listed in product.json-files + extension.enableProposedApi = true; + } else if (extension.enableProposedApi && !extension.isBuiltin) { if ( !initData.environment.enableProposedApiForAll && initData.environment.enableProposedApiFor.indexOf(extension.id) < 0 -- GitLab