Introducing ReSharper C++
blog.jetbrains.com
blog.jetbrains.com
(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.
Just some statistics on my setup:
Machine: i7, 8GB RAM, 7200 rpm HDD, vs2012 (upgrade to 2013 happening soon hopefully).
Project: 70 Projects in Solution, ~500k LOC.
I tried it again today and it was simply too slow for my taste. The HDD on my machine needs to be replaced, though, so it isn't all on Resharper. I suspect with a proper SSD it wouldn't be nearly as slow.
I haven't tried it for C++ solutions.
Our project is starting to go that direction (we're using areas in MVC). Is there any tricks you've discovered to manage better with that many projects in the solution (e.g. have the projects in the solution but unopened or something)?
PS - Yes, there is a giant hack to build areas as a stand-alone binary, but it is clunky and terrible. Hopefully the MVC team add first-party support in the next version.
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.
ReSharper makes writing C# a lot easier so I stick with it.
VS2015 has, on paper, some of ReSharper's features but I tried it without ReSharper and it felt ... dead. So you still need it for a complete C# IDE experience.
I'm not affiliated with them in anyway, but I am a huge fan.
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.
- 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.
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.)
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.