Расширение Visual Studio 2010 получить выделенный текст - PullRequest
4 голосов
/ 02 июля 2010

Я пишу свое собственное расширение. Я создал кнопку панели инструментов. Я использовал шаблон «Пакет Visual Studio», и во время работы мастера была возможность создать командную кнопку (или что-то в этом роде)

Итак, кнопка появляется, но я не могу понять, как получить текущий документ или выделенный текст в документе.

Любая помощь будет оценена.

1 Ответ

8 голосов
/ 02 июля 2010

Есть два способа приблизиться к нему:

  1. Обрабатывайте кнопку глобально и используйте DTE, чтобы получить текущий документ (DTE.ActiveDocument) и выделенный текст (((TextDocument)activeDoc).Selection.Text). Вы можете получить объект DTE верхнего уровня в вашем пакете, написав: DTE dte = GetService(typeof(SDTE)) as DTE; Обратите внимание, что активный документ может быть null.
  2. Создать обработчик команд на уровне редактора для обработки данной команды. Написанное мной расширение Align Assignments ( source ) является примером этого. Вот как выглядит фильтр команд .
...