summaryrefslogtreecommitdiff
path: root/tw/home/files
diff options
context:
space:
mode:
Diffstat (limited to 'tw/home/files')
-rw-r--r--tw/home/files/emacs-init.el15
1 files changed, 15 insertions, 0 deletions
diff --git a/tw/home/files/emacs-init.el b/tw/home/files/emacs-init.el
index c5d6b5ca..a3391d83 100644
--- a/tw/home/files/emacs-init.el
+++ b/tw/home/files/emacs-init.el
@@ -399,10 +399,25 @@ If CREATE is true and the resulting directory does not exist, create it."
(seq "aliPublish" (* (not ?/)) ".conf"))
eos))
+(defun tw/ledger-format-on-save ()
+ "Re-indent the entire file."
+ ;; Subset of `ledger-mode-clean-buffer'. That also sorts the buffer, which I don't want.
+ (save-excursion
+ (let ((start (point-min-marker))
+ (end (point-max-marker)))
+ (untabify start end)
+ (ledger-post-align-postings start end)
+ (ledger-mode-remove-extra-lines))))
+
+(defun tw/enable-ledger-format-on-save ()
+ "Enable reformating the open file on save."
+ (add-hook 'before-save-hook #'tw/ledger-format-on-save 0 t))
+
(use-package ledger-mode
:after (evil)
:commands (ledger-mode)
:mode (rx ".journal" eos)
+ :hook (ledger-mode . tw/enable-ledger-format-on-save)
:custom
(ledger-default-date-format ledger-iso-date-format "Use hledger-style dates.")
(ledger-reconcile-default-date-format ledger-iso-date-format "Use hledger-style dates.")