Navigation improvements in ReSharper 2018.1
Our latest release of ReSharper 2018.1 includes improvements in navigation. We will be looking at several navigation features for Go To that have been improved.
Go To File Member
ReSharper’s ability to move through the members with a file of code has been there since the beginning. We can invoke the ReSharper | Navigate | Go To File Member… command (Alt+\) to view the list of members in the file. We can invoke Alt+\ again and toggle the list to include all members of the current class’s base classes. When we select a member from the list, the caret will be located at that member’s declaration.
The improvement in 2018.1 is when the list of members is presented the list is grouped by the classes in the file. This will improve understanding as your filter with a search string and give us a better overview if a file as multiple classes located in it.
In addition to grouping members by class, the ordering of the file members has been corrected to show the member order in the file and should be more useful.
Go To Recently Viewed File
If we want to see a list of the files we recently viewed, we can invoke the ReSharper | Navigate | Recent Files… command (Ctrl+,).
While this feature has been in ReSharper for a long time, the pop-up windows now have been updated to also show additional files that match the search string. This is very similar to the Go To File functionality and we hope that it will give developers better navigation in their solutions. Also in the past, the sorting criteria for recent files was by best match. In 2018.1 the updated sort criteria is now by most recent viewed first. This should give developers a better understanding of the order of the files presented.
Navigation Filter and Unit Tests
Navigation filters have been available in the Search Anywhere (Ctrl+T) since version 2017.2. In 2018.1, we have added the ability to filter by unit tests that are located in the current solution by using the /u filter.
We’d love to hear your feedback on these updated features! Give ReSharper 2018.1 a try!
Bendik August Nesbø says:
April 20, 2018I have remapped ReSharper.ReSharper_GotoFileMember to Ctrl+Shift+T. When I press Ctrl+Shift+T, I get the “Enter Member name” prompt as expected, but a second Ctrl+Shift+T does not check the “Include base members”, but rather display a prompt for “Enter file or folder name”.
I have removed the keybinds ReSharper.ReSharper_GotoFile, but it still shows up.
Alt+\ does nothing in the GotoFileMember-prompt.
3xCtrl brings up the shortcut live view, and holding Ctrl+Shift display only GotoFileMember for the T-key.
Is this not possible for other keybind than Alt+\ ?
Chris Woodruff says:
April 23, 2018Bendik — Thanks for letting me know about your findings, especially the issue with ReSharper.ReSharper_GotoFile keybinding. I will discuss with the R# development team and find how we can resolve them.
Lucas Trzesniewski says:
April 20, 2018/u is interesting, but one feature I’d like to see is to be able to filter out unit tests (or display them separately). Often, when I’m looking for a bit of code, there are a lot of matches in unit tests and those are spamming the results.
It could be very nice if, for instance, when using the “Navigate to usages of symbol” feature (Ctrl+Alt+F7 in IntelliJ bindings), matches from projects containing unit tests would be displayed in a separate category.
Chris Woodruff says:
April 23, 2018Thanks, Lucas for your suggestions. I will pass them along to the R# development team.
kojamroz@microsoft.com says:
July 24, 2018I upvote the suggestion by Lucas. I spend lots of time “mentally filtering out” the unit tests projects, e.g. when trying to trace the call chain of given method in production code.
John says:
April 21, 2018I would like to be able to move between the tabs in the Shift F12 results without having to use a mouse. Maybe there’s already a way to do that?
Chris Woodruff says:
April 23, 2018I don’t think there is a way. Apologies.
Bernhard Millauer says:
April 21, 2018I would love to see a feature to detect unused code meaning code that is not used by other production code, not unit test code.
Drew Noakes says:
April 24, 2018I would like to see this too.
You can vote on an issue I created to track this 9 years ago 🙂
https://youtrack.jetbrains.com/issue/RSRP-96064
Chris Woodruff says:
April 23, 2018Bernhard —
That is a very interesting idea. Thanks and will pass it along to the R# PM for consideration.