提交 d4199779 编写于 作者: M Matt Bierner

Remove `CustomDocument.viewType`

Fixes #93867
For #77131

This property is no longer needed (or very helpful) with the current api design
上级 0d351bd5
......@@ -28,7 +28,7 @@ export class PreviewManager implements vscode.CustomEditorProvider {
) { }
public async openCustomDocument(uri: vscode.Uri) {
return new vscode.CustomDocument(PreviewManager.viewType, uri);
return new vscode.CustomDocument(uri);
}
public async resolveCustomEditor(
......
......@@ -151,7 +151,7 @@ export class MarkdownPreviewManager extends Disposable implements vscode.Webview
}
public async openCustomDocument(uri: vscode.Uri) {
return new vscode.CustomDocument(this.customEditorViewType, uri);
return new vscode.CustomDocument(uri);
}
public async resolveCustomTextEditor(
......
......@@ -7006,15 +7006,9 @@ declare module 'vscode' {
*/
class CustomDocument<EditType = unknown> {
/**
* @param viewType The associated uri for this document.
* @param uri The associated viewType for this document.
*/
constructor(viewType: string, uri: Uri);
/**
* The associated viewType for this document.
*/
readonly viewType: string;
constructor(uri: Uri);
/**
* The associated uri for this document.
......
......@@ -2747,7 +2747,6 @@ export class CustomDocument<EditType = unknown> implements vscode.CustomDocument
readonly #edits = new Cache<EditType>('edits');
readonly #viewType: string;
readonly #uri: vscode.Uri;
#editState: EditState = {
......@@ -2758,15 +2757,12 @@ export class CustomDocument<EditType = unknown> implements vscode.CustomDocument
#isDisposed = false;
#version = 1;
constructor(viewType: string, uri: vscode.Uri) {
this.#viewType = viewType;
constructor(uri: vscode.Uri) {
this.#uri = uri;
}
//#region Public API
public get viewType(): string { return this.#viewType; }
public get uri(): vscode.Uri { return this.#uri; }
public get fileName(): string { return this.uri.fsPath; }
......
......@@ -269,16 +269,16 @@ class WebviewDocumentStore {
return this._documents.get(this.key(viewType, resource));
}
public add(document: extHostTypes.CustomDocument) {
const key = this.key(document.viewType, document.uri);
public add(viewType: string, document: extHostTypes.CustomDocument) {
const key = this.key(viewType, document.uri);
if (this._documents.has(key)) {
throw new Error(`Document already exists for viewType:${document.viewType} resource:${document.uri}`);
throw new Error(`Document already exists for viewType:${viewType} resource:${document.uri}`);
}
this._documents.set(key, document);
}
public delete(document: extHostTypes.CustomDocument) {
const key = this.key(document.viewType, document.uri);
public delete(viewType: string, document: extHostTypes.CustomDocument) {
const key = this.key(viewType, document.uri);
this._documents.delete(key);
}
......@@ -414,7 +414,7 @@ export class ExtHostWebviews implements extHostProtocol.ExtHostWebviewsShape {
disposables.add(provider.editingDelegate.onDidEdit(e => {
const document = e.document;
const editId = (document as extHostTypes.CustomDocument)._addEdit(e.edit);
this._proxy.$onDidEdit(document.uri, document.viewType, editId, e.label);
this._proxy.$onDidEdit(document.uri, viewType, editId, e.label);
}));
}
}
......@@ -516,7 +516,7 @@ export class ExtHostWebviews implements extHostProtocol.ExtHostWebviewsShape {
const revivedResource = URI.revive(resource);
const document = await entry.provider.openCustomDocument(revivedResource, cancellation);
this._documents.add(document as extHostTypes.CustomDocument);
this._documents.add(viewType, document as extHostTypes.CustomDocument);
return {
editable: !!entry.provider.editingDelegate,
};
......@@ -534,7 +534,7 @@ export class ExtHostWebviews implements extHostProtocol.ExtHostWebviewsShape {
const revivedResource = URI.revive(resource);
const document = this.getCustomDocument(viewType, revivedResource);
this._documents.delete(document);
this._documents.delete(viewType, document);
document._dispose();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册