Advanced Code Navigation

The CodeRush's navigation engine makes it extremely easy to locate required code fragments. For instance, let's see how you can use this feature to find all method overloads within both parent and child classes.

First, right-click the desired method to invoke the context menu.

In the Jump to submenu, choose Next Reference or Previous Reference.

That's it – you can now tab through all overloads by simply pressing TAB or SHIFT+TAB.

When you're done, you can return to the initial position by simply pressing ESC (this collects the marker that is dropped when you start navigating).

Here's the complete list of all navigation providers, i.e. ways to navigate code:

  • Jump to Overloads Within Ancestors
  • Jump to Overloads
  • Jump to Declaration
  • Jump to Implementors
  • Jump to Base Types Within Ancestors
  • Jump to Overload Descendants
  • Jump to Overrides
  • Jump to Virtual Member Ancestor
  • Jump to Flow Breaks
  • Jump to Next Reference
  • Jump to Previous Reference
  • Jump to First Child
  • Jump to Parent
  • Jump to First Element
  • Jump to Last Element
  • Jump to First Member
  • Jump to Last Member

Intelligent Class and Member Declaration

CodeRush v3 implements a new approach to code generation that will be extremely useful for those practicing test-driven development. If you are writing code (a test) using yet undeclared classes and members, you will now need only a few keystrokes to provide proper declarations. Simply place the caret onto the required undeclared element and hit CTRL+` (or any other shortcut you choose).

CodeRush then analyses the current context. If the caret is obviously on a property, then the property declaration mechanism is automatically activated. The only thing you're asked to do is to choose the appropriate position within the target class. CodeRush automatically determines all necessary types so that you only take care of the implementation – without having to declare the identifier and its basic syntax.

If more than one option is available, a context menu is shown so you can choose what to declare.

Previous users of Refactor! Pro will have noticed that the keystroke used to generate code using CodeRush is the same keystroke that Refactor! Pro uses for refactorings. Because we have a great horror of having to remember many keystrokes to invoke functionality, we've made sure that you only have to remember one for our IDE Tools. Using that key – by default Ctrl+` – you'll get a new context-sensitive menu. This menu will not only show the available refactorings as before, but also the available code structures that can be generated at the caret. Of course, if there is only one option, that functionality will be immediately applied, although you can turn this behavior off if need be.

Following is the complete list of code structures that can be declared using the described mechanism:

  • Declare Class
  • Declare Struct
  • Declare Delegate
  • Declare Interface
  • Declare Constructor
  • Declare Local
  • Declare Field
  • Declare Property
  • Declare Setter
  • Declare Getter
  • Rotate 90 Degrees
  • Mirror Code

The last two entries are designed to work with 2D painting code or code fragments that use column/row notions. When you choose Rotate 90 Degrees, X and Y axis are switched. For instance, Left and Right properties are replaced by Top and Bottom, respectively.

Mirror Code does a similar thing – it replaces Left with Right, Top with Bottom, etc.

More from DevExpress
Live Chat
Have a pre-sales question?
Need assistance with your evaluation?
We are here to help.
Chat is one of the many ways you can contact members of the DevExpress Team. We are available Monday-Friday between 8:30am and 5:00pm Pacific Time.
If you need additional product information, require pre-sales assistance, or want help with your order, write to us at info@devexpress.com or call us at
+1 (818) 844-3383.