Simon Michael
41c985b5fb
journal: ignore transaction comments in auto posting rules ( #745 )
...
Previously they were misparsed as account names.
2018-07-26 08:29:02 +01:00
Joseph Weston
e23160059e
lib: add generated man files
2018-07-26 06:12:31 +01:00
Joseph Weston
1fca47cf18
lib: update documentation for globs in 'include' directive
2018-07-26 06:12:31 +01:00
Joseph Weston
f2c1586238
lib: sort the matched include files lexicographically
...
Now the files are included in the same order as they would be
listed by 'ls'.
2018-07-26 06:12:31 +01:00
Joseph Weston
1ec16c2dc0
lib: explicitly specify that the 'Glob' package should be used
...
Without this there are conflicts with the 'filemanip' package,
which itself exports a module 'System.FilePath.Glob'.
2018-07-26 06:12:31 +01:00
Joseph Weston
c69b16d826
lib: prefer use of 'parseErrorAt' to generic 'fail'
...
'fail' will just terminate the current parse branch, whereas here
we have encountered a definite error. Also bring the code to
get the current working directory inside 'getFilePaths', as it
logically belongs there.
2018-07-26 06:12:31 +01:00
Joseph Weston
5077443a84
lib: add tests and code for nonexistant files and malformed globs
2018-07-26 06:12:31 +01:00
Joseph Weston
2c4d0c0acd
lib: factor out logic for obtaining a list of files to include
2018-07-26 06:12:31 +01:00
Joseph Weston
2d420a33a4
lib: update cabal file with 'Glob' library depdendency
2018-07-26 06:12:31 +01:00
Joseph Weston
0ade323d2a
lib: use glob matching if filename in 'include' directive is a glob pattern
2018-07-26 06:12:31 +01:00
Joseph Weston
96f7a03487
lib: factor out parsing child journal into separate function
2018-07-26 06:12:31 +01:00
Joseph Weston
52da073828
lib: expand current directory separately from filepath
...
We will need the current directory as an absolute path when
adding glob patterns in a few commits time.
2018-07-26 06:12:31 +01:00
Joseph Weston
9e56ad24e2
lib: reorder code for reading include files
...
This should be before all journal and parser state manipulations,
so that those can be readily factored in a few commits time.
2018-07-26 06:12:31 +01:00
Simon Michael
aab7d2d964
lib: fix error triggered by upper-case day in period expression ( #847 )
2018-07-24 14:36:45 +01:00
Simon Michael
da8047d286
lib: type signatures
2018-07-24 14:24:45 +01:00
Simon Michael
fe73f2a6b5
csv: interpolated field names in values are now case insensitive
...
Field names are supposed to be case insensitive, but a field assignment like
fields ...,Transaction_Date,...
date %Transaction_Date
was failing, because of the capitalised letters. Fixed now.
2018-07-22 22:26:24 +01:00
Simon Michael
aebd6c50d6
smooth: smoothes out irregular transactions (experimental addon)
2018-07-16 23:36:06 +01:00
Simon Michael
d5430e7ddf
clean up debug helpers (api change)
2018-07-16 15:28:58 +01:00
Simon Michael
9d2e80aa2c
lib: Debug: simplify pprint, export ppShow as pshow (api change)
2018-07-16 12:51:50 +01:00
Simon Michael
92404bb847
prices: allow filtering by query, clarify docs
...
Query arguments are allowed, prices can be filtered by date, and
postings providing transaction prices can be filtered by anything.
2018-07-15 09:21:10 +01:00
Simon Michael
91e5baf617
lib: clean up queryDateSpan, queryDateSpan' (api change)
...
These now intersect date AND'ed date spans, instead of unioning them,
and docs are clearer.
2018-07-15 08:35:39 +01:00
Simon Michael
d461e96c34
doc: update manuals harder, they should say 1.10.99
...
[ci skip]
2018-07-04 15:09:57 +01:00
Simon Michael
4f40467d86
update embedded manuals
2018-07-04 13:33:27 +01:00
Simon Michael
d62f082bce
bump version to 1.10.99 (dev)
2018-07-04 13:32:42 +01:00
Simon Michael
91c487d4c2
doc: manuals: update version strings
2018-07-04 12:52:29 +01:00
Simon Michael
8d6667f698
lib: doc: forecast transaction dates tweak ( #835 )
...
[ci skip]
2018-07-04 09:48:32 +01:00
Simon Michael
0322638cf5
lib: doc: clarify how forecast transaction dates work ( #835 )
...
[ci skip]
2018-07-04 09:41:12 +01:00
Simon Michael
22f2e90a4b
update embedded manuals
2018-06-30 22:08:48 +01:00
Simon Michael
6242b1d784
bump version to 1.10
2018-06-30 22:08:02 +01:00
Simon Michael
6b8fcd7205
changelogs
2018-06-30 21:57:06 +01:00
Simon Michael
937333c2c1
doc: journal: more account codes limitations
...
[ci skip]
2018-06-27 12:42:05 +01:00
Simon Michael
2959356bd9
doc: journal: note another account codes limitation, in flat mode
...
[ci skip]
2018-06-27 12:19:25 +01:00
Simon Michael
35e68e23c5
doc: journal: clarify account aliases doc
...
[ci skip]
2018-06-27 11:44:26 +01:00
Simon Michael
6d215945b6
doc: journal: clarify account aliases doc
...
[ci skip]
2018-06-27 11:41:11 +01:00
Simon Michael
6924e8390c
lib: journal: let alias/apply account affect account directives ( #825 )
2018-06-27 11:33:12 +01:00
Simon Michael
422f1084c9
doc: journal: note that non-regex alias directive is case sensitive
...
[ci skip]
2018-06-27 11:15:46 +01:00
Alex Chen
e82b01bcf8
lib: refine parse errors and parser labels
2018-06-20 23:24:39 -06:00
Alex Chen
9674f2a8cc
lib: tweak whitespace parsing for better parse errors
...
- expands the set of expected tokens when e.g. parsing the invalid
posting `account $1 a`
- whitespace can affect parse errors because of the longest match rule
where errors that occur later take precedence over those that occur
earlier
2018-06-20 23:24:39 -06:00
Alex Chen
ed0106b209
lib: reduce backtracking of various parsers
2018-06-20 23:24:39 -06:00
Alex Chen
e3a755b5b1
lib: refactor amount parsers to minimize backtracking
...
- inline `spaceamountormissingp` into `postingp`
- combine `rightsymbolamountp` and `nosymbolamountp`
- the multiplier symbol '*' for an amount must now always preceed a sign '-'
[breaking change]
- make amount parser labels more generic to simplify error messages
2018-06-20 23:24:39 -06:00
Alex Chen
89b1fd7de3
lib: refactor date-time parser, add error messages
...
- also removed commented-out time-zone code
2018-06-20 23:24:39 -06:00
Simon Michael
bc9375e4e5
lib: doc: journal: describe current directive semantics, finally
...
It's amazing how you can build, document, support and fix a thing for
years and not know what exactly it does. Directives are tricky.
Here is a pretty accurate description of their current behaviour,
determined by testing.
2018-06-20 19:41:28 -07:00
Simon Michael
26489765ef
lib: manual updates
...
[ci skip]
2018-06-20 18:44:34 -07:00
Simon Michael
816ba0f89d
consistent comment wording
2018-06-18 17:54:25 -07:00
Simon Michael
b04dc82125
lib: doc: journal: clarify periodic transactions
...
[ci skip]
2018-06-18 17:54:07 -07:00
Simon Michael
c4d45cffc4
lib: journal: require a space between period expr. and other fields
2018-06-12 16:41:36 -07:00
Simon Michael
eb23504906
lib: periodexprp: don't consume trailing whitespace
2018-06-12 16:41:36 -07:00
Alex Chen
c6bfd92dd3
removing "re-parsing" for pull 807
...
For Data/Dates.hs in particular:
- Changed `SimpleTextParser` to `TextParser m` for all parsers
- Changed `string` to the case-insensitive `string'` to match the
behaviour of `T.toLower` found in `parsePeriodExpr`
- export `periodexprp` for "direct" use
2018-06-12 16:41:36 -07:00
Simon Michael
57f41697ba
update embedded manuals
2018-06-12 16:41:36 -07:00
Simon Michael
e3507ad944
lib: journal: allow descriptions/comments in periodic transactions
...
Also period expressions relative to today's date can now be used,
for what it's worth.
2018-06-12 16:41:36 -07:00
Simon Michael
dfcafc2cdf
lib: refactor some journal, period expression parsers
2018-06-12 16:41:36 -07:00
Simon Michael
1287081ffd
tools: doctest: slight cleanup
2018-06-12 16:41:36 -07:00
Simon Michael
7a4c3eea65
lib: doc: periodic/auto rule cleanups
2018-06-12 16:41:36 -07:00
Alex Chen
0fb737bc39
lib: reduce backtracking in commoditydirectiveonelinep
2018-06-11 14:29:18 -06:00
Alex Chen
0382bb5cd4
lib: move custom parse errors to Text.Megaparsec.Custom
2018-06-11 13:58:56 -06:00
Alex Chen
846a38139d
lib: add license to the code copied from megaparsec
2018-06-11 13:58:56 -06:00
Alex Chen
2b22f857ac
lib: make the parse errors module backwards compatible
2018-06-11 13:58:56 -06:00
Alex Chen
ff2b042c7e
lib: remove the ErroringJournalParser type
2018-06-11 13:58:56 -06:00
Alex Chen
39e7ef0311
lib: refine date parser error messages
2018-06-11 13:58:55 -06:00
Alex Chen
132f8706d7
lib: edit comments to satisfy doctest
2018-06-11 13:57:30 -06:00
Alex Chen
5f87e7cd5d
lib: enable the custom parse errors
2018-06-11 13:57:30 -06:00
Alex Chen
2d21ec0174
lib: weaken parser types
2018-06-11 13:57:30 -06:00
Alex Chen
4a9e418b7a
lib: refactor includedirectivep to avoid "re-parsing"
2018-06-11 13:57:30 -06:00
Alex Chen
b034fa7ca9
lib: weaken parser types
2018-06-11 13:57:30 -06:00
Alex Chen
9b6558401f
lib: rewrite comment parsers [API]
...
- avoid the "re-parsing" of comments using the `match` parser combinator
2018-06-11 13:57:30 -06:00
Alex Chen
d707b351cc
lib: switch to custom parse errors for parserErrorAt
...
Also weaken the types of the parsers that use it
2018-06-11 13:57:30 -06:00
Alex Chen
c5561f25f1
lib: switch parsers to the custom error type
...
Also add an explicit export list to `hledger-lib/Hledger/Utils/Parse.hs`
in order to re-export the custom error type (for convenience).
2018-06-11 13:57:30 -06:00
Alex Chen
ca201e4618
lib: add a module for custom parse errors
...
... for displaying the source line on which parse errors occured
Over the following set of commits, I will to refactor the parsers to
obviate the `ExceptT String` layer of the `ErroringJournalParser` type
so that all parse errors go through Megaparsec's parse error machinery.
2018-06-11 13:57:22 -06:00
Simon Michael
42f47e2b6b
update embedded manuals
...
[ci skip]
2018-06-08 17:27:04 -07:00
trevorriles
9b1343d0b9
Add fast flag to doctests.
...
Fixes #802
2018-06-07 10:41:09 -05:00
Simon Michael
061aad0431
remove some CPP that's obsolete since we require base 4.8+
2018-06-04 17:33:21 -07:00
Simon Michael
7ebecb1ab8
use newer hashtables to fix an instance warning with doctests/ghc 7 ( #794 )
2018-06-04 17:33:17 -07:00
Simon Michael
0ce9c5728a
switch to base-compat-batteries to fix ghc 7.10 support ( #794 )
...
base-compat-batteries provides the same API across more ghc versions
than base-compat does, at the cost of more dependencies. Eg it exports
Prelude.Compat ((<>)) with ghc 7.10/base 4.8, which we expect.
My belief is that several of our deps already require it so the added
cost is not too great. We should probably go back to base-compat when
possible though, eg when we stop supporting ghc 7.10.
2018-06-04 17:32:42 -07:00
Simon Michael
328b2dabfe
require latest base-compat, might as well ( #794 )
2018-06-04 17:32:32 -07:00
Peter Simons
6db7f800ee
hledger-lib: fix doctest suite after recent package updates
...
The new version of our package set apparently contains both base-compat and
base-compat-batteries in its transitive closure. This breaks the doctest suite,
which just imports everything into scope when the tests are run, thereby making
module names like Prelude.Compat ambiguous.
2018-06-04 21:41:15 +02:00
Peter Simons
8c0c168cd6
Fix the build of hledger-lib with ghc 8.0.x and base-compat 0.10.x.
...
We don't need to import Data.Monoid because Prelude.Compat exports "<>"
already. In fact, importing that module causes build failures:
Hledger/Read/Common.hs:725:62: error:
Ambiguous occurrence ‘<>’
It could refer to either ‘Sem.<>’,
imported from ‘Prelude.Compat’ at Hledger/Read/Common.hs:97:1-39
(and originally defined in ‘Data.Semigroup’)
or ‘Data.Monoid.<>’,
imported from ‘Data.Monoid’ at Hledger/Read/Common.hs:110:1-18
Fixes https://github.com/simonmichael/hledger/issues/794 .
2018-06-04 20:58:58 +02:00
Simon Michael
66fbdc5d61
lib: enable doctests on mac again, note workaround, fix link
...
[ci skip]
2018-06-01 07:18:12 -07:00
Alex Chen
1116261f5a
lib: simplify fromRawNumber
2018-05-27 07:50:26 -07:00
Alex Chen
c3f5659d75
lib: add some strictness annotations to the parser
...
This was done to reverse minor performance regressions introduced in the
previous commits
2018-05-27 07:50:26 -07:00
Alex Chen
d79e707485
lib: remove redundant check in accountnamep
2018-05-27 07:50:26 -07:00
Alex Chen
43aa3d479e
lib: fix up runJournalParser
2018-05-27 07:50:26 -07:00
Alex Chen
d56fca1ba2
lib: superficial parser cleanups
2018-05-27 07:50:26 -07:00
Alex Chen
2a492696a9
lib: prevent the parsing of prices of prices
2018-05-27 07:50:26 -07:00
Alex Chen
edf9cc2366
lib: move handling of exponentials into fromRawNumber [API]
...
- Rationale:
- The information necessary for applying exponents to a number is more
explicitly represented in the inputs to `fromRawNumber` than in the outputs
- This way, `exponentp` may simply return an `Int`
2018-05-27 07:50:26 -07:00
Alex Chen
f7fd6e6525
lib: refactor the raw number parser [API]
...
- Purpose: to reduce the verbosity of the previous implementation
- Split off `AmbiguousNumber` into its own type
- Introduce a function `AmbiguousNumber -> RawNumber` explicitly capturing the
disambiguation logic
- Reduce the number of remaining constructors in `RawNumber` to just two,
`WithSeparator` and `NoSeparator`
- The choice to distinguish by the presence of digit separators is motivated
by the need for this information later on when disallowing exponents on
numbers with digit separators
2018-05-27 07:50:26 -07:00
Alex Chen
6ffa9cb3cd
lib: rename pdigitgroup to digitgroupp for consistency
2018-05-27 07:50:26 -07:00
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
Moritz Kiefer
d7b68fbd7d
Use skipMany/skipSome for parsing spacenonewline
...
This avoids allocating the list of space characters only to then
discard it.
2018-03-25 22:59:05 +01:00
Simon Michael
84579bb1b4
silence redundant import warnings with ghc 8.4
2018-03-24 22:51:56 +00:00
Simon Michael
21db75f1a6
update cabal files
2018-03-24 16:06:20 +00:00
Simon Michael
d1a55e5f76
tighten base upper bound, avoid breakage with next major GHC
2018-03-22 16:43:40 +00:00
Simon Michael
1e738e6ee5
lib: regenerate cabal file with older hpack to silence warning
2018-03-22 16:42:02 +00:00
Peter Simons
b3e4abe46d
hledger-lib: re-generate the hledger-lib.cabal file
2018-03-22 16:08:17 +00:00
Peter Simons
a1ddecd8f5
hledger-lib: remove redundant dependency declaration on semigroups
...
This dependency is already expressed conditionally for GHC versions older than
8.0.x, which is the proper way to do it since newer versions have that code in
base already.
2018-03-22 16:08:17 +00:00
Simon Michael
7635f56a5c
lib: add conditional dep to package.yaml and rest of cabal file
2018-03-12 23:27:23 +00:00
Peter Simons
4c5a58ec1e
hledger-lib: add missing Semigroup instance for Journal
...
GHC 8.4.1 makes Semigroup a superclass of Monoid. See
https://prime.haskell.org/wiki/Libraries/Proposals/SemigroupMonoid
for details.
2018-03-12 23:17:14 +00:00
Simon Michael
6aa35b5cb8
lib: move easytest tests to lib, depend on released version
2018-03-05 17:27:13 -08:00
Simon Michael
3390972cab
update generated manuals
2018-02-16 11:09:37 -08:00
Simon Michael
968ae13035
lib: redo buggy Amount refactoring
2018-02-16 02:26:39 -08:00
Simon Michael
b6a089b8a3
lib: Amount: hlint
2018-02-15 17:28:23 -08:00
Simon Michael
b231d99e38
lib: Account, AccountName: hlint
2018-02-15 11:38:34 -08:00
Simon Michael
6d94eed6fd
lib: Types: fix/silence hlint warnings
2018-02-15 07:35:51 -08:00
Simon Michael
298651fa02
doc: periodic txns, automated postings edits
...
[ci skip]
2018-02-11 20:09:19 -08:00
Simon Michael
13855d6b53
csv: no csv records is no longer an error
2018-02-01 09:41:03 -08:00
Simon Michael
d3fde29b36
bal: --invert flag to flip all signs
2018-01-29 14:53:23 -08:00
Simon Michael
92d48ed0a2
lib/ui/web/api: move manuals to extra-source-files in these pkgs too
...
[ci skip]
2018-01-26 11:49:26 -08:00
Simon Michael
37555617b7
journal, bal: document account codes
2018-01-23 16:51:12 -08:00
Simon Michael
9b88fc2ed0
bal/bs/cf/is: sort accounts by account code, if any, then account name
...
If any accounts have numeric codes assigned via account directives,
those accounts will be listed first, lowest account codes first.
2018-01-23 11:33:24 -08:00
Simon Michael
d420a8b534
journal: account directive: parse and store a numeric account code also
2018-01-23 11:33:23 -08:00
Simon Michael
88ef586480
lib: rename, clarify purpose of balanceReportFromMultiBalanceReport
2018-01-23 11:32:24 -08:00
Simon Michael
5b1883fcdf
bs/bse/cf/is: fix display of abbreviated name for December
2018-01-19 12:45:51 -08:00
Simon Michael
e9624486b6
bs/bse/cf/is: show local abbreviated month names on monthly columns
2018-01-18 11:46:12 -08:00
Simon Michael
46d7893446
updated generated manuals
2018-01-18 11:01:15 -08:00
Simon Michael
6b349e3123
bs/bse/cf/is: show all balances as normally-positive (experimental)
...
Income, liability and equity balances, which until now we have
always displayed as negative numbers, are now shown as normally positive
by these reports.
Negative numbers now indicate a contra-balance (eg an overdrawn
checking account), a net loss, a negative net worth, etc.
This makes these reports more like conventional financial statements,
and easier to read and share with normal people.
2018-01-18 11:01:07 -08:00
Simon Michael
3b2a9eaba4
lib: refactor
2018-01-15 14:15:52 -08:00
Simon Michael
79812f974a
rename NormalBalance -> NormalSign
2018-01-15 14:12:38 -08:00
Christoph Nicolai
c409afc90b
Update Editor Table
...
Reformat markdown table and update Sublime Text URL.
2018-01-10 07:58:14 -08:00
Simon Michael
fedf36e823
lib: when the text encoding is UTF-8, ignore any UTF-8 BOM prefix
...
Paypal's new CSV has this BOM prefix (at the time of writing),
which was causing a confusing parse error.
2018-01-04 16:29:23 -08:00
Simon Michael
81e964502b
lib: refactor low-level text file reading
2018-01-04 16:17:25 -08:00
Simon Michael
a0d765edb5
update embedded manuals
2018-01-04 10:19:27 -08:00
Simon Michael
bc3f5c476c
bump version to 1.5.99
2018-01-04 10:15:03 -08:00
Simon Michael
82283d75d7
doc: changelog updates
2017-12-31 10:30:28 -08:00
Simon Michael
956dee9682
update cabal files
2017-12-31 10:24:15 -08:00
Simon Michael
6ccabe3b48
update embedded manuals
2017-12-31 10:22:09 -08:00
Simon Michael
52c3884ab7
bump version strings & bounds to 1.5
2017-12-31 10:20:48 -08:00
Simon Michael
7921f0cf44
update embedded manuals
2017-12-31 10:08:44 -08:00
Simon Michael
0d8ac2cd6f
update cabal files
2017-12-31 10:03:50 -08:00
Simon Michael
e927e587e6
lib,cli: auto/forecast/budget option/docs cleanup, consistency
2017-12-31 10:01:18 -08:00
Simon Michael
667a1d7e59
remove upper bounds on all but hledger* and base
...
It's rare that my deps break their api or that newer versions must be avoided,
and very common that they release new versions which I must tediously
and promptly test and release hackage revisions for or risk falling out
of stackage. Trying it this way for a bit.
2017-12-31 09:13:50 -08:00
Simon Michael
26d1f10ef1
consistent spacing in bounds
2017-12-31 09:05:39 -08:00
Simon Michael
d3363d09d8
allow megaparsec 6.4.0
2017-12-31 08:47:59 -08:00
Simon Michael
99cde10e98
doc: draft changelogs
2017-12-30 18:20:41 -08:00
Simon Michael
ecdbc05703
Merge branch 'feature/space-as-digits-sep' of https://github.com/ony/hledger into ony-feature/space-as-digits-sep
2017-12-30 09:29:22 -08:00
Simon Michael
2a0e12122c
tools: regen cabal files with latest stack's hpack to avoid warnings
2017-12-30 08:47:47 -08:00
Simon Michael
8f55b6137d
uses today's prices, not those of last txn date, for -V (fix #683,#648)
2017-12-29 21:42:59 -08:00
Simon Michael
69e255cead
lib: deduplicate, refactor valuation code
2017-12-29 16:52:08 -08:00
Simon Michael
aa06d0f9bd
lib, cli, ui: allow ansi-terminal 0.8
2017-12-29 12:41:22 -08:00
Simon Michael
d15a2dc4c0
lib: fix journalAccountNames doc
...
[ci skip]
2017-12-29 12:34:51 -08:00
Simon Michael
ddef7d722d
lib: update journal account names api
...
Now we have:
-- | Sorted unique account names posted to by this journal's transactions.
journalAccountNamesUsed :: Journal -> [AccountName]
-- | Sorted unique account names implied by this journal's transactions -
-- accounts posted to and all their implied parent accounts.
journalAccountNamesImplied :: Journal -> [AccountName]
-- | Sorted unique account names declared by account directives in this journal.
journalAccountNamesDeclared :: Journal -> [AccountName]
-- | Sorted unique account names declared by account directives or posted to
-- by transactions in this journal.
journalAccountNamesDeclaredOrUsed :: Journal -> [AccountName]
-- | Sorted unique account names declared by account directives, or posted to
-- or implied as parents by transactions in this journal.
journalAccountNamesDeclaredOrImplied :: Journal -> [AccountName]
-- | Convenience/compatibility alias for journalAccountNamesImpliedOrUsed.
journalAccountNames :: Journal -> [AccountName]
2017-12-29 12:18:04 -08:00
Simon Michael
d7d75c50fe
lib: expandAccountNames, accountNamesFromPostings should sort here
2017-12-29 12:16:46 -08:00
Simon Michael
07596b1c54
update embedded manuals
2017-12-22 10:13:38 -08:00
Simon Michael
0621a27833
update cabal files
2017-12-22 10:13:37 -08:00
Simon Michael
efdee17aae
bump version strings & lower bounds to 1.4.99
2017-12-22 10:13:37 -08:00
Simon Michael
761fc31eb8
lib,cli,ui,web: allow megaparsec 6.3.0
2017-12-15 12:32:11 -08:00
Nadrieril
9e6e06033f
lib: Allow balance-only entries in csv reader
2017-12-14 18:26:29 -08:00
Simon Michael
cd5c74625e
update embedded manuals
2017-12-14 18:20:07 -08:00
Dmitry Astapov
040b9aef91
doc: add Periodic transactions, Automated posting rules
2017-12-14 17:20:07 -08:00
Simon Michael
302ee50bfe
update embedded manuals
2017-12-07 12:04:11 -08:00
Simon Michael
9013694d89
cabal: regenerate with stack 1.6/hpack 0.20
2017-12-07 11:46:33 -08:00
Simon Michael
c18a75ecfe
fix data-files paths in yaml/cabal files
2017-12-06 18:45:01 -08:00
Simon Michael
968cff7a4a
remove numbers from all but nroff filenames
2017-12-06 18:35:18 -08:00
Simon Michael
61a2fa4d53
move package manual files out of doc/
2017-12-06 18:26:20 -08:00
Simon Michael
1d26845525
remove */doc/README
2017-12-06 18:18:03 -08:00
Mykola Orliuk
95db5062d6
journal: inherit commodities in included files
...
Followup on some comments for simonmichael/hledger#487
2017-12-04 12:26:26 -08:00
Mykola Orliuk
9cdd02e0b0
journal: pretty errors for included files
...
Fixes simonmichael/hledger#660
2017-12-04 12:26:26 -08:00
Mykola Orliuk
fa2e680b2e
lib: fix styles after cost application
...
Fixes simonmichael/hledger#509
2017-12-04 12:26:26 -08:00
Mykola Orliuk
47766ea9d4
journal: support space as digits sep
...
Resolves simonmichael/hledger#330
2017-11-29 17:20:18 +01:00
Dmitry Astapov
6f92e70575
lib: remove needless numeric comparisons in bal/bs
...
accountsFromPostings is currently doing excessive work when adding up
postings in each account. It sorts (accountName, amount) tuples which
cause amounts in them to be compared. There is no need to look at amount
here at all since subsequent summing up and counting does not depend on
order. It is enough to sort by accountname only.
Went through similar pieces of code, made them all look uniform.
2017-11-29 07:08:18 -08:00
Dmitry Astapov
cf0dfa9f58
lib: add dependecy on 'extra' package
...
It has a collection of useful list processing functions.
2017-11-29 07:08:18 -08:00
Simon Michael
4228203740
doc: regenerate embedded manuals
...
[ci skip]
2017-11-28 17:37:27 -08:00
Mykola Orliuk
9df985f8c6
doc: resolving of amount decimal/group ambiguity
2017-11-27 15:47:56 -08:00
Mykola Orliuk
e58272f28f
journal: use groups sep and prec for decimal hint
...
Use whole AmountStyle in process of resolving decimal/groups separator
ambiguity.
Resolve simonmichael/hledger#399
2017-11-27 15:47:56 -08:00
Mykola Orliuk
7cbdeb40a4
journal: get decimal hint from default commodity
...
If appropriate commodity directive is missing fallback to default
commodity directive to get number representation style.
2017-11-27 15:47:56 -08:00
Mykola Orliuk
b7dbe044b0
journal: use decimal sep hint for amount parser
...
Make use of commodity format directive as a hint for parsing amount.
Kinda resolves simonmichael/hledger#487
2017-11-27 15:47:56 -08:00
Mykola Orliuk
dafdaec1ca
journal: factor out rawnumberp
2017-11-27 15:47:56 -08:00
Mykola Orliuk
bcf7a1add5
journal: make numbers parsing more strict
...
- Hunt down adjacent punctuations with altering char.
- Add some tests dedicated to parsing amounts.
2017-11-27 15:47:56 -08:00
Mykola Orliuk
53ad035b24
journal: limit scope of directives backtracking
...
Effectively improves error reporting for directives.
Resolves simonmichael/hledger#402
2017-11-27 14:32:48 -08:00
Mykola Orliuk
48623b4ceb
lib: fix backtracking in periodexpr parser
...
- Simplify doctests for periodexpr.
- Besides consuming leading space consume ending space for periodexpr also.
- Drop implicit option (def, def) behaviour of periodexpr. I.e. disallow
hledger reg -p '' and auto-transaction with heading just '~'.
- Slightly re-factor periodexpr.
- Ensure that reportinginterval doesn't consume trailing space.
Useful if we'll start disallowing periods like "every1stjan2009-".
2017-11-27 06:38:47 -08:00
Dmitry Astapov
23f3da4e92
cli: --auto adds automated postings to reports
...
Ledger-style automated postings, previously supported only by
hledger-budget, have landed as a first-class feature. The --auto
flag activates them, so that any postings they generate are
included in reports.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
f101d5b515
cli: --forecast adds periodic transactions to reports
...
Ledger-style periodic transactions, previously supported only by
hledger-budget, have landed as a first-class feature. The --forecast
flag activates them, so that any transactions they generate are
included in reports.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
50b4d76ce9
lib: runPeriodicTransaction's start date must line up with interval
...
This is very helpful for periodic transactions, because in budget mode
you need to ensure that no periodic transactions extend past the end
of the journal, and in forecast mode you need to make sure that all
periodic transactions are strictly after the end of the journal.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
597e9c47c9
lib: more periodic transaction tests
...
Some of these demonstrate that runPeriodicTransaction could generate
transactions ouside of requested DateSpan. This happens because
runPeriodicTransaction uses splitSpan internally, and splitSpan always
generates dateSpans that fully cover original DateSpan, extending
beyound left/right boundary if necessary. This is ok if transactions
are generated for budgeting purpose, but during forecasting care should
be taken to check that all generated transactions are happening past
the end of the real journal.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
950891b55b
lib: support "every <weekday>"
...
A shorter spelling for "every <n>th day of week".
2017-11-26 14:57:41 +00:00
Dmitry Astapov
993e3f2b67
lib: support "every 2nd Thursday of month" in period expressions
...
Useful for periodic transactions.
2017-11-26 14:57:41 +00:00
Dmitry Astapov
f1b4618f2d
lib: support "every 11th Nov" in period expressions
...
Useful for periodic transactions
Without it, once-per-year periodic transactions always occur on 1st Jan.
2017-11-26 14:57:37 +00:00
Dmitry Astapov
7acb5d45aa
lib: make month names in period expressions case-insensitive
...
Currently only lower-case account names are supported, both on the
command line, and in the journal (in periodic transactions):
This works:
$ hledger balance -p nov
This does not:
$ hledger balance -p Nov
First transaction will parse, second will not:
```
cat every-month.journal ~/devel/haskell/darcs-get/hledger/examples
~ aug to sep
assets
expenses $1
~ Aug to Sep
assets
expenses $2
```
$../bin/hledger-budget bal -f every-month.journal
hledger-budget: Failed to parse "Aug to Sep": date parse error ()
This commit fixes both cases.
2017-11-26 00:25:08 +00:00
Dmitry Astapov
4049455f26
lib: Fix splitSpan for nthdayof{week,month} - start of DateSpan was not covered
...
Demonstration:
Consider year-test.journal:
```
2015/02/01 first half
expenses $1
assets
2015/07/01 second half
expenses $2
assets
2016/02/01 first half
expenses $4
assets
2016/07/01 second half
expenses $8
assets
2017/02/01 first half
expenses $16
assets
2017/07/01 second half
expenses $32
assets
```
Year balances are good:
```
$ hledger balance -f year-test.journal -p yearly
Balance changes in 2015/01/01-2017/12/31:
|| 2015 2016 2017
==========++==================
assets || $-3 $-12 $-48
expenses || $3 $12 $48
----------++------------------
|| 0 0 0
```
Note how first transaction in 2015 is not included. Note that this is old period expression, so this bug exsits in master:
```$ hledger balance -f year-test.journal -p 'every 2nd day of month'
Balance changes in 2015/07/02-2017/07/01:
|| 2015/07/02-2015/08/01 2015/08/02-2015/09/01 2015/09/02-2015/10/01 2015/10/02-2015/11/01 2015/11/02-2015/12/01 2015/12/02-2016/01/01 2016/01/02-2016/02/01 2016/02/02-2016/03/01 2016/03/02-2016/04/01 2016/04/02-2016/05/01 2016/05/02-2016/06/01 2016/06/02-2016/07/01 2016/07/02-2016/08/01 2016/08/02-2016/09/01 2016/09/02-2016/10/01 2016/10/02-2016/11/01 2016/11/02-2016/12/01 2016/12/02-2017/01/01 2017/01/02-2017/02/01 2017/02/02-2017/03/01 2017/03/02-2017/04/01 2017/04/02-2017/05/01 2017/05/02-2017/06/01 2017/06/02-2017/07/01
==========++========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
assets || 0 0 0 0 0 0 $-4 0 0 0 0 $-8 0 0 0 0 0 0 $-16 0 0 0 0 $-32
expenses || 0 0 0 0 0 0 $4 0 0 0 0 $8 0 0 0 0 0 0 $16 0 0 0 0 $32
----------++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
```
Note how 2015 is absent entirely. This is new expression, but i think that general nature of bug is the same...
```
$ hledger balance -f year-test.journal -p 'every 4th Apr'
Balance changes in 2016/04/04-2018/04/03:
|| 2016/04/04-2017/04/03 2017/04/04-2018/04/03
==========++==============================================
assets || $-24 $-32
expenses || $24 $32
----------++----------------------------------------------
|| 0 0
```
2017-11-25 21:43:13 +00:00
Simon Michael
f5a39f7bc4
doc: csv: expand description part, include examples
...
[ci skip]
2017-11-05 17:30:31 -08:00
Simon Michael
4ab71f0d0a
journal: clarify that txn/posting comments must start with semicolon
2017-11-01 08:04:25 -07:00
Simon Michael
0e4d791371
doc: journal: use consistent semicolon comments in examples
...
About to add support for # posting comments, but using the semicolon
in examples makes them easier to test with Ledger.
[ci skip]
2017-11-01 06:12:55 -07:00
Simon Michael
676eb6e1a2
update embedded manuals
2017-10-31 12:38:37 -07:00
jeevcat
3a9ea65b99
Rewrite of BalanceAssertion type to track its source position.
...
Fixes #481 .
2017-10-16 13:25:03 -07:00
Sam Jeeves
11684843a0
Balance assertion errors now show line of failed assertion posting. Fixes #481 .
2017-10-14 15:11:19 -07:00
Simon Michael
302723b1be
lib,cli,ui,web: allow megaparsec 6.2
...
Forgot to commit this last time.
[ci skip]
2017-10-01 09:49:51 -10:00
Simon Michael
5de51c9bad
fix warnings/errors found by make stacktest
2017-09-30 13:00:22 -10:00
Simon Michael
7520da5e0c
update embedded manuals
2017-09-30 11:46:03 -10:00
Simon Michael
bfb4a38afb
update cabal files
2017-09-30 11:45:33 -10:00
Simon Michael
4a49b86175
bump version strings & lower bounds to 1.4
2017-09-30 11:44:53 -10:00
Simon Michael
8c86d9b578
doc: update manuals re --sort-amount
2017-09-29 19:31:44 -10:00
Simon Michael
62c822c1e6
lib: more compact debug output for Accounts
2017-09-29 18:50:18 -10:00
Simon Michael
b5602fd771
bal: --sort-amount sorts tree-mode multi-column balance reports
2017-09-29 18:49:47 -10:00
Simon Michael
d527384261
bal: --sort-amount sorts tree-mode single-column balance reports too
2017-09-28 09:49:03 -10:00
Simon Michael
32d5428197
doc: draft 1.4 changelogs
...
[ci skip]
2017-09-26 16:22:30 -10:00
Simon Michael
580ad88dca
timedot: fix parsing of month quantities (Nmo)
...
[ci skip]
2017-09-26 15:11:37 -10:00
Simon Michael
cd998e7f2f
slight fix for --sort-amount, don't flip when normal balance unspecified
2017-09-25 19:10:21 -10:00
Simon Michael
d9d92b3bf1
bs/bse/is: --sort-amount puts large liabilities/equities/incomes at top
...
Compound balance commands like these can now be aware of normal account
balance sign, and sort negative balances accordingly.
This also adds utility-ht as a dependency, only for the uncurry function
right now but it looks potentially useful to have.
2017-09-25 19:06:38 -10:00
Simon Michael
35e2e94228
bal/bs/cf/is: --sort-amount sorts by amount instead of account name
2017-09-25 06:17:46 -10:00
Simon Michael
5c85a1dd1c
lib: allow trailing whitespace in regex account aliases
...
Trailing whitespace in the replacement part of a regular expression
account alias is now significant. Eg, slightly flattening some bank
accounts: --alias '/:somebank:/=somebank '
2017-09-22 16:43:03 -10:00
Simon Michael
7edacdf443
cli: import command! hledger import *.csv adds new txns to main file
2017-09-17 18:57:51 -07:00
Simon Michael
0720cf9341
csv: doc: note how --rules-file affects all files in command
2017-09-17 13:37:06 -07:00
Simon Michael
1edb828a75
lib, print: rename --new's save files to .latest.*, easier to manage
2017-09-17 13:26:42 -07:00
Simon Michael
669fa706c0
print: --new shows only transactions added since last time
...
First cut, error messages could be refined etc.
2017-09-15 09:55:17 -07:00
Simon Michael
e3c4a76119
add & use simpler readJournalFilesWithOpts/InputOpts api
2017-09-14 17:43:32 -07:00
Simon Michael
55cebad0d5
cli: refactor: move commands to a subdirectory, reinstate test command
2017-09-12 10:04:36 -07:00
Simon Michael
3b1637341c
lib: doctests: fix unused import warning
2017-09-08 10:58:13 -07:00
Simon Michael
0175a0231d
lib: make doctests build with ghc 7.10 again
2017-09-08 10:25:42 -07:00
Simon Michael
5ae011b249
lib: add missing parsec lower bound, possibly related to #596 , fpco/stackage#2835
...
[ci skip]
2017-09-06 07:32:13 -07:00
Simon Michael
efbbcda7e6
doc: tweak description/payee/note docs ( #598 , #608 )
2017-09-05 14:06:43 -07:00
Simon Michael
079e76a370
doc: update description/payee/note docs ( #598 , #608 )
2017-09-05 11:44:02 -07:00
Simon Michael
9501b43471
lib: pivot -> journalPivot, drop implicit tags notion ( #598 , #608 )
2017-09-05 10:48:35 -07:00
Jakub Zárybnický
72cf6a8219
lib: Fix filtering by payee and note ( #598 )
2017-09-05 08:37:19 -07:00
Simon Michael
b246d0e990
cf: more restrictive regexp ( #584 )
2017-08-27 08:26:47 -07:00
Christian G. Warden
deaf9cfbef
Exclude Fixed Assets from Cashflow Report
...
Add "fixed" to the regex used to exclude asset accounts from cashflow
reports. Assumes accounts are set up something like:
assets:fixed assets:equipment
assets:fixed assets:vehicles
assets:fixed assets:buildings
2017-08-27 04:41:05 -07:00
Simon Michael
6b6e185827
lib: doc: note #583 issue number
2017-08-26 08:29:53 -07:00
Simon Michael
831ab78a74
lib, cli, ui: allow ansi-terminal 0.7
2017-08-26 07:47:34 -07:00
Simon Michael
f02d35ff39
lib, web: remove obsolete conditionals for old GHC
2017-08-25 17:15:26 -07:00
Simon Michael
b324d3de95
lib, cli, ui, web: drop oldtime flag, require time 1.5+
...
Should be safe to do now, I hope.
2017-08-25 16:56:41 -07:00
Simon Michael
3778db9ec7
lib: similar package.yaml whitespace
2017-08-25 16:53:41 -07:00
Simon Michael
230dfea207
update tested-with GHC versions
2017-08-25 16:40:29 -07:00
Simon Michael
6448053448
lib, cli, web: remove ghc < 7.6 support
2017-08-25 16:36:17 -07:00
Simon Michael
d9e72d389e
lib: fix a deps problem in package.yaml breaking test suite with ghc 8.2
2017-08-25 14:39:35 -07:00
Simon Michael
12673b1738
update changelogs
2017-08-25 09:18:26 -07:00
Hans-Peter Deifel
37d7c248e2
Allow megaparsec-6.1
2017-08-24 15:56:49 -07:00
Simon Michael
32cc9dc62b
timedot: doc: fix links to journal manual
...
[ci skip]
2017-08-21 17:46:05 -07:00
Simon Michael
1ebf1fec28
timedot: also provide syntax for seconds, days, weeks, months & years
2017-08-21 17:28:57 -07:00
Simon Michael
5cdb60b69b
timedot: allow minutes to be logged as Nm
2017-08-20 13:00:29 -07:00
Simon Michael
16c07c537b
csv: also switch which posting is converted to cost
...
After switching the postings, make sure it's the second which is converted
to cost.
2017-08-15 08:40:52 -07:00
Simon Michael
501634d2e9
doc: journal: makeinfo-version-related encoding change, hopefully correct
2017-08-15 08:18:06 -07:00
Simon Michael
cd589a5e4e
doc: csv: improve CSV conversion tips
...
[ci skip]
2017-08-15 08:17:15 -07:00
Simon Michael
ce5724fee1
csv: switch the order of generated postings, so account1 is first
...
This is subjective, but simplifies things as we'll be adding more than
two postings. Free-form entry templates will allow custom orderings
in future.
2017-08-15 08:16:49 -07:00
Mark Hansen
e98d213ca2
Add link to Visual Studio Code hledger plugin
2017-08-02 05:37:26 -07:00
Simon Michael
cb0cb1e1e1
regenerate embedded manuals
2017-07-31 15:52:41 -07:00
Simon Michael
1efbbbc7ac
regenerate cabal files
2017-07-31 15:01:23 -07:00
Simon Michael
5706353881
bump version strings & lower bounds to 1.3.99
2017-07-31 14:02:35 -07:00
Simon Michael
f4acef58b1
lib: doctests: refactor, include Text.*
2017-07-31 07:09:57 -07:00
Simon Michael
20442196fb
lib: refactor
2017-07-31 07:09:06 -07:00
Simon Michael
f1c5cce575
lib: another doctests fix, replace wrong haddock char
2017-07-31 07:09:06 -07:00
Simon Michael
dbef13b13f
lib: more consistent deps, fixing doctests with Cabal 2 ( fixes #596 )
2017-07-31 07:09:06 -07:00
Simon Michael
ecfc8224dd
lib: cleanup up megaparsec 6 compat module, simplify error type ( #594 )
2017-07-28 07:53:02 -07:00
Simon Michael
d7d5f8a064
add support for megaparsec 6 ( fixes #594 )
...
Older megaparsec is still supported.
Also cleans up our custom parser types,
and some text (un)packing is done in different places
(possible performance impact).
2017-07-27 19:20:46 -07:00
Simon Michael
8851ebc29f
bs/cf/is: support --output-file and --output-format=txt|csv
...
The CSV output should be reasonably ok for dragging into
a spreadsheet and reformatting.
2017-07-25 19:43:45 -07:00
Simon Michael
8313695306
doc: journal: update sample in generated manuals
2017-07-24 22:19:25 +01:00
Nicholas Niro
93fbc0e989
lib: Fix of a bug with the -H option.
...
This patch fixes a bug that happened when using the -H option on
a period without any transaction. Previously, the behavior was no
output at all even though it should have shown the previous ending balances
of past transactions. (This is similar to previously using -H with -E,
but with the extra advantage of not showing empty accounts)
2017-07-15 08:02:03 +01:00
Nicholas Niro
f0914ff08e
lib: Added a new much more thorough test to MultiBalanceReports.
...
This test makes sure that -H works correctly and it does not show
empty accounts.
2017-07-15 08:02:03 +01:00
Nicholas Niro
9873bcfcba
lib: Added a new transaction to samplejournal.
...
The new entry effectively adds a loan which is placed in the checking account.
This loan is then closed by the "pay off" transaction (which was already
present).
This is mainly to be used as a test point for the -H option; to make
sure -H does not show empty accounts.
All previous tests were changed to reflect the new change.
The documentation of the journal module was updated too.
2017-07-15 08:02:03 +01:00
Nicholas Niro
a7f6b551c5
lib: Implemented a testing context for the module MultiBalanceReports.
...
Of the 2 tests, the first is a simple test on a specific period.
The second is expected to fail at this point until the new upcoming
code to fix the issue with the history option is implemented.
For the record : this issue happens when we use the -H flag for a period
that does not contain any transactions. Currently, the ending balance
values are only taken into account if the current period contains
a Transaction containing one of the previous populated accounts.
For example, if we have a statement on the 2008/01/01 for $1
and we do a command (with -H) to check the value on the
(without transactions) 2008/01/02, we will not get the $1 from
2008/01/01. In that same example, if we had a transaction for the same
account as 2008/01/01 in say 2008/01/03 then the -H command would
successfully show the statement from 2008/01/03 with the initial amount
that we set in 2008/01/01.
2017-07-15 08:02:03 +01:00
Nicholas Niro
fe2a1b35da
lib: Added 2 new tests to BalanceReport.
...
These tests verify the behavior when we input a very specific period.
The second test is meant to make sure that the new upcoming code in
MultiBalanceReports will not change anything in the behavior of
the module BalanceReport.
2017-07-15 08:02:03 +01:00
Nicholas Niro
a204908be6
lib: Added a comment to explain the type MultiBalanceReportTotals
2017-07-15 08:02:03 +01:00
Simon Michael
ee735514fe
doc: update builtin manuals
2017-07-07 02:08:38 +01:00
Simon Michael
b3b33336b4
csv: show the "creating/using rules file" message only with --debug
2017-07-06 14:07:46 +01:00
Simon Michael
e94f04311d
csv: fix multiple includes in one rules file
2017-07-05 16:08:13 +01:00