mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 03:29:00 +01:00
API: UriHandler, rename and docs
This commit is contained in:
@@ -452,8 +452,8 @@ export function createApiFactory(
|
||||
registerWebviewPanelSerializer: proposedApiFunction(extension, (viewType: string, serializer: vscode.WebviewPanelSerializer) => {
|
||||
return extHostWebviews.registerWebviewPanelSerializer(viewType, serializer);
|
||||
}),
|
||||
registerProtocolHandler: proposedApiFunction(extension, (handler: vscode.ProtocolHandler) => {
|
||||
return extHostUrls.registerProtocolHandler(extension.id, handler);
|
||||
registerUriHandler: proposedApiFunction(extension, (handler: vscode.UriHandler) => {
|
||||
return extHostUrls.registerUriHandler(extension.id, handler);
|
||||
}),
|
||||
get quickInputBackButton() {
|
||||
return proposedApiFunction(extension, (): vscode.QuickInputButton => {
|
||||
|
||||
@@ -462,8 +462,8 @@ export interface ExtHostWebviewsShape {
|
||||
}
|
||||
|
||||
export interface MainThreadUrlsShape extends IDisposable {
|
||||
$registerProtocolHandler(handle: number, extensionId: string): TPromise<void>;
|
||||
$unregisterProtocolHandler(handle: number): TPromise<void>;
|
||||
$registerUriHandler(handle: number, extensionId: string): TPromise<void>;
|
||||
$unregisterUriHandler(handle: number): TPromise<void>;
|
||||
}
|
||||
|
||||
export interface ExtHostUrlsShape {
|
||||
|
||||
@@ -15,7 +15,7 @@ export class ExtHostUrls implements ExtHostUrlsShape {
|
||||
private readonly _proxy: MainThreadUrlsShape;
|
||||
|
||||
private handles = new Set<string>();
|
||||
private handlers = new Map<number, vscode.ProtocolHandler>();
|
||||
private handlers = new Map<number, vscode.UriHandler>();
|
||||
|
||||
constructor(
|
||||
mainContext: IMainContext
|
||||
@@ -23,7 +23,7 @@ export class ExtHostUrls implements ExtHostUrlsShape {
|
||||
this._proxy = mainContext.getProxy(MainContext.MainThreadUrls);
|
||||
}
|
||||
|
||||
registerProtocolHandler(extensionId: string, handler: vscode.ProtocolHandler): vscode.Disposable {
|
||||
registerUriHandler(extensionId: string, handler: vscode.UriHandler): vscode.Disposable {
|
||||
if (this.handles.has(extensionId)) {
|
||||
throw new Error(`Protocol handler already registered for extension ${extensionId}`);
|
||||
}
|
||||
@@ -31,12 +31,12 @@ export class ExtHostUrls implements ExtHostUrlsShape {
|
||||
const handle = ExtHostUrls.HandlePool++;
|
||||
this.handles.add(extensionId);
|
||||
this.handlers.set(handle, handler);
|
||||
this._proxy.$registerProtocolHandler(handle, extensionId);
|
||||
this._proxy.$registerUriHandler(handle, extensionId);
|
||||
|
||||
return toDisposable(() => {
|
||||
this.handles.delete(extensionId);
|
||||
this.handlers.delete(handle);
|
||||
this._proxy.$unregisterProtocolHandler(handle);
|
||||
this._proxy.$unregisterUriHandler(handle);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user