[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
outlining and tags tables [was: Re: Dylan Environment for MCL]
- To: info-mcl@digitool.com
- Subject: outlining and tags tables [was: Re: Dylan Environment for MCL]
- From: wgd@zurich.ai.mit.edu (Bill Dubuque)
- Date: 28 Mar 95 21:03:03
- Organization: M.I.T. Artificial Intelligence Lab.
- References: <199503240600.BAA05292@digitool.com>, <199503241719.KAA00461@somnet.sandia.gov>
- Sender: owner-info-mcl@digitool.com
From: svspire@somnet.sandia.gov (Shannon V Spires)
Date: 24 Mar 1995 12:29:01 -0500
> Well, I think it would involve more than you suspect. The Dylan
> development environment is project based and keeps a database...
> ... and MCL isn't project based.
We don't need the full Dylan project/database metaphor...at least not yet.
I think if we just had a fred-window subtype that showed those outline
views of code files with twister triangles beside each definition it would
be fine right now. The file types wouldn't have to change; marks for
definitions, as well as their twist-state, could be stored in the resource
fork. It wouldn't need to be very dynamic, any more than 'List
Definitions' already is. The user could do a rescan to reparse the file
and generate the little triangles; any that were already present would
retain their existing twist-state. One level of outlining would do; we
could do without multilevel Finder-style outlining for the moment...
I have implemented something along these lines for GNU Emacs.
I view the etags tags table as an outline view of topl-level
definitions in a project. To keep the view updated, I defined
a new minor mode called 'auto-tags' that dynamically updates
the tags table as source buffer is modified (using buffer
change functions). Also, for finding definitions, I allow full
completion over all the definition lines in the tags table.
For example, you could type 'M-. (defmethod foo TAB' and
this would pop-up a menu buffer of all methods defined on the
generic function foo. You can then quickly traverse all
such methods.
Currently this code is incorporated in Editi, the Franz
ACL/Windows interface to Win-Emacs (= Lucid Emacs 19.6
for MS-Windows, now XEmacs). When I have some spare time,
I'll port it to the latest versions of Emacs and XEmacs.
Perhaps it might be possible to incorporate it into
Fred if it uses tags tables and is similar to GNU Emacs.
I don't use MCL or the Mac so I don't know how twister
outlining works. Does it incorporate any novelties
above the standard outline-mode in GNU Emacs?
-Bill