Whisker Browser v0.91 Released

Doug Way dway at riskmetrics.com
Thu Dec 21 01:00:46 UTC 2000


I'm forwarding this first announcement from my Whisker Announcements List to the Squeak list, in case anyone is interested in checking out the new version (0.91), or wants to sign up for the announcements list if they're not already.

See below for more information on the Whisker browser, a stacking code browser for Squeak.

If you want to sign up for the announcements list, just send me an email.  The announcements list is a simple one-way email list on which I announce new releases of Whisker, generally once a month at most.  (I won't be posting the announcements to the Squeak list as often.)

- Doug Way
  dway at riskmetrics.com, dway at mat.net


-------- Original Message --------
Subject: Whisker v0.91 Released
Date: Sat, 9 Dec 2000 22:06:37 -0500 (EST)
From: Doug Way <dway at mat.net>
To: Whisker Announcements List <dway at mat.net>


The new version (0.91) of the Whisker Browser for Squeak 2.8 is now
available for download!

This version contains a number of enhancements and bug fixes since the
previous release (0.9), which was the version demoed at the
OOPSLA Squeak session in October.

To download v0.91 directly, go to:

http://www.mindspring.com/~dway/smalltalk/Whisker.0.91-Sq2.8.cs.gz

For more information on the Whisker Browser, see:

http://www.mindspring.com/~dway/smalltalk/whisker.html


Here's the summary list of enhancements and bug fixes added in 0.91, with
further details below:

Enhancements:

1. Integrated method versions browsing
2. "browse full" menu item in other browsers/inspectors/debuggers will
    open the method in Whisker (a preference, on by default)
3. Close boxes added to class and method panes
4. Class categories now support an arbitrary number of dashes ("-"),
    including zero dashes
5. The class hierarchy pane can optionally be switched to show non-Object
    classes, such as ProtoObject, PseudoContext, etc.
6. Class-side information displayed with a dimmer background color in both
    class and method panes (a preference, on by default)
7. Most recently selected method pane can be highlighted (a preference,
    off by default)

Bug fixes:

- Whisker window now takes Display size into account when first opening,
    won't open larger than Display
- Flop-out scrollbars are no longer sometimes obscured
- Class categories with no dashes are no longer broken, due to the
    categories enhancement above
- Hierarchy widget arrows/triangles now blend in with the background
    color properly
- Class pane titles no longer extend outside the title bar
- Class panes will always be resizeable on the right side (because of
    above bug fix)
- Selecting a class in the class hierachy no longer expands its children
- Fixed instance variable ordering
- Cleaned up "no menu yet"s from and added "preferences" to all item menus
- Include scrollbar positioning fix for this 2.8 version (already
    submitted for 2.9alpha base image)
- Pretty printing now works

Other Miscellaneous Changes:

- Left-click on an unselectable list item brings up the item's pop-up menu
- Class pane ordering now matches ordering of selections in the class
    hierarchy
- Method categories always alphabetized (won't bother with a preference
    unless there is demand for one)


Further comments on the enhancements:

1. Integrated Versions Browsing - This feature was probably non-essential
at this relatively early stage in Whisker's development, but
some comments at OOPSLA inspired me to give it a try, and I think it fits
in really well with the Whisker layout.  If a method has more
than one version (i.e. you or someone else has saved it more than once),
an expander toggle button triangle will appear next to the method
name in the class pane.  (The existence of the toggle button can be a
handy visual cue to show you which methods you're currently
working on, or ones that have changed recently for whatever reason.)

Expanding the toggle button will list the method versions below as
initials/timestamps.  You can select a version and it will appear in a
pane in the method stack, with a non-bold selector heading indicating that
it is a version, not necessarily the current one (like the existing
VersionsBrowser).  If you have "diffing" turned on (which it is by
default), selecting a single version shows the differences between it and
the previous version.  The cool part is that if you select any two
versions, the diffs will be shown between those versions.  For example,
you could select the 2nd, 4th and 7th version of method, and it will show
the diffs between 2 and 4, the diffs between 4 and 7, and then version 7,
all in the method pane stack at the same time.  Diffing can be turned off
with the "toggle diffing" pop-up menu item.  (Do a menu-click on a method
version list item in the class pane.)  Also, to set it globally, the
diffsInChangeList global preference is followed.

2. "Browse full" Opens Methods in Whisker - By default, the "browse
full" menu items in various other browsers/inspectors/debuggers
will now open a method/class in Whisker instead of a System Browser.  (The
browseFullOpensWhisker preference lets you turn this off
if desired.)  Someone else suggested this enhancement, but I was surprised
at how useful it was once I implemented it.

3. Close Boxes for Panes - Pretty self-explanatory.  They're not as useful
with method panes, since they only appear on the top titlebar,
unless you turn on the showWhiskerMethodTitles preference which turns on
titlebars for all method panes.  Still, I prefer just having the
single titlebar above the method panes for a particular class... it
visually groups them together better (and wastes less space).  (Also, I
have a plan for having close boxes on every method pane without the need
for inserting titlebars, which will be addressed in the future.)

4. Class Categories of Arbitrary Depth - Previously, this was a hack which
was hard-coded to expect a single dash in a category name.
Now it supports no dashes (one "section"), or even two or more
dashes.  This should fix a number of bugs people were seeing.

5. Show Non-Object Classes in Hierarchy - This lets you see the
non-subclasses of Object such as ProtoObject, PseudoContext, etc.  It
can be turned on with the pop-up menu in the class hierarchy pane, or by
doing a "find class" on something like ProtoObject.  It's turned
off by default since 98% of the time you don't need to look at those few
classes, and they add another indent level to the hierarchy which
can make it harder to see things if you have a small display.

6. Class-Side Information in Dimmer Color - This generally looks better if
you set the Squeak display depth to 16 or 32 bits, although I
tweaked the colors so they at least look reasonable in 8-bit depth
mode.  This is a preference called classSideShadow which can be turned
off.

7. Recently Selected Method Can Be Highlighted - If the preference
highlightLatestMethod is turned on, this will display the most
recently selected method in a brighter color, which can be handy if you
have a large stack of methods.  However, it mildly conflicts with
#6 above, so I have it turned off by default.



That's about it for the new enhancements in 0.91.  For the next release,
0.92 (probably due in a couple of months), here is roughly what
I have planned:

- Fill out basic popup menu functions, such as adding/removing methods,
    adding/removing categories, etc.
- Add support for viewing methods without categories (like "-- all --").
    (menu toggle and preference)
- Warning when deselecting an edited method
- Add titlebars to class categories/class hierarchy panes
- Add class menu to class pane titlebar, and category/hierarchy menu
    to category/hierachy titlebar
- the usual bug fixes and small enhancements


Also, I will try to release a small changeset sometime sooner to upgrade
Whisker 0.91 to work with the latest Squeak 2.9alpha, hopefully
within a few weeks.  (There have been a bunch of Morphic changes in
2.9alpha.  Although I have a partly working upgrade changeset
right now... shouldn't be too hard to finish.)

I might as well also mention a few things which I hope to address further
in the future, sometime after the next (0.92) release.  These
could potentially constitute a 1.0 release:

- "Partial hierarchies" which won't display "uncles" etc. by default
- Inspect/explore objects in integrated panes
- Minimize/maximize buttons for class and method panes
- Close/minimize/maximize buttons on method pane "tabs", not titlebars
- Refactoring Browser engine support


Apologies for the length of this email, it's probably due to this being
the first semi-officially announced release.   I plan on posting this
message to the Squeak list soon, but in general I won't be posting these
release announcements to the Squeak list as often as to this
Whisker Announcements List.  Comments/feedback are welcome.  This
announcements list is just a one-way list, though, so if you want
to start up some discussion with a larger group, you may want to respond
to the Squeak list posting.

Anyway, enjoy.

- Doug Way
  dway at mat.net





More information about the Squeak-dev mailing list