bug#81537: 32.0.50; Fixing icomplete-in-buffer requiring users to advice-add
Juri Linkov <[email protected]> Wed, 05 Aug 2026 21:50:35 +0300
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Organization | LINKOV.NET |
| Message-ID | <[email protected]> |
> Is there some other way to do what I want that you might suggest? The simplest way to do this would be to use the new 'display-buffer-default-alist':
icomplete-in-buffer-no-window.patch
(text/x-diff, 1.7 KB)
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 9a1202c30af..84780f630ff 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -163,7 +163,9 @@ icomplete-in-buffer
(advice-add \\='completion-at-point
:after #\\='minibuffer-hide-completions)
"
- :type 'boolean)
+ :type '(choice (const :tag "Disable" nil)
+ (const :tag "Enable" t)
+ (const :tag "Enable without popup window" no-window)))
(defcustom icomplete-minibuffer-setup-hook nil
"Icomplete-specific customization of minibuffer setup.
@@ -635,6 +637,11 @@ icomplete--in-region-setup
(not (eq icomplete--in-region-buffer (current-buffer)))))
(with-current-buffer (or icomplete--in-region-buffer (current-buffer))
(setq icomplete--in-region-buffer nil)
+ (setq display-buffer-default-alist
+ (remove '(("\\*Completions\\*"
+ (display-buffer-no-window)
+ (allow-no-window . t)))
+ display-buffer-default-alist))
(delete-overlay icomplete-overlay)
(kill-local-variable 'completion-show-inline-help)
(remove-hook 'post-command-hook #'icomplete-post-command-hook t)
@@ -643,6 +650,12 @@ icomplete--in-region-setup
icomplete-mode (icomplete-simple-completing-p))
(setq icomplete--in-region-buffer (current-buffer))
(setq-local completion-show-inline-help nil)
+ (when (eq icomplete-in-buffer 'no-window)
+ (setq display-buffer-default-alist
+ (append '(("\\*Completions\\*"
+ (display-buffer-no-window)
+ (allow-no-window . t)))
+ display-buffer-default-alist)))
(let ((tem (assq 'completion-in-region-mode
minor-mode-overriding-map-alist)))
(unless (memq icomplete-minibuffer-map (cdr tem))