This is a workaround for a cmdargs limitation. Having "--debug 2"
or "--width 100" produce no output (because the number is parsed
as a separate argument) is too annoying.
Can be helpful when reading Ledger files, where assertions may have
different semantics; or for getting some answers from your journal
to help you fix your assertions.
Could be called --no-assertions, but this might create surprise when it
has an effect contrary to --no-new-accounts.
I had to add another flag throughout the parsers & journal read
functions, ok for now.
Drop the special case where we hide an add-on's source version if a
compiled version is also present. Better to be simple and explicit.
Improve robustness of command parsing, eg "hledger addon.hs"
will now work even though the command is listed as "addon".
And ignore any add-ons which would shadow a built-in command
(or any of the official command aliases displayed in the command list,
like "bal" and "reg"). Built-ins may not be replaced by an add-on.
We now hide add-ons' file extensions in the commands list except when
they are needed for disambiguation. There are three cases:
- when an add-on exists with only one file extension, the extension is
not displayed.
- when an add-on has exactly two variants, one with the .[l]hs extension
and the other with none or .exe - presumably the source and compiled
versions - we omit the source version from the list.
- otherwise when an add-on has multiple variants differing by file
extension, they are listed with their extensions displayed.
In addition to hledger-X and hledger-X.hs, other common executable file
extensions will be recognised. In particular, on windows hledger now
lists hledger-web.exe as an add-on. The current list is:
bat, com, exe, hs, lhs, pl, py, rb, rkt, sh.
Previously executables with eg digits in their name were ignored.
It now finds all files beginning with hledger-, optionally ending with
.hs or .lhs, and with no other dots in the name.
As before, we don't check for executable permission (performance ?).
Two new multi-column balance report modes show ending balance per
period: `--cumulative`, starting from 0, and `--historical`, starting
from the historical starting balance.
The balance command's specification has been clarified and consolidated
in the Balance.hs haddock. Reports.hs has also had haddock updates. The
old AccountsReport type is now BalanceReport, still used by
single-column balance report. The new MultiBalanceReport type is used by
the multi-column reports.
Command line processing has been overhauled and made more consistent,
and now has tests and extensive debug output. More flags now work
both before and after COMMAND: -f, --rule-file, --alias, --help,
--debug, --version. Command line help, command aliases, API docs and
code have been improved.
- use new query system for command line too, filterspec is no more
- move unit tests near the code they test, run them in bottom up order, add more
- more precise Show instances, used for debugging not ui