branch: elpa/git-commit commit 9844329632e78832ddd81de9a3fe378f1b0719a8 Author: Jonas Bernoulli <jo...@bernoul.li> Commit: Jonas Bernoulli <jo...@bernoul.li>
Use keymap-set from Emacs 29.1 or the Compat package --- lisp/magit-diff.el | 31 +++++++++++++++---------------- lisp/magit-extras.el | 13 ++++++------- lisp/magit-mode.el | 4 ++-- lisp/magit-process.el | 2 +- lisp/magit-section.el | 46 +++++++++++++++++++++++----------------------- lisp/magit-submodule.el | 4 ++-- lisp/magit.el | 17 ++++++++--------- 7 files changed, 57 insertions(+), 60 deletions(-) diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el index c7ccad0845..bc04868c30 100644 --- a/lisp/magit-diff.el +++ b/lisp/magit-diff.el @@ -1243,8 +1243,7 @@ be committed." (user-error "No commit in progress")) (magit-commit-diff-1)) -(define-key git-commit-mode-map - (kbd "C-c C-d") #'magit-diff-while-committing) +(keymap-set git-commit-mode-map "C-c C-d" #'magit-diff-while-committing) ;;;###autoload (defun magit-diff-buffer-file () @@ -1988,16 +1987,16 @@ Staging and applying changes is documented in info node (magit-menu-set map [magit-file-rename] #'magit-file-rename "Rename file" '(:enable (eq (magit-diff-scope) 'file))) - (define-key map (kbd "C-j") #'magit-diff-visit-worktree-file) - (define-key map (kbd "C-<return>") #'magit-diff-visit-worktree-file) - (define-key map (kbd "C-x 4 <return>") #'magit-diff-visit-file-other-window) - (define-key map (kbd "C-x 5 <return>") #'magit-diff-visit-file-other-frame) - (define-key map "&" #'magit-do-async-shell-command) - (define-key map "C" #'magit-commit-add-log) - (define-key map (kbd "C-x a") #'magit-add-change-log-entry) - (define-key map (kbd "C-x 4 a") #'magit-add-change-log-entry-other-window) - (define-key map (kbd "C-c C-t") #'magit-diff-trace-definition) - (define-key map (kbd "C-c C-e") #'magit-diff-edit-hunk-commit) + (keymap-set map "C-j" #'magit-diff-visit-worktree-file) + (keymap-set map "C-<return>" #'magit-diff-visit-worktree-file) + (keymap-set map "C-x 4 <return>" #'magit-diff-visit-file-other-window) + (keymap-set map "C-x 5 <return>" #'magit-diff-visit-file-other-frame) + (keymap-set map "&" #'magit-do-async-shell-command) + (keymap-set map "C" #'magit-commit-add-log) + (keymap-set map "C-x a" #'magit-add-change-log-entry) + (keymap-set map "C-x 4 a" #'magit-add-change-log-entry-other-window) + (keymap-set map "C-c C-t" #'magit-diff-trace-definition) + (keymap-set map "C-c C-e" #'magit-diff-edit-hunk-commit) map) "Keymap for diff sections. The classes `magit-file-section' and `magit-hunk-section' derive @@ -2012,10 +2011,10 @@ keymap is the parent of their keymaps.") (let ((map (make-sparse-keymap))) (set-keymap-parent map magit-diff-section-base-map) (let ((m (make-sparse-keymap))) - (define-key m (kbd "RET") #'magit-smerge-keep-current) - (define-key m (kbd "u") #'magit-smerge-keep-upper) - (define-key m (kbd "b") #'magit-smerge-keep-base) - (define-key m (kbd "l") #'magit-smerge-keep-lower) + (keymap-set m "RET" #'magit-smerge-keep-current) + (keymap-set m "u" #'magit-smerge-keep-upper) + (keymap-set m "b" #'magit-smerge-keep-base) + (keymap-set m "l" #'magit-smerge-keep-lower) (define-key map smerge-command-prefix m)) map) "Keymap for `hunk' sections.") diff --git a/lisp/magit-extras.el b/lisp/magit-extras.el index 9d8ea836f7..17c41da0a8 100644 --- a/lisp/magit-extras.el +++ b/lisp/magit-extras.el @@ -204,15 +204,15 @@ To make this command available use something like: (add-hook \\='ido-setup-hook (lambda () - (define-key ido-completion-map - (kbd \"C-x g\") \\='ido-enter-magit-status))) + (keymap-set ido-completion-map + \"C-x g\" \\='ido-enter-magit-status))) Starting with Emacs 25.1 the Ido keymaps are defined just once instead of every time Ido is invoked, so now you can modify it like pretty much every other keymap: - (define-key ido-common-completion-map - (kbd \"C-x g\") \\='ido-enter-magit-status)" + (keymap-set ido-common-completion-map + \"C-x g\" \\='ido-enter-magit-status)" (interactive) (setq ido-exit 'fallback) (setq ido-fallback #'magit-status) ; for Emacs >= 26.2 @@ -242,7 +242,7 @@ to nil before loading Magit to prevent \"m\" from being bound.") (equal project-switch-commands (eval (car (get 'project-switch-commands 'standard-value)) t))) - (define-key project-prefix-map "m" #'magit-project-status) + (keymap-set project-prefix-map "m" #'magit-project-status) (add-to-list 'project-switch-commands '(magit-project-status "Magit") t))) ;;;###autoload @@ -744,8 +744,7 @@ the minibuffer too." (backward-delete-char 1))))) (user-error "Revision stack is empty"))) -(define-key git-commit-mode-map - (kbd "C-c C-w") #'magit-pop-revision-stack) +(keymap-set git-commit-mode-map "C-c C-w" #'magit-pop-revision-stack) ;;;###autoload (defun magit-copy-section-value (arg) diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el index de7bb5700b..a13fb7c895 100644 --- a/lisp/magit-mode.el +++ b/lisp/magit-mode.el @@ -446,8 +446,8 @@ which visits the thing at point using `browse-url'." (defvar bug-reference-map) (with-eval-after-load 'bug-reference - (define-key bug-reference-map [remap magit-visit-thing] - 'bug-reference-push-button)) + (keymap-set bug-reference-map "<remap> <magit-visit-thing>" + 'bug-reference-push-button)) (easy-menu-define magit-mode-menu magit-mode-map "Magit menu" diff --git a/lisp/magit-process.el b/lisp/magit-process.el index 5705a5f39e..d3acb2e752 100644 --- a/lisp/magit-process.el +++ b/lisp/magit-process.el @@ -771,7 +771,7 @@ Magit status buffer." (set-keymap-parent ,map minibuffer-local-map) ;; Note: Leaving (kbd ...) unevaluated leads to the ;; magit-process:password-prompt test failing. - (define-key ,map ,(kbd "C-g") + (keymap-set ,map "C-g" (lambda () (interactive) (ignore-errors (kill-process ,proc)) diff --git a/lisp/magit-section.el b/lisp/magit-section.el index 434c0ba699..a67df14e5d 100644 --- a/lisp/magit-section.el +++ b/lisp/magit-section.el @@ -357,9 +357,9 @@ if any." (suppress-keymap map t) (when (and magit-section-show-context-menu-for-emacs<28 (< emacs-major-version 28)) - (define-key map [mouse-3] nil) - (define-key - map [down-mouse-3] + (keymap-set map "<mouse-3>" nil) + (keymap-set + map "<down-mouse-3>" `( menu-item "" ,(make-sparse-keymap) :filter ,(lambda (_) (let ((menu (make-sparse-keymap))) @@ -368,26 +368,26 @@ if any." (magit--context-menu-local menu last-input-event)) (magit-section-context-menu menu last-input-event) menu))))) - (define-key map [left-fringe mouse-1] #'magit-mouse-toggle-section) - (define-key map [left-fringe mouse-2] #'magit-mouse-toggle-section) - (define-key map (kbd "TAB") #'magit-section-toggle) - (define-key map [C-tab] #'magit-section-cycle) - (define-key map [M-tab] #'magit-section-cycle) - ;; [backtab] is the most portable binding for Shift+Tab. - (define-key map [backtab] #'magit-section-cycle-global) - (define-key map (kbd "^") #'magit-section-up) - (define-key map (kbd "p") #'magit-section-backward) - (define-key map (kbd "n") #'magit-section-forward) - (define-key map (kbd "M-p") #'magit-section-backward-sibling) - (define-key map (kbd "M-n") #'magit-section-forward-sibling) - (define-key map (kbd "1") #'magit-section-show-level-1) - (define-key map (kbd "2") #'magit-section-show-level-2) - (define-key map (kbd "3") #'magit-section-show-level-3) - (define-key map (kbd "4") #'magit-section-show-level-4) - (define-key map (kbd "M-1") #'magit-section-show-level-1-all) - (define-key map (kbd "M-2") #'magit-section-show-level-2-all) - (define-key map (kbd "M-3") #'magit-section-show-level-3-all) - (define-key map (kbd "M-4") #'magit-section-show-level-4-all) + (keymap-set map "<left-fringe> <mouse-1>" #'magit-mouse-toggle-section) + (keymap-set map "<left-fringe> <mouse-2>" #'magit-mouse-toggle-section) + (keymap-set map "TAB" #'magit-section-toggle) + (keymap-set map "C-<tab>" #'magit-section-cycle) + (keymap-set map "M-<tab>" #'magit-section-cycle) + ;; <backtab> is the most portable binding for Shift+Tab. + (keymap-set map "<backtab>" #'magit-section-cycle-global) + (keymap-set map "^" #'magit-section-up) + (keymap-set map "p" #'magit-section-backward) + (keymap-set map "n" #'magit-section-forward) + (keymap-set map "M-p" #'magit-section-backward-sibling) + (keymap-set map "M-n" #'magit-section-forward-sibling) + (keymap-set map "1" #'magit-section-show-level-1) + (keymap-set map "2" #'magit-section-show-level-2) + (keymap-set map "3" #'magit-section-show-level-3) + (keymap-set map "4" #'magit-section-show-level-4) + (keymap-set map "M-1" #'magit-section-show-level-1-all) + (keymap-set map "M-2" #'magit-section-show-level-2-all) + (keymap-set map "M-3" #'magit-section-show-level-3-all) + (keymap-set map "M-4" #'magit-section-show-level-4-all) map) "Parent keymap for all keymaps of modes derived from `magit-section-mode'.") diff --git a/lisp/magit-submodule.el b/lisp/magit-submodule.el index 7219a2938a..8f7ccd41c1 100644 --- a/lisp/magit-submodule.el +++ b/lisp/magit-submodule.el @@ -516,8 +516,8 @@ or, failing that, the abbreviated HEAD commit hash." (defvar magit-module-section-map (let ((map (make-sparse-keymap))) - (define-key map (kbd "C-j") #'magit-submodule-visit) - (define-key map [C-return] #'magit-submodule-visit) + (keymap-set map "C-j" #'magit-submodule-visit) + (keymap-set map "C-<return>" #'magit-submodule-visit) (magit-menu-set map [magit-visit-thing] #'magit-submodule-visit "Visit %s") (magit-menu-set map [magit-stage-file] diff --git a/lisp/magit.el b/lisp/magit.el index 012b76e425..0f49dab8ef 100644 --- a/lisp/magit.el +++ b/lisp/magit.el @@ -307,15 +307,14 @@ Also see info node `(magit)Commands for Buffers Visiting Files'." (defun magit-maybe-define-global-key-bindings (&optional force) (when magit-define-global-key-bindings (let ((map (current-global-map))) - (dolist (elt '(("C-x g" . magit-status) - ("C-x M-g" . magit-dispatch) - ("C-c M-g" . magit-file-dispatch))) - (let ((key (kbd (car elt))) - (def (cdr elt))) - (when (or force - (not (or (lookup-key map key) - (where-is-internal def (make-sparse-keymap) t)))) - (define-key map key def))))))) + (pcase-dolist (`(,key . ,def) + '(("C-x g" . magit-status) + ("C-x M-g" . magit-dispatch) + ("C-c M-g" . magit-file-dispatch))) + (when (or force + (not (or (keymap-lookup map key) + (where-is-internal def (make-sparse-keymap) t)))) + (keymap-set map key def)))))) (if after-init-time (magit-maybe-define-global-key-bindings) (add-hook 'after-init-hook #'magit-maybe-define-global-key-bindings t)))