[editor-hints-devel] Re: Initial message to create gmane.lisp.editors.hints.devel group.

Tobias C. Rittweiler tcr at freebits.de
Fri Jan 18 08:54:13 UTC 2008


Michael Livshin <gmane at cmm.kakpryg.net> writes:

> that said, some sort of an overall vision would be nice. :)

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.

Editor-hints is supposed to become an interface between the language
Common Lisp and Lisp development environments.

 -T.


P.S.:

Its current TODO list looks as follows:


* Named readtables:

  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/&c 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.




More information about the editor-hints-devel mailing list