all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
To: "Drew Adams" <drew.adams@oracle.com>
Cc: emacs-devel@gnu.org
Subject: Re: propose adding Icicles to Emacs
Date: Thu, 14 Jun 2007 12:19:56 -0400	[thread overview]
Message-ID: <E1Hys3A-0004Gj-02@fencepost.gnu.org> (raw)
In-Reply-To: <EIENLHALHGIMHGDOLMIMEEGPDCAA.drew.adams@oracle.com>

    You seem bent on automatically converting all commands to multi-commands.
    That might be useful, in a limited way. But programmers will still need to
    be able to define multi-commands that go beyond the simple case. I gave
    `icicle-search' as an example.

Would you please explain what is special about it?

    > The need to replace commands is a complexity, and the code will
    > be much better if we avoid that complexity.

    There is no need to replace any commands. Keep them all.

As you have described it, Icicles replaces the command find-file.  It
does this by defining a new command (Icicle-find-file?) and remapping
remapping find-file to that.

I think this complexity is unnecessary, and I want to try to avoid
installing it.

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

I have proposed a modular and clean way to provide the multi-command
behavior, without the need to replace commands in this way.  You said
that my proposal doesn't do the whole job.  Maybe you are right, but I
need you to explain.  What part of the job does it not do?

    No one is against modularity. I have not seen a "proposed implementation",
    beyond some vague hand-waving.

I gave you an outline of the scheme.  Of course I don't have all the
details.  I am trying to work out the details but I need your help.

    However, that needs to be done
    carefully and fully. For example, use of a standalone minibuffer and non-nil
    pop-up-frames should also work.

I expect we can write the code in Fcall_interactively to do TRT in
those cases.  The only way to make sure is to try it.

    I agree about "independent of the specific command that was run", but only
    in the case of run-of-the-mill multi-commands.

Even if this only handles the run-of-the-mill multi-commands, and the
exceptions are handled by your macros, that is still a big
simplification.  And we can continue trying to make this mechanism
better; perhaps we can make it handle more of the commands.

    For some multi-commands you
    want the frame focus to end up in a different place when you are done, for
    example.

Could you tell me about one example?  Maybe I can find a simple
general mechanism to handle this too.

    You might typically work in the buffer of application after using a
    multi-command, or you might instead typically want the minibuffer frame to
    continue to have the focus so you can use it again - different commands have
    different use cases.

Can you tell me about one example of each type, so I can see
why this is so?

    I had my multi-command definition macros available for my own use,
    yet I did not use them to define some of the multi-commands. Why?
    Because they are not flexible enough - they cannot be flexible
    enough. There is no substitute for being able to code what is
    needed in a particular case.

Maybe that is true, but first let's make a reasonable effort to make a
general mechanism handle as much of the job as possible.  Eventually
we may decide to handle a few hard cases with your macros.

    Practically every place where I have used a non-nil value for
    `icicle-use-candidates-only-once' is an example. It is not so much that
    multiple invocation would be harmful (though perhaps that can also be true
    for some commands). It is that, in many cases, it is handy for the user to
    remove the candidate from the list of available candidates, once it has been
    acted on.

We could build that into the low-level mechanism too.  It would be
quite clean.  Fcall_interactively just has to bind a certain variable
to nil, which holds a list of completion alternatives to exclude.
display-completion-list will ignore the alternatives in this list.
Then, each time around Fcall_interactively adds the proper argument
value to this list.

We could control the feature with a character in the interactive spec,
as in

    (interactive "#bDelete Windows of buffer:")

where # specifies using candidates only once.

    FYI - wrt clicking the `delete' key to remove a candidate - I've recently
    defined a complementary feature, to save a candidate for later
    consideration. I haven't yet uploaded this feature to the wiki, but I'll do
    so soon, after testing things a bit more.

These features seem interesting.  I think they can all be implemented
cleanly in Fcall_interactively, but this suggests we might want to make
it call some Lisp code which would handle some of these cases.

    It's best to read about what Icicles search offers and how it works, and
    then look at the code for `icicle-search' as an example. I'll be glad to
    answer questions, but I don't want to repeat here what is already written
    elsewhere. Please see the links above.

I will be glad to read the text you've already written, but finding
that text would be a pain for me.  Could you please email it to me?

  reply	other threads:[~2007-06-14 16:19 UTC|newest]

Thread overview: 212+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-26  0:19 [drew.adams@oracle.com: RE: cannot find :enable in Elisp manual index] Richard Stallman
2007-05-26  6:05 ` Eli Zaretskii
2007-05-29  4:01   ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Drew Adams
2007-05-29 19:12     ` Eli Zaretskii
2007-05-29 20:05       ` Stephen Berman
2007-05-29 20:58         ` Eli Zaretskii
2007-05-29 21:20           ` Stephen Berman
2007-05-29 21:25         ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Drew Adams
2007-05-29 21:03       ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Drew Adams
2007-05-30  3:20         ` Eli Zaretskii
2007-05-30  4:43           ` Drew Adams
2007-05-30  5:26             ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Drew Adams
2007-05-30 15:17             ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Johan Bockgård
2007-05-30 23:09               ` Eli Zaretskii
2007-05-30  5:23           ` David Kastrup
2007-05-30 23:01             ` Eli Zaretskii
2007-05-30 23:14               ` Eli Zaretskii
2007-06-02  2:54     ` Richard Stallman
2007-06-02  9:18       ` Jason Rumney
2007-06-02 17:29         ` Richard Stallman
2007-06-02 10:12       ` Robert J. Chassell
2007-06-02 17:29         ` Richard Stallman
2007-06-02 23:47           ` Robert J. Chassell
2007-06-03 21:27             ` Richard Stallman
2007-06-02 10:18       ` Alan Mackenzie
2007-06-02 14:36         ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Drew Adams
2007-06-02 17:26         ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Eli Zaretskii
2007-06-02 23:47           ` Alan Mackenzie
2007-06-02 23:48             ` Jason Rumney
2007-06-02 17:29         ` Richard Stallman
2007-06-02 18:10           ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Drew Adams
2007-06-03 21:27             ` Richard Stallman
2007-06-04  5:30               ` [drew.adams@oracle.com: RE: cannot find :enable inElispmanualindex] Drew Adams
2007-06-02 23:01           ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Miles Bader
2007-06-03  0:00           ` Karl Berry
2007-06-03 21:27             ` Richard Stallman
2007-06-03 22:52               ` Juri Linkov
2007-06-03 23:55                 ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Drew Adams
2007-06-04  5:01                   ` Richard Stallman
2007-06-04  5:42                     ` [drew.adams@oracle.com: RE: cannot find :enable inElispmanualindex] Drew Adams
2007-06-04 23:20                       ` Richard Stallman
2007-06-05  0:10                         ` [drew.adams@oracle.com: RE: cannot find :enableinElispmanualindex] Drew Adams
2007-06-06  0:50                   ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Stefan Monnier
2007-06-06  2:12                     ` Drew Adams
2007-06-06 12:26                       ` Stefan Monnier
2007-06-06 13:54                         ` Drew Adams
2007-06-06 15:06                           ` [drew.adams@oracle.com: RE: cannot find :enable inElispmanualindex] Drew Adams
2007-06-06 18:44                             ` Juri Linkov
2007-06-06 20:01                               ` Stefan Monnier
2007-06-06 20:51                                 ` Juri Linkov
2007-06-06 21:18                                   ` Stefan Monnier
2007-06-06 22:01                                     ` Juri Linkov
2007-06-06 22:24                                       ` Stefan Monnier
2007-06-06 22:40                                         ` Karl Berry
2007-06-07 12:37                                           ` Stefan Monnier
2007-06-07 22:22                                             ` Karl Berry
2007-06-08  1:00                                               ` Stefan Monnier
2007-06-08  2:28                                                 ` Karl Berry
2007-06-08  6:58                                                   ` csant
2007-06-08 15:42                                                     ` Stefan Monnier
2007-06-08  7:12                                                   ` Stefan Monnier
2007-06-08  8:34                                                   ` Juri Linkov
2007-06-06 22:04                                     ` Karl Berry
2007-06-08  7:11                               ` Richard Stallman
2007-06-08  8:32                                 ` Juri Linkov
2007-06-08 15:46                                   ` Stefan Monnier
2007-06-08 15:52                                   ` propose adding Icicles to Emacs Drew Adams
2007-06-10 13:19                                     ` Richard Stallman
2007-06-10 17:16                                       ` Drew Adams
2007-06-10 18:22                                         ` Sean O'Rourke
2007-06-11  0:09                                           ` Drew Adams
2007-06-11  9:44                                         ` Richard Stallman
2007-06-11 18:33                                           ` Drew Adams
2007-06-11 19:17                                             ` Stefan Monnier
2007-06-11 20:53                                               ` Drew Adams
2007-06-11 21:46                                                 ` Stefan Monnier
2007-06-11 23:21                                                   ` Drew Adams
2007-06-13  8:06                                                   ` Richard Stallman
2007-06-14  7:48                                                 ` Richard Stallman
2007-06-14 15:51                                                   ` Drew Adams
2007-06-14 16:07                                                     ` Stefan Monnier
2007-06-15  0:39                                                       ` Drew Adams
2007-06-15 19:22                                                         ` Richard Stallman
2007-06-15 21:04                                                           ` Drew Adams
2007-06-16 18:51                                                             ` Richard Stallman
2007-06-16 18:51                                                             ` Richard Stallman
2007-06-16 18:51                                                         ` Richard Stallman
2007-06-16 20:53                                                           ` Drew Adams
2007-06-17  8:54                                                             ` Richard Stallman
2007-06-17 18:48                                                           ` Juri Linkov
2007-06-17 20:39                                                             ` Drew Adams
2007-06-17 21:18                                                               ` Juri Linkov
2007-06-17 23:07                                                                 ` Drew Adams
2007-06-18 21:17                                                                   ` Juri Linkov
2007-06-18 23:31                                                                     ` Drew Adams
2007-06-19  8:16                                                                       ` Juri Linkov
2007-06-19 14:47                                                                         ` Drew Adams
2007-06-18 14:56                                                               ` Stefan Monnier
2007-06-19 22:26                                                                 ` Richard Stallman
2007-06-20  6:46                                                                   ` Stefan Monnier
2007-06-28  2:41                                                                   ` Stefan Monnier
2007-06-28 15:47                                                                     ` Drew Adams
2007-06-28 19:25                                                                     ` Richard Stallman
2007-06-28 20:03                                                                       ` Stefan Monnier
2007-06-29  5:10                                                                         ` Richard Stallman
2007-06-18 21:31                                                               ` Richard Stallman
2007-06-19  3:52                                                                 ` Stefan Monnier
2007-06-19 22:26                                                                   ` Richard Stallman
2007-06-19 23:11                                                                     ` Drew Adams
2007-06-20  1:19                                                                     ` Stefan Monnier
2007-06-19 22:47                                                                   ` Drew Adams
2007-06-19 23:15                                                                     ` Drew Adams
2007-06-20 14:19                                                                     ` Juri Linkov
2007-06-20 15:13                                                                       ` Drew Adams
2007-06-20 15:13                                                                       ` Stefan Monnier
2007-06-20 15:34                                                                         ` Drew Adams
2007-06-20 15:50                                                                           ` Juri Linkov
2007-06-20 16:02                                                                             ` Juanma Barranquero
2007-06-20 16:38                                                                             ` Drew Adams
2007-06-20 17:28                                                                               ` Drew Adams
2007-06-20 17:51                                                                               ` Juri Linkov
2007-06-21  1:07                                                                         ` Richard Stallman
2007-06-19 22:48                                                                 ` Drew Adams
2007-06-20 17:36                                                                   ` Richard Stallman
2007-06-16 18:51                                                         ` Richard Stallman
2007-06-16 19:58                                                           ` Drew Adams
2007-06-16 18:51                                                         ` Richard Stallman
2007-06-16 22:36                                                           ` Drew Adams
2007-06-17 21:49                                                             ` Richard Stallman
2007-06-16 18:51                                                         ` Richard Stallman
2007-06-16 22:29                                                           ` Drew Adams
2007-06-17 21:48                                                             ` Richard Stallman
2007-06-17 22:18                                                               ` Drew Adams
2007-06-18 16:15                                                                 ` Drew Adams
2007-06-25 13:19                                                                   ` Richard Stallman
2007-06-25 14:57                                                                     ` Drew Adams
2007-06-25 19:52                                                                       ` Richard Stallman
2007-06-25 21:40                                                                         ` Drew Adams
2007-06-26 16:57                                                                           ` Richard Stallman
2007-06-26 17:36                                                                             ` Drew Adams
2007-07-01 20:40                                                                               ` Richard Stallman
2007-07-01 21:54                                                                                 ` Drew Adams
2007-07-02 19:47                                                                                   ` Richard Stallman
2007-07-02 22:19                                                                                     ` Drew Adams
2007-07-03  4:24                                                                                       ` Richard Stallman
2007-07-03  7:56                                                                                         ` Drew Adams
2007-07-04  3:43                                                                                           ` Richard Stallman
2007-07-04  6:13                                                                                             ` Drew Adams
2007-06-25 20:47                                                                     ` Juri Linkov
2007-06-21 18:35                                                                 ` Davis Herring
2007-06-21 18:39                                                                   ` Lennart Borgman (gmail)
2007-06-21 20:42                                                                   ` Drew Adams
2007-06-21 22:27                                                                     ` Davis Herring
2007-06-22  0:20                                                                       ` Drew Adams
2007-06-24 14:40                                                                         ` Richard Stallman
2007-06-15  8:48                                                     ` Richard Stallman
2007-06-15 13:23                                                       ` Drew Adams
2007-06-15 22:45                                                         ` Richard Stallman
2007-06-13 16:21                                               ` Richard Stallman
2007-06-13 16:22                                             ` Richard Stallman
2007-06-13 19:00                                               ` Drew Adams
2007-06-14 16:19                                                 ` Richard Stallman [this message]
2007-06-15  1:01                                                   ` Drew Adams
2007-06-15 19:22                                                     ` Richard Stallman
2007-06-15 21:04                                                       ` Drew Adams
2007-06-16 18:50                                                         ` Richard Stallman
2007-06-17 18:46                                                     ` Juri Linkov
2007-06-17 19:35                                                       ` Drew Adams
2007-06-18 21:31                                                         ` Richard Stallman
2007-06-11  9:44                                         ` Richard Stallman
2007-06-11 17:29                                           ` Drew Adams
2007-06-11 18:10                                             ` Stefan Monnier
2007-06-13  8:07                                               ` Richard Stallman
2007-06-13 15:23                                                 ` Drew Adams
2007-06-14  7:49                                                   ` Richard Stallman
2007-06-15  0:41                                                     ` Drew Adams
2007-06-15 19:22                                                       ` Richard Stallman
2007-06-15 21:04                                                         ` Drew Adams
2007-06-16 18:51                                                           ` Richard Stallman
2007-06-16 22:30                                                             ` Drew Adams
2007-06-13  8:07                                             ` Richard Stallman
2007-06-11  3:49                                     ` Miles Bader
2007-06-11  7:24                                       ` Drew Adams
2007-06-11 16:25                                         ` Richard Stallman
2007-06-11  9:44                                       ` Richard Stallman
2007-06-11 18:41                                         ` Drew Adams
2007-06-12  0:43                                           ` Miles Bader
2007-06-12  8:08                                             ` Kim F. Storm
2007-06-12  9:18                                               ` joakim
2007-06-12 11:04                                                 ` Kim F. Storm
2007-06-12 11:16                                                   ` joakim
2007-06-12 13:30                                                     ` Drew Adams
2007-06-12 14:06                                                     ` keys that work on terminals (was: Re: propose adding Icicles to Emacs) Dan Nicolaescu
2007-06-12 14:45                                                       ` keys that work on terminals joakim
2007-06-12 13:22                                               ` propose adding Icicles to Emacs Drew Adams
2007-06-06 15:43                           ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Stefan Monnier
2007-06-04  5:01                 ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Richard Stallman
2007-06-04 23:51                   ` Juri Linkov
2007-06-05  3:55                     ` Miles Bader
2007-06-05 16:29                       ` Juri Linkov
2007-06-05 17:12                         ` [drew.adams@oracle.com: RE: cannot find :enable in Elispmanualindex] Drew Adams
2007-06-05 19:17                       ` [drew.adams@oracle.com: RE: cannot find :enable in Elisp manualindex] Richard Stallman
2007-06-05 22:32                     ` Richard Stallman
2007-06-06  0:32                       ` Karl Berry
2007-06-06 22:10                         ` Richard Stallman
2007-06-06 22:21                           ` Karl Berry
2007-06-02 22:34       ` Juri Linkov
2007-06-02 22:42     ` Juri Linkov
2007-06-03  3:07       ` Eli Zaretskii
2007-06-03  9:34         ` Juri Linkov
2007-06-03 21:23           ` Karl Berry
2007-06-03 21:27           ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1Hys3A-0004Gj-02@fencepost.gnu.org \
    --to=rms@gnu.org \
    --cc=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.