vscode扩展-如何记录击键

时间:2019-08-19 17:13:40

标签: javascript visual-studio-code

我正在为vscode extension(针对某大学项目)进行用户测试,并且需要获取文本编辑器中按下的键的日志。

我尝试使用onDidChangeTextDocument,但这不能捕获不会修改文档的击键(例如Ctrl或Alt)。我还试图将事件侦听器添加到活动文本编辑器中,如下所示:

vscode.window.activeTextEditor.addEventListener(('keydown', event => {
  console.log(`KeyboardEvent: ${event.key || event.keyCode}`)
}))

但看起来activeTextEditor不允许添加此类功能。

有人知道vscode是否允许监听按键吗?

2 个答案:

答案 0 :(得分:1)

VS Code不会将按键事件直接暴露给扩展。尝试查看VS Code的api guide,并考虑是否可以以其他方式完成目标。

但是,在VS Code中最接近keydown的是,扩展可以在VS Code中注册type命令:vscode.commands.registerCommand('type', e => ...)

此命令将为按键触发。但是does not log modifier keys directlytype命令还应该仅用于调试或在非常特殊的情况下使用,因为它存在性能问题,并且major limitations

答案 1 :(得分:0)

vscode.workspace.onDidChangeTextDocument(handleChange)处理文档中的任何更改。通过这种方式,您甚至可以击键。请参阅此link