Lisp has traditionally been a very interactive language. Yet Common Lisp doesn't specify much with respect to interplay between language and (user) environment. The specification does contain a very humble Environment chapter that inclusion was supported by the standardization commitee to signal the message that environmental interactivity is wished for. We intend to extend on that.
Editor-hints is supposed to become an interface between the Common Lisp the language and its development environments.
Discussions take place at editor-hints-devel.
2009-10-10: released Named-Readtables 0.9.
* Named Readtables: (released 2009-10-10.) Create a namespace for readtable analogously to that of packages. `(IN-READTABLE :FOO)' are supposed to be recognized by editors, to properly deal with different readtables when evaluating stuff. * Indentation: Add a facility to specify how symbols are supposed to be indented. I.e. something like a DECLAIM-INDENTATION (being based upon a PROCLAIM-INDENTATION function) which store indentation information in some retrievable way. So that editors can rely on that information from a running Lisp image. This requires some research about the indentation specification schemes that different Lisp systems (Lisp machines, Symbolics' Genera, GNU Emacs, Lispworks, AllegroCL) use. And then define a practical denominator. * Documentation retrieval: Add the facility to support project-specific documentation retrieval on a per symbol basis. It's common that editors provide the possibility to quickly visit the respective CLHS site for a symbol. But this doesn't work on symbols not defined by ANSI. * Pretty docstrings: Add support for using markup in docstrings. Also detach too elaborate docstrings from the actual function/macro/etc definition. * Source locations: First class source locations; for instance imagine a (DEFINE-ELABORATE-DOCUMENTATION FOO ...) macro that registers documentation (in CLHS style, for example) to the symbol FOO, and which can be retrieved via (DOCUMENTATION 'FOO 'ELABORATE-DOCUMENTATION) Now, an editor may also want to provide M-.ness for this stuff, i.e. to enable the user to easily jump to the DEFINE-ELABORATE-DOCUMENTATION definition. For that to work, the above macro should expand to something that registers its source location into a a weak hash-table from symbols to source locations, such that the editor can consult that hash-table by some specified interface. * Querying users for input Providing functions to query the user for some kind of input. These functions are supposed to be used for USE-VALUE restarts, for instance. And they're supposed to be implemented by editors in some fancy way (than just using *QUERY-IO* directly.)
Back to Common-lisp.net.