Skip to content

Commit a06015b

Browse files
committed
have only one way of enforcing proposed API
1 parent 36ae347 commit a06015b

1 file changed

Lines changed: 24 additions & 24 deletions

File tree

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

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,6 @@ export interface IExtensionApiFactory {
7373
(extension: IExtensionDescription, registry: ExtensionDescriptionRegistry, configProvider: ExtHostConfigProvider): typeof vscode;
7474
}
7575

76-
function proposedApiFunction<T>(extension: IExtensionDescription, fn: T): T {
77-
if (extension.enableProposedApi) {
78-
return fn;
79-
} else {
80-
return throwProposedApiError.bind(null, extension) as any as T;
81-
}
82-
}
83-
8476
/**
8577
* This method instantiates and returns the extension API surface
8678
*/
@@ -206,7 +198,8 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
206198
});
207199
});
208200
},
209-
registerDiffInformationCommand: proposedApiFunction(extension, (id: string, callback: (diff: vscode.LineChange[], ...args: any[]) => any, thisArg?: any): vscode.Disposable => {
201+
registerDiffInformationCommand: (id: string, callback: (diff: vscode.LineChange[], ...args: any[]) => any, thisArg?: any): vscode.Disposable => {
202+
checkProposedApiEnabled(extension);
210203
return extHostCommands.registerCommand(true, id, async (...args: any[]): Promise<any> => {
211204
const activeTextEditor = extHostEditors.getActiveTextEditor();
212205
if (!activeTextEditor) {
@@ -217,7 +210,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
217210
const diff = await extHostEditors.getDiffInformation(activeTextEditor.id);
218211
callback.apply(thisArg, [diff, ...args]);
219212
});
220-
}),
213+
},
221214
executeCommand<T>(id: string, ...args: any[]): Thenable<T> {
222215
return extHostCommands.executeCommand<T>(id, ...args);
223216
},
@@ -530,9 +523,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
530523
registerWebviewPanelSerializer: (viewType: string, serializer: vscode.WebviewPanelSerializer) => {
531524
return extHostWebviews.registerWebviewPanelSerializer(viewType, serializer);
532525
},
533-
registerDecorationProvider: proposedApiFunction(extension, (provider: vscode.DecorationProvider) => {
526+
registerDecorationProvider(provider: vscode.DecorationProvider) {
527+
checkProposedApiEnabled(extension);
534528
return extHostDecorations.registerDecorationProvider(provider, extension.identifier);
535-
}),
529+
},
536530
registerUriHandler(handler: vscode.UriHandler) {
537531
return extHostUrls.registerUriHandler(extension.identifier, handler);
538532
},
@@ -667,24 +661,30 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
667661
get fs() {
668662
return extHostFileSystem.fileSystem;
669663
},
670-
registerFileSearchProvider: proposedApiFunction(extension, (scheme: string, provider: vscode.FileSearchProvider) => {
664+
registerFileSearchProvider: (scheme: string, provider: vscode.FileSearchProvider) => {
665+
checkProposedApiEnabled(extension);
671666
return extHostSearch.registerFileSearchProvider(scheme, provider);
672-
}),
673-
registerTextSearchProvider: proposedApiFunction(extension, (scheme: string, provider: vscode.TextSearchProvider) => {
667+
},
668+
registerTextSearchProvider: (scheme: string, provider: vscode.TextSearchProvider) => {
669+
checkProposedApiEnabled(extension);
674670
return extHostSearch.registerTextSearchProvider(scheme, provider);
675-
}),
676-
registerRemoteAuthorityResolver: proposedApiFunction(extension, (authorityPrefix: string, resolver: vscode.RemoteAuthorityResolver) => {
671+
},
672+
registerRemoteAuthorityResolver: (authorityPrefix: string, resolver: vscode.RemoteAuthorityResolver) => {
673+
checkProposedApiEnabled(extension);
677674
return extensionService.registerRemoteAuthorityResolver(authorityPrefix, resolver);
678-
}),
679-
registerResourceLabelFormatter: proposedApiFunction(extension, (formatter: vscode.ResourceLabelFormatter) => {
675+
},
676+
registerResourceLabelFormatter: (formatter: vscode.ResourceLabelFormatter) => {
677+
checkProposedApiEnabled(extension);
680678
return extHostLabelService.$registerResourceLabelFormatter(formatter);
681-
}),
682-
onDidRenameFile: proposedApiFunction(extension, (listener: (e: vscode.FileRenameEvent) => any, thisArg?: any, disposables?: vscode.Disposable[]) => {
679+
},
680+
onDidRenameFile: (listener: (e: vscode.FileRenameEvent) => any, thisArg?: any, disposables?: vscode.Disposable[]) => {
681+
checkProposedApiEnabled(extension);
683682
return extHostFileSystemEvent.onDidRenameFile(listener, thisArg, disposables);
684-
}),
685-
onWillRenameFile: proposedApiFunction(extension, (listener: (e: vscode.FileWillRenameEvent) => any, thisArg?: any, disposables?: vscode.Disposable[]) => {
683+
},
684+
onWillRenameFile: (listener: (e: vscode.FileWillRenameEvent) => any, thisArg?: any, disposables?: vscode.Disposable[]) => {
685+
checkProposedApiEnabled(extension);
686686
return extHostFileSystemEvent.getOnWillRenameFileEvent(extension)(listener, thisArg, disposables);
687-
})
687+
}
688688
};
689689

690690
// namespace: scm

0 commit comments

Comments
 (0)