using System; namespace JetBrains.ReSharper.Koans.Navigation { // Navigate To menu - Menu on Method // // This is a convenient way to navigate from the current location. // See "4.1-Navigate_To_menu.cs" for the basic mechanism. // // How to use Navigate to // Alt+` (ReSharper VisualStudio Keymap) // Ctrl+Shift+G (Rider Default IntelliJ Keymap) // // Put the caret on the target and use the keyboard shortcut. // // 1. When the caret is on a method public class NavigateToMenuOnMethod { // a) Member overloads highlights overloads of the method // Escape clears the highlight // // (Reference) How to move between candidates // // NOTE: Rider shortcuts are undefined by default (no configuration) and must be configured to work. // Settings | Keymap | Main Menu | Edit | Find Usages // - Next Highlighted Usage // - Previous Highlighted Usage // // Ctrl+Alt+PageUp/Ctrl+Alt+PageDown (ReSharper VisualStudio Keymap) // F3 / Shift+F3 (Rider Default IntelliJ Keymap) // // (ReSharper) https://www.jetbrains.com/help/resharper/Navigation_and_Search__Navigate_from_Here__Overriding_Members.html // (Rider) https://www.jetbrains.com/help/rider/Navigation_and_Search__Navigate_from_Here__Overriding_Members.html // public bool OverloadedMethod() { return true; } // b) Function exit(s) highlights return statements // Escape clears the highlight // // (Reference) How to move between candidates // // NOTE: Rider shortcuts are undefined by default (no configuration) and must be configured to work. // Settings | Keymap | Main Menu | Edit | Find Usages // - Next Highlighted Usage // - Previous Highlighted Usage // // Ctrl+Alt+PageUp/Ctrl+Alt+PageDown (ReSharper VisualStudio Keymap) // F3 / Shift+F3 (Rider Default IntelliJ Keymap) // // (ReSharper) https://www.jetbrains.com/help/resharper/Navigation_and_Search__Navigate_from_Here__Overriding_Members.html // (Rider) https://www.jetbrains.com/help/rider/Navigation_and_Search__Navigate_from_Here__Overriding_Members.html // public bool OverloadedMethod(string arg1) { if (string.IsNullOrEmpty(arg1)) return false; Console.WriteLine("do!"); if (arg1 == "throw") throw new InvalidOperationException(); return true; } public bool OverloadedMethod(string arg1, string arg2) { return false; } } }