the end of smartInspect
Scott Wallace
Scott.Wallace at disney.com
Fri Jan 14 23:04:15 UTC 2000
I'm happy to announce the death of the much-criticized "smartInspect" feature.
The motivation behind "smartInspect" is illustrated by the following scenario:
You're in an inspector, and in its inspect-list you've selected an
item whose value is a one-element array. You want to get your hands
on that lone element.
Classic Smalltalk inspector logic requires that you go through the
intermediate step of getting an inspector for the array object, and
only from that intermediate inspector can you then get the inspector
on the value you're really interested in. Thus, you double the
number of windows involved and the number of menu "inspect" requests.
The "smartInspect" logic collapsed those steps, so that when, in an
inspector, you asked to inspect a one-element collection, you went
straight to an inspector on that single element, skipping the
intermediate step.
However, as Bert Freudenberg and Bob Arning and others have pointed
out more than once, the naive logic of #smartInspect could get in the
way -- and sometimes could be downright wrong -- when the collection
being looked at is, for example, a String consisting of one
character, or a Semaphore.
And others will argue, with undeniable merit and virtue, that they'd
prefer to have absolute consistency rather than put up with anything
that tries to streamline their workflow by being "smart".
So I now offer -- in two updates to 2.8a which should find their way
into the external update stream soon enough (#1786 "listDblClick" and
#1788 "inspectElement") -- the following remedies for this situation:
(1) The "inspect" menu item in an inspector will now always trigger
a plain inspect, never a "smartInspect". The #smartInspect selector
is everywhere removed.
(2) When the selection in an inspect-list is a suitable kind of
Collection, a new item, "inspect element...", will now appear in the
inspect-list menu, which allows you to inspect any chosen element of
the collection without needing first to open an intermediate
inspector on the collection object itself. The interaction here
strives to be accommodating:
[a] If the selection has only one element, that lone element is inspected.
[b] If the selection has a small number of elements, a simple pop-up of the
potential indices is presented, inviting you to choose
which element to inspect.
[c] If the selection has many elements, you are prompted for the
index of the element you wish to inspect, which you must type in.
(3) A quick double-click on an item in an inspect-list will now
launch an inspector on that item. This is a feature long requested
by Chris Norton and others, and was one of the more beloved features
of old Digitalk Smalltalk/V. The implementation here is based on
code sent around by Bob Arning a couple of months ago. This new
feature reduces the pain involved in opening longer chains of
inspectors, because you won't need to fish for "inspect" items in
menus.
The first two changes apply equally to morphic and to mvc, but the
double-click-to-inspect feature is strictly morphic.
-- Scott
At 1:53 PM +0100 1/14/00, Bert Freudenberg wrote:
>On Fri, 14 Jan 2000, Stephane Ducasse wrote:
>
> > when I inspected #(-) the element is a Character !!!!!!!
> > I checked #(a) is not an array with the symbol #a but the character a
>
>It's not. Sadly enough, but you're not the first one biten by
>smartInspect.
>...
>Yes, we definetly need to get rid of smartInspect - we need to be able to
>trust inspectors.
>
>HTH,
>
> -Bert-
More information about the Squeak-dev
mailing list
|