【问题标题】:How to open a local (inside the extension package) file in a vscode extension如何在 vscode 扩展中打开本地(扩展包内)文件
【发布时间】:2020-04-15 05:54:05
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2019-01-02
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      相关资源
      最近更新 更多