Ad ledger-mode flags to limit sort region for sort buffer

This commit is contained in:
Craig Earls 2013-03-02 20:19:43 -07:00
parent 9a86fe022c
commit c85a91b030
2 changed files with 25 additions and 3 deletions

View file

@ -303,6 +303,21 @@ transactions like automated transaction, will be moved in the sorting
process and may not function correctly afterwards. For this reason process and may not function correctly afterwards. For this reason
there is no key sequence. there is no key sequence.
You can limit the allowed sort region by using embedded Ledger-mode
markup within your ledger. For exmaple
@smallexample
<<< infomration to not sort >>>
; Ledger-mode: Start sort
<<< xacts to sort >>>
;Ledger-mode: End sort
<<< information to not sort >>>
@end smallexample
@node Hiding Transactions, , Sorting Transactions, The Ledger Buffer @node Hiding Transactions, , Sorting Transactions, The Ledger Buffer
@section Hiding Transactions @section Hiding Transactions

View file

@ -54,8 +54,8 @@
;; the beginning of next record ;; the beginning of next record
;; after the region ;; after the region
(setq new-end (point)) (setq new-end (point))
(narrow-to-region beg end) (narrow-to-region new-beg new-end)
(goto-char (point-min)) (goto-char new-beg)
(let ((inhibit-field-text-motion t)) (let ((inhibit-field-text-motion t))
(sort-subr (sort-subr
@ -66,7 +66,14 @@
(defun ledger-sort-buffer () (defun ledger-sort-buffer ()
"Sort the entire buffer." "Sort the entire buffer."
(interactive) (interactive)
(ledger-sort-region (point-min) (point-max))) (let ((sort-start (point-min))
(sort-end (point-max)))
(goto-char (point-min))
(if (re-search-forward ";.*Ledger-mode:.*Start sort" nil t)
(set 'sort-start (match-end 0)))
(if (re-search-forward ";.*Ledger-mode:.*End sort" nil t)
(set 'sort-end (match-end 0)))
(ledger-sort-region sort-start sort-end)))
(provide 'ldg-sort) (provide 'ldg-sort)