Review: CodeRush

CodeRush for Visual Studio
Developer Express
Las Vegas, Nevada
(702) 262-0609

One of the smartest things that Microsoft did with the Visual Studio series of products (most recently Visual Studio .NET) was expose a wide variety of extensibility points for third-party developers to work with. This has resulted in a big market for tools to make writing code a more productive activity. I've experimented with a bunch of these tools, and while many of them are excellent, if you forced me to uninstall all but one, these days I'd be keeping CodeRush.

CodeRush isn't just one easily-described tool; it's a whole suite of improvements to the Visual Studio .NET editor. For starters, it makes things just plain look better. There are icons to indicate the visibility of methods (and you can click on them to change, for example, Public to Private). There are little arrows to indicate flow-of-control changes such as Exit For statements (click to see an animation showing where the flow goes next). There are lines to indicate which If groups with which End If (and yes, all this works in C# as well as VB .NET). There's much nicer hiding for hidden regions. Once you see this stuff in action you'll wonder why Microsoft didn't think of having some decent visual designers work on their editor years ago.

You also get a fully-customizable templating system. Type pi followed by a space to get the skeleton for an integer property, complete with getter and setter - but only if the cursor is somewhere that this would make syntactic sense, otherwise the template won't expand. CodeRush has a good selection of such templates built in, and you can add your own. Templates also work well with markers and links - markers give you a stack of locations that the cursor will jump to as you press the Escape key, and links let you type one place and have the same keystrokes repeat elsewhere (so, for example, you don't have to type the same variable name three times when building that new property).

Other goodies include the ability to quickly extend the selection or embed the selection in useful things like a try/catch block, navigation tools that let you jump to a method in your code easily, and smart cut and paste tools that can infer what you want to do based on the cursor location. There are also plenty of extensibility hooks in CodeRush itself, and an API that lets you program it.

There's usually an evaluation copy of CodeRush available on the Developer Express site, so go there to check it out!

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.