]> git.eshelyaron.com Git - emacs.git/commitdiff
Use defvar-keymap for some trivial keymaps
authorStefan Kangas <stefankangas@gmail.com>
Sat, 15 Mar 2025 12:39:45 +0000 (13:39 +0100)
committerEshel Yaron <me@eshelyaron.com>
Sun, 16 Mar 2025 16:37:56 +0000 (17:37 +0100)
* lisp/bindings.el (mode-line-window-dedicated-keymap)
(mode-line-buffer-identification-keymap):
* lisp/emulation/cua-rect.el (cua--overlay-keymap, cua--overlay-key):
* lisp/mh-e/mh-mime.el (mh-mime-security-button-map):
* lisp/mh-e/mh-utils.el (mh-hidden-header-keymap):
* lisp/net/eudc-bob.el (eudc-bob-generic-keymap, eudc-bob-image-keymap)
(eudc-bob-sound-keymap, eudc-bob-url-keymap, eudc-bob-mail-keymap):
* lisp/progmodes/etags-regen.el (etags-regen-mode-map):
* lisp/progmodes/octave.el (octave-help-mode-map):
* lisp/replace.el (multi-query-replace-map):
* lisp/simple.el (process-menu-mode-map, messages-buffer-mode-map):
* lisp/startup.el (splash-screen-keymap):
* lisp/tab-bar.el (tab-bar-mode-map):
* lisp/textmodes/ispell.el (ispell-minor-keymap):
* lisp/textmodes/tex-mode.el (latex-mode-map, plain-tex-mode-map):
* lisp/tree-widget.el (tree-widget-button-keymap):
* lisp/vc/vc-hooks.el (vc-mode-line-map): Use defvar-keymap.

(cherry picked from commit d8d524071d78d6499278546cf13ae261c05cadf3)

13 files changed:
lisp/bindings.el
lisp/emulation/cua-rect.el
lisp/net/eudc-bob.el
lisp/progmodes/etags-regen.el
lisp/progmodes/octave.el
lisp/replace.el
lisp/simple.el
lisp/startup.el
lisp/tab-bar.el
lisp/textmodes/ispell.el
lisp/textmodes/tex-mode.el
lisp/tree-widget.el
lisp/vc/vc-hooks.el

index c7d7bdd607cef3d1810f9c6fd268ddb7e7492851..845ff1b24dfde36083bc8bbf4ec6df10a05c199a 100644 (file)
@@ -300,11 +300,9 @@ Value is used for `mode-line-frame-identification', which see."
 ;;;###autoload
 (put 'mode-line-frame-identification 'risky-local-variable t)
 
-(defvar mode-line-window-dedicated-keymap
-  (let ((map (make-sparse-keymap)))
-    (define-key map [mode-line mouse-1] #'toggle-window-dedicated)
-    map)
-  "Keymap for what is displayed by `mode-line-window-dedicated'.")
+(defvar-keymap mode-line-window-dedicated-keymap
+  :doc "Keymap for what is displayed by `mode-line-window-dedicated'."
+  "<mode-line> <mouse-1>" #'toggle-window-dedicated)
 
 (defun mode-line-window-control ()
   "Compute mode line construct for window dedicated state.
@@ -625,20 +623,18 @@ Normally displays the buffer percentage and, optionally, the
 buffer size, the line number and the column number.")
 (put 'mode-line-position 'risky-local-variable t)
 
-(defvar mode-line-buffer-identification-keymap
+(defvar-keymap mode-line-buffer-identification-keymap
+  :doc "Keymap for what is displayed by `mode-line-buffer-identification'."
   ;; Add menu of buffer operations to the buffer identification part
   ;; of the mode line.or header line.
-  (let ((map (make-sparse-keymap)))
-    ;; Bind down- events so that the global keymap won't ``shine
-    ;; through''.
-    (define-key map [mode-line mouse-1] 'mode-line-previous-buffer)
-    (define-key map [header-line down-mouse-1] 'ignore)
-    (define-key map [header-line mouse-1] 'mode-line-previous-buffer)
-    (define-key map [mode-line mouse-3] 'mode-line-next-buffer)
-    (define-key map [header-line down-mouse-3] 'ignore)
-    (define-key map [header-line mouse-3] 'mode-line-next-buffer)
-    map) "\
-Keymap for what is displayed by `mode-line-buffer-identification'.")
+  ;; Bind down- events so that the global keymap won't ``shine
+  ;; through''.
+  "<mode-line> <mouse-1>"        #'mode-line-previous-buffer
+  "<header-line> <down-mouse-1>" #'ignore
+  "<header-line> <mouse-1>"      #'mode-line-previous-buffer
+  "<mode-line> <mouse-3>"        #'mode-line-next-buffer
+  "<header-line> <down-mouse-3>" #'ignore
+  "<header-line> <mouse-3>"      #'mode-line-next-buffer)
 
 (defun propertized-buffer-identification (fmt)
   "Return a list suitable for `mode-line-buffer-identification'.
index 7783d18f6e4ca3482733a496a5bfdbbdb480d75c..b7e01324ce485a7258a5024a8b78066901f98fc9 100644 (file)
@@ -88,9 +88,8 @@ See `cua--rectangle'.")
   "List of overlays used to display current rectangle.")
 (put 'cua--rectangle-overlays 'permanent-local t)
 
-(defvar cua--overlay-keymap
-  (let ((map (make-sparse-keymap)))
-    (define-key map "\r" #'cua-rotate-rectangle)))
+(defvar-keymap cua--overlay-keymap
+  "RET" #'cua-rotate-rectangle)
 
 (defvar cua--virtual-edges-debug nil)
 
index b7289868625993c46351f7ffc467f749bf051481..58a3e02430d5a128e2f57a142e220e79c9ab8981 100644 (file)
 
 (require 'eudc)
 
-(defvar eudc-bob-generic-keymap
-  (let ((map (make-sparse-keymap)))
-    (define-key map "s" #'eudc-bob-save-object)
-    (define-key map "!" #'eudc-bob-pipe-object-to-external-program)
-    (define-key map [down-mouse-3] #'eudc-bob-popup-menu)
-    map)
-  "Keymap for multimedia objects.")
-
-(defvar eudc-bob-image-keymap
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map eudc-bob-generic-keymap)
-    (define-key map "t" #'eudc-bob-toggle-inline-display)
-    map)
-  "Keymap for inline images.")
-
-(defvar eudc-bob-sound-keymap
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map eudc-bob-generic-keymap)
-    (define-key map (kbd "RET") #'eudc-bob-play-sound-at-point)
-    (define-key map [down-mouse-2] #'eudc-bob-play-sound-at-mouse)
-    map)
-  "Keymap for inline sounds.")
-
-(defvar eudc-bob-url-keymap
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "RET") #'browse-url-at-point)
-    (define-key map [down-mouse-2] #'browse-url-at-mouse)
-    map)
-  "Keymap for inline urls.")
-
-(defvar eudc-bob-mail-keymap
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "RET") #'goto-address-at-point)
-    (define-key map [down-mouse-2] #'goto-address-at-point)
-    map)
-  "Keymap for inline e-mail addresses.")
+(defvar-keymap eudc-bob-generic-keymap
+  :doc "Keymap for multimedia objects."
+  "s" #'eudc-bob-save-object
+  "!" #'eudc-bob-pipe-object-to-external-program
+  "<down-mouse-3>" #'eudc-bob-popup-menu)
+
+(defvar-keymap eudc-bob-image-keymap
+  :doc "Keymap for inline images."
+  :parent eudc-bob-generic-keymap
+  "t" #'eudc-bob-toggle-inline-display)
+
+(defvar-keymap eudc-bob-sound-keymap
+  :doc "Keymap for inline sounds."
+  :parent eudc-bob-generic-keymap
+  "RET" #'eudc-bob-play-sound-at-point
+  "<down-mouse-2>" #'eudc-bob-play-sound-at-mouse)
+
+(defvar-keymap eudc-bob-url-keymap
+  :doc "Keymap for inline urls."
+  "RET" #'browse-url-at-point
+  "<down-mouse-2>" #'browse-url-at-mouse)
+
+(defvar-keymap eudc-bob-mail-keymap
+  :doc "Keymap for inline e-mail addresses."
+  "RET" #'goto-address-at-point
+  "<down-mouse-2>" #'goto-address-at-point)
 
 (defvar eudc-bob-generic-menu
   '("EUDC Binary Object Menu"
index 7994303284be0f68e7c150f115aea3e8895cd726..cde82956c24980ce9cb59577097743bf905f986f 100644 (file)
@@ -409,7 +409,7 @@ File extensions to generate the tags for."
   (remove-hook 'after-save-hook #'etags-regen--update-file)
   (remove-hook 'before-save-hook #'etags-regen--mark-as-new))
 
-(defvar etags-regen-mode-map (make-sparse-keymap))
+(defvar-keymap etags-regen-mode-map)
 
 ;;;###autoload
 (define-minor-mode etags-regen-mode
index 7b101b702df931da5bf2bdd43d3cf40260dbb97e..85cdac466267ffebdc5532afc4f1b08ebce6ad42 100644 (file)
@@ -1660,12 +1660,10 @@ code line."
   'follow-link t
   'action (compf octave-help button-label))
 
-(defvar octave-help-mode-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map "\M-."  'octave-find-definition)
-    (define-key map "\C-hd" 'octave-help)
-    (define-key map "\C-ha" 'octave-lookfor)
-    map))
+(defvar-keymap octave-help-mode-map
+  "M-."   #'octave-find-definition
+  "C-h d" #'octave-help
+  "C-h a" #'octave-lookfor)
 
 (define-derived-mode octave-help-mode help-mode "OctHelp"
   "Major mode for displaying Octave documentation."
index 1d9a884e577ec58cdef9217562331cc63b0364f1..73c3b523382add90d7b1903d4d23bad68c4474ed 100644 (file)
@@ -2514,19 +2514,17 @@ The valid answers include `act', `skip', `act-and-show',
 
 This keymap is used by `y-or-n-p' as well as `query-replace'.")
 
-(defvar multi-query-replace-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map query-replace-map)
-    (define-key map "Y" 'automatic-all)
-    (define-key map "N" 'exit-current)
-    map)
-  "Keymap that defines additional bindings for multi-buffer replacements.
+(defvar-keymap multi-query-replace-map
+  :doc "Keymap that defines additional bindings for multi-buffer replacements.
 It extends its parent map `query-replace-map' with new bindings to
 operate on a set of buffers/files.  The difference with its parent map
 is the additional answers `automatic-all' to replace all remaining
 matches in all remaining buffers with no more questions, and
 `exit-current' to skip remaining matches in the current buffer
-and to continue with the next buffer in the sequence.")
+and to continue with the next buffer in the sequence."
+  :parent query-replace-map
+  "Y" 'automatic-all
+  "N" 'exit-current)
 
 (defun replace-match-string-symbols (n)
   "Process a list (and any sub-lists), expanding certain symbols.
index c7a8d24a70cd9aa1c14f914071444e12fc8a780f..a872cbe54a3c690b1b6ed254ce35b6bd5c35c8f9 100644 (file)
@@ -5116,10 +5116,8 @@ File name handlers might not support pty association, if PROGRAM is nil."
 
 (defvar process-menu-query-only nil)
 
-(defvar process-menu-mode-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map [?d] 'process-menu-delete-process)
-    map))
+(defvar-keymap process-menu-mode-map
+  "d" #'process-menu-delete-process)
 
 (define-derived-mode process-menu-mode tabulated-list-mode "Process Menu"
   "Major mode for listing the processes called by Emacs."
@@ -10673,11 +10671,9 @@ and setting it to nil."
     (setq buffer-invisibility-spec nil)))
 
 \f
-(defvar messages-buffer-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map special-mode-map)
-    (define-key map "g" nil)            ; nothing to revert
-    map))
+(defvar-keymap messages-buffer-mode-map
+  :parent special-mode-map
+  "g" nil) ; nothing to revert
 
 (define-derived-mode messages-buffer-mode special-mode "Messages"
   "Major mode used in the \"*Messages*\" buffer."
index b277db9d8becd5c0baca7dbf55350b647e1f8c3c..c472f8a2f639f7cbf808139cda57b78e1212496b 100644 (file)
@@ -1864,16 +1864,13 @@ Each element in the list should be a list of strings or pairs
                 (file :tag "File")))
 
 
-(defvar splash-screen-keymap
-  (let ((map (make-sparse-keymap)))
-    (suppress-keymap map)
-    (set-keymap-parent map button-buffer-map)
-    (define-key map "\C-?" #'scroll-down-command)
-    (define-key map [?\S-\ ] #'scroll-down-command)
-    (define-key map " " #'scroll-up-command)
-    (define-key map "q" #'exit-splash-screen)
-    map)
-  "Keymap for splash screen buffer.")
+(defvar-keymap splash-screen-keymap
+  :doc "Keymap for splash screen buffer."
+  :suppress t :parent button-buffer-map
+  "DEL"   #'scroll-down-command
+  "S-SPC" #'scroll-down-command
+  "SPC"   #'scroll-up-command
+  "q"     #'exit-splash-screen)
 
 ;; These are temporary storage areas for the splash screen display.
 
index 44184682901eb49df0d0fcbddef6d85f19be7b51..3050da03479494ce212a6146659c5e779e12b303 100644 (file)
@@ -97,8 +97,8 @@
 
 \f
 
-(defvar tab-bar-mode-map (make-sparse-keymap)
-  "Tab Bar mode map.")
+(defvar-keymap tab-bar-mode-map
+  :doc "Tab Bar mode map.")
 
 (defcustom tab-bar-define-keys t
   "Define specified tab-bar key bindings.
index 5640aa93efa1614675a7e50f0c6e7c3faf43b91f..532b7906704f54caa73158794451a110b6336163 100644 (file)
@@ -3697,12 +3697,10 @@ available on the net."
 ;;;                    Ispell Minor Mode
 ;;; **********************************************************************
 
-(defvar ispell-minor-keymap
-  (let ((map (make-sparse-keymap)))
-    (define-key map " " 'ispell-minor-check)
-    (define-key map "\r" 'ispell-minor-check)
-    map)
-  "Keymap used for Ispell minor mode.")
+(defvar-keymap ispell-minor-keymap
+  :doc "Keymap used for Ispell minor mode."
+  "SPC" #'ispell-minor-check
+  "RET" #'ispell-minor-check)
 
 ;;;###autoload
 (define-minor-mode ispell-minor-mode
index f4af1441d1dd4318556484959c0bfa9e3c07395e..ea318db977936ad42e152bc5e3400224651c95e2 100644 (file)
@@ -892,18 +892,14 @@ START is the position of the \\ and DELIM is the delimiter char."
     map)
  "Keymap shared by TeX modes.")
 
-(defvar latex-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map tex-mode-map)
-    (define-key map "\C-c\C-s" #'latex-split-block)
-    map)
-  "Keymap for `latex-mode'.  See also `tex-mode-map'.")
-
-(defvar plain-tex-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map tex-mode-map)
-    map)
-  "Keymap for `plain-tex-mode'.  See also `tex-mode-map'.")
+(defvar-keymap latex-mode-map
+  :doc "Keymap for `latex-mode'.  See also `tex-mode-map'."
+  :parent tex-mode-map
+  "C-c C-s" #'latex-split-block)
+
+(defvar-keymap plain-tex-mode-map
+  :doc "Keymap for `plain-tex-mode'.  See also `tex-mode-map'."
+  :parent tex-mode-map)
 
 (defvar tex-shell-map
   (let ((m (make-sparse-keymap)))
index 3b20d795ea8de181f1233111950d901fc82f96da..d958bd0e96d66b11ba8a893c8c38dbbca65657ed 100644 (file)
@@ -392,13 +392,11 @@ EVENT is the mouse event received."
     (if (get-char-property pos 'button)
         (widget-button-click event))))
 
-(defvar tree-widget-button-keymap
-  (let ((km (make-sparse-keymap)))
-    (set-keymap-parent km widget-keymap)
-    (define-key km [down-mouse-1] 'tree-widget-button-click)
-    km)
-  "Keymap used inside node buttons.
-Handle mouse button 1 click on buttons.")
+(defvar-keymap tree-widget-button-keymap
+  :doc "Keymap used inside node buttons.
+Handle mouse button 1 click on buttons."
+  :parent widget-keymap
+  "<down-mouse-1>" #'tree-widget-button-click)
 
 (define-widget 'tree-widget-icon 'push-button
   "Basic widget other tree-widget icons are derived from."
index 7fd15bb1331db257a063e81ee6607fd4c025a782..401ccb066e0bfbd455cef9fd1267e81121adfdc9 100644 (file)
@@ -694,10 +694,8 @@ Before doing that, check if there are any old backups and get rid of them."
   ;; and this will simply use it.
   (define-key menu-bar-tools-menu [vc] vc-menu-entry))
 
-(defconst vc-mode-line-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map [mode-line down-mouse-1] vc-menu-entry)
-    map))
+(defvar-keymap vc-mode-line-map
+  "<mode-line> <down-mouse-1>" vc-menu-entry)
 
 (defun vc-mode-line (file &optional backend)
   "Set `vc-mode' to display type of version control for FILE.