Как открыть локальный (внутри пакета расширения) файл с расширением vscode - PullRequest
0 голосов
/ 15 апреля 2020

Я создаю расширение vscode. Я хочу предоставить команду help, которая при вызове открывает файл help.md, предоставленный расширением, и поэтому, как я полагаю, поставляется как часть пакета расширения.

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

Как можно получить ссылку на содержимое пакета расширения и открыть файл help.md в редакторе, где работает расширение?

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете получить путь к любому файлу в вашем расширении, используя контекст расширения. Вот функция, которую я использую в своем расширении до определение абсолютного пути к файлам, которые я хочу загрузить:

    /**
     * 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: веб-URL для использования в HTML / CSS.
...