gpt4 book ai didi

visual-studio-extensions - 当文档中的插入符号位置发生变化时会触发事件?

转载 作者:行者123 更新时间:2023-12-03 19:08:00 24 4
gpt4 key购买 nike

在我的 visual Studio 2012 扩展中,我正在使用 Active EnvDTE.Document

windowEvents = dte2.Events.WindowEvents;
windowEvents.WindowActivated += WindowActivated;

private void WindowActivated(Window gotfocus, Window lostfocus)
{
if (gotfocus.Type == vsWindowType.vsWindowTypeDocument)
{
ProcessDocument(gotfocus.Document);
}
}

我想知道文档中的插入符号位置何时更改,但我找不到合适的事件来附加。我发现了一些类似 textEditorEvents.LineChanged 的事件,但这只会在文本更改时触发。我需要处理的情况是当插入符号位置发生变化时,但没有更改为文本。

实现此目标的最佳方法是什么?是否存在这样的文档事件?

最佳答案

提示......我希望有一种更直接的方式来做你想做的事。

对于事件,据我所知,在 EnvDTE 界面中没有任何东西可以执行此操作。查看插入符号何时明确定位的核心编辑器界面是 ITextCaret.PositionChanged .连接一个的方法是导出一个 IWpfTextViewCreationListener,当您调用 TextViewCreated 方法时,您将获得 View ,并且其上的 Caret 属性将具有事件。然后您可以正常附加到该事件并对其执行您想要的操作。

一般来说,使用这种方法您可能会遇到一些奇怪的事情:首先,您不一定知道插入符导航是由用户还是通过某些自动化系统完成的。其次,也不要指望重复导航会起作用,因为如果我点击一个单元测试并且我已经这样做了,就不会有要拦截的插入符号导航。

您最好还是看看您关心的特定测试运行程序是否允许可扩展性。许多运行器是“可插入的”,适配器告诉运行器源代码在哪里。许多运行者的许多适配器都是开源的,因此在那里进行简单的修复可能会带来更好的长期体验。

关于visual-studio-extensions - 当文档中的插入符号位置发生变化时会触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16905836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com