doomemacs/modules/lang/ledger/config.el
Henrik Lissner 77e4cc4d58
💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00

57 lines
1.9 KiB
EmacsLisp

;;; lang/ledger/config.el -*- lexical-binding: t; -*-
;; `ledger-mode'
(setq ledger-clear-whole-transactions 1)
(defun +ledger*check-version (orig-fn)
"Fail gracefully if ledger binary isn't available."
(if (executable-find ledger-binary-path)
(funcall orig-fn)
(message "Couldn't find '%s' executable" ledger-binary-path)))
(advice-add #'ledger-check-version :around #'+ledger*check-version)
;; Restore leader key in ledger reports
(map! :after ledger-mode
:map ledger-report-mode-map
"C-c C-c" #'ledger-report-edit-report
"C-c C-r" #'ledger-report-redo
"C-c C-s" #'ledger-report-save
:map ledger-reconcile-mode-map
[tab] #'ledger-reconcile-toggle)
(def-package! flycheck-ledger
:when (featurep! :tools flycheck)
:after ledger-mode)
(def-package! evil-ledger
:when (featurep! :editor evil +everywhere)
:hook (ledger-mode . evil-ledger-mode)
:config
(set-evil-initial-state! 'ledger-report-mode 'normal)
(map! :map ledger-report-mode-map
:n "q" #'ledger-report-quit
:n "RET" #'ledger-report-edit-report
:n "gd" #'ledger-report-visit-source
:n "gr" #'ledger-report-redo
:map ledger-mode-map
:m "]]" #'ledger-navigate-next-xact-or-directive
:m "[[" #'ledger-navigate-prev-xact-or-directive
:localleader
:map ledger-mode-map
"a" #'ledger-add-transaction
"t" #'ledger-toggle-current
"d" #'ledger-delete-current-transaction
"r" #'ledger-report
"R" #'ledger-reconcile
"s" #'ledger-sort-region
"S" #'ledger-schedule-upcoming
(:prefix "g"
"s" #'ledger-display-ledger-stats
"b" #'ledger-display-balance-at-point))
;; Fix inaccurate keybind message
(defun +ledger*fix-key-help (&rest _)
(message "q to quit; gr to redo; RET to edit; C-c C-s to save"))
(advice-add #'ledger-report :after #'+ledger*fix-key-help))