lib: allow trailing whitespace in regex account aliases
Trailing whitespace in the replacement part of a regular expression account alias is now significant. Eg, slightly flattening some bank accounts: --alias '/:somebank:/=somebank '
This commit is contained in:
parent
4a5d10eb2d
commit
5c85a1dd1c
@ -321,7 +321,7 @@ basicaliasp = do
|
|||||||
old <- rstrip <$> (some $ noneOf ("=" :: [Char]))
|
old <- rstrip <$> (some $ noneOf ("=" :: [Char]))
|
||||||
char '='
|
char '='
|
||||||
many spacenonewline
|
many spacenonewline
|
||||||
new <- rstrip <$> anyChar `manyTill` eolof -- don't require a final newline, good for cli options
|
new <- rstrip <$> anyChar `manyTill` eolof -- eol in journal, eof in command lines, normally
|
||||||
return $ BasicAlias (T.pack old) (T.pack new)
|
return $ BasicAlias (T.pack old) (T.pack new)
|
||||||
|
|
||||||
regexaliasp :: TextParser m AccountAlias
|
regexaliasp :: TextParser m AccountAlias
|
||||||
@ -333,7 +333,7 @@ regexaliasp = do
|
|||||||
many spacenonewline
|
many spacenonewline
|
||||||
char '='
|
char '='
|
||||||
many spacenonewline
|
many spacenonewline
|
||||||
repl <- rstrip <$> anyChar `manyTill` eolof
|
repl <- anyChar `manyTill` eolof
|
||||||
return $ RegexAlias re repl
|
return $ RegexAlias re repl
|
||||||
|
|
||||||
endaliasesdirectivep :: JournalParser m ()
|
endaliasesdirectivep :: JournalParser m ()
|
||||||
|
|||||||
@ -672,8 +672,6 @@ inside an account name, the matched part will be replaced by
|
|||||||
REPLACEMENT.
|
REPLACEMENT.
|
||||||
If REGEX contains parenthesised match groups, these can be referenced
|
If REGEX contains parenthesised match groups, these can be referenced
|
||||||
by the usual numeric backreferences in REPLACEMENT.
|
by the usual numeric backreferences in REPLACEMENT.
|
||||||
Note, currently regular expression aliases may cause noticeable slow-downs.
|
|
||||||
(And if you use Ledger on your hledger file, they will be ignored.)
|
|
||||||
Eg:
|
Eg:
|
||||||
|
|
||||||
```journal
|
```journal
|
||||||
@ -681,6 +679,9 @@ alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
|
|||||||
# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
|
# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Also note that REPLACEMENT continues to the end of line (or on command line,
|
||||||
|
to end of option argument), so it can contain trailing whitespace.
|
||||||
|
|
||||||
#### Multiple aliases
|
#### Multiple aliases
|
||||||
|
|
||||||
You can define as many aliases as you like using directives or command-line options.
|
You can define as many aliases as you like using directives or command-line options.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user