Support repeating transaction expansion #5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implement expansion of
~repeating transactions into concrete transactions.Depends on
hum3/tree-sitter-goluca#2 — grammar must land first and be incorporated into gotreesitter.
Behaviour
When parsing a
~transaction, expand it into N concrete transactions:repeat 26 daily): generate 26 transactions incrementing by the intervalrepeat monthly until 2024-12-15): generate transactions until the end date (inclusive)Interval semantics
| Interval | Meaning |
|----------|---------||
|
daily| +1 calendar day ||
weekly| +7 calendar days ||
monthly| Same day-of-month; clamp to last day if needed (e.g. Jan 31 → Feb 28/29) ||
yearly| Same day-of-year; Feb 29 → Feb 28 in non-leap years |Linked movements
Linked movements (
+prefix) repeat as a group — each expansion produces a complete transaction with all movements.Expand at parse time
Initial implementation: expand during parsing so downstream code sees only concrete
*transactions. Agoluca expandsubcommand could also materialise to a file.Background
Research doc: https://h3-pta-formats.statichost.eu/research/repeating-transactions.html
Migrated from Codeberg: originally #5, opened 2026-03-27.