* lisp/simple.el (minibuffer-default-add-completions): Improve (bug#64656).

Return nil for some popular completions with undefined order that include
obarray.  Extend the docstring to explain how to disable this feature.
This commit is contained in:
Juri Linkov 2023-11-15 19:52:10 +02:00
parent 94763aa521
commit ff1f82cbe3

View file

@ -2989,11 +2989,17 @@ this by calling a function defined by `minibuffer-default-add-function'.")
(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)))))