Hi Tim,

On Fri, Jun 15, 2018 at 2:21 PM, Tim Mackinnon <tim@testit.works> wrote:
The whole point about pragmas is that they're supposed to be messages, and hence senders (and if possible, implementors) work.�� But with the mangling that occurs here, a simple senders of stackDebuggingActions brings nothing, and one is left manually searching the system before one finds references to gtStackDebuggingAction.�� Obscure and hence horrible.

Hi Eliot - I���ve been caught out by that belief too - but if you select a pragma and do cmd-b, cmd-n (or menu code-search, senders of it) - it works How I think you are expecting and shows you all the senders of that pragma. I use this all of the time for remember how to implement GT-Inspector tabs , as I was always impressed with the one in Date and use it as a way to find lots of good examples.

It could be, that you tried ���implementers of��� - and that one always confuses me - partly because they aren���t a real thing (and I guess I agree with you on a distaste for them - it feels like we could have done better somehow?).
��
These aren't the issues here.�� The issue here is the classic one of name mangling, a.k.a. constructing selectors from fragments, so that the reference (the elements of the arrays in codeDebuggingPragmas and stackDebuggingActionPragmas, which are ��#codeDebuggingAction #stackDebuggingAction) don't match the pragmas in the methods, which are��<gtCodeDebuggingAction> &��<gtStackDebuggingAction>.�� Why the mismatch?�� I would expect the references to use #gtCodeDebuggingAction & #gtStackDebuggingAction, and finding the implementations would be trivial.�� Instead one has to hunt.�� This is bad.


Tim


On 15 Jun 2018, at 00:23, Eliot Miranda <eliot.miranda@gmail.com> wrote:

Hi Henrik,

On Thu, Jun 14, 2018 at 12:47 PM, Henrik-Nergaard <draagren@outlook.com> wrote:
Hi,

Moving the icons down to the middle row is as simple as changing:

***
codeActionsPragmas
�� ^ #( stackDebuggingActions codeDebuggingActions )
***
***
stackDebuggingActionsPragmas
�� ^ #()
***

in GTGenericStackDebugger.

Best regards,
Henrik

Thanks.�� I have to say that the renaming from #stackDebuggingActions to gtStackDebuggingAction, as in

StepIntoDebugAction class>>gtStackDebuggingActionFor: aDebugger
<gtStackDebuggingAction>��

is a cruel joke.�� The whole point about pragmas is that they're supposed to be messages, and hence senders (and if possible, implementors) work.�� But with the mangling that occurs here, a simple senders of stackDebuggingActions brings nothing, and one is left manually searching the system before one finds references to gtStackDebuggingAction.�� Obscure and hence horrible.

_,,,^..^,,,_
best,��Eliot "I designed pragmas to be useful and natural, not painful and obscure" Miranda




--
_,,,^..^,,,_
best,��Eliot