ReSharper 2017:忽略结构的文件布局规则
ReSharper 2017: Ignore File Layout Rules for Structs
我有一个自定义文件布局类型模式,它根据我定义的一组特定首选项来格式化我的源文件。当我 运行 代码清理时,格式会自动应用。
我遇到的问题是:对于我用于 P/Invoke 的结构,成员的顺序很重要。如何让 ReSharper 忽略对结构应用我的文件布局类型模式?
我认为以前版本的 ReSharper 曾经有这个功能,但在 ReSharper 2017 中,我似乎不知道该怎么做。有什么建议吗?
在开箱即用的文件布局中,有一个名为 "Non-recordable types" 的特殊模式,它完全符合您的要求:
它内部有 "Struct" 类型,主模式不会触及与该模式匹配的任何实体。
您的自定义文件布局似乎没有这样的模式。
但是,您可以将以下 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>
我有一个自定义文件布局类型模式,它根据我定义的一组特定首选项来格式化我的源文件。当我 运行 代码清理时,格式会自动应用。
我遇到的问题是:对于我用于 P/Invoke 的结构,成员的顺序很重要。如何让 ReSharper 忽略对结构应用我的文件布局类型模式?
我认为以前版本的 ReSharper 曾经有这个功能,但在 ReSharper 2017 中,我似乎不知道该怎么做。有什么建议吗?
在开箱即用的文件布局中,有一个名为 "Non-recordable types" 的特殊模式,它完全符合您的要求:
它内部有 "Struct" 类型,主模式不会触及与该模式匹配的任何实体。
您的自定义文件布局似乎没有这样的模式。
但是,您可以将以下 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>