Wie kann ich DTE.ActiveWindow.Selection in das nächste Codeelement in einem VS2008 Makro drehen?
-
19-08-2019 - |
Frage
Ich arbeite mit dem Visual Studio 2008-Objektmodell wie hier zu sehen: VS2008 Automatisierungsobjektmodell-Diagramm .
Ich mag auf einem CodeElement
in einem VS2008 Marco, handeln, die durch die Benutzertextauswahl im aktuellen CS- Dokument gewählt wird.
Während ich nicht wirklich egal, wie ich es bekommen, ist es das, was ich versucht: Das VS-Objektmodell gibt Ihnen DTE.ActiveWindow.Selection
, welche vom Typ TextSelection
ist, und dann gibt es die DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElementFromPoint()
Methode, die eine TextPoint
und vsCMEElement
als Parameter übernimmt und gibt die CodeElment
wie ich will.
Allerdings kann ich nicht scheinen, eine TextElement
von einem TextSelection
zu erhalten.
Kann mir jemand sagen, wie man einen CodeElement
aus dem ausgewählten Text in einer CS-Datei zu bekommen?
Lösung
Versuchen Sie folgendes:
= Textselection DTE.ActiveWindow.Selection
= Codeelement textSelection.ActivePoint.CodeElement (vsCMElement.vsCMElementClass)