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

Я работаю с объектной моделью Visual Studio 2008, как показано здесь: VS2008 Automation Object Model Chart.

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

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

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

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

1 ответ

Решение

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

textSelection = DTE.ActiveWindow.Selection

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

Другие вопросы по тегам