Did you look at eieio? David O'Toole <[EMAIL PROTECTED]> writes:
> Recently it became clear that I should factor out some common ideas > that have appeared in most of my emacs lisp programs. > > After some Deep Thinking (TM) I decided that what I really want is to > write object-oriented programs in Emacs Lisp, with a lightweight > object model and an easy-to-type syntax for method calls and slot > references. I want persistent objects and a universal browser (based > on cell-mode) with which one can inspect and manipulate any Eon object > or object collection (and that would only be the default view.) > > The attached code is my first attempt to implement the core ideas. > (The persistence and UI portions are under construction and will be > added as extensions later.) Design influences include Smalltalk, CLOS, > howm-mode, eev-mode, the Categorizing Information Manager, and others. > > There is a working example (admittedly not very exciting) at the end > of the file. > > Eon is now the basis for all my other programs, two of which are > slated for inclusion in Emacs at some future date. Comments and > criticisms are welcome. > > By the way, you don't have to write object-oriented programs to > benefit from Eon. Instead, you (or someone else) can write a wrapper > for your existing code, and make it possible for users to browse, > discover, manipulate, configure, and share objects whose behaviors > come from your library, without you having to code your user interface > from scratch. > > I think this could also help make the user interfaces of different > Emacs packages more "discoverable" and more consistent with each > other. For example, think of how many different programs implement > their own similar-but-different "dired-style" buffer interfaces (where > you can place various marks on items in a list and perform operations > on the marked items.) > > Some links to programs in the process of being ported to Eon: > > - The RLX graphical roguelike game engine: > http://dto.freeshell.org/notebook/RogueLike.html > > - The cell-mode user interface: > http://dto.freeshell.org/notebook/CellMode.html > > - Linkd, the universal annotator/linker thing > http://dto.freeshell.org/notebook/Linkd.html > > The project page for Eon itself is > > http://dto.freeshell.org/notebook/Eon.html > > -- > David O'Toole > [EMAIL PROTECTED] > http://dto.freeshell.org/notebook/ > > > _______________________________________________ > gnu-emacs-sources mailing list > [email protected] > http://lists.gnu.org/mailman/listinfo/gnu-emacs-sources -- Joakim Verona _______________________________________________ gnu-emacs-sources mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnu-emacs-sources
