gpt4 book ai didi

ReSharper Type Members Layout pattern to the public enums after 构造函数

转载 作者:行者123 更新时间:2023-12-01 15:34:25 26 4
gpt4 key购买 nike

我将此模式用于类型成员布局:

<?xml version="1.0" encoding="utf-8"?>
<!--
I. Overall

I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used
I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries
I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared
I.4 The contents of each entry is sorted by given keys (First key is primary, next key is secondary, etc). Then the declarations are grouped and en-regioned by given property

II. Available match operands

Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'.
The default weight is 1

II.1 Boolean functions:
II.1.1 <And>....</And>
II.1.2 <Or>....</Or>
II.1.3 <Not>....</Not>

II.2 Operands
II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member
II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression
II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression
II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private
II.2.5 <Static/>
II.2.6 <Abstract/>
II.2.7 <Virtual/>
II.2.8 <Override/>
II.2.9 <Sealed/>
II.2.10 <Readonly/>
II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression
II.2.12 <HandlesEvent />
-->

<!-- Changed pattern in (more) accordance to StyleCop from: http://blog.mijalko.com/2009/01/resharper-stylecop-and-type-members.html -->

<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
<!--Do not reorder COM interfaces and structs marked by StructLayout attribute-->
<Pattern>
<Match>
<Or Weight="100">
<And>
<Kind Is="interface"/>
<Or>
<HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
<HasAttribute CLRName="System.Runtime.InteropServices.ComImport"/>
</Or>
</And>
<HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/>
</Or>
</Match>
</Pattern>
<!--Special formatting of NUnit test fixture-->
<Pattern RemoveAllRegions="true">
<Match>
<And Weight="100">
<Kind Is="class"/>
<HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/>
</And>
</Match>
<!--Setup/Teardow-->
<Entry>
<Match>
<And>
<Kind Is="method"/>
<Or>
<HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/>
<HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/>
<HasAttribute CLRName="NUnit.Framework.FixtureSetUpAttribute" Inherit="true"/>
<HasAttribute CLRName="NUnit.Framework.FixtureTearDownAttribute" Inherit="true"/>
</Or>
</And>
</Match>
</Entry>
<!--All other members-->
<Entry/>
<!--Test methods-->
<Entry>
<Match>
<And Weight="100">
<Kind Is="method"/>
<HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/>
</And>
</Match>
<Sort>
<Name/>
</Sort>
</Entry>
</Pattern>
<!--Default pattern-->
<Pattern>
<!--Delegates-->
<Entry>
<Match>
<And Weight="100">
<Access Is="public"/>
<Kind Is="delegate"/>
</And>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Name/>
</Sort>
</Entry>
<!--Fields and constants-->
<Entry>
<Match>
<Or>
<Kind Is="field"/>
<Kind Is="constant"/>
</Or>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Kind Order="constant"/>
<Readonly/>
<Static/>
<Name/>
</Sort>
</Entry>
<!--Enums-->
<Entry>
<Match>
<Kind Is="enum"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Name/>
</Sort>
</Entry>
<!--Constructors. Place static one first-->
<Entry>
<Match>
<Kind Is="constructor"/>
</Match>
<Sort>
<Static/>
<Access Order="public internal protected-internal protected private"/>
</Sort>
</Entry>
<!--Destructors. Place static one first-->
<Entry>
<Match>
<Kind Is="destructor"/>
</Match>
<Sort>
<Static/>
<Access Order="public internal protected-internal protected private"/>
</Sort>
</Entry>
<!-- Events -->
<Entry>
<Match>
<Kind Is="event"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Name/>
</Sort>
</Entry>
<!--Properties-->
<Entry>
<Match>
<And>
<Kind Is="property"/>
<Not>
<Kind Is="indexer"/>
</Not>
</And>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Static/>
<Abstract/>
<Virtual/>
<Override/>
<Name/>
</Sort>
</Entry>
<!--Indexers-->
<Entry>
<Match>
<Kind Is="indexer"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Static/>
<Abstract/>
<Virtual/>
<Override/>
<Name/>
</Sort>
</Entry>
<!--Methods-->
<Entry>
<Match>
<And>
<Or>
<Kind Is="method"/>
<Kind Is="operator"/>
<HandlesEvent/>
</Or>
<Not>
<Kind Is="destructor"/>
</Not>
</And>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Static/>
<Abstract/>
<Virtual/>
<Override/>
<Name/>
</Sort>
</Entry>
<!--all other members-->
<Entry/>
<!--nested types-->
<Entry>
<Match>
<Kind Is="type"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Static/>
<Abstract/>
<Virtual/>
<Override/>
<Name/>
</Sort>
</Entry>
</Pattern>
</Patterns>

效果很好。但是,如果我在解决方案上清理代码,我会得到一件我认为应该可以使用该模式解决的事情。

  • SA1201:所有枚举都必须放在所有构造函数之后。

如何让所有公共(public)枚举都出现在(公共(public))构造函数之后?

最佳答案

最简单的方法是安装 StyleCopForResharper 插件,它将为您重新定义所有这些规则。

http://stylecopforresharper.codeplex.com/releases

关于ReSharper Type Members Layout pattern to the public enums after 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com