It’s been about a month since I took the challenge to replace ReSharper (R#) with Code Rush/Refactor! Pro (CR/R!). In that time I have adjusted well to CR/R!. There are a number of areas where I am MORE productive. Yep, I said that. There are a few things I miss (So Mark of DevExpress pay attention).
Code Analysis could improve
Code Analysis is a fairly new feature of CR/R! and as one would expect it’s not quite as strong as R#'s (I do expect this to get better, BTW). Sometimes it doesn’t find references to ASP.NET Server Controls from the Code Behind for instance which tends to make its analysis on ASPX CodeBehind files somewhat unpredictable. I also ran into some speed issues with JS code, but I think it was the network that day (because I haven’t had any issues since).
The other thing I love about R# is that not only does it analyze my code, but it gives me a convenient keystroke that helps me resolve the problem without having to leave where I am. CR/R! is building some of this stuff so we’ll have to wait and see what happens.
Embeddings
I still have a few embeddings that I would like to turn off (with no options to do so -- as far as I can tell)... I suspect I need to dig into the XML config files, but am scared to do so.
For the DevExpress Guys to note the main one I want to get rid of is called "Embed Not Parenthesis." What happens is that I’m in a long "if(...)" and I highlight the first "=" of an "==" (because I stupidly set it to "==" and not "!="), when I type "!" it translates my entry to "!(=)=" which would be nice is I had more than 1 character highlighted.
[If you don’t know what they are let me explain them. Basically with CR/R! if you have a section of code highlighted you can easily wrap that selection with say a region by typing CTL+3 (BTW, # = Shift+3 so the sequence makes sense); when you do that a #region/#endregion automagically wraps your selected code and drops you on the line to set the region text. ]
The embeddings in general could really benefit from a different set of key sequences. it’s too easy to highlight a section of code and accidentally type the single character that creates the embedding... I’d prefer a CTL sequence. Yes, I know I can change them myself, but the defaults make the product frustrating for newbies.
Wish List
Beyond what I have already mentioned I really have 1 wish. I want either an alternate set of keystroke shortcuts for things like Embeddings and single character templates [CR/R! has some single character templates that you type like "c{space}" and a class shell automagically appears] that I can set as the default (so choose something other than what has been the standard) or the ability to package up my settings and be able to easily share them...
Yes, Rory, I have thought about contributing an addin for your community project.
Script# Compatibility
BTW, CR/R! works with Script#! Well, I ran into a few minor difficulties, but I could use it with the product which is all I would have asked for. No crashes, and no real warts.
Final words
Well, the good news for the CR/R! crew is that I’m a convert. I waited too long for VS 2008 from R#, and in that time I realized that there is a different place to go to.
Finding that I can refactor all kinds of things (like HTML code and JS code as well as C# and VB code now if it only did Python... just kidding, Mark... I don’t need it) really sealed the deal.
If you are trying out CR/R! you should get the Rory’s latest zip file containing all the community plugins. You should especially install "Refactor_Resolve" from this zip file (You’ll want it!). This is the plugin that was written by Koen Hoefkens. BTW, these plugins I think all run with DXCore, so if you don’t have a license to any kind of Refactoring product then you might want to consider installing DXCore (it’s free) and then installing these plugins... they can make your life a little easier.
Print | posted on Thursday, August 21, 2008 1:25 PM