ReSharper 2017:忽略结构的文件布局规则

时间:2018-01-09 22:33:18

标签: resharper

我有一个自定义文件布局类型模式,它根据我定义的一组特定首选项格式化我的源文件。运行代码清理时自动应用格式。

我遇到的问题是:对于我用于P / Invoke的结构,成员的顺序很重要。如何让ReSharper忽略为结构应用我的文件布局类型模式?

我认为以前版本的ReSharper曾经有过这个版本但是在2017年的ReSharper中,我似乎无法弄清楚如何做到这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在开箱即用的文件布局中,有一个名为“不可记录类型”的特殊模式,它完全符合您的要求: enter image description here

内部有“Struct”类型,主模式不会触及此模式匹配的任何实体。

enter image description here

您的自定义文件布局似乎没有这种模式。

但是,您可以将以下XML代码添加到选项中的<Patterns>标记以将其恢复(ReSharper |选项|代码编辑| C#|文件布局|顶部的XAML按钮)

  <TypePattern DisplayName="Non-reorderable types">
    <TypePattern.Match>
      <Or>
        <And>
          <Kind Is="Interface" />
          <Or>
            <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" />
            <HasAttribute Name="System.Runtime.InteropServices.ComImport" />
          </Or>
        </And>
        <Kind Is="Struct" />
        <HasAttribute Name="JetBrains.Annotations.NoReorderAttribute" />
        <HasAttribute Name="JetBrains.Annotations.NoReorder" />
      </Or>
    </TypePattern.Match>
  </TypePattern>