Расширения кода VS - Распространенная привязка ключей - PullRequest
0 голосов
/ 10 января 2019

В пользовательском расширении я хочу добавить команду к клавише «tab». Однако я не хочу мешать клавише «tab» выполнять свои обычные обязанности.

Итак, если я улавливаю клавишу «Tab», как я могу затем «всплыть» на этом событии? Мой package.json выглядит так:

"contributes": {
    ...
    "commands": [
            {
                "command": "command_name"
                ...
            }
        ],
        "keybindings": [
            {
                "command": "command_name",
                "key": "tab",
                "when": "editorTextFocus && !editorReadonly"
            }   
        ]
}
В настоящее время это захватывает символ «табуляция», но нарушает автозаполнение, вставку символа табуляции и т. Д. Я, конечно, могу вручную вставить \ t в редактор в моей команде, но это по-прежнему оставляет автозаполнение нарушенным.

1 Ответ

0 голосов
/ 10 января 2019

Введите "tab" с кавычками внутри сочетаний клавиш, чтобы увидеть все привязки Tab . Среди них вы найдете When контекстов, в которых он используется.

Чтобы исключить контекст, поставьте перед ним !. Исключите все необходимое для вашего расширения. Вот так:

"when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && !inSnippetMode"// ...
...