Commit Graph

530 Commits

Author SHA1 Message Date
Simon Michael
2af8d7598e cli, web: fix options breakage 2015-08-28 10:49:43 -07:00
Simon Michael
4dd1e9c725 clean up options validation a little 2015-08-28 09:57:01 -07:00
Simon Michael
19c3749b50 balance: move -V helpers to the *Report modules 2015-08-26 10:38:45 -07:00
Simon Michael
e7aa150e52 ui: solidified register screen, added themes
- register screen:
  - smarter width-sensitive layout, with multi-commodity amounts on one line
  - items are sorted in date order
  - jumps to the latest item by default, with consistent scroll position
  - more prerendering, might speed up movement/paging slightly

- themes! --theme to select, --help to list (current themes: default, terminal, greenterm)

- border tweaks - dropped side borders, added side padding
2015-08-24 16:24:11 -07:00
Simon Michael
49e1840a0f ui: rewrite the ui using brick
hledger-ui (formerly hledger-vty) is now built on brick, a new
declarative UI layer built on vty. This brings much new power, and
should make the UI much easier to grow and maintain.

At this point, functionality and performance are similar to the old
version. There's no journal entries screen, but entering the postings
screen jumps to the latest posting, and layout is better (multiple
commodities are rendered on one line).

Requires unreleased brick from github (HEAD or some branch) for now.
2015-08-24 16:24:11 -07:00
Simon Michael
6fd1e965ed fix cabal file regression breaking GHC<7.10 (#280) 2015-08-21 12:19:43 -07:00
Simon Michael
a1e098c292 balance: re-enable a balance unit test 2015-08-19 20:53:51 -07:00
Simon Michael
cc98ee39f7 balance, lib: --format/StringFormat improvements
The balance command's --format option (in single-column mode) can now
adjust the rendering of multi-line strings, such as amounts with multiple
commodities. To control this, begin the format string with one of:

 %_  - renders on multiple lines, bottom-aligned (the default)
 %^  - renders on multiple lines, top-aligned
 %,  - render on one line, comma-separated

Also the final total (and the line above it) now adapt themselves to a
custom format.
2015-08-19 20:53:51 -07:00
Simon Michael
69c870c6f0 balance, lib: make StringFormat singular; cleanup
Pass around a StringFormat rather than [StringFormat].
Also more balance report item rendering refactoring.
2015-08-19 20:53:50 -07:00
Simon Michael
36dd64cf02 balance, lib: clarify --format implementation
The --format option's OutputFormat type was named confusingly like the
--output-format option.  It has been renamed StringFormat to distinguish
it from StorageFormat (aka the data file format, referenced by
--output-format). Related code and types have been consolidated.
Also the (single-column) balance report's item rendering has had
some cleanup.
2015-08-19 20:53:49 -07:00
Simon Michael
e485962a70 cli, web: obey the threaded flag again
[ci skip]
2015-08-13 11:55:58 -07:00
Simon Michael
3932655bde lib: expose two functions required by hledger-ui 2015-08-13 11:53:28 -07:00
Simon Michael
fcb7d297c8 use canonical bugs.hledger.org url in cabal yamls 2015-08-13 10:02:06 -07:00
Simon Michael
48e31d4f8c bump version to 0.26.98 2015-08-12 22:49:04 -07:00
Simon Michael
a9b2e5409c switch to hpack-generated cabal files
The hledger-lib, hledger and hledger-web cabal files are now generated
from the package.yaml files with hpack, plus some manual fixups.
2015-08-12 22:45:08 -07:00
Simon Michael
b91f2b85d0 update hpack package.yaml files 2015-08-12 09:25:28 -07:00
Simon Michael
94094252be rename historical prices to market prices
Simpler and clearer. We now have "transaction prices" (recorded as part
of transaction amounts) and "market prices" (recorded with P
directives). Both are matters of historical record, also this avoids
confusion with the balance command's "historical balances".
2015-08-09 16:20:02 -07:00
Simon Michael
49be1f646e balance: add -V/--value to show as market value
Initial support of market value reporting and currency conversion,
similar in spirit to Ledger's.  The balance command now has a -V/--value
flag that converts all the reported amounts using their "default market
price". That is the latest market price (P directive, formerly called
"historical prices") found in the journal for their commodity that is on
or before the report end date.

Unlike Ledger, hledger's -V only uses the market prices recorded with P
directives, ignoring transaction prices recorded as part of posting
amounts (which -B/--cost uses). Using -B and -V together is allowed.
2015-08-09 16:03:16 -07:00
Simon Michael
9da0ab6af9 doc: give hledger a README on hackage (via symlink) 2015-07-21 12:23:31 -07:00
Simon Michael
78018cc24d tools: yaml definitions for the hledger cabal files
Here are hpack package.yaml files for the other hledger cabal files.
These remove a lot of human-error-prone duplication.
They are not used yet as hpack isn't quite mature enough -
when it supports flags and benchmarks we will probably switch.
2015-07-14 17:32:49 -07:00
Simon Michael
087f3a49bc note older tested-with versions based on hackage builder 2015-07-13 20:23:59 -07:00
Simon Michael
0b2ccdd298 0.26 changelogs/release notes 2015-07-12 17:58:02 -07:00
Simon Michael
3d3c374cc6 update tested-with 2015-07-12 17:36:19 -07:00
Simon Michael
90ae65eda9 cherry pick 0.25.1 changelogs 2015-07-12 15:48:21 -07:00
Simon Michael
e5c0d75117 bump version to 0.26 2015-07-12 15:29:10 -07:00
Simon Michael
2b3bdca6b1 cli: drop shakespeare-text dependency in more places
Drop deprecated shakespeare-text dependency for ghc 7.10+ consistently,
not just in one place. Hopefully this will clear the warning
at packdeps.haskellers.com.
2015-07-12 14:58:06 -07:00
Simon Michael
4c6979c3fc register: comment 2015-06-27 06:40:43 -07:00
Simon Michael
f9f0f16a9c tools: benchmark cleanup 2015-06-27 06:35:00 -07:00
Simon Michael
89513fc256 stats: support -o/--outputfile, useful for benchmarks 2015-06-25 16:31:57 -07:00
Simon Michael
01db48fcfc cli: a more robust and featureful bench test
The bench script invoked by cabal bench or stack bench now links the
benchmarked code directly, avoiding any dependence on the shell and
$PATH. Also, it reports the journal parse time and the various reports
on the parsed data separately, and runs quicker.

You can get more accurate benchmark times by running with --criterion.
This will usually give much the same numbers and takes much longer.

Benchmarking via simplebench is still available, by running with
--simplebench. In this mode it benchmarks whatever commands are
configured in bench/default.bench. A disadvantage is that it uses the
first "hledger" executable in $PATH, so check which one it reports.
2015-06-25 16:08:27 -07:00
Simon Michael
e516aa6c3c stats: fix O(n^2) performance, now much faster on large journals 2015-06-19 11:07:35 -07:00
Simon Michael
745f2dd788 cli: a cabal bench test that works 2015-06-18 09:49:51 -07:00
Simon Michael
335deec496 cli: cabal test suite cleanup 2015-06-18 09:48:18 -07:00
Simon Michael
049baed4d8 register: fix a runtime error with amountless postings 2015-06-11 10:16:45 -07:00
Simon Michael
ce5d87177a update journalFilePathFromOpts haddock 2015-06-04 09:43:15 -07:00
Imuli
49f1744ae5 read multiple files: internals 2015-05-28 10:40:48 -07:00
Imuli
8385da205e read multiple files: options 2015-05-28 10:40:48 -07:00
Simon Michael
20acc45fbb activity: don't exclude 0-amount postings by default 2015-05-21 16:38:17 -07:00
Simon Michael
9e2111106b drop regexpr dependency 2015-05-17 08:32:45 -07:00
Simon Michael
d1f63334ee handle pending status correctly, add --pending (#250)
A transaction/posting status of ! (pending) was effectively equivalent
to * (cleared). Now it's a separate state, not matched by --cleared.
The new Ledger-compatible --pending flag matches it, and so does
--uncleared. The equivalent search queries are now status:*, status:!
and status: (the old status:1 and status:0 spellings are deprecated).

Since we interpret --uncleared and status: as "any state except cleared",
it's not currently possible to match things which are neither cleared
nor pending.
2015-05-16 11:51:35 -07:00
Simon Michael
934d217523 changelogs 2015-05-14 13:39:54 -07:00
Simon Michael
077e3c6a02 journal: re-add non-regex aliases, as default (#252)
The regex account aliases added in 0.24 trip up people switching between
hledger and Ledger. (Also they are currently slow).

This change makes the old non-regex aliases the default; they are
unsurprising, useful, and pretty close in functionality to Ledger's.

The new regex aliases are also available; they must be enclosed in
forward slashes. Ledger effectively ignores these, which is ok.

Also clarify docs, refactor, and use the same parser for alias
directives and alias options
2015-05-14 13:01:50 -07:00
Simon Michael
70d87613f2 some cleanup of debug trace helpers 2015-05-14 13:01:49 -07:00
Simon Michael
61423bdad4 consistently require latest base-compat for sanity 2015-04-29 07:16:08 -07:00
Simon Michael
104cb44d04 fix missing Control.Applicative.Compat (#245) 2015-04-29 07:10:55 -07:00
Simon Michael
dac8a784f4 bump version to 0.26 alpha 2015-04-28 13:48:23 -07:00
Simon Michael
1bc9b71f28 bump version to 0.25 2015-04-28 13:42:41 -07:00
Simon Michael
735f818c22 changelogs 2015-04-07 17:14:44 -07:00
Simon Michael
f75849cdd6 fix ghc 7.10 Applicative import warnings (#239)
Still needed CPP, despite using base-compat.
2015-03-29 16:09:41 -07:00
Simon Michael
592d997438 whitespace 2015-03-29 16:03:23 -07:00