Let me start by saying it is not my intention to start a
which tool is better CodeRush
2.0 or ReSharper debate. I
think that each has some stronger points and in the end you should be using one
if not both of the tools. This is a post about what I really like about
CodeRush 2.0.
You can read all the marketing materials on CodeRush 2.0 here.
It is a tool that helps in being more productive as a developer. There are
so many features that I probably have only become familiar with a small set of
them.
The first most obvious that you notice when you fire up VS
is the visualization tools. These are basically things that help your
brain figure out yours or someone else's code quickly. There is
highlighting of structures so you can easily follow the nasty if block your
co-worker left you. There is a flow/break evaluation visualizer that
allows shows you where a statement such as break will next execute. This
could be considered eye candy, but is useful when you inherit code from someone
who believes having it all in one class is more efficient. There are icons
that appear next to declarations that show you iconically the visibility of an
icon and clicking on that icon allows you to easily change visibility.
There is also a quick nav preview but I have not gotten to using that too much
yet.
There are also "Advanced Selection Tools" that allow you to
quickly make selections that highlight logical blocks of code so instead of Ctrl
+ -> to select you would click the key char to quicly highlight entire
blocks. Its very cool when I remember to use it. It also works
closely with another feature I have a hard time remembering to use which is the
smart clipboard.
The Smart Clipboard is a set of features that allows you to
do smart copy's. Basically if you have your cursor in the right spot and
you hit Ctrl+C it will copy an entire block of code. So placing your
cursor at the beginning of an if block and using the Copy command, it will copy
the entire block. Very cool. There is also a smart cut which makes
moving code easy.
There is also a whole system for navigating which involves
using caret's that allow you to navigate through a document. I have not
found a way to break my habit of using bookmarks but I plan on getting to this
feature set once I have mastered the templates.
Code Templates are cool. I have to admit when I first
read about the templates I was not super excited about them. I had been a
Dexter user for a long time
and REALLY loved the fact that templates were kicked off by actually typing part
of all of a key word. So if I wanted an 'if' code template, I would type
'i' or 'if' then hit space (naturally) and the code block would appear.
CodeRush on the other hand makes you remember all the mneumonics that are
stored. I don't know about you, but my brain takes a while to grasp
mneumonics so I just used the templates that were built into VS2005.
With 2.0 though there is a 'learning' window that you can
have open while you are typing so it will show you a context sensitive menu of
all possibly templates. I can not do justice explaining it so you will
just have to see the demo's yourself. You can find those here.
Make sure you watch the 2.0 Intro video. The 'Cool' video is also
cool. The short of it is that given the learning window, I may be having
to give the next 2.0 eval a shot.
Last but not least is the whole reason I really love
CodeRush is its extensibility. CodeRush is built on DevExpress' DXCore
engine. DXCore is the engine that enables you to easily write your own
plugins. Now right now you may be saying that you can write your own
add-in in VS2005 and there have been some good ones written but the DXCore
plugin sits on top of a well thought out API that does nothing but super enhance
your ability to manipulate code files. There are all types of events that
tie into various VS events. This allows you to easily manipulate the
IDE to do things like color code text, comment code files,
analyze files and what ever else you can think of. Bottom line
is there is not muc it does not allow you to do. Could
you do it with only VS2005 add-ins, probably but I bet it would be
harder. The best part is that you can download the DXCore plug-in for
free and from here.
There is also a community of people that have created some very cool DXCore
plug-ins. Here are some links:
Rory Becker's site: http://www.rorybecker.co.uk/
Eric
Hock's site: http://www.erichoch.org/dxcore/plugins.html
Travis
Illig's site: http://www.paraesthesia.com/blog/weblog.php?id=C0_10_1
Benjamin
Nitschke's site: http://www.rorybecker.co.uk/
I have seen a project somewhere in the past that had some
cool things like spell checker and code complexity analyzer but could not find
it. If you know of any let me know.