Basic argument display in place.

This commit is contained in:
Phil Jackson 2010-08-31 18:53:37 +01:00
parent 15acede0ee
commit 0604574373

View file

@ -165,7 +165,9 @@
("H" "Reflog on head" magit-reflog-head)) ("H" "Reflog on head" magit-reflog-head))
(switches (switches
("-f" "First parent" "--first-parent") ("-f" "First parent" "--first-parent")
("-a" "All" "--all")))) ("-a" "All" "--all"))
(arguments
("-g" "Grep" "--grep" read-from-minibuffer))))
"Holds the key, help, function mapping for the log-mode. If you "Holds the key, help, function mapping for the log-mode. If you
modify this make sure you reset `magit-key-mode-key-maps' to modify this make sure you reset `magit-key-mode-key-maps' to
nil.") nil.")
@ -180,7 +182,7 @@ put it in magit-key-mode-key-maps for fast lookup."
(let* ((options (magit-key-mode-options-for-group for-group)) (let* ((options (magit-key-mode-options-for-group for-group))
(actions (cdr (assoc 'actions options))) (actions (cdr (assoc 'actions options)))
(switches (cdr (assoc 'switches options))) (switches (cdr (assoc 'switches options)))
(modifiers (cdr (assoc 'modifiers options)))) (arguments (cdr (assoc 'arguments options))))
(let ((map (make-sparse-keymap))) (let ((map (make-sparse-keymap)))
;; all maps should 'quit' with C-g ;; all maps should 'quit' with C-g
(define-key map (kbd "C-g") 'magit-key-mode-kill-buffer) (define-key map (kbd "C-g") 'magit-key-mode-kill-buffer)
@ -197,6 +199,13 @@ put it in magit-key-mode-key-maps for fast lookup."
(magit-key-mode-add-option (magit-key-mode-add-option
',for-group ',for-group
,(nth 2 k)))))) ,(nth 2 k))))))
(when arguments
(dolist (k arguments)
(define-key map (car k) `(lambda ()
(interactive)
(magit-key-mode-add-argument
',for-group
,(nth 2 k))))))
(aput 'magit-key-mode-key-maps for-group map) (aput 'magit-key-mode-key-maps for-group map)
map))) map)))
@ -205,7 +214,7 @@ put it in magit-key-mode-key-maps for fast lookup."
command-line).") command-line).")
(defvar magit-key-mode-header-re (defvar magit-key-mode-header-re
(rx line-start (| "Actions" "Switches") ":")) (rx line-start (| "Actions" "Switches" "Arguments") ":"))
(defvar magit-key-mode-action-re (defvar magit-key-mode-action-re
(rx line-start (rx line-start
@ -227,6 +236,9 @@ put it in magit-key-mode-key-maps for fast lookup."
,@body ,@body
(magit-key-mode-kill-buffer))) (magit-key-mode-kill-buffer)))
(defun magit-key-mode-add-argument (for-group option-name)
)
(defun magit-key-mode-add-option (for-group option-name) (defun magit-key-mode-add-option (for-group option-name)
"Toggles the appearance of OPTION-NAME in "Toggles the appearance of OPTION-NAME in
`magit-key-mode-current-options'." `magit-key-mode-current-options'."
@ -270,6 +282,7 @@ put it in magit-key-mode-key-maps for fast lookup."
"Function used to draw actions, switches and parameters." "Function used to draw actions, switches and parameters."
(let* ((options (magit-key-mode-options-for-group for-group)) (let* ((options (magit-key-mode-options-for-group for-group))
(switches (cdr (assoc 'switches options))) (switches (cdr (assoc 'switches options)))
(arguments (cdr (assoc 'arguments options)))
(actions (cdr (assoc 'actions options)))) (actions (cdr (assoc 'actions options))))
(insert "Actions:\n") (insert "Actions:\n")
(dolist (action actions) (dolist (action actions)
@ -288,7 +301,17 @@ put it in magit-key-mode-key-maps for fast lookup."
(if (member option magit-key-mode-current-options) (if (member option magit-key-mode-current-options)
(propertize option 'font-lock-face 'font-lock-warning-face) (propertize option 'font-lock-face 'font-lock-warning-face)
option) option)
")" ")\n"))))
"\n")))))) (insert "Arguments:\n")
(dolist (argument arguments)
(insert
(concat
" "
(car argument)
": "
(nth 1 argument)
" ("
(nth 2 argument)
")\n")))))
(provide 'magit-key-mode) (provide 'magit-key-mode)