dotPeek 2019.3 Help

Go to Declaration

Navigate | Go To Declaration
Ctrl+B

Use this command to navigate to the declaration of a symbol from any symbol usage. You can invoke this command from the Assembly Explorer, from the File Structure window and other tool windows.
To navigate in the opposite direction (symbol usages) you can invoke the Go to Declaration command when you are already on the symbol declaration, or you can use the Go to Usages of Symbol command.

If you navigate from a usage of a method or a property, which is declared in an interface, the command will get you not to the interface itself, but to the exact implementation that is used.

Navigate to a declaration of a symbol

  1. Place the caret at a symbol in the code viewer or select the symbol in a tool window.

  2. Choose Navigate | Go to Declaration in the main menu, press Ctrl+B, or click the symbol while holding the Ctrl key.

  3. If the command returns a single result, dotPeek navigates directly there. In case of multiple results, they will be listed in a drop-down where you can do one of the following:

    • Click the desired item to open it in the editor.

    • Select the desired item by pressing Up and Down and then press Enter to open it in the editor.

    • To view and analyze the list of matched items in the Find Results window, click Show in Find Results ThemedIcon SearchResults Screen Gray , press Shift+Enter or + on the numeric keypad.

Invoke this command on symbol declarations

As Go to Declaration (including its Ctrl-click access) is one of the most frequently used commands, dotPeek streamlines your navigation experience letting you use this command in navigation scenarios related to usages of the declared symbol, so you can invoke Go to Declaration even if your caret is already at a symbol declaration to study symbol usages.

Usage-aware behavior

  • You can invoke the Go to Declaration Ctrl+B command when your caret is already at a symbol declaration. In this case, dotPeek will show a short version of the Navigate To menu only including the command for iterating usages and commands for navigating to other members in the inheritance hierarchy (Base Symbols, Derived Symbols).

    If you choose Iterate usages in the Navigate to menu, dotPeek enables 'usage iteration' mode designated with a small popup in the upper-left corner of the code viewer:

    Usage-aware behaviour of Go to Declaration
  • Right after you have used the Go to Declaration command on a symbol usage and landed on its declaration, dotPeek enables the 'return to usage' mode

    In this case, you can invoke Go to Declaration again to return to the usage. If you repeat this command yet another time, dotPeek will switch the 'usage iteration' mode.

You can always exit the 'return to usage' and 'usage iteration' modes by pressing Esc or clicking Close (x) in the usage iteration popup.

In the 'usage iteration' mode, you can navigate through the symbol usages as follows:

  • Invoke Go to Declaration to go to the next usage, if any, and so on, subsequently navigating through all symbol usages. The total number of symbol usages in the solution appears in the usage iteration popup.

  • Use Next and Back buttons in the usage iteration popup Ctrl+Alt+PageDown/Ctrl+Alt+PageUp to go to next and previous usages.

  • To view and analyze the list of matched items in the Find Results window, click Show in Find Results ThemedIcon SearchResults Screen Gray , press Shift+Enter or + on the numeric keypad.

This feature is inspired by and borrowed from JetBrains ReSharper, a developer productivity tool for Microsoft Visual Studio.

Last modified: 16 April 2020