ReSharper has always had a rich search and navigation system for finding files, classes, methods and even text. With the release of ReSharper Ultimate 2017.2, we’ve made a number of improvements to navigation: better search and matching, exact search, integrated Go to Text and a new way to navigate to files nearby.
All of these additions make it even easier to find what we’re looking for in our solution. Let’s dive in!
Navigation and search recap
ReSharper’s navigation features help us navigate to types, type members, files, text, contextual actions, … These navigations are all powered by a search engine that supports simple searches (including misspellings), as well as:
- Partial search terms
e.g. a search for
e.g. a search for
- Navigation combos
e.g. a search for
AS Cwill match the
AccountService, a search for
AS 25will match
e.g. a search with
/twill search for types,
/mwill search for members,
/mmwill search for methods,
/ffwill search for a project folder, … (hint: type
/in Go to Everything (Ctrl+T) to get a list of all filters)Note that Go to Text (Ctrl+T,T,T), has a few more – e.g. using
/cpwill search in the current project,
/extwill search in files with a specific extension,
/fmwill search in files with a specific file mask
Navigation and search improvements
ReSharper 2017.2 includes some updates to how search results are matched. When using navigations such as Go to Everything (Ctrl+T), Go to File Member (Alt+\) or Go to Action (Alt+Enter), ReSharper will now match elements containing words in the target query in any order. For example, a search for
ValidUser will also match
Too free-format? Want to be more specific in searching within a codebase? No problem. We also introduced exact search. Much like with an Internet search engine, we can add quotes around a search query. Something like
"Person" will return
Person but never
It’s possible to combine exact search with wildcard characters like
?, so we can search for
"Person*" to find
PersonRepository, but not
Another addition to search is finding extension methods. Using the
TypeName.ExtensionMethod syntax (with a
. separator), we can find extension methods on a given type:
Exploring search results
A number of changes went into exploring search results. One such change is that Go to Text is now integrated in Go to Everything (Ctrl+T). If there’s no type, file or symbol that corresponds to our search term, ReSharper will search for text. This means that we can search for any text in our solution and navigate to, for example, a Markdown file or an application setting based on a simple text search.
When search yields a large number of results, it may be useful to explore them in the Find Results window. For any search, we can now hit a laptop-friendly Shift+Enter shortcut to open search results in a separate tool window where we can explore and filter items more easily. (The older + shortcut to flush search results is still available as well.)
Navigate to File Nearby
We can perform contextual navigation using the Navigate To menu (Alt+Backquote). For example from a derived type, we can navigate up to the base class. Or from an interface, we can navigate to implementation. We now added a new option: Navigate to File Nearby.
Navigate to File Nearby displays project structure around our current file: the solution and project is shown, we can see folders and files that are in the same directory as our current file, and easily jump to these or create a new element at a certain location:
Download ReSharper Ultimate 2017.2! We’d love to hear your feedback on these navigation improvements.