【问题标题】:detecting activity in the visual studio editor在 Visual Studio 编辑器中检测活动
【发布时间】:2010-10-18 10:44:17
【问题描述】:

我想知道 Visual Studio 编辑器是否以编程方式挂钩,以便我可以确定是否有人在编辑器中输入。

谢谢!

【问题讨论】:

    标签: .net visual-studio visual-studio-2010 editor vsix


    【解决方案1】:

    在 Visual Studio 中有多种方法可以做到这一点。这里有几个不同的钩子可用。

    • IOleCommandTarget:Visual Studio 中的击键最终会以命令的形式出现并通过此链进行路由
    • KeyProcessor:对于直接 WPF 键盘输入,您可以创建 MEF IKeyProcessorProvider 组件并让创建的 KeyProcessor 处理输入
    • ITextBuffer::Changed:直接监听底层缓冲区的变化来解释输入。

    每一个都相当复杂,在 SO 问题中为它们添加完整样本是不合理的。但是只要在谷歌中输入他们的名字就可以让你找到正确的方向。

    请注意,Visual Studio 中的键盘输入是一个非常复杂的过程。它必须处理 Windows 消息、旧式 Visual Studio 命令、WPF、MEF 挂钩、翻译加速器等......它非常混乱,试图在任何一个阻塞点处理所有输入都充满了问题。在开发插件时,我已尽力记录 Visual Studio 键盘输入的当前状态,您可以在此处找到它

    不过,这并不是一个完整的理解。

    【讨论】:

      【解决方案2】:

      绝对有。成堆的插件做同样的事情(例如 ViEmu、Resharper 等)。去阅读关于使用 MEF 扩展 VS 编辑器的文档。那里有很多,一个简单的谷歌查询会产生很多结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-15
        • 1970-01-01
        • 2010-09-05
        • 1970-01-01
        相关资源
        最近更新 更多