C++ Tools - Some thoughts on JetBrains ReSharper C++
Following on from my rant about C++ tooling and its follow up. I’ve been looking at JetBrains ReSharper for C++. This isn’t a review, more just my initial thoughts.
TL;DR I’d like to like it. It does some good things but it also gets in my way and slows me down.
ReSharper is a Visual Studio addin. In general I don’t like addins but this comes from my years working short contracts and multiple clients where it was easiest to be at home in a clean Visual Studio installation as no two clients would have the same addins installed. ReSharper’s adding intercepts lots of standard Visual Studio functionality and I’m sure that I could get used to it but intellisense and stuff is fractionally slower than without it installed (and yes, I do have a machine that well exceeds the basic hardware requirements). It also does some things just differently enough that it means I automatically do the wrong thing and then have to redo the right thing. This interrupts my flow. I’m sure that if I spent enough time with it I’d get used to it but I’m not sure I will spend enough time with it.
Right now I’m most interested in the inspection side of ReSharper. Inspecting a solution takes quite a while, which is to be expected. Some of the coding violations that it reports are useful, some less so, some inappropriate, but that’s always the way with these tools. It seems to be difficult to suppress violations. I like the way PC-Lint allows for inline suppression comments (which I hate, but use anyway) and external suppression files. I work on lots of different codebases and common suppression rules are a must and these MUST be project/work item specific.
I’ve had really good support from JetBrains. The addin popped up a message box telling me I was half way through my trial and asking me how I was getting on. I responded with some of my gripes and had an email within a day from a helpful support person with some work arounds and explanations.
I’m still using it, but I’m not sure I’ll continue with it after the trial completes.