Ich habe einige Probleme beim Konfigurieren der "Typ Mitglieder Layout" von Resharper 7.1.3.Vermeiden Sie Resharper, um eine Region per Deklaration hinzuzufügen
Ich begann mit der Vorlage für die Verwendung mit Regionen und versuchte, sie für meine Bedürfnisse anzupassen.
BITTE: Keine Diskussion über „nicht mit Regionen usw. ...“
Mein erstes Problem ist, dass er zur Zeit eine Region pro Felddeklaration in Code erstellen, aber natürlich will ich eine habe Region mit "Statische Felder und Konstanten" und EINE Region mit "Feldern und Konstanten".
Das zweite Problem ist, dass er keine einzige Region für meine "Konstruktoren" erstellt. Es scheint, dass er nur die ersten zwei "Muster" in der Konfiguration akzeptiert, aber die anderen ignoriert.
Sehen Sie hier die mehrere Regionen Problem:
Mein Typ Mitglieder-Layout sieht wie folgt aus:
<?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>
wäre cool, wenn mir jemand den Hinweis geben könnte;)
Prost, Chris
Hallo, großer Dank für Ihre schnelle Antwort. Es wirkt wie ein Zauber ;)! Aber der Grund, warum ich mehrere "Muster" verwendet habe, war, dass der Resharper Regionen in den Feldern und Konstantenbereichen bereinigen wollte, aber dass er die Regionen in den Methoden, Eigenschaften usw. alleine lassen sollte. Weil ich manchmal Regionen verwende, um spezielle Methoden zu gruppieren. Wenn ich den "Cleanup Code" verwenden würde, würde Resharper meine benutzerdefinierten Regionen zerstören. :( – ChrisTTian667
@ ChrisTTian667 Leider ist es jetzt unmöglich, Regionen selektiv zu entfernen. –