Regionerate main
An automatic layout enforcement tool for the C# programming language.
 

Main
Introduction
Tutorials
Download
Gallery
Blog
Documentation
Discuss
Source



 Subscribe in a reader

 Subscribe by e-mail



Ads Via The Lounge

Omer Rauchwerger
omer at rauchy dot net



What is Regionerate?

Regionerate (pronounced ri-jeh-neh-rate) is a new open-source tool for developers and team leaders that allows you to automatically apply layout rules on C# code. Watch how it works.

Regionerate runs on Visual Studio 2005, Visual Studio 2008, #develop 2.0, NAnt and on command line.

download now
News

New Version Available - v0.6.7.8, published Thursday, December 6, 2007

What's new:

  • The first 9 items inside the Code Layout Browser are now numbered and can be accessed by hitting their number. For example, if your keyboard shortcut is set to Ctrl+R and you want to access the 4th Code Layout that appears in your Code Layout Browser, just hit Ctrl+R, release the R (the Code Layout Browser will appear), hit 4 and the 4th Code Layout will be selected. Then release Ctrl and the 4th Code Layout will be applied.
  • Andreas Dangberg has contributed his Composite Application Block Code Layout which is now available in the Code Layout Browser. Thanks, Andreas!
Bug fixes:
  • Attributes are no longer mistaken to be Wrappers. (source)
  • Problem with overloading equal signs is solved. (source)
  • If your screen resolution is too small to show all items in the Code Layout Browser, it will automatically scroll to the selected item.

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New Version Available - v0.6.7.2, published Thursday, November 22, 2007

This version comes with a new feature called the Code Layout Browser. Yesterday I went to sleep with it in mind and just had to get it done today. I've been sitting in my favorite coffee place for like 6 hours now :-)

Read about the Code Layout Browser in my devblog post called Code Layout on Steroids!

To make the Code Layout Browser useful, I am also releasing several Code Layouts I use:

  • Contract First - Puts public stuff first, then all the rest.
  • Name Clustering - Separates fields, properties and methods by name clusters. (Fields starting with A-F, Fields starting with G-L etc')
  • NUnit Test Fixture - Separates initialization methods ([SetUp()], [TestFixtureSetUp()]), finalization methods ([TearDown()], [TestFixtureTearDown()]), test methods ([Test()]) and helper methods.
  • Plain Old CLR Object - Separates data members (fields, properties) from plumbing code (basically all the rest)
  • Regionless Layout - Unpacks all regions.

The new Code Layouts could use some work, I would appreciate any feedback in the General Discussion forum.

Also, if you have ideas for Code Layouts which will be useful to other users, send'em over!

You can download this version at the Downloads page.

Labels: ,


1 comments. Add a comment.


New Version Available - v0.6.6.5, published Saturday, November 10, 2007

This one took quite a while. Thanks for holding on patiently. The reason for this big delay between v0.6.5.0 and v0.6.6.5 is a big refactoring job I had to do as a preparation for future features. Also, this version comes with quite a few new features and bug fixes.

I've learned a lesson from this version. I tried to squeeze too much into it and it ended up taking over 2 months. This really goes against the "release often" mantra which I believe strongly in. I paid the price and I can only hope I'll be smarter on next releases. My aim is to release every 3 weeks, even if things are not perfect.

New Features:

  1. The symbol mechanism has been completely rewritten and you can now choose from 3 different types of symbols (read more)
  2. You can now configure Regionerate to unpack specific existing regions.  (read more. Thanks to Krzysztof Kozmic for the idea!)
  3. Nested classes are recursively Regionerated.

Bug Fixes:

  1. A known issue from v0.2 - Curly brace issue solved.
  2. Another known issue from v0.6 - Supportng #if-#endif blocks.
  3. Generic Constraints stop Regionerate (reported here)
  4. Better spacing for existing regions. (reported here)
  5. Extraneous #endregions after Regionerating (reported here)
  6. Protected internal methods being ignored (reported here)
  7. Breaking at semicolons in string (reported here)

Please note that since this version had a big refactoring job, it is unstable and will probably induce some bugs. v0.6.6.5 can only be downloaded in "Latest" folder. The "Stable" folder still has v0.6.5.0 at the moment.

If no critical bugs pop up in the next two weeks or so, I will move this version to the "Stable" folder.

You can download this version at the Downloads page.

Labels: ,


2 comments. Add a comment.


New Version Available - v0.6.5.0, published Sunday, August 26, 2007

Quarter way to release candidate! I would like to take this opportunity and thank everyone for helping me find all bugs which have been detected by now and for suggesting great ideas & feature requests. Together we can shape the ideal code layout tool.

I think Regionerate has gone a long way since v0.6.0.0, it is much more stable and offers a lot more features.

This release offers mostly bug fixes. My next goal is to finish implementing all the leaders in the first survey and release another survey with some new requests which have been proposed lately.

New Features:

  1. After providing partial support for operators in v0.6.4.5, you can filter operators in v0.6.5.0 (read more)

Bug Fixes:

  1. Partial fix for comments which are dropped when symbol is empty. (read more and thanks to Retrei & flanakin)

  2. Chained constructors with initialized type forwarding aren't matched properly. (thanks kkozmic)

  3. TypeVisibility not working in PutNestedClasses. (thanks dango2003)

  4. Existing #endregion of format "#endregion .*(.*" breaks code. (thanks rathkopf)

  5. Whitespace sequence freezes construction. This has caused some nested classes to freeze. (thank kkozmic)

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New Version Available - v0.6.4.7, published Monday, August 13, 2007

Just a couple of bug fixes. No need to update you Code Layout documents, they still work with the v0.6.3.8 namespace.

  1. The main reason that this version was released so early is that v0.6.4.5 introduced a small bug which caused some attributed properties to be recognized as constructors. This is fixed. My bad for not reading the build report thoroughly.
  2. Properties with attributed accessors are now handled (Mike, thanks for both these bug reports)

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New Version Available - v0.6.4.5, published Sunday, August 12, 2007

2 New features for Visual Studio & #develop users:

  1. Keyboard shortcuts are now customizable. (read more)
  2. You can run Regionerate on entire solutions & projects from the Solution Explorer window in Visual Studio or Projects pad in #develop. (read more)

Bug fixes:

  1. Semi-colon after innerclass definition problem solved. (thanks Finger)
  2. Operators are recognized as methods. (read more)
  3. #develop add-in now provides a code window context menu "Regionerate this" button.

No need to update your Code Layout documents, they will still work with the v0.6.3.8 namespace.

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New Version Available - v0.6.3.8, published Saturday, July 28, 2007

New Features:

  1. You can easily order your members by their length.
  2. Place delegates inside regions.

Bug fixes:

  1. Methods with multiple generic types are now recognized. (thanks chuggle)
  2. International characters are supported. (thanks Finger, tercm and nvoigt)
  3. Line breaks in field assignments issue solved. (thanks Finger)

You can download this version at the Downloads page.

Labels: ,


1 comments. Add a comment.


New Version Available - v0.6.3.3, published Sunday, July 22, 2007

Just some bug fixes on this one, hoping to release some new features from the queue on the next version.

  1. Constraints appear to break regioning - fixed. (thanks bsorensen)
  2. A hopeful fix for some localization issues. (thanks nvoigt & Brettljausn)
  3. Multiline Enum Value Problem solved.

Since there are no new features on this one, a new Code Layout schema was not published, so no need to update your Code Layouts.

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


Public Beta is One Month Old!,

Regionerate's Public Beta was first published on DotNetKicks on June 22nd, 2007.
Since then, over 15,000 people have visited the website and over 2,000 people downloaded Regionerate.

I just wanted to send a big thanks to everyone for all the kind words, suggestions and bug reports.

I'm hoping to release a stable version as soon as possible and get going with the new features of Regionerate v2.0.

If you like Regionerate, help me spread it by recommending it to your friends & colleagues.

Thank you for your support!
--rauchy.

Labels: , , ,


0 comments. Add a comment.


New Version Available - v0.6.2.4, published Saturday, July 14, 2007

Three new features are included:


  1. Multiple Where statements are finally supported.
  2. Create regions for extern methods.
  3. Create regions for your enums.

Bugs fixed:

  1. Supporting nullable generic classes. (thanks gtsiokos)
  2. Enums are not scrambled anymore. (Well, this is a side-effect of adding suport for enums)

You can download this version at the Downloads page.

Labels: , ,


0 comments. Add a comment.


New Version Available - v0.6.1.7, published Saturday, July 7, 2007

Two new features are included:

  1. You can now filter by name and type using a regular expression. (Matthew - enjoy!)
  2. Filter type members by their attributes.

Also, three bugs are fixed on this one:

  1. OrderBy is now consistent (thanks MisterG)
  2. Custom symbols no longer corrupt #endregion declaration (thanks ggreig)
  3. The setting dialog's Edit button now opens the custom Code Layout in the IDE.

You can download this version at the Downloads page.

Labels: , ,


0 comments. Add a comment.


New Version Available - v0.6.1.0, published Saturday, June 30, 2007

Two small features are included:

  1. You can now disable member count in region declarations. (thanks for the idea, eborman)
  2. The settings dialog has a new "Edit" button which allows you to edit your custom Code Layout xml files directly from the settings dialog.

Also, two bugs are fixed on this one:

  1. Destructors aren't handled (thanks MisterG)
  2. Code Layout validation fails (thanks ggreig)

You can download this version at the Downloads page.

Labels: , ,


0 comments. Add a comment.


New Version Available - v0.6.0.8, published Thursday, June 28, 2007

Two bugs are fixed on this one:
  1. Code within Comments is copied as normal code. (thank you MisterG!)
  2. When clicking the Refresh button on the Settings form, The IDE throw nasty errors if the loaded Code Layout is invalid. (thanks Rachit)
You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New Version Available - v0.6.0.7, published Wednesday, June 27, 2007

Two significant bugs are fixed on this one:
  1. Static identifer is recognized only after access modifier (thanks to friedmal for discovering)
  2. Properties not recognized - Properties with a different accessor between the getter and the setter. (thanks to Kevin for discovering)

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New Version Available - v0.6.0.6, published Tuesday, June 26, 2007

Two critical bugs are fixed on this one:

  1. "Event attributes orpahned after event added to a region" (thanks to eborman for discovering)
  2. "Multiline attributes" (known issue from v0.6.0.0)

You can download this version at the Downloads page.

Labels: ,


0 comments. Add a comment.


New version available - v0.6.0.5, published Monday, June 25, 2007

This small update includes:

You can download this version at the Downloads page.

Labels: , ,


0 comments. Add a comment.


v0.6 Includes #develop Add-In, published Thursday, June 21, 2007

Freshly compiled, a new add-in for the kick-ass #develop IDE is available from v0.6.

Read more about the differences between the #develop add-in and the Visual Studio add-in at this post in the development blog.

Labels: ,


0 comments. Add a comment.


Sign Up For The Private Beta, published Saturday, May 12, 2007

Regionerate is about to be deployed as Private Alpha at numerous locations. Private Alpha users help me by evaluating an early version of Regionerate at their free time. Private Alpha users are asked to play around with Regionerate in a dedicated environment and provide feedback regarding the experience.
Private Beta is the next stage of deployment. The main difference between the Private Alpha and the Private Beta, besides providing a more stable version, is that Private Beta users will be asked to evaluate the way Regionerate helped them with their daily work - as individuals and as teams. I am currently recruiting applicants for the Private Beta, so if you are interested in being an early adopter by joining and helping me by evaluating Regionerate, please contact me at omer at rauchy dot net.

Labels: ,


0 comments. Add a comment.


From the Development Blog
From My Personal Blog
Read more news from
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • November 2007
  • December 2007
  • January 2008
  • August 2008
  • September 2008

    Contribute
    I'm currently looking for good people to help me with the remaining development tasks for Regionerate v1.0. If you like Regionerate and want to be a part of it, contact me at omer at rauchy dot net.

    Release plan
    • Private Alpha (v0.2) -- complete.
    • Private Beta (v0.4) -- complete.
    • Public Beta (v0.6) -- complete.
    • Beta 2 (v0.7) -- current stage.
    • Release Candidate (v0.8) -- being developed.
    • Release (v1.0)



  • Omer Rauchwerger omer at rauchy dot net
    Feed me
    Distributed under the
    GNU general public license.