【发布时间】:2013-06-03 21:05:55
【问题描述】:
在我的 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 这样的事件,但这只会在文本更改时触发。我需要处理的情况是插入符号位置发生更改,但未更改为文本。
实现这一目标的最佳方法是什么?是否存在这样的 Document 事件?
【问题讨论】:
-
你的方案是什么?你想让你的扩展做什么?您很可能应该使用编辑器 API 并完全远离 DTE。
-
当您在测试运行器中选择测试时,它会打开文件并移动到测试行。我需要知道打开文件时插入符号移动到的行号(以及测试的行)。 WindowActivated 事件总是返回 1,因为它在插入符号移动之前被触发。我很乐意尽我所能获得正确的结果。
-
拥有它之后你会怎么做?
-
之后,我将找到出现在下一行中的一些文本,然后打开另一个文件并导航到该文本中出现的行号。有问题的文件是 SpecFlow feature.cs 文件。
-
好的,所以我们真正遇到的是一个 XY 问题。这是什么测试运行器?你的实际情况是什么?
标签: visual-studio-extensions envdte