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