Tobias C. Rittweiler | 15 Jan 00:49 2008
Picon

Initial message to create gmane.lisp.editors.hints.devel group.


Intentionally left unblank.

--

-- 
Diese Nachricht wurde auf Viren und andere gefaerliche Inhalte untersucht
und ist - aktuelle Virenscanner vorausgesetzt - sauber.
Freebits E-Mail Virus Scanner
Tobias C. Rittweiler | 15 Jan 01:21 2008
Picon

Re: Initial message to create gmane.lisp.editors.hints.devel group.

"Tobias C. Rittweiler" <tcr <at> freebits.de> writes:

> Intentionally left unblank.

"Achtung, hier herrscht Verr├╝cktheit!"

  -T.
Michael Livshin | 17 Jan 14:18 2008
Picon

Re: Initial message to create gmane.lisp.editors.hints.devel group.

"Tobias C. Rittweiler" <tcr <at> freebits.de> writes:

> "Tobias C. Rittweiler" <tcr <at> freebits.de> writes:
>
>> Intentionally left unblank.
>
> "Achtung, hier herrscht Verr├╝cktheit!"

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

cheers,
--m
Tobias C. Rittweiler | 18 Jan 09:54 2008
Picon

Re: Initial message to create gmane.lisp.editors.hints.devel group.

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.
(Continue reading)

Tobias C. Rittweiler | 18 Jan 16:30 2008
Picon

Re: Initial message to create gmane.lisp.editors.hints.devel group.

"Tobias C. Rittweiler" <tcr <at> freebits.de> writes:

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

I call this project to be successfull if its integration into Slime
makes it popular enough to become a standard requirement of future
Open Source Lisp projects. At least this is what I strive for.

I hope that such popularity will make it rise on the radars of
commercial Lisp environments.

> Its current TODO list looks as follows:
>
> ...
>
> * 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.

Are you still interested in working on that, Michael?
(Continue reading)

Robert Goldman | 18 Jan 17:05 2008

Re: Re: Initial message to create gmane.lisp.editors.hints.devel group.

Tobias C. Rittweiler wrote:
[...]
> 
> 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.

I'd suggest that the editors be able to handle readtable specifications
in the mode line, as well.  Indeed, since the mode line is the directive
to the editor, I'm inclined to think that the mode line should take
precedence....  But I certainly haven't thought deeply about this..
> 
> * 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.
(Continue reading)

Robert Goldman | 18 Jan 17:12 2008

Re: Re: Initial message to create gmane.lisp.editors.hints.devel group.

Tobias C. Rittweiler wrote:
> "Tobias C. Rittweiler" <tcr <at> freebits.de> writes:
> 
>> Editor-hints is supposed to become an interface between the language
>> Common Lisp and Lisp development environments.
> 
> I call this project to be successfull if its integration into Slime
> makes it popular enough to become a standard requirement of future
> Open Source Lisp projects. At least this is what I strive for.

I have not been able to wean myself from Allegro's ELI (I have too many
lines of configuration code), so I'll try to make ELI-compatible
equivalents of any SLIME code...

Cheers,
R
Tobias C. Rittweiler | 18 Jan 19:47 2008
Picon

Re: Initial message to create gmane.lisp.editors.hints.devel group.

Robert Goldman <rpgoldman <at> sift.info> writes:

> Tobias C. Rittweiler wrote:
>
> >   `(IN-READTABLE :FOO)' are supposed to be recognized by editors,
> >   to properly deal with different readtables when evaluating stuff.
>
> I'd suggest that the editors be able to handle readtable specifications
> in the mode line, as well.  Indeed, since the mode line is the directive
> to the editor, I'm inclined to think that the mode line should take
> precedence....  But I certainly haven't thought deeply about this..

Think of

  -*- Readtable: :FOO -*-

  (in-readtable :foo)

  ...

  (in-readtable :bar)

  ...

  (in-readtable :foo)

Although not good style, this certainly should be made to work. So the
value of File Variables should be a fall back, and the surrounding
IN-READTABLE form should take precedence.

(Continue reading)

Michael Livshin | 19 Jan 08:29 2008
Picon

Re: Initial message to create gmane.lisp.editors.hints.devel group.

"Tobias C. Rittweiler" <tcr <at> freebits.de> writes:

> Are you still interested in working on that, Michael?

yes, I think I am.

(and, as Robert says, looks like the indentation hints need only
support Emacs anyway, so there's not really that much to do on that
front).

cheers,
--m
Tobias C. Rittweiler | 23 Jan 11:42 2008
Picon

Initial checkin.


Alright, RPG and me migrated the svn repository from his employer to
common-lisp.net. You can fetch the sources via

  svn checkout svn://common-lisp.net/project/editor-hints/svn

The sources contain so far only an almost complete implementation of
named readtables. Incomplete only in so far that merging of readtables
don't work so far, because it needs introspection into a readtable which
the standard doesn't offer.

I can implement this kind of introspection by shadowing
SET-MACRO-CHARACTER &c. -- although I'd like implementations to provide
this functionality themselves ultimativaly (think CDR.)

Named Readtables provide a package like namespace for readtables. Every
normal .lisp file should start with

   (in-package :foo)     ; where #<PACKAGE "FOO"> uses :EDITOR-HINTS
   (in-readtable :standard)

You can define your own named readtables via DEFREADTABLE:

  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defun semicolon-reader (stream char)
     (declare (ignore char))
     (let ((comment-string (read-line stream nil "" t)))
       `(comment (string-left-trim '(#\; #\Space #\Tab) comment-string)))))

  (defreadtable :preserving-comments
(Continue reading)


Gmane