Allow completion on accounts and metadata
This commit is contained in:
parent
902d0f41ef
commit
e604fe5cbb
2 changed files with 33 additions and 8 deletions
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -68,13 +68,18 @@ And calculate the target-delta of the account being reconciled."
|
|||
(message balance))))
|
||||
|
||||
(defun ledger-magic-tab (&optional interactively)
|
||||
"Decide what to with with <TAB> .
|
||||
Can be pcomplete, or align-posting"
|
||||
"Decide what to with with <TAB>.
|
||||
Can indent, complete or align depending on context."
|
||||
(interactive "p")
|
||||
(if (and (> (point) 1)
|
||||
(looking-back "[:A-Za-z0-9]" 1))
|
||||
(ledger-pcomplete interactively)
|
||||
(ledger-post-align-postings)))
|
||||
(when (= (point) (line-end-position))
|
||||
(if (= (point) (line-beginning-position))
|
||||
(indent-to ledger-post-account-alignment-column)
|
||||
(save-excursion
|
||||
(re-search-backward ledger-account-or-metadata-regex
|
||||
(line-beginning-position) t))
|
||||
(when (= (point) (match-end 0))
|
||||
(ledger-pcomplete interactively))))
|
||||
(ledger-post-align-postings))
|
||||
|
||||
(defvar ledger-mode-abbrev-table)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue