Hi, >> That's why I use Squeak's MessageTrace, it handles this better than >> anything else in any Smalltalk. It is a "lightweight" way, in terms >> of gestures and UI elements, to trace through code without getting >> lost. I wish Pharo would consider implementing a tool like this. > > Can you explain it? This is the screenshot? > The top line the sender for ensureSecondaryLinkConfigured > then see its senders? > Its self sends? > Because I want (and I was thinking about that too for long time) something > like that.
Yes that is a screenshot. MessageTrace is just a subclass of the classic MessageSet which, when the user highlights a chunk of code in the bottom pane and presses i(m)plementors, rather than opening a new window or pane, the implementors are listed in the top-half of the same browser, indented below the currently selected message. Likewise, when the user selects (s)enders on a message in the upper pane, it outdents those senders above the selected message. Multiple paths of flow can be built. Since it does not do type-inference, heavily overloaded selectors will cause many extra senders/implementors to be put into the browser -- so to handle this the UI merely allows the user to easily trim unwanted messages with a couple of simple gestures (swipe select + Command-d). The result is a single window that encapsulates the method flow of a single piece of functionality (e.g., a "Trace") that the user can comprehend because of the way it is presented. Try it out in Squeak is the best way to appreciate it. The code for it is not complicated I'm sure it could be adapted into Pharo..
