[climacs-devel] Re: Climacs - self documenting editor?

Christophe Rhodes csr21 at cam.ac.uk
Wed Apr 26 14:19:25 UTC 2006


John Q Splittist <splittist at yahoo.com> writes:

> Christophe Rhodes <csr21 <at> cam.ac.uk> writes:
>
>> Shortly after writing this, I found another reason...  My changes will
>> require settings of the form
>>   (esa:set-key `(com-find-file ,*unsupplied-argument-marker*)
>>                'buffer-table
>>                '((#\x :control) (#\f :control)))
>
>> can people live with that?
>
> FWIW, I can. It is, perhaps, even preferable, since it provides a
> clear indication in the source for required arguments when invoked
> from the keyboard.
>
> How does *unsupplied-argument-marker* play with
> *numeric-argument-marker* and friends?

At the moment, *numeric-argument-marker* and *numeric-argument-p* are
handled first; then if any argument is eq to
*unsupplied-argument-marker*, the partial command processor is called.
So they're probably orthogonally handled: I don't know if there would
be demand to support something like
  `(com-foo ,(if *numeric-argument-p*
                 *numeric-argument-marker*
                 *unsupplied-argument-marker*))
or indeed whether or not that currently works: it would depend on
whether *numeric-argument-p* is bound at keystroke-interpretation
time.  In any case, this is handled by process-gestures-or-command,
which is called from esa-top-level, so we can basically do whatever we
want to :-)

To make this discussion a little bit more concrete, I attach my
patches to esa, implementing this machinery, and to climacs, beginning
to use it.  In each patch you get a little bit of noise -- the esa
patch also includes unbreaking the describe-bindings functionality,
and the climacs patch implements the mode line toggling of modified
and read-only.

The good news is that the changes to climacs (and other application)
commands can be made incrementally; the changes to ESA are backwards
compatible.  (The bad news is that all of this is blocked on a problem
in its interaction with goatee in mcclim itself... If you want to play
with these patches, add NIL to the call to erase-output-record in the
method on climi::finalize in mcclim/Goatee/editing-stream.lisp)

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: esa.diff
URL: <https://mailman.common-lisp.net/pipermail/climacs-devel/attachments/20060426/b3625b54/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: climacs.diff
URL: <https://mailman.common-lisp.net/pipermail/climacs-devel/attachments/20060426/b3625b54/attachment-0001.ksh>
-------------- next part --------------

Cheers,

Christophe


More information about the climacs-devel mailing list