Enhances completion for beancount-mode in the following ways:
1. Adds completion for:
- Event directives and values,
- The payee field in transactions,
- Currencies and commodities,
2. Fixes completion for #tag and ^links not working at the end of a
transaction's heading.
3. Completion now scans not only the current file, but any included
files (recursively) for candidates if `+beancount-files' is set to
`auto`. It can otherwise be set to a list of static files or set to
`nil` (reverts to only scanning the current buffer). This applies not
only to completion-at-point functions, but also interactive commands
like `beancount-insert-account'.
This is all very rudimentary and needs polish!
Adds support for meta lines that only the flymake linter will see.
These are lines prefixed by any number of semicolons followed by a hash
then space. E.g.
;# include "../config.beancount"
;# 2025-01-01 pad Assets:Bank Equity:Opening-Balances
This is useful for silencing the linter in multi-file beancount projects
rather than suffer the usual deluge of multiple-include errors and
redundancies.
Beancount tools and Fava recognize relative paths in include and
document directives, and documents options. However, flymake-bean pipes
the buffer's contents to bean-check via /dev/stdin, so paths are
resolved relative to /dev instead of the location of the containing
beancount file, resulting in file errors. This commit expands those
relatives paths before sending the buffer's contents to bean-check to
resolve these false positives.
There is no beancount integration for flycheck (which will be
implemented later), so activate flymake in beancount so users of either
checker can enjoy bean-check linting.
BREAKING CHANGE: This commit replaces all-the-icons with nerd-fonts. Any
all-the-icons-* function calls or variable references in your private
config will break and should be replaced with their nerd-icons-*
equivalent. That said, Doom will continue to install all-the-icons for
a while, so feel free to load it if you don't want to fully commit to
the change yet.
This change is happening because nerd-icon has wider support for GUI and
TUI Emacs; has a larger, more consistent selection of symbols; plus unicode
coverage.
Fix: #7368Close: #6675Close: #7364
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.
featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
BREAKING CHANGE: If `beancount-electric-currency` is non-nil, the
currency is appended to transactions, falling back to the ledger's
"operating_currency" option, even in cases where a currency was not
explicitly needed (e.g. only one currency specified for an account).
After receiving input from beancount-mode's author, I reconsidered its
utility and decided to remove it.
Ref beancount/beancount-mode#19
+ Adds electric alignment of amounts on RET
+ Fixes all of beancount's config (which was running because the package
is called beancount, not beancount-mode)
+ Fixes flood of "invalid face org-level-N" warnings
+ Fixes beancount-electric-currency for appending currency to unlabelled
amounts. Also enables this to fall back to first operating_currency in
document, in available
+ Binds TAB to beancount-outline-cycle on outline heading, otherwise
indent-according-to-mode. No need for completion popup when company
already provides this.