Added a help function.
This commit is contained in:
parent
81bb2ba2d3
commit
82a7d9084f
1 changed files with 18 additions and 1 deletions
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
(defvar magit-key-mode-groups
|
(defvar magit-key-mode-groups
|
||||||
'((logging
|
'((logging
|
||||||
|
(man-page "git-log")
|
||||||
(actions
|
(actions
|
||||||
("l" "Short" magit-log)
|
("l" "Short" magit-log)
|
||||||
("L" "Long" magit-log-long)
|
("L" "Long" magit-log-long)
|
||||||
|
@ -144,6 +145,18 @@ the group FOR-GROUP."
|
||||||
(or (cdr (assoc for-group magit-key-mode-groups))
|
(or (cdr (assoc for-group magit-key-mode-groups))
|
||||||
(error "Unknown group '%s'" for-group)))
|
(error "Unknown group '%s'" for-group)))
|
||||||
|
|
||||||
|
(defun magit-key-mode-help (for-group)
|
||||||
|
(let* ((opts (magit-key-mode-options-for-group for-group))
|
||||||
|
(seq (read-key-sequence "Enter command prefix: "))
|
||||||
|
(actions (cdr (assoc 'actions opts))))
|
||||||
|
;; is it an action? If so popup the help for the to-be-run
|
||||||
|
;; function
|
||||||
|
(if (assoc seq actions)
|
||||||
|
(describe-function (nth 2 (assoc seq actions)))
|
||||||
|
;; otherwise give the user a man page
|
||||||
|
(man (or (cadr (assoc 'man-page opts))
|
||||||
|
(error "No help associated with %s" seq))))))
|
||||||
|
|
||||||
(defun magit-key-mode-build-keymap (for-group)
|
(defun magit-key-mode-build-keymap (for-group)
|
||||||
"Construct a normal looking keymap for the key mode to use and
|
"Construct a normal looking keymap for the key mode to use and
|
||||||
put it in magit-key-mode-key-maps for fast lookup."
|
put it in magit-key-mode-key-maps for fast lookup."
|
||||||
|
@ -156,6 +169,10 @@ put it in magit-key-mode-key-maps for fast lookup."
|
||||||
(define-key map (kbd "C-g") (lambda ()
|
(define-key map (kbd "C-g") (lambda ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(magit-key-mode-command nil)))
|
(magit-key-mode-command nil)))
|
||||||
|
(define-key map (kbd "?") `(lambda ()
|
||||||
|
(interactive)
|
||||||
|
(magit-key-mode-help ',for-group)))
|
||||||
|
|
||||||
(when actions
|
(when actions
|
||||||
(dolist (k actions)
|
(dolist (k actions)
|
||||||
(define-key map (car k) `(lambda ()
|
(define-key map (car k) `(lambda ()
|
||||||
|
@ -245,7 +262,7 @@ put it in magit-key-mode-key-maps for fast lookup."
|
||||||
'magit-key-mode-current-args)
|
'magit-key-mode-current-args)
|
||||||
(make-hash-table))
|
(make-hash-table))
|
||||||
(magit-key-mode-redraw for-group))
|
(magit-key-mode-redraw for-group))
|
||||||
(message "Type bindings prefixing option to action them."))
|
(message "Bindings prefixing options action them. '?' for help"))
|
||||||
|
|
||||||
(defun magit-key-mode-redraw (for-group)
|
(defun magit-key-mode-redraw (for-group)
|
||||||
"(re)draw the magit key buffer."
|
"(re)draw the magit key buffer."
|
||||||
|
|
Loading…
Add table
Reference in a new issue