emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/marginalia f16d26a 082/241: marginalia-annotate-symbol:


From: Stefan Monnier
Subject: [elpa] externals/marginalia f16d26a 082/241: marginalia-annotate-symbol: add keybindings to commands
Date: Fri, 28 May 2021 20:49:01 -0400 (EDT)

branch: externals/marginalia
commit f16d26a17bb93684dd0f099db6dc0400a743dcc3
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    marginalia-annotate-symbol: add keybindings to commands
---
 marginalia.el | 42 +++++++++++++++++++-----------------------
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/marginalia.el b/marginalia.el
index 5e75b8d..48c2a8c 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -143,7 +143,7 @@ only with the annotations that come with Emacs) without 
disabling
   :group 'marginalia)
 
 (defcustom marginalia-annotators-light
-  '((command . marginalia-annotate-command-binding)
+  '((command . marginalia-annotate-command)
     (customize-group . marginalia-annotate-customize-group)
     (variable . marginalia-annotate-variable)
     (face . marginalia-annotate-face)
@@ -169,7 +169,7 @@ See also `marginalia-annotators-heavy'."
    '((file . marginalia-annotate-file)
      (buffer . marginalia-annotate-buffer)
      (virtual-buffer . marginalia-annotate-virtual-buffer-full)
-     (command . marginalia-annotate-command-full))
+     (command . marginalia-annotate-symbol))
    marginalia-annotators-light)
   "Heavy annotator functions.
 
@@ -277,32 +277,26 @@ WIDTH is the format width. This can be specified as 
alternative to FORMAT."
     (marginalia--fields
      (str :truncate marginalia-truncate-width :face 
'marginalia-documentation))))
 
-(defvar-local marginalia-annotate-command-binding--hash nil
+(defvar-local marginalia-annotate-command--hash nil
   "Hash table storing the keybinding of every command.
-This hash table is needed to speed up `marginalia-annotate-command-binding'.")
+This hash table is needed to speed up `marginalia-annotate-command'.")
 
-(defun marginalia-annotate-command-binding (cand)
+(defun marginalia-annotate-command (cand)
   "Annotate command CAND with keybinding."
   (with-current-buffer (window-buffer (minibuffer-selected-window))
     ;; Precomputing the keybinding of every command is faster than looking it 
up every time using
     ;; `where-is-internal'. `where-is-internal' generates a lot of garbage, 
leading to garbage
     ;; collecting pauses when interacting with the minibuffer. See
     ;; https://github.com/minad/marginalia/issues/16.
-    (unless marginalia-annotate-command-binding--hash
-      (setq marginalia-annotate-command-binding--hash (make-hash-table))
+    (unless marginalia-annotate-command--hash
+      (setq marginalia-annotate-command--hash (make-hash-table))
       (cl-do-all-symbols (sym)
         (when-let (key (and (commandp sym) (where-is-internal sym nil t)))
-          (puthash sym key marginalia-annotate-command-binding--hash))))
+          (puthash sym key marginalia-annotate-command--hash))))
     (when-let* ((sym (intern-soft cand))
-                (binding (gethash sym 
marginalia-annotate-command-binding--hash)))
+                (binding (gethash sym marginalia-annotate-command--hash)))
       (propertize (format " (%s)" (key-description binding)) 'face 
'marginalia-key))))
 
-(defun marginalia-annotate-command-full (cand)
-  "Annotate command CAND with the keybinding and its documentation string."
-  (concat
-   (marginalia-annotate-command-binding cand)
-   (marginalia-annotate-symbol cand)))
-
 ;; This annotator is consult-specific, it will annotate the `consult-buffer' 
command.
 (defun marginalia-annotate-virtual-buffer-class (cand)
   "Annotate virtual-buffer CAND with the buffer class."
@@ -341,14 +335,16 @@ This hash table is needed to speed up 
`marginalia-annotate-command-binding'.")
                     ((facep sym) (documentation-property sym 
'face-documentation))
                     (t (documentation-property sym 'variable-documentation)))
                    "")))
-      (marginalia--fields
-       ((if (and (fboundp sym) (string-match-p marginalia--advice-regexp doc))
-            "*" " ")
-        :face 'marginalia-modified)
-       ((if (fboundp sym)
-            (replace-regexp-in-string marginalia--advice-regexp "" doc)
-          doc)
-        :truncate marginalia-truncate-width :face 
'marginalia-documentation)))))
+      (concat
+       (marginalia-annotate-command cand)
+       (marginalia--fields
+        ((if (and (fboundp sym) (string-match-p marginalia--advice-regexp doc))
+             "*" " ")
+         :face 'marginalia-modified)
+        ((if (fboundp sym)
+             (replace-regexp-in-string marginalia--advice-regexp "" doc)
+           doc)
+         :truncate marginalia-truncate-width :face 
'marginalia-documentation))))))
 
 (defun marginalia-annotate-imenu (cand)
   "Annotate imenu CAND with its documentation string."



reply via email to

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