14 ms·
Visual Studio seems to keep incorporating features from ReSharper in every new version, and ReSharper subsequently keeps adding new features as a response. The
by Anchor 10y ago
Visual Studio seems to keep incorporating features from ReSharper in every new version, and ReSharper subsequently keeps adding new features as a response. The ReSharper developers have the fun task of combining these features into a coherent UI.
New features in VS2017 that were already in ReSharper include configurable suggestions from static analysis, Ctrl+T navigation (it even uses the same shortcut), structured find references, intellisense filtering, multiple refactorings in given scope, live unit testing and coverage (in ReSharper Ultimate).
This is great and a bit amusing at the same time, but as a user, I like the improvements we get.
- tonyedgecombe 10y agoEvery time a new version of VS comes out I try it for a while without Resharper, usually it only takes a few days before I miss something important.
- recursive 10y agoEvery time I try to use Resharper, it takes only a few days before I have to uninstall it. Last time, I couldn't find a way to turn off ctrl+click navigating to a definition.
- Anchor 10y agoReSharper | Options | Environment | Search & Navigation | Rich mouse navigation in the editor
- chinhodado 10y agoWhy do you want to turn it off? Do you use ctrl+click for something else?
- wjd2030 10y agoAgreed, dont know how I feel about it. Resharper has been amazing for so many people I kind of feel like MSFT is ripping them off.
- douche 10y agoJetbrains does still have a very nice decompiler, memory and performance profiler to go along with ReSharper. And then of course all of their other IntelliJ-based IDEs for other languages. It still makes a lot of sense for me to pay for my license, since it's less than a dollar a workday. I'm kind of curious what they'll do with their C# IDE, Rider, and how much they can share between that and ReSharper. With Visual Studio itself starting to go cross-platform, I'm not sure how long that niche will stay open.
- Anchor 10y agoOne additional selling point of ReSharper to me has been the embedded continuous learning enabled by it. Almost every time a new language feature is introduced, it is ReSharper that shows me how and when to use them, using suggestions in my existing codebase. I especially like how they are able to translate several nested foreachs and ifs into one line LINQ statement - and back again. This ability was instrumental for me to really become fluent in LINQ. This level of code analysis and refactoring is something we just don't see yet in Visual Studio.
- sharpercoder 10y agoI see this pattern in more Microsoft products. 1. Publish a default implementation with plugin support 2. Popularize and sell product 3. Add a small subset of popular plugin features to next version. Ensure to never implement the full set. 4. Release improved version of product 5. Plugin will enhance with newer features 6. Repeat steps 3-5 If done right, this will work for both product and plugin implementors.
- Retric 10y agoWell assuming no patent issues.
- euroclydon 10y agoIt's amusing to watch a co-worker develop in the latest version of VS while still having ReSharper installed. There are so many intelligent hover-over tips, sidebar icons, and such. I can't imaging how they can read the code with all that. Plus, their IDE is slow.
- moron4hire 10y agoI've tried ReSharper on and off for 15 years and I was never able to justify its features for just how slow it made everything. But I'm a C# developer. I understand the default C++ experience in VS historically want as good as the default C# experience, ReSharper bright then to parity, and C++ devs generally found the experience to be a universal improvement, rather than trade offs.
- Anchor 10y agoI agree that the tooling is about as heavy as you can get when you combine VS and R# with solution wide static analysis turned on, but it's nothing an equally heavy development machine can't fix. Then again, I may be old school in this, as I prefer massive desktop machines and too many screens. What kind of machines you use? It is also worth noting that the structure of the code affects the static analysis and other features. It is faster to operate with lots of smaller isolated modules than large and coupled ones. The same techniques that kept C++ project compile times manageable, keep the static analysis real-time in C#. One more reason to decouple modules.
- deleted 10y ago[deleted]
- jeremiep 10y agoI ended up uninstalling ReSharper 2 years ago because of the amount of false positives it reported as well as having huge impedance mismatches with the performance requirements I had at the time. One annoying moment was when it claimed a variable would always be false, and running in the debugger proved it could have both values. I also had to turn off a lot of rules because the refactoring suggestions I had would've made the code cleaner at the cost of adding indirections or allocations. I was doing a 2D skeletal animation system for Unity3D at the time and wanted raw performance much more than anything else. We ended up pushing 10K sprites on mobile devices (thats about 200 dynamic meshes of 50 sprites each - the best existing solutions we could find had a performance cap of 10-20 meshes) but that was the least idiomatic C# I've ever written; structs and refs everywhere in tightly packed contiguous memory with components being dumb indices into these arrays. Its a wonderful tool, but it requires some critical thinking to not naively apply everything it suggests, which in my case ended up being easier to work without ReSharper than with it.
- Anchor 10y agoFunny coincidence, I'm tweaking performance of manually managed contiguous memory using structs and refs as I'm writing this reply (the application is a combinatorial optimization system). There's nothing in ReSharper that currently suggests me to replace structs and refs with something else, or that I need indirections into my SoAs and AoSs. But yeah, static analysis can yield false positives if you use for example reflection (one more reason to avoid it in most cases), but there's an option to turn a specific message off for particular line, class, etc. You can also edit ReSharper suggestions per solution basis, so if there are some special requirements, they can be incorporated into its behavior.
- jeremiep 10y agoIt probably improved a lot since the last time I used it. I haven't done any C# in a while :) It wasn't complaining about structs or refs but wanted LINQ everywhere, anonymous lambdas and other high level constructs in place of high-performing but harder to read ones. I wasn't using reflection either, it was something like this simplified pseudocode (off the top of my head, I haven't touched that codebase in over a year): var completed = false for each line in timeline do completed = completed || tick(line) if completed // here it complained its always false There was more to it (to handle time offsets and multipliers, disabled lines and whatnot) but thats the gist of the algorithm. After disabling or tweaking rules every day I just decided to uninstall it, and as I said its a wonderful tool - just not for that specific task at that specific point in time :)
- Metasyntactic 10y agoHey Anchor, I'm https://github.com/CyrusNajmabadi https://github.com/CyrusNajmabadi a developer on the Roslyn team, and a primary developer around many of the new features Kasey demo'ed here. You're definitely correct that many of these things have already appeared in Resharper. However, that wasn't the point of us building them. We invested in the Roslyn platform many years ago so that not only could we share and leverage code across all our languages, but so that other people could plug in as well to add the sorts of enhancements they would like. Currently, We've moved C#, VB, TypeScript, JavaScript, and now Xaml, onto the Roslyn platform. Because of this (note that some of this is bleeding edge), not only can we all share a common infrastructure for things like Find-References, IntelliSense, and Refactoring, but 3rd parties can now plug in as well and add their own capabilities. For example, all the refactorings we've offered are ones that others could have as well. We just happen to think that, over time, we should continually be improving the core set we provide so that you can get a highly capable and powerful experience out of the box without necessarily having to go install a lot of extra plugins. Of course, if you do find plugins (including resharper) that you find valuable, then we want you to def go out and enhance your experience with them. I hope you get a chance to try this stuff out. As always, please file feedback/issues on github.com/dotnet/Roslyn Thanks!
- yareally 10y agoYour account appears to be dead. I vouched for your comments in the thread so they would show up. Not sure why they were dead, but you might want to contact the staff to get that cleared up.
- Metasyntactic 10y agoThanks! Looks like i didn't have an email address registered. Maybe that caused it?
- sctb 10y agoIt got caught by a software filter, but we've marked the account so it won't happen again.
- smg 10y ago