visual-studio-code - 检查当前是否在 VS 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
,Ctrl
和alt
键的状态。目前他们只是将其丢弃并扔掉(如果没有打开编辑器),否则他们在检查任何快捷方式组合之前将其发送到摩纳哥编辑器
推荐阅读
- c# - 将多个 DotNet 可执行文件合并为一个可执行文件
- html - 变换比例在Firefox中产生不同的结果
- ios - 无法删除关键路径“Bounds”的观察者,因为它没有注册为观察者
- c - 如何像素化二进制 (P6) PPM 文件
- javascript - 如何在不向 JSX 树中添加组件的情况下创建 React 组件
- html - 悬停背景颜色未正确填充 CSS 网格
- python - TypeError: __init__() 接受 2 个位置参数,但 Python 3 给出了 3 个?
- spring-boot - 使用 Spring Fox 的 Spring Boot Swagger 实现无法启动 bean 'documentationPluginsBootstrapper'
- c# - 如何为 Mediatr INotificationHandler 的单元测试发送 Moq 通知
- unix - 用于打印给定 num 的数字总和的 shell 脚本。如果输入为负数,则将 Not a positive num 显示为 o/p