在我的扩展程序中,如果当前按下了控制(或命令)键,我想检查某个功能。怎么可能?我无法找到任何公开此信息的字段。
答案 0 :(得分:1)
如果您阅读以下文章
https://code.visualstudio.com/docs/extensionAPI/patterns-and-principles
它说
Visual Studio Code具有非常丰富的可扩展性模型,并且有许多方法可以扩展该工具。但是,我们不提供对扩展编写器的底层UI DOM的直接访问。借助VS Code,我们不断尝试优化底层Web技术的使用,以提供始终可用,响应速度快的编辑器,随着这些技术和产品的发展,我们将继续调整DOM的使用。为了保持性能和兼容性,我们在自己的主机进程中运行扩展,并阻止对DOM的直接访问。 VS Code还包括用于IntelliSense等常见场景的内置UI组件集,因此这些体验在编程语言和扩展中是一致的,扩展开发人员无需自己构建。
我们意识到这种方法最初可能会对扩展开发人员产生限制。我们一直在寻找改进可扩展性模型的方法,并扩展可用于扩展的功能。我们期待听到您的反馈和想法。
这意味着您的扩展代码根本不会在编辑器窗口上下文中运行。而且你不能侵入webview,因为扩展api没有提供它。因此,您需要向VScode团队打开功能请求,并要求他们公开最后一个键盘事件或至少公开Shift
,Ctrl
和alt
键的状态。目前他们只是将其丢弃并丢弃(如果没有编辑器打开),否则他们会在检查任何快捷方式组合之前将其发送给摩纳哥编辑器
答案 1 :(得分:0)
This question可能有用。使用这种方法,您可以跟踪按键事件,然后如果密钥代码等于命令(Safari / Chrome上为91或93,Firefox上为224)或控制。从那里,你可以输入你的功能,如果它返回true,或者你想要构建它
答案 2 :(得分:0)