summaryrefslogtreecommitdiff
path: root/lisp/ldg-complete.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ldg-complete.el')
-rw-r--r--lisp/ldg-complete.el24
1 files changed, 22 insertions, 2 deletions
diff --git a/lisp/ldg-complete.el b/lisp/ldg-complete.el
index bd907bc8..3ba35909 100644
--- a/lisp/ldg-complete.el
+++ b/lisp/ldg-complete.el
@@ -38,6 +38,11 @@
(point)))
(end (point))
begins args)
+ ;; to support end of line metadata
+ (save-excursion
+ (when (search-backward ";"
+ (line-beginning-position) t)
+ (setq begin (match-beginning 0))))
(save-excursion
(goto-char begin)
(when (< (point) end)
@@ -73,7 +78,7 @@ Return tree structure"
(save-excursion
(goto-char (point-min))
(while (re-search-forward
- ledger-account-any-status-regex nil t)
+ ledger-account-or-metadata-regex nil t)
(unless (and (>= origin (match-beginning 0))
(< origin (match-end 0)))
(setq account-elements
@@ -90,6 +95,21 @@ Return tree structure"
(setq account-elements (cdr account-elements)))))))
account-tree))
+(defun ledger-find-metadata-in-buffer ()
+ "Search through buffer and build list of metadata.
+Return list."
+ (let ((origin (point)) accounts)
+ (save-excursion
+ (setq ledger-account-tree (list t))
+ (goto-char (point-min))
+ (while (re-search-forward
+ ledger-metadata-regex
+ nil t)
+ (unless (and (>= origin (match-beginning 0))
+ (< origin (match-end 0)))
+ (setq accounts (cons (match-string-no-properties 2) accounts)))))
+ accounts))
+
(defun ledger-accounts ()
"Return a tree of all accounts in the buffer."
(let* ((current (caar (ledger-parse-arguments)))
@@ -157,7 +177,7 @@ Does not use ledger xact"
(setq rest-of-name (match-string 3))
;; Start copying the postings
(forward-line)
- (while (looking-at ledger-account-any-status-regex)
+ (while (looking-at ledger-account-or-metadata-regex)
(setq xacts (cons (buffer-substring-no-properties
(line-beginning-position)
(line-end-position))