lib: keep amounts aligned when rendering a transaction with posting flags

Related to #563, when rendering a transaction, we reserve two more chars
of width so that amounts remain aligned when there are posting flags.
Affects hledger-ui's transaction screen, print, hledger-rewrite etc.
This commit is contained in:
Simon Michael 2017-06-04 21:26:18 -07:00
parent 1adc636554
commit 5c09553481
26 changed files with 225 additions and 225 deletions

View File

@ -216,8 +216,8 @@ postingAsLines elideamount onelineamounts ps p = concat [
assertion = maybe "" ((" = " ++) . showAmountWithZeroCommodity) $ pbalanceassertion p
statusandaccount = indent $ fitString (Just $ minwidth) Nothing False True $ pstatusandacct p
where
-- pad to the maximum account name width, to keep amounts aligned
minwidth = maximum $ map (textWidth . T.pack . pacctstr) ps
-- pad to the maximum account name width, plus 2 to leave room for status flags, to keep amounts aligned
minwidth = maximum $ map ((2+) . textWidth . T.pack . pacctstr) ps
pstatusandacct p' = pstatusprefix p' ++ pacctstr p'
pstatusprefix p' | null s = ""
| otherwise = s ++ " "

View File

@ -222,7 +222,7 @@
>>>=0
# Rewrite using diff output
../../bin/hledger-rewrite --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
../../bin/hledger-rewrite.hs --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
<<<
2016/01/01 withdraw
assets:cash $20