lib: journal: let alias/apply account affect account directives (#825)
This commit is contained in:
parent
422f1084c9
commit
6924e8390c
@ -459,7 +459,9 @@ secondarydatep primaryDate = char '=' *> datep' (Just primaryYear)
|
||||
|
||||
--- ** account names
|
||||
|
||||
-- | Parse an account name, then apply any parent account prefix and/or account aliases currently in effect.
|
||||
-- | Parse an account name (plus one following space if present),
|
||||
-- then apply any parent account prefix and/or account aliases currently in effect,
|
||||
-- in that order. (Ie first add the parent account prefix, then rewrite with aliases).
|
||||
modifiedaccountnamep :: JournalParser m AccountName
|
||||
modifiedaccountnamep = do
|
||||
parent <- getParentAccount
|
||||
|
||||
@ -248,7 +248,7 @@ accountdirectivep :: JournalParser m ()
|
||||
accountdirectivep = do
|
||||
string "account"
|
||||
lift (skipSome spacenonewline)
|
||||
acct <- lift accountnamep -- eats single spaces
|
||||
acct <- modifiedaccountnamep -- account directives can be modified by alias/apply account
|
||||
macode' :: Maybe String <- (optional $ lift $ skipSome spacenonewline >> some digitChar)
|
||||
let macode :: Maybe AccountCode = read <$> macode'
|
||||
newline
|
||||
|
||||
@ -928,6 +928,9 @@ You can clear (forget) all currently defined aliases with the `end aliases` dire
|
||||
end aliases
|
||||
```
|
||||
|
||||
Account aliases also affect [account directives](#declaring-accounts).
|
||||
They do not affect account names being entered via hledger add or hledger-web.
|
||||
|
||||
### Default parent account
|
||||
|
||||
You can specify a parent account which will be prepended to all accounts
|
||||
@ -963,6 +966,10 @@ include personal.journal
|
||||
|
||||
Prior to hledger 1.0, legacy `account` and `end` spellings were also supported.
|
||||
|
||||
A default parent account also affects [account directives](#declaring-accounts).
|
||||
It does not affect account names being entered via hledger add or hledger-web.
|
||||
If account aliases are present, they are applied after the default parent account.
|
||||
|
||||
## Periodic transactions
|
||||
|
||||
Periodic transaction rules describe transactions that recur.
|
||||
|
||||
19
tests/journal/accounts.test
Normal file
19
tests/journal/accounts.test
Normal file
@ -0,0 +1,19 @@
|
||||
# account names
|
||||
|
||||
# 1. account directives are affected by aliases and apply account.
|
||||
<
|
||||
apply account c
|
||||
alias c:a=b
|
||||
account a
|
||||
$ hledger -f - accounts
|
||||
b
|
||||
|
||||
|
||||
|
||||
# TODO
|
||||
# a trailing : should give a clear error
|
||||
# 2009/1/1
|
||||
# a: 1
|
||||
# $ hledger -f - print
|
||||
# >2 /accountname seems ill-formed: a:/
|
||||
# >= 1
|
||||
Loading…
Reference in New Issue
Block a user