#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. Нет проблем, ваш ответ лучше и более точен.