Navigation and Search
Navigate To (known as "Navigate from Here" in ReSharper 4.5 and earlier) is a single shortcut for all your navigation needs. Navigate To lists all destinations available at the current caret position. Press Ctrl+Shift+G for quick navigation links to the declaration, type declaration, base class, inheritor(s), or usage of the symbol under the caret; interface implementation for an interface; function exits for a function, and more.
Go to Everything/Type
This command, available with Ctrl+N, combines two different features: Go to Everything, which appears first, provides quick navigation to all possible destinations (types, symbols or files). The list of suggestions appears as soon as you invoke the command and initially includes your recent files and navigated items. As you type, the list is updated according to your input. Go to Type, which appears when you press the shortcut again, allows you to navigate to any type within your solution. These and other 'Go to' features also support wildcards: '*' (asterisk) represents zero or more characters; '+' (plus) represents one or more characters; '?' (question mark) represents one or zero characters.
Go to Symbol
The Go to Symbol feature (Ctrl+Shift+Alt+N) searches by name, solution-wide, for any file member. All ReSharper's 'Go to' commands, including Go to Symbol, support case-insensitive CamelHumps. That is, you can find a member quicker by entering its initial character and any subsequent characters that its name contains — for example, you can find testFixedSizeBuffer by entering tfixs.
Go to File
Similar to Go to Type, Go to File (Ctrl+Shift+N) navigates you to any file within your solution. All the same search techniques and wildcards are supported.
Go to File Member
To quickly navigate to a particular method or field in the current file, use the Go to File Member command (Ctrl+F12). Same as with Go to Type, start typing the symbol name and then select from the list of matching members. This feature works with file members from C#, VB.NET, XAML, XML files, build scripts, and even ASP.NET markup files.
Go to Base
You can navigate up the hierarchy to base type or method by positioning the caret on a usage or declaration of a
type or method in the editor and pressing Ctrl+U.
By the way, you can also see when a method overrides, implements, or hides another method by the presence of special icons that appear to rhe left from the method declaration. Click the icon to navigate up the methods hierarchy.
Go to Derived Symbols
This command lets you navigate down to a derived type or method by pressing Ctrl+Alt+B. Immediate inheritors are highlighted with bold.
Go to Implementation
This navigation feature lets you jump from a base type or member to any of its end implementations, bypassing intermediate steps in the inheritance chain. In other words, it works similar to Go to Derived Symbols but it doesn't show abstract classes and interfaces.
Go to Declaration
To navigate to the declaration of a symbol, position the caret at any symbol usage and press Ctrl+B, or hold Ctrl and left-click the symbol. ReSharper will jump to the declaration of the corresponding type, method, field, or local variable in the relevant source file. For library symbols, the corresponding entity will be displayed in Visual Studio's Object Browser or in the editor as metadata view or decompiled code, depending on ReSharper settings.
Go to Type Declaration
Press Ctrl+Shift+T to navigate to the declaration of a type that a variable, field, or parameter belongs to. ReSharper will switch to the declaration in source code or, for library types, display the corresponding symbol in the Object Browser or show the decompiled code.
Go to Generic Substitutions
This command, available with the Navigate To shortcut, helps you get the list of all types that substitute the generic type parameter and all places where each substitution is used.
Go to Exposing APIs
This command, available with the Navigate To shortcut, navigates from a type to all places in your solution where you can get an instance of this type: public fields and properties, method return values, out parameters, etc.
Go to Related Files
To learn more about advanced navigation and other features that ReSharper makes available to web developers, see ASP.NET and ASP.NET MVC Tools.
Go to Last Edit Location
Press Ctrl+Shift+Backspace to quickly position the caret at the latest location where you changed your code. Subsequent use of this action leads you deeper into your editing history.
Go to Next Member/Tag
You can quickly go to next file member in C# or VB.NET code files, or to next tag in XML or XAML files, by pressing Alt+Up.
Go to Previous Member/Tag
Similar to Go to Next Member, this feature gets you to the previous member or tag — all you have to do is press Alt+Down.
Navigation to Library Code
A solution is not limited to sources included in your projects, but also contains references to libraries. We thought it would be great if you were able to navigate to and within those libraries just like you do with the source code.
Some companies publish parts of their sources using the Source Server feature of debug information files (PDB). On the other hand, Microsoft uses this technology to provide access to the source code of the .NET Framework. If you have PDBs available and ReSharper installed, you can access sources stored that way as if they are a part of your solution. If you want to find out what a certain .NET Framework class contains, ReSharper will show it to you as well.
Even if the source server is not available, no worries: ReSharper is able to reconstruct the structure of library code from metadata.
Here's how it works when a source server is available:
- You click Ctrl+Shift+G on a library symbol to open Navigate To with the list of navigation options.
- You select an external navigation option for a library symbol:
- ReSharper downloads PDB files from a source server.
- ReSharper displays the selected library symbol declaration as if it is defined in your solution:
Find Usages quickly locates usages of any symbol (type, method, field, etc.) in your code. Just position the caret on the symbol for which you want to find usages and press Alt+F7. If you have a mixed-language project, usages can be found across multiple languages with ReSharper.
Search results are displayed in the Find Results window, and organized in a hierarchy. From this window you can directly navigate to any usage with either keyboard or mouse. Additional functionality of Find Results provides several ways to work with search results, including:
- source code preview
- filtering by read or write usages, invocation usages, attribute usages, usages in documentation, or "other"
- grouping by categories
- tabs of recent usage searches, and more.
You can navigate between usages, when the Find Results window is open, by pressing Ctrl+Alt+Up/Down (even from the editor).
To specify the search scope and the type of usages to be found, use the Find Usages Advanced feature available by pressing Shift+Alt+F7:
Go to Usage
You can quickly navigate to symbols with few usages (e.g. with a private field) by pressing Ctrl+Alt+F7. Instead of opening an entire tool window, it will open usages in a pop-up.
However, if it turns out that the pop-up with the list of symbol usages contains too many items, just click the magnifier icon in the top right corner of the pop-up to transfer the list of usages to the Find Results window.
To highlight all the usages of a symbol within the current file, just position the caret on any symbol usage and
press Ctrl+Shift+F7. You can also highlight usages of namespace import directives and even
expressions. In large files, you can use the marker bar on the right to navigate between highlighted usages.
ReSharper quickly finds and highlights usages of symbols within XAML markup as well as across languages.
Structural Search and Replace
This feature lets you create patterns to search for code smells or legacy code that ReSharper doesn't detect out of the box, and replace them with good code. More than that, in order to remove poor coding artifacts on a recurring basis, you can create custom code inspections and make ReSharper provide quick-fixes for them.
Building patterns and enforcing good practices has never been this easy. Corporate and team policies, custom frameworks, favorite open source libraries and tools — structured patterns are able to cover them all. As a bonus, you can import and export best patterns to share them with colleagues or move between ReSharper installations.
- Defining a placeholder for a search pattern:
- Search and replace patterns listed in ReSharper Pattern Catalog:
- Highlighting code that matches a search pattern and replacing it with a replace pattern:
With ReSharper, you can view the inheritance hierarchy of a certain type in a dedicated window. The window shows
both base types and inheritors of the selected type and allows you to navigate to any of them with a single
click. For any node in the hierarchy, you can view all or only polymorphic members in a separate preview
To open the Type Hierarchy window for a type, position the caret at the type name, and press Ctrl+Alt+H, or choose the View | Type Hierarchy on the ReSharper menu.
File Structure window is available for all supported languages and file types,
In C# or VB.NET files, you can see what methods, fields, classes, and regions they contain,
as well as navigate directly to their declarations — just press
In ASP.NET, File Structure lets you examine tags, scriptlets, controls, and other structural elements of a currently opened file, and navigate directly to their declarations. See ASP.NET and ASP.NET MVC Tools for details on how this and other navigation features help web developers.
For build scripts, File Structure lets you see what properties and targets that the current script contains.
The window also lets you rearrange items within the file with a simple drag-and-drop, call navigation actions and refactorings, create and delete regions.
The File Structure window is fully synchronized with the editor. All changes made to a file are immediately reflected in the File Structure and vice-versa.
This is a simple yet powerful feature: you can drop a numbered marker with a single shortcut, and jump back at any time with another shortcut. You can create up to 10 numbered bookmarks, and unlimited unnumbered bookmarks. The full list of bookmarked positions is displayed in a single pop-up window to speed up navigation between code spots.
View Recent Files
Pressing Ctrl+E opens a pop-up window with the list of recently opened files, where you can select any item to navigate to.
View Recent Edits
This works a lot like Recent Files, but the pop-up window shows the list of files and symbols that you have recently modified.
Stack Trace Explorer
When you receive an external stack trace (for example, from a bug report), you can copy-paste it into the Stack
Trace Explorer to navigate to where an exception originated. The lines within the stack trace will be
represented as hyperlinks. To open the Stack Trace Explorer, press Ctrl+Shift+E.
The To-do Explorer helps you keep track of all your reminder items marked with todo, note and/or bug tags, as well as positions where NotImplementedException are thrown. To-do Explorer retrieves all such items from all files in your solution — even closed ones — and displays them in To-do Explorer for your browsing pleasure
Go to Action
ReSharper helps you quickly find and apply any of its actions, without digging through the menu (by an action, we mean an executable command available for the current caret position or a command that opens a tool window). To find an action, just press Alt+Enter anywhere in the editor and start typing a command or related words.
All keyboard shortcuts provided in the "Features" section are taken from ReSharper 2.x / IDEA keyboard scheme. For details on ReSharper's two default keymaps, see Documentation and Demos.