Navigation Improvements in ReSharper 8
One of the core experiences of ReSharper is lightning-fast navigation to any type, member or file that you need to work with. In the latest release, we’ve slightly modified the core experience in order to streamline operations and give even better performance to our users.
Go to Everything
The new feature is called Go to Everything and it ‘takes over’ the Go to Type shortcut Ctrl+T. The goal is simple: to allow the user to search for a file, type or method name — all from the same input box.
The default listing of the items in this menu shows the files the user has worked with recently:
A search for an identifier presents a combined list of files, types and members. Note that hints regarding file names and namespaces are also presented in the list:
In addition, ReSharper treats recently edited members with extra care: they are always displayed faster than other members, show up higher in the listing and are shown in purple color. This feature is useful if, for example, you forgot the class you were recently working with, but remember the name of the method you were editing.
Also, one additional feature is that you can use the line number inside the search box, so a seach string of
ca ai 11 will take you to line 11 in
After the initial announcement of this feature, we got feedback that some of you prefer to have the old Go to Type shortcut. ReSharper 8 provides for this in two ways:
Pressing Ctrl+T a second time takes you back to the familiar Go to Type dialog.
To turn off the new behavior completely, go to ReSharper|Options|Search & Navigation and uncheck the Enable ‘Go To Everything’ check box:
Navigate To Generic Subsitutions
When you have the usage of a generic type such as
List<Foo>, it’s easy enough to find all usages of
List<T>, but what if you want to know the exact types that
List<T> is being specialized with. To help with this, one of the new navigation options is to look for Generic Substitutions:
Once you fire up this navigation item, ReSharper will search for all the types that are used to substitute the generic parameter
T and will show you a summary tree grouped by the type used to substitute the generic parameter. You can drill down into the tree to find out the exact locations where a particular type is used:
A typical use case for this feature would be to search for substitutions performed during invocation of a generic method (keep in mind these might not be immediately visible due to type inference) and then create a non-generic overload or get rid of one of the generic parameters in case it’s always being assigned the same argument.
Navigate to Assembly Explorer
Now that ReSharper has been enhanced with dotPeek’s Assembly Explorer, additional navigation options are available for decompiled sources. First of all, we offer the option to Navigate to Assembly Explorer for any decompiled code element:
In addition, pressing Shift+Alt+L on a decompiled file now takes you to the appropriate entry in the Assembly Explorer, instead of Miscellaneous Files in Solution Explorer that we had previously.
We hope you find these navigation features useful in your development efforts. To see them in action, download the EAP and give them a go!
Subscribe to Blog updates
Thanks, we've got you!
Eager, Lazy and Explicit Loading with Entity Framework Core
Entity Framework Core (EF Core) supports a number of ways to load related data. There’s eager loading, lazy loading, and explicit loading. Each of these approaches have their own advantages and drawbacks. In this post, let’s have a quick look at each of these ways to load data for navigational prope…
OSS Power-Ups: bUnit – Webinar Recording
The recording of our webinar, OSS Power-Ups: bUnit, with Egil Hansen and Steven Giesel, is available. This was the twelfth episode of our OSS Power-Ups series, where we put a spotlight on open-source .NET projects. Subscribe to our community newsletter to receive notifications about future webi…
Accelerating Your Testing Workflow with Unit Test Creation and Navigation
Unit tests play an important role in our daily development workflow. They help us ensure our codebase's correctness when writing new functionality or performing refactorings to improve readability and maintainability. In the process, we often create new test files that accompany the p…
Introducing Predictive Debugging: A Game-Changing Look into the Future
With the introduction of debugging tools, software developers were empowered to interactively investigate the control flow of software programs to find bugs in live environments. At JetBrains, we've always strived to improve the art of debugging. Besides the more standard things you expect from a de…