bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#65459: completing-read INITIAL-VALUE unaware of COLLECTION and REQUI


From: Gregory Heytings
Subject: bug#65459: completing-read INITIAL-VALUE unaware of COLLECTION and REQUIRE-MATCH
Date: Thu, 24 Aug 2023 12:30:51 +0000


(defun my-completing-read (prompt collection start)
  (minibuffer-with-setup-hook
      (:append
       (lambda ()
         (setq-local actual-minibuffer-default-add-function
                     minibuffer-default-add-function)
         (setq-local minibuffer-default-add-function
                     '(lambda () (setq minibuffer-default-add-done nil)
                        (funcall actual-minibuffer-default-add-function)))

Why use ' on `lambda`?


I think my finger slipped.


BTW, rather than the above two `setq-local`s, I think you can write:

   (add-function :before (local 'minibuffer-default-add-function)
                 (lambda () (setq minibuffer-default-add-done nil)))


Right. I was writing that function as it if were for minibuffer.el, and was therefore avoiding advices. But now I see that there are a couple of add-function in core anyway (it's not clear to me where the dividing line is). So here's the final version:

(defun my-completing-read (prompt collection start)
  (minibuffer-with-setup-hook
      (:append
       (lambda ()
         (add-function :before (local 'minibuffer-default-add-function)
                       (lambda () (setq minibuffer-default-add-done nil)))
         (next-history-element start)
         (move-end-of-line nil)))
    (completing-read (format-prompt prompt nil) collection nil t)))

(my-completing-read "Grapheme" '("alpha" "beta" "gamma" "delta" "epsilon" "zeta" 
"eta") 1)

Heime, can you try that and tell us if it solves your problem?






reply via email to

[Prev in Thread] Current Thread [Next in Thread]