Skip to content

Commit

Permalink
fix(foldtext): handle negative balance assertions (#165) (#166)
Browse files Browse the repository at this point in the history
  • Loading branch information
jmtd authored Jan 28, 2025
1 parent dbc683e commit aabf197
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
13 changes: 12 additions & 1 deletion ftplugin/ledger.vim
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,18 @@ let s:valreg = '\('.
\ '\|'.
\ '[,.][0-9]\+'.
\ '\)'
let s:optional_balance_assertion = '\(\s*=\s*'.s:cursym.'\s*'.s:valreg.'\)\?'
let s:optsgn = '[+-]\?'
let s:cursgn = '\('.
\ s:optsgn.
\ '\s*'.
\ s:cursym.
\ '\|'.
\ s:cursym.
\ '\s*'.
\ s:optsgn.
\ '\)'

let s:optional_balance_assertion = '\(\s*=\s*'.s:cursgn.'\s*'.s:valreg.'\)\?'

let s:rx_amount = s:valreg.
\ s:optional_balance_assertion.
Expand Down
29 changes: 29 additions & 0 deletions test/vim-ledger-test.journal
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
; tests transactions for folds

2025-01-01 test simple fold, no assertion, should read 100.10
io:income
assets:bank £ 100.10

2025-01-01 test positive assertion. should read 100.20
io:income
assets:bank £ 100.20 = £ 200.10

2025-01-01 no assertion, negative txn, should read -13
io:income
assets:bank £ -13

2025-01-01 test negative assertion. should read -400
io:income
assets:bank £ -400 = £ -199.7

2025-01-01 as above, sign and currency swapped. should read -400
io:income
assets:bank £ -400 = - £199.7

2025-01-01 test positive assert. should be 10
io:income
assets:bank £ 10 = £ +12

2025-01-01 test positive assert 2. should be 9
io:income
assets:bank £ 9 = + £ 12

0 comments on commit aabf197

Please sign in to comment.