[squeak-dev] deselection broken in method list

Chris Muller asqueaker at gmail.com
Sat Jul 26 19:53:52 UTC 2014

> > > Hi All,
>>> > >
>>> > >     I depend heavily on fileOutAll in method list browsers.  For
>>> example, I'm trying to create versions of the VM's boolean cheat code for
>>> the Sista bytecode set and do this by filing out the code for the Newspeak
>>> set and editing it.  I tried to do this using "self systemNavigation
>>> browseAllSelect: [:m| ('*ooleanCheat*V*' match: m selector) or: [m
>>> sendsSelector: #booleanCheatV4:]]" to get a method list browser.  Then I
>>> was expecting to be able to use file out with nothing in the list selected.
>>>  This files out all methods in the list but...
>>> > >
>>> > > Deselection is broken!  I can't deselect the first item and hence
>>> can only file out a single definition .  Will whoever changed this please
>>> restore it asap? (in trunk)
>>> > >
>>> > >
>>> > > Hi again, hey, I just realized!  There is a way to deselect in the
>>> MessageTrace.  It's called "Invert Level Selection" and its on the "more"
>>> menu (Shift+yellow click).
>>> > >
>>> > > Hot key for it is Command+Shift+I (capital "eye").
>>> > >
>>> >
>>> > Wasn't that ?DoIt and invoke the inspector? ?
>> No, that's only from a code pane.  We're talking about from the upper
>> pane of a MessageTrace or MessageSet.
>> But now I see I misspoke -- because I had been experimenting with Eliots
>> question from a MessageTrace with only one message it it.
>> This is something I've wnated fixed for a long time, I'll see if I can
>> spend a little time wiht it today and solve it.
>> BTW, why is it intuitive at all that NO SELECTION means ALL SELECTION for
>> filing out?  Talk about unintuitive -- THAT sounds like it would be a bug
>> in itself but, whatever..
> Nonsense ;-)  A selection in a list means one thing in the list.  What
> else can nothing in the list be interpreted as?

That's a logical choice for the browser that only supports 0-or-1
selection.  But the MessageTrace browser only currently supports 1-to-many
selection, so to file them all out you would simply select them all.

In the latter case, What-Is-Selected = What-Is-Filed-Out, which is
intuitive and consistent.  In the former case, the user has to make the
translation that "Zero-Selection = All-Filed-Out" which puts the UI's
behavior briefly into their cognitive view (a higher level than the
intuitive level).  That's all I meant.

>  It is either nothing selected or "the list".  Of course it's intuitive.
> If one says "file out" to a list of items it is natural for that command to
> apply to the whole list.  You're not seeing the trees for the forest.

>>> To focus on Eliot's original question: The deselection mechanism works
>>> in Squeak4.5-13352.image. It does not work in trunk now.
>> No, nothing has changed other than the traceMessages preference being
>> set, which is way more important than occasionally filing out methods of a
>> list.
> It's not about what is more important.  It is about /not breaking things/.

Eliot, I'm sorry to repeat myself but, _nothing has changed_.  Nothing is
broken that wasn't "broken" before.

MessageSet is a 0-or-1 selection, period.  MessageTrace selection is
1-to-many and has been for many years.  You could very easily select them
all and then file them out (and, I'm sorry I didn't mention that before!).
 In spite of that easy work-around, I offered in my last note to spend time
looking into it MessageTrace supporting 0-to-many selection.

And your value judgement that trace messages is way more important is just
> that, a value judgement.
 Trace messages drives me mad.  There is no back button.  If there was a
> back button then it could be helpful, but without a back button it is
> hugely irritating much of the time.  i.e. "I want a list of senders of foo;
> ok, got the list, now do a whole lot of reading based around that. Oh s**t,
> I juts drilled down and now my original list is nested and I've lost my
> context, and... there's no back button".

No browser in Squeak has a "back button."  Squeak's UI has always been that
you can navigate FROM anywhere, TO anywhere, instantly, which is multifold
more productive than breadcrumbs and modal browsing.  For the case above,
your "back button" would be simply Command+d, or the up-arrow.  Did you
even try that?

Makes me wonder if you've given MessageTrace a fair-shake..  :(

Chris, you can't just change the tools to suit your whim because you're
> release manager.

4.5 had a very deliberately selected collection of
productivity-improvements to the IDE by addressing long-standing issues
that have plagued Smalltalk IDE's since the 1980's, like
window-proliferation.  It's clear you prefer modal browsing, and possibly
why you think they were "whimsical" changes.  They were not.

The tools need to improve without breaking old workflows.

I hope you now agree, no workflow was "broken".  You were just so
accustomed to "Zero Selection = All Selection" that it didn't occur to us
that "All selection = All selection".  :)

Dude, I'd like to work on the upgrades you suggested for the mc history.
 Since it's clear you don't like MessageTrace anyway, you now have TWO
workarounds, and since I assume you'll just change your preference setting,
I'm gonna go back to working on those mc history improvements rather than
fiddle with MessageTrace to make it 0-to-many...  Okay?

>  Deselecting with the Control key is broken in 4.5 and for a long time
>> before that.  As I said, we should focus on letting that "isControlled"
>> input var to MessageTrace>>#toggleSelectionAt:shifted:controlled: be
>> able to come in as a "true" and then everything should just work...
>> I'll see if there's an easy fix.
> --
> best,
> Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140726/aa866558/attachment.htm

More information about the Squeak-dev mailing list