Golgi

michal starke Michal.Starke at lettres.unige.ch
Fri Oct 16 19:26:26 UTC 1998


hi all,

you might be interested in a morphic outliner that i wrote as a
smalltalk-learning project some weeks ago and that has grown into a decent
alpha/prototype (provisionally called 'Golgi'). The core of it is a
MORE-like outliner, with each header a full PluggableTextMorph, with reorg
of headers, hoisting etc. (screenshot here:
http://latl.unige.ch/lmc/f5/goRaw.gif).

Maybe more directly relevant to squeak: one of the goals i had in mind is
that it should be fairly easy to adapt the outliner to specialised uses.
This version comes with one such specialised use: a smalltalk (squeak)
code-editor integrated into standard squeak browsers. (screenshot here:
http://latl.unige.ch/lmc/f5/goSqueak.gif).

Qua squeak-code editor, it presents several benefits:
- less punctuation hassle: it inserts dots at the end of the relevant
headers. indentation signals blocks so that it can inserts square brackets
automatically, it allows to comment out code by simply hitting cmd-t (the
wedge becomes a quote sign and the header is commented. headers under that
header are automatically commented too), to insert a breakpoints by hitting
cmd-k, to forego the var-declaration syntax '|'. in short it allows one to
concentrate on the meaning while writing code, minimising the syntactic
chores.
- quick and easy view/manipulation of the structure. useful particularly
when the code becomes bigger than what one pane would contain. Again,
allows one to concentrate on the meaning of it all :-)

I plan to integrate Golgi very closely with squeak since there are many
parts of squeak into which i would like to sneak outline-like views. Eg:
- inspectors (wouldn't it be great to be able to expand down an inspector
rather than opening zillions of them?!)
- list-views, particularly browser list views. that would allow
hierarchical categorization of classes.

You can download the current prototype of Golgi either as a fileIn-set
(there is an installer) or as a complete image preloaded with Golgi:

http://latl.unige.ch/lmc/f5/golgi_052a10.hqx (file-in)
http://latl.unige.ch/lmc/f5/golgi_052a10.zip (file-in)
http://latl.unige.ch/lmc/f5/MACFULLGOLGI_052A10.HQX (5MB)
http://latl.unige.ch/lmc/f5/WINGOLGFULL_052A10.ZIP

Warnings:
- keep in mind that this is an early alpha. it is usable, but bugs will
jump at you! I am sharing this now not because it is mature, but (first for
the sheer pleasure of sharing it! and...) to let people know about the
ongoing project, maybe get some feedback and to allow people to tinker with
teh code if they feel like it.
- if you choose the file-in + installer, back up before: it installs some
methods in system classes to allow manipulation of its shared pools)
- if you go looking at the under the hood, don't trust what you see (or
read in comments) yet. there are several successive layers of prototypes in
there that i haven't had time to clean up entirely.

On the other hand i have kept all my notes in it for the last couple of
weeks and still haven't lost anything.

michal





More information about the Squeak-dev mailing list