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

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

[elpa] externals/marginalia 6567947 050/241: marginalia-annotate-command


From: Stefan Monnier
Subject: [elpa] externals/marginalia 6567947 050/241: marginalia-annotate-command-binding: use a hash table per buffer
Date: Fri, 28 May 2021 20:48:54 -0400 (EDT)

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

    marginalia-annotate-command-binding: use a hash table per buffer
---
 marginalia.el | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/marginalia.el b/marginalia.el
index 5122740..78f4007 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -217,18 +217,20 @@ determine it."
   "Truncate string STR to WIDTH."
   (truncate-string-to-width (car (split-string str "\n")) width 0 32 "…"))
 
-(defvar marginalia-annotate-command-binding--init nil)
+(defvar-local marginalia-annotate-command-binding--hash nil)
 (defun marginalia-annotate-command-binding (cand)
   "Annotate command CAND with keybinding."
-  (unless marginalia-annotate-command-binding--init
-    (setq marginalia-annotate-command-binding--init t)
-    (cl-do-all-symbols (sym)
-      (when (commandp sym)
-        (when-let (key (where-is-internal sym nil t))
-          (put sym 'marginalia--cached-binding
-               (propertize (format " (%s)" (key-description key))
-                           'face 'marginalia-key))))))
-  (get (intern cand) 'marginalia--cached-binding))
+  (with-current-buffer (window-buffer (minibuffer-selected-window))
+    (unless marginalia-annotate-command-binding--hash
+      (setq marginalia-annotate-command-binding--hash (make-hash-table))
+      (cl-do-all-symbols (sym)
+        (when (commandp sym)
+          (when-let (key (where-is-internal sym nil t))
+            (puthash sym
+                     (propertize (format " (%s)" (key-description key))
+                                 'face 'marginalia-key)
+                     marginalia-annotate-command-binding--hash)))))
+    (gethash (intern cand) marginalia-annotate-command-binding--hash)))
 
 (defun marginalia-annotate-command-full (cand)
   "Annotate command CAND with the keybinding and its documentation string."



reply via email to

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