|T O P I C R E V I E W
||Posted - Apr 23 2020 : 12:50:23 PM
Not sure if there is another way to get there just as quick, but I wish I could do the following:
Click on a type name (maybe with Shift+Ctrl+Click) which opens a list with all members of the type under the mouse (ordered/grouped) by type and a click on any will go to its definition.
Kind of like "VA Goto member" works but more specific and direct.
|8 L A T E S T R E P L I E S (Newest First)
||Posted - May 08 2020 : 09:46:41 AM
This was going round in the back of my mind, so I have had a look at this, and produced the following autohotkey script:
; This is how long the middle mouse button must be held to send keyboard shortcut to IDE
UMDelay = 20
; count how long middle mouse button has been held down for
HowLong = 0
GetKeyState, MButton, MButton, P
IfEqual, MButton, U, Break
; quit if not held down long enough
IfLess, HowLong, %UMDelay%, Return
; long enough, so check the active window belongs to the process "devenv.exe"
IfWinActive, ahk_exe devenv.exe
; ^ = Control
; + = Shift
; ! = Alt
; so sending Ctrl+Shift+Alt+g
; will only have an effect if this is mapped inside the IDE its self
||Posted - Apr 24 2020 : 10:03:03 AM
Do you have a "spare" mouse button you want to map this to?
I have been using AutoHotKey https://www.autohotkey.com/
to manage my global keyboard shortcuts, and it does have the ability to respond to keyboard / mouse actions on an application by application basis, so in theory, if you wanted to map a middle click in the IDE to the keyboard shortcut for Goto Member this should be fairly simple. This looks like a good start point if you are interested in this:
||Posted - Apr 24 2020 : 08:52:43 AM
Now if I could bind that to the mouse instead of keyboard, its almost perfect.
||Posted - Apr 24 2020 : 07:18:05 AM
For direct keyboard access, you can go into the IDE keyboard settings, and map a keyboard shortcut to the command:
which will then open the Alt-Shift-G menu's goto member dialog directly, for the symbol the caret is currently sitting in. When the dialog appears keyboard focus is in the filter field, so you can simply start typing directly, filtering the list. This sounds like it is going to do what you are looking for here.
||Posted - Apr 24 2020 : 04:54:11 AM
Alt+G, Alt+M is closest to what I meant. Not using the VA outline much and in this case would not help anyway since it shows the members of the current class not the one where I wanna go to. The Find Symbol on the other hand has the symbol selected when it opens, so typing . will overwrite it and I have to deselect first, then type . Besides, I dont want to "search" for a name, I want to see the members (most likely because I dont remember all the members in the first place)
When I know the name or parts of it, lately I like a lot the Ctrl+G of VS2019, as it allows you to jump just to anything, symbol, filename, line numbers, external files, etc.
No, what I mean is more like the completion list that pops up when you type . after a symbol, but initiated by clicking on a typename. Selecting an item does not insert it but jump to its definition.
||Posted - Apr 23 2020 : 8:25:53 PM
Also, to make it quicker, you can select the typename via ctrl+w (or whatever you have for select word), so when you open Find Symbol dialog, the dialog will already pick up the name (providing you have "Initialize Search with Editor Selection" enabled).
I also use this. If you type dot after the typename, you easily get access to all the members.
||Posted - Apr 23 2020 : 8:22:15 PM
Also, a more direct access of member is via VA Outline. Just hower over the type to see it's members and it's easy to jump to them as well.
I usually use Goto Member when I want to find something, in a class and its parents, but not sure of the name. When I know what I want, I just press alt+g, alt+m and filter the list to go to the member.
Also a good way can be to use Find Symbol dialog. Especially via typing something like classname.member but you don't need to type the full member name.
||Posted - Apr 23 2020 : 8:16:14 PM
What do you mean by more specific and direct?
By direct you mean a keyboard shortcut. But what do you mean by more specific?