条件元素是.NET中的CodeElement吗?

时间:2010-11-21 14:31:42

标签: .net visual-studio-addins

条件元素可以是.NET中的CodeElement吗? 我搜索了这个页面: http://msdn.microsoft.com/en-us/library/envdte.vscmelement(VS.80).aspx

没有找到任何相关信息。

我正在编写一个宏/加载项来实现以下功能: 如果光标位于if条件语句的起始点,我希望突出显示相应的End If语句。 如果条件元素(if,switch等等)可以表示为CodeElement类型,那么作业就更容易了。

2 个答案:

答案 0 :(得分:1)

恐怕答案是否定的。代码元素具有方法或属性的粒度(如果您在方法之外,则可以获得一些信息)。在方法中,你不知道有什么样的陈述。

对不起。

答案 1 :(得分:0)

不,正如Timores所说,代码元素具有方法或属性的粒度。 要执行您需要执行的操作,您需要在编辑器中查看代码的实际抽象语法树。

实现所需内容的最简单方法可能是DXCore插件 - 请参阅DXCore社区页面和/或在那里寻求更多帮助。安装DXCore之后,您可以在Visual Studio的DevExpress菜单下查看树形浏览器,在那里您将看到代表您的“if”语句的抽象语法树的节点,然后查找代码示例,了解如何使用与之互动。

我应该注意在Resharper中已经有很好的大括号匹配突出显示,并且还有CodeKana VS插件突出显示了不同颜色的每种类型的控制语句(if / while / etc)。