Go to Symbol default behavior.

Go to Symbol was one of the most powerful features of VAX, so I was pleased to see the same feature in ReSharper C++.

Unfortunately it doesn't work quite the same way, and doesn't allow for maximum navigation efficiency while developing (which is the whole purpose of the feature)

By default in ReSharper the keyboard shortcut takes you to a symbol's declaration. I would like it to take me to its implementation. I read this article: https://resharper-support.jetbrains.com/hc/en-us/articles/207242495-How-can-I-change-ReSharper-navigation-behavior-e-g-navigate-to-source-code-or-object-browser- , which states that navigation options can be changed at ReSharper | Options | Tools | External Sources. There is no External Sources option under Tools using latest version of ReSharper C++, so am I stuck with this default behavior?

- You should be able press TAB to select the currently highlighted symbol from the symbol list, just the same as Intellisense's auto-complete. Only the return key works at the moment, which feels unnatural to me and my colleagues. This sounds like a trivial thing but it really makes a difference when you are jumping between symbols/files regularly. Again, am I stuck using the return key for now?

Appreciate any answers. I am really enjoying ReSharper for the most part, but I feel VAX takes the cake for navigation at the moment, something I value highly, so I am hoping this can be addressed.

Cheers,

Jake

 

3 comments

Hello!

"Go To Symbol" shows both the definition and all declarations of a function:

We don't have a fast way to exclude declarations from "Go To" if a function definition is present. We can however change the sorting order so that definition symbols come up before declaration symbols. Would that be better?

When you say "Tab" can be used to select the current symbol from the list in VAX, do you mean the "Find Symbol" dialog (https://www.wholetomato.com/features/feature-navigation#symbol)? In R++'s "Go To" window Tab follow the usual Windows behavior - it's used to focus the next UI element, e.g. "Include library types" in the screenshot above. We believe it would be surprising for most of our users if we changed the expected Tab behavior.

Thanks a lot for the feedback, and please let us know if experience any other annoyances!

0

Hi Igor,

Yes that is the feature, although it is a lot more powerful than the link suggests.

If I had one hundred different classes all with a function of the same name. ClassA::BuildMessage, ClassB::BuildMessage, and so on, I could press Ctrl+Alt+S in VAX, type something along the lines of "buildm B", press Tab, and I'd be navigated to the implementation of ClassB::BuildMessage. Perfect.

I don't think users would find tab completion surprising - in fact it's something most programmers that I know do instinctively, so I would actually argue the opposite. Visual Studio doesn't follow the usual Window's behavior when auto-completing, so why would anybody expect ReSharper to?

Also showing declarations and definitions in a symbol browser is just adding unnecessary clutter. The current symbol browser in ReSharper is nothing short of useless when working on a large code base. Once a function signature is defined, it's not often you'd need to go back to it, and on the odd occasion that it does need to be modified, you can just navigate to the implementation and Ctrl+Click.

It's a shame because ReSharper's "Find Usages" feature is far superior to VAX's. I'd like to switch permanently but I'd be dropping one superior feature for another.

 

 

 

 

 

 

0

We'll see if we can change this behavior in 2019.2. One alternative would be to exclude all symbols with qualified names from "Go To", and instead try to find a definition after one of the items is chosen. This will result in slower navigation after "Enter" is pressed, but should work more or less as you would like.

0

Please sign in to leave a comment.