Resharper is amazing, take N
I am trying out R# 5.0, and I accidently stumbled upon an awesome feature.
Let us say that you Ctrl+Click the int.ToString() method:
In previous versions of R#, that would take you to the Object Explorer, which is useful enough, but R# does something far more awesome.
I didn’t realize at first what was going on, first it popped up this thingie:
And then it asked me to accept a license:
But then it actually showed me the real code that is behind int.ToString(). This is not Reflector trick, this is the real source code that made it into the framework:
Now, this is basically just integrating Symbol Server & Source Server, both of which have been available for a while now, but making this so easy is something that is huge!
Comments
Also a cool feature, that if you cancel mid-download of a large enough symbol (say, Data.Linq), it will ask you what to do:
http://imgur.com/PkKRA.png
Its good they bridged the gap, but really I think the major work here isn't adding the shortcut but the fact microsoft did the symbols server for debugging the source, if they had bothered to go that bit further and better integrate it like resharper has, it would probably be a lot more celebrated.
Be sure to also check out the Reflector plugin from the EAP download page. It gives you what the Scout plugin did in ReSharper 4.5: Source code navigation when symbols are unavailable.
IMHO the most useful feature is that all ReSharper features work with downloaded sources: Goto Base, Goto Inheritor, Goto Usages, etc.
Ah, thats why. I thought that I enabled someting in VS and then forget about it.
I didn't manage yet to step through the MS source code. Maybe its not supported (yet) by R#. I know its possible without R# but I haven't got it working yet.
VS2010 is getting a lot of R# features so the guys at Jetbrains are inovating even more. Looking forward to the final release
Very nice feature indeed, making it easier to see what is going on in some external parts. Wouldn't it be cool to get the same feature for the bigger OSS projects :)
-Mark
@Tom Did you set up Visual Studio according to this document:
referencesource.microsoft.com/serversetup.aspx
After that you should be able to step into framework code and have R# navigation there.
be aware that once you've accepted the license and see the real .net code, you can't work on mono anymore (AFAIK)
It is very cool indeed. I really like the new assembly level namespace fixups :) + 'flow' tracking functionality.
I stumbled across this the other day too, although i didn't realize it was R# 5 that had enabled this, i thought it was a VS2008 feature i had just never found. Very Useful indeed.
So, you get a free license from resharper now .. great!! .. You gus are pros.
Pro Guy,
Dude, this post has absolutely nothing to do with that.
Yes, I have a free license of R#, but I get that because I am an MVP, not because of commercial posting.
If you check the archives, you can see that I have been a fan of R# for a long time.
R# has never paid me or sponsored me saying things in their behalf.
Ayende, DFTT.
The thing that would concern me is that, as Frans mentioned, you should not look at the code if you think you'll ever want to contribute to Mono.
www.mono-project.com/news/archive/2007/Oct-04.html
That's nice and all. But will anyone ever address the elephant sitting in the corner? For a large project, R# takes almost a full minute to load. All this while blocking VS.
So to me, it's useful for small solutions, but once it gets beyond 5-6 projects...it becomes more of a pain.
Frank,
I've run R# on several very large projects, including my current, 22 project solution. It runs just fine for me. Here are a couple things you can do to help.
Add more memory. 2Gb is too little for a large solution, whether you're running with R# or not. Bump it up to 4Gb, and search google for "visual studio editbin largeaddressaware".
Limit what you have running in the background as well. It's probably not Resharper's fault if you've got the Zune software transcoding video podcasts in the background, etc.
Either follow Resharper's suggestions, or turn them off. Try to get it to where R# considers your source files "Green". If it wants you to turn if/else blocks into ternary operators and you don't LIKE that suggestion, change the options so that it doesn't suggest it anymore. Change suggestions to hints, or "do not show". The fewer things R# has to complain about, the faster it seems to run in my experience.
If Resharper is taking a full minute to load, do you have solution-wide analysis turned on? I leave that off for day to day coding, and turn it on every now and then during a "cleanup" pass only. Disable it again as soon as you're done. Solution-wide analysis IS a pretty heavy operation.
It maybe case that R# scales very well on good hardware cause I'm on a decently spec'd dev pc (quad code) but I routinely open solutions with 28 projects (admittedly small ones), without any noticeable UI blocking from R#.
Although I have found that with R# enabled that my PC starts to feel sluggish when I have more than 4 instances of VS.NET open. I've basically had to curb my habits and recycle VS.NET instances so I don't have more than 4 open at any one time. Which I'm happy to do as R# saves me a lot more time overall.
VS.NET wouldn't be nearly as good without R#.
Alberto,
I agree, but I am not interested in contributing to mono directly, so I am not worried about this.
Frank,
R# init is now async, so it doesn't block you.
And the benefit hugely outweigh any problems
What do you lose by turning the "solution-wide analysis" off?
@Shawn - When you turn off solution-wide analysis, ReSharper can't tell you about unused public properties, methods, and classes or whether a method/property is needlessly marked virtual. Solution-wide analysis just runs in the background and invalidates its cached metadata intelligently. So after an initial analysis, things are generally pretty zippy. Even for large projects, I leave solution-wide analysis on as I don't find that it slows down Visual Studio noticeably for me. On a lower-spec'd machine or on really huge projects, you might notice a slow-down, in which case turning it off for that project is obviously warranted. HTH.
Worth noting here the great Scout R# plugin for R# 4.*. Let's you browse to symbols using Reflector and is generally very useful indeed!
Redgate are also building similar functionality into an upcoming commercial version of Reflector - there's an EAP available too: www.red-gate.com/MessageBoard/viewtopic.php?t=9577.
Comment preview