В моем визуальном расширении Studio 2012 Я получаю Активный 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, потому что оно запускается до перемещения каретки. Я рад использовать все, что могу, чтобы получить правильный результат. – jheppinstall
И что вы собираетесь делать, когда у вас есть это? –