From 7e5a71994814638c9ef231743af79b97747c381e Mon Sep 17 00:00:00 2001 From: Timo Wilken Date: Sat, 28 Oct 2023 13:35:11 +0200 Subject: Reformat Ledger files on save --- tw/home/files/emacs-init.el | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tw/home/files/emacs-init.el') 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.") -- cgit v1.2.3