imp: acc: --declarations -> --positions; add --directives
And tweak the layout of flags in --help.
This commit is contained in:
parent
d4f7137c4a
commit
5fd5cd5b85
@ -33,13 +33,13 @@ import Control.Monad (forM_)
|
|||||||
-- | Command line options for this command.
|
-- | Command line options for this command.
|
||||||
accountsmode = hledgerCommandMode
|
accountsmode = hledgerCommandMode
|
||||||
$(embedFileRelative "Hledger/Cli/Commands/Accounts.txt")
|
$(embedFileRelative "Hledger/Cli/Commands/Accounts.txt")
|
||||||
([flagNone ["declared"] (setboolopt "declared") "show account names declared with account directives"
|
(flattreeflags False ++
|
||||||
,flagNone ["used"] (setboolopt "used") "show account names referenced by transactions"
|
|
||||||
,flagNone ["types"] (setboolopt "types") "also show accounts' types, when known"
|
|
||||||
,flagNone ["declarations"] (setboolopt "declarations") "also show where accounts were declared, for troubleshooting"
|
|
||||||
]
|
|
||||||
++ flattreeflags False ++
|
|
||||||
[flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts"
|
[flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts"
|
||||||
|
,flagNone ["declared"] (setboolopt "declared") "show only accounts declared by account directive"
|
||||||
|
,flagNone ["used"] (setboolopt "used") "show only accounts referenced by transactions"
|
||||||
|
,flagNone ["types"] (setboolopt "types") "show accounts' types, when known"
|
||||||
|
,flagNone ["positions"] (setboolopt "positions") "show where accounts were declared"
|
||||||
|
,flagNone ["directives"] (setboolopt "directives") "show valid account directives usable in journals"
|
||||||
])
|
])
|
||||||
[generalflagsgroup1]
|
[generalflagsgroup1]
|
||||||
hiddenflags
|
hiddenflags
|
||||||
@ -54,7 +54,8 @@ accounts CliOpts{rawopts_=rawopts, reportspec_=ReportSpec{_rsQuery=query,_rsRepo
|
|||||||
declared = boolopt "declared" rawopts
|
declared = boolopt "declared" rawopts
|
||||||
used = boolopt "used" rawopts
|
used = boolopt "used" rawopts
|
||||||
types = boolopt "types" rawopts
|
types = boolopt "types" rawopts
|
||||||
declarations = boolopt "declarations" rawopts
|
positions = boolopt "positions" rawopts
|
||||||
|
directives = boolopt "directives" rawopts
|
||||||
-- a depth limit will clip and exclude account names later, but we don't want to exclude accounts at this stage
|
-- a depth limit will clip and exclude account names later, but we don't want to exclude accounts at this stage
|
||||||
nodepthq = dbg4 "nodepthq" $ filterQuery (not . queryIsDepth) query
|
nodepthq = dbg4 "nodepthq" $ filterQuery (not . queryIsDepth) query
|
||||||
-- just the acct: part of the query will be reapplied later, after clipping
|
-- just the acct: part of the query will be reapplied later, after clipping
|
||||||
@ -84,8 +85,9 @@ accounts CliOpts{rawopts_=rawopts, reportspec_=ReportSpec{_rsQuery=query,_rsRepo
|
|||||||
sortedaccts
|
sortedaccts
|
||||||
|
|
||||||
-- 4. print what remains as a list or tree, maybe applying --drop in the former case.
|
-- 4. print what remains as a list or tree, maybe applying --drop in the former case.
|
||||||
-- With --types, also show the account type.
|
-- Add various bits of info if enabled.
|
||||||
let
|
let
|
||||||
|
showKeyword = if directives then "account " else ""
|
||||||
-- some contortions here to show types nicely aligned
|
-- some contortions here to show types nicely aligned
|
||||||
showName a = case accountlistmode_ ropts of
|
showName a = case accountlistmode_ ropts of
|
||||||
ALTree -> indent <> accountLeafName droppedName
|
ALTree -> indent <> accountLeafName droppedName
|
||||||
@ -97,7 +99,7 @@ accounts CliOpts{rawopts_=rawopts, reportspec_=ReportSpec{_rsQuery=query,_rsRepo
|
|||||||
| types = pad a <> " ; type: " <> maybe "" (T.pack . show) (journalAccountType j a)
|
| types = pad a <> " ; type: " <> maybe "" (T.pack . show) (journalAccountType j a)
|
||||||
| otherwise = ""
|
| otherwise = ""
|
||||||
showAcctDeclOrder a
|
showAcctDeclOrder a
|
||||||
| declarations =
|
| positions =
|
||||||
(if types then "," else pad a <> " ;") <>
|
(if types then "," else pad a <> " ;") <>
|
||||||
case lookup a $ jdeclaredaccounts j of
|
case lookup a $ jdeclaredaccounts j of
|
||||||
Just adi ->
|
Just adi ->
|
||||||
@ -108,4 +110,4 @@ accounts CliOpts{rawopts_=rawopts, reportspec_=ReportSpec{_rsQuery=query,_rsRepo
|
|||||||
pad a = T.replicate (maxwidth - T.length (showName a)) " "
|
pad a = T.replicate (maxwidth - T.length (showName a)) " "
|
||||||
maxwidth = maximum $ map (T.length . showName) clippedaccts
|
maxwidth = maximum $ map (T.length . showName) clippedaccts
|
||||||
|
|
||||||
forM_ clippedaccts $ \a -> T.putStrLn $ showName a <> showType a <> showAcctDeclOrder a
|
forM_ clippedaccts $ \a -> T.putStrLn $ showKeyword <> showName a <> showType a <> showAcctDeclOrder a
|
||||||
|
|||||||
@ -7,6 +7,7 @@ This command lists account names, either declared with account directives
|
|||||||
(--declared), posted to (--used), or both (the default).
|
(--declared), posted to (--used), or both (the default).
|
||||||
With query arguments, only matched account names and account names
|
With query arguments, only matched account names and account names
|
||||||
referenced by matched postings are shown.
|
referenced by matched postings are shown.
|
||||||
|
|
||||||
It shows a flat list by default. With `--tree`, it uses indentation to
|
It shows a flat list by default. With `--tree`, it uses indentation to
|
||||||
show the account hierarchy.
|
show the account hierarchy.
|
||||||
In flat mode you can add `--drop N` to omit the first few account name components.
|
In flat mode you can add `--drop N` to omit the first few account name components.
|
||||||
@ -15,10 +16,13 @@ Account names can be depth-clipped with `depth:N` or `--depth N` or `-N`.
|
|||||||
With `--types`, it also shows each account's type, if it's known.
|
With `--types`, it also shows each account's type, if it's known.
|
||||||
(See Declaring accounts > Account types.)
|
(See Declaring accounts > Account types.)
|
||||||
|
|
||||||
With `--declarations`, it also shows the file and line number of each
|
With `--positions`, it also shows the file and line number of each
|
||||||
account's declaration, if any, and the account's overall declaration order;
|
account's declaration, if any, and the account's overall declaration order;
|
||||||
these may be useful when troubleshooting account display order.
|
these may be useful when troubleshooting account display order.
|
||||||
|
|
||||||
|
With `--directives`, it adds the `account` keyword, showing
|
||||||
|
valid account directives which can be pasted into a journal file.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user