summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorpaulbdavis <paul@dangersalad.com>2015-09-18 01:40:35 -0400
committerpaulbdavis <paul@dangersalad.com>2015-09-18 09:31:04 -0400
commit92aead05ffba1966216e0cb40bf0ae192f001747 (patch)
tree718c48954bc8580a8bd003984e45a1404a4c54d1 /lisp
parent36de1868791cbb0fa36636494c68afcdb43e502b (diff)
downloadfork-ledger-92aead05ffba1966216e0cb40bf0ae192f001747.tar.gz
fork-ledger-92aead05ffba1966216e0cb40bf0ae192f001747.tar.bz2
fork-ledger-92aead05ffba1966216e0cb40bf0ae192f001747.zip
fontify recurring transaction in ledger-mode [ci skip]
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ledger-fontify.el3
-rw-r--r--lisp/ledger-navigate.el2
-rw-r--r--lisp/ledger-regex.el16
3 files changed, 19 insertions, 2 deletions
diff --git a/lisp/ledger-fontify.el b/lisp/ledger-fontify.el
index 2d4f850e..076e52b7 100644
--- a/lisp/ledger-fontify.el
+++ b/lisp/ledger-fontify.el
@@ -46,7 +46,8 @@
(beginning-of-line)
(while (< (point) end)
(cond ((or (looking-at ledger-xact-start-regex)
- (looking-at ledger-posting-regex))
+ (looking-at ledger-posting-regex)
+ (looking-at ledger-recurring-line-regexp))
(ledger-fontify-xact-at (point)))
((looking-at ledger-directive-start-regex)
(ledger-fontify-directive-at (point))))
diff --git a/lisp/ledger-navigate.el b/lisp/ledger-navigate.el
index 4da857a7..7ac440f7 100644
--- a/lisp/ledger-navigate.el
+++ b/lisp/ledger-navigate.el
@@ -158,7 +158,7 @@ Requires empty line separating xacts."
(save-excursion
(goto-char pos)
(beginning-of-line)
- (if (looking-at "[ =~0-9]")
+ (if (looking-at "[ =~0-9\\[]")
(ledger-navigate-find-xact-extents pos)
(ledger-navigate-find-directive-extents pos))))
diff --git a/lisp/ledger-regex.el b/lisp/ledger-regex.el
index 9d8394df..5d525d95 100644
--- a/lisp/ledger-regex.el
+++ b/lisp/ledger-regex.el
@@ -238,6 +238,22 @@
code
(note end-note))
+(ledger-define-regexp recurring-line
+ (macroexpand
+ `(rx (and line-start
+ (regexp "\\[.+/.+/.+\\]")
+ (? (and (+ blank) (regexp ,ledger-state-regexp)))
+ (? (and (+ blank) (regexp ,ledger-code-regexp)))
+ (+ blank) (+? nonl)
+ (? (regexp ,ledger-end-note-regexp))
+ line-end)))
+ "Match a transaction's first line (and optional notes)."
+ (actual-date full-date actual)
+ (effective-date full-date effective)
+ state
+ code
+ (note end-note))
+
(ledger-define-regexp account
(rx (group (and (not (any blank ?\[ ?\( ?: ?\;)) (*? nonl))))
"")