Skip to content

Instantly share code, notes, and snippets.

@danbarua
Created October 6, 2015 10:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danbarua/832db08cadcfb13c090c to your computer and use it in GitHub Desktop.
Save danbarua/832db08cadcfb13c090c to your computer and use it in GitHub Desktop.
Reshaper layout template used with StyleCop (not default StyleCop ordering rules)
<?xml version="1.0" encoding="utf-8"?>
<!-- Last updated 15.05.2012 -->
<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
<!-- Do not reorder COM interfaces -->
<Pattern>
<Match>
<And Weight="2000">
<Kind Is="interface"/>
<Or>
<HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
<HasAttribute CLRName="System.Runtime.InteropServices.ComImport"/>
</Or>
</And>
</Match>
</Pattern>
<!-- Do not reorder P/Invoke structs -->
<Pattern>
<Match>
<And Weight="2000">
<Or>
<Kind Is="struct"/>
<Kind Is="class"/>
</Or>
<HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/>
</And>
</Match>
</Pattern>
<!-- Do not reorder P/Invoke classes (called xxxNativeMethods) -->
<Pattern>
<Match>
<And Weight="2000">
<Kind Is="class"/>
<Name Is=".*NativeMethods" />
</And>
</Match>
</Pattern>
<!-- StyleCop pattern -->
<Pattern RemoveAllRegions="true">
<Match>
<Or Weight="1000" >
<Kind Is="class" />
<Kind Is="struct" />
<Kind Is="interface"/>
</Or>
</Match>
<!-- Constants -->
<Entry>
<Match>
<Kind Is="constant"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Name/>
</Sort>
</Entry>
<!-- Static fields -->
<Entry>
<Match>
<And>
<Kind Is="field"/>
<Static />
</And>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Readonly/>
<Name/>
</Sort>
</Entry>
<!-- Fields -->
<Entry>
<Match>
<Kind Is="field"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Readonly/>
<Name/>
</Sort>
</Entry>
<!-- constructors and destructors -->
<Entry>
<Match>
<Or Weight="200">
<Kind Is="constructor"/>
<Kind Is="destructor"/>
</Or>
</Match>
<Sort>
<Static/>
<Kind Order="constructor destructor"/>
<Access Order="public internal protected-internal protected private"/>
</Sort>
</Entry>
<!-- delegates -->
<Entry>
<Match>
<Kind Is="delegate"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Static />
<Name/>
</Sort>
</Entry>
<!-- public events -->
<Entry>
<Match>
<And>
<Kind Is="event"/>
<Access Is="public"/>
</And>
</Match>
<Sort>
<Access Order="public" />
<Static />
<Name/>
</Sort>
</Entry>
<!-- interface events -->
<Entry>
<Match>
<And>
<Kind Is="event"/>
<ImplementsInterface/>
</And>
</Match>
<Sort>
<ImplementsInterface Immediate="true"/>
<Name/>
</Sort>
</Entry>
<!-- other events -->
<Entry>
<Match>
<Kind Is="event"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Static />
<Name/>
</Sort>
</Entry>
<!-- enum -->
<Entry>
<Match>
<Kind Is="enum"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Name/>
</Sort>
</Entry>
<!-- interfaces -->
<Entry>
<Match>
<Kind Is="interface" />
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Name/>
</Sort>
</Entry>
<!-- public properties -->
<Entry>
<Match>
<And>
<Kind Is="property"/>
<Access Is="public"/>
</And>
</Match>
<Sort>
<Access Order="public"/>
<Static/>
<Name/>
</Sort>
</Entry>
<!-- interface properties -->
<Entry>
<Match>
<And>
<Kind Is="property"/>
<ImplementsInterface/>
</And>
</Match>
<Sort>
<ImplementsInterface Immediate="true"/>
<Name/>
</Sort>
</Entry>
<!-- other properties -->
<Entry>
<Match>
<Kind Is="property"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Static/>
<Name/>
</Sort>
</Entry>
<!-- public indexers -->
<Entry>
<Match>
<And>
<Kind Is="indexer" Weight="1000" />
<Access Is="public"/>
</And>
</Match>
<Sort>
<Access Order="public" />
<Static/>
<Name/>
</Sort>
</Entry>
<!-- interface indexers -->
<Entry>
<Match>
<And>
<Kind Is="indexer" Weight="1000"/>
<ImplementsInterface/>
</And>
</Match>
<Sort>
<ImplementsInterface Immediate="true"/>
<Name/>
</Sort>
</Entry>
<!-- other indexers -->
<Entry>
<Match>
<Kind Is="indexer" Weight="1000" />
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Static/>
<Name/>
</Sort>
</Entry>
<!-- public methods (includes operators) -->
<Entry>
<Match>
<And>
<Or>
<Kind Is="method"/>
<Kind Is="operator"/>
</Or>
<Access Is="public"/>
</And>
</Match>
<Sort>
<Access Order="public"/>
<Static/>
<Name/>
</Sort>
</Entry>
<!-- interface methods -->
<Entry>
<Match>
<And>
<Kind Is="method"/>
<ImplementsInterface/>
</And>
</Match>
<Sort>
<ImplementsInterface Immediate="true"/>
<Name/>
</Sort>
</Entry>
<!-- other methods -->
<Entry>
<Match>
<Kind Is="method"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private"/>
<Static/>
<Name/>
</Sort>
</Entry>
<!-- operators -->
<Entry>
<Match>
<Kind Is="operator"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Static/>
<Name/>
</Sort>
</Entry>
<!-- Nested structs -->
<Entry>
<Match>
<Kind Is="struct"
Weight="600" />
</Match>
<Sort>
<Static />
<Access Order="public internal protected-internal protected private" />
<Name/>
</Sort>
</Entry>
<!-- Nested classes -->
<Entry>
<Match>
<Kind Is="class"
Weight="700" />
</Match>
<Sort>
<Static />
<Access Order="public internal protected-internal protected private" />
<Name/>
</Sort>
</Entry>
<!-- all other members -->
<Entry/>
</Pattern>
</Patterns>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment