Rory Becker - DevExpress CodeRush Blog

CodeRush for Roslyn: Quick Nav

For those who don’t already know, Quick Nav is CodeRush’s Symbol Search.

It’s what you use when you’re trying to find the declaration of some code element when you know part of it’s name.

Usage

The default shortcut for this feature is Ctrl + Shift + Q. Once triggered you’ll see the following screen:

image[Quick Nav - Clean, Simple and Instant]

[Tip: If you’d prefer to use another hotkey to launch Quick Nav, you can customize this in the Options dialog (Ctrl+Shift+Alt+O) on the shortcuts page (IDE\Shortcuts) in the Navigation section.]

For demonstration purposes I’ve loaded the source of OpenLiveWriter (A non trivial 27 project open source solution).

Let’s assume you’ve been working on this project and now you need to find the ‘BrowseMiniForm’. The simplest approach is to type ‘Browse’ into the search panel. As you type, CodeRush presents and filters a list of matching symbols.

image

Note how CodeRush presents the results.

Each symbol is listed with Name, Namespace, Project Name and File Type ensuring that when multiple similarly named symbols are found, there should be no confusion as to the nature of these items. Additionally note how within each item, the placement of your search term is indicated in red. In this case the word ‘Browse’ is lit up in red to show you the grounds on which it was included.

In this case the item we were searching for, is immediately below the one highlighted.

Use the Arrow keys to navigate to the next item and hit Enter to take you to the symbol’s declaration.

Narrowing the Search

The more you type the narrower the search. If you were to continue typing and change the text to ‘BrowseMini’ your results would be further limited.

image

In this case only 2 Items are found making your chosen symbol even simpler to locate.

Camel Case Searching

If you don’t feel like typing all that text, then you can use Camel Case Searching to find the symbol you’re looking for.

BrowserMiniForm’ (The Symbol we were looking for) is a symbol made from 3 words ‘Browser’, ‘Mini’ and ‘Form’. If you type the capitalized initial characters of these words, CodeRush understands that you’re looking for symbols containing these characters in that specific order.

So if you enter ‘BMF’ into the search text, you get the same results as typing ‘BrowserMini’, but you’ve typed far less.

image

As before CodeRush uses red text to indicate the justification of each entry’s inclusion. This can help to alleviate confusion when more items are included than you were expecting.

Show me the Options

All examples used thus far have searched the entire solution, however you may also have noticed a note in the bottom left of our screen shots.

If you tap Ctrl, you can change the default search options.

If you do so, the screen will expand to show the following:

image

As you can see these options are arranges neatly into 4 groups: Scope, Types, Members and Access. All of the items within are used to influence the items that are shown (or not shown)

Within Scope, the available items are Solution, Project, Namespace and File. Your choice of one of these restricts the symbols that are visible to Quick Nav relative to your current location.

Any combination of Types, Members and Access may also be independently chosen to suit your needs.

For those who prefer to keep their hands on the keyboard, these options may all be set/toggled using the indicated shortcut keys.
(Scope:1, 2, 3, 4 Types: C, S, I, E, D Members: M, P, V, F and Access: W, O, N, T, B)

For those who are happier to use the mouse the same options will react to a simple click.

So use Ctrl+Shift+Q to launch Quick Nav and Jump to any symbol in your solution in seconds.

.. and feel free to leave us your feedback to indicate how we might improve this and other features.

Published Apr 07 2016, 08:32 PM by
Bookmark and Share

Comments

Bradley Uffner

Did we ever get a feature comparison list between Code Rush and Code Rush for Roslyn?  I'm holding off on switching until it at least reaches feature parity.

April 7, 2016 2:31 PM

Ruben Bartelink 2

That's great and all, but even better is wiring a shortcut to jump straight in with a filter, as recommended by an ex-prolific blogger:

community.devexpress.com/.../coderush-tip-quick-navigation-build-your-own-search.aspx

(I wire Search in file context to Ctrl-Alt-,)

(And not sure what the *** bit is - assume its a typo?)

April 7, 2016 10:29 PM

Neal

When do you think CRR will be completed?  What % complete are you now?

April 9, 2016 1:08 PM

Rory Becker (DevExpress)

@Bradley

True feature parity may be a way off yet but very few people need true feature parity.

With this blog post, I have started to introduce the features of CRR and to explain, to those who are not familiar with them, how they work.

I intend to continue this with many other features, and I think it is reasonable to try to produce something to indicate how many high level CRC features are implemented in CRR. However I think such a list will have to remain high level for now, since an exhaustive list would prove more than a little unwieldy.

We're always happy to receive your feedback.

Have you had a chance to look at our "What's new in CodeRush for Roslyn" -> www.devexpress.com/.../coderush-for-roslyn-whats-new.xml ?

What would you want us to work on next?

April 11, 2016 11:51 AM

Rory Becker (DevExpress)

@Ruben

Wow that guy is amazing. I'm going to go read up on him and model my posts on his ;)

In all seriousness the feature you speak of is coming in a future update. That specific was also a favourite of mine.

Although I'm finding that I need to use it less and less. Perhaps give the vanilla Quick Nav a go a let us know what you think?

April 11, 2016 11:54 AM

Rory Becker (DevExpress)

@Neal

CRR will never be complete !!! We will continue to ADD AWESOME with EVERY update long into the future. :)

Ok I realise that's not what you meant. You're wondering, like Bradley, when we'll have feature parity. I'll refer you to the answer I gave above and add that, if you want to find out where any particular feature / set of features / small tweak is in our ToDo list, we'll certainly do our best to help you out there.

April 11, 2016 1:14 PM
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