【问题标题】:Is a conditional element a CodeElement in .NET?条件元素是 .NET 中的 CodeElement 吗?
【发布时间】:2010-11-21 14:31:42
【问题描述】:

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

没有找到任何东西。

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

【问题讨论】:

    标签: .net visual-studio-addins


    【解决方案1】:

    恐怕答案是否定的。代码元素具有方法或属性的粒度(或者,如果您在方法之外,您将获得一些信息)。在一个方法里面,你不知道有什么样的语句。

    对不起。

    【讨论】:

    • 谢谢蒂莫尔斯。还有其他方法可以实现吗?
    【解决方案2】:

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

    完成您想要的最简单的方法可能是作为DXCore 插件 - 请参阅 DXCore 社区页面和/或在那里寻求更多帮助。安装 DXCore 后,您可以在 Visual Studio 中的 DevExpress 菜单下查看树浏览器,您将在其中看到代表“if”语句的抽象语法树的节点,然后查找代码示例与之互动。

    我应该注意到,Resharper 中已经有相当不错的大括号匹配突出显示,还有 CodeKana VS 插件可以用不同的颜色突出显示每种类型的控制语句(if/while/etc)。

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多