[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: propose adding Icicles to Emacs

From: Richard Stallman
Subject: Re: propose adding Icicles to Emacs
Date: Fri, 15 Jun 2007 15:22:02 -0400

    Are you sure that that code cannot be made modular enough to be added,
    without breaking the basic design and starting over from scratch?

I am absolutely sure that my implementation of multi-command behavior
is much cleaner.  Replaceing a standard command is undesirable, so I
would like to minimize the number of commands that we need to replace.

    > The only purpose that I know of for defining Icicle-find-file is to
    > implement multi-command behavior.  Is there any other reason?

    No, that is correct - it is the only reason.

That's what I thought.  Therefore, my approach to multi-command
behavior will eliminate the need for many of Icicle's substitutes for
standard commands.

So I propose two things to be done in parallel:

* Implement multi-command behavior at the level of Fcall_interactively.

* Make a version of Icicles that doesn't define Icicle-find-file
and the other simple replacements (which are just for the purpose
of the multi-command feature).

    #1 is necessary to enable `C-RET', that is, to make it a multi-command at
    all. With your implementation of multi-commands, some such variable would
    still be necessary in the general case, to override use of the command body
    for the action function - that is, to provide a different action from what
    the command itself performs when you finally choose a candidate once and for

Can you explain some _specific_ reasons why that is needed?
Becuase it seems to me we can probably do without it.

    One use case is defining a command that is itself called when defining
    another command. The first command might define a default action function if
    `icicle-candidate-action-fn' is nil when it is called. The second command
    can bind the action function to override the default in the command it
    calls. (There was an example of this, but I no longer have one to point to.)

That is rather abstract and I find I just can't follow it.

    2. `icicle-candidate-alternative-action-fn' - an alternative action function
    3. `icicle-delete-candidate-object' - a deletion action

The easiest way to handle these is to use properties of the
command symbol, `minibuffer-alt-action', `minibuffer-delete-action'.
So we could do

 (put 'find-file 'minibuffer-delete-action 'delete-file)

S-delete would be defined to look for that property on this-command
to decide what to do.

We could implement the equivalent of `icicle-candidate-action-fn'
easily in the same way.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]