Вступление
Я создаю расширение в Visual Studio Code, которое создает меню «quickPick», из которого пользователь может выбирать параметры:
Я могу использовать стрелки вверх и вниз для прокрутки списка, но я хочу иметь возможность привязать это к чему-то более удобному для домашней строки, например ctrl-n и ctrl-p em>. У меня есть ctrl-n и ctrl-p, уже привязанные для прокрутки вверх / вниз в главном меню команд (ctrl-shift-p), и я надеялся, что быстрый выбор также подпадет под это правило. К сожалению, ни одна из моих многочисленных привязок контекста ctrl-n не действует.
Я надеюсь на кое-что, что я могу добавить в keybindings.json, что будет выглядеть примерно так:
{
"key": "ctrl+n",
"command": "cursorDown",
"when": "quickPickFocus"
},
Но я не вижу ничего подобного при просмотре горячих клавиш по умолчанию.
Вопросов
Как вы создаете привязки клавиш для списков быстрого выбора?
Могу ли я создать собственный контекст для моего расширения? Тогда я могу указать что-то вроде:
когда: myExtensionIsActive && blah
Дополнительный документ
Вот все переопределенные привязки клавиш ctrl-n в моем keybindings.json:
{
"key": "ctrl+n",
"command": "cursorDown",
"when": "editorTextFocus"
},
{
"key": "ctrl+n",
"command": "workbench.action.quickOpenNavigateNext",
"when": "inQuickOpen"
},
{
"key": "ctrl+n",
"command": "showNextParameterHint",
"when": "editorTextFocus && parameterHintsVisible"
},
{
"key": "ctrl+n",
"command": "selectNextQuickFix",
"when": "editorFocus && quickFixWidgetVisible"
},
{
"key": "ctrl+n",
"command": "selectNextSuggestion",
"when": "editorTextFocus && suggestWidgetVisible"
},
Вот код, в котором я создаю quickPick:
var themeList = this.getThemeList()
vscode.window.showQuickPick(themeList)
.then(val => {
// Update the status bar
this.cmdChannel.text = `Theme: ${val}`
this.cmdChannel.show();
});