Commit Graph

1783 Commits

Author SHA1 Message Date
Dmitry Astapov
98a46fcaeb cli: improve error for roi IRR rootfinding problems (closes #1398) 2020-11-18 01:03:20 +00:00
Simon Michael
9a820a6dec ;doc: fixes 2020-11-17 13:16:17 -08:00
Simon Michael
5f9635c784 ;update changelogs 2020-11-17 10:51:57 -08:00
Simon Michael
3662977c84 ;update manuals 2020-11-17 07:29:57 -08:00
Simon Michael
541aa3ee5b ;update CLI usage texts 2020-11-17 07:29:38 -08:00
Simon Michael
ec2a774b18 cli, lib: move functional tests into hledger/test/ 2020-11-16 08:47:41 -08:00
Simon Michael
2448d07148 ;roi: doc: link example file 2020-11-15 11:20:52 -08:00
Simon Michael
0ce9c352ec add: don't let number style disturb the default (Fixes #1378) 2020-11-14 11:08:01 -08:00
Simon Michael
e8672c4cd5 ;lib: don't catch in maybeFileModificationTime (#1390)
It's overkill.. it's understood that any IO action can
throw an exception, and it's best to handle them at top level,
eg as Yesod does.
2020-11-13 16:50:17 -08:00
Simon Michael
1f94aa1628 ;lib: make file modification/reloading helpers more robust (#1390)
Work on hledger-web tests showed some bad behaviour, in particular
journalReloadIfNewer would always reload a journal read from a string
or stdout. This is now fixed, and an ugly read.show conversion has
been cleaned up.

Hledger.Cli.Utils API changes:

removed:
- journalSpecifiedFileIsNewer
- fileModificationTime

added:
- utcTimeToClockTime

changed:
- journalFileIsNewer now requires a file argument
2020-11-13 16:28:35 -08:00
Simon Michael
a97daaf322 lib: replace pretty-show with pretty-simple
pretty-simple, already used in .ghci, will hopefully give nicer debug
output, including for values which don't have Read-able Show output.
This should mean that we can start removing custom string-like Show
instances that were a workaround for pretty-show.

We are using the latest version (4.0.0.0) to get compact output.
Here's some old pretty-show output:

 CsvRules
   { rdirectives = [ ( "skip" , "1" ) ]
   , rcsvfieldindexes = [ ( "date" , 1 ) , ( "amount" , 2 ) ]
   , rassignments = [ ( "amount" , "%2" ) , ( "date" , "%1" ) ]
   , rconditionalblocks = []
   }

And the new pretty-simple output:

 CsvRules
   { rdirectives=
     [ ( "skip", "1" ) ]
   , rcsvfieldindexes=
     [ ( "date", 1 ), ( "amount", 2 ) ]
   , rassignments=
     [ ( "amount", "%2" ), ( "date", "%1" ) ]
   , rconditionalblocks= []
   }

Non-compact pretty-simple output would be:

 CsvRules
     { rdirectives=
         [
             ( "skip"
             , "1B"
             )
         ]
     , rcsvfieldindexes=
         [
             ( "date"
             , 1
             )
         ,
             ( "amount"
             , 2
             )
         ]
     , rassignments=
         [
             ( "amount"
             , "%2"
             )
         ,
             ( "date"
             , "%1"
             )
         ]
     , rconditionalblocks=[]
     }

Also:

- Account's Show instance no longer converts : to _ in account names

- drop unused pretty-show dependency from hledger, hledger-ui packages

- regenerate hledger-lib with the older hpack that's shipped in stack
2020-11-10 08:06:11 -08:00
Simon Michael
de42cc6706 ;doc: valuation: try to clarify effect on reports table (#1380) 2020-11-09 18:04:35 -08:00
Simon Michael
86fac4236d ;update manuals 2020-11-09 17:14:38 -08:00
Simon Michael
94b01dd19d ;update CLI usage texts 2020-11-09 17:14:38 -08:00
Simon Michael
78894d46c8 import: apply journal's commodity styles to imported amounts 2020-11-09 17:14:38 -08:00
Simon Michael
895783ebe0 ;update manuals 2020-11-09 11:09:55 -08:00
Simon Michael
7cf7bcbf96 ;doc: period expressions: slightly clarify "every WEEKDAY" 2020-11-09 11:08:20 -08:00
Stephen Morgan
76dd4d83bc cli, docs: Add documentation, improve test comments, and clarify report titles for reports with valuation date changing over different columns. 2020-11-08 17:11:05 -08:00
Simon Michael
0df6998b58 ;bal: doc tweak (#1283, #1379) 2020-11-05 11:07:23 -10:00
Simon Michael
b5656c5909 ;update manuals 2020-11-05 11:00:38 -10:00
Simon Michael
f615c07d0f ;update CLI usage texts 2020-11-05 11:00:38 -10:00
Simon Michael
10facfdb50 ;bal: improve -S docs (#1283, #1379) 2020-11-05 11:00:26 -10:00
Simon Michael
03c1193e54 ;changelog tweak 2020-11-04 21:10:45 -10:00
Simon Michael
d1ded6fd84 ;update changelogs 2020-11-04 06:52:15 -10:00
Stephen Morgan
83a518af99 lib,cli,ui: In ReportOpts, store query terms term-by-term in a list in
querystring_.

This helps deal with tricky quoting issues, as we no longer have to make
sure everything is quoted properly before merging it into a string.
2020-11-04 08:47:30 -08:00
Stephen Morgan
a620ab9666 lib: Expand Tabular.AsciiWide to allow multiline cells, either top or bottom aligned. 2020-11-04 14:25:21 +11:00
Stephen Morgan
0bebda7313 lib,cli,ui: Elide amounts to a width of 32 characters, rather than 22 characters. 2020-11-04 14:25:20 +11:00
Stephen Morgan
e9a16edb58 cli: Use new mixed amount display functions for balance format strings. 2020-11-04 14:25:20 +11:00
Stephen Morgan
9de238757b lib,cli,ui: Introduce showMixed*Unnormalised, eliminate most direct calls of strWidth.
This introduces some new helper functions which are exactly the same
as what we had before, but do not call
normaliseMixedAmountSquashPricesForDisplay, so that we can use the new
functions for displaying Transaction and Posting. It also goes through
and gets rid of most uses of the old showMixed* functions which would
benefit from using the new interface.
2020-11-04 14:25:20 +11:00
Stephen Morgan
a838366c9d cli: Ensure register reports are correctly aligned for negative numbers.
This uses the new showMixed* function for the register report. This
fixes some misaligned negative numbers which appeared in one of the
earlier commits, and adds a test for it.
2020-11-04 14:25:20 +11:00
Stephen Morgan
162a936360 lib: BudgetReport uses new renderTable inteface, now has more compact output.
This changes showMixedAmountElided so that the width to elide to is
given as an argument, rather than fixed at 22 characters. This
actually uses the new renderTable interface. Mostly this is just an
internal change, but since we have more information about the widths
of things, we can actually get rid of some superfluous spaces in the
budget report output, previously there to make sure it stayed aligned
with the largest reasonable contents.
2020-11-04 14:25:20 +11:00
Stephen Morgan
33369dfa6c lib: renderTable can now receive alignment and width specifications on all cells, and has an option to display the outer border.
This gives renderTable a little more customisation. Before any of the
commits of this PR, render would just receive a string to display in
each cell. After the second commit of this PR it would also receive a
width of the string (in place of stripping ANSI sequences and then
calculating the width). After this commit, it now also takes an
alignment, so you can make cells left or right aligned. The function
render calls renderTable with appropriate options to give the same
behaviour as before. Also, previously render would always put a border
around the table. We would take this output, and would sometimes strip
the border by dropping the first and last rows, and first and last
characters of every row. I've just added an option to control whether
to put the border in, so we can just not add it in the first place,
rather than stripping it later. Note that this is again just defining
helper functions; this extra power is not yet used anywhere.
2020-11-04 14:25:20 +11:00
Stephen Morgan
a2b7a03fc4 lib,cli: bal uses new amount display functions, no longer needs to strip ansi. 2020-11-04 14:25:20 +11:00
Simon Michael
cca8802e2c ;update changelogs 2020-11-03 08:18:14 -10:00
Stephen Morgan
affc8d10f2 lib: Generalise CBCSubreportSpec to allow more subreport control. 2020-10-23 16:15:41 -07:00
Stephen Morgan
260283e2f1 lib,cli,ui,web: Introduce ReportSpec, which holds ReportOpts, the day of
the report, and the parsed Query.
2020-10-23 14:14:11 -07:00
Stephen Morgan
19ab222599 lib,cli: Remove old impure ReportOpts date functions. 2020-10-23 14:14:11 -07:00
Stephen Morgan
2aaab4b1b7 lib: Make Default instances clearer, remove Default instance for Bool. 2020-10-23 14:14:11 -07:00
Stephen Morgan
1171c23eee lib,cli,ui: Ensure ReportOpts always has today_ set. 2020-10-23 14:14:11 -07:00
Stephen Morgan
c45663d41d lib,cli: Store parsed Query in ReportOpts, rather than an unparsed
String.
2020-10-23 14:14:11 -07:00
Stephen Morgan
103308e795 lib,cli: Store StringFormat in ReportOpts, rather than unparsed String.
StringFormat now also takes an optional overline width, which is
currently only used by defaultBalanceLineFormat.
2020-10-23 14:14:11 -07:00
Simon Michael
291a35d8b4 ;lib: refactor 2020-10-19 09:09:38 -07:00
Simon Michael
2761324404 journal: apply commodity styles to forecasted transactions (#1371) 2020-10-19 08:59:25 -07:00
Simon Michael
831ec0dcf0 ;lib: refactor journalAddForecast 2020-10-19 08:52:00 -07:00
Simon Michael
f0db3fb157 ;update manuals 2020-10-18 16:01:59 -07:00
Simon Michael
1f81730a00 balcmds: mention --no-elide's new commodity-revealing function 2020-10-05 08:57:08 -07:00
Simon Michael
c5513ba722 ;tweak a few parse errors for clarity, consistency (#1329) 2020-09-19 08:10:39 -07:00
Simon Michael
73de12c264 ;update changelogs 2020-09-07 16:17:58 -07:00
Simon Michael
2b715fbe0d ;update changelogs 2020-09-07 16:13:21 -07:00
Simon Michael
018bf8f474 ;update manuals 2020-09-07 12:17:35 -07:00