Что такое команда vscode для открытия файла в режиме предварительного просмотра

#visual-studio-code #vscode-extensions

#visual-studio-код #vscode-расширения

Вопрос:

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

Вы можете делать подобные вещи в интерактивном режиме:

Пункт контекстного меню, который загружает файл непосредственно в панель предварительного просмотра

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

Веб-поиск не дает полных или полезных результатов.

Комментарии:

1. github.com/microsoft/vscode/blob/master/extensions/… Сначала вы должны активировать этот файл.

2. Я не думаю, что ты понимаешь. Я только что нашел то же самое в репозитории vscode, и он принимает необязательный параметр URI. Я поэкспериментирую и предоставлю подробности в самоответчике. (Я думаю, это ужасно, что мы должны просматривать исходный код, чтобы найти этот ответ.)

Ответ №1:

После клонирования репозитория VS Code и поиска по исходному коду я обнаружил команды markdown.showPreview и связанные с ними.

Чтобы отдать должное, Лекс Ли сообщил соответствующую package.json запись в комментарии, пока я искал.

Без параметров это предварительный просмотр содержимого активного редактора, но, как я сказал в комментарии, он поддерживает необязательный параметр Uri, и код выглядит следующим образом:

     let pathToManual = path.join(context.extensionPath, "manual.md");
    let uriManual: vscode.Uri = vscode.Uri.file(pathToManual);
    vscode.commands.executeCommand('markdown.showPreview', uriManual);
 

Для получения информации о построении относительных путей рабочей области см. Ответ от Марка. joinPath Метод, который он использует, требует базового пути в качестве Uri, который удобно доступен для рабочей области, но не для пути расширения.

Если вам нужна информация о таких вещах, как отображение предварительного просмотра с одной стороны, то, учитывая нехватку документации, я рекомендую клонировать репозиторий и искать в нем «markdown.showPreview», а затем изучить соседний код. Если вы сложите методы, вам будет легче изучить ваши варианты.

Ответ №2:

Попробуйте:

 vscode.commands.executeCommand("markdown.showPreview", vscode.Uri.joinPath(vscode.workspace.workspaceFolders[0].uri,'test.md'));
 

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

vscode.Uri.path(<path to file)

вместо joinPath того, что я использовал.

Комментарии:

1. Щелчок! Я использую свой собственный ответ, потому что в нем объясняется, как создать путь к файлу с установленным расширением. joinPath требуется база Uri, что делает ее неудобной. Но спасибо, что потрудились!

2. Нет проблем, ваш ответ лучше и более точен.