Как я могу превратить DTE.ActiveWindow.Selection в ближайший CodeElement в макросе VS2008? - PullRequest
2 голосов
/ 22 января 2009

Я работаю с объектной моделью Visual Studio 2008, как показано здесь: Диаграмма объектной модели автоматизации VS2008 .

Я хочу воздействовать на CodeElement в VS2008 Marco, который выбирается выбором текста пользователя в текущем документе .cs.

Хотя мне все равно, как я его получаю, я попробовал вот что: объектная модель VS дает вам DTE.ActiveWindow.Selection типа TextSelection, а затем есть метод DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElementFromPoint(), который принимает TextPoint и vsCMEElement в качестве параметров и возвращает CodeElment, как я хочу.

Однако я не могу получить TextElement от TextSelection.

Может кто-нибудь подсказать, как получить CodeElement из выделенного текста в файле .cs?

1 Ответ

2 голосов
/ 09 февраля 2009

Попробуйте это:

textSelection = DTE.ActiveWindow.Selection

codeElement = textSelection.ActivePoint.CodeElement (vsCMElement.vsCMElementClass)

...