Simon Michael
45808c8e13
imp: cli: add terminalLightness; tweak IsLight threshold; embolden banner
2023-01-26 22:11:20 -10:00
Simon Michael
3ae9a5e0bc
;cabal: update cabal files
2023-01-26 22:11:20 -10:00
Simon Michael
1da4fd1eaf
imp: lib: terminal colour detection
...
added:
terminalIsLight
terminalFgColor
terminalBgColor
2023-01-26 22:11:20 -10:00
Simon Michael
0de3acabcb
cabal: update cabal files
2023-01-25 19:16:08 -10:00
Simon Michael
4387e6ffb5
pkg: stack: bump to latest snapshots, depend on text-ansi, add extra deps
2023-01-25 19:15:45 -10:00
Simon Michael
de330bdfce
imp: journal: check for adjacent conversion postings only in strict mode
...
This avoids breaking existing journals if, say, they happen to have
a single "equity:trading" posting somewhere.
2023-01-25 19:00:29 -10:00
Simon Michael
9c5bcfea85
dev: transactionInferCostsFromEquity: clarify partitionPs
2023-01-25 19:00:29 -10:00
Simon Michael
76f8eaf91a
imp: journal: ignore redundant costs; --infer-costs more robustly
...
You can now write both @/@@ costs and corresponding equity conversion postings
in a transaction at any time, not just when using --infer-costs or --infer-equity.
hledger will recognise the redundancy and ignore it.
One thing has become more strict: hledger now requires conversion postings
to occur in adjacent pairs; an odd number of them is not allowed.
(Conversion postings are postings to accounts of type `V`/`Conversion`,
or named `equity:conversion`, `equity:trade`, `equity:trading`,
or subaccounts of these.)
And, --infer-costs now works in transactions with an implicit amount
(inferring costs from equity now happens after transaction balancing,
not before).
2023-01-25 19:00:29 -10:00
Simon Michael
7432769d3c
lib: add journalMarkRedundantCosts to help with balancing; slight refactoring
2023-01-25 19:00:29 -10:00
Simon Michael
dd1ded3646
;cabal: update cabal files
2023-01-25 17:25:34 -10:00
Simon Michael
d77d76e17f
imp: cli: use $PAGER when help output is taller than terminal
...
This works with hledger, hledger -h and hledger CMD -h.
2023-01-25 17:20:27 -10:00
Chris Lemaire
43c9f018dc
journal: Account directives reject account names with brackets
...
Previously, the accounts passed to account directives would be stripped
of their surrounding brackets, but the required behaviour is to have
account directives plain reject bracketed accounts. This change ensures
that accounts in account directives may not start with a bracket
character.
2023-01-24 13:40:01 -10:00
Simon Michael
9497472e64
Merge branch 'master' into 1984-source-name-and-position-for-forecast
2023-01-23 16:04:00 -10:00
Chris Lemaire
4ada2a3fbc
journal: Fully unbracket AccountNames in account directives
...
Currently an account name like "a:(aa)" will not have (aa) unbracketed.
However, this seems reasonable since the full name is unbracketed and
thus will not be confused with virtual or virtual-balanced posting.
2023-01-23 12:43:13 -10:00
Chris Lemaire
9443fe0e0d
journal: json: Add source positions to forecast transactions
2023-01-21 22:30:30 +01:00
Simon Michael
e5f3c0ecdb
lib: transactionInferCostsFromEquity: adjust to "cost" terminology
2023-01-20 21:47:44 -10:00
Simon Michael
5ca8752e48
lib: journalBalanceTransactions, balanceTransactionHelper cleanups
2023-01-20 20:23:27 -10:00
Simon Michael
5b27554f0a
dev: note why inferring costs from equity before balancing
2023-01-19 20:57:02 -10:00
Simon Michael
cf469c080d
lib: journalInferCosts -> journalInferCostsFromEquity
2023-01-19 20:25:41 -10:00
Simon Michael
28eb8be4fa
lib: BalancingOpts{infer_transaction_prices_ -> infer_balancing_costs_}
2023-01-19 20:21:31 -10:00
Simon Michael
c0950c0900
lib: Hledger.Data.Balancing: inferBalancingPrices -> transactionInferBalancingCosts
2023-01-19 09:36:12 -10:00
Simon Michael
7ecf7ef27b
lib: Hledger.Data.Balancing: inferBalancingAmount -> transactionInferBalancingAmount
2023-01-19 09:28:30 -10:00
Simon Michael
402b4265f8
lib: Hledger.Data.Journal: transactionAddPricesFromEquity -> transactionInferCostsFromEquity
2023-01-19 09:22:55 -10:00
Simon Michael
dfea6eaee2
lib: Hledger.Data.Journal: journalAddPricesFromEquity -> journalInferCosts
2023-01-19 09:17:56 -10:00
Simon Michael
dfebf3174c
imp: csv: check assigned account names are valid (parseable) ( #1978 )
2023-01-11 21:42:47 -10:00
Simon Michael
93f74f7a0e
lib: Hledger.Data.Dates: intervalStartBefore -> intervalBoundaryBefore
2023-01-11 20:51:24 -10:00
Simon Michael
fc8fe8ee46
;doc: update manuals
2023-01-10 23:34:47 -10:00
Simon Michael
e891eecb8b
dev: add TypeOperators pragma to satisfy ghc 9.4
2023-01-10 19:33:31 -10:00
Simon Michael
a9b63bb694
fix: csv: skip header lines before attempting to parse records ( #1967 )
2022-12-27 12:21:20 -10:00
Simon Michael
71bd102b4b
fix: journal: don't generate bad assertion when assigning with cost ( fix #1965 )
2022-12-26 10:21:44 -10:00
Simon Michael
0f2fe39e43
cabal: update cabal files
2022-12-22 20:32:03 -10:00
Simon Michael
d0eaa8cf5a
dev: force megaparsec 9.3 in stack build plans where supported
...
For the useful dbg tool.
2022-12-22 20:31:47 -10:00
Simon Michael
4b36d852b4
imp: journal: ignore ((valuation expressions)) after amounts (ledger compat)
2022-12-22 20:06:28 -10:00
Simon Michael
3b91a8475a
cabal: update cabal files
2022-12-22 19:26:16 -10:00
Simon Michael
e9e8f350f2
dev: require megaparsec 9.3+ in dev build, for its useful dbg tool
...
The 9.3 version works with our parsers.
2022-12-22 19:25:57 -10:00
Simon Michael
1ea2bcc83f
imp: journal: also parse (lot notes) in amounts (ledger compat)
...
and rename lotpricep -> lotcostp
and instrument some amount parsers for debugging with megaparsec's dbg
2022-12-22 19:07:40 -10:00
Simon Michael
aa54c3273a
dev: lib: clarify some amount parsers; describe Ledger lot notation
...
amountpwithmultiplier -> amountp'
amountpnolotpricesp -> amountnobasisp
amountwithoutpricep -> simpleamountp
priceamountp -> costp
2022-12-22 09:15:43 -10:00
Simon Michael
b1e08ffe46
imp: journal: python directive also consumes empty lines (ledger compat)
2022-12-22 02:30:29 -10:00
Simon Michael
e2ddf1e685
imp: add "since" as a synonym of "from" in period expressions (ledger compat)
2022-12-22 02:12:25 -10:00
Simon Michael
85e9fbcf7d
imp: journal: allow an empty double-quoted commodity symbol
...
"" is equivalent to writing no symbol.
But it's now possible to declare market prices for the no-symbol
commodity, which occurs eg with timedot data.
P 2022-01-01 "" $100
2022-12-22 01:53:06 -10:00
Simon Michael
a070875fe6
imp: journal: ignore end apply year, end apply tag, drop "pop" (ledger compat)
2022-12-22 01:50:27 -10:00
Simon Michael
a5d6b42322
imp: journal: ignore end apply fixed, end apply tag directives (ledger compat)
2022-12-22 01:12:56 -10:00
Simon Michael
af5645ebb7
imp: journal: ignore python, eval directives (ledger compat)
2022-12-22 00:50:43 -10:00
Simon Michael
2e77586d1b
imp: journal: ignore value directives (ledger compat)
2022-12-22 00:38:51 -10:00
Simon Michael
fb7134c9a0
imp: journal: ignore tag subdirectives (ledger compat)
2022-12-22 00:34:33 -10:00
Simon Michael
c58b9e6ac9
imp: journal: accept apply year as another synonym for Y (ledger compat)
2022-12-22 00:27:35 -10:00
Simon Michael
2357a7a750
dev: journal: ignore CLI flags in journal
2022-12-21 23:40:43 -10:00
Simon Michael
abd104ccee
imp: journal: ignore more ledger directives (ledger compat)
...
apply fixed, apply tag, assert, bucket, A, capture, check, define, expr
And reorder the directivep parsers.
2022-12-21 23:04:58 -10:00
Simon Michael
e09ab0936a
imp: journal: accept @ as a prefix of directives (ledger compat)
2022-12-21 22:56:32 -10:00
Simon Michael
95d7679f6d
imp: journal: accept year as a synonym for Y (ledger compat)
2022-12-21 22:27:08 -10:00
Simon Michael
826a7cfb2a
imp: journal: ignore payee subdirectives
2022-12-21 22:09:15 -10:00
Simon Michael
bf6a2a7ccf
imp: journal: ignore commodity subdirectives other than format
2022-12-21 22:08:54 -10:00
Simon Michael
b73916323a
;dev: note transaction price deprecation in haddock
2022-12-10 19:01:48 -10:00
Simon Michael
ace185f7d2
;doc: update old manual links
2022-12-10 18:56:47 -10:00
Simon Michael
b50d60cfea
;doc: csv, timeclock, timedot: clarify comment lines ( #1953 )
2022-12-06 10:38:50 -10:00
Simon Michael
f3b0a1f513
;doc: update manuals
2022-12-01 12:24:23 -08:00
Simon Michael
8da21f1195
;cabal: update cabal files
2022-12-01 12:23:10 -08:00
Simon Michael
740ea50e4c
;pkg: bump version to 1.28.99
2022-12-01 12:23:10 -08:00
Simon Michael
cbbfb82474
doc: 1.28 changelog headings
2022-12-01 12:21:09 -08:00
Simon Michael
fa8f6ae302
lib: Debug: breakpoint doesn't support windows yet, drop for now
2022-12-01 12:20:29 -08:00
Simon Michael
d76e47b586
;doc: update changelogs
2022-11-30 17:13:09 -05:00
Felix Yan
66b51472f2
Allow megaparsec 9.3
...
Builds fine and all tests pass.
2022-11-30 05:12:04 -05:00
Simon Michael
5283c280bf
;cabal: update cabal files
2022-11-26 00:13:02 -05:00
Simon Michael
3a6955d3e2
dev: add stack9.4.yaml for building with latest nightly/ghc 9.4.3
2022-11-25 23:45:17 -05:00
Simon Michael
4399076a0a
;doc: lib: update BalanceAssertion doc
2022-11-10 19:01:53 -10:00
Simon Michael
6d2687e67d
fix: debug logging: fix non-logging ptrace*IO, dbg*IO
2022-11-07 14:50:13 -10:00
Simon Michael
b0966adc93
dev: debug logging: ".log" suffix instead of ",logging"; improve docs
2022-11-06 09:01:12 -10:00
Simon Michael
78771e900b
dev: lib: support debug logging to file in a few more places for hledger-ui
2022-11-06 09:01:12 -10:00
Simon Michael
9a8a8a75a2
imp: ui: start on balance sheet screen: better initial screen stack
2022-11-06 07:59:45 -10:00
Simon Michael
b079bbdb4e
dev: lib: Hledger.Utils cleanup
2022-11-04 22:19:24 -10:00
Simon Michael
79047ccc43
dev: lib: consolidate some utils in Hledger.Utils.IO
2022-11-04 19:14:36 -10:00
Simon Michael
fc8aa5253a
dev: lib: Hledger.Utils.Print -> Hledger.Utils.IO
2022-11-04 18:39:31 -10:00
Simon Michael
6fcd85aac3
dev: lib: Hledger.Utils cleanup, explicit exports
2022-11-04 12:59:10 -10:00
Simon Michael
80249c3e8a
dev: lib: Utils cleanups
2022-11-04 09:51:25 -10:00
Simon Michael
5bc977442a
dev: lib: remove NOINLINE pragmas HLS doesn't complain about
2022-11-03 17:58:32 -10:00
Simon Michael
0608a76243
dev: lib: extract progArgs, minimise unsafe IO
...
It is exported from the increasingly-inaccurately-named
Hledger.Utils.Print for now.
2022-11-03 17:58:13 -10:00
Simon Michael
80eb461063
;doc: update manuals
2022-11-03 16:07:55 -10:00
Simon Michael
988c164ec8
imp: debug logging improvements; hledger-ui logs to hledger-ui.log only
...
Hledger.Utils.Debug's "trace or log" functions are now controlled as
follows: to enable logging, append ",logging" to the program name at
startup (using withProgName). This also works when running in GHCI.
And they log to PROGNAME.log, not debug.log.
All (hopefully) debug logging in the hledger packages is now "trace or
log" capable.
This means that hledger-ui should now log all debug output to
./hledger-ui.log, with none of it appearing on the console.
2022-11-03 16:07:54 -10:00
Simon Michael
3d26fc30eb
;doc: update changelogs
2022-10-31 13:18:36 -10:00
Simon Michael
603fae70c0
dev: lib: clean up/simplify debug helpers
2022-10-31 11:26:11 -10:00
Simon Michael
fbd2ed5a44
;cabal: update cabal files
2022-10-29 13:04:58 -10:00
Simon Michael
ddb3ea777e
imp: lib: move hledger-specific things out of Hledger.Utils.Debug
...
Moved from Hledger.Utils.Debug to Hledger.Utils.Parse:
traceParse
traceParseAt
dbgparse
2022-10-29 13:04:47 -10:00
Simon Michael
fd82fa48c9
imp: lib: separate Hledger.Utils.Print
...
Moved from Hledger.Utils.Debug to Hledger.Utils.Print:
pshow
pshow'
pprint
pprint'
colorOption
useColorOnStdout
useColorOnStderr
outputFileOption
hasOutputFile
2022-10-29 12:39:46 -10:00
Simon Michael
7fd25809e8
dev: fix customErrorBundlePretty import warnings
2022-10-07 07:43:28 -10:00
Simon Michael
a759a6e02e
dev: lib: note changed cost handling in amount arithmetic
2022-10-07 06:34:34 -10:00
Simon Michael
3a4f23df95
imp: lib: Hledger.Data.Amount: showMixedAmountOneLine now shows costs
2022-10-07 06:34:34 -10:00
Simon Michael
de5a97600c
imp: lib: Hledger.Read.Common: rename/add amount parsing helpers
...
removed:
amountp'
mamountp'
added:
parseamount
parseamount'
parsemixedamount
parsemixedamount'
2022-10-07 06:34:34 -10:00
Simon Michael
82a503cbf5
imp: lib: Hledger.Utils.Parse: export customErrorBundlePretty
...
for pretty-printing hledger parse errors.
2022-10-07 06:34:34 -10:00
Simon Michael
33dba1945d
dev: lib: Text.Megaparsec.Custom notes
2022-10-07 06:34:34 -10:00
Simon Michael
01387548e7
feat: csv: intra-day-reversed compensates when days' txns are reversed
...
As in eg vanguard CSV.
2022-10-06 22:21:55 -10:00
Simon Michael
15b2e7d586
fix: csv: ignore extra whitespace in account rule when detecting virtual postings
...
Reported by CruxOfTheB in chat.
2022-10-03 07:50:23 -10:00
Simon Michael
928cc6d615
;doc: update manuals
2022-10-01 16:09:26 -10:00
Simon Michael
3b24d9465b
imp: csv: new timezone rule; convert zoned date-times to local dates ( #1936 )
...
Previously, CSV date-times with a different time zone from yours
(with or without explicit timezones in the CSV) could give off-by-one
dates, because the CSV timezone was ignored.
Now,
1. you can use the `timezone` rule to indicate which other
timezone a CSV is implicitly using
2. CSV date-times with a timezone - whether declared by rule or
parsed with %Z - are localised to the system time zone
(or another set with the TZ environment variable).
2022-10-01 14:50:35 -10:00
Simon Michael
130604a2e0
;cabal: update cabal files; migrate to hpack 0.35/stack 2.9
2022-09-19 18:23:26 -10:00
Simon Michael
a3c2e2c1ba
doc: changelogs
2022-09-18 10:02:25 -10:00
Simon Michael
a2be9a0bce
;doc: update changelogs
2022-09-18 08:28:03 -10:00
Simon Michael
0a501941ee
dev: lib: ReportTypes: hlint fix
2022-09-14 16:57:54 -10:00
Simon Michael
5c14ed2ec9
dev: lib: clarify dlogAt's doc
2022-09-10 12:44:21 -10:00
Simon Michael
bc810063a5
dev: lib: improve ReportSpec doc
2022-09-07 09:53:11 -10:00
Simon Michael
427005037e
cabal: update cabal files
2022-09-01 18:37:57 -07:00