I'm the one that wrought the "Reuse Windows", and "traceMessages" preferences. They are part of a triad of preferences (the third is "alternativeBrowseIt") that, when set, support a totally non-modal approach to browsing and development. Rather than navigating around 4 or 5 big PackagePane browsers, the idea is to "follow behavior" by spawning new HierarchyBrowsers straight out of highlighted chunks of code. Rather than selecting classes and methods in lists so much, windows are constantly opened and closed.
Notice when "alternativeBrowseIt" is selected, you can simply double-click the argument of a method, such as:
add: anException "<---- double click to highlight 'anException'"
and press Command+B to browse the Exception class hierarchy. If there is already a class browser on Exception which does not have unsaved edits, it is brought to the top rather than opening yet-another one ("Reuse Windows"). Note Reuse Windows works for most kinds of windows including Monticello windows.
To "go back" simply position the cursor on the "prior" window (underneath) or on the desktop and press Command+w to successively close the top-most windows. I actually stopped using OCompletion because this approach was actually more productive for me.
traceMessages is along the same lines, I can hardly even work in Smalltalk without this.
Herbert wrote:
to get this behaviour the Preference "trace messages" needs to be enabled. checking... Right now this only works for implementors,
It works for both. You can press Command+S in the message-list for senders to be outdented above. For implementors, just highlight the message in the code at the bottom and press Command+M. You can even select it "grossly" and there can even be intervening code in the middle of a keyword message and it will still work!
Warning: Once accustomed to the productivity of non-modal development, it's very hard to go back! :)
On Thu, Feb 28, 2013 at 1:15 PM, David Corking lists@dcorking.com wrote:
Frank Shearar wrote:
What does "reusable" mean here? If you mean that navigating to something doesn't spawn a whole new window, then we _sometimes_ have reusable browsers. For instance, in a Browser, selecting a class name and pressing <alt>-<shift>-b will, within the same Browser, jump to the new class.
Yes - I mean "don't spawn a new window". I wasn't aware of that hotkey.
Other nice features of the message list in Moshi are forward and back buttons, a browseable history, and a 'reusable' toggle button, to make it spawn a new message list without learning a hot key. (It is the forward and back buttons I recognise from Newspeak and Amber.)
Thanks Herbert and Frank for explaining how to uncover the features for class and message implementor.
I set the preference and still get a new message list for each implementor I select (trunk 4.5 #12400) when I click the implementors button - but the list _is_ reused on cmd-m. A win for the keyboard. Thanks again.
Have fun! David