如何为 vscode 中的快速选择菜单设置滚动 up/down 键绑定?

How can I set scroll up/down keybindings for quickPick menu in vscode?

简介

我正在 Visual Studio 代码 中创建一个扩展,它创建一个 'quickPick' 菜单,用户可以从中 select 选项:

我可以使用向上和向下箭头滚动列表,但我希望能够将其绑定到更适合主行的内容,例如 ctrl-nctrl-p。我已经在主命令菜单 (ctrl-shift-p) 上绑定了 ctrl-nctrl-p 滚动 up/down ,我希望快速选择也符合这条规则。不幸的是,我的许多 ctrl-n 上下文绑定中的 none 正在生效。

我希望我可以添加到 'keybindings.json' 中,看起来像:

 {
        "key": "ctrl+n", 
        "command": "cursorDown", 
        "when": "quickPickFocus"
    }, 

但是在浏览“默认键盘快捷键”时我看不到这样的东西。

问题

  1. 如何为快速选择列表创建键绑定?

  2. 我可以为我的扩展程序创建一个自定义的“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(); 
    });

您刚刚添加了错误的键绑定 commandwhen,请尝试将其添加到您的 keybindings.json

        {
            "key": "ctrl+n",
            "command": "workbench.action.quickOpenSelectNext",
            "when": "!editorFocus"
        },
        {
            "key": "ctrl+p",
            "command": "workbench.action.quickOpenSelectPrevious",
            "when": "!editorFocus"
        }