lang/ledger: refactor & show report keys in header line

Rather than in the minibuffer, where it eventually disappears.
This commit is contained in:
Henrik Lissner 2021-03-27 15:47:36 -04:00
parent 5defe3ed88
commit 235db17742

View File

@ -47,30 +47,42 @@
:hook (ledger-mode . evil-ledger-mode) :hook (ledger-mode . evil-ledger-mode)
:config :config
(set-evil-initial-state! 'ledger-report-mode 'normal) (set-evil-initial-state! 'ledger-report-mode 'normal)
(map! :map ledger-report-mode-map (map! (:map ledger-report-mode-map
:n "q" #'ledger-report-quit :n "q" #'ledger-report-quit
:n "RET" #'ledger-report-edit-report :n "RET" #'ledger-report-edit-report
:n "gd" #'ledger-report-visit-source :n "gd" #'ledger-report-visit-source
:n "gr" #'ledger-report-redo :n "gr" #'ledger-report-redo
:map ledger-mode-map ;; This is redundant, but helps `substitute-command-keys' find them
:m "]]" #'ledger-navigate-next-xact-or-directive ;; below, in `+ledger--fix-key-help-a'.
:m "[[" #'ledger-navigate-prev-xact-or-directive :n "C-d" #'evil-scroll-down
:n "C-u" #'evil-scroll-up)
(:map ledger-mode-map
:m "]]" #'ledger-navigate-next-xact-or-directive
:m "[[" #'ledger-navigate-prev-xact-or-directive)
:localleader (:localleader
:map ledger-mode-map :map ledger-mode-map
"a" #'ledger-add-transaction "a" #'ledger-add-transaction
"e" #'ledger-post-edit-amount "e" #'ledger-post-edit-amount
"t" #'ledger-toggle-current "t" #'ledger-toggle-current
"d" #'ledger-delete-current-transaction "d" #'ledger-delete-current-transaction
"r" #'ledger-report "r" #'ledger-report
"R" #'ledger-reconcile "R" #'ledger-reconcile
"s" #'ledger-sort-region "s" #'ledger-sort-region
"S" #'ledger-schedule-upcoming "S" #'ledger-schedule-upcoming
(:prefix "g" (:prefix "g"
"s" #'ledger-display-ledger-stats "s" #'ledger-display-ledger-stats
"b" #'ledger-display-balance-at-point)) "b" #'ledger-display-balance-at-point)))
(defadvice! +ledger--fix-key-help-a (&rest _) (defadvice! +ledger--fix-key-help-a (orig-fn &rest args)
"Fix inaccurate keybind message." "Fix inaccurate keybind message."
:after #'ledger-report :around #'ledger-report
(message "q to quit; gr to redo; RET to edit; C-c C-s to save"))) (quiet! (apply orig-fn args))
(with-current-buffer (get-buffer ledger-report-buffer-name)
(setq header-line-format
(substitute-command-keys
(concat "\\[ledger-report-quit] to quit; "
"\\[ledger-report-redo] to redo; "
"\\[ledger-report-edit-report] to edit; "
"\\[ledger-report-save] to save; "
"\\[evil-scroll-up] and \\[evil-scroll-down] to scroll"))))))