ReSharper in Detail: Navigate from Here

A subset of ReSharper’s navigation features is designed to help you promptly navigate from one symbol to another. These features are:

  • Go to Declaration
  • Go to Type Declaration
  • Go to Base
  • Go to Inheritor
  • Go to Usage

Two common ways to call them are to choose corresponding menu items or hit keyboard shortcuts, but there’s a third, by far the most convenient way, which is to invoke the Navigate from Here drop-down list upon the current symbol in the text editor (or upon a selected entry in File Structure or another ReSharper tool window) by pressing Ctrl+Shift+G:

Not only does this drop-down list provide a handy multiple-choice navigation technique, but it also extends a developer’s toolset with a bunch of “secret” navigation features that are not available from the ReSharper menu.

Control Flow Target

(Works in text editor only)
Function: navigates to next control flow recipient.
Available for: foreach, yield, jump statements (break, continue, goto, return), throw statement.
For example, in the following code fragment, selecting Control Flow Target upon the continue statement brings the caret to the next iteration of the enclosing iteration statement, i.e. –i:

Function Exit(s)

(Works in text editor only)
Function: navigates to member exit point or highlights alternative exit points.
Available for: getters and setters in properties, constructor names, return statement (alternative exit points are highlighted, if any), throw statement.
For example, invoking Go to Function Exit(s) upon the name of the following constructor highlights throw statements in if clauses, as well as the closing constructor body delimiter:

Implementing Members

Function: highlights interface members implemented in the current class.
Available for: base interface entries in implementing class declaration:

Overriding Members

Function: highlights abstract class members overridden in the current class.
Available for: base class entries in inheriting class declaration.
Works similar to Implementing Members

Conflicting Declaration(s)

Function: navigates to a member with identical signature in the current scope.
Available for: any of conflicting member declarations:

Member Overloads

Function: navigates to an overloading member or (if there are two or more of them) highlights such members in the text editor.
Available: anywhere within overloadable members:

To-do Explorer

Function: navigates from a to-do item in the text editor to its corresponding entry in the To-Do Explorer.
Available for: to-do items:

Test Explorer

Function: navigates from a unit test or test class in the text editor to its corresponding node in the Unit Test Explorer.
Available anywhere within test classes, unit tests:

As a finishing note, remember that whenever you execute a “Navigate from Here” action that highlights a set of symbols that are not entirely visible on the current screen, you can navigate to the highlights using ReSharper Marker Bar (take a note of blue markers in the example for Member Overloads). When you’ve finished examining the highlights, press Esc to remove them.

This entry was posted in How-To's and tagged , . Bookmark the permalink.

7 Responses to ReSharper in Detail: Navigate from Here

  1. woaksie says:

    I love these detailed Resharper refresher posts. Sometimes when I haven’t used a feature for a while I forget it is there. These help keep them in memory (my memory).

    More please!!

  2. Vadim says:

    Thanks for this very useful post. However for me the shortcut keystroke is Alt+` instead of Shift+Ctrl+G for Navigage From Here.

  3. Alex Martsynkevich says:

    It’d be great to have “next item” shortcut for R# list windows. Not unlike F8 for error list, search results, etc in Visual Studio. Or how about actually reusing F8 command?

  4. Joe White says:

    Is there a keystroke to jump to the next/previous blue highlight in the file?

  5. Jura Gorohovsky says:

    Try Go to Next/Previous Usage:
    Ctrl+Alt+Down/Up (IDEA layout),
    Ctrl+Alt+PgDown/PgUp (VS layout)

  6. Borat says:

    Nice features but you still aint got Toggle Mark Occurrence feature as Eclipse SDK have it for years ago. Is it even possible to create toggle mark occurrence feature in Visual Studio crap ?

  7. wapi says:

    BTW, this feature is useless. Have you dumbnuts heard about toggle mark occurrence? Mark Occurrence is 1000 times more useful that this stupid Go to this, Go to that, Go to shtit !!!

Leave a Reply

Your email address will not be published. Required fields are marked *