Skip to content

Commit a47be8c

Browse files
committed
enable proposed api usage via product.json
1 parent bc6e4f5 commit a47be8c

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

src/vs/platform/node/product.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export interface IProductConfiguration {
3131
exeBasedExtensionTips: { [id: string]: any; };
3232
extensionKeywords: { [extension: string]: string[]; };
3333
extensionAllowedBadgeProviders: string[];
34+
extensionAllowedProposedApi: string[];
3435
keymapExtensionTips: string[];
3536
crashReporter: {
3637
companyName: string;

src/vs/workbench/api/node/extHost.api.impl.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import { ExtHostDecorations } from 'vs/workbench/api/node/extHostDecorations';
5858
import { toGlobPattern, toLanguageSelector } from 'vs/workbench/api/node/extHostTypeConverters';
5959
import { ExtensionActivatedByAPI } from 'vs/workbench/api/node/extHostExtensionActivator';
6060
import { ILogService } from 'vs/platform/log/common/log';
61+
import { isFalsyOrEmpty } from 'vs/base/common/arrays';
6162

6263
export interface IExtensionApiFactory {
6364
(extension: IExtensionDescription): typeof vscode;
@@ -128,8 +129,14 @@ export function createApiFactory(
128129

129130
const EXTENSION_ID = extension.id;
130131

131-
if (extension.enableProposedApi && !extension.isBuiltin) {
132+
if (!isFalsyOrEmpty(product.extensionAllowedProposedApi)
133+
&& product.extensionAllowedProposedApi.indexOf(extension.id) >= 0
134+
) {
135+
// fast lane -> proposed api is available to all extensions
136+
// that are listed in product.json-files
137+
extension.enableProposedApi = true;
132138

139+
} else if (extension.enableProposedApi && !extension.isBuiltin) {
133140
if (
134141
!initData.environment.enableProposedApiForAll &&
135142
initData.environment.enableProposedApiFor.indexOf(extension.id) < 0

0 commit comments

Comments
 (0)