]> git.eshelyaron.com Git - emacs.git/commitdiff
Show entries from key-translation-map in which-key mode
authorRobert Pluim <rpluim@gmail.com>
Mon, 24 Jun 2024 13:09:00 +0000 (15:09 +0200)
committerEshel Yaron <me@eshelyaron.com>
Wed, 26 Jun 2024 13:31:27 +0000 (15:31 +0200)
* lisp/which-key.el (which-key-extra-keymaps): New user option.
(which-key--get-current-bindings): Consult it.

(Bug#71648)

(cherry picked from commit 7e8a97ac7885c1f0818a713e98bedd558293bb39)

lisp/which-key.el

index 91007ce4ada2c137758ee4be9b97988e2ff81b88..a5075b3ba6968b79b0b10a9d80994cc0aa02fe98 100644 (file)
@@ -233,6 +233,15 @@ you use this feature."
           (const :tag "Replace command name with docstring" docstring-only))
   :package-version "1.0" :version "30.1")
 
+(defcustom which-key-extra-keymaps '(key-translation-map)
+  "List of extra keymaps to show entries from.
+The default is to check `key-translation-map', which contains the
+\\='C-x 8' bindings for entering common characters."
+  :type '(choice (list :tag "Translation map" (const key-translation-map))
+                 (const :tag "None" nil)
+                 (repeat :tag "Custom" symbol))
+  :package-version "1.0" :version "30.1")
+
 (defcustom which-key-highlighted-command-list '()
   "Rules used to highlight certain commands.
 If the element is a string, assume it is a regexp pattern for
@@ -1942,8 +1951,10 @@ EVIL is non-nil, extract active evil bindings."
 
 (defun which-key--get-current-bindings (&optional prefix filter)
   "Generate a list of current active bindings."
-  (let (bindings)
-    (dolist (map (current-active-maps t) bindings)
+  (let (bindings
+        (maps (nconc (current-active-maps t)
+                     (mapcar #'symbol-value which-key-extra-keymaps))))
+    (dolist (map maps bindings)
       (when (cdr map)
         (setq bindings
               (which-key--get-keymap-bindings