]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/simple.el (minibuffer-default-add-completions): Improve (bug#64656).
authorJuri Linkov <juri@linkov.net>
Wed, 15 Nov 2023 17:52:10 +0000 (19:52 +0200)
committerJuri Linkov <juri@linkov.net>
Wed, 15 Nov 2023 17:52:10 +0000 (19:52 +0200)
Return nil for some popular completions with undefined order that include
obarray.  Extend the docstring to explain how to disable this feature.

lisp/simple.el

index f86b3f9e208c78a2735f5e5db4618863d1e8de45..02005e3b4f9a83fba045cec81c3847e5beaeeac7 100644 (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)))))