[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 1c10517: * lisp/bindings.el (bindings--sort-menu-keymap): Add "me
From: |
Stefan Monnier |
Subject: |
master 1c10517: * lisp/bindings.el (bindings--sort-menu-keymap): Add "menu" in its name |
Date: |
Thu, 24 Jun 2021 17:35:03 -0400 (EDT) |
branch: master
commit 1c10517f01d8c849aee6c1d203a890ee7a1c4393
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/bindings.el (bindings--sort-menu-keymap): Add "menu" in its name
(bindings--menu-item-string): Use `pcase`.
---
lisp/bindings.el | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/lisp/bindings.el b/lisp/bindings.el
index d63783a..6dce358 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -332,15 +332,11 @@ Menu of mode operations in the mode line.")
(defun bindings--menu-item-string (item)
"Return the menu-item string for ITEM, or nil if not a menu-item."
- (cond
- ((not (consp item)) nil) ; Not a menu-item.
- ((eq 'menu-item (car item))
- (eval (cadr item)))
- ((stringp (car item))
- (car item))
- (t nil))) ; Not a menu-item either.
-
-(defun bindings--sort-keymap (map)
+ (pcase item
+ (`(menu-item ,name . ,_) (eval name t))
+ (`(,(and (pred stringp) name) . ,_) name)))
+
+(defun bindings--sort-menu-keymap (map)
"Sort the bindings in MAP in alphabetical order by menu-item string.
The order of bindings in a keymap matters only when it is used as
a menu, so this function is not useful for non-menu keymaps."
@@ -368,7 +364,7 @@ a menu, so this function is not useful for non-menu
keymaps."
(define-key map [mode-line mouse-2] 'describe-mode)
(bindings--define-key map [mode-line down-mouse-3]
`(menu-item "Menu Bar" ,mode-line-mode-menu
- :filter bindings--sort-keymap))
+ :filter bindings--sort-menu-keymap))
map) "\
Keymap to display on major mode.")
@@ -376,7 +372,7 @@ Keymap to display on major mode.")
(let ((map (make-sparse-keymap))
(mode-menu-binding
`(menu-item "Menu Bar" ,mode-line-mode-menu
- :filter bindings--sort-keymap)))
+ :filter bindings--sort-menu-keymap)))
(define-key map [mode-line down-mouse-1] 'mouse-minor-mode-menu)
(define-key map [mode-line mouse-2] 'mode-line-minor-mode-help)
(define-key map [mode-line down-mouse-3] mode-menu-binding)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 1c10517: * lisp/bindings.el (bindings--sort-menu-keymap): Add "menu" in its name,
Stefan Monnier <=