From: "Drew Adams" <drew.adams@oracle.com>
Subject: RE: completion-auto-help
Date: Fri, 11 Nov 2005 09:47:45 -0800 [thread overview]
Message-ID: <DNEMKBNJBGPAOPIJOOICMEKHCOAA.drew.adams@oracle.com> (raw)
In-Reply-To: <87lkzvpz2s.fsf-monnier+emacs@gnu.org>
complete.el extends the meaning of the variable so that a non-nil non-t
value means "show the help but only on the second attempt to complete".
I.e. if TAB finds nothing to complete, the first TAB will just
say "[Next
char not unique]" without bringing up the *Completions* buffer, and the
second TAB will then bring up the *Completions* buffer.
It happens to be my favorite behavior.
Thanks. I knew about that behavior, but I couldn't make out the related use
of completion-auto-help.
I still don't see it in complete.el (it is only tested there, never bound),
and I don't see it in C code either. Where is `completion-auto-help's
non-nil, non-t value bound?
If it is only a user who sets such a value, then shouldn't the non-nil,
non-t behavior be documented for the user option? I don't see that, as I
mentioned.
> 2. New feature proposal - How about allowing for an
> "always-display-*Completions*' behavior:
> - t means what it means now
> - nil means what it means now
> - other means this:
We could have
t = what it means now
nil = what it means now
eager = what you suggest (always show the completions and update them
after each key stroke)
lazy = what complete.el does for non-nil non-t values
Good.
> IOW, with this value, the user would not need to hit `TAB' to display
> *Completions*. (S)he would see the list of completions
whenever there are
> more than one. There is currently no way to make `completing-read',
> `read-file-name' etc. display *Completions* from the outset.
Indeed. The closest is icomplete-mode.
Yes, in fact, I implement this behavior with regexp matching in Icicles,
where I refer to it, by analogy, as "apropos icompletion" ("apropos" because
it uses a regexp, "icompletion" because it is incremental completion). That
was one of the motivations for this request: I currently have no way to
display the candidates right from the beginning - a user must first request
the display (via, e.g., `TAB').
I proposed `eager' _without_ the automatic update after each keystroke, in
order to allow that as an additional (separate) option. I think that would
be better. Some people (or some functions) might like to display the list of
candidates right from the beginning, as a kind of menu, but prefer to update
it only upon demand (via `TAB'), not automatically at each keystroke. Some
people might find the automatic list updating to be distracting (I find it
very helpful, personally).
IOW, I think we should separate the control of when to display of
*Completions* from the control of whether or not to automatically update it.
The difference only makes sense, probably, for the `eager' value, so we
could just have two values instead of one: `eager-with-auto-update' and
`eager-without-auto-update'.
My implementation of this kind of incremental completion in Icicles uses an
option that is checked in the special self-insert I use. The option values:
non-nil means update *Completions* incrementally, as you type.
t means do nothing if *Completions* is not already displayed.
non-nil and non-t means display *Completions* and update it.
So, for instance, non-nil, non-t causes character insertion to display
*Completions*. That does not take care of displaying it, however, right from
the beginning, which is why I made this request. The special self-insert
gets called inside `completing-read', upon insertion, but I see no way to
get `completing-read' to display *Completions* without any user action.
next prev parent reply other threads:[~2005-11-11 17:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-11 1:30 completion-auto-help Drew Adams
2005-11-11 4:55 ` completion-auto-help Stefan Monnier
2005-11-11 17:47 ` Drew Adams [this message]
2005-11-11 18:39 ` completion-auto-help Drew Adams
2005-11-11 19:10 ` completion-auto-help Stefan Monnier
2005-11-11 19:32 ` completion-auto-help Drew Adams
2005-11-11 21:53 ` completion-auto-help Drew Adams
2005-11-11 22:43 ` completion-auto-help Drew Adams
2005-11-13 20:42 ` completion-auto-help Stefan Monnier
2005-11-13 21:06 ` completion-auto-help Drew Adams
2005-11-13 23:09 ` completion-auto-help Stefan Monnier
2005-11-13 23:40 ` completion-auto-help Drew Adams
2005-11-19 12:10 ` completion-auto-help Eli Zaretskii
2005-11-20 23:23 ` completion-auto-help Richard M. Stallman
2005-11-26 11:20 ` completion-auto-help Eli Zaretskii
2005-11-12 3:38 ` completion-auto-help Richard M. 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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DNEMKBNJBGPAOPIJOOICMEKHCOAA.drew.adams@oracle.com \
--to=drew.adams@oracle.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).