emacs-devel
[Top][All Lists]
Advanced

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

Re: select yank via completion


From: Stefan Monnier
Subject: Re: select yank via completion
Date: Fri, 20 Nov 2020 09:23:31 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

> So now a new patch let-binds (minibuffer-completing-file-name t)
> around completing-read to allow inserting SPC, problem solved:

Please don't, since we're not actually completing file names.

I agree with Drew that we should probably just get rid of the SPC
binding in minibuffer completions, but until we do that you'll need

    (minibuffer-with-setup-hook
        (lambda ()
          (use-local-map
           (let ((map (make-sparse-keymap)))
             (set-keymap-parent map (current-local-map))
             (define-key map " " nil)
             map)))
      ...)

or something similar.  We could/should arguably introduce some easier
way to do that.  Maybe something like the patch below so you can just do

    (minibuffer-with-setup-hook
        (lambda () (setq-local minibuffer-SPC-completes nil))
      ...)

??


        Stefan


diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 9d57a817b2..20df9665a2 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -2342,6 +2342,8 @@ completion-help-at-point
   (define-key map "\r" 'exit-minibuffer)
   (define-key map "\n" 'exit-minibuffer))
 
+(defvar minibuffer-SPC-completes t)
+
 (defvar minibuffer-local-completion-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map minibuffer-local-map)
@@ -2349,7 +2351,9 @@ minibuffer-local-completion-map
     ;; M-TAB is already abused for many other purposes, so we should find
     ;; another binding for it.
     ;; (define-key map "\e\t" 'minibuffer-force-complete)
-    (define-key map " " 'minibuffer-complete-word)
+    (define-key map " "
+      `(menu-item "" minibuffer-complete-word
+                  :filter ,(lambda (cmd) (if minibuffer-SPC-completes cmd))))
     (define-key map "?" 'minibuffer-completion-help)
     (define-key map [prior] 'switch-to-completions)
     (define-key map "\M-v"  'switch-to-completions)




reply via email to

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