Como posso transformar DTE.ActiveWindow.Selection no CodeElement mais próximo em uma macro VS2008?
-
19-08-2019 - |
Pergunta
Eu estou trabalhando com o modelo de objeto Visual Studio 2008 como visto aqui: VS2008 Automation Object Model Chart .
Eu quero atuar em um CodeElement
em um VS2008 Marco, que é escolhido pela seleção de texto do usuário no documento .cs atual.
Enquanto eu realmente não me importo como eu entendo, isso é o que eu tentei: O modelo de objeto VS lhe dá DTE.ActiveWindow.Selection
que é do tipo TextSelection
, e depois há o método DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElementFromPoint()
que leva um TextPoint
e vsCMEElement
como parâmetros e retorna o CodeElment
como eu quero.
No entanto, eu não consigo obter um TextElement
de um TextSelection
.
Alguém pode me dizer como conseguir um CodeElement
do texto selecionado em um arquivo .cs?
Solução
Tente isto:
textSelection = DTE.ActiveWindow.Selection
CodeElement = textSelection.ActivePoint.CodeElement (vsCMElement.vsCMElementClass)