Commit Graph

4214 Commits

Author SHA1 Message Date
Simon Michael
10c523c057 ;pkg: set version to 1.42.99 2025-03-07 18:49:07 -10:00
Simon Michael
554b50f5b2 ;doc:changelog: fix run/repl wording 2025-03-07 18:27:21 -10:00
Pranesh Prakash
fc2aabaab3 ;doc:repl: updates
Corrected one small mistake, and changed a few other things for clarity.
2025-03-07 13:35:26 -10:00
Simon Michael
41e5a538b1 ;pkg: clean up other cabal files, separating unrelated ghc options 2025-03-07 07:54:57 -10:00
Simon Michael
fd0bcdfede ;doc: finalise changelogs for 1.42 on 2025-03-06 2025-03-07 06:36:53 -10:00
Simon Michael
8184d20b9f ;doc: update changelogs 2025-03-07 06:36:15 -10:00
Simon Michael
7a3f69c5a1 ;doc:repl: updates 2025-03-06 19:45:55 -10:00
Dmitry Astapov
a3d2c7bb58 ;run: test that demonstrates caching 2025-03-06 16:43:39 -10:00
Simon Michael
a0cf410a80 ;doc:run, repl: updates 2025-03-06 16:36:54 -10:00
Simon Michael
d65cdbef27 ;doc: update embedded manuals 2025-03-06 16:15:22 -10:00
Simon Michael
3d1994ea76 ;doc: add commands, repl, run to Commands section 2025-03-06 16:15:22 -10:00
Simon Michael
e25cd526b7 ;doc: update embedded manuals 2025-03-06 16:05:55 -10:00
Simon Michael
0cd86d959e ;doc: update command docs 2025-03-06 16:05:25 -10:00
Simon Michael
cdbbe40e5b ;doc:run, repl: updates and edits 2025-03-06 16:03:55 -10:00
Simon Michael
e9f1e7dbd4 ;doc:demo: mark experimental 2025-03-06 16:03:29 -10:00
Simon Michael
12000baf19 ;dev: number run tests 2025-03-06 14:09:38 -10:00
Simon Michael
ebf8d25a49 imp:cli: commands list tweaks 2025-03-06 13:58:24 -10:00
Simon Michael
cf81b042be imp:run,repl: allow running addon commands 2025-03-06 13:56:43 -10:00
Simon Michael
a1a6aad873 fix:repl: also catch IO errors like run nosuchfile
And print exceptions consistently, with a single newline.
2025-03-06 13:05:45 -10:00
Simon Michael
9ecc3a56d0 fix:repl: make the run command work in the REPL again
The now-required -- argument was being lost during REPL parsing.
I think this is right, though it's hard to understand.
2025-03-06 13:03:57 -10:00
Simon Michael
fd906bec95 ;dev:cli: debug output tweaks; moveFlagsAfterCommand doc edit 2025-03-06 11:56:21 -10:00
Dmitry Astapov
758335daf0 run: support --man, --info, --tldr 2025-03-06 11:54:00 -10:00
Dmitry Astapov
7fdb2f7fe6 ;run: use leading -- to decide whether to read from files or not 2025-03-06 11:54:00 -10:00
Dmitry Astapov
4dbeac284c ;run: refuse to read commands from stdin if one of the input files was - 2025-03-06 11:54:00 -10:00
Dmitry Astapov
9c63b36d88 ;run: require -- before first command (+test for that) 2025-03-06 11:54:00 -10:00
Dmitry Astapov
b031144961 run: added run.test 2025-03-06 11:54:00 -10:00
Dmitry Astapov
6766498f42 run: can re-read stdin, if needed 2025-03-06 11:54:00 -10:00
Dmitry Astapov
df0cd78b26 ;run: more robust terminal check 2025-03-06 11:54:00 -10:00
Dmitry Astapov
e4cfd31544 ;run: add leading -- to short cmdline help 2025-03-06 11:54:00 -10:00
Dmitry Astapov
c354e6e9f7 ;run: don't exit repl when subcommand exits 2025-03-06 11:54:00 -10:00
Dmitry Astapov
4aa79cdc53 ;run: added Repl.txt to package.yaml 2025-03-06 11:54:00 -10:00
Dmitry Astapov
22155e2bae run: make sure that reporting interval does not affect caching 2025-03-06 11:54:00 -10:00
Dmitry Astapov
cffceb0d06 ;run: fix stale comments 2025-03-06 11:54:00 -10:00
Dmitry Astapov
1fc7006919 run: cache input files by (iopts, name), allows commands with different iopts 2025-03-06 11:54:00 -10:00
Dmitry Astapov
d3d3e02f9e ;run: another typo fixed 2025-03-06 11:54:00 -10:00
Dmitry Astapov
4ad3d00864 ;doc: run & repl: typos fixed, you can pipe into run 2025-03-06 11:54:00 -10:00
Dmitry Astapov
4a08f975f6 ;run,repl: dont print unrecognized text, error out 2025-03-06 11:54:00 -10:00
Dmitry Astapov
ef6b6ecc1b ;run: accept commands on stdin, repl hides prompt when non-interactive 2025-03-06 11:54:00 -10:00
Dmitry Astapov
2f348f787b ;repl: dont stop on exceptions 2025-03-06 11:54:00 -10:00
Dmitry Astapov
2ba12d6ec5 ;repl: fixed layout in command list 2025-03-06 11:54:00 -10:00
Dmitry Astapov
d615865d4d ;run: reword the quoting passage in docs 2025-03-06 11:54:00 -10:00
Dmitry Astapov
4f9fff9e81 ;repl: added to the list in Commands.hs 2025-03-06 11:54:00 -10:00
Dmitry Astapov
61faca16e4 run: split run and repl, fix journal passed to nested "run"s 2025-03-06 11:54:00 -10:00
Dmitry Astapov
a7116a8b0f ;run: missed a spot for replaceNumericFlags 2025-03-06 11:54:00 -10:00
Dmitry Astapov
e67bef1b0c ;run: expand docs (nested run, more examples) 2025-03-06 11:54:00 -10:00
Dmitry Astapov
b5f5c39d48 run: properly retrieve cached files when there are nested "run"s 2025-03-06 11:54:00 -10:00
Dmitry Astapov
e665bf124d ;run: handle reader prefixes properly 2025-03-06 11:54:00 -10:00
Dmitry Astapov
a76d23957f ;run: fix typo in the REPL help message 2025-03-06 11:54:00 -10:00
Dmitry Astapov
cf05ccb8e4 ;run: comments 2025-03-06 11:54:00 -10:00
Dmitry Astapov
8431cbe95b run: do not try to cache "top-level" journal more than once 2025-03-06 11:54:00 -10:00
Dmitry Astapov
5bd9be2189 run: allow "run" to invoke "run" (fixes #2331) 2025-03-06 11:54:00 -10:00
Dmitry Astapov
88a4b0abae run: support @ARGFILEs (fixes #2330) 2025-03-06 11:54:00 -10:00
Dmitry Astapov
6569714d37 run: cache individual files rather than file groups 2025-03-06 11:54:00 -10:00
Dmitry Astapov
32f286cc35 run: cache all journal files, allow commands to use -f 2025-03-06 11:54:00 -10:00
Simon Michael
aee85df17b ;dev:cli: to help run's command line parsing, double the first -- [#2328]
So that when cmdargs eats it, another remains.
2025-03-06 09:56:25 -10:00
Simon Michael
0b20e11857 ;dev:moveFlagsAfterCommand: doc edits 2025-03-06 07:53:05 -10:00
Simon Michael
e6bf705de0 fix:moveFlagsAfterCommand: don't rearrange things after -- [#2328]
Helps the run command.
2025-03-06 07:25:48 -10:00
Simon Michael
40b40fc2c8 ;dev:moveFlagsAfterCommand: note a problem [#2328] 2025-03-06 06:56:34 -10:00
Simon Michael
f97954a796 dev:commands: don't require a journal file 2025-03-05 11:37:25 -10:00
Simon Michael
4eb98a761a ;doc: update command docs 2025-03-05 11:10:49 -10:00
Simon Michael
34ba84ff9c feat: commands, an explicit command to show the commands list; refactor 2025-03-05 11:10:42 -10:00
Simon Michael
cb373447db fix:cli:paging: support older less, don't pass --use-color [#2335]
Older less versions (eg 551) require --use-colour, and break if --use-color is passed. So we no longer attempt to enable colour in less by default.
2025-03-04 16:38:25 -10:00
gesh
f450379229 ;cln: Remove unused widthFromOpts (see 5c289ac)
As noted in 5c289ac, it is unused elsewhere, and registerWidthsFromOpts
is right next to it and implements nearly the exact same logic
2025-03-04 16:26:15 -10:00
gesh
a1bcdcd157 ;cln: Remove unused debugArgs
A variant of it is present as a local definition in getHledgerCliOpts'
2025-03-04 16:26:15 -10:00
Simon Michael
6a90d503bc ;doc: csv: tiny fix [#2333] 2025-03-01 11:22:38 -10:00
Thomas Miedema
2faceb8e1b feat: csv: allow multiple matchers on the same line
`If blocks` and `If tables` now allow multiple matchers on the same line
separated by `&&` (AND) or `&& !` (AND NOT).

Example `if block` with two matchers on the same line:

	if %description amazon && %date 2025-02-22
	    account2 expenses:books

Example `if table` with two matchers on the same line:

	if,account2
	%description amazon && %date 2025-02-22, expenses:books
2025-03-01 11:21:00 -10:00
Simon Michael
a65900c62d imp:cli: recognise .ysh, .osh file extensions as addons 2025-02-27 21:26:57 -10:00
Simon Michael
956a2f6565 ;doc: manuals: update command options 2025-02-27 15:26:17 -10:00
Simon Michael
b629c31f9a ;doc: manuals: remove obsolete mentions of COLUMNS [#2340] 2025-02-27 15:26:17 -10:00
Simon Michael
d346e56b79 dev: fix warnings, update yaml file, edit [#2340] 2025-02-27 13:41:48 -10:00
gesh
3fa39c17b3 dev: Remove usage of partial NE.fromList
At this point, we're just giving a default for unpacking a Maybe
2025-02-27 13:41:48 -10:00
gesh
cde77eace0 fix: Remove references to $COLUMNS
As noted in Hledger.Utils.IO, COLUMNS is a bashism that isn't
particularly usable for our purposes (for one thing, it isn't updated
when the terminal is resized)
2025-02-27 13:41:48 -10:00
gesh
a24c39f13f fix: Use POSIX API to compute tty width (#2332)
On some systems, TERM is set to a value that doesn't have a valid
terminfo entry. Rather than hackily fall back on a value for TERM that
appears to work in most contexts (TERM=dumb) but which isn't guaranteed
anywhere to be valid, use proper POSIX ioctls to get the tty width.

This has the added bonus of also working on Windows.

In fact, we already settled on computing the terminal size in this way
in hledger-lib, so this commit centralizes the choice of the logic
there.

Also added a note for alternative methods and their tradeoffs, in case
this turns out to be fragile on some systems.
2025-02-27 13:41:48 -10:00
Thomas Miedema
1ca90065db ;dev: fix hledger/bench/bench.hs
In commit 603b2e9f09, the signature of `readJournalFile` changed. Ever
since, `bench/bench.hs` did not compile. Fix it by using the "easy"
function `readJournalFile'` instead, which assumes default options and
returns in the IO monad.
2025-02-27 07:32:44 -10:00
Thomas Miedema
5129a94bd7
;cln: unittest.hs: remove bothersome PackageImports (#2337)
When running `cd hledger-lib && ghci test/unittest.hs`, ghci complains
with:

```
  test/unittest.hs:7:1: error:
      Could not find module ‘Hledger’
      It is not a module in the current program, or in any known package.
    |
  7 | import "hledger-lib" Hledger (tests_Hledger)
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Failed, no modules loaded.
```

This commit removes the "hledger-lib" package-qualified import, such
that above ghci command works as expected.

However, there is a comment in hledger-lib/test/unittest.hs that says:

> package-qualified import to avoid cabal missing-home-modules warning
> (and double-building ?)

The missing-home-modules warning and the double building can indeed be
reproduced by running (after removing the "hledger-lib"
package-qualified import): `cd hledger-lib && cabal build unittest`. It
will first build `hledger-lib`, then show a warning about
missing-home-modules, and then build `hledger-lib` again.

After comparing the unittest sections of hledger.cabal and
hledger-lib.cabal, the solution turned out to be to remove `./` from
hs-source-dirs for unittest. Don't ask me why though!

Overall it's a nice cleanup.
2025-02-26 11:54:59 -10:00
Simon Michael
d807d7bd0c ;imp:bal: improve --layout option description 2025-02-23 12:25:48 -10:00
Simon Michael
d4884def4b ;doc:shell completions: mention zsh; cleanups 2025-02-21 17:16:40 -10:00
Simon Michael
7ef96d4bd1 fix:bal --budget: don't let costs prevent showing a percentage [#2327] 2025-02-18 12:17:47 -10:00
Simon Michael
35df9576ec doc:text encoding, csv encoding: cleanups [#2319] 2025-02-15 14:49:00 -10:00
Joschua Kesper
5114962b2a feat:csv: add an encoding rule, allowing non-UTF8 CSV to be read [#2319]
Previously, hledger could read CSV files containing non-ascii
characters only if they are UTF8-encoded.  Now there is a new CSV
rule, encoding ENCODING, which allows reading CSV files with other
encodings.

This adds a dependency on the encoding library, which supports fewer
encodings than text-icu but does not require a third-party C library.
To avoid build issues on various platforms, we require version 0.10+.

This adds some use of the ImplicitParams language extension, required
by encoding's API, but only in a small code region.

This also changes the type of Reader's rReadFn; it now takes
a `Handle` rather than a `Text`, allowing more flexibility.
2025-02-15 14:48:30 -10:00
Dmitry Astapov
d84050ec05
feat:run: run multiple commands efficiently, as a script or at a REPL (Dmitry Astapov, #2323) 2025-02-13 16:13:07 -10:00
Simon Michael
fbbe897133 ;doc:hledger:cost/lot notations: cleanups 2025-02-06 12:16:10 -10:00
Simon Michael
d435cf2ab4 ;doc:value reporting: edits 2025-02-05 10:38:13 -10:00
Simon Michael
3f1b6e6c8b ;doc:value reporting: edits 2025-02-05 10:35:23 -10:00
Simon Michael
27e51edbf4 ;doc:cost, value reporting: edits 2025-02-05 10:26:05 -10:00
Simon Michael
63b939a201 imp:print: --invert now also negates balance assertion/assignment amounts [#2314] 2025-01-29 09:47:29 -10:00
Simon Michael
3e838e4d0f imp:print: support --invert [#2314] 2025-01-27 05:21:36 -10:00
Simon Michael
b3e50f5e59 fix:bal:html output: also suppress total heading when -H is active 2025-01-25 20:38:09 -10:00
Simon Michael
29885d15fa dev: refactor Hledger.Write.Html etc, reducing Lucid references
Clarify the HTML lib situation a bit, and clean up some imports.

Related: #2244
2025-01-25 11:53:51 -10:00
Simon Michael
14dd2c6200 dev: rename printHtml -> styledTableHtml 2025-01-25 11:53:51 -10:00
Dmitry Astapov
9d4db48510 ;roi: optimize "one period per report interval" case a bit 2025-01-21 23:42:36 -10:00
Simon Michael
a359d6b828 ;doc: Directive effects: fix account types link [#126] 2025-01-21 23:39:15 -10:00
Simon Michael
31370bb65d ;doc: update command docs 2025-01-21 23:22:34 -10:00
Simon Michael
4614300d6a ;fix:print: --help was indicating wrong --round default [#2318] 2025-01-21 23:15:15 -10:00
Simon Michael
adef1a8416 lib: add dropRawOpt, cliOptsDropArgs 2025-01-21 22:02:05 -10:00
Simon Michael
54e7a178b3 ;doc:commodity styles: fix typo [hledger_site#123] 2025-01-21 21:36:25 -10:00
Simon Michael
91529191cd ;doc:cost/lot notations: clarify 2025-01-21 21:36:25 -10:00
Simon Michael
51e7ebae3d ;doc:cost/lot notations: clarify 2025-01-21 15:57:00 -10:00
Simon Michael
06abca7304 ;doc:cost/lot notations: clarify 2025-01-21 15:54:04 -10:00
Simon Michael
8d886ef3f4 ;doc:cost/lot notations: clarify 2025-01-21 15:40:27 -10:00
Simon Michael
b7deaea12e ;doc:cost/lot notations: clarify 2025-01-21 15:32:47 -10:00
Simon Michael
31c3c32872 ;doc: commodity directive: clarify slightly 2025-01-20 12:11:10 -10:00
Simon Michael
edfcd3554f lib: showAmountCost(B): drop leading whitespace 2025-01-15 16:28:43 -10:00
Simon Michael
e98af39e27 imp:pivot: support pivoting on amount (quantity) or cost 2025-01-15 13:47:04 -10:00
Simon Michael
90415875f5 imp:pivot: support pivoting on commodity symbol; doc improvements 2025-01-15 12:46:09 -10:00
Simon Michael
0602b241d1 ;dev:print: comment 2025-01-11 07:15:18 -10:00
Simon Michael
f3151e3880 ;doc:close: mention the balance assertions 2025-01-10 01:19:56 -10:00
Simon Michael
87cc3e1393 imp:close: omit file extension from tag value 2025-01-09 21:26:53 -10:00
Simon Michael
bde97b8f28 ;doc: update command docs 2025-01-09 21:19:44 -10:00
Simon Michael
6868ab06a4 imp:close: --migrate -> --clopen; more doc rewrites 2025-01-09 21:19:44 -10:00
Simon Michael
2588e31466 imp:close: change the start: tag to clopen:, and change --assign's tag to assign:
And some doc edits.
2025-01-09 15:32:25 -10:00
Simon Michael
5db62b37e1 fix:close: --infer-costs no longer implies -x/--explicit [#1826] 2024-12-27 12:50:26 -10:00
Simon Michael
5644dc2493 ;doc: pager: mention --pager=no 2024-12-27 12:08:44 -10:00
Simon Michael
d4d9caf328 ;doc:Aliases and account types: better troubleshooting command 2024-12-22 09:44:51 -10:00
Simon Michael
eb9bb16faa fix:add: account names provided on command line were being ignored [#2305]
Fix suggested by Raphael (lowercasename)
2024-12-20 15:51:15 -10:00
Simon Michael
e71e8a8711 fix:bs/bse/cf/is: drop unsupported --budget option from help [#2302] 2024-12-20 10:41:47 -10:00
Simon Michael
c2ae02adb6 ;doc: update embedded manuals 2024-12-20 10:41:47 -10:00
Simon Michael
9de9fe7656 ;doc: update command docs 2024-12-20 10:41:47 -10:00
Simon Michael
0a14b3a08c fix:areg: drop inconsistent newline in options help 2024-12-20 10:41:46 -10:00
Simon Michael
512fa8cc8c ;doc:hledger: list rendering fix 2024-12-20 10:41:46 -10:00
Simon Michael
5b89f89ed0 ;doc:beancount output: mention limitations: P and balance assignments 2024-12-20 08:46:19 -10:00
Dmitry Astapov
dde5a59049 roi: simplify/speed up (no longer checks every day with P directive) 2024-12-18 07:42:13 -10:00
Simon Michael
cbd5f42f8d ;doc: hledger: drop outdated change note [#1846] 2024-12-09 19:02:34 -10:00
Simon Michael
eb8db39ed0 ;doc: hledger changelog/relnotes: fix 2241 link 2024-12-09 18:54:34 -10:00
Simon Michael
3a47888534 ;doc: Balance report output: drop outdated note about --tree and HTML [#1846] 2024-12-09 18:54:08 -10:00
Simon Michael
ffc3440313 ;doc: update embedded manuals 2024-12-09 17:58:30 -10:00
Simon Michael
f2cb3cd023 ;cabal: update cabal files 2024-12-09 17:58:25 -10:00
Simon Michael
20f1f51a9d ;pkg: set version to 1.41.99 2024-12-09 17:58:24 -10:00
Simon Michael
58d461d5ee ;doc: changelogs: fix heading 2024-12-09 16:03:40 -10:00
Simon Michael
77a25b6423 ;doc: merge 1.41 changelogs 2024-12-09 15:46:35 -10:00
Simon Michael
b663822b88 fix: print: ignore --depth entirely
Until now, a depth limit caused print to show only transactions referencing accounts as deep or deeper than that.
2024-12-09 15:37:30 -10:00
Simon Michael
b10c0f256c ;doc: common.m4: clean up, update generaloptions macro 2024-12-07 09:22:32 -10:00
Simon Michael
43dd0cfc5d ;dev: cleanups 2024-12-07 08:50:34 -10:00
Simon Michael
917f03b828 ;doc: changelogs 2024-12-06 18:05:28 -10:00
Simon Michael
972a2a066b ;doc:beancount output: edits 2024-12-06 08:11:30 -10:00
Simon Michael
32182a05fc ;doc:beancount output: edits 2024-12-06 07:54:45 -10:00
Simon Michael
82fde8d2dc ;doc:query types: edits 2024-12-06 07:14:29 -10:00
Simon Michael
f148eec5fb ;doc:query types: edits 2024-12-06 07:13:03 -10:00
Simon Michael
85428d5cac ;doc:query types: updates, add headings, mention tag:'s infix matching 2024-12-06 07:04:05 -10:00
Simon Michael
f648903b37 imp:print:beancount: don't add account tags to postings
When print is generating beancount output, turn off the usual
inheritance of account tags by postings; it would generate excessive
metadata in the journal. Beancount can do or not do that kind of
inheritance itself.
2024-12-06 05:55:42 -10:00
Simon Michael
ff28aa329a imp:print:beancount: convert tags to BC metadata
Transaction and posting tags (and posting tags inherited from accounts)
are now converted safely to Beancount-compatible transaction and posting
metadata lines.
2024-12-06 05:55:42 -10:00
Simon Michael
17332c75f9 imp:print:beancount: generate operating_currency directives from cost currencies 2024-12-06 05:55:42 -10:00
Simon Michael
f5e97e2f92 ;doc:output:beancount: updates 2024-12-06 05:55:42 -10:00
Simon Michael
b4f4374dfa imp:print:beancount: remove redundant conversion postings automatically 2024-12-06 05:55:42 -10:00
Simon Michael
d925c8a042 imp:print:beancount: add a second account name part if needed
Beancount requires account names to have at least two parts.
2024-12-06 05:55:42 -10:00
Simon Michael
6e3dfd6703 imp:print:beancount: remove virtual postings automatically 2024-12-06 05:55:42 -10:00
Simon Michael
29349458b3 imp:csv:if: go back to accepting unknown csv field names [#2289]
It makes life easier when reusing common rules with different CSVs.
2024-12-04 17:45:28 -10:00
Simon Michael
9696677c5d ;doc: depth: note version 2024-12-04 10:33:23 -10:00
Simon Michael
595243ea18 ;doc: LEDGER_FILE on Windows: copy improvements from hledger_site#119 2024-12-04 07:47:06 -10:00
Simon Michael
00beef6052 imp:csv:if: edits 2024-12-03 17:32:39 -10:00
Simon Michael
054a204aa0 imp:csv:if: support & ! (AND NOT) 2024-12-03 17:25:43 -10:00
Simon Michael
f73888d3b6 ;doc:csv:if: edits 2024-12-03 16:41:54 -10:00
Simon Michael
3d55f260b3 imp:csv:if: warn on invalid csv field names; improve doc [#2289] 2024-12-03 16:07:57 -10:00
Simon Michael
fd9c64a4ad pkg: allow megaparsec 9.7 [stackage#7585] 2024-12-03 08:46:29 -10:00
Stephen Morgan
73fd60b2b0 ;imp: doc: Document new regular expression limited depth. 2024-12-03 08:33:21 -10:00
Stephen Morgan
74f0f37fb3 imp: queries: Allow regular expression depth queries
Previously depth-limiting was universal across all accounts, e.g. all
accounts are clipped to depth 2. However, sometimes you want certain
accounts clipped to a different depth than others, e.g. all expenses to
depth 3, while all assets to depth 2. This commit enables depth-limiting
to optionally include a regular expression, which limits the accounts it
applies to.

More than one depth limit can be passed, and they are applied to each
account name by the following rules:
- If one or more regular-expression depth limit applies, use the
  most specific one
- If no regular-expression depth limits apply, and a flat depth limit is
  supplied, use that
- Otherwise, do not do any depth limiting

For example, this will clip all accounts matching "assets" to depth 3,
all accounts matching "expenses" to depth 2, and all other accounts to
depth 1.
--depth assets=3 --depth expenses=2 --depth 1
2024-12-03 08:33:21 -10:00
Simon Michael
f345c6c8d9 ;doc:import: more edits 2024-12-01 11:22:10 -10:00
Simon Michael
d16efeb26a ;doc:import: edit 2024-11-30 09:25:02 -08:00
Simon Michael
f414c37195 ;doc:import: first import tips 2024-11-30 06:57:13 -08:00
Simon Michael
812a7e28d7 ;doc:import: updates 2024-11-29 16:18:58 -08:00
Simon Michael
ff649114a7 ;doc:import: updates 2024-11-29 16:03:08 -08:00
Simon Michael
3d0aec7e8b ;doc:import: rewrite; date skipping -> overlap detection 2024-11-29 15:45:19 -08:00
Simon Michael
a38c09be98 ;doc: assertions: mention their behaviour with posting status 2024-11-21 07:57:26 -10:00
Simon Michael
21d8044bcf ;doc:journal: rewrite the Tags section 2024-11-16 14:40:03 -10:00
Simon Michael
1ad9fbb4a8 imp:print: clean up special tags; show them more often with --verbose-tags
- These special hidden tags, used internally, have been renamed:
  - `_modified`           -> `_modified-transaction`
  - `_cost-matched`       -> `_cost-posting`
  - `_conversion-matched` -> `_conversion-posting`

- All special hidden tags now have a similarly-named visible tag,
  and `--verbose-tags` now shows those more often, which is useful
  when troubleshooting `--infer-equity`, `--infer-costs`,
  or the matching of redundant costs and conversion postings.

- The `generated-posting:` tag added by `--infer-equity` is now valueless.

- The `modified-transaction:` tag added by `--auto` now appears on its own line.
2024-11-16 14:40:03 -10:00
Simon Michael
f57cd638da imp:print:beancount output: more robust account/commodity encoding
Unsupported chars are now hex-encoded, not just converted to dashes.
This helps keep account and commodity names unique, especially with
the equity conversion account names generated by --infer-equity when
using currency symbols.
(Those could also be converted to ISO 4217 codes, in theory, but
for now we just hex encode them, which is easier to make robust.)

Also, Beancount commodity symbols are no longer enclosed in
hledger-style double quotes.
2024-11-07 01:28:31 -10:00
Simon Michael
1078c176bf ;doc: pager: link to less FAQ
Signed-off-by: Simon Michael <simon@joyful.com>
2024-11-07 01:24:21 -10:00
Dmitry Astapov
c006959b05 lib: fix division by zero in roi when all assets are sold (fixes #2281) 2024-11-06 17:56:36 -10:00
Henning Thielemann
d176215f03 cli: Commands.Aregister: --header -> --heading 2024-11-06 16:38:38 -10:00
Simon Michael
660bbbb1f4 dev: update errors/README 2024-11-02 18:11:08 -10:00
Simon Michael
326acbf93b imp: check recentassertions: try to make the error message clearer 2024-11-02 18:10:53 -10:00
Simon Michael
4d38c63ec8 dev: move/rename nullsourcepos 2024-11-02 14:59:43 -10:00
Simon Michael
657fc1551f !fix: respect --color=yes in a few places that didn't; drop text-ansi dep
Hledger.Utils.IO's ansi style/color helpers now respect --color=yes,
so that eg `hledger --color=yes | less -R` shows bold headings as
you'd expect.

Hledger.Utils.IO.rgb' now takes Float arguments instead of Word8.
2024-11-01 10:40:25 -10:00
Simon Michael
66953ae0be ;doc: pager: note that help -p TOPIC uses less 2024-11-01 08:15:09 -10:00
Simon Michael
234b4879c2 imp: less pager will use HLEDGER_LESS instead, if defined
When using `less` as pager, if HLEDGER_LESS is defined, it will
provide the options (instead of LESS + hledger's extra options).
You can set your own preferred options here, or you can set it
equal to LESS to use exactly those options.

[#2272]-related
2024-11-01 08:02:03 -10:00
Simon Michael
30086ae249 imp: run pager more robustly; drop pager lib [#2272]
This fixes the error displayed when quitting the pager with long output.
It also replaces the pager lib with more robust homegrown pager utilities,
which should prevent a number of failure modes.
2024-10-31 18:55:09 -10:00
Simon Michael
659e493b30 ;doc: update changelogs 2024-10-30 19:01:49 -10:00
Simon Michael
50bf401ea6 dev: split debug/ghcdebug flags, comment out the latter for now
Compilation with ghc-debug is failing, and it has not yet been used
for anything. Separate the flag and leave it in place but commented for now.
2024-10-24 10:44:28 -10:00
Simon Michael
f96df24a00 ;doc: regular expressions: note possible RTL/bidi limitation 2024-10-24 10:44:28 -10:00
Henning Thielemann
e43168533f cli: Commands.Aregister: replace option --no-header by --header=YN 2024-10-23 21:55:24 -10:00
Henning Thielemann
1a9bfcf5be cli: Commands.Aregister: implement --invert option 2024-10-23 21:55:24 -10:00
Henning Thielemann
fa3676df7d doc: Commands.Aregister: motivate --no-header option 2024-10-22 12:05:42 -10:00
Henning Thielemann
93d32a934b doc: Commands.Aregister: mention --cumulative option 2024-10-22 12:05:42 -10:00
Henning Thielemann
8a56c4944c cli: Commands.Aregister: new option --no-header 2024-10-22 12:05:42 -10:00
Henning Thielemann
3714ac0593 lib: Write.Ods.printFods: change type of number of fixed rows/columns from (Maybe Int) to Int
0 is a perfect value for no fixed row or column.
2024-10-22 12:05:42 -10:00
Henning Thielemann
b2aad52168 cli: Commands.Aregister: support option --cumulative 2024-10-22 12:05:42 -10:00
Simon Michael
95ef5fad9a ;doc: update manuals 2024-10-20 09:26:32 -10:00
Simon Michael
0f7242182e ;doc: update help 2024-10-20 09:26:08 -10:00
Simon Michael
d985e89bad imp: default V accounts become just E when a new V account is declared
The equity:conversion account, and its variations equity:trade(s) and equity:trading,
normally detected as V/Conversion type, now become ordinary E/Equity accounts
if some other account is declared as V/Conversion type.

This is motivated by the next commit, in which `check accounts` will
stop warning about conversion accounts and their subaccounts,
which means all of the above names and their subaccounts would remain
always exempt from strict account checking.

Now, if the user declares their own conversion account, those default
accounts will become controllable by account checking again.
Which at least reduces the allowlist a bit.

Hopefully this won't cause hassles.
2024-10-20 09:13:58 -10:00
Simon Michael
e44cbbf1a4 dev: refactor, clarify detection of cost/conversion postings 2024-10-20 09:13:58 -10:00
Henning Thielemann
f1ded22c97 cli: Commands.Register: rename parameter base -> baseUrl 2024-10-20 08:49:36 -10:00
Henning Thielemann
84a6e167fb doc: hledger.m4: add FODS to aregister in output format matrix 2024-10-20 08:49:36 -10:00
Henning Thielemann
067c5e4db6 cli: Commands.Aregister.htmlRow: replace by call to generic accountTransactionsReportItemAsRecord 2024-10-20 08:49:36 -10:00
Henning Thielemann
4c189dde32 lib: Write.Spreadsheet.integerCell: for transaction indices 2024-10-20 08:49:36 -10:00
Henning Thielemann
7dc3715865 cli: Commands.Aregister: add export to FODS
use common Spreadsheet framework for CSV export, too
2024-10-20 08:49:36 -10:00
Simon Michael
7ad71ba2d5 ;doc: paging, box-drawing characters: updates 2024-10-20 08:46:11 -10:00
Simon Michael
f348bb642c ;cli:help: make --pager's help more accurate
--pager's "yes" doesn't unconditionally force it on; it behaves more
like --color's "auto". But yes/no is easier to read and understand,
so keep that and just tweak the wording.
2024-10-20 08:18:41 -10:00
Simon Michael
f8cc9cdb4d ;dev: document runPager's behaviour precisely 2024-10-20 08:10:07 -10:00
Simon Michael
5bf48d721a cabal: update cabal files 2024-10-19 18:50:40 -10:00
Simon Michael
7325b75d5b imp: rename ghcdebug build flag to debug, and enable stack traces with it
Builds made with ghc 9.10+ and the 'debug' build flag, will show
(some kind of, partial) stack traces when the program ends with an
error. (And also will have ghc-debug support enabled.)

The stack traces will probably improve in due course.
2024-10-19 18:47:03 -10:00
Simon Michael
b6a5687a38 imp: cli, web: disable ghc 9.10+'s stack traces here too
Starting to see them also from hledger now.
2024-10-19 18:33:58 -10:00
Simon Michael
fd4fa512e6 ;doc: update manuals 2024-10-19 17:06:10 -10:00
Simon Michael
d2344c119d ;doc: update help 2024-10-19 17:06:06 -10:00
Simon Michael
6893f342af imp: cli,ui,web: begin controlling GHC 9.10+'s stack traces 2024-10-19 16:56:14 -10:00
Simon Michael
a925e73b53 imp:cli: handle -NUM in config file properly 2024-10-19 16:56:14 -10:00
Simon Michael
576417655c dev: fix stray empty strings in builtinCommandNames 2024-10-19 16:56:14 -10:00
Henning Thielemann
3306abfd43 doc: hledger.m4: add HTML+FODS to print in output format matrix 2024-10-19 16:52:54 -10:00
Henning Thielemann
cc58ac7bf5 cli: Commands.Print.transactionToSpreadsheet: vertically merge common index, date, description and other cells 2024-10-19 16:52:54 -10:00
Henning Thielemann
8b391e2a07 cli: Commands.Print: add export to FODS and HTML
use common Spreadsheet framework for CSV export, too
2024-10-19 16:52:54 -10:00
Henning Thielemann
6773bf0974 cli: Commands.Register: add HTML and FODS to outputFormatFlag 2024-10-19 16:49:24 -10:00
Henning Thielemann
e144ad4ccd cli: Cli.Commands.Balance: give table names according to report type 2024-10-19 16:49:24 -10:00
Henning Thielemann
0c536da5ff doc: hledger.m4.md: FODS output - describe the advantages over CSV 2024-10-19 16:49:24 -10:00
Henning Thielemann
4fe51cb911 doc: hledger.m4.md: add FODS to all CompoundBalance commands in output format matrix 2024-10-19 16:49:24 -10:00
Simon Michael
b940254025 imp:cli: detect --color more safely in most cases
--color now also works in a config file, like --pager, except for two
cases: it does not affect colouring of debug output, or the colouring
helpers used in the check recentassertions error message.
2024-10-19 16:28:36 -10:00
Simon Michael
711d921774 imp:cli: --no-pager -> --pager, make this and --color safe options 2024-10-19 16:28:36 -10:00
Simon Michael
7fee69d7ab imp:cli: deprecate always/never --color values (though still support) 2024-10-19 16:28:36 -10:00
Simon Michael
9317354f20 doc: note issues with --color, --debug in config files 2024-10-19 16:28:36 -10:00
Simon Michael
66df5ed40f imp: expose config file args to getArgs; make --no-pager work there 2024-10-19 16:28:36 -10:00
Simon Michael
18dceef1ce imp:cli: move --no-pager/--color to the help flags, available everywhere 2024-10-19 16:28:36 -10:00
Simon Michael
ba786752d1 imp📟 add a --no-pager general flag 2024-10-19 16:28:36 -10:00
Simon Michael
db748465a8 fix📟 when the $PAGER is not in PATH, print instead of failing 2024-10-19 16:28:36 -10:00
Simon Michael
4441680d7b fix:lib:Hledger.Utils.IO.pager: avoid a crash; avoid an extra newline 2024-10-19 16:28:36 -10:00
Simon Michael
3b7420b97c feat: use a pager for all large terminal output, not just for help 2024-10-19 16:28:36 -10:00
Henning Thielemann
a758eb0b5a doc: hledger.m4: add HTML+FODS to register in output format matrix 2024-10-18 00:07:11 -10:00
Henning Thielemann
86c3d7d656 cli: Commands.Register: support hyperlinks to hledger-web in HTML and FODS output
new option --base-url as in `balance` et.al.

Cli.Anchor: new module initialized with functions from Commands.Balance
2024-10-18 00:07:11 -10:00
Henning Thielemann
96e0500ea7 cli: Commands.Register.postingsReportItemAsRecord: format transaction index as integer
lib: Write.Spreadsheet.Type: new TypeInteger
2024-10-18 00:07:11 -10:00
Henning Thielemann
b23753f5ae cli: Commands.Register.postingsReportItemAsRecord: export amounts as number plus commodity
lib: Write.Spreadsheet.cellFromMixedAmount, cellsFromMixedAmount: taken from Cli.Balance
2024-10-18 00:07:11 -10:00
Henning Thielemann
991c56caef cli: Commands.Register.postingsReportAsSpreadsheet: generalize CSV output to HTML and FODS 2024-10-18 00:07:11 -10:00
Simon Michael
121b648bdb ;doc: output: edits 2024-10-17 20:18:02 -10:00
Simon Michael
4cf064e526 ;doc: text output: fix formatting, 2 2024-10-17 19:50:35 -10:00
Simon Michael
12cc571441 ;doc: text output: fix formatting 2024-10-17 19:47:14 -10:00
Simon Michael
7cbe75c523 ;doc: output format: updates, consolidate terminal topics 2024-10-17 19:30:02 -10:00
Simon Michael
733fec604b ;doc: text output: expand 2024-10-17 18:25:10 -10:00
Simon Michael
0f7aaa9600 imp: check accounts: simplify confusing suggestion in error message, 2 2024-10-16 21:19:51 -10:00
Simon Michael
d82c860f0d ;doc: special characters: edit 2024-10-16 18:39:06 -10:00
Simon Michael
7793ffe17d ;doc: special characters: edit 2024-10-16 18:14:16 -10:00
Simon Michael
e91be9e799 ;doc: special characters: more edits, more precision 2024-10-16 18:12:24 -10:00
Simon Michael
8683d5feb2 ;doc: special characters: edits 2024-10-16 16:23:45 -10:00
Simon Michael
0dbcafdebb ;doc: special characters: updates 2024-10-16 16:03:20 -10:00
Simon Michael
391bd6fac9 ;doc: special characters: clarify windows differences 2024-10-16 15:01:57 -10:00
Simon Michael
1fa8b79640 ;doc: update manuals 2024-10-15 16:36:54 -10:00
Simon Michael
b1677e8b2c ;doc: update help 2024-10-15 16:36:54 -10:00
Simon Michael
6bd5012b9b ;doc: changelogs 2024-10-15 16:36:54 -10:00
Henning Thielemann
49f1af04ef cli: CompoundBalance.compoundBalanceReportAsSpreadsheet: somehow support layout tidy
However, it is not quite correct since it contains totals and net values.
2024-10-15 14:13:53 -10:00
Henning Thielemann
270360a103 cli: Commands.Balance: hide total rows for all output formats for layout=tidy 2024-10-15 14:13:53 -10:00
Henning Thielemann
fa58dc11f4 cli: Commands.Balance: remove lambda on ropts1 for balanceReport*
This is consistent with the calls to multiBalanceReport* and budgetReport*.
2024-10-15 14:13:53 -10:00
Henning Thielemann
9d1ba5c588 cli: CompoundBalanceCommand.compoundBalanceReportAsSpreadsheet: common function for CSV, HTML, FODS export 2024-10-14 20:59:51 -10:00
Simon Michael
71a7879213 fix:check tags: _price-matched -> _cost-matched, and whitelisted [#2247] 2024-10-14 14:49:18 -10:00
Henning Thielemann
b8497c830e lib: Write.Spreadsheet.headerCell, addRowSpanHeader, rawTableContent: taken from Commands.Balance 2024-10-14 11:35:12 -10:00
Henning Thielemann
b8570c2aa0 cli: Commands.Balance.headerCell: do not automatically add a bottom border anymore
addHeaderBorders: do it explicitly
2024-10-14 11:35:12 -10:00