# alias-related tests # simple alias directive hledgerdev -f- accounts <<< alias checking = assets:bank:checking 1/1 (checking:a) 1 >>> assets:bank:checking:a >>>=0 # simple alias matches whole account name components only hledgerdev -f- accounts <<< alias a:b = A:B 1/1 (a:b:c) 1 ; should match this 1/1 (a:bb:d) 1 ; should not match this >>> A:B:c a:bb:d >>>=0 # regex alias directive hledgerdev -f- accounts <<< alias /^(.+):bank:([^:]+):?(.*)/ = \1:\2 \3 1/1 (assets:bank:B:checking:a) 1 >>> assets:B checking:a >>>=0 # regex alias pattern is a case-insensitive regular expression # matching anywhere in the account name. All matching aliases are # applied to an account name in turn, most recently seen first. The # replacement can replace multiple matches within the account name. # The replacement pattern supports numeric backreferences. # hledgerdev -f- print <<< alias /a/ = b 2011/01/01 A a 1 a a 2 c alias /A (.)/=\1 2011/01/01 A a 1 a a 2 c >>> 2011/01/01 b b 1 b b 2 c -3 2011/01/01 b 1 b 2 c -3 >>>=0 # --alias command-line options are applied in the order written. # Spaces are allowed if quoted. # hledgerdev -f- print --alias '/A (.)/=a' --alias /a/=b <<< 2011/01/01 a a 1 A a 2 c >>> 2011/01/01 b 1 b 2 c -3 >>>=0 # alias options are applied after alias directives. # hledgerdev -f- print --alias /a/=A --alias /B/=C --alias /B/=D --alias /C/=D <<< alias /^a/=B alias /^a/=E alias E=F 2011/01/01 [a:x] 1 [x:a:x] >>> 2011/01/01 [E:x] 1 [x:A:x] -1 >>>2 >>>=0