Fix minor navigation bugs. Prev and next act now properly handle directives and empty lines

This commit is contained in:
Craig Earls 2014-11-15 21:36:34 -07:00
parent 4dbc822f90
commit db7e4fd741
2 changed files with 8 additions and 5 deletions

View file

@ -262,7 +262,7 @@ With a prefix argument, remove the effective date. "
(define-key map [(control ?c) (control ?o) (control ?r)] 'ledger-report)
(define-key map [(control ?c) (control ?o) (control ?s)] 'ledger-report-save)
(define-key map [(meta ?p)] 'ledger-navigate-prev-xact)
(define-key map [(meta ?p)] 'ledger-navigate-prev-xact-or-directive)
(define-key map [(meta ?n)] 'ledger-navigate-next-xact-or-directive)
map)
"Keymap for `ledger-mode'.")

View file

@ -54,11 +54,14 @@ beginning with whitespace"
(ledger-navigate-start-xact-or-directive-p)))
(forward-line))))
(defun ledger-navigate-prev-xact ()
(defun ledger-navigate-prev-xact-or-directive ()
"Move point to beginning of previous xact."
(interactive)
(ledger-navigate-beginning-of-xact)
(re-search-backward ledger-xact-start-regex nil t))
(let ((context (car (ledger-context-at-point))))
(when (equal context 'acct-transaction)
(ledger-navigate-beginning-of-xact))
(beginning-of-line)
(re-search-backward "^[[:graph:]]" nil t)))
(defun ledger-navigate-beginning-of-xact ()
"Move point to the beginning of the current xact"
@ -75,7 +78,7 @@ beginning with whitespace"
"Move point to end of xact."
(interactive)
(ledger-navigate-next-xact-or-directive)
(backward-char)
(re-search-backward "^[ \t]")
(end-of-line)
(point))