Commit Graph

76 Commits

Author SHA1 Message Date
Simon Michael
afe9e2c6f4 dev: move journalCheckBalanceAssertions to JournalChecks 2024-04-26 18:59:45 -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
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
9a9ebfc0e3 dev: ui: rename hledger-ui debug helpers 2022-10-31 12:42:09 -10:00
Simon Michael
778b660919 dev: ui: debug logging improvements, export screenRegisterDescriptions 2022-10-28 22:44:47 -10:00
Simon Michael
e51d4059db feat: ui: add income statement accounts screen 2022-09-11 13:51:40 -10:00
Simon Michael
a3c0716133 dev: ui: as, bs: reuse update, draw code 2022-09-08 13:42:29 -10:00
Simon Michael
fb0053c15f imp: ui: fix a probable bug with detecting date change while running 2022-09-08 12:23:59 -10:00
Simon Michael
8f8fc7bf75 dev: ui: re-export new/update functions from screen modules 2022-09-07 14:17:49 -10:00
Simon Michael
a5f4d2fd6e dev: ui: refactor: simpler, more debuggable Screen type
Follow-on from the brick 1.0 migration work (#1889, #1919).

These new types aim to be more restrictive, allowing fewer invalid
states, and easier to inspect and debug. The screen types store only
state, not behaviour (functions), and there is no longer a circular
dependency between UIState and Screen.
2022-09-07 11:56:13 -10:00
Simon Michael
96db4fe9cc dev: ui: enable/fix name shadowing warnings 2022-08-23 02:57:59 +01:00
Simon Michael
f5efb2e08e fix: ui: cleanups, fix more state & logging bugs (#1889) 2022-08-23 01:55:25 +01:00
Simon Michael
67cd6be424 imp: ui: at --debug=2, do lots of logging to debug.log 2022-08-23 00:50:51 +01:00
Simon Michael
4bd9f4a6f7 dev: ui: avoid MonadFail entirely, simplifying ghc version compat (#1889) 2022-08-17 15:57:27 +01:00
Simon Michael
2a594b7fb7 pkg: ui: use/require brick 1.0+ (#1889) 2022-08-17 15:57:27 +01:00
Simon Michael
3eddd913e3 imp: ghc9.2: silence incomplete-record-updates warnings 2022-03-25 20:36:12 -10: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
Stephen Morgan
3456fcb862 test: ui: web: Use report date from _rsDay for hledger-ui and
hledger-web, rather than getCurrentDay.

File watching in hledger-ui continues to use getCurrentDay.
2021-09-09 14:40:39 -10:00
Stephen Morgan
765466c392 dev!: ui: Rename fields of UIOpts for consistency.
In code, either replace the name with the new name, or use the lenses
instead.

watch_ -> uoWatch
cliopts_ -> uoCliOpts
2021-09-09 13:31:43 -10:00
Stephen Morgan
16b4702dce fix: ui: Ensure that forecast_ argument gets restored to the startup
opts when toggling.
2021-08-26 20:32:30 -10:00
Stephen Morgan
5906959882 cln: hlint: Remove redundant case warnings. 2021-08-26 07:23:11 -10:00
Stephen Morgan
c404800fbf ref!: forecast: Move forecast_ from ReportOpts to InputOpts. 2021-08-05 21:10:47 -10:00
Stephen Morgan
b0aa70b27a lib!: Rename the fields of ReportSpec.
This is done to be more consistent with future field naming conventions,
and to make automatic generation of lenses simpler. See discussion in
\#1545.

rsOpts -> _rsReportOpts
rsToday -> _rsDay
rsQuery -> _rsQuery
rsQueryOpts -> _rsQueryOpts
2021-07-23 10:37:08 -10:00
Stephen Morgan
0f1837816d lib,cli,ui,web: Add check balancednoautoconversion command, which checks that
transactions are balanced possibly using explicit prices, but without
inferring any prices. This is included in --strict mode.

Renames check autobalanced to check balancedwithautoconversion.
2021-06-07 18:58:58 -10:00
Stephen Morgan
55308e1ca8 lib,cli,ui,web: Remove unnecessary CPP when dropping support for GHC 8.2. 2021-06-07 17:33:54 -10:00
Simon Michael
15dc638a07 ui: preserve forecast txns (& period) when reloading journal (#1204) 2020-12-12 11:53:24 -08:00
Simon Michael
3f55c23603 ;review, tag all error calls with an easier to find PARTIAL: comment (#1312) 2020-08-05 16:08:33 -07:00
Simon Michael
44da1e1cb7 ;ui: E key: simplify; drop buggy emacs end-of-file positioning 2019-12-15 11:03:05 -08:00
Simon Michael
3b47b58aec lib: clarify transaction balancing & balance assertion checking 2019-02-20 09:14:30 -08:00
Simon Michael
ad424e0381 ui: C-z suspend now restores the terminal cleanly 2019-01-23 17:26:27 -08:00
Simon Michael
cc0764eac2 ui: on posix, support ctrl-z to suspend the program 2019-01-18 16:33:06 -08:00
Simon Michael
c02647d05e ui: support ctrl-l everywhere 2019-01-18 16:32:57 -08:00
Simon Michael
389eaa4c5d ui: whitespace 2019-01-15 06:18:35 -08:00
Mykola Orliuk
99bfebd1a1 ui: support all results of showGenericSourcePos
Resolves simonmichael/hledger#904
2018-10-26 16:32:16 -07:00
Simon Michael
42a4a4a7e4 ui: use "border" instead of borderAttr everywhere
Assume it won't change, it's clearer and more consistent.
2018-10-23 06:43:21 -07:00
Alex Chen
3d2584d869 lib: switch to megaparsec 7 2018-09-30 20:15:12 -06:00
Alex Chen
b245ec7b3d lib: remove the megaparsec compatability module 2018-05-22 12:16:46 -07:00
Simon Michael
84579bb1b4 silence redundant import warnings with ghc 8.4 2018-03-24 22:51:56 +00:00
Simon Michael
e3c4a76119 add & use simpler readJournalFilesWithOpts/InputOpts api 2017-09-14 17:43:32 -07:00
Simon Michael
dc191ec76e cli: refactor: new Commands module
Builtin commands are now gathered more tightly in a single module,
Hledger.Cli.Commands, reducing duplication and facilitating change.

The tests command was difficult and has been dropped for now.

The obsolete convert/info/man commands have been dropped.

cli: refactor: a proper commands list, better Main/Commands separation

The legacy "convert" command has been dropped.

The activity command's module is now named consistently.
2017-09-11 16:50:08 -07:00
Hans-Peter Deifel
79e3a29083 Fix build of hledger-ui with megaparsec-6 2017-08-02 11:35:23 -07:00
Simon Michael
59af88b796 ui: add temporary --status-toggles for testing toggle styles (#564) 2017-06-18 16:20:30 -07:00
Simon Michael
eac2ff0ea7 ui: make --watch work on the error screen too 2016-12-02 15:37:18 -08:00
Simon Michael
9952f93e97 ui: --watch date tracking fixes
- move the period only if it's "current" (contains the old "today" date)
- make it work on all screens, not just accounts
2016-12-02 15:36:23 -08:00
Simon Michael
e3a7f6697e ui: --watch also tracks the current date, when appropriate
ie, when viewing a "current" period (the current day/week/month/quarter/year),
it will be moved to enclose the current date, if needed, whenever the system date changes.
2016-12-01 19:26:38 -08:00
Simon Michael
6dd406779b ui: always reload when g is pressed
Previously it would check the modification time and reload only if
it looked newer than the last reload. But this could get confused
somehow by fsnotify events, such that there were unloaded changes
on disk yet pressing g did nothing.
2016-11-24 20:23:14 -08:00
Simon Michael
b09b3a7be6 ui: with --watch, react to file changes in real time
Experimental, tested on OSX so far.
Rapid successive file changes can cause it to get stuck.
2016-11-24 11:14:34 -08:00
Simon Michael
0f1108db07 ui: use a custom application event type 2016-11-24 09:10:50 -08:00
Simon Michael
c6e2784eeb ui: use brick 0.12, bump version to 1.0.3 2016-10-31 08:06:29 -07:00
Simon Michael
0cb5703ad1 ui: refactor draw functions 2016-08-02 08:24:04 -07:00