Как я могу установить привязки клавиш прокрутки вверх / вниз для меню быстрого выбора в vscode?

Вступление

Я создаю расширение в Visual Studio Code, которое создает меню «quickPick», из которого пользователь может выбирать параметры:

введите описание изображения здесь

Я могу использовать стрелки вверх и вниз для прокрутки списка, но я хочу иметь возможность привязать это к чему-то более удобному для домашней строки, например ctrl-n и ctrl-p . У меня есть ctrl-n и ctrl-p, уже привязанные для прокрутки вверх / вниз в главном меню команд (ctrl-shift-p), и я надеялся, что быстрый выбор также подпадет под это правило. К сожалению, ни одна из моих многочисленных привязок контекста ctrl-n не действует.

Я надеюсь на кое-что, что я могу добавить в keybindings.json, что будет выглядеть примерно так:

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

Но я не вижу ничего подобного при просмотре горячих клавиш по умолчанию.

Вопросов

  1. Как вы создаете привязки клавиш для списков быстрого выбора?

  2. Могу ли я создать собственный контекст для моего расширения? Тогда я могу указать что-то вроде:

    когда: 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(); 
    });

person vt5491    schedule 27.08.2016    source источник


Ответы (1)


Вы просто добавили неправильную привязку клавиш command и when, попробуйте добавить это в свой keybindings.json

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