如何将DTE.ActiveWindow.Selection转换为VS2008宏中最接近的CodeElement?

时间:2009-01-22 17:37:47

标签: c# .net visual-studio visual-studio-macros envdte

我正在使用Visual Studio 2008对象模型,如下所示:VS2008 Automation Object Model Chart

我想对VS2008 Marco中的CodeElement采取行动,这是由当前.cs文档中用户的文本选择选择的。

虽然我并不在乎我是如何得到它的,但这就是我尝试过的:VS对象模型为您提供类型为DTE.ActiveWindow.Selection的{​​{1}},然后是{{1将TextSelectionDTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElementFromPoint()作为参数并按我想要的方式返回TextPoint的方法。

但我似乎无法从vsCMEElement获得CodeElment

有人可以告诉我如何从.cs文件中的所选文本中获取TextElement吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

textSelection = DTE.ActiveWindow.Selection

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