首页 > 解决方案 > 在 VSCode 扩展中,如何用从另一个文件读取的内容填充未命名的未保存文件?

问题描述

使用 VSCode 1.61.2,我正在制作一个必须在编辑器中打开一个未保存的空文件的扩展。

第一部分,没有填写文档,如下所示,效果很好:

vscode.workspace.openTextDocument({
    language: "json",
    content: "toto"
})

但是,我希望内容填充位于扩展代码源中的文件的内容。该文件位于:

src/my-file.json

到目前为止,我有:

vscode.workspace.openTextDocument("src/my-file.json").then((file) => {
    vscode.workspace.openTextDocument({
        language: "json",
        content: file.getText()
    })
})

但是,这会引发:

拒绝承诺未在 1 秒内处理:错误:无法打开文件:///src/my-file.json。详细信息:无法读取文件“\src\my-file.json”(错误:无法解析不存在的文件“\src\my-file.json”)

我高度怀疑workspace指的是用户工作区,因此该文件不存在,这解释了错误。

但是,如果我是对的,我在api中没有找到任何允许读取扩展文件的内容。

如何读取我的扩展源文件并将其写入编辑器中未保存的空文件?

标签: visual-studio-codevscode-extensions

解决方案


在扩展中创建路径

let srcfolder = path.join(__dirname, 'src', 'my-file.json');

或者使用ExtensionContextactivate函数的参数,使用成员extensionUrithis 也是 web 扩展保存,用于vscode.workspace.fs读取文件


推荐阅读