branch: elpa/beancount
commit b01c8c59c9b68c7a3ebf60e29f8a114a79fec950
Merge: 146b84da97 142c5a400d
Author: Martin Blais <[email protected]>
Commit: GitHub <[email protected]>
Merge branch 'main' into more-xref
---
.github/workflows/tests.yaml | 2 +-
beancount.el | 32 +++++++++++++++++++++-----------
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index 941892f114..bd864de903 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -26,6 +26,6 @@ jobs:
with:
version: ${{ matrix.emacs }}
- run: pip install beancount
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- run: make compile
- run: make test
diff --git a/beancount.el b/beancount.el
index 00ffb15844..0c33e103bf 100644
--- a/beancount.el
+++ b/beancount.el
@@ -163,7 +163,8 @@ from the open directive for the relevant account."
"price"
"query"
"txn")
- "Directive names that can appear after a date and are _not_ followed by an
account.")
+ "Directive names that can appear after a date and are _not_ followed by an
+account.")
(defconst beancount-timestamped-directive-names
(append beancount-account-directive-names
@@ -194,6 +195,7 @@ from the open directive for the relevant account."
"account_previous_conversions"
"account_previous_earnings"
"account_rounding"
+ "account_unrealized_gains"
"allow_deprecated_none_for_tags_and_links"
"allow_pipe_separator"
"booking_method"
@@ -1034,20 +1036,28 @@ Only useful if you have not installed Beancount
properly in your PATH.")
(put 'beancount-tag 'bounds-of-thing-at-point
#'beancount--bounds-of-tag-at-point)
-(defun beancount-linked ()
- "Get the \"linked\" info from `beancount-doctor-program'."
- (interactive)
+(defun beancount-linked--get-target-under-point ()
+ "Get link, tag or line no under point, or nil."
(let ((lnarg (if mark-active
(format "%d:%d"
(line-number-at-pos (region-beginning))
(line-number-at-pos (region-end)))
(format "%d" (line-number-at-pos)))))
- (let* ((word (thing-at-point 'beancount-link))
- (link (when (and word (string-match "\\^" word)) word)))
- (let ((compilation-read-command nil))
- (beancount--run beancount-doctor-program "linked"
- buffer-file-name
- (or link lnarg))))))
+ (let* ((link-word (thing-at-point 'beancount-link))
+ (link (when (and link-word (string-match "\\^" link-word))
link-word))
+ (tag-word (thing-at-point 'beancount-tag))
+ (tag (when (and tag-word (string-match "\\#" tag-word)) tag-word)))
+ (or link tag lnarg))))
+
+(defun beancount-linked ()
+ "Get the \"linked\" info from `beancount-doctor-program', either linked or
tags
+transactions at point."
+ (interactive)
+ (let ((compilation-read-command nil)
+ (target (beancount-linked--get-target-under-point)))
+ (beancount--run beancount-doctor-program "linked"
+ buffer-file-name
+ target)))
;; Note: Eventually we'd like to be able to honor some metadata in the file
that
;; would point to the top-level filename.
@@ -1055,7 +1065,6 @@ Only useful if you have not installed Beancount properly
in your PATH.")
"Run a command with a region as the final arguments."
(when (use-region-p)
(let* ((compilation-read-command nil)
- (region-command (or command "region"))
(args (append command
(list buffer-file-name
(format "%d:%d"
@@ -1266,6 +1275,7 @@ Essentially a much simplified version of `next-line'."
(defun beancount--fava-filter (process output)
"Open fava url as soon as the address is announced."
+ (ignore process)
(if-let ((url (string-match "Running Fava on \\(http://.+:[0-9]+\\)\n"
output)))
(browse-url (match-string 1 output))))