I bump into this nifty tool [url=http://www.rauchy.net/regionerate]Regionerate[/url] made by Omer Rauchwerger that apply style setting (xml configured) on your C# source and group them under #region sections. Of course saying anything is pretty pointless here since you should watch the [url=http://www.rauchy.net/regionerate/2007/06/regionerate-101.html]screencast here[/url]
I quickly downloaded version 0.6.5.0 and give it a try on my project (after making sure I committed the source into my repository first ; )
The default codelayout dint suite me well, so I hack up code layout “Mass.Separation” code layout by Derik Whittaker and produce the following layout:
[code][rgn] Delegates and Events
[rgn] Event Handlers
[rgn] Enums
[rgn] Constant Variables
[rgn] Static Variables
[rgn] Instance Variables
[rgn] Public Properties
[rgn] Private Properties
[rgn] Protected Properties
[rgn] Constructors
[rgn] Public Methods
[rgn] Private Methods
[rgn] Protected Methods[/code]
Me being un-imaginative, named it Mass.SeparationEx ; ) Credit should go to Omer Rauchwerger and Derik Whittaker. The CodeLayout file for Regionerate is as follows:
[code]<CodeLayout xmlns="http://regionerate.net/schemas/0.6.5.0/CodeLayout.xsd">
<ForEachClass>
<CreateRegion Title="Delegates and Events" ShowCount="false">
<CreateRegion Title="Delegates" Style="Comment" ShowCount="false">
<PutDelegates>
<OrderBy>
<Name />
</OrderBy>
</PutDelegates>
</CreateRegion>
<CreateRegion Title="Events" Style="Comment" ShowCount="false">
<PutEvents>
<OrderBy>
<Name />
</OrderBy>
</PutEvents>
</CreateRegion>
</CreateRegion>
<CreateRegion Title="Event Handlers" ShowCount="false" >
<PutMethods>
<Where>
<Name Matches=".+_.+"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
</CreateRegion>
<CreateRegion Title="Enums" ShowCount="false">
<PutEnums>
<OrderBy>
<ValuesCount />
</OrderBy>
</PutEnums>
</CreateRegion>
<CreateRegion Title="Constant Variables" ShowCount="false">
<PutFields>
<Where><Const Equals="true"/></Where>
<OrderBy>
<Name/>
</OrderBy>
</PutFields>
</CreateRegion>
<CreateRegion Title="Static Variables" ShowCount="false">
<PutFields>
<Where><Static Equals="true"/></Where>
<OrderBy>
<Name/>
</OrderBy>
</PutFields>
</CreateRegion>
<CreateRegion Title="Instance Variables" ShowCount="false">
<PutFields>
<Where>
<Access Equals="Public" />
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutFields>
<PutFields>
<Where>
<Access Equals="Private" />
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutFields>
<PutFields>
<Where>
<Access Equals="Protected" />
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutFields>
<PutFields>
<Where>
<Access Equals="Internal" />
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutFields>
</CreateRegion>
<CreateRegion Title="Public Properties" ShowCount="false" >
<PutProperties>
<Where>
<Access Equals="Public"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutProperties>
</CreateRegion>
<CreateRegion Title="Private Properties" ShowCount="false" >
<PutProperties>
<Where>
<Access Equals="Private"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutProperties>
</CreateRegion>
<CreateRegion Title="Protected Properties" ShowCount="false" >
<PutProperties>
<Where>
<Access Equals="Protected"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutProperties>
</CreateRegion>
<CreateRegion Title="Internal Properties" ShowCount="false" >
<PutProperties>
<Where>
<Access Equals="Internal"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutProperties>
</CreateRegion>
<CreateRegion Title="Constructors" ShowCount="false" >
<PutMethods>
<Where>
<IsConstructor Equals="true"/>
</Where>
<OrderBy>
<ParametersCount Direction="Ascending"/>
</OrderBy>
</PutMethods>
</CreateRegion>
<CreateRegion Title="Public Methods" ShowCount="false" >
<PutMethods>
<Where>
<Access Equals="Public"></Access>
<Static Equals="true"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
<PutMethods>
<Where>
<Access Equals="Public"></Access>
<Static Equals="false"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
</CreateRegion>
<CreateRegion Title="Private Methods" ShowCount="false" >
<PutMethods>
<Where>
<Access Equals="Private"></Access>
<Static Equals="true"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
<PutMethods>
<Where>
<Access Equals="Private"></Access>
<Static Equals="false"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
</CreateRegion>
<CreateRegion Title="Protected Methods" ShowCount="false" >
<PutMethods>
<Where>
<Access Equals="Protected"></Access>
<Static Equals="true"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
<PutMethods>
<Where>
<Access Equals="Protected"></Access>
<Static Equals="false"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
</CreateRegion>
<CreateRegion Title="Internal Methods" ShowCount="false" >
<PutMethods>
<Where>
<Access Equals="Internal"></Access>
<Static Equals="true"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
<PutMethods>
<Where>
<Access Equals="Internal"></Access>
<Static Equals="false"/>
</Where>
<OrderBy>
<Name/>
</OrderBy>
</PutMethods>
</CreateRegion>
</ForEachClass>
</CodeLayout>
[/code]
Are you using this Regionerate plugin? I tried it but i’m not actually comfortable on using it.
yeah… I’m using it. Some friend that I introduce that too don’t really like it because Regionerate "moves things around", it take a while to get used to it : )