Commit Graph

29 Commits

Author SHA1 Message Date
8406c1ff22 feat(beancount): highlight custom directives
Doesn't seem to be done by beancount-mode, so...
2025-05-24 17:32:27 +02:00
d3e8ca8d9d feat(beancount): enhance completion across the board
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!
2025-05-22 16:33:23 +02:00
a02871ba83 feat(beancount): support lines only read by linter
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.
2025-05-22 16:33:23 +02:00
8627117d63 feat(beancount): activate on *.bean files too 2025-05-22 16:33:23 +02:00
57b8d5fd8e fix(beancount): flymake-bean: false positives from relative paths
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.
2025-05-18 00:33:14 +02:00
bda27228eb fix(beancount): linter in narrowed buffers
flymake-bean only sends the visible buffer to bean-check, causing a
cascade of unhelpful linter warnings and errors.
2025-05-18 00:32:49 +02:00
ca7e226e13 refactor(beancount): simplify +beancount--open-in-browser-after-starting-fix-a 2025-04-30 04:00:23 -04:00
f8f979a581 tweak(beancount): bind sort commands to <localleader> s
And move old +beancount/occur to <localleader> S.
2025-04-30 03:54:16 -04:00
4fa3bb4950 feat(beancount): add eval handler
Allows interop with the :tools eval module. Evaluating regions will now
invoke `bean-doctor region ...` on the selection.
2025-04-30 03:54:15 -04:00
440e952056 fix(beancount): +beancount/balance: make v3 compliant
bean-report was removed in beancount v3+, so we defer to bean-query,
which is present in both v2 and v3 (though it lives in a separate repo
in v3).
2025-04-30 03:54:15 -04:00
ac0a327721 fix(beancount): activate flymake-mode
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.
2025-04-30 03:53:41 -04:00
5e2e886b35 nit: comment revision & reformatting 2024-08-15 23:18:47 -04:00
90bbd7101a fix(beancount): beancount-fava failing to open browser 2024-07-18 20:56:10 -04:00
5718e4e96e bump: :lang
Andersbakken/rtags@05117a9a29 -> Andersbakken/rtags@bd1c818a99
FStarLang/fstar-mode.el@7d353de892 -> FStarLang/fstar-mode.el@6e5d3ea858
JuliaEditorSupport/julia-emacs@2dfc869ff6 -> JuliaEditorSupport/julia-emacs@d360ad5285
ProofGeneral/PG@a38857a6a0 -> ProofGeneral/PG@99f91e873e
Raku/raku-mode@977b14a7c1 -> Raku/raku-mode@14f9b9bba0
Wilfred/pip-requirements.el@216cd1690f -> Wilfred/pip-requirements.el@31e0dc62ab
Wilfred/pyimport@c006a5fd0e -> Wilfred/pyimport@4398ce8dd6
ananthakumaran/exunit.el@e008c89e01 -> ananthakumaran/exunit.el@ee06b14b61
beancount/beancount-mode@546163fd2c -> beancount/beancount-mode@71c1622246
cybniv/poetry.el@ca2cffb0b1 -> cybniv/poetry.el@1dff0d4a51
davazp/graphql-mode@49a391b529 -> davazp/graphql-mode@ef4aecaead
dgutov/robe@4ecd868da9 -> dgutov/robe@6bc8a07fc4
diml/utop@8cc5632825 -> diml/utop@384b3098c8
dominikh/go-mode.el@6f4ff9ef87 -> dominikh/go-mode.el@636d36e37a
emacs-lsp/emacs-ccls@9b4a47e041 -> emacs-lsp/emacs-ccls@8648238a92
emacs-lsp/lsp-dart@f51c80f545 -> emacs-lsp/lsp-dart@1f52e81c93
emacs-lsp/lsp-haskell@89d1637043 -> emacs-lsp/lsp-haskell@18a7c7881f
emacs-lsp/lsp-java@c962a3b3ac -> emacs-lsp/lsp-java@4909c14b90
emacs-lsp/lsp-metals@e55d544996 -> emacs-lsp/lsp-metals@fa4072cbe7
emacs-lsp/lsp-pyright@2f2631ae24 -> emacs-lsp/lsp-pyright@cc6df06aea
emacs-lsp/lsp-sourcekit@1cd5e7d269 -> emacs-lsp/lsp-sourcekit@bb2b7e0278
emacs-lsp/lsp-treemacs@e54e74deb8 -> emacs-lsp/lsp-treemacs@1d43e9e030
emacs-php/composer.el@91945f1bdb -> emacs-php/composer.el@42cf9848d4
emacs-php/php-mode@a0bcafbe30 -> emacs-php/php-mode@4792988a12
emacs-php/phpactor.el@8733fef84b -> emacs-php/phpactor.el@6b5269ff82
emacs-php/psysh.el@c7dde979d9 -> emacs-php/psysh.el@ae15a36301
emacs-straight/adaptive-wrap@70005d2012 -> emacs-straight/adaptive-wrap@a3b179ea21
emacs-straight/auctex@86b2397abd -> emacs-straight/auctex@280cd4a0ca
emacs-straight/csv-mode@81c1a9febd -> emacs-straight/csv-mode@cdb73a771b
emacs-straight/sml-mode@e5354371f3 -> emacs-straight/sml-mode@d114e5a27f
emacsorphanage/dart-mode@dffc0209a1 -> emacsorphanage/dart-mode@44beb628e5
erlang/otp@0ca7e064f5 -> erlang/otp@2a64588d4a
factor/factor@12fc9d5071 -> factor/factor@d143007778
fosskers/sly-overlay@916b50297a -> fosskers/sly-overlay@4c6135c260
fsharp/emacs-fsharp-mode@b4d31c3da0 -> fsharp/emacs-fsharp-mode@677d78c4d6
gcv/julia-snail@a25ce84748 -> gcv/julia-snail@f7784c5007
godotengine/emacs-gdscript-mode@8a28276daa -> godotengine/emacs-gdscript-mode@32086df833
greghendershott/racket-mode@d3ab936af1 -> greghendershott/racket-mode@40ecb87f40
haskell/haskell-mode@43b4036bf0 -> haskell/haskell-mode@727f72a2a4
hhvm/hack-mode@278e4cc403 -> hhvm/hack-mode@ccf20511f0
idris-hackers/idris-mode@37c6b81990 -> idris-hackers/idris-mode@38dd2380dc
joaotavora/sly@ed17d2c2bd -> joaotavora/sly@ba40c8f054
jrblevin/markdown-mode@e096bb97a9 -> jrblevin/markdown-mode@8aab017f47
json-emacs/json-mode@bfd1557aaa -> json-emacs/json-mode@77125b01c0
jwiegley/emacs-async@d040f72cb0 -> jwiegley/emacs-async@cff2bd0be3
ledger/ledger-mode@11e748d483 -> ledger/ledger-mode@b0e65f74a5
ljos/jq-mode@37028e1200 -> ljos/jq-mode@a0f79eba78
nonsequitur/inf-ruby@dac615c7fd -> nonsequitur/inf-ruby@0cfe8b2fb1
ocaml-ppx/ocamlformat@b8b0956690 -> ocaml-ppx/ocamlformat@c43f89bc0e
ocaml/dune@64d19876ad -> ocaml/dune@aac3d84f1d
ocaml/merlin@8404f96693 -> ocaml/merlin@b6ff2d4d56
pythonic-emacs/anaconda-mode@efd42aa873 -> pythonic-emacs/anaconda-mode@79fa9b4d2b
pythonic-emacs/company-anaconda@dabc0adc9a -> pythonic-emacs/company-anaconda@1fe526163c
pythonic-emacs/pyenv-mode@c93dc07e85 -> pythonic-emacs/pyenv-mode@de0d750b9c
rust-lang/rust-mode@d8a09f218e -> rust-lang/rust-mode@d00d83d3a2
salmanebah/opencl-mode@15091eff92 -> salmanebah/opencl-mode@10ae7742d5
seagle0128/grip-mode@e145adb225 -> seagle0128/grip-mode@7c42b8f61d
smihica/emmet-mode@63b6932603 -> smihica/emmet-mode@322d3bb112
swift-emacs/swift-mode@84059659de -> swift-emacs/swift-mode@b06c97b909
technomancy/fennel-mode@5965c8fc69 -> technomancy/fennel-mode@a4ddd1750f
tpapp/julia-repl@4947319bc9 -> tpapp/julia-repl@801d0fc3d8
wbolster/emacs-python-pytest@bdfb3e81ee -> wbolster/emacs-python-pytest@9f850e22df
yoshiki/yaml-mode@5b58248ab2 -> yoshiki/yaml-mode@7b5ce294fb
2024-06-26 22:58:01 -04:00
1baea0c4c2 feat(beancount): add +beancount/occur command
Inspired by org-occur (or org-sparse-tree): hides all
transactions/directives in the buffer that don't involve a selected
account.
2023-09-20 20:24:00 +02:00
9787022b83 refactor!: replace all-the-icons with nerd-icons
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: #7368
Close: #6675
Close: #7364
2023-09-14 01:03:55 +02:00
c1b0326ce7 bump: :core
Fanael/rainbow-delimiters@a32b39bdfe -> Fanael/rainbow-delimiters@f40ece58df
Wilfred/helpful@c57ff0d284 -> Wilfred/helpful@66ba816b26
domtronn/all-the-icons.el@f491f39c21 -> domtronn/all-the-icons.el@be9d5dcda9
emacs-compat/compat@75d0b8527f -> emacs-compat/compat@ecf53005ab
emacs-straight/project@6c41ad68ed -> emacs-straight/project@ce140cdb70
joddie/pcre2el@b941ed8a96 -> joddie/pcre2el@018531ba0c
jscheid/dtrt-indent@be07f4979a -> jscheid/dtrt-indent@e0630f74f9
justbur/emacs-which-key@df6b0cb844 -> justbur/emacs-which-key@4d20bc8525
2023-09-11 23:53:01 +02:00
9d9b278914 feat(beancount): add {next,previous}-transaction commands 2023-02-25 20:47:29 -05:00
ad6a3d0f33 refactor: deprecate featurep! for modulep!
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.
2022-08-14 20:43:35 +02:00
d58d084774 tweak(:lang,:tools): start eglot/lsp-mode later
To ensure lsp/eglot settings have precedence over local servers (e.g.
cider and lookup handlers).

Ref: clojure-emacs/cider#3170
2022-03-30 17:32:47 +02:00
958472b048 feat(beancount): add clone-transaction commands 2022-02-10 21:07:20 +01:00
fb8d540422 refactor!(beancount): disable explicit currency
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
2021-09-30 15:07:21 +02:00
3d302c3304 bump: :lang beancount
beancount/beancount-mode@dbafe6a73d -> beancount/beancount-mode@ea8257881b

Some of our local changes were upstreamed.

Ref beancount/beancount-mode#17
Ref beancount/beancount-mode#18
2021-09-30 15:06:34 +02:00
a760c679a3 lang/beancount: remove redundant lsp config
lsp-beancount support was added upstream in emacs-lsp/lsp-mode@b294e74
2021-07-13 14:38:34 -04:00
5fca440beb lang/beancount: add beancount-langserver support
Mentioned in #5035.
Remove when emacs-lsp/lsp-mode#2863 is resolved.
2021-05-11 17:57:21 -04:00
980b3730f1 lang/beancount: fix beancount-mode+lsp support
Mentioned in #5035
2021-05-11 17:00:11 -04:00
febe4a7403 Fix #5035: assocate *.beancount with beancount-mode
Otherwise, use-package implicitly associates *.beancount with
a function called `beancount`, which does not exist.
2021-05-11 16:22:00 -04:00
ebc5a5ff1e lang/beancount: fix config & more electricity
+ 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.
2021-04-15 14:19:18 -04:00
8a083d1370 Add :lang beancount module 2021-04-14 23:31:13 -04:00