提交 2cf9921e 编写于 作者: M Matt Bierner

Fixing name and description for custom editor on data uris

上级 b8869cd9
......@@ -7,7 +7,7 @@ import { memoize } from 'vs/base/common/decorators';
import { Emitter } from 'vs/base/common/event';
import { UnownedDisposable } from 'vs/base/common/lifecycle';
import { basename } from 'vs/base/common/path';
import { isEqual } from 'vs/base/common/resources';
import { isEqual, DataUri } from 'vs/base/common/resources';
import { URI } from 'vs/base/common/uri';
import { WebviewContentState } from 'vs/editor/common/modes';
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
......@@ -18,12 +18,12 @@ import { WebviewEditorOverlay } from 'vs/workbench/contrib/webview/browser/webvi
import { WebviewInput } from 'vs/workbench/contrib/webview/browser/webviewEditorInput';
import { IWebviewEditorService } from 'vs/workbench/contrib/webview/browser/webviewEditorService';
import { promptSave } from 'vs/workbench/services/textfile/browser/textFileService';
import { Schemas } from 'vs/base/common/network';
export class CustomFileEditorInput extends WebviewInput {
public static typeId = 'workbench.editors.webviewEditor';
private name?: string;
private _hasResolved = false;
private readonly _editorResource: URI;
private _state = WebviewContentState.Readonly;
......@@ -49,11 +49,28 @@ export class CustomFileEditorInput extends WebviewInput {
return this._editorResource;
}
@memoize
getName(): string {
if (!this.name) {
this.name = basename(this.labelService.getUriLabel(this.getResource()));
if (this.getResource().scheme === Schemas.data) {
const metadata = DataUri.parseMetaData(this.getResource());
const label = metadata.get(DataUri.META_DATA_LABEL);
if (typeof label === 'string') {
return label;
}
}
return basename(this.labelService.getUriLabel(this.getResource()));
}
@memoize
getDescription(): string | undefined {
if (this.getResource().scheme === Schemas.data) {
const metadata = DataUri.parseMetaData(this.getResource());
const description = metadata.get(DataUri.META_DATA_DESCRIPTION);
if (typeof description === 'string') {
return description;
}
}
return this.name;
return super.getDescription();
}
matches(other: IEditorInput): boolean {
......
......@@ -94,7 +94,7 @@ export class WebviewInput extends EditorInput {
return this.getName();
}
public getDescription() {
public getDescription(): string | undefined {
return undefined;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册