在自定义扩展名中,我想向'tab'键添加命令。但是,我不想停止执行“ tab”键的常规工作。
因此,如果我捕获了“ tab”键,那么该如何“冒泡”此事件?我的package.json
看起来像这样:
"contributes": {
...
"commands": [
{
"command": "command_name"
...
}
],
"keybindings": [
{
"command": "command_name",
"key": "tab",
"when": "editorTextFocus && !editorReadonly"
}
]
}
当前,这捕获了'tab'字符,但是破坏了自动完成功能,插入了制表符字符等。我当然可以在命令中手动将\ t插入编辑器中,但这仍然会使自动完成功能失效。
答案 0 :(得分:1)
在键盘快捷方式中键入"tab"
,带引号以查看所有 Tab 绑定。其中有When
个使用它的上下文。
要排除上下文,请在其前面放置!
。排除扩展所需的所有内容。像这样:
"when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && !inSnippetMode"// ...