gpt4 book ai didi

visual-studio-code - vscode-extension 更新虚拟文档

转载 作者:行者123 更新时间:2023-12-05 06:22:16 25 4
gpt4 key购买 nike

我试图找出如何使用我在编辑器中打开的自定义提供程序来更新虚拟文档。我既不了解 https://code.visualstudio.com/api/extension-guides/virtual-documents#update-virtual-documents 上的文档也不是 https://github.com/microsoft/vscode-extension-samples/tree/master/contentprovider-sample 处的示例

我尝试破解如下内容:

class MyProvider implements vscode.TextDocumentContentProvider {
public onDidChangeEmitter = new vscode.EventEmitter<vscode.Uri>();
onDidChange = this.onDidChangeEmitter.event;

public static instance: LocalChangesProvider | undefined;
public constructor() {
LocalChangesProvider.instance = this;
}

provideTextDocumentContent(uri: vscode.Uri) {
return someGlobal.text;
}
}

someGlobal.text = 'other text';
MyProvider.instance.onDidChangeEmitter.fire(myUriSchema);

但是我好像漏掉了什么。我有点沮丧,我太愚蠢了,无法简单地通知 vscode 更新我自己的虚拟文档:/任何帮助表示赞赏:)

最佳答案

在处理一个最小的完整示例时,我注意到 myUriSchema 必须与打开的文档的标题/路径相匹配,这意味着:

const documentUriToUpdate = vscode.Uri.parse(myUriSchema + ':' + myTitle);
MyProvider.instance.onDidChangeEmitter.fire(documentUriToUpdate )

附言:从设计的角度来看,这个instance-我的 hack 绝对没有任何代价-只是为了 PoC 它是如何工作的:)

关于visual-studio-code - vscode-extension 更新虚拟文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com