<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi All,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">    there *must* be a simple way to avoid the object selection behaviour of the new print it.  Here's a motivating example.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Today I wanted to examine the difference between two classes in a particular package.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default"><div class="gmail_default" style="font-size:small"><font face="times new roman, serif">(StackInterpreterSimulator organization categories select: [:c| c beginsWith: '*VM']) select:</font></div><div class="gmail_default" style="font-size:small"><font face="times new roman, serif"><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>[:c| (StackInterpreterSimulator organization listAtCategoryNamed: c) ~= (CogVMSimulator organization listAtCategoryNamed: c)] #(#'*VMMakerUI-InterpreterSimulation-Morphic' #'*VMMakerUI-user interface')</font></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Then I wanted to see what the difference was. An initial use of copyWithoutAll: gave me unexpected results.  So I eyeballed the two categories:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default"><font face="times new roman, serif"><span style="color:rgb(0,0,0)">#(#'*VMMakerUI-InterpreterSimulation-Morphic' #'*VMMakerUI-user interface') </span>collect:</font></div><div class="gmail_default"><font face="times new roman, serif"><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>[:c| {CogVMSimulator organization listAtCategoryNamed: c. StackInterpreterSimulator organization listAtCategoryNamed: c}]</font></div><div class="gmail_default"><font face="times new roman, serif"><br></font></div><div class="gmail_default"><font face="times new roman, serif"> #(#(#(#eventQueue #openAsMorph #openAsMorphNoTranscript #windowColorToUse) </font></div><div class="gmail_default"><font face="times new roman, serif">#(#eventQueue #openAsMorph #openAsMorphNoTranscript #openAsSimulatorMorph #windowColorToUse)) #(#(#evaluatePrinter:on: #headFramePointer #headStackPointer #printFrame:WithSP:on: #toggleTranscript #utilitiesMenu:) #(#evaluatePrinter:on: #headFramePointer #headStackPointer #printFrame:WithSP:on: #setClickStepBreakBlock #toggleTranscript #toggleTranscriptForSimulatorMorph: #utilitiesMenu:))) </font></div></div><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="border-collapse:separate"><div style="font-size:small"><br></div><div style="font-size:small"><span class="gmail_default" style="font-size:small">The first thing I was frustrated in was to add some carriage returns, so I could see.  I wanted to format the output thus:</span></div><div style="font-size:small"><span class="gmail_default" style="font-size:small"><br></span></div><div><span class="gmail_default"><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><font face="times new roman, serif">#(#(#(#eventQueue #openAsMorph #openAsMorphNoTranscript #windowColorToUse)</font></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-family:"times new roman",serif">#(#eventQueue #openAsMorph #openAsMorphNoTranscript #openAsSimulatorMorph #windowColorToUse))</span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-family:"times new roman",serif">#(#(#evaluatePrinter:on: #headFramePointer #headStackPointer #printFrame:WithSP:on: #toggleTranscript #utilitiesMenu:)</span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-family:"times new roman",serif">#(#evaluatePrinter:on: #headFramePointer #headStackPointer #printFrame:WithSP:on: #setClickStepBreakBlock #toggleTranscript #toggleTranscriptForSimulatorMorph: #utilitiesMenu:))) </span><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-family:"times new roman",serif"><br></span></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="arial, sans-serif">Of course the only way I can do this is by cursor movement.  Any attempt to click with the mouse inspects the underlying object.  Annoying but not disastrous.  I can use the cursor keys.  So I am able with minor frustration to find that StackInterpreterSimulator implements openAsSimulatorMorph whereas CogVMSimulator does not.  Now the disastem.  i simply want to look at the implementation of openAsSimulatorMorph.  So I want to select it and type command-M for implementors.  But with the new interface I have to do cursor selection with shift, and it's getting ridiculously slow just to find the implementors of a selector.</font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="arial, sans-serif">Surely the best way would be to allow normal textual interaction but use a modifier key to inspect the underlying object.  I have to completely relearn my muscle memory and abandon my mouse to use this stuff.  And that is a disaster for me.</font></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-family:-webkit-standard;font-size:medium"><br></span></div></span></div><div style="font-size:small"><span class="gmail_default" style="font-size:small"></span>_,,,^..^,,,_<br></div><div style="font-size:small">best, Eliot</div></span></div></div></div></div></div></div></div></div>