序章
ユーザーがオプションを選択できる「quickPick」メニューを作成する拡張機能をVisual Studio Codeで作成しています。
上矢印と下矢印を使用してリストをスクロールできますが、これをctrl-nやctrl-pなどのよりホーム行に適したものにバインドできるようにしたいと考えています。メイン コマンド メニュー (ctrl-shift-p)でctrl-nとctrl-pが既にスクロール アップ/ダウンにバインドされており、クイック ピックもこのルールに該当することを望んでいました。残念ながら、多くの ctrl-n コンテキスト バインディングが有効になっていません。
次のような「keybindings.json」に追加できるものを期待しています。
{
"key": "ctrl+n",
"command": "cursorDown",
"when": "quickPickFocus"
},
しかし、「デフォルトのキーボード ショートカット」を参照しても、このようなものは表示されません。
質問
クイック ピック リストのキー バインドはどのように作成しますか?
拡張機能のカスタムの「いつ」コンテキストを作成できますか? 次に、次のように指定できます。
"when" : "myExtensionIsActive && 何とか"
追加ドキュメント
これは、私の keybindings.json でオーバーライドされたすべての ctrl-n キー バインディングです。
{
"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();
});