Проверка, нажата ли управляющая / командная клавиша в VS Extensions - PullRequest
0 голосов
/ 20 мая 2018

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

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Это не дает прямого ответа на ваш вопрос, но, возможно, помогает решить вашу проблему:
Ваше расширение может содержать две разные команды: например, первая команда myextension.runTarget (noDebug=true) и myextension.debugTarget (noDebug=false).Кроме того, ваше расширение может предоставлять комбинации клавиш, которые связывают эти две команды с различными горячими клавишами, например CTRL + F5 и только F5 .

Looksкак и сам vscode делает то же самое (скриншот представления сочетаний клавиш): Keybinding screenshot

0 голосов
/ 31 мая 2018

Если вы читаете нижеприведенную статью

https://code.visualstudio.com/docs/extensionAPI/patterns-and-principles

Там написано

Код Visual Studio имеет очень богатую модель расширяемости, и есть много способоввытянуть инструмент.Однако мы не предоставляем прямой доступ к базовому DOM пользовательского интерфейса для разработчиков расширений.Используя VS Code, мы постоянно пытаемся оптимизировать использование базовых веб-технологий для предоставления всегда доступного, быстро реагирующего редактора, и мы будем продолжать настраивать использование DOM по мере развития этих технологий и нашего продукта.Чтобы поддерживать производительность и совместимость, мы запускаем расширения в своем собственном хост-процессе и предотвращаем прямой доступ к DOM.VS Code также включает в себя встроенный набор компонентов пользовательского интерфейса для распространенных сценариев, таких как IntelliSense, так что этот опыт согласован для разных языков программирования, и разработчикам расширений и расширений не нужно создавать свои собственные.

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

Это означает, что ваш код расширения вообще не запускает контекст окна редактора.И вы не можете взломать webview, так как расширение api не предоставляет его.Таким образом, вам нужно открыть запрос на функцию с командой VScode и попросить их выставить либо последнее событие клавиатуры, либо, по крайней мере, состояние клавиш Shift, Ctrl и alt.В настоящее время они просто отбрасывают его и выбрасывают (если редактор не открыт), иначе отправляют его в редактор Монако, прежде чем проверять наличие комбинации клавиш

Throw event away

0 голосов
/ 29 мая 2018

Этот вопрос может быть полезен.При таком подходе вы можете отслеживать событие нажатия клавиши, а затем, если код клавиши равен команде (91 или 93 в Safari / Chrome, 224 в Firefox) или элементу управления.Оттуда вы можете добавить свою функциональность, если она вернется как true, или как вы хотите структурировать ее

...