CodeRush is, as far as I'm concerned, the most essential of the Visual Studio add-ins
that I use. It merges so well with the base product, and provides such perfectly
useful features, that I find myself automatically typing its shortcuts whenever
I'm using Visual Studio. Then, if I happen to be at a box where CodeRush isn't installed,
I wonder why the heck things aren't working right.
This is despite the fact that it's tough to come up with a short description of
just what CodeRush does, beyond saying that it adds a bunch of features that Microsoft
really ought to have built into Visual Studio in the first place, if they had the
time and inclination to do really innovative user interface design (still, Microsoft
gets points for building in the extensibility points that make CodeRush possible
in the first place). Start with the simple visual changes to your code: faint lines
that help you match up the start and end of code blocks, marginal icons that show
the visibility of members (and that can be clicked to change visibility), custom
painting that makes collapsed regions actually collapse to a single line, animated
arrows that show you where code flow goes after a return or break statement. These
are all little amenities but they're surprisingly useful.
Then there are a batch of navigation and clipboard tools. Markers are like breadcrumbs
you can drop behind you in code when you want to get back somewhere - they end up
being more flexible than bookmarks. The Quick Nav window is a fast way to jump to
any member in any open file, with preview before you jump. There are keystrokes
for extending a selection to larger or smaller logical chunks of a file, for commenting
out a group of lines with one key, for embedding and inverting code (select a chunk
of code and press the brace key to wrap it in opening and closing braces, for example).
At the heart of CodeRush, though, is its templating engine. More than a simple macro
substitution facility, Coderush templates let you generate code with amazingly few
keystrokes. Even better, the new CodeRush training window shows you the active shortcuts
at any given moment, making it much easier to learn the 900 or so available templates.
md8 followed by a space gives you a method that returns a DateTime. vs gives you
a string parameter. pb gives you a boolean property. cc invokes the "smart constructor"
template. There's an amazing variety that I'm still learning here - you can see
a small piece of this in my movie below, but it's worth checking out the
CodeRush traning video page to see this in the hands of an expert.
Finally, CodeRush includes a license to
Refactor! Pro, which offers something like 50 refactorings for your C# and
VB code. But that's a subject for another review.