Create WebviewExtensionDescription in extHostProtocol

This commit is contained in:
Matt Bierner
2019-10-16 11:56:58 -07:00
parent 721886ce10
commit d6ab43118d
3 changed files with 37 additions and 33 deletions

View File

@@ -540,8 +540,13 @@ export interface WebviewPanelShowOptions {
readonly preserveFocus?: boolean;
}
export interface WebviewExtensionDescription {
readonly id: ExtensionIdentifier;
readonly location: UriComponents;
}
export interface MainThreadWebviewsShape extends IDisposable {
$createWebviewPanel(handle: WebviewPanelHandle, viewType: string, title: string, showOptions: WebviewPanelShowOptions, options: modes.IWebviewPanelOptions & modes.IWebviewOptions, extensionId: ExtensionIdentifier, extensionLocation: UriComponents): void;
$createWebviewPanel(extension: WebviewExtensionDescription, handle: WebviewPanelHandle, viewType: string, title: string, showOptions: WebviewPanelShowOptions, options: modes.IWebviewPanelOptions & modes.IWebviewOptions): void;
$disposeWebview(handle: WebviewPanelHandle): void;
$reveal(handle: WebviewPanelHandle, showOptions: WebviewPanelShowOptions): void;
$setTitle(handle: WebviewPanelHandle, value: string): void;
@@ -556,7 +561,7 @@ export interface MainThreadWebviewsShape extends IDisposable {
$registerSerializer(viewType: string): void;
$unregisterSerializer(viewType: string): void;
$registerEditorProvider(viewType: string, extensionId: ExtensionIdentifier, extensionLocation: UriComponents, options: modes.IWebviewPanelOptions): void;
$registerEditorProvider(extension: WebviewExtensionDescription, viewType: string, options: modes.IWebviewPanelOptions): void;
$unregisterEditorProvider(viewType: string): void;
}

View File

@@ -288,7 +288,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
};
const handle = ExtHostWebviews.newHandle();
this._proxy.$createWebviewPanel(handle, viewType, title, webviewShowOptions, convertWebviewOptions(extension, this.workspace, options), extension.identifier, extension.extensionLocation);
this._proxy.$createWebviewPanel({ id: extension.identifier, location: extension.extensionLocation }, handle, viewType, title, webviewShowOptions, convertWebviewOptions(extension, this.workspace, options));
const webview = new ExtHostWebview(handle, this._proxy, options, this.initData, this.workspace, extension);
const panel = new ExtHostWebviewEditor(handle, this._proxy, viewType, title, viewColumn, options, webview);
@@ -325,7 +325,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
}
this._editorProviders.set(viewType, { extension, provider, });
this._proxy.$registerEditorProvider(viewType, extension.identifier, extension.extensionLocation, options || {});
this._proxy.$registerEditorProvider({ id: extension.identifier, location: extension.extensionLocation }, viewType, options || {});
return new Disposable(() => {
this._editorProviders.delete(viewType);