Commit Graph

1373 Commits

Author SHA1 Message Date
Alex Chen
cf9b2001e7 lib: refactor sign parser
- Extracts the handling of signs out of `fromRawNumber` and into `signp` itself
- Rationale: The sign can be applied independently from the logic in
  `fromRawNumber`
2018-05-27 07:50:26 -07:00
Alex Chen
84c7e2c403 lib: superficial changes to parsers 2018-05-24 09:35:27 -07:00
Alex Chen
121ba92ade lib: refactor the raw number parser [API change] 2018-05-24 09:35:27 -07:00
Alex Chen
93fbac99d3 lib: refactor date parser 2018-05-24 09:35:27 -07:00
Alex Chen
12e8d0e282 lib: change some parsers to use takeWhileP 2018-05-22 12:16:46 -07:00
Alex Chen
558c11596f lib: refactor the account name parser 2018-05-22 12:16:46 -07:00
Alex Chen
b245ec7b3d lib: remove the megaparsec compatability module 2018-05-22 12:16:46 -07:00
Alex Chen
c4ba7542d7 lib: use megaparsec 6 for all supported ghc versions 2018-05-22 12:16:46 -07:00
Alex Chen
676ea912b3 lib: fix issue where spaces were allowed as decimal points
- Fixes #749
- Also enabling the tests prepared for #749
2018-05-20 20:17:57 -07:00
awjchen
46aae19a54
lib: fix parsing of amounts with a whitespace digits separator 2018-05-20 16:02:59 -06:00
Simon Michael
581d02162c resolve all current build warnings with the supported GHC versions
If I'm lucky.
2018-05-17 20:43:55 -07:00
Alex Chen
67ed2d6cbf lib: superficial changes to comment parsers 2018-05-17 18:15:06 -07:00
Alex Chen
188583e232 lib: cleanup: remove redundant comment parsing alternatives 2018-05-17 18:15:06 -07:00
Alex Chen
892a1c6434 lib: refactor: make the bracketed date tags parser a SimpleTextParser 2018-05-17 18:15:06 -07:00
Alex Chen
0cff1634be lib: refactor: make the bracketed datetags parser a SimpleTextParser in all but type 2018-05-17 18:15:06 -07:00
Alex Chen
b3a91a49d8 lib: refactor: factor out a TextParser from datep 2018-05-17 18:15:06 -07:00
Alex Chen
09fd8132b7 lib: refactor: weaken types of comment parsers 2018-05-17 18:15:06 -07:00
Simon Michael
1c6702d598 budget: note some todos
[ci skip]
2018-05-17 08:12:14 -07:00
Alex Chen
31b72f0415 lib: replace notChar for backwards compatibility with megaparsec 5 2018-05-16 22:35:22 -07:00
Alex Chen
99e457f1da lib: fix performance regression introduced in 30ae9914 2018-05-15 19:29:59 -07:00
Alex Chen
12ddcb1784 lib: extend export list of Read/Common.hs 2018-05-15 11:52:29 -07:00
Alex Chen
17b11aaf1e lib: refactor parsing of bracketed posting dates 2018-05-15 11:52:29 -07:00
Alex Chen
fcc10f018d lib: merge parsing of date-tags with that of tags 2018-05-15 11:52:29 -07:00
Alex Chen
ec85271a0b lib: refactor tags parser: be more efficient, save SourcePos for later 2018-05-15 11:52:29 -07:00
Stephen Morgan
6c2385331c Allow comments for periodic transactions. 2018-05-14 18:28:27 -07:00
Simon Michael
c9d46f830f lib: fix hpack warning
[ci skip]
2018-05-14 10:28:29 -07:00
Mykola Orliuk
64c7eb78f4 GHC 8.0 compatibility 2018-05-13 14:41:08 -07:00
Stephen Morgan
5bc5bb5533 Fix doctest error introduced by 49c8c093ac. 2018-05-11 07:25:17 -07:00
Simon Michael
7040289d54 add some exports to fix warnings (#762) 2018-05-11 07:17:38 -07:00
Alex Chen
3aa72bdf16 lib: Clean up new code introduced for #655 2018-05-11 06:41:13 -07:00
Alex Chen
30ae991484 lib: Strip comment before parsing tags (#655) 2018-05-11 06:41:13 -07:00
Alex Chen
09ec6041bd lib: Report source positions from internal comment parsers 2018-05-11 06:41:13 -07:00
Alex Chen
b06d22a418 lib: Refactor common comment parsers 2018-05-11 06:41:13 -07:00
Alex Chen
c2199b1125 lib: Add explicit export list to Common.hs 2018-05-11 06:41:13 -07:00
Alex Chen
a409d09435 lib: restrict backtracking when parsing postings (#747) 2018-05-09 22:09:15 -07:00
Stephen Morgan
129f6e6839 Adjust start date of DateSpan for periodic forecasting with Days interval. 2018-05-09 17:19:58 -07:00
Simon Michael
49c8c093ac lib: clarify rawnumberp doc
[ci skip]
2018-05-09 10:22:39 -07:00
Simon Michael
cfee04215f bal: always ignore --drop when not in flat mode (fix #754) 2018-05-05 16:12:27 -07:00
Simon Michael
3586be2473 doc: csv: fix how-to link 2018-05-04 09:03:00 -07:00
Simon Michael
cfdde062eb clarify directive semantics 2018-05-03 21:20:29 -07:00
Simon Michael
18e5c9d5c9 doc: move market price docs under directives 2018-05-03 13:11:17 -07:00
Simon Michael
3ef11037b2 doc: journal: directives
[ci skip]
2018-05-01 10:50:38 -07:00
Simon Michael
9d0d47f09d changelog note
[ci skip]
2018-04-30 07:58:12 -07:00
Simon Michael
290ea1891a regen manuals 2018-04-29 18:04:59 -07:00
Simon Michael
59c804dac4 doc: journal: directives & periodic/automated cleanups 2018-04-29 18:02:16 -07:00
Simon Michael
53706bae66 doc: journal: fix heading level 2018-04-29 16:59:37 -07:00
Simon Michael
0aef51d725 changelogs 2018-04-29 12:45:07 -07:00
Simon Michael
d7f6ff0e18 doc: regenerate embedded manuals 2018-04-25 17:43:34 -07:00
Simon Michael
9151f5004e budget: show a budget report even with no interval (for whole journal period) 2018-04-24 23:12:42 -07:00
Simon Michael
568a442307 budget: tweak hiding/grouping of unbudgeted accounts
It now works slightly differently. Eg:

- <unbudgeted>'s subaccounts are hidden by default
- --show-unbudgeted shows all unbudgeted accounts, including subaccounts of budgeted parents
- --show-unbudgeted doesn't affect the grouping under <unbudgeted>

IMHO it's a nice simplification and increase in consistency, while still meeting the original intent.
2018-04-24 13:42:12 -07:00
Simon Michael
8b650d8e4f budget: fix inconsistent hiding of unbudgeted accounts
Accounts which have no budget goals within the report period are now
grouped under <unbudgeted> - not just accounts with no budget goals ever.

Haddocks have been clarified, especially for budgetRollup. In some
ways things are much clearer without this feature, but it remains
enabled by default for now.
2018-04-23 18:52:28 -07:00
Simon Michael
8759f12b63 budget: more consistent display of percentage 2018-04-23 18:52:28 -07:00
Simon Michael
41665d07b0 regenerate cabal files, fix tabular compilation error 2018-04-23 18:52:28 -07:00
Simon Michael
0c140d7238 budget: allow multi-interval budgets again
Budgets were restricted to a single interval in 1.9, but this was
a mistake. This restores the 1.5 behaviour, where a budget can be built
up from multiple periodic transactions with different intervals.
2018-04-23 18:52:28 -07:00
Simon Michael
e2c55aafa9 budget: --drop preserves the <unbudgeted> top-level account 2018-04-23 18:52:28 -07:00
Simon Michael
43287a3e26 budget: use a new first-class BudgetReport for --budget 2018-04-23 18:52:28 -07:00
Simon Michael
4b3c6afe75 lib: new generic PeriodicReport, and some report-related type aliases 2018-04-23 18:52:28 -07:00
Simon Michael
0b380971f7 journal: require a decimal point in commodity/format/D directives
A commodity directive that doesn't specify the decimal point character
increases ambiguity and the chance of misparsing numbers, especially
as it overrides all style information inferred from the journal amounts.
In some cases it caused amounts with a decimal point to be parsed as if
with a digit group separator so 1.234 became 1234.

We could augment it with extra info from the journal amounts, when available,
but it would still be possible to be ambiguous, and that won't be obvious.

A commodity directive is what we recommend to nail down the style.
It seems the simple and really only way to do this reliably is to require
an explicit decimal point character. Most folks probably do this already.

Unfortunately, it makes another potential incompatiblity with ledger and
beancount journals. But the error message will be clear and easy to
work around.
2018-04-20 21:56:06 -07:00
Simon Michael
3f2827424c refactor: number parsing docs 2018-04-20 21:39:06 -07:00
Simon Michael
3d4f5600ae journal: infer and balance amounts with standard amount styles (fix #737)
Inferred amounts now have the appropriate standard amount style applied.
And when checking for balanced transactions, amount styles declared with
commodity directives are also used (previously only inferred amount styles were).
2018-04-20 13:40:05 -07:00
Simon Michael
3a3829ac0f doc: regen embedded manuals 2018-04-20 06:48:26 -07:00
Simon Michael
d53557b09d regen cabal files with stack 1.7's hpack (0.28.2) 2018-04-20 06:47:52 -07:00
Simon Michael
30186e35ea cabal: update tested-with 2018-04-20 05:24:09 -07:00
Simon Michael
91e3ddd4fb lib: refactor 2018-04-20 05:24:09 -07:00
Dmitry Astapov
0c835acd18 lib, app: better descriptions for forecast transactions 2018-04-18 16:05:08 -07:00
Simon Michael
f2d3b3e1d4 csv: handle the other double negation cases: -(N), ((N)) (fix #736) 2018-04-18 07:39:33 -07:00
Dmitry Astapov
d82370d10b lib, app, web: remove differences between command line and journal file aliases 2018-04-17 16:09:11 -07:00
Dmitry Astapov
f6ec26e321 lib, app, web, ui: rename readJournalFile[s]WithOpts to readJournalFile, same for tryReader[s]WithOpts 2018-04-17 15:25:02 -07:00
Simon Michael
ae8046d47b lib: restore/update haddocks on readJournalFile[s]WithOpts
[ci skip]
2018-04-17 14:34:43 -07:00
Dmitry Astapov
5579af9a04 lib: remove readJournalFile(s) - supeceded by readJournalFile(s)WithOpts 2018-04-17 14:33:32 -07:00
Dmitry Astapov
37607beaea lib, app, web: use readJournalFileWithOpts instead of readJournalFile whenever possible 2018-04-17 14:33:32 -07:00
Dmitry Astapov
c7d86f3572 doc: mention that auto postings affect balances/amount inference (#729) 2018-04-17 14:33:32 -07:00
Dmitry Astapov
93814652f8 lib: auto postings are generated right after posting that triggered them (#729) 2018-04-17 14:33:32 -07:00
Dmitry Astapov
ecf49b1e4b lib: auto postings generated before amount inference and balance checks (#729) 2018-04-17 14:33:32 -07:00
Everett Hildenbrandt
c69fbff6d9 CsvReader: print more information about amount-in/out errors 2018-04-15 16:52:52 -07:00
Pavlo Kerestey
63d4c51dc4 Use quoteIfNeeded in quoteIfSpaced. Fix escapeDoubleQuotes to escape 2018-04-12 12:04:20 -07:00
Pavlo Kerestey
980210070a Explicit exports of Hledger.Utils.Text 2018-04-12 12:04:20 -07:00
Wad
3a7f50b5c5 Update hledger_journal.m4.md
Update the location of the vim ledger support.
2018-04-07 00:24:04 +01:00
Simon Michael
7129577f34 update cabal files 2018-04-04 17:56:22 +01:00
Simon Michael
4ea02bf1cb bump version to 1.9.99 2018-04-04 17:53:38 +01:00
Simon Michael
0b5ddcebee cli: clarify smart dates with more examples; add support for YYYYMM 2018-04-04 17:45:23 +01:00
Simon Michael
027abcabe6 update embedded manuals 2018-03-31 19:15:24 +01:00
Simon Michael
6ebb1fb061 update cabal files 2018-03-31 19:15:24 +01:00
Simon Michael
2db2010e40 bump version to 1.9, bump manual date 2018-03-31 19:15:24 +01:00
Simon Michael
0a1e46e018 doc: update changelogs, release notes
[ci skip]
2018-03-31 19:15:24 +01:00
Martin Michlmayr
633ad4455f doc: update references to the faq
Update references to the FAQ in the documentation and on the web site.
2018-03-31 17:58:29 +01:00
Simon Michael
1c26a5b8b5 doc: layout fix (#704, #706)
[ci skip]
2018-03-31 03:38:58 +01:00
Simon Michael
0979dbc01f regenerate cabal files with stack 1.6.3 to silence hpack warnings
[ci skip]
2018-03-31 03:24:01 +01:00
Simon Michael
61a16870ab doc: warn about digit group separators in scientific notation (#704, #706)
[ci skip]
2018-03-31 03:06:55 +01:00
Simon Michael
4ff3a749c6 lib: note an oddity with runJournalParser 2018-03-31 02:44:31 +01:00
Simon Michael
571ea1540b document scientific notation (#704, #706) 2018-03-31 02:41:31 +01:00
Mykola Orliuk
b377bff90a lib: support scientific number notation (#704, #706)
closes simonmichael/hledger#704
2018-03-31 01:49:46 +01:00
Simon Michael
2b34ff1184 lib: reportSpan debug output 2018-03-30 02:41:03 +01:00
Simon Michael
ebaac2866b lib: fix reportStartEndDates, rename to reportSpan 2018-03-30 00:16:35 +01:00
Simon Michael
dc4def835c lib: refactor runPeriodicTransaction, add a test 2018-03-29 18:11:34 +01:00
Simon Michael
d060398484 lib: splitSpan: return no spans for an empty datespan
Fixes an issue where a bounded budget could wrongly appear in a
disjoint report period.
2018-03-29 18:10:51 +01:00
Simon Michael
4d562ef068 lib: don't count periodic/modifier txns in Journal debug output 2018-03-29 16:45:34 +01:00
Simon Michael
083d9190fd budget: only periodic txns with the selected interval are used 2018-03-29 15:51:52 +01:00
Simon Michael
64e06750eb doc: draft changelogs & release notes 2018-03-28 18:25:01 +01:00
Simon Michael
d403b003c1 lib: disable doctests when building with ghc 8.4 on mac
[ci skip]
2018-03-26 18:23:46 +01:00