如何在vscode扩展中打开本地(扩展包内部)文件

时间:2020-04-15 05:54:05

标签: javascript visual-studio-code vscode-extensions

我正在创建一个vscode扩展。我想提供一个help命令,该命令在被调用时会打开一个由扩展名提供的help.md文件,因此,我认为它是作为扩展包的一部分提供的。

myext/
├── .vscode/
├── test/
├── package.json
├── extension.js
├── help.md

如何获取扩展包内容的引用并在运行扩展的编辑器中打开文件help.md

1 个答案:

答案 0 :(得分:1)

您可以使用扩展程序上下文获取扩展程序中任何文件的路径。这是我使用in my extensiondetermine the absoute path到要加载的文件的功能:

    /**
     * Returns the absolute path to a file located in our misc folder.
     *
     * @param file The base file name.
     * @param context The context of this extension to get its path regardless where it is installed.
     * @param webview When given format the path for use in this webview.
     */
    public static getMiscPath(file: string, context: ExtensionContext, webView?: Webview): string {
        if (webView) {
            let uri = Uri.file(context.asAbsolutePath(path.join('misc', file)));
            return webView.asWebviewUri(uri).toString();
        }
        return context.asAbsolutePath(path.join('misc', file));
    }

此函数确定路径的2个不同变体:

  1. 没有WebView实例:只是磁盘上的绝对文件路径。
  2. 带有WebView实例:用于HTML / CSS的Web URL。