]> git.eshelyaron.com Git - emacs.git/commitdiff
New command 'minibuffer-toggle-completions-annotations'
authorEshel Yaron <me@eshelyaron.com>
Mon, 18 Mar 2024 08:08:11 +0000 (09:08 +0100)
committerEshel Yaron <me@eshelyaron.com>
Mon, 18 Mar 2024 08:08:11 +0000 (09:08 +0100)
lisp/minibuffer.el

index ec2411da0090dbfc8111eac7e42d1d26eb0c5580..27351ad56da629ec53d4b96a081f5b472dd305e0 100644 (file)
@@ -2957,6 +2957,11 @@ completions list."
   "Record STRING and BASE for `minibuffer-restore-completion-input'."
   (setq completion--input (cons string base)))
 
+(defcustom minibuffer-completion-annotations t
+  "Whether to display annotations for completion candidates."
+  :type 'boolean
+  :version "30.1")
+
 (defun minibuffer-completion-help (&optional start end)
   "Display a list of possible completions of the current minibuffer contents."
   (interactive)
@@ -3099,16 +3104,17 @@ completions list."
                    (_ completions-group-sort))
                  completions)))
 
-        (cond
-         (aff-fun
-          (setq completions
-                (funcall aff-fun completions)))
-         (ann-fun
-          (setq completions
-                (mapcar (lambda (s)
-                          (let ((ann (funcall ann-fun s)))
-                            (if ann (list s ann) s)))
-                        completions))))
+        (when minibuffer-completion-annotations
+          (cond
+           (aff-fun
+            (setq completions
+                  (funcall aff-fun completions)))
+           (ann-fun
+            (setq completions
+                  (mapcar (lambda (s)
+                            (let ((ann (funcall ann-fun s)))
+                              (if ann (list s ann) s)))
+                          completions)))))
         (setq minibuffer-scroll-window
               (let ((standard-output (get-buffer-create "*Completions*")))
                 (completions-display
@@ -3597,6 +3603,7 @@ The completion method is determined by `completion-at-point-functions'."
   "C-x n"     'minibuffer-narrow-completions-map
   "C-x /"     #'minibuffer-set-completion-styles
   "C-x ~"     #'minibuffer-toggle-exceptional-candidates
+  "C-x C-a"   #'minibuffer-toggle-completions-annotations
   "C-j"       #'minibuffer-apply
   "C-p"       #'minibuffer-previous-line-or-completion
   "C-n"       #'minibuffer-next-line-or-completion
@@ -5801,6 +5808,13 @@ members of the minibuffer history list."
                       (if completions-exclude-exceptional-candidates
                           "ex" "in")))
 
+(defun minibuffer-toggle-completions-annotations ()
+  "Toggle display of annotations for completion candidates."
+  (interactive nil minibuffer-mode)
+  (setq-local minibuffer-completion-annotations
+              (not minibuffer-completion-annotations))
+  (when (get-buffer-window "*Completions*" 0) (minibuffer-completion-help)))
+
 (defun minibuffer-widen-completions (&optional all)
   "Remove restrictions on current minibuffer completions list.