我希望在活动的文本视图中每当插入符号位置改变时能够收到通知。看起来 EnvDTE 提供的唯一事件是 LineChanged 事件,但是它在同一行内左右移动插入符号时不会触发。
我知道 VS2010 的编辑器扩展可以轻松完成这项任务,但是我需要一个向后兼容 VS2008 的解决方案。
我知道 VS2010 的编辑器扩展可以轻松完成这项任务,但是我需要一个向后兼容 VS2008 的解决方案。
你看过这个吗:DTE2事件不触发
你必须保留事件对象的本地实例,否则事件将不会触发(我认为是因为COM支持的事件对象超出了范围并被GC回收):
public class MyVSPackage
{
TextEditorEvents _textEditorEvents;
public MyVSPackage()
{
_textEditorEvents = DTE.Events.TextEditorEvents;
_textEditorEvents.LineChanged += (point, endPoint, hint) => //Do something here
}
}
.GetSelection(...)
从中获取插入符号/选择位置,但找不到通知我它何时更改的事件。 - Omer Raviv