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

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

bug#45474: Icomplete exhibiting in recursive minibuffer when it shouldn’


From: Gregory Heytings
Subject: bug#45474: Icomplete exhibiting in recursive minibuffer when it shouldn’t
Date: Thu, 15 Apr 2021 22:34:11 +0000


If the M-: is not in a recursive minibuffer, everything is OK since icomplete-simple-completing-p returns nil.

Indeed; patch attached. Ideally this should be done inside icomplete-minibuffer-setup, but if we did this (by checking minibuffer-completing-symbol), it would prevent icomplete-mode from being active in the opposite situation: M-: followed by C-x C-f.

@@ -1754,7 +1754,9 @@ read--expression
           (set-syntax-table emacs-lisp-mode-syntax-table)
           (add-hook 'completion-at-point-functions
                     #'elisp-completion-at-point nil t)
-          (run-hooks 'eval-expression-minibuffer-setup-hook))
+          (run-hooks 'eval-expression-minibuffer-setup-hook)
+          ;; if we enter a recursive minibuffer, disable icomplete (bug#45474)
+          (setq-local icomplete-mode nil))

Is this really specific only to read--expression? I can reproduce the same issue with any command that doesn't use completion, e.g. C-x C-f C-x f.


Indeed, but the bug report was only about read-expression. It's far more annoying to see completion candidates when you want to type a complete expression than when you just have to enter a short argument.

Anyway, given that you asked for it, here's a more general solution. I did not check all places where read-from-minibuffer is used, but adapting them is straightforward.

Attachment: Make-it-possible-to-disable-icomplete-mode-in-recurs.patch
Description: Text Data


reply via email to

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