From: Juri Linkov <juri@linkov.net>
To: Drew Adams <drew.adams@oracle.com>
Cc: Eli Zaretskii <eliz@gnu.org>,
"64656@debbugs.gnu.org" <64656@debbugs.gnu.org>,
Stefan Monnier <monnier@iro.umontreal.ca>
Subject: bug#64656: 29.0.91; Doc of minibuffer histories and completing-read - automatic addition of completions to DEFAULT list
Date: Tue, 14 Nov 2023 09:30:30 +0200 [thread overview]
Message-ID: <86v8a4kfio.fsf@mail.linkov.net> (raw)
In-Reply-To: <SJ0PR10MB5488ED1F15F50CD3C666963AF3B3A@SJ0PR10MB5488.namprd10.prod.outlook.com> (Drew Adams's message of "Mon, 13 Nov 2023 18:14:12 +0000")
>> > The problem reported by this bug report is that the order is random by
>> > `C-h v M-n M-n' because it uses obarray.
>
> No. That is NOT the problem reported. The problem
> reported is:
>
> 1. Initial completions are added to `M-n' automatically,
> instead of just by a user adding them explicitly to
> DEFAULTS.
>
> 2. Given that BUG, _IF_ it won't be fixed, then the doc
> should at least make users aware of it and mention
> how to work around it.
>
> Fixing #1 is preferable. Fixing #2 is minimal damage
> control, IF you won't fix #1.
#1 can be fixed only partially for some popular obarray completions.
So here is a patch that fixes #1 partially and #2 completely.
diff --git a/lisp/simple.el b/lisp/simple.el
index f86b3f9e208..02005e3b4f9 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2989,11 +2989,17 @@ minibuffer-default-add-done
(defun minibuffer-default-add-completions ()
"Return a list of all completions without the default value.
This function is used to add all elements of the completion table to
-the end of the list of defaults just after the default value."
+the end of the list of defaults just after the default value.
+When you don't want to add initial completions to the default value,
+you can use either `minibuffer-setup-hook' or `minibuffer-with-setup-hook'
+to set the value of `minibuffer-default-add-function' to nil."
(let ((def minibuffer-default)
- (all (all-completions ""
- minibuffer-completion-table
- minibuffer-completion-predicate)))
+ ;; Avoid some popular completions with undefined order
+ (all (unless (memq minibuffer-completion-table
+ `(help--symbol-completion-table ,obarray))
+ (all-completions ""
+ minibuffer-completion-table
+ minibuffer-completion-predicate))))
(if (listp def)
(append def all)
(cons def (delete def all)))))
next prev parent reply other threads:[~2023-11-14 7:30 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-15 23:35 bug#64656: 29.0.91; Doc of minibuffer histories and completing-read - automatic addition of completions to DEFAULT list Drew Adams
2023-07-16 5:24 ` Eli Zaretskii
2023-07-16 14:34 ` Drew Adams
2023-07-16 14:58 ` Eli Zaretskii
2023-07-18 20:27 ` Drew Adams
2023-07-19 6:35 ` Juri Linkov
2023-07-19 17:23 ` Drew Adams
2023-10-20 6:47 ` Juri Linkov
2023-10-20 16:48 ` Drew Adams
2023-10-29 18:29 ` Juri Linkov
2023-10-29 22:15 ` Drew Adams
2023-10-30 7:44 ` Juri Linkov
2023-11-13 18:14 ` Drew Adams
2023-11-14 5:57 ` Thierry Volpiatto
2023-11-14 7:28 ` Juri Linkov
2023-11-05 18:11 ` Juri Linkov
2023-11-06 7:28 ` Juri Linkov
2023-11-09 16:34 ` Juri Linkov
2023-11-09 16:48 ` Eli Zaretskii
2023-11-09 17:03 ` Juri Linkov
2023-11-09 19:31 ` Eli Zaretskii
2023-11-10 7:45 ` Juri Linkov
2023-11-10 8:15 ` Eli Zaretskii
2023-11-12 8:13 ` Juri Linkov
2023-11-13 17:17 ` Juri Linkov
2023-11-13 18:14 ` Drew Adams
2023-11-14 7:30 ` Juri Linkov [this message]
2023-11-15 17:52 ` Juri Linkov
2023-11-10 19:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-20 6:19 ` Eli Zaretskii
2023-07-20 16:45 ` Drew Adams
2023-07-22 8:07 ` Eli Zaretskii
2023-07-16 13:40 ` Drew Adams
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=86v8a4kfio.fsf@mail.linkov.net \
--to=juri@linkov.net \
--cc=64656@debbugs.gnu.org \
--cc=drew.adams@oracle.com \
--cc=eliz@gnu.org \
--cc=monnier@iro.umontreal.ca \
/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.