One strategy I have adopted for managing macro invocation is to use a "linear menu" via letter_prompt:
The menu is triggered by a hot key, say alt-q, then letter_prompt gives a prompt like:
Goto_, Copy_, Add_, Interests, conTrols, Published, Notification, Hookevents, control Events, pUblish, intereSt, Receive, senDer, nOtification refresh, remoVe unused sections
Where the uppercase letter is the letter to press and the trailing underscore indicates a submenu
So if I press alt-q g
The prompt will look like
_.g:Goto... Internal_, Public_, pRotected_, priVate_, Constructor
The setup looks like:
top_menu('Goto_, Copy_, Add_, Interests, conTrols, Published, Notification, Hookevents, control Events, pUblish, intereSt, Receive, senDer, nOtification refresh, remoVe unused sections');
sub_menu('_', 'g', 'Internal_, Public_, pRotected_, priVate_, Constructor');
men_item('_g','i', 'm', s1, 'goto_internal_members');
men_item('_gi','s', 'm', s1, 'goto_internal_static_members');
men_item('_gi','c', 'm', s1, 'goto_internal_const_members');
men_item('_gis','c', 'm', s1, 'goto_internal_static_const_members');
etc
Why is this better than a reqular menu? Its more stable (sticky) and precise (one key,one action). Plus it is easier to modify (no menu gui), and if you are hooking alt-keys the normal menu isn't easy to trigger.
I have code for it if interested.