提交 6af56c72 编写于 作者: M Matt Bierner

Extract type alias

上级 3ed36f09
......@@ -41,7 +41,7 @@ export class CustomEditoInputFactory extends WebviewEditorInputFactory {
): CustomFileEditorInput {
const data = this.fromJson(serializedEditorInput);
const id = data.id || generateUuid();
const webviewInput = this.webviewService.reviveWebview(id, data.viewType, data.title, data.iconPath, data.state, data.options, data.extensionLocation ? {
const webviewInput = this.webviewService.reviveWebview(id, data.viewType, data.title, data.iconPath, data.state, data.options, data.extensionLocation && data.extensionId ? {
location: data.extensionLocation,
id: data.extensionId
} : undefined, data.group);
......
......@@ -54,7 +54,7 @@ export class WebviewEditorInputFactory implements IEditorInputFactory {
serializedEditorInput: string
): WebviewInput {
const data = this.fromJson(serializedEditorInput);
return this._webviewService.reviveWebview(data.id || generateUuid(), data.viewType, data.title, data.iconPath, data.state, data.options, data.extensionLocation ? {
return this._webviewService.reviveWebview(data.id || generateUuid(), data.viewType, data.title, data.iconPath, data.state, data.options, data.extensionLocation && data.extensionId ? {
location: data.extensionLocation,
id: data.extensionId
} : undefined, data.group);
......
......@@ -26,6 +26,27 @@ export interface ICreateWebViewShowOptions {
preserveFocus: boolean;
}
export interface WebviewInputOptions extends WebviewOptions, WebviewContentOptions {
readonly tryRestoreScrollPosition?: boolean;
readonly retainContextWhenHidden?: boolean;
readonly enableCommandUris?: boolean;
}
export function areWebviewInputOptionsEqual(a: WebviewInputOptions, b: WebviewInputOptions): boolean {
return a.enableCommandUris === b.enableCommandUris
&& a.enableFindWidget === b.enableFindWidget
&& a.allowScripts === b.allowScripts
&& a.retainContextWhenHidden === b.retainContextWhenHidden
&& a.tryRestoreScrollPosition === b.tryRestoreScrollPosition
&& equals(a.localResourceRoots, b.localResourceRoots, isEqual)
&& equals(a.portMapping, b.portMapping, (a, b) => a.extensionHostPort === b.extensionHostPort && a.webviewPort === b.webviewPort);
}
export interface WebviewExtensionDescription {
readonly location: URI;
readonly id: ExtensionIdentifier;
}
export interface IWebviewEditorService {
_serviceBrand: undefined;
......@@ -35,10 +56,7 @@ export interface IWebviewEditorService {
title: string,
showOptions: ICreateWebViewShowOptions,
options: WebviewInputOptions,
extension: undefined | {
location: URI,
id: ExtensionIdentifier
},
extension: WebviewExtensionDescription | undefined,
): WebviewInput;
reviveWebview(
......@@ -48,10 +66,7 @@ export interface IWebviewEditorService {
iconPath: { light: URI, dark: URI } | undefined,
state: any,
options: WebviewInputOptions,
extension: undefined | {
readonly location: URI,
readonly id?: ExtensionIdentifier
},
extension: WebviewExtensionDescription | undefined,
group: number | undefined
): WebviewInput;
......@@ -84,22 +99,6 @@ export interface WebviewResolve {
): Promise<void>;
}
export interface WebviewInputOptions extends WebviewOptions, WebviewContentOptions {
readonly tryRestoreScrollPosition?: boolean;
readonly retainContextWhenHidden?: boolean;
readonly enableCommandUris?: boolean;
}
export function areWebviewInputOptionsEqual(a: WebviewInputOptions, b: WebviewInputOptions): boolean {
return a.enableCommandUris === b.enableCommandUris
&& a.enableFindWidget === b.enableFindWidget
&& a.allowScripts === b.allowScripts
&& a.retainContextWhenHidden === b.retainContextWhenHidden
&& a.tryRestoreScrollPosition === b.tryRestoreScrollPosition
&& equals(a.localResourceRoots, b.localResourceRoots, isEqual)
&& equals(a.portMapping, b.portMapping, (a, b) => a.extensionHostPort === b.extensionHostPort && a.webviewPort === b.webviewPort);
}
function canRevive(reviver: WebviewResolve, webview: WebviewInput): boolean {
if (webview.isDisposed()) {
return false;
......@@ -143,10 +142,7 @@ export class WebviewEditorService implements IWebviewEditorService {
title: string,
showOptions: ICreateWebViewShowOptions,
options: WebviewInputOptions,
extension: undefined | {
location: URI,
id: ExtensionIdentifier
},
extension: WebviewExtensionDescription | undefined,
): WebviewInput {
const webview = this.createWebiew(id, extension, options);
......@@ -188,10 +184,7 @@ export class WebviewEditorService implements IWebviewEditorService {
iconPath: { light: URI, dark: URI } | undefined,
state: any,
options: WebviewInputOptions,
extension: undefined | {
readonly location: URI,
readonly id: ExtensionIdentifier
},
extension: WebviewExtensionDescription | undefined,
group: number | undefined,
): WebviewInput {
const webview = this.createWebiew(id, extension, options);
......@@ -254,7 +247,7 @@ export class WebviewEditorService implements IWebviewEditorService {
}
}
private createWebiew(id: string, extension: { location: URI; id: ExtensionIdentifier; } | undefined, options: WebviewInputOptions) {
private createWebiew(id: string, extension: WebviewExtensionDescription | undefined, options: WebviewInputOptions) {
const webview = this._webviewService.createWebviewEditorOverlay(id, {
enableFindWidget: options.enableFindWidget,
retainContextWhenHidden: options.retainContextWhenHidden
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册