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