检测视觉工作室编辑器中的活动
-
08-10-2019 - |
题
我想知道是否有一个编程性的挂钩在Visual Studio编辑器中,以便我可以确定某人是否在编辑器中键入。
谢谢!
解决方案
在Visual Studio中有多种方法可以做到这一点。这里有一些不同的钩子。
IOleCommandTarget
: :Visual Studio中的关键笔触最终将以命令表示自己,并通过此链条路由KeyProcessor
: :对于直wpf键盘输入,您可以创建MEFIKeyProcessorProvider
组件,让创建KeyProcessor
处理输入ITextBuffer::Changed
: :直接聆听基础缓冲区的更改以解释输入。
这些中的每一个都相当复杂,在SO问题中为他们添加完整的样本是不合理的。但是,仅将他们的名字键入Google就应该使您指向正确的方向。
请注意,尽管Visual Studio中的键盘输入是一个非常复杂的过程。它必须处理Windows消息,旧样式的Visual Studio命令,WPF,MEF挂钩,翻译加速器等...这很混乱,试图在任何一个choke点上解决所有输入都充满了问题。我已经尽力记录视觉工作室键盘输入的当前状态,您可以在这里找到它
不过,这几乎不是一个完全的理解。
其他提示
绝对是。插件的插件执行相同的操作(例如Viemu,Resharper等)。去阅读有关使用MEF扩展VS编辑器的文档。那里有很多,一个简单的Google查询将为您带来很多结果。
不隶属于 StackOverflow