- Go to Declaration (Ctrl+B): this takes you from a usage of any symbol to its declaration. Should the symbol be dependent on another assembly, the assembly will be loaded silently, if available.
- Go to Base Symbols (Ctrl+U): this takes you to corresponding symbols upwards the inheritance hierarchy:
- Go to Derived Symbols (Ctrl+Alt+B): the opposite of base symbols, this command lets you go to any of implementing/overriding members or implementing/derived types:
- Go to Implementation (Ctrl+Shift+Alt+B): allowing navigating to end implementations of types and type members, bypassing intermediate inheritance steps in the inheritance chain, such as abstract classes.
- Go to Extension Methods (only available through Navigate To): shows all extension methods for a certain type.
- Go to Sources from Symbol Files (only available through Navigate To): download symbol information from a source server and recreate source code. (See below for more information.)
- Go to Assembly Explorer (only available through Navigate To): navigates from a type or type member in source code view to the corresponding node in Assembly Explorer. Interestingly, this command is duplicated by another shortcut, Shift+Alt+L, that, when applied in ReSharper, locates the current file in Solution Explorer.
For more details on other special-purpose commands available through the Navigate To drop-down menu, see ReSharper help.
The Navigate To functionality is shared between ReSharper and dotPeek. As of early EAP, the Navigate To menu in dotPeek contains several items that are ReSharper-specific, such as Go to Related Files. These items will be removed in subsequent EAP builds.
- Find Usages: The ability to see easily all the places where a type is used. This is similar to the Used By in REflector..
- Highlight usages in file
- Find usages advanced
- Quick Find
We've already covered Go to Derived Symbols and Go to Base Symbols above but these two features are useful when you want to go to an inheritor or a base symbol right away. What if you're looking to plainly get an overview of a certain inheritance chain? That's where the Type Hierarchy view comes handy: press Ctrl+Alt+H on a usage of any type, and dotPeek will show you all types that are inherited from it, as well as types that it inherits itself - as a tree view, in a separate tool window.
Goodness doesn't end here, though: you can select nodes in the tool window, rebase hierarchies on them; show or hide preview of type members; and switch between several hierarchy views: for example, you can opt to only show subtypes or supertypes of a given type.
Downloading Source Code from Source Servers
Decompiled code is better than nothing (especially if it's decompiled with dotPeek) but sometimes you want to explore an assembly exactly the way it had been originally written, and be able to read comments its developers have made. Sometimes dotPeek can help with that: it is able to get symbol information and recreate source code from Microsoft Reference Source Center and SymbolSource.org. You can try calling Navigate > Navigate To > Sources from Symbol Files on a type or member and see if symbol information for this particular assembly is available. Before you do that, though, go to File > Options and select Allow downloading from remote locations.
Keyboard-Driven Navigation Between Tool Windows