Author |
Topic |
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Mar 15 2022 : 08:20:13 AM
|
Came across something that I thought existed, but couldn't find.
You know those hierarchy lines and the associated tooltips from VS. Now if there would be a way to go directly to the location that connects the line, this would be fantastic for really large code areas. Something like Ctrl+Click on the line, kind like the goto definition, but on the indented lines. Like in the image above, it should take me directly to the "if(Sim..." that is like 2500 lines (dont ask) above the current location. |
|
feline
Whole Tomato Software
United Kingdom
19021 Posts |
Posted - Mar 18 2022 : 09:34:47 AM
|
It's not quite the same, but this is actually what VA's Next and Previous scope is designed to help with. Great for moving in big steps through a method, and for moving up and down a file one method at a time:
https://docs.wholetomato.com/default.asp?W198 |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Mar 18 2022 : 09:56:56 AM
|
Yes, definitely not the same, and not helpful in cases where there is a lot of code in-between. At least I lose the context where to stop moving through the scopes, kinda like "did i pass it? Am I there yet?".
|
|
|
feline
Whole Tomato Software
United Kingdom
19021 Posts |
Posted - Mar 18 2022 : 1:10:23 PM
|
We have a feature request for a function level view of VA Outline, which might help here:
case=57709
it's not an idea that comes up very often though. How large, just roughly, are some of these functions? Is 3,000 lines a good upper limit, or are we thinking even bigger? The feature was talking about 200+ line functions, so actually it might not scale well.
Have you tried CTRL-M, CTRL-M to toggle IDE outlining? Triggering this inside a small function, it is helping me to navigate the function in chunks.
Since the vertical indent lines aren't coming from VA, we don't actually know about them (I believe), so that's the first challenge here. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Mar 18 2022 : 1:25:44 PM
|
Not using the VA Outline actually, and not sure if that would solve the issue though. My current project I am working on is real legacy, where someone didnt understand the difference between #region and methods, so there are methods with 3000+ lines in 20k+ lines files. Toggling outlining is more of a pain than helpful, because it doesnt restore previous state, so any collapsed regions will be messed with too. Actually I think VA knows somewhere about the indentation level as it does color the tooltips on them, so there must be some place the info comes from when hovering over them. Anyway, its just an idea that I thought might be quick and easy to implement. |
|
|
feline
Whole Tomato Software
United Kingdom
19021 Posts |
Posted - Mar 21 2022 : 08:15:30 AM
|
We do have the setting:
VA Options -> Display -> Show Quick Info tooltips for more symbols * Show tooltips for braces and structural keywords
which will show you the scope information when hovering the mouse over a close bracket. Would letting VA offer a goto top of scope from here work well enough? It gives us a well defined anchor point for triggering the command, and the information is already in hand, since it is shown in the tooltip.
The obvious limitation of this is first having to move to a close bracket where scope information is displayed. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Mar 21 2022 : 09:46:15 AM
|
For my intended purpose this would not be the right approach. When I do an Alt+Click (configured as goto symbol, ctrl+click is too practic for selecting a whole word ) on one of the scope lines, VS gives me the error message it cant go to the selected symbol, so there is some handling going on at this point. |
|
|
feline
Whole Tomato Software
United Kingdom
19021 Posts |
Posted - Mar 22 2022 : 06:29:29 AM
|
I can produce an error message if Alt + Left mouse click is set to Goto Related, instead of Goto. This shows the pattern I am seeing:
namespace WHITESPACE_GOTO_RELATED
{
class PlacesToGo
{
void memberOne();
};
// use Goto Related on the blank line above - error
void PlacesToGo::memberOne()
{
short nCounter;
// use Goto Related on the blank line above - offers class members
nCounter++;
}
} are you seeing the same pattern, or a different pattern?
Unless you have a lot of nested namespaces, you should only have an interesting number of indent indicator lines when you are actually inside a function, so I would expect Goto Related to do something. Unless you are inside free / non class member functions. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Mar 22 2022 : 06:46:59 AM
|
Thats exactly what I see with your example too. What I just realizes, when using "Goto" instead of "Goto related" I get a message from VS and not VA, seems that VA internally forwards the request to VS? Or it tries to resolve it and then forwards it? However, some location awareness seems to be going on here.
Here is an real live example of production code (no that it makes any sense though):
Just to visualize the pain I am trying to overcome with VA. |
|
|
feline
Whole Tomato Software
United Kingdom
19021 Posts |
Posted - Mar 22 2022 : 08:22:07 AM
|
This is just painful, and makes a lot of sense when dealing with larger blocks of code, which are always a fact of life, so I have put in a feature request to see what our developers make of it:
case=147968 |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Apr 19 2022 : 09:43:42 AM
|
I just found a solution to my specific problem and it looks pretty much like what I imagined and even has a few more useful features, like context information, context emphasis, selection, collapsing, etc:
And its a free VS extension. PM me for name so I dont make advertising here. |
|
|
|
Topic |
|