Simon Michael
1da7d4b7f7
imp: balanced, balancednoautoconversion: use new error format ( #1436 )
2022-07-10 12:12:03 +01:00
Simon Michael
b7e6583a72
imp: balance assertions now use new error format ( #1436 )
2022-07-10 11:39:41 +01:00
Simon Michael
42bcbad2fd
imp: bal: budget goals now respect -H ( #1879 )
2022-07-09 09:59:17 +01:00
Stephen Morgan
3e60e784f3
fix: bal: Allow cumulative gain and valuechange reports
...
Previously, --cumulative with --gain or --valuechange would produce an
empty report. This fixes this issue to produce a reasonable report.
2022-07-08 16:34:23 +01:00
Simon Michael
dd14f9c822
imp: lib: Hledger.Utils.Parse: export HledgerParseErrors
2022-06-29 09:58:56 +01:00
Stephen Morgan
9155d679fe
fix!: Revert "fix!: utf-8: Use with-utf8 to ensure all files are read and written with utf8 encoding. ( #1619 )"
...
This reverts commit e233f001c5 .
This would break at least some people's workflow. A lighter touch is
probably sufficient.
2022-06-01 09:35:18 +10:00
Simon Michael
a9779b2377
ref: move journal checking/pretty errors down further, to Hledger.Data
...
now at Hledger.Data.JournalChecks*, Hledger.Data.Errors
2022-05-21 18:29:13 -10:00
Simon Michael
307f723b0a
lib: simpler, more consistent names for check functions
...
API changes:
journalCheckAccountsDeclared
journalCheckCommoditiesDeclared
journalCheckPayeesDeclared
->
journalCheckAccounts
journalCheckCommodities
journalCheckPayees
2022-05-21 18:29:13 -10:00
Simon Michael
65e913b7c5
Merge pull request #1834 from Xitian9/utf8
...
Use with-utf8 and don't use Data.Text.IO.
2022-05-21 17:50:59 -10:00
Stephen Morgan
e233f001c5
fix!: utf-8: Use with-utf8 to ensure all files are read and written with utf8 encoding. ( #1619 )
...
May also fix #1154 , #1033 , #708 , #536 , #73 : testing is needed.
This aims to solve all problems where misconfigured locales lead to
parsers failing on utf8-encoded data. This should hopefully avoid
encoding issues, but since it fundamentally alters how encoding is dealt
with it may lead to unexpected outcomes. Widespread testing on a number
of different platforms would be useful.
2022-05-22 13:12:19 +10:00
Stephen Morgan
15a5d5d38b
Merge pull request #1814 from Xitian9/csverror
...
imp: csv: Give an error if unable to substitute csv templates. (#1803 )
2022-05-22 11:35:39 +10:00
Simon Michael
db26456e1c
imp: consolidate ordereddates check under Hledger.Read.Checks too
...
And remove the last vestiges of older more complex behaviour.
ordereddates now always checks all transactions in each file,
unaffected by a query. (But still affected by --date2).
2022-05-09 00:05:39 -10:00
Simon Michael
810a868c88
ref: consolidate most checks under Hledger.Read.Checks
...
and error message helpers in Hledger.Read.Error.
2022-05-09 00:04:33 -10:00
Simon Michael
2f8f922256
dev: fix doctests after "Error: " addition ( #1436 )
2022-04-25 02:56:59 -10:00
Simon Michael
a00dc04e0d
imp: check: uniqueleafnames: use the standard error format ( #1436 )
...
Hledger.Read.Common:
export makePostingErrorExcerpt
2022-04-25 02:56:59 -10:00
Simon Michael
7e45ab338f
imp: check: show column ranges properly ( #1436 )
2022-04-25 02:56:59 -10:00
Simon Michael
66d0beea5e
imp: check: ordereddates: use the standard error format ( #1436 )
...
Hledger.Read.Common:
export makeTransactionErrorExcerpt
2022-04-25 02:56:59 -10:00
Simon Michael
792434ca7d
imp: check: payees: use the standard error format ( #1436 )
2022-04-25 02:56:59 -10:00
Simon Michael
c7e8f58c33
imp: check: mark all error columns when that's preferable ( #1436 )
...
Undeclared commodity errors now mark the whole amount and assertion
region, since locating the exact position of commodity symbols is
difficult.
2022-04-25 02:56:59 -10:00
Simon Michael
8f4405e628
dev: check: refactor error messages ( #1436 )
2022-04-25 02:56:59 -10:00
Simon Michael
6ec0e05c42
imp: check: commodities: use the standard error format ( #1436 )
2022-04-25 02:56:59 -10:00
Simon Michael
4b3644d780
imp: check: accounts: print a standardised error message like megaparsec's ( #1436 )
...
added:
formatExcerptLikeMegaparsec
2022-04-25 02:56:59 -10:00
Simon Michael
f47d423a67
lib: error' now adds an Error: prefix
2022-04-25 02:56:59 -10:00
Simon Michael
5ab7b9f643
ref: HledgerParseErrors type alias
2022-04-25 02:56:59 -10:00
Simon Michael
2f28e1b0a7
ref: rename CustomErr -> HledgerParseErrorData
...
Verbose, but use every chance to clarify the complicated parse error
situation.
2022-04-25 02:56:59 -10:00
Simon Michael
53332ee6a5
stack: re-enable hledger-web with ghc 9.2
2022-04-15 15:07:17 -10:00
Simon Michael
5af224d534
fix: tags: also match accounts declared but not used ( #1857 )
...
By default, all account declarations and all transactions are searched;
but when there's a query involving transaction fields,
account declarations unrelated to the matched transactions are not searched.
added:
queryIsCode
queryIsTransactionRelated
2022-04-14 12:28:43 -10:00
Simon Michael
4f26309328
ref: clean up Query definition
2022-04-14 11:56:37 -10:00
Simon Michael
161c911cb4
imp: Hledger.Query: new predicates, haddock cleanups
...
added:
matchesQuery,
queryIsAccountRelated,
queryIsTransactionOrPostingRelated,
2022-04-14 10:58:31 -10:00
Stephen Morgan
8cc59df513
fix: Ensure date2 is used for journal valuation if requested. ( #1851 )
2022-04-14 07:27:17 -10:00
Simon Michael
aa3807e157
ref: journalAccountTypes
2022-04-11 09:18:23 -10:00
Stephen Morgan
c48d98c515
imp: csv: Substitute empty string if csv template fails. ( #1803 )
2022-03-29 18:03:33 +11:00
Stephen Morgan
1aff74f702
cln: Reduce duplication in test utilities.
2022-03-26 15:35:19 -10:00
Stephen Morgan
8968733630
cln!: Clean up journal parsing.
...
parseAndFinaliseJournal' has been removed. In the unlikely event you
needed it in your code, you can replace it with:
parseAndFinaliseJournal' parser iopts fp t =>
initialiseAndParseJournal parser iopts fp t
>>= liftEither . journalApplyAliases (aliasesFromOpts iopts)
>>= journalFinalise iopts fp t
Some parsers have been generalised from JournalParser to TextParser.
2022-03-26 15:35:19 -10:00
Simon Michael
a2f6b30fbd
cln: silence some warnings/lints
2022-03-26 08:34:21 -10:00
Stephen Morgan
bffb6c8c82
ref: smartdate: Improve ergonomics of SmartDate constructors.
2022-03-25 19:10:58 -10:00
Simon Michael
d60e1464d5
imp: fix MonadIO import ( #1847 )
2022-03-25 14:49:56 -10:00
Stephen Morgan
31c7c5d1ca
fix: Clean up build failures due to redundant imports and duplicate
...
function.
2022-03-26 11:37:32 +11:00
Stephen Morgan
603b2e9f09
ref: Use ExceptT String IO a instead of IO (Either String a).
...
This increases composability and avoids some ugly case handling. We
re-export runExceptT in Hledger.Read.
The final return types of the following functions has been changed from
IO (Either String a) to ExceptT String IO a. If this causes a problem,
you can get the old behaviour by calling runExceptT on the output:
readJournal, readJournalFiles, readJournalFile
Or, you can use the easy functions readJournal', readJournalFiles', and
readJournalFile', which assume default options and return in the IO
monad.
2022-03-25 14:23:27 -10:00
Simon Michael
5281c5d647
imp: allow pivoting on 'status' also
2022-03-18 21:38:31 -10:00
Simon Michael
b584774a03
ci: fix a typo I fat-fingered
2022-03-18 11:03:30 -10:00
Simon Michael
2b2d643333
test: errors: make tests runnable
2022-03-18 06:59:33 -10:00
Stephen Morgan
e6bf04fce3
fix: aliases: Make sure we can escape forward slashes in account
...
aliases, but otherwise the regular expression handler handles escapes.
2022-03-16 19:01:03 -10:00
Stephen Morgan
4a80551406
fix: price: Make sure inferred market prices have the correct sign with
...
total prices. (#1813 )
Also reduce duplication for inferring market prices (previously it was
done separately in both Hledger.Data.Journal and
Hledger.Cli.Commands.Prices), and remove *TotalPriceToUnitPrice
functions, since unit prices cannot represent all total prices.
Add a helper function numDigitsInt to get the number of digits in an
integer, which has a surprising number of ways to get it wrong.
2022-03-10 17:34:49 -10:00
Stephen Morgan
45408183fe
dev: reg: areg: Strip prices early on in PostingsReport and AccountTransactionsReport, when possible.
...
This results in big speedups in cases when we have many transaction prices, like in examples/10000x1000x10.journal. This can be disabled with the show_costs_ option in ReportOpts.
2022-03-10 17:21:40 -10:00
Stephen Morgan
a65e64115a
fix: alias: Allow escaped characters in regular expression aliases. ( #982 )
2022-03-10 17:00:03 -10:00
Stephen Morgan
19ed6d3f00
cln!: sourcepos: Use megaparsec-supplied sourcePosPretty.
...
Change showSourcePos to sourcePosPretty, and showSourcePosPair to
sourcePosPairPretty.
2022-03-10 16:56:28 -10:00
Simon Michael
e9c19e12ef
;cln: redundant pragma
2022-02-11 09:22:26 -10:00
Simon Michael
44211c1c57
ref: move Posting account name fns to AccountName
...
accountNamePostingType accountNameWithoutPostingType accountNameWithPostingType
joinAccountNames
concatAccountNames
accountNameApplyAliases accountNameApplyAliasesMemo
2022-02-11 09:18:35 -10:00
Stephen Morgan
2f47ae05c6
fix: csv: Allow unicode in field references for csv. ( #1809 )
2022-02-06 14:16:17 -10:00