Simon Michael
ae23a18f87
;doc: update changelogs
2023-04-07 11:31:25 -10:00
Simon Michael
1c5dee2339
fix: doc: update manuals; regenerate all info manuals ( fix #2023 )
2023-04-06 14:13:39 -10:00
Simon Michael
1de8600067
imp: cli: try to ensure less
(and its more
mode) show ANSI ( fix #2015 )
...
If you use some other $PAGER, you will have to configure it to show
ANSI yourself (or disable ANSI, eg by setting NO_COLOR=1).
2023-04-06 11:13:00 -10:00
Simon Michael
c661fa7763
dev: lib: refactor pager
2023-04-06 11:12:56 -10:00
Simon Michael
6e7575317a
imp: "type:" queries now see through aliases/pivots, like acct: ( fix #2018 )
...
When doing a type: match we now also check the original unaliased,
unpivoted posting, as when doing an acct: match. This is effectively
how things worked with the older account type detection in hledger <1.27.
2023-04-06 11:12:35 -10:00
Simon Michael
c03d6b1123
imp: print: --match makes better choices
...
Previously, similarity completely outweighed recency, so a
slightly-more-similar transaction would always be selected no matter
how old it was. Now similarity and recency are more balanced,
and it should produce the desired transaction more often.
There is also new debug output (at debug level 1) for
troubleshooting.
2023-03-27 15:21:42 -10:00
Chris Lemaire
891853d2f2
queries: Update boolean queries to be case-insensitive
...
That is, the query operators AND, OR, and NOT are now case-insensitive.
Queries are otherwise left the same as they were.
2023-03-27 10:29:26 -10:00
Chris Lemaire
cddbae6467
queries: Prefix boolean queries with expr:
...
Boolean queries are now prefixed with an 'expr:' prefix, making them
completely separable from old queries and making the addition of them a
little more migration proof.
The tests are updated accordingly, changes made to the tests previously
are removed and extra cautious documentation is also removed.
2023-03-27 10:29:26 -10:00
Chris Lemaire
4f143d6bec
queries: Update documentation on boolean queries
...
Also add a test to check that the assertion on how boolean queries
combine with space-separated queries works.
2023-03-27 10:29:26 -10:00
Chris Lemaire
35db1cae4f
queries: Add generalised boolean queries
...
This commit changes some of the functions in the Query module and
changes the overall way to parse queries. Instead of using the words''
split function, this commit starts to fully parse the query, as it's
seen as a type of expression.
AND, OR, NOT, and space operators can be used. The space operator
simulates the behaviour from before, leaving a minimal amount of tests
that need to be adjusted to comply to the new behaviour.
2023-03-27 10:29:26 -10:00
Simon Michael
c2ab616c2d
dev: unbreak recent change, don't re-export Color/ColorIntensity for now
2023-03-18 20:19:50 -10:00
Simon Michael
b9af9ab367
;doc: update changelogs
2023-03-18 20:10:25 -10:00
Simon Michael
4d7d982f83
;cabal: update cabal files
2023-03-18 20:06:55 -10:00
Simon Michael
be8e64e498
imp: lib: export more terminal size, ANSI style/color helpers
...
Hledger.Utils.IO (and therefore Hledger and Hledger.Cli.Script) added:
getTerminalHeightWidth
getTerminalHeight
getTerminalWidth
Color(..)
ColorIntensity(..)
bold'
faint'
black'
red'
green'
yellow'
blue'
magenta'
cyan'
white'
brightBlack'
brightRed'
brightGreen'
brightYellow'
brightBlue'
brightMagenta'
brightCyan'
brightWhite'
rgb'
2023-03-18 19:59:00 -10:00
Simon Michael
207cad0dfb
;doc: update changelogs
2023-03-18 01:43:05 -10:00
Simon Michael
5ddb6028ed
;dev: lib: cleanup
2023-03-16 21:52:37 -10:00
Simon Michael
5655c533fa
;doc: merge release changelogs
2023-03-16 17:45:43 -10:00
Simon Michael
0f63a35ea3
;doc: update changelogs
2023-03-16 15:45:16 -10:00
Simon Michael
fe3477797b
;doc: update changelogs
2023-03-16 14:56:25 -10:00
Simon Michael
ee29893040
dev: fix Hledger.Utils.String import
2023-03-16 14:48:59 -10:00
Simon Michael
cc41704c92
;doc: update changelogs
2023-03-16 14:44:50 -10:00
Simon Michael
d3e4f8547c
imp: lib: Hledger.Utils.String: more string strippers
...
added:
strip1Char
stripBy
strip1By
Not used in hledger right now, but useful to offer in our scripting prelude.
2023-03-16 14:35:37 -10:00
Simon Michael
44805f96ef
;dev: ui, web: fixes for ghc 9.6; cleanup ( #2011 )
2023-03-15 20:43:51 -10:00
Simon Michael
658a650bb2
;dev: lib: another Balancing fix after ghc 9.6 support ( #2011 )
2023-03-15 20:26:57 -10:00
Simon Michael
3932bafc78
;cabal: update cabal files
2023-03-14 10:42:52 -10:00
Simon Michael
c790aa6145
;dev: lib: also build with GHC 9.6.1; add base-compat
2023-03-14 10:42:48 -10:00
Simon Michael
9ceb74062d
;doc: update manuals
2023-03-11 13:28:02 -10:00
Simon Michael
f75110f49c
;cabal: update cabal files
2023-03-11 13:27:25 -10:00
Simon Michael
a0ca339c46
;pkg: bump version to 1.29.99
2023-03-11 13:27:25 -10:00
Simon Michael
2e3872c3f1
;doc: changelogs: 1.29
2023-03-11 13:26:30 -10:00
Simon Michael
6dc91588e4
fix: lib: avoid using pager on Windows, part 2
2023-03-10 20:58:11 -10:00
Simon Michael
b83eb136cc
;cabal: update cabal files
2023-03-10 19:14:30 -10:00
Simon Michael
41e838ef83
fix: lib: avoid using pager on Windows, the package is not supported
2023-03-10 19:14:13 -10:00
Simon Michael
56c38b1b29
fix: areg: handle an extra account query correctly ( fix #2007 )
2023-02-21 10:04:07 -10:00
Simon Michael
44400e840c
dev: lib: clarify accountTransactionsReportItem
2023-02-21 09:47:59 -10:00
Simon Michael
7408bc02df
lib: Hledger.Data.RawOptions: add unsetboolopt
2023-02-20 16:24:54 -10:00
Simon Michael
fa70f160ae
imp: partial/inferred dates are flexible, full dates are not ( #1982 )
...
DateSpans are now now aware of exact/flexible dates.
2023-02-17 07:24:19 -10:00
Simon Michael
032ffd112b
imp: cli: report intervals can now start on arbitrary dates
...
Eg, where previously -p 'monthly from 1/15' or -M -b 1/15 would always
adjust the report start date to 1/1,
unless you used the special -p 'every 15th day of month from 1/15' form,
now the start date will not be adjusted. (It is still adjusted if
the report date is not specified explicitly, eg inferred from the journal).
This keeps behaviour consistent between report periods and periodic transactions.
'in' period expressions, like 'in 2023-01', are a grey area; they
do specify a start date (2023-01-01), although they look a bit implicit.
So previously, -p 'weekly in 2023-01' would adjust the start date to
the preceding monday (2022-12-26), but now it will start exactly on
2023-01-01 (a sunday, which also causes ugly verbose column headings).
To ensure monday based weeks and simple report headings here,
you would have to explicitly specific a start date that is a monday,
eg -p 'weekly from 2022-12-26 to 2023-02'.
2023-02-17 07:24:19 -10:00
Simon Michael
5537a251f3
imp: journal: periodic txns need not start on an interval boundary
...
Eg, ~ monthly from 1/15 now works, instead of giving an error message.
2023-02-17 07:24:19 -10:00
Simon Michael
0c74744626
fix: test: fix periodic transaction pretty-printing ( #1988 )
2023-02-17 07:24:19 -10:00
Simon Michael
7a9b0fd94c
feat: check: the tags
check checks tag names
2023-02-16 11:56:22 -10:00
Simon Michael
614697acf7
feat: journal: tag directive declares tag names
2023-02-16 11:56:22 -10:00
Simon Michael
f4160d5397
;doc: bump man page dates
2023-02-04 07:06:18 -10:00
Simon Michael
c51ebe7b8c
imp: journal: remove the "adjacent conversion postings" check again
...
I find that single conversion postings are sometimes needed, eg with
paypal.
2023-02-01 13:30:21 -10:00
Simon Michael
9381b46004
fix: lib: fix terminal lightness detection
2023-01-27 16:51:05 -10:00
Simon Michael
79914cbe74
fix: cli: avoid showing color detection escape sequence when piped
2023-01-27 10:50:56 -10:00
Simon Michael
110711a2a2
fix: cli: restore workaround to avoid showing escape codes in emacs
2023-01-27 10:00:07 -10:00
Simon Michael
eed8a06906
fix: cli: don't highlight help when TERM=dumb
2023-01-27 06:06:17 -10:00
Simon Michael
bb5d473955
fix: lib: don't use $PAGER when TERM=dumb
2023-01-27 06:01:49 -10:00
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