top | item 9354650

Introducing ReSharper C++

145 points| numo16 | 11 years ago |blog.jetbrains.com | reply

26 comments

order
[+] edgyswingset|11 years ago|reply
I wonder what the resource usage of this will be. ReSharper with C# really slows things down on my machine. With an SSD it's fine, but with a regular HDD I notice the difference.
[+] gorohoroh|11 years ago|reply
Mixed comments on resource usage so far. Some examples: * "Besides beeing a bit slow, VS suddenly felt like a proper IDE" * "a bit more sluggish than using vanilla VS, but made up for it in terms of usability" * "even after I've opened the project and everything is parsed, Visual Studio slows down too much for it to be acceptable" * "once resharper had completed (warning up) though, everything was fine and Visual Studio + performance was pretty good"

(these are all from a recent reddit thread: http://www.reddit.com/r/programming/comments/31xbrt/jetbrain...)

Seems that it depends on the size and complexity of a solution, takes trying to see if it's acceptable in a given environment. That said, a lot of performance work is ahead provided that the team has input on what's going wrong and in what circumstances.

[+] ComputerGuru|11 years ago|reply
I had to uninstall one of the later beta builds because leaving any C++ Visual Studio solution open would result in a massive multi-gig memory leak. VisualAssistX is still installed because it's lightweight and though it doesn't have the same featureset as ReSharper, it doesn't get in the way. Don't get me wrong though, I'm still willing to try RS again.
[+] viggity|11 years ago|reply
You should consider CodeRush from DevExpress. They've always been super serious about performance (they have perf stats on their site). They've had C++ tooling for years, their UI is top notch and their live templates blow R# out of the water.

I'm not affiliated with them in anyway, but I am a huge fan.

[+] Someone1234|11 years ago|reply
That's exactly why I uninstalled Resharper. I loved the extension, and was quite seriously considering paying the cost of admission ($149), but it just dragged down Visual Studio 2013, both in terms of start times and I also had random second-long freezes throughout the day. This disappeared as soon as I uninstalled it.

It appears like Visual Studio 2015 has many of the Reshaper features I most covet, and doesn't appear to have the same performance issues (likely because they're powered by architecture changes), so win/win, and I save $149 since my employer gets us MSDN.

[+] tomjen3|11 years ago|reply
I am not sure it matters much anymore - why would you want to get a computer without an SSD?

Okay so some big companies haven't yet gotten around to upgrading, but a) there are going to be fewer of those around and b) this is a new tool. It is not necessarily a bad idea to target your tool a little in front of the average machine, especially if you want to be the best.

[+] forrestthewoods|11 years ago|reply
I haven't used a non-SSD in a dev machine for over 5 years. Sometimes people in the office fill their SSD C-drive and start working from D-drive. This is unacceptable and they get a bigger SSD.
[+] D_Guidi|11 years ago|reply
My2cents. Perfectly usable on lower PC without background compilation
[+] stinos|11 years ago|reply
Some of the functionality is builtin into VS - not always exactly the same, but sometimes close enough. So if you're afraid it will crush VS performance (the proper way would be to try it of course) check these. Just metioning this because not everybody knows these and when VS2013 came out I decided to try it with a minimum of extensions and see it it's doable. For C#, I'm too spoiled by Resharper so it's unbearable. For C++ however I really like it: super snappy IDE with just enough builtin navigation etc functionality. Startup time alone for the VS2013 install is 5 to 10 times faster than the VS2012 one (Resharper and Visual Assist X). So:

- go to everything (except folders): Edit.NavigateTo and don't forget to turn on the Show Details checkbox

- go to file or folder: Window.SolutionExplorerSearch

- switch between header and source files: EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

- find usage and the likes: Edit.FindAllReferences or EditorContextMenus.CodeWindow.ViewCallHierarchy - doesn't always work properly though and can be slow

- go to file member: built-in dropdown at top of file, not sure if there is a keyboard shortcut for it though

- live static_assert evaluation: built-in

- rename and the likes: I once forced myself to learn at least some of the regular expression syntax and combined with builtin Find/Replace it served me pretty well for this

In general I'd advise people to check all VS has to offer (list it via command window or in keyboard customisation): if you haven't ever done so I bet you'll find commands you'll come to like and use but never heard of before. Last one I discovered (after many, many years of using VS, shame on me): Ctrl-Shift-] when the cursor is on a brace, it will select everything between the brace and the matching one.

[+] polskibus|11 years ago|reply
Hmm, interesting how it compares to VisualAssistX (a plugin for Visual Studio that has been around for a very long time). Hopefully someone will blog a thorough comparison soon.
[+] gorohoroh|11 years ago|reply
First of all ReSharper C++ offers ~60 real-time code inspections. Things like unreachable code, hiding local declarations, dependent type without 'typename' keyword, non-inline function definition in a header file, boost::format with too many or too few arguments, invalid printf format specifiers, redundant keywords ('else', 'static', 'template' etc).

Quick-fixes are provided for many of the inspections so that if you want to act on an inspection, you can have R# C++ do the editing for you.

AFAIK Visual Assist has very limited code analysis capabilities.

Refactorings/transformations such as "Substitute macro call", "Initialize field from constructor parameter", "Merge nested if statements", "Replace redundant parentheses", "Move method implementation out of class scope" or "Replace 'auto' with explicit type" are also unique to ReSharper C++ AFAIK.

Also I don't think VAX has navigation to derived/base symbols or specializations.

Some of the things that VAX has but R# C++ doesn't include Document method, auto-inserting underscores after 'm' and Header hierarchy view.

Here's how a dev on the R# C++ team has summarized differences between the tools in a comment last year: http://www.reddit.com/r/cpp/comments/29k4fb/resharper_for_c_...

(Disclaimer: I'm with JetBrains, the company behind ReSharper C++. If you want to take the above with a grain of salt, feel free to.)

[+] S_A_P|11 years ago|reply
Resharper is indispensable for me. Code is better by a factor of 2 while it's there to remind everyone of a common style and template. I have used it on a project that had ~1 million loc and 250 projects and didn't find an issue with it slowing the ide. You need to be careful with having other extensions that monitor code in real time as that is the big cause of slowdowns and deadlocks. I'm looking forward to trying this one out.
[+] overgard|11 years ago|reply
I've been using ReSharper at home and Visual Assist at work. You can't go wrong with either, they both make the IDE much better.

That said, I like resharper more for a few reasons:

- Visual Assist's refactoring is buggy. "Extract Method" often generates pretty broken results, and Rename often captures more than I intended.

- I like the Alt-Enter uber-shortcut thing

- Presentation is slightly nicer in ReSharper

Like I said though, either one is worth the money if you can afford it.

[+] bithush|11 years ago|reply
Looks good but I will stick to VisualAssistX as it is cheaper, at least in the UK.
[+] mizzao|11 years ago|reply
Save a hundred bucks for a loss of how much productivity? Surely more than $100.
[+] frozenport|11 years ago|reply
Can't figure out if it works with my CUDA, QT, CGAL.
[+] dnesteruk|11 years ago|reply
Well there's no specific support for things like CUDA, but C++ support works for the most part. Not for CUDA's triple-angled-chevrons (yet), but neither does Visual Studio itself :)