View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

Small Enhancements

(this list was proposed by Doug Way on the Squeak list)

Display Class Comment in Definition Pane

Display a class' comment below the class definition in the browser
(in double quotes), so that it's immediately noticeable when browsing
through classes, and also immediately apparent when it's missing. If
there is no comment, use the string "This class has not yet been
commented." instead. (VisualWorks now does this.) For simplicity's
sake, editing the comment could still be handled by switching to the
comment pane (via the "?" button).

[SVP] I like it...there should be some indication that changes in the comment section will not be preserved.

"Decompress to file" Should Refresh

The "decompress to file" menu item in the FileList (for .gz files)
should refresh the file list afterward, and probably select the
decompressed file, too.

Store Output in the Transcript Even If Not Open?

I haven't really looked into whether this is easily doable, but it
will be very cool if it were possible to store output directed to the
Transcript, even if a transcript window wasn't opened yet. Then, when
you opened the transcript window, the output would already be in the
window. It often happens that I forget to have a transcript window open
when I need to look at the output from some operation, and this would
solve that problem.

[SVP] While at it, why not provide a little flexibility over the size of the buffer, it could be infinite (as I think it is now, or one could keep it smaller, which would alleviate the slowness that occurs when a very large amount of text is in the transcript. Of course, it would also be nice if a huge amount of text were allowed, without slowing things down.

Class-side Changes in FileContentsBrowser

The FileContentsBrowser should show class-side changes with a separate "ClassNameXXX class" class-side entry in the class pane (in addition to
a possible "ClassName" instance-side entry). This would be just like
how the change sorter displays class changes, and would prevent
accidentally overlooking class-side changes. We could also get rid of
the instance/?/class buttons then. (Perhaps class comment changes could
be appended to the class definition area.)


Create a TextEntryMorph, which is a text morph restricted to a single
line, which does not change its size as text is typed in, ignores CRs,
and also horizontally (not vertically) scrolls itself as text (of
unlimited length) is typed or highlighted past the edge. Very useful
for specific applications.

Class Definition Timestamps

Class definitions should be stored with a version timestamp, just
like methods are. They're stored in the .changes file anyway, right?
Then you could see instance variable/etc changes show up by browsing
"versions" for definitions, with diffs! Seems like this shouldn't be
impossible. ENVY never even supported this, for reasons I've never
understood. (This one's more of a brainstorm, probably not doable
during the SqueakEnd.)

Command Completion Dependent on Preceding Expression

It would be really cool to have command completion (alt-q) work in
workspaces/inspectors, such that the preceding expression is parsed and
evaluated first so that the outputted "type" of the expression is known,
which can then restrict the messages listed to the ones that object
understands. On second thought, this may not be feasible, since you
probably don't want to evaluate expressions which have side effects, or
take a long time to execute, ah well.

Have MethodFinder ignore methods which only return self.

(it could just return self for those methods, without actually executing them) This would greatly reduce the number of hardcoded methods-to-avoid. (is there a way to quickly detect if a CompiledMethod always returns self?). Admittedly, this one is just a random brainstorm.

Local senders/Local implementors [SVP]

It would be nice to be able to get a list of just the senders/implementors of a given method within the current class hierarchy (all parents and all subclasses of the class in question). This is useful for those methods with tons of senders/implementors.

[DEW] This one's already been added to the base release, actually (3.2gamma & 3.3alpha). You just need to go to the shift (more...) menu in the method pane of the browser, and try "local senders of...", etc.

Inherited methods in the browser [SVP]

Add the ability to show all inherited methods in the browser. Locally implemented methods would appear in bold face, while inherited methods would appear in the regular font. Is there currently a convenient way of doing this?

[DEW] This capability is sort of there, if you select "browse protocol" from the method pane menu, a new window comes up showing inherited methods (with local ones in bold). However, it might be better just to have a toggle for this to work in the regular browsers.

pluggable world/open menus [RW]

Any class or piece of code should be able to add menu items to these menus. They could be scoped to projects or truly global. The most direct solution may be to add ivars (properties) to the WorldState to hold this list of menu items. Each menu item could have a weight, which would be used to position them in the list.

Link to this Page