mirror of
https://github.com/simonmichael/hledger.git
synced 2025-01-06 02:23:46 +03:00
077e3c6a02
The regex account aliases added in 0.24 trip up people switching between hledger and Ledger. (Also they are currently slow). This change makes the old non-regex aliases the default; they are unsurprising, useful, and pretty close in functionality to Ledger's. The new regex aliases are also available; they must be enclosed in forward slashes. Ledger effectively ignores these, which is ok. Also clarify docs, refactor, and use the same parser for alias directives and alias options
108 lines
1.7 KiB
Plaintext
108 lines
1.7 KiB
Plaintext
# 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
|