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

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

[nongnu] elpa/git-commit 565818845e 1/4: Use defvar-keymap from Emacs 29


From: ELPA Syncer
Subject: [nongnu] elpa/git-commit 565818845e 1/4: Use defvar-keymap from Emacs 29.1 or the Compat package
Date: Tue, 14 Feb 2023 17:59:24 -0500 (EST)

branch: elpa/git-commit
commit 565818845e7a10f5fb1dafc901b841b0fe9e2d64
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>

    Use defvar-keymap from Emacs 29.1 or the Compat package
---
 lisp/git-commit.el      |  34 +++++-----
 lisp/git-rebase.el      |  69 ++++++++++----------
 lisp/magit-base.el      |  10 ++-
 lisp/magit-blame.el     |  48 +++++++-------
 lisp/magit-diff.el      |  30 ++++-----
 lisp/magit-files.el     |  18 +++---
 lisp/magit-log.el       |  91 +++++++++++---------------
 lisp/magit-merge.el     |   8 +--
 lisp/magit-mode.el      | 166 ++++++++++++++++++++++++------------------------
 lisp/magit-process.el   |  17 ++---
 lisp/magit-reflog.el    |  12 ++--
 lisp/magit-refs.el      |  12 ++--
 lisp/magit-repos.el     |  18 +++---
 lisp/magit-section.el   |  14 ++--
 lisp/magit-status.el    |  12 ++--
 lisp/magit-submodule.el |   8 +--
 16 files changed, 257 insertions(+), 310 deletions(-)

diff --git a/lisp/git-commit.el b/lisp/git-commit.el
index 0a2eb6b7dd..7d77fa0075 100644
--- a/lisp/git-commit.el
+++ b/lisp/git-commit.el
@@ -410,24 +410,22 @@ This is only used if Magit is available."
 
 ;;; Keymap
 
-(defvar git-commit-mode-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "M-p")     #'git-commit-prev-message)
-    (define-key map (kbd "M-n")     #'git-commit-next-message)
-    (define-key map (kbd "C-c M-p") #'git-commit-search-message-backward)
-    (define-key map (kbd "C-c M-n") #'git-commit-search-message-forward)
-    (define-key map (kbd "C-c C-i") #'git-commit-insert-pseudo-header)
-    (define-key map (kbd "C-c C-a") #'git-commit-ack)
-    (define-key map (kbd "C-c M-i") #'git-commit-suggested)
-    (define-key map (kbd "C-c C-m") #'git-commit-modified)
-    (define-key map (kbd "C-c C-o") #'git-commit-cc)
-    (define-key map (kbd "C-c C-p") #'git-commit-reported)
-    (define-key map (kbd "C-c C-r") #'git-commit-review)
-    (define-key map (kbd "C-c C-s") #'git-commit-signoff)
-    (define-key map (kbd "C-c C-t") #'git-commit-test)
-    (define-key map (kbd "C-c M-s") #'git-commit-save-message)
-    map)
-  "Key map used by `git-commit-mode'.")
+(defvar-keymap git-commit-mode-map
+  :doc "Key map used by `git-commit-mode'."
+  "M-p"     #'git-commit-prev-message
+  "M-n"     #'git-commit-next-message
+  "C-c M-p" #'git-commit-search-message-backward
+  "C-c M-n" #'git-commit-search-message-forward
+  "C-c C-i" #'git-commit-insert-pseudo-header
+  "C-c C-a" #'git-commit-ack
+  "C-c M-i" #'git-commit-suggested
+  "C-c C-m" #'git-commit-modified
+  "C-c C-o" #'git-commit-cc
+  "C-c C-p" #'git-commit-reported
+  "C-c C-r" #'git-commit-review
+  "C-c C-s" #'git-commit-signoff
+  "C-c C-t" #'git-commit-test
+  "C-c M-s" #'git-commit-save-message)
 
 ;;; Menu
 
diff --git a/lisp/git-rebase.el b/lisp/git-rebase.el
index 6168f500c4..793a6c2f0d 100644
--- a/lisp/git-rebase.el
+++ b/lisp/git-rebase.el
@@ -143,42 +143,39 @@
 
 ;;; Keymaps
 
-(defvar git-rebase-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map special-mode-map)
-    (define-key map (kbd "C-m") #'git-rebase-show-commit)
-    (define-key map (kbd   "p") #'git-rebase-backward-line)
-    (define-key map (kbd   "n") #'forward-line)
-    (define-key map (kbd "M-p") #'git-rebase-move-line-up)
-    (define-key map (kbd "M-n") #'git-rebase-move-line-down)
-    (define-key map (kbd   "c") #'git-rebase-pick)
-    (define-key map (kbd   "k") #'git-rebase-kill-line)
-    (define-key map (kbd "C-k") #'git-rebase-kill-line)
-    (define-key map (kbd "b")   #'git-rebase-break)
-    (define-key map (kbd "e")   #'git-rebase-edit)
-    (define-key map (kbd "l")   #'git-rebase-label)
-    (define-key map (kbd "M M") #'git-rebase-merge)
-    (define-key map (kbd "M t") #'git-rebase-merge-toggle-editmsg)
-    (define-key map (kbd "m")   #'git-rebase-edit)
-    (define-key map (kbd "f")   #'git-rebase-fixup)
-    (define-key map (kbd "q")   #'undefined)
-    (define-key map (kbd "r")   #'git-rebase-reword)
-    (define-key map (kbd "w")   #'git-rebase-reword)
-    (define-key map (kbd "s")   #'git-rebase-squash)
-    (define-key map (kbd "t")   #'git-rebase-reset)
-    (define-key map (kbd "u")   #'git-rebase-update-ref)
-    (define-key map (kbd "x")   #'git-rebase-exec)
-    (define-key map (kbd "y")   #'git-rebase-insert)
-    (define-key map (kbd "z")   #'git-rebase-noop)
-    (define-key map (kbd "SPC")     #'git-rebase-show-or-scroll-up)
-    (define-key map (kbd "DEL")     #'git-rebase-show-or-scroll-down)
-    (define-key map (kbd "C-x C-t") #'git-rebase-move-line-up)
-    (define-key map [M-up]          #'git-rebase-move-line-up)
-    (define-key map [M-down]        #'git-rebase-move-line-down)
-    (define-key map [remap undo]    #'git-rebase-undo)
-    map)
-  "Keymap for Git-Rebase mode.")
-
+(defvar-keymap git-rebase-mode-map
+  :doc "Keymap for Git-Rebase mode."
+  :parent special-mode-map
+  "C-m" #'git-rebase-show-commit
+  "p"   #'git-rebase-backward-line
+  "n"   #'forward-line
+  "M-p" #'git-rebase-move-line-up
+  "M-n" #'git-rebase-move-line-down
+  "c"   #'git-rebase-pick
+  "k"   #'git-rebase-kill-line
+  "C-k" #'git-rebase-kill-line
+  "b"   #'git-rebase-break
+  "e"   #'git-rebase-edit
+  "l"   #'git-rebase-label
+  "M M" #'git-rebase-merge
+  "M t" #'git-rebase-merge-toggle-editmsg
+  "m"   #'git-rebase-edit
+  "f"   #'git-rebase-fixup
+  "q"   #'undefined
+  "r"   #'git-rebase-reword
+  "w"   #'git-rebase-reword
+  "s"   #'git-rebase-squash
+  "t"   #'git-rebase-reset
+  "u"   #'git-rebase-update-ref
+  "x"   #'git-rebase-exec
+  "y"   #'git-rebase-insert
+  "z"   #'git-rebase-noop
+  "SPC" #'git-rebase-show-or-scroll-up
+  "DEL" #'git-rebase-show-or-scroll-down
+  "C-x C-t"        #'git-rebase-move-line-up
+  "M-<up>"         #'git-rebase-move-line-up
+  "M-<down>"       #'git-rebase-move-line-down
+  "<remap> <undo>" #'git-rebase-undo)
 (put 'git-rebase-reword       :advertised-binding (kbd "r"))
 (put 'git-rebase-move-line-up :advertised-binding (kbd "M-p"))
 (put 'git-rebase-kill-line    :advertised-binding (kbd "k"))
diff --git a/lisp/magit-base.el b/lisp/magit-base.el
index ac0c6c1e8e..de88b44a6c 100644
--- a/lisp/magit-base.el
+++ b/lisp/magit-base.el
@@ -700,12 +700,10 @@ back to built-in `completing-read' for now." :error)
       (format "%s (default %s): " (substring prompt 0 -2) def)
     prompt))
 
-(defvar magit-minibuffer-local-ns-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map minibuffer-local-map)
-    (define-key map "\s" #'magit-whitespace-disallowed)
-    (define-key map "\t" #'magit-whitespace-disallowed)
-    map))
+(defvar-keymap magit-minibuffer-local-ns-map
+  :parent minibuffer-local-map
+  "SPC" #'magit-whitespace-disallowed
+  "TAB" #'magit-whitespace-disallowed)
 
 (defun magit-whitespace-disallowed ()
   "Beep to tell the user that whitespace is not allowed."
diff --git a/lisp/magit-blame.el b/lisp/magit-blame.el
index 26fde4c309..1b9ea262dc 100644
--- a/lisp/magit-blame.el
+++ b/lisp/magit-blame.el
@@ -289,33 +289,29 @@ Also see option `magit-blame-styles'."
 
 ;;; Keymaps
 
-(defvar magit-blame-mode-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "C-c C-q") 'magit-blame-quit)
-    map)
-  "Keymap for `magit-blame-mode'.
+(defvar-keymap magit-blame-mode-map
+  :doc "Keymap for `magit-blame-mode'.
 Note that most blaming key bindings are defined
-in `magit-blame-read-only-mode-map' instead.")
-
-(defvar magit-blame-read-only-mode-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "C-m")   #'magit-show-commit)
-    (define-key map (kbd   "p")   #'magit-blame-previous-chunk)
-    (define-key map (kbd   "P")   #'magit-blame-previous-chunk-same-commit)
-    (define-key map (kbd   "n")   #'magit-blame-next-chunk)
-    (define-key map (kbd   "N")   #'magit-blame-next-chunk-same-commit)
-    (define-key map (kbd   "b")   #'magit-blame-addition)
-    (define-key map (kbd   "r")   #'magit-blame-removal)
-    (define-key map (kbd   "f")   #'magit-blame-reverse)
-    (define-key map (kbd   "B")   #'magit-blame)
-    (define-key map (kbd   "c")   #'magit-blame-cycle-style)
-    (define-key map (kbd   "q")   #'magit-blame-quit)
-    (define-key map (kbd "M-w")   #'magit-blame-copy-hash)
-    (define-key map (kbd "SPC")   #'magit-diff-show-or-scroll-up)
-    (define-key map (kbd "S-SPC") #'magit-diff-show-or-scroll-down)
-    (define-key map (kbd "DEL")   #'magit-diff-show-or-scroll-down)
-    map)
-  "Keymap for `magit-blame-read-only-mode'.")
+in `magit-blame-read-only-mode-map' instead."
+  "C-c C-q" #'magit-blame-quit)
+
+(defvar-keymap magit-blame-read-only-mode-map
+  :doc "Keymap for `magit-blame-read-only-mode'."
+  "C-m" #'magit-show-commit
+  "p"   #'magit-blame-previous-chunk
+  "P"   #'magit-blame-previous-chunk-same-commit
+  "n"   #'magit-blame-next-chunk
+  "N"   #'magit-blame-next-chunk-same-commit
+  "b"   #'magit-blame-addition
+  "r"   #'magit-blame-removal
+  "f"   #'magit-blame-reverse
+  "B"   #'magit-blame
+  "c"   #'magit-blame-cycle-style
+  "q"   #'magit-blame-quit
+  "M-w" #'magit-blame-copy-hash
+  "SPC"   #'magit-diff-show-or-scroll-up
+  "S-SPC" #'magit-diff-show-or-scroll-down
+  "DEL"   #'magit-diff-show-or-scroll-down)
 
 ;;; Modes
 ;;;; Base Mode
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 5bb1c0d772..c7ccad0845 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -1869,18 +1869,16 @@ commit or stash at point, then prompt for a commit."
 
 ;;; Diff Mode
 
-(defvar magit-diff-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-mode-map)
-    (define-key map (kbd "C-c C-d") #'magit-diff-while-committing)
-    (define-key map (kbd "C-c C-b") #'magit-go-backward)
-    (define-key map (kbd "C-c C-f") #'magit-go-forward)
-    (define-key map (kbd "SPC")     #'scroll-up)
-    (define-key map (kbd "DEL")     #'scroll-down)
-    (define-key map (kbd "j")       #'magit-jump-to-diffstat-or-diff)
-    (define-key map [remap write-file] #'magit-patch-save)
-    map)
-  "Keymap for `magit-diff-mode'.")
+(defvar-keymap magit-diff-mode-map
+  :doc "Keymap for `magit-diff-mode'."
+  :parent magit-mode-map
+  "C-c C-d" #'magit-diff-while-committing
+  "C-c C-b" #'magit-go-backward
+  "C-c C-f" #'magit-go-forward
+  "SPC"     #'scroll-up
+  "DEL"     #'scroll-down
+  "j"       #'magit-jump-to-diffstat-or-diff
+  "<remap> <write-file>" #'magit-patch-save)
 
 (define-derived-mode magit-diff-mode magit-mode "Magit Diff"
   "Mode for looking at a Git diff.
@@ -2006,11 +2004,9 @@ The classes `magit-file-section' and 
`magit-hunk-section' derive
 from the abstract `magit-diff-section' class.  Accordingly this
 keymap is the parent of their keymaps.")
 
-(defvar magit-file-section-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-diff-section-base-map)
-    map)
-  "Keymap for `file' sections.")
+(defvar-keymap magit-file-section-map
+  :doc "Keymap for `file' sections."
+  :parent magit-diff-section-base-map)
 
 (defvar magit-hunk-section-map
   (let ((map (make-sparse-keymap)))
diff --git a/lisp/magit-files.el b/lisp/magit-files.el
index 63c2c1cee3..6afdd42799 100644
--- a/lisp/magit-files.el
+++ b/lisp/magit-files.el
@@ -322,16 +322,14 @@ to `magit-dispatch'."
 
 ;;; Blob Mode
 
-(defvar magit-blob-mode-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map "p" #'magit-blob-previous)
-    (define-key map "n" #'magit-blob-next)
-    (define-key map "b" #'magit-blame-addition)
-    (define-key map "r" #'magit-blame-removal)
-    (define-key map "f" #'magit-blame-reverse)
-    (define-key map "q" #'magit-kill-this-buffer)
-    map)
-  "Keymap for `magit-blob-mode'.")
+(defvar-keymap magit-blob-mode-map
+  :doc "Keymap for `magit-blob-mode'."
+  "p" #'magit-blob-previous
+  "n" #'magit-blob-next
+  "b" #'magit-blame-addition
+  "r" #'magit-blame-removal
+  "f" #'magit-blame-reverse
+  "q" #'magit-kill-this-buffer)
 
 (define-minor-mode magit-blob-mode
   "Enable some Magit features in blob-visiting buffers.
diff --git a/lisp/magit-log.el b/lisp/magit-log.el
index 4a806630ad..c0d75ebc18 100644
--- a/lisp/magit-log.el
+++ b/lisp/magit-log.el
@@ -610,11 +610,9 @@ commits before and half after."
 
 ;;;; Setup Commands
 
-(defvar magit-log-read-revs-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map crm-local-completion-map)
-    (define-key map "\s" #'self-insert-command)
-    map))
+(defvar-keymap magit-log-read-revs-map
+  :parent crm-local-completion-map
+  "SPC" #'self-insert-command)
 
 (defun magit-log-read-revs (&optional use-current)
   (or (and use-current (and-let* ((buf (magit-get-current-branch))) (list 
buf)))
@@ -1004,19 +1002,17 @@ of the current repository first; creating it if 
necessary."
   '("-G" "--grep" "--author")
   "Arguments which disable the graph speedup hack.")
 
-(defvar magit-log-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-mode-map)
-    (define-key map (kbd "C-c C-b") #'magit-go-backward)
-    (define-key map (kbd "C-c C-f") #'magit-go-forward)
-    (define-key map (kbd "C-c C-n") #'magit-log-move-to-parent)
-    (define-key map "j" #'magit-log-move-to-revision)
-    (define-key map "=" #'magit-log-toggle-commit-limit)
-    (define-key map "+" #'magit-log-double-commit-limit)
-    (define-key map "-" #'magit-log-half-commit-limit)
-    (define-key map "q" #'magit-log-bury-buffer)
-    map)
-  "Keymap for `magit-log-mode'.")
+(defvar-keymap magit-log-mode-map
+  :doc "Keymap for `magit-log-mode'."
+  :parent magit-mode-map
+  "C-c C-b" #'magit-go-backward
+  "C-c C-f" #'magit-go-forward
+  "C-c C-n" #'magit-log-move-to-parent
+  "j" #'magit-log-move-to-revision
+  "=" #'magit-log-toggle-commit-limit
+  "+" #'magit-log-double-commit-limit
+  "-" #'magit-log-half-commit-limit
+  "q" #'magit-log-bury-buffer)
 
 (define-derived-mode magit-log-mode magit-mode "Magit Log"
   "Mode for looking at Git log.
@@ -1169,11 +1165,9 @@ Do not add this to a hook variable."
     map)
   "Keymap for `commit' sections.")
 
-(defvar magit-module-commit-section-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-commit-section-map)
-    map)
-  "Keymap for `module-commit' sections.")
+(defvar-keymap magit-module-commit-section-map
+  :doc "Keymap for `module-commit' sections."
+  :parent magit-commit-section-map)
 
 (defconst magit-log-heading-re
   ;; Note: A form feed instead of a null byte is used as the delimiter
@@ -1595,19 +1589,16 @@ The shortstat style is experimental and rather slow."
 
 ;;; Select Mode
 
-(defvar magit-log-select-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-log-mode-map)
-    (define-key map (kbd "C-c C-b") #'undefined)
-    (define-key map (kbd "C-c C-f") #'undefined)
-    (define-key map (kbd ".")       #'magit-log-select-pick)
-    (define-key map (kbd "e")       #'magit-log-select-pick)
-    (define-key map (kbd "C-c C-c") #'magit-log-select-pick)
-    (define-key map (kbd "q")       #'magit-log-select-quit)
-    (define-key map (kbd "C-c C-k") #'magit-log-select-quit)
-    map)
-  "Keymap for `magit-log-select-mode'.")
-
+(defvar-keymap magit-log-select-mode-map
+  :doc "Keymap for `magit-log-select-mode'."
+  :parent magit-log-mode-map
+  "C-c C-b" #'undefined
+  "C-c C-f" #'undefined
+  "."       #'magit-log-select-pick
+  "e"       #'magit-log-select-pick
+  "C-c C-c" #'magit-log-select-pick
+  "q"       #'magit-log-select-quit
+  "C-c C-k" #'magit-log-select-quit)
 (put 'magit-log-select-pick :advertised-binding [?\C-c ?\C-c])
 (put 'magit-log-select-quit :advertised-binding [?\C-c ?\C-k])
 
@@ -1703,13 +1694,11 @@ Call `magit-log-select-quit-function' if set."
 
 ;;; Cherry Mode
 
-(defvar magit-cherry-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-mode-map)
-    (define-key map "q" #'magit-log-bury-buffer)
-    (define-key map "L" #'magit-margin-settings)
-    map)
-  "Keymap for `magit-cherry-mode'.")
+(defvar-keymap magit-cherry-mode-map
+  :doc "Keymap for `magit-cherry-mode'."
+  :parent magit-mode-map
+  "q" #'magit-log-bury-buffer
+  "L" #'magit-margin-settings)
 
 (define-derived-mode magit-cherry-mode magit-mode "Magit Cherry"
   "Mode for looking at commits not merged upstream.
@@ -1782,11 +1771,9 @@ The classes `magit-{unpulled,unpushed,unmerged}-section' 
derive
 from the abstract `magit-log-section' class.  Accordingly this
 keymap is the parent of their keymaps.")
 
-(defvar magit-unpulled-section-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-log-section-map)
-    map)
-  "Keymap for `unpulled' sections.")
+(defvar-keymap magit-unpulled-section-map
+  :doc "Keymap for `unpulled' sections."
+  :parent magit-log-section-map)
 
 (cl-defmethod magit-section-ident-value ((section magit-unpulled-section))
   "\"..@{push}\" cannot be used as the value because that is
@@ -1827,11 +1814,9 @@ in the pushremote case."
         (magit-insert-log (concat ".." it) magit-buffer-log-args)
         (magit-log-insert-child-count)))))
 
-(defvar magit-unpushed-section-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-log-section-map)
-    map)
-  "Keymap for `unpushed' sections.")
+(defvar-keymap magit-unpushed-section-map
+  :doc "Keymap for `unpushed' sections."
+  :parent magit-log-section-map)
 
 (cl-defmethod magit-section-ident-value ((section magit-unpushed-section))
   "\"..@{push}\" cannot be used as the value because that is
diff --git a/lisp/magit-merge.el b/lisp/magit-merge.el
index 140bbe4864..374c2eb47a 100644
--- a/lisp/magit-merge.el
+++ b/lisp/magit-merge.el
@@ -289,11 +289,9 @@ then also remove the respective remote branch."
 
 ;;; Sections
 
-(defvar magit-unmerged-section-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-log-section-map)
-    map)
-  "Keymap for `unmerged' sections.")
+(defvar-keymap magit-unmerged-section-map
+  :doc "Keymap for `unmerged' sections."
+  :parent magit-log-section-map)
 
 (defun magit-insert-merge-log ()
   "Insert section for the on-going merge.
diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index f00e4b1f69..de7bb5700b 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -323,90 +323,88 @@ recommended value."
 
 ;;; Key Bindings
 
-(defvar magit-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-section-mode-map)
-    ;; Don't function-quote but make sure all commands are autoloaded.
-    (define-key map [C-return]    'magit-visit-thing)
-    (define-key map (kbd   "RET") 'magit-visit-thing)
-    (define-key map (kbd "M-TAB") 'magit-dired-jump)
-    (define-key map [M-tab]       'magit-section-cycle-diffs)
-    (define-key map (kbd   "SPC") 'magit-diff-show-or-scroll-up)
-    (define-key map (kbd "S-SPC") 'magit-diff-show-or-scroll-down)
-    (define-key map (kbd   "DEL") 'magit-diff-show-or-scroll-down)
-    (define-key map "+"           'magit-diff-more-context)
-    (define-key map "-"           'magit-diff-less-context)
-    (define-key map "0"           'magit-diff-default-context)
-    (define-key map "a" 'magit-cherry-apply)
-    (define-key map "A" 'magit-cherry-pick)
-    (define-key map "b" 'magit-branch)
-    (define-key map "B" 'magit-bisect)
-    (define-key map "c" 'magit-commit)
-    (define-key map "C" 'magit-clone)
-    (define-key map "d" 'magit-diff)
-    (define-key map "D" 'magit-diff-refresh)
-    (define-key map "e" 'magit-ediff-dwim)
-    (define-key map "E" 'magit-ediff)
-    (define-key map "f" 'magit-fetch)
-    (define-key map "F" 'magit-pull)
-    (define-key map "g" 'magit-refresh)
-    (define-key map "G" 'magit-refresh-all)
-    (define-key map "h" 'magit-dispatch)
-    (define-key map "?" 'magit-dispatch)
-    (define-key map "H" 'magit-describe-section)
-    (define-key map "i" 'magit-gitignore)
-    (define-key map "I" 'magit-init)
-    (define-key map "j" 'magit-status-quick)
-    (define-key map "J" 'magit-display-repository-buffer)
-    (define-key map "k" 'magit-delete-thing)
-    (define-key map "K" 'magit-file-untrack)
-    (define-key map "l" 'magit-log)
-    (define-key map "L" 'magit-log-refresh)
-    (define-key map "m" 'magit-merge)
-    (define-key map "M" 'magit-remote)
-    ;;  section-map "n"  magit-section-forward
-    ;;     reserved "N"  forge-dispatch
-    (define-key map "o" 'magit-submodule)
-    (define-key map "O" 'magit-subtree)
-    ;;  section-map "p"  magit-section-backward
-    (define-key map "P" 'magit-push)
-    (define-key map "q" 'magit-mode-bury-buffer)
-    (define-key map "Q" 'magit-git-command)
-    (define-key map ":" 'magit-git-command)
-    (define-key map "r" 'magit-rebase)
-    (define-key map "R" 'magit-file-rename)
-    (define-key map "s" 'magit-stage-file)
-    (define-key map "S" 'magit-stage-modified)
-    (define-key map "t" 'magit-tag)
-    (define-key map "T" 'magit-notes)
-    (define-key map "u" 'magit-unstage-file)
-    (define-key map "U" 'magit-unstage-all)
-    (define-key map "v" 'magit-revert-no-commit)
-    (define-key map "V" 'magit-revert)
-    (define-key map "w" 'magit-am)
-    (define-key map "W" 'magit-patch)
-    (define-key map "x" 'magit-reset-quickly)
-    (define-key map "X" 'magit-reset)
-    (define-key map "y" 'magit-show-refs)
-    (define-key map "Y" 'magit-cherry)
-    (define-key map "z" 'magit-stash)
-    (define-key map "Z" 'magit-worktree)
-    (define-key map "%" 'magit-worktree)
-    (define-key map "$" 'magit-process-buffer)
-    (define-key map "!" 'magit-run)
-    (define-key map ">" 'magit-sparse-checkout)
-    (define-key map (kbd "C-c C-c") 'magit-dispatch)
-    (define-key map (kbd "C-c C-e") 'magit-edit-thing)
-    (define-key map (kbd "C-c C-o") 'magit-browse-thing)
-    (define-key map (kbd "C-c C-w") 'magit-browse-thing)
-    (define-key map (kbd "C-w")     'magit-copy-section-value)
-    (define-key map (kbd "M-w")     'magit-copy-buffer-revision)
-    (define-key map [remap previous-line]      'magit-previous-line)
-    (define-key map [remap next-line]          'magit-next-line)
-    (define-key map [remap evil-previous-line] 'evil-previous-visual-line)
-    (define-key map [remap evil-next-line]     'evil-next-visual-line)
-    map)
-  "Parent keymap for all keymaps of modes derived from `magit-mode'.")
+(defvar-keymap magit-mode-map
+  :doc "Parent keymap for all keymaps of modes derived from `magit-mode'."
+  :parent magit-section-mode-map
+  ;; Don't function-quote but make sure all commands are autoloaded.
+  "C-<return>"  'magit-visit-thing
+  "RET"         'magit-visit-thing
+  "M-TAB"       'magit-dired-jump
+  "M-<tab>"     'magit-section-cycle-diffs
+  "SPC"         'magit-diff-show-or-scroll-up
+  "S-SPC"       'magit-diff-show-or-scroll-down
+  "DEL"         'magit-diff-show-or-scroll-down
+  "+"           'magit-diff-more-context
+  "-"           'magit-diff-less-context
+  "0"           'magit-diff-default-context
+  "a" 'magit-cherry-apply
+  "A" 'magit-cherry-pick
+  "b" 'magit-branch
+  "B" 'magit-bisect
+  "c" 'magit-commit
+  "C" 'magit-clone
+  "d" 'magit-diff
+  "D" 'magit-diff-refresh
+  "e" 'magit-ediff-dwim
+  "E" 'magit-ediff
+  "f" 'magit-fetch
+  "F" 'magit-pull
+  "g" 'magit-refresh
+  "G" 'magit-refresh-all
+  "h" 'magit-dispatch
+  "?" 'magit-dispatch
+  "H" 'magit-describe-section
+  "i" 'magit-gitignore
+  "I" 'magit-init
+  "j" 'magit-status-quick
+  "J" 'magit-display-repository-buffer
+  "k" 'magit-delete-thing
+  "K" 'magit-file-untrack
+  "l" 'magit-log
+  "L" 'magit-log-refresh
+  "m" 'magit-merge
+  "M" 'magit-remote
+  ;; "n" magit-section-forward in magit-section-mode-map
+  ;; "N" forge-dispatch, added by forge package
+  "o" 'magit-submodule
+  "O" 'magit-subtree
+  ;; "p" magit-section-backward in magit-section-mode-map
+  "P" 'magit-push
+  "q" 'magit-mode-bury-buffer
+  "Q" 'magit-git-command
+  ":" 'magit-git-command
+  "r" 'magit-rebase
+  "R" 'magit-file-rename
+  "s" 'magit-stage-file
+  "S" 'magit-stage-modified
+  "t" 'magit-tag
+  "T" 'magit-notes
+  "u" 'magit-unstage-file
+  "U" 'magit-unstage-all
+  "v" 'magit-revert-no-commit
+  "V" 'magit-revert
+  "w" 'magit-am
+  "W" 'magit-patch
+  "x" 'magit-reset-quickly
+  "X" 'magit-reset
+  "y" 'magit-show-refs
+  "Y" 'magit-cherry
+  "z" 'magit-stash
+  "Z" 'magit-worktree
+  "%" 'magit-worktree
+  "$" 'magit-process-buffer
+  "!" 'magit-run
+  ">" 'magit-sparse-checkout
+  "C-c C-c" 'magit-dispatch
+  "C-c C-e" 'magit-edit-thing
+  "C-c C-o" 'magit-browse-thing
+  "C-c C-w" 'magit-browse-thing
+  "C-w"     'magit-copy-section-value
+  "M-w"     'magit-copy-buffer-revision
+  "<remap> <previous-line>"      'magit-previous-line
+  "<remap> <next-line>"          'magit-next-line
+  "<remap> <evil-previous-line>" 'evil-previous-visual-line
+  "<remap> <evil-next-line>"     'evil-next-visual-line)
 
 (defun magit-delete-thing ()
   "This is a placeholder command.
diff --git a/lisp/magit-process.el b/lisp/magit-process.el
index d4392b2fe7..5705a5f39e 100644
--- a/lisp/magit-process.el
+++ b/lisp/magit-process.el
@@ -269,11 +269,9 @@ Used when `magit-process-display-mode-line-error' is 
non-nil."
 
 ;;; Process Mode
 
-(defvar magit-process-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-mode-map)
-    map)
-  "Keymap for `magit-process-mode'.")
+(defvar-keymap magit-process-mode-map
+  :doc "Keymap for `magit-process-mode'."
+  :parent magit-mode-map)
 
 (define-derived-mode magit-process-mode magit-mode "Magit Process"
   "Mode for looking at Git process output."
@@ -979,12 +977,9 @@ as argument."
 (advice-add 'tramp-sh-handle-process-file :around
             #'tramp-sh-handle-process-file--magit-tramp-process-environment)
 
-(defvar magit-mode-line-process-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "<mode-line> <mouse-1>")
-      'magit-process-buffer)
-    map)
-  "Keymap for `mode-line-process'.")
+(defvar-keymap magit-mode-line-process-map
+  :doc "Keymap for `mode-line-process'."
+  "<mode-line> <mouse-1>" ''magit-process-buffer)
 
 (defun magit-process-set-mode-line (program args)
   "Display the git command (sans arguments) in the mode line."
diff --git a/lisp/magit-reflog.el b/lisp/magit-reflog.el
index b099d8512a..b64e39d44d 100644
--- a/lisp/magit-reflog.el
+++ b/lisp/magit-reflog.el
@@ -130,13 +130,11 @@ If `HEAD' is detached, then show the reflog for that 
instead."
 
 ;;; Mode
 
-(defvar magit-reflog-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-log-mode-map)
-    (define-key map (kbd "C-c C-n") #'undefined)
-    (define-key map (kbd "L")       #'magit-margin-settings)
-    map)
-  "Keymap for `magit-reflog-mode'.")
+(defvar-keymap magit-reflog-mode-map
+  :doc "Keymap for `magit-reflog-mode'."
+  :parent magit-log-mode-map
+  "C-c C-n" #'undefined
+  "L"       #'magit-margin-settings)
 
 (define-derived-mode magit-reflog-mode magit-mode "Magit Reflog"
   "Mode for looking at Git reflog.
diff --git a/lisp/magit-refs.el b/lisp/magit-refs.el
index 71c10e996c..cddc05d40d 100644
--- a/lisp/magit-refs.el
+++ b/lisp/magit-refs.el
@@ -271,13 +271,11 @@ the outcome.
 
 ;;; Mode
 
-(defvar magit-refs-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-mode-map)
-    (define-key map (kbd "C-y") #'magit-refs-set-show-commit-count)
-    (define-key map (kbd "L")   #'magit-margin-settings)
-    map)
-  "Keymap for `magit-refs-mode'.")
+(defvar-keymap magit-refs-mode-map
+  :doc "Keymap for `magit-refs-mode'."
+  :parent magit-mode-map
+  "C-y" #'magit-refs-set-show-commit-count
+  "L"   #'magit-margin-settings)
 
 (define-derived-mode magit-refs-mode magit-mode "Magit Refs"
   "Mode which lists and compares references.
diff --git a/lisp/magit-repos.el b/lisp/magit-repos.el
index 68391bfc84..a313b5d46a 100644
--- a/lisp/magit-repos.el
+++ b/lisp/magit-repos.el
@@ -254,16 +254,14 @@ If it contains \"%s\" then the directory is substituted 
for that."
 
 ;;;; Mode
 
-(defvar magit-repolist-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map tabulated-list-mode-map)
-    (define-key map (kbd "C-m") #'magit-repolist-status)
-    (define-key map (kbd "m")   #'magit-repolist-mark)
-    (define-key map (kbd "u")   #'magit-repolist-unmark)
-    (define-key map (kbd "f")   #'magit-repolist-fetch)
-    (define-key map (kbd "5")   #'magit-repolist-find-file-other-frame)
-    map)
-  "Local keymap for Magit-Repolist mode buffers.")
+(defvar-keymap magit-repolist-mode-map
+  :doc "Local keymap for Magit-Repolist mode buffers."
+  :parent tabulated-list-mode-map
+  "C-m" #'magit-repolist-status
+  "m"   #'magit-repolist-mark
+  "u"   #'magit-repolist-unmark
+  "f"   #'magit-repolist-fetch
+  "5"   #'magit-repolist-find-file-other-frame)
 
 (define-derived-mode magit-repolist-mode tabulated-list-mode "Repos"
   "Major mode for browsing a list of Git repositories."
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index fa8fa98007..434c0ba699 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -344,15 +344,13 @@ no effect.  This also has no effect for Emacs >= 28, where
 
 (defvar symbol-overlay-inhibit-map)
 
-(defvar magit-section-heading-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map [double-down-mouse-1] #'ignore)
-    (define-key map [double-mouse-1] #'magit-mouse-toggle-section)
-    (define-key map [double-mouse-2] #'magit-mouse-toggle-section)
-    map)
-  "Keymap used in the heading line of all expandable sections.
+(defvar-keymap magit-section-heading-map
+  :doc "Keymap used in the heading line of all expandable sections.
 This keymap is used in addition to the section-specific keymap,
-if any.")
+if any."
+  "<double-down-mouse-1>" #'ignore
+  "<double-mouse-1>" #'magit-mouse-toggle-section
+  "<double-mouse-2>" #'magit-mouse-toggle-section)
 
 (defvar magit-section-mode-map
   (let ((map (make-keymap)))
diff --git a/lisp/magit-status.el b/lisp/magit-status.el
index 27c7af262d..ee8e2d6fd1 100644
--- a/lisp/magit-status.el
+++ b/lisp/magit-status.el
@@ -332,13 +332,11 @@ init file: (global-set-key (kbd \"C-x g\") 
\\='magit-status-quick)."
 
 ;;; Mode
 
-(defvar magit-status-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-mode-map)
-    (define-key map "j" #'magit-status-jump)
-    (define-key map [remap dired-jump] #'magit-dired-jump)
-    map)
-  "Keymap for `magit-status-mode'.")
+(defvar-keymap magit-status-mode-map
+  :doc "Keymap for `magit-status-mode'."
+  :parent magit-mode-map
+  "j" #'magit-status-jump
+  "<remap> <dired-jump>" #'magit-dired-jump)
 
 (transient-define-prefix magit-status-jump ()
   "In a Magit-Status buffer, jump to a section."
diff --git a/lisp/magit-submodule.el b/lisp/magit-submodule.el
index 55e6fa8332..7219a2938a 100644
--- a/lisp/magit-submodule.el
+++ b/lisp/magit-submodule.el
@@ -632,11 +632,9 @@ These sections can be expanded to show the respective 
commits."
   (interactive)
   (magit-submodule-list-setup magit-submodule-list-columns))
 
-(defvar magit-submodule-list-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map magit-repolist-mode-map)
-    map)
-  "Local keymap for Magit-Submodule-List mode buffers.")
+(defvar-keymap magit-submodule-list-mode-map
+  :doc "Local keymap for Magit-Submodule-List mode buffers."
+  :parent magit-repolist-mode-map)
 
 (define-derived-mode magit-submodule-list-mode tabulated-list-mode "Modules"
   "Major mode for browsing a list of Git submodules."



reply via email to

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