5

Resharper 7.1.3 の「タイプ メンバー レイアウト」の設定に問題があります。

地域で使用するためのテンプレートの使用を開始し、ニーズに合わせてカスタマイズしようとしました。

PLEASE: 「リージョンを使用しないなど...」についての議論はありません。

私の最初の問題は、彼が現在コードでフィールド宣言ごとに1つの領域を作成していることですが、もちろん、「静的フィールドと定数」を含む1つの領域と「フィールドと定数」を含む1つの領域が必要です。

2 番目の問題は、彼が私の「コンストラクター」に対して単一のリージョンを作成しないことです。彼は構成の最初の 2 つの「パターン」を受け入れるだけで、他のパターンは無視しているようです.?!

ここで複数のリージョンの問題を参照してください。

地域が多すぎる

私の型メンバーのレイアウトは次のようになります。

    <?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 />
-->

<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>
            <Group Region="Setup/Teardown"/>
        </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>

    <Pattern RemoveAllRegions="true">
        <!-- static fields and constants -->
        <Entry>
            <Match>
                    <Or>
                        <And>
                            <Kind Is="constant"/>
                            <Static/>
                        </And>              
                        <And>
                            <Kind Is="field"/>
                            <Static/>
                        </And>                              
                    </Or>

            </Match>
            <Sort>
                <Readonly/>
                <Name/>
            </Sort>
            <Group>
                <Name Region="Static Fields and Constants"/>
            </Group>
        </Entry>

        <!--fields and constants-->
        <Entry>
            <Match>
                    <Or>
                        <And>
                            <Kind Is="constant"/>
                            <Not>
                                <Static/>
                            </Not>
                        </And>              
                        <And>
                            <Kind Is="field"/>
                            <Not>
                                <Static/>
                            </Not>
                        </And>                  
                    </Or>
            </Match>
            <Sort>
                <Readonly/>
                <Name/>
            </Sort>
            <Group>
                <Name Region="Fields and Constants"/>
            </Group>
        </Entry>
    </Pattern>

    <!--Default pattern-->
    <Pattern RemoveAllRegions="false">

        <!--public delegate-->
        <Entry>
            <Match>
                <And Weight="100">
                    <Access Is="public"/>
                    <Kind Is="delegate"/>
                </And>
            </Match>
            <Sort>
                <Name/>
            </Sort>
            <Group Region="Delegates"/>
        </Entry>

        <!--public enum-->
        <Entry>
            <Match>
                <And Weight="100">
                    <Access Is="public"/>
                    <Kind Is="enum"/>
                </And>
            </Match>
            <Sort>
                <Name/>
            </Sort>
            <Group>
                <Name Region="${Name} enum"/>
            </Group>
        </Entry>

        <!-- Constructors. Place static one first -->
        <Entry>
            <Match>
                <Kind Is="constructor"/>
            </Match>
            <Sort>
                <Static/>
            </Sort>
            <Group>
                <Name Region="Constructor / Destructor"/>
            </Group>
        </Entry>

        <!--properties, indexers-->
        <Entry>
            <Match>
                <Or>
                    <Kind Is="property"/>
                    <Kind Is="indexer"/>
                </Or>
            </Match>
            <Group Region="Properties"/>
        </Entry>

        <!--interface implementations-->
        <Entry>
            <Match>
                <And Weight="100">
                    <Kind Is="member"/>
                    <ImplementsInterface/>
                </And>
            </Match>
            <Sort>
                <ImplementsInterface Immediate="true"/>
            </Sort>
            <Group>
                <ImplementsInterface Immediate="true" Region="${ImplementsInterface} Members"/>
            </Group>
        </Entry>

        <!--all other members-->
        <Entry/>

        <!--nested types-->
        <Entry>
            <Match>
                <Kind Is="type"/>
            </Match>
            <Sort>
                <Name/>
            </Sort>
            <Group>
                <Name Region="Nested type: ${Name}"/>
            </Group>
        </Entry>
    </Pattern>
</Patterns>

誰かが私にヒントを与えることができればクールだろう;)

乾杯、クリス

4

1 に答える 1

5

書いてみましたか

<Group Region="Static Fields and Constants"/>

それ以外の

 <Group>
     <Name Region="Static Fields and Constants"/>
 </Group>

?

2 番目の問題については、2 つのデフォルト パターンを作成しました。「静的フィールドと定数」と「フィールドと定数」のルールは最初のパターンに、コンストラクターのルールは 2 番目のパターンに来ました。ReSharper は最初に一致したパターンを受け入れ、他のすべてを無視するようです。パターンを組み合わせるには、次の行を削除する必要があります。

</Pattern>

<!--Default pattern-->
<Pattern RemoveAllRegions="false">
于 2013-05-13T12:05:11.760 に答える