Generate interactive popup functions (thanks Rémi).
This commit is contained in:
parent
eba6873dc1
commit
527cc7af10
2 changed files with 31 additions and 49 deletions
|
@ -298,4 +298,18 @@ put it in magit-key-mode-key-maps for fast lookup."
|
|||
(magit-key-mode-draw-switches switches)
|
||||
(magit-key-mode-draw-args arguments)))
|
||||
|
||||
(defun magit-key-mode-generate (sym)
|
||||
"Generate the key-group menu for SYM"
|
||||
(let ((opts (magit-key-mode-options-for-group sym)))
|
||||
(eval
|
||||
`(defun ,(intern (concat "magit-key-mode-popup-" (symbol-name sym))) nil
|
||||
,(concat "Key menu for " (symbol-name sym))
|
||||
(interactive)
|
||||
(magit-key-mode (quote ,sym))))))
|
||||
|
||||
;; create the interactive functions for the key mode popups
|
||||
(mapc (lambda (g)
|
||||
(magit-key-mode-generate (car g)))
|
||||
magit-key-mode-groups)
|
||||
|
||||
(provide 'magit-key-mode)
|
||||
|
|
66
magit.el
66
magit.el
|
@ -374,36 +374,20 @@ Many Magit faces inherit from this one by default."
|
|||
(define-key map (kbd "g") 'magit-refresh)
|
||||
(define-key map (kbd "G") 'magit-refresh-all)
|
||||
(define-key map (kbd "?") 'magit-describe-item)
|
||||
(define-key map (kbd "!") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'running)))
|
||||
(define-key map (kbd "!") 'magit-key-mode-popup-running)
|
||||
(define-key map (kbd ":") 'magit-git-command)
|
||||
(define-key map (kbd "RET") 'magit-visit-item)
|
||||
(define-key map (kbd "SPC") 'magit-show-item-or-scroll-up)
|
||||
(define-key map (kbd "DEL") 'magit-show-item-or-scroll-down)
|
||||
(define-key map (kbd "C-w") 'magit-copy-item-as-kill)
|
||||
(define-key map (kbd "R") 'magit-rebase-step)
|
||||
(define-key map (kbd "t") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'tagging)))
|
||||
(define-key map (kbd "r") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'rewriting)))
|
||||
(define-key map (kbd "P") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'pushing)))
|
||||
(define-key map (kbd "f") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'fetching)))
|
||||
(define-key map (kbd "b") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'branching)))
|
||||
(define-key map (kbd "F") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'pulling)))
|
||||
(define-key map (kbd "l") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'logging)))
|
||||
(define-key map (kbd "t") 'magit-key-mode-popup-tagging)
|
||||
(define-key map (kbd "r") 'magit-key-mode-popup-rewriting)
|
||||
(define-key map (kbd "P") 'magit-key-mode-popup-pushing)
|
||||
(define-key map (kbd "f") 'magit-key-mode-popup-fetching)
|
||||
(define-key map (kbd "b") 'magit-key-mode-popup-branching)
|
||||
(define-key map (kbd "F") 'magit-key-mode-popup-pulling)
|
||||
(define-key map (kbd "l") 'magit-key-mode-popup-logging)
|
||||
(define-key map (kbd "$") 'magit-display-process)
|
||||
(define-key map (kbd "c") 'magit-log-edit)
|
||||
(define-key map (kbd "E") 'magit-interactive-rebase)
|
||||
|
@ -435,20 +419,14 @@ Many Magit faces inherit from this one by default."
|
|||
(define-key map (kbd "a") 'magit-apply-item)
|
||||
(define-key map (kbd "A") 'magit-cherry-pick-item)
|
||||
(define-key map (kbd "v") 'magit-revert-item)
|
||||
(define-key map (kbd "b") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'branching)))
|
||||
(define-key map (kbd "m") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'merging)))
|
||||
(define-key map (kbd "b") 'magit-key-mode-popup-branching)
|
||||
(define-key map (kbd "m") 'magit-key-mode-popup-merging)
|
||||
(define-key map (kbd "k") 'magit-discard-item)
|
||||
(define-key map (kbd "e") 'magit-interactive-resolve-item)
|
||||
(define-key map (kbd "C") 'magit-add-log)
|
||||
(define-key map (kbd "x") 'magit-reset-head)
|
||||
(define-key map (kbd "X") 'magit-reset-working-tree)
|
||||
(define-key map (kbd "z") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'stashing)))
|
||||
(define-key map (kbd "z") 'magit-key-mode-popup-stashing)
|
||||
map))
|
||||
|
||||
(defvar magit-stash-mode-map
|
||||
|
@ -470,17 +448,11 @@ Many Magit faces inherit from this one by default."
|
|||
(define-key map (kbd "a") 'magit-apply-item)
|
||||
(define-key map (kbd "A") 'magit-cherry-pick-item)
|
||||
(define-key map (kbd "v") 'magit-revert-item)
|
||||
(define-key map (kbd "b") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'branching)))
|
||||
(define-key map (kbd "m") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'merging)))
|
||||
(define-key map (kbd "b") 'magit-key-mode-popup-branching)
|
||||
(define-key map (kbd "m") 'magit-key-mode-popup-merging)
|
||||
(define-key map (kbd "x") 'magit-reset-head)
|
||||
(define-key map (kbd "e") 'magit-log-show-more-entries)
|
||||
(define-key map (kbd "l") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'logging)))
|
||||
(define-key map (kbd "l") 'magit-key-mode-popup-logging)
|
||||
map))
|
||||
|
||||
(defvar magit-reflog-mode-map
|
||||
|
@ -514,12 +486,8 @@ Many Magit faces inherit from this one by default."
|
|||
(define-key map (kbd "a") 'magit-apply-item)
|
||||
(define-key map (kbd "A") 'magit-cherry-pick-item)
|
||||
(define-key map (kbd "v") 'magit-revert-item)
|
||||
(define-key map (kbd "b") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'branching)))
|
||||
(define-key map (kbd "m") (lambda ()
|
||||
(interactive)
|
||||
(magit-key-mode 'merging)))
|
||||
(define-key map (kbd "b") 'magit-key-mode-popup-branching)
|
||||
(define-key map (kbd "m") 'magit-key-mode-popup-merging)
|
||||
(define-key map (kbd "x") 'magit-reset-head)
|
||||
(define-key map (kbd "i") 'magit-ignore-item)
|
||||
map))
|
||||
|
@ -3326,7 +3294,7 @@ Tag will point to the current 'HEAD'."
|
|||
(list
|
||||
(read-string "Tag name: ")
|
||||
(magit-read-rev "Place tag on: " (or (magit-default-rev) "HEAD"))))
|
||||
(magit-pop-to-log-edit 'tag))
|
||||
(magit-pop-to-log-edit 'tagging))
|
||||
|
||||
;;; Stashing
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue