Rory Becker - DevExpress CodeRush Blog

August 2011 - Posts

  • Super Sibling Nav for CodeRush

    Another CodeRush Feature Workshop means another feature.

    CR_SuperSiblingNav provides 2 additional NavigationProviders for navigating between sibling Methods and Properties.

    Ok so what’s so special about that then? Can’t we just locate the sibling’s next (or previous) sibling and move the caret to the first character of that?

    Well yes … we could … but this isn’t SiblingNav, this is SuperSiblingNav (Note: We had to talk Mark down from SuperMegaAwesomeWonderSiblingNav)

    SuperSiblingNav doesn’t just move the focus to the next (or previous) member. It also refocuses the caret at the same relative location on that sibling.

    Download this plugin and I’ll show you what I mean after some brief setup information.

    Setup

    Having installed the plugin correctly, you’ll need to bind some keys to the Navigate(Member Next) and Navigate(Member Previous) commands with an appropriate context.

    SuperSiblingNavShortcuts

    We suggest Ctrl+Alt+PgDn and Ctrl+Alt+PgUp. In each case you should bind the shortcut to the Editor\Code\InMethod and Editor\Code\InProperty contexts.

    Usage

    So once you’re setup, usage is pretty simple. Just position your caret within a method or property and invoke one of the navigation commands.

    Name Tracking

    If the name of your starting member is selected, the name of your destination member will be is selected after navigation.

    SuperSiblingNavMethodName

    Parameter Tracking

    If a parameter was selected before navigation, then a similar parameter will be selected in the destination member upon completion of the navigation.

    This works intelligently, which means that if you move from the 3rd parameter of Method1 (and method2 only has 2 parameters), we will select the second parameter of method2. If you further move on from there to method3 (which does have 3 methods) then we will again select the 3rd parameter for you.

    SuperSiblingNavParameters

    Almost any other tracking

    In truth, Super Sibling Nav will track just about any sibling relationship.

    In this last example, you can see it tracking the selection as you move through several variable initializations. It will track the variable name, and can even track the assigned value.

    SuperSiblingNavStatements

    So CR_SuperSiblingNav can help you navigate amongst sibling items, whilst maintaining the relative selection of text or positioning of the caret.

LIVE CHAT

Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383

FOLLOW US

DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2017 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners