Joe White's Blog Life, .NET, and cats

ReSharper: Not ready #.NET

So I got VS.NET repaired. It also wanted me to close an IE window that Hotmail had popped up, although it never complained about the actual main Hotmail window. And, of course, it trashed my toolbar settings yet again.

But after the rebuild, ReSharper loaded just fine, and so did the csUnit plug-in that hadn't worked in months, so evidently things are much happier now. I opened a toy project with just a couple of forms in it and played around a bit.

ReSharper has some nice features. I liked the treeview that shows all the places a particular method is called from; much nicer than adding an ObsoleteAttribute and recompiling. It was also pretty cool how it noticed namespace imports that you're not using, and colored them in gray. When I wrote code to call a method I hadn't defined yet, it highlighted the method name in red. They show a little "green light / orange light" (orange?) to show whether there are any warnings in the current source file (things like unused imports), and you can usually click that to jump straight to the first warning. Nice stuff. Haven't tried their smart templates or refactoring tools yet.

Minor gripes:

  • Too many colors. Stuff that used to be black, plain black, easy to read, easy to differentiate from keywords, now appears in a myriad of different colors. They need a way to customize those colors (i.e., change most of them back to black) so I can reduce the noise.
  • Not multi-monitor friendly. I run VS.NET on my second monitor, to the right of the primary. Their "Tip of the Day" window always opens on the wrong monitor. Some of their dropdowns also open on the wrong monitor (at the far right; looks like they're trying to clamp coordinates to the primary monitor bounds).
  • What the heck is up with their parameter tooltip? Come on, guys, Visual Studio already has one of those! Yours sits right on top of it! And shows less information than theirs does!

Major gripe:

In the real world, it blows up. Badly. I opened a real-life solution, nothing fancy, and ReSharper threw 37 exceptions, right in a row, just trying to load and parse. I know there are 37 exceptions, because I reported them all to their bug tracking system.

I had to register for an account before I could report bugs. How nice.

On the plus side, their exception-reporting scheme is pretty slick. It pops up a dialog showing the error message and a stack trace, and lets you type in what you were doing ("Opening a solution") and, of course, fill in your username and password (which they then remember and pre-fill for the next exception). At the bottom are "Submit" and "Ignore" buttons. If you submit, they gargle for a few seconds, and then tell you what bug number was assigned, and whether it's a new issue or they just added your info to an existing bug report.

Of course, if you go to their Web site and search their bug databases, you'll never find the bug you just reported. Why? Well, because they don't report them to a bug database, silly. You have to search their forums. Which is where they put the bugs you report. Obviously. (Exactly how they assign the bug numbers, if they don't put them in a bug database, is a bit of a mystery.)

It's not a totally bad system, since it lets anyone comment on the bugs after they're submitted. But why don't they post a link to that forum on their "Tracker" page? You know, so people who are looking for the bug tracking system can find it? (For that matter, how about putting a link to the forums anywhere on your Web site? I had to look in my browser history just to find the forum again.)

Anyway.

The exceptions are not fatal. VS continues to load the project, and eventually (74 clicks and 37 bug reports later) the editor window comes up. But all the namespace imports are in alternating gray and red, and stuff is randomly red-wavy-underlined. You can tell it doesn't deal well with an incomplete parse. I didn't spend a lot of time looking at it. I just removed the ReSharper add-in.

Sigh. Promising tool, but boy. I may look at it again when v1.02 or 1.1 comes out, but as of 1.01, it ain't ready for prime time.

Update: The day after I posted this, I got an e-mail from one of the ReSharper developers. I've posted about the follow-up.