Skip to content

Instantly share code, notes, and snippets.

@DanielRose
Forked from sliekens/TypeMemberLayout.xaml
Last active June 29, 2018 15:36
Show Gist options
  • Select an option

  • Save DanielRose/e59777c0d47d0d4aa94a to your computer and use it in GitHub Desktop.

Select an option

Save DanielRose/e59777c0d47d0d4aa94a to your computer and use it in GitHub Desktop.

Revisions

  1. DanielRose revised this gist Jan 7, 2015. 1 changed file with 262 additions and 219 deletions.
    481 changes: 262 additions & 219 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -75,238 +75,281 @@
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" Priority="1000" RemoveRegions="All">
    <TypePattern DisplayName="StyleCop Layout" RemoveRegions="All" Priority="1000">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class" />
    <Kind Is="Struct" />
    <Kind Is="Interface" />
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants">
    <Entry.Match>
    <Kind Is="Constant" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Static fields">
    <Entry.Match>
    <And>
    <Region Name="Constants">
    <Entry DisplayName="Constants">
    <Entry.Match>
    <Kind Is="Constant" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Static Fields">
    <Entry DisplayName="Static fields">
    <Entry.Match>
    <And>
    <Kind Is="Field" />
    <Static />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Kind Order="Constant Field" />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Readonly />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Fields">
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Readonly />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Constructors and Destructors">
    <Entry DisplayName="Constructors and Destructors" Priority="200">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor" />
    <Kind Is="Destructor" />
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Kind Order="Constant Field" />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Readonly />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Readonly />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors" Priority="200">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor" />
    <Kind Is="Destructor" />
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Kind Order="Constructor Destructor" />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Order="Constructor Destructor" />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Delegates">
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Public Events">
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Explicit Interface Events">
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Events">
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Enums">
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Interfaces">
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Public Properties">
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Explicit Interface Properties">
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Properties">
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers" Priority="1000">
    <Entry.Match>
    <And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Public Indexers">
    <Entry DisplayName="Public indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Explicit Interface Indexers">
    <Entry DisplayName="Interface indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Indexers">
    <Entry DisplayName="Other indexers" Priority="1000">
    <Entry.Match>
    <Kind Is="Indexer" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers" Priority="1000">
    <Entry.Match>
    <Kind Is="Indexer" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Public Methods and Operators">
    <Entry DisplayName="Public methods and operators">
    <Entry.Match>
    <And>
    <Or>
    <Kind Is="Method" />
    <Kind Is="Operator" />
    </Or>
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Explicit Interface Methods">
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Methods">
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Region Name="Operators">
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator" />
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    </Region>
    <Entry DisplayName="Nested structs" Priority="600">
    <Entry.Match>
    <Kind Is="Struct" />
  2. @sliekens sliekens revised this gist Jan 2, 2015. 1 changed file with 121 additions and 243 deletions.
    364 changes: 121 additions & 243 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,12 @@
    <?xml version="1.0" encoding="utf-8"?>
    <?xml version="1.0" encoding="utf-16"?>
    <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
    <TypePattern DisplayName="COM interfaces" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Interface"/>
    <Kind Is="Interface" />
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" />
    <HasAttribute Name="System.Runtime.InteropServices.ComImport" />
    </Or>
    </And>
    </TypePattern.Match>
    @@ -15,440 +15,318 @@
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Struct"/>
    <Kind Is="Class"/>
    <Kind Is="Struct" />
    <Kind Is="Class" />
    </Or>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute" />
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invoke classes (xxxNativeMethods)" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Name Is=".*NativeMethods"/>
    <Kind Is="Class" />
    <Name Is=".*NativeMethods" />
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="DataMembers" Priority="2000">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Field"/>
    <Kind Is="Property"/>
    <Kind Is="Field" />
    <Kind Is="Property" />
    </Or>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute "/>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute " />
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True"/>
    <Kind Is="Class" />
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" />
    </And>
    </TypePattern.Match>
    <Entry DisplayName="Setup/Teardown Methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <Kind Is="Method" />
    <Or>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" />
    </Or>
    </And>
    </Entry.Match>
    </Entry>
    <Entry DisplayName="All other members"/>
    <Entry DisplayName="All other members" />
    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <HasAttribute Name="NUnit.Framework.TestAttribute"/>
    <Kind Is="Method" />
    <HasAttribute Name="NUnit.Framework.TestAttribute" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Name/>
    <Name />
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" Priority="1000" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class"/>
    <Kind Is="Struct"/>
    <Kind Is="Interface"/>
    <Kind Is="Class" />
    <Kind Is="Struct" />
    <Kind Is="Interface" />
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants">
    <Entry.Match>
    <Kind Is="Constant"/>
    <Kind Is="Constant" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Static fields">
    <Entry.Match>
    <And>
    <Kind Is="Field"/>
    <Static/>
    <Kind Is="Field" />
    <Static />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constant</DeclarationKind>
    <DeclarationKind>Field</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly/>
    <Name/>
    <Kind Order="Constant Field" />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Readonly />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field"/>
    <Kind Is="Field" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Readonly />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors" Priority="200">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor"/>
    <Kind Is="Destructor"/>
    <Kind Is="Constructor" />
    <Kind Is="Destructor" />
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constructor</DeclarationKind>
    <DeclarationKind>Destructor</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Kind Order="Constructor Destructor" />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate"/>
    <Kind Is="Delegate" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <Access Is="Public"/>
    <Kind Is="Event" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <ImplementsInterface/>
    <Kind Is="Event" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event"/>
    <Kind Is="Event" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum"/>
    <Kind Is="Enum" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface"/>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <Access Is="Public"/>
    <Kind Is="Property" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <ImplementsInterface/>
    <Kind Is="Property" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property"/>
    <Kind Is="Property" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer"/>
    <Access Is="Public"/>
    <Kind Is="Indexer" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer"/>
    <ImplementsInterface/>
    <Kind Is="Indexer" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers" Priority="1000">
    <Entry.Match>
    <Kind Is="Indexer"/>
    <Kind Is="Indexer" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <Access Is="Public"/>
    <Kind Is="Method" />
    <Access Is="Public" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <ImplementsInterface/>
    <Kind Is="Method" />
    <ImplementsInterface />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    <ImplementsInterface Immediate="True" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method"/>
    <Kind Is="Method" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator"/>
    <Kind Is="Operator" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested structs" Priority="600">
    <Entry.Match>
    <Kind Is="Struct"/>
    <Kind Is="Struct" />
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    <Static />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested classes" Priority="700">
    <Entry.Match>
    <Kind Is="Class"/>
    <Kind Is="Class" />
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    <Static />
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="All other members"/>
    <Entry DisplayName="All other members" />
    </TypePattern>
    </Patterns>
    </Patterns>
  3. @sliekens sliekens revised this gist Dec 5, 2014. 1 changed file with 2 additions and 6 deletions.
    8 changes: 2 additions & 6 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -22,15 +22,11 @@
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invoke classes" Priority="2000">
    <TypePattern DisplayName="P/Invoke classes (xxxNativeMethods)" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Or>
    <Name Is="NativeMethods"/>
    <Name Is="SafeNativeMethods"/>
    <Name Is="UnsafeNativeMethods"/>
    </Or>
    <Name Is=".*NativeMethods"/>
    </And>
    </TypePattern.Match>
    </TypePattern>
  4. @sliekens sliekens revised this gist Dec 4, 2014. 1 changed file with 456 additions and 461 deletions.
    917 changes: 456 additions & 461 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -1,463 +1,458 @@
    <?xml version="1.0" encoding="utf-8"?>
    <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
    <TypePattern DisplayName="COM interfaces">
    <TypePattern.Match>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>

    <TypePattern DisplayName="P/Invoke structs">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Struct"/>
    <Kind Is="Class"/>
    </Or>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    </And>
    </TypePattern.Match>
    </TypePattern>

    <TypePattern DisplayName="P/Invoke classes">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Or>
    <Name Is="NativeMethods" />
    <Name Is="SafeNativeMethods" />
    <Name Is="UnsafeNativeMethods" />
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>

    <TypePattern DisplayName="DataMembers">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Field"/>
    <Kind Is="Property"/>
    </Or>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute "/>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures">
    <TypePattern.Match>
    <And>
    <Kind Is="Class" />
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" />
    </And>
    </TypePattern.Match>
    <Entry DisplayName="Setup/Teardown Methods">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <Or>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" />
    </Or>
    </And>
    </Entry.Match>
    </Entry>

    <Entry DisplayName="All other members" />

    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <HasAttribute Name="NUnit.Framework.TestAttribute" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Name />
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class" />
    <Kind Is="Struct" />
    <Kind Is="Interface"/>
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants">
    <Entry.Match>
    <Kind Is="Constant"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Static fields">
    <Entry.Match>
    <And>
    <Kind Is="Field"/>
    <Static />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constant</DeclarationKind>
    <DeclarationKind>Field</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor"/>
    <Kind Is="Destructor"/>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constructor</DeclarationKind>
    <DeclarationKind>Destructor</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers">
    <Entry.Match>
    <Kind Is="Indexer" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested structs">
    <Entry.Match>
    <Kind Is="Struct" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested classes">
    <Entry.Match>
    <Kind Is="Class" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="All other members" />
    </TypePattern>
    </Patterns>
    <TypePattern DisplayName="COM interfaces" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invoke structs" Priority="2000">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Struct"/>
    <Kind Is="Class"/>
    </Or>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invoke classes" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Or>
    <Name Is="NativeMethods"/>
    <Name Is="SafeNativeMethods"/>
    <Name Is="UnsafeNativeMethods"/>
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="DataMembers" Priority="2000">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Field"/>
    <Kind Is="Property"/>
    </Or>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute "/>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures" Priority="2000">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True"/>
    </And>
    </TypePattern.Match>
    <Entry DisplayName="Setup/Teardown Methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <Or>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True"/>
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True"/>
    </Or>
    </And>
    </Entry.Match>
    </Entry>
    <Entry DisplayName="All other members"/>
    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <HasAttribute Name="NUnit.Framework.TestAttribute"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Name/>
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" Priority="1000" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class"/>
    <Kind Is="Struct"/>
    <Kind Is="Interface"/>
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants">
    <Entry.Match>
    <Kind Is="Constant"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Static fields">
    <Entry.Match>
    <And>
    <Kind Is="Field"/>
    <Static/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constant</DeclarationKind>
    <DeclarationKind>Field</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors" Priority="200">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor"/>
    <Kind Is="Destructor"/>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constructor</DeclarationKind>
    <DeclarationKind>Destructor</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers" Priority="1000">
    <Entry.Match>
    <And>
    <Kind Is="Indexer"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers" Priority="1000">
    <Entry.Match>
    <Kind Is="Indexer"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public"/>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested structs" Priority="600">
    <Entry.Match>
    <Kind Is="Struct"/>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested classes" Priority="700">
    <Entry.Match>
    <Kind Is="Class"/>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="All other members"/>
    </TypePattern>
    </Patterns>
  5. @sliekens sliekens revised this gist Dec 4, 2014. 1 changed file with 57 additions and 22 deletions.
    79 changes: 57 additions & 22 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -1,20 +1,30 @@
    <?xml version="1.0" encoding="utf-8"?>
    <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
    <TypePattern DisplayName="COM interfaces or structs" RemoveRegions="All">
    <TypePattern DisplayName="COM interfaces">
    <TypePattern.Match>
    <Or>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>

    <TypePattern DisplayName="P/Invoke structs">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Struct"/>
    <Kind Is="Class"/>
    </Or>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invokes (NativeMethods, SafeNativeMethods, UnsafeNativeMethods)" RemoveRegions="All">

    <TypePattern DisplayName="P/Invoke classes">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    @@ -26,7 +36,8 @@
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="DataMembers" RemoveRegions="All">

    <TypePattern DisplayName="DataMembers">
    <TypePattern.Match>
    <And>
    <Or>
    @@ -37,7 +48,7 @@
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All">
    <TypePattern DisplayName="NUnit Test Fixtures">
    <TypePattern.Match>
    <And>
    <Kind Is="Class" />
    @@ -58,7 +69,9 @@
    </And>
    </Entry.Match>
    </Entry>

    <Entry DisplayName="All other members" />

    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    @@ -79,15 +92,29 @@
    <Kind Is="Interface"/>
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants and static fields">
    <Entry DisplayName="Constants">
    <Entry.Match>
    <Or>
    <Kind Is="Constant"/>
    <And>
    <Kind Is="Field"/>
    <Static />
    </And>
    </Or>
    <Kind Is="Constant"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Static fields">
    <Entry.Match>
    <And>
    <Kind Is="Field"/>
    <Static />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    @@ -114,7 +141,15 @@
    <Kind Is="Field"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly/>
    <Name/>
    </Entry.SortBy>
  6. @sliekens sliekens revised this gist Dec 4, 2014. 1 changed file with 425 additions and 332 deletions.
    757 changes: 425 additions & 332 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -1,335 +1,428 @@
    <?xml version="1.0" encoding="utf-8"?>
    <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
    <TypePattern DisplayName="COM interfaces or structs" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    </Or>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invokes (NativeMethods, SafeNativeMethods, UnsafeNativeMethods)" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Or>
    <Name Is="NativeMethods" />
    <Name Is="SafeNativeMethods" />
    <Name Is="UnsafeNativeMethods" />
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="DataMembers" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Field"/>
    <Kind Is="Property"/>
    </Or>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute "/>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Kind Is="Class" />
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" />
    </And>
    </TypePattern.Match>
    <Entry DisplayName="Setup/Teardown Methods">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <Or>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" />
    </Or>
    </And>
    </Entry.Match>
    </Entry>
    <Entry DisplayName="All other members" />
    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <HasAttribute Name="NUnit.Framework.TestAttribute" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Name />
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class" />
    <Kind Is="Struct" />
    <Kind Is="Interface"/>
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants and static fields">
    <Entry.Match>
    <Or>
    <Kind Is="Constant"/>
    <And>
    <Kind Is="Field"/>
    <Static />
    </And>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constant</DeclarationKind>
    <DeclarationKind>Field</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access />
    <Readonly />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Readonly/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor"/>
    <Kind Is="Destructor"/>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constructor</DeclarationKind>
    <DeclarationKind>Destructor</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers">
    <Entry.Match>
    <Kind Is="Indexer" />
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods and operators">
    <Entry.Match>
    <And>
    <Or>
    <Kind Is="Method"/>
    <Kind Is="Operator"/>
    </Or>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access/>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested structs">
    <Entry.Match>
    <Kind Is="Struct" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested classes">
    <Entry.Match>
    <Kind Is="Class" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="All other members" />
    </TypePattern>
    <TypePattern DisplayName="COM interfaces or structs" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    </Or>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invokes (NativeMethods, SafeNativeMethods, UnsafeNativeMethods)" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Or>
    <Name Is="NativeMethods" />
    <Name Is="SafeNativeMethods" />
    <Name Is="UnsafeNativeMethods" />
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="DataMembers" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Field"/>
    <Kind Is="Property"/>
    </Or>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute "/>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Kind Is="Class" />
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" />
    </And>
    </TypePattern.Match>
    <Entry DisplayName="Setup/Teardown Methods">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <Or>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" />
    </Or>
    </And>
    </Entry.Match>
    </Entry>
    <Entry DisplayName="All other members" />
    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <HasAttribute Name="NUnit.Framework.TestAttribute" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Name />
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class" />
    <Kind Is="Struct" />
    <Kind Is="Interface"/>
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants and static fields">
    <Entry.Match>
    <Or>
    <Kind Is="Constant"/>
    <And>
    <Kind Is="Field"/>
    <Static />
    </And>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constant</DeclarationKind>
    <DeclarationKind>Field</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Readonly />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Readonly/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor"/>
    <Kind Is="Destructor"/>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constructor</DeclarationKind>
    <DeclarationKind>Destructor</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers">
    <Entry.Match>
    <Kind Is="Indexer" />
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access Order="Public" />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested structs">
    <Entry.Match>
    <Kind Is="Struct" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested classes">
    <Entry.Match>
    <Kind Is="Class" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access>
    <Access.Order>
    <AccessModifier>Public</AccessModifier>
    <AccessModifier>Internal</AccessModifier>
    <AccessModifier>ProtectedInternal</AccessModifier>
    <AccessModifier>Protected</AccessModifier>
    <AccessModifier>Private</AccessModifier>
    </Access.Order>
    </Access>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="All other members" />
    </TypePattern>
    </Patterns>
  7. @sliekens sliekens created this gist Nov 25, 2014.
    335 changes: 335 additions & 0 deletions TypeMemberLayout.xaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,335 @@
    <?xml version="1.0" encoding="utf-8"?>
    <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
    <TypePattern DisplayName="COM interfaces or structs" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <And>
    <Kind Is="Interface"/>
    <Or>
    <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
    <HasAttribute Name="System.Runtime.InteropServices.ComImport"/>
    </Or>
    </And>
    <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute"/>
    </Or>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="P/Invokes (NativeMethods, SafeNativeMethods, UnsafeNativeMethods)" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Kind Is="Class"/>
    <Or>
    <Name Is="NativeMethods" />
    <Name Is="SafeNativeMethods" />
    <Name Is="UnsafeNativeMethods" />
    </Or>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="DataMembers" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Or>
    <Kind Is="Field"/>
    <Kind Is="Property"/>
    </Or>
    <HasAttribute Name="System.Runtime.Serialization.DataMemberAttribute "/>
    </And>
    </TypePattern.Match>
    </TypePattern>
    <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All">
    <TypePattern.Match>
    <And>
    <Kind Is="Class" />
    <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" />
    </And>
    </TypePattern.Match>
    <Entry DisplayName="Setup/Teardown Methods">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <Or>
    <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" />
    <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" />
    </Or>
    </And>
    </Entry.Match>
    </Entry>
    <Entry DisplayName="All other members" />
    <Entry DisplayName="Test Methods" Priority="100">
    <Entry.Match>
    <And>
    <Kind Is="Method" />
    <HasAttribute Name="NUnit.Framework.TestAttribute" />
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Name />
    </Entry.SortBy>
    </Entry>
    </TypePattern>
    <TypePattern DisplayName="StyleCop Layout" RemoveRegions="All">
    <TypePattern.Match>
    <Or>
    <Kind Is="Class" />
    <Kind Is="Struct" />
    <Kind Is="Interface"/>
    </Or>
    </TypePattern.Match>
    <Entry DisplayName="Constants and static fields">
    <Entry.Match>
    <Or>
    <Kind Is="Constant"/>
    <And>
    <Kind Is="Field"/>
    <Static />
    </And>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constant</DeclarationKind>
    <DeclarationKind>Field</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access />
    <Readonly />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Fields">
    <Entry.Match>
    <Kind Is="Field"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Readonly/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Constructors and destructors">
    <Entry.Match>
    <Or>
    <Kind Is="Constructor"/>
    <Kind Is="Destructor"/>
    </Or>
    </Entry.Match>
    <Entry.SortBy>
    <Static/>
    <Kind>
    <Kind.Order>
    <DeclarationKind>Constructor</DeclarationKind>
    <DeclarationKind>Destructor</DeclarationKind>
    </Kind.Order>
    </Kind>
    <Access />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Delegates">
    <Entry.Match>
    <Kind Is="Delegate"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface events">
    <Entry.Match>
    <And>
    <Kind Is="Event"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other events">
    <Entry.Match>
    <Kind Is="Event"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Enums">
    <Entry.Match>
    <Kind Is="Enum"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interfaces">
    <Entry.Match>
    <Kind Is="Interface" />
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface properties">
    <Entry.Match>
    <And>
    <Kind Is="Property"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other properties">
    <Entry.Match>
    <Kind Is="Property"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static />
    <Name />
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface indexers">
    <Entry.Match>
    <And>
    <Kind Is="Indexer" />
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other indexers">
    <Entry.Match>
    <Kind Is="Indexer" />
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Public methods and operators">
    <Entry.Match>
    <And>
    <Or>
    <Kind Is="Method"/>
    <Kind Is="Operator"/>
    </Or>
    <Access Is="Public"/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <Access/>
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Interface methods">
    <Entry.Match>
    <And>
    <Kind Is="Method"/>
    <ImplementsInterface/>
    </And>
    </Entry.Match>
    <Entry.SortBy>
    <ImplementsInterface Immediate="true"/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Other methods">
    <Entry.Match>
    <Kind Is="Method"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Operators">
    <Entry.Match>
    <Kind Is="Operator"/>
    </Entry.Match>
    <Entry.SortBy>
    <Access />
    <Static/>
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested structs">
    <Entry.Match>
    <Kind Is="Struct" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="Nested classes">
    <Entry.Match>
    <Kind Is="Class" />
    </Entry.Match>
    <Entry.SortBy>
    <Static />
    <Access />
    <Name/>
    </Entry.SortBy>
    </Entry>
    <Entry DisplayName="All other members" />
    </TypePattern>
    </Patterns>