[squeak-dev] The new object based UI is a disaster for certain tasks

Eliot Miranda eliot.miranda at gmail.com
Thu May 27 16:42:17 UTC 2021


Hi All,

    there *must* be a simple way to avoid the object selection behaviour of
the new print it.  Here's a motivating example.

Today I wanted to examine the difference between two classes in a
particular package.

(StackInterpreterSimulator organization categories select: [:c| c
beginsWith: '*VM']) select:
[:c| (StackInterpreterSimulator organization listAtCategoryNamed: c) ~=
(CogVMSimulator organization listAtCategoryNamed: c)]
#(#'*VMMakerUI-InterpreterSimulation-Morphic' #'*VMMakerUI-user interface')

Then I wanted to see what the difference was. An initial use of
copyWithoutAll: gave me unexpected results.  So I eyeballed the two
categories:

#(#'*VMMakerUI-InterpreterSimulation-Morphic' #'*VMMakerUI-user interface')
collect:
[:c| {CogVMSimulator organization listAtCategoryNamed: c.
StackInterpreterSimulator organization listAtCategoryNamed: c}]

 #(#(#(#eventQueue #openAsMorph #openAsMorphNoTranscript #windowColorToUse)
#(#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:)))

The first thing I was frustrated in was to add some carriage returns, so I
could see.  I wanted to format the output thus:

#(#(#(#eventQueue #openAsMorph #openAsMorphNoTranscript #windowColorToUse)
#(#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:)))

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.

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.

_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210527/ce96c76b/attachment.html>


More information about the Squeak-dev mailing list