CodeRush for Visual Studio
Las Vegas, Nevada
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 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!
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.