首页 > 解决方案 > 检查当前是否在 VS Extensions 中按下了控制/命令键

问题描述

在我的扩展程序中,如果当前按下了控制(或命令)键,我想检查某个功能。这怎么可能?我找不到任何公开此信息的字段。

标签: visual-studio-codevscode-extensions

解决方案


如果你阅读了下面的文章

https://code.visualstudio.com/docs/extensionAPI/patterns-and-principles

它说

Visual Studio Code 具有非常丰富的可扩展性模型,并且有很多方法可以扩展该工具。但是,我们不向扩展编写者提供对底层 UI DOM 的直接访问。借助 VS Code,我们不断尝试优化底层 Web 技术的使用,以提供始终可用、高度响应的编辑器,并且随着这些技术和产品的发展,我们将继续调整对 DOM 的使用。为了保持性能和兼容性,我们在它们自己的宿主进程中运行扩展并防止直接访问 DOM。VS Code 还包括一组内置的 UI 组件,适用于 IntelliSense 等常见场景,因此这些体验在编程语言和扩展之间是一致的,并且扩展开发人员不需要自己构建。

我们意识到这种方法最初可能会限制扩展开发人员。我们一直在寻找方法来改进我们的可扩展性模型并扩展可用于扩展的功能。我们期待听到您的反馈和想法。

这意味着您的扩展代码根本不运行编辑器窗口上下文。而且你不能侵入 webview,因为扩展 api 没有提供它。因此,您需要向 VScode 团队提出功能请求,并要求他们公开最后一个键盘事件或至少显示Shift,Ctrlalt键的状态。目前他们只是将其丢弃并扔掉(如果没有打开编辑器),否则他们在检查任何快捷方式组合之前将其发送到摩纳哥编辑器

扔掉事件


推荐阅读