From: Eshel Yaron Date: Fri, 7 Jun 2024 18:55:59 +0000 (+0200) Subject: Add completions header line button for toggling annotations X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=154fdb0f7964e9bf036f376a6092464f5d4459a8;p=emacs.git Add completions header line button for toggling annotations --- diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index b0dff6f5f45..9c3a4637133 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -2284,6 +2284,7 @@ completions." (defvar-local completions-base-prefix nil) (defvar-local completions-candidates nil) +(defvar-local completions-annotations nil) (defvar-local completions-group-function nil) (defvar-local completions-category nil) (defvar-local completions-sort-function nil) @@ -2399,10 +2400,27 @@ completions." (minibuffer-toggle-exceptional-candidates)))) map))) +(defvar completions-header-annotations + `(:propertize (completions-annotations "@" "-") + mouse-face mode-line-highlight + help-echo "Toggle annotations" + keymap + ,(let ((map (make-sparse-keymap))) + (define-key map [header-line mouse-2] + (lambda (e) + (interactive "e") + (with-current-buffer + (buffer-local-value + 'completion-reference-buffer + (window-buffer (posn-window (event-end e)))) + (minibuffer-toggle-completions-annotations)))) + map))) + (defvar completions-header-extra nil) (dolist (sym '(completions-header-count completions-header-category + completions-header-annotations completions-header-order completions-header-restriction completions-header-action @@ -2423,6 +2441,7 @@ completions." completions-header-action completions-header-ignore-case completions-header-exceptional-candidates + completions-header-annotations (completions-header-extra (" | " completions-header-extra))) "Header line format of the *Completions* buffer.") @@ -3101,6 +3120,7 @@ completions list." :base-position base-position :base-prefix base-prefix :ignore-case completion-ignore-case + :annotations minibuffer-completion-annotations :insert-choice-function (let ((cprops completion-extra-properties)) (lambda (start end choice) @@ -3198,6 +3218,7 @@ PLIST is a property list with optional extra information about COMPLETIONS." completion-reference-buffer mainbuf completions-candidates completions completions-group-function group-fun + completions-annotations (plist-get plist :annotations) completions-style (plist-get plist :style) completion-base-position (plist-get plist :base-position) completions-base-prefix (plist-get plist :base-prefix)