Commit Graph

179 Commits

Author SHA1 Message Date
Stephen Morgan
e5371d5a6a lib,cli,ui,web: Make Regexp a wrapper for Regex. 2020-08-31 12:04:45 +10:00
Stephen Morgan
ba59fed6b2 lib: Replace more instances of fromIntegral with safer versions. 2020-08-30 22:20:58 +10: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
bac3028704 ui: q exits help; improve help layout (#1286) 2020-07-18 08:59:21 -07:00
Simon Michael
ae830a1ace ui: restore vi keys by popular demand; t toggles tree mode (#1286) 2020-07-18 08:39:23 -07:00
Simon Michael
847fc23236 ui: use t/l keys for tree/list, T for "today", drop vi keys?! retune help (#1286) 2020-07-17 15:42:05 -07:00
Simon Michael
3b6a8b0956 ui: register: elide multicommodity amounts 2020-07-05 06:59:16 -07:00
Simon Michael
44c3eb1904 add a color argument to most amount show helpers, drop cshow variants
This is an API change, but it seems better than having additional
colour-supporting variants and trying to avoid duplicated code.
I stopped short of changing showAmount, so cshowAmount still exists.
2020-07-05 06:59:16 -07:00
Dmitry Astapov
b7413edf22 lib: --forecast=PERIODICEXPR. Fixes #835, #1236 2020-06-03 15:53:00 -07:00
Simon Michael
660ba7e1d9 lib: clarify zero-checking function names
isZeroAmount                -> amountLooksZero
isReallyZeroAmount          -> amountIsZero
isZeroMixedAmount           -> mixedAmountLooksZero
isReallyZeroMixedAmount     -> mixedAmountIsZero
isReallyZeroMixedAmountCost dropped
2020-05-29 18:57:22 -07:00
Simon Michael
c1488db4f1 ui: fix a regression, empty register of depth-limited account (fix #1208) 2020-03-08 12:27:05 -07:00
Simon Michael
3bee9a96c9 ui: simpler forecast toggle: just visibility, no reload (#1193) 2020-02-22 11:06:58 -08:00
Simon Michael
4eba930a5c ui: don't force --auto/--forecast on; merge --future with --forecast (#1193)
Periodic transactions were always on, which meant that periodic
transactions occurring today were always shown, in future or present
mode.

Now, both periodic transactions and display of future transactions are
controlled by --forecast, and toggleable by the F key ("forecast
mode"). The --future flag has been dropped (it still works as a hidden
alias for --forecast, but is deprecated).

It seemed to also make sense to leave auto postings off by default,
like hledger.
2020-02-22 11:06:58 -08: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
332624f9fa ui: B and V keys toggle display of cost, value 2019-11-21 17:33:04 -08:00
Caleb Maclennan
11d9e5eb6a code: Strip extraneous trailing whitespace from Haskell sources 2019-07-15 16:40:49 +01:00
Simon Michael
98e3358046 ui: more defensive brick list imports to fix recent breakage 2019-02-02 08:22:23 -08:00
Simon Michael
fda41373f7 ui: fix build issues with older brick/snapshots, require brick 0.23+ 2019-02-01 21:05:56 -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
bb5d6c47c6 ui: probably more effective redraw when pressing Ctrl-l
Now uses vtyRefresh.
2019-01-18 16:32:52 -08:00
Simon Michael
389eaa4c5d ui: whitespace 2019-01-15 06:18:35 -08:00
Simon Michael
a94e632524 ui: avoid brick reverse clash (#935) 2018-12-10 10:48:40 +00:00
Simon Michael
12d3ba6fc0 ui: refactor, try to clarify toggles' help
Consistent ordering with most-used toggles first, more intuitive wording
2018-11-04 13:54:20 -08:00
Simon Michael
d1a20553e3 ui: fix Any build error with GHC < 8.4 2018-10-24 12:20:52 -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
Simon Michael
16faa7dd9c ui: capitalise cursor keys in quick help, like help dialog 2018-10-23 05:43:57 -07:00
Simon Michael
52ee10bd87 ui: reg: ensure T always has a visible effect 2018-10-18 14:43:00 -07:00
Simon Michael
1db9b018f1 ui: add --present/--future, hide future txns by default, toggle with F
You may have transactions dated later than today, perhaps piped from
print --forecast or recorded in the journal, which you don't want to
see except when forecasting.

By default, we now hide future transactions, showing "today's balance".
This can be toggled with the F key, which is easier than setting a
date query. --present and --future flags have been added to set the
initial mode.

(Experimental. Interactions with date queries have not been explored.)
2018-10-18 14:43:00 -07:00
Simon Michael
89712fe81d ui: make flat the default, toggle with T, add --tree/-T/-F flags 2018-10-18 14:43:00 -07:00
Simon Michael
84579bb1b4 silence redundant import warnings with ghc 8.4 2018-03-24 22:51:56 +00:00
Simon Michael
5de51c9bad fix warnings/errors found by make stacktest 2017-09-30 13:00:22 -10:00
Simon Michael
e3c4a76119 add & use simpler readJournalFilesWithOpts/InputOpts api 2017-09-14 17:43:32 -07:00
Simon Michael
55cebad0d5 cli: refactor: move commands to a subdirectory, reinstate test command 2017-09-12 10:04:36 -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
Simon Michael
50efcfe359 ui: accounts: reduce "warping", select alphabetically preceding account
..when selected account disappears, eg when toggling zero accounts.
2017-06-30 19:45:21 +01:00
Simon Michael
f666d5fc25 ui: register: reduce "warping", keep selection at nearest txn
When the transaction list changes, eg due to toggling a query filter,
and the previously selected item has disappeared, instead of moving
the selection to the end, we now select the nearest transaction by
date (and if several have the same date, by journal order).
2017-06-30 19:08:51 +01:00
Simon Michael
eab17c8edb ui: transaction: don't show blanks 2017-06-30 19:07:48 +01:00
Simon Michael
8619942388 ui: toggles cleanup 2017-06-30 19:07:26 +01:00
Simon Michael
97964eb2fc ui: consistently support vi & emacs movement keys
hjkl and CTRL-bfnp should now work wherever unmodified arrow keys work.
(You must still use arrow keys with SHIFT for adjusting report period).
2017-06-30 16:37:10 +01:00
Simon Michael
ef5e152fde ui: better scrolling/positioning
In the accounts and register screens:, you can now scroll down further
so that the last item need not always be shown at the bottom of the screen.
Also we now try to center the selected item in the following situations:

- after moving to the end with Page down/End
- after toggling filters (status, real, historical..)
- on pressing the control-l key (should force a screen redraw, also)
- on entering the register screen from the accounts screen (there's a
  known problem with this: it doesn't work the first time).

Items near the top of the list can't be centered, as we don't scroll
higher than the top of the list.
2017-06-30 15:54:30 +01:00
Simon Michael
0ccb8c0779 ui: refactor: consistent order 2017-06-28 12:54:14 +01:00
Simon Michael
ce0d6574e6 ui: show transaction status mark in register screen 2017-06-28 11:47:06 +01:00
Simon Michael
59af88b796 ui: add temporary --status-toggles for testing toggle styles (#564) 2017-06-18 16:20:30 -07:00
Simon Michael
dcc58d4a2b lib: rename ClearedStatus type to Status
(and fix hard-coded enum count)
2017-06-15 19:16:39 -07:00
Simon Michael
e119941648 rename "uncleared" status to "unmarked" and --uncleared to --unmarked (#564)
See the issue and linked mail list discussion. Ambiguity between the
uncleared state, and the "not cleared" --uncleared flag causes confusion
and friction. At this point it seems best to break with Ledger and
past hledger, pick a new name and drop --uncleared to put an end to it.
2017-06-15 19:16:39 -07:00
Simon Michael
44c6b324ab ui: add P key to toggle pending mode (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
7fab8abd5d ui: fix a GenericSourcePos-related warning 2017-01-25 09:47:21 -08:00
Simon Michael
31e4f538c0 ui: the A key runs hledger-iadd (if available) 2016-12-08 13:18:56 -08:00
Simon Michael
3c4cb4eeeb ui: --watch: track date only when a standard period is in effect 2016-12-07 15:19:36 -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
a4cf233312 ui: keep next/previous period within the journal's date span 2016-08-13 08:08:43 -07:00
Simon Michael
ef961f51ac ui: quick help formatting fix 2016-08-12 18:06:02 -07:00
Simon Michael
4e3c0cc936 ui: historical/period toggle, help updates
accounts and register screens can now switch between "historical"
(default) and "period" modes

title header wording is clearer

quick help footer now indicates historical/period and tree/flat modes,
saving space in the title

help screen is more explanatory

the enter key has been reserved for later and is no longer an alias
for right/l
2016-08-12 17:44:55 -07:00
Simon Michael
af9daa3b11 ui: use only shift-cursor keys for period; simplify 2016-08-10 07:17:35 -07:00
Simon Michael
fe1408485d ui: shift-left/right/up/down equivalent to p/n/u/d 2016-08-09 16:36:14 -07:00
Simon Michael
79cc999fa3 ui: d/u zooms report period down/up, t selects today 2016-08-09 15:31:35 -07:00
Simon Michael
293b0f6705 ui: strip leading/trailing whitespace from filter query 2016-08-04 11:55:46 -07:00
Simon Michael
3c724efe4f ui: d cycles report duration, n/p steps to next/prev period (#381) 2016-08-02 08:24:04 -07:00
Simon Michael
0cb5703ad1 ui: refactor draw functions 2016-08-02 08:24:04 -07:00
Simon Michael
fe6d4cc7da lib: abstract period/interval/cleared in ReportOpts 2016-07-29 19:20:56 -07:00
Simon Michael
90c0d40777 lib, ui, web: more careful dates in account transactions report/registers
Clarify the account transactions report, and don't change original transactions' dates.

Show a more accurate date in hledger-ui and hledger-web's account registers
when postings have their own dates. This is now called the "transaction register date":
the date which is displayed for that transaction in a register for some current account
and filter query. It is either the transaction date from the journal ("transaction general date"),
or if postings to the current account and matched by the register's filter query have
their own dates, the earliest of those dates.
2016-07-27 12:12:42 -07:00
Simon Michael
ffb40870ce ui: register: be inclusive for a depth-clipped account, matching displayed balance
And drop F key from register screen again.
2016-07-26 17:28:29 -07:00
Simon Michael
9b0cadc179 ui: support/require brick 0.7+ #379 2016-07-24 18:06:49 -07:00
Simon Michael
7eeb5e01ee ui: I toggles balance assertions
This was a bit tricky.
2016-07-06 15:08:57 -07:00
Simon Michael
19fc5b61f7 ui: indicate when balance assertions are ignored
The indication takes up lots of space, may need refinement.
It's currently not shown on the error screen.
2016-07-06 15:07:27 -07:00
Moritz Kiefer
991204d59a Support vty 0.7 (#365) 2016-07-05 13:23:00 -07:00
Simon Michael
dbeb4e3020 ui: add vi-style movement keys, use ? for help (#357) 2016-06-24 18:54:54 -07:00
Simon Michael
1d419eb7e6 ui: editor: jump to current txn or error location (emacs, emacsclient, vi) 2016-06-19 16:15:17 -07:00
Simon Michael
c79750bafd ui: editor: cleanup, vi support, positioning support 2016-06-19 14:09:49 -07:00
Simon Michael
4923efefb9 ui: basic editor integration
The E key (on all screens) edits the main journal file using
$HLEDGER_UI_EDITOR or $EDITOR or "emacs -nw",
jumping to the end if it's Emacs.
2016-06-19 09:00:04 -07:00
Simon Michael
c4b3a4f996 ui: use Z instead of E for nonzero mode
Breaking consistency with hledger cli flags, but I think it's
more mnemonic, and E will more useful for something else.
2016-06-18 09:00:38 -07:00
Simon Michael
cc8180b295 ui: flat mode affects register too; doc updates 2016-06-18 08:46:08 -07:00
Simon Michael
c26178acdd ui: reg: select latest txn by default again 2016-06-18 07:31:09 -07:00
Simon Michael
d4343f8de1 ui: at depth 0 call account "All" (and fix register) 2016-06-12 11:09:59 -07:00
Simon Michael
bdb36b8480 ui: refactor: events, imports cleanup 2016-06-10 17:54:46 -07:00
Simon Michael
47a8eb53c8 ui: refactor: AppState -> UIState, cleanups 2016-06-10 17:54:46 -07:00
Simon Michael
0851851ea9 ui: refactor: drop Vty. prefix 2016-06-10 16:39:06 -07:00
Simon Michael
ea180f72a0 ui: briefer on-screen help, and a more detailed help dialog 2016-06-10 11:50:57 -07:00
Simon Michael
aa75cc69f6 ui: a more general mode mechanism 2016-06-10 08:40:00 -07:00
Simon Michael
499f249157 ui: clear screen before add 2016-06-09 12:42:47 -07:00
Simon Michael
6c6222ef85 ui: import Lens.Micro.Platform more correctly 2016-06-09 12:41:26 -07:00
Simon Michael
1ed7819467 ui: very basic add command integration 2016-06-09 09:50:41 -07:00
Simon Michael
8bda78a447 ui: refactor, simplify, flatten screen types 2016-06-09 07:47:48 -07:00
Simon Michael
5c343a5848 ui: convert screen states to records
This is highly verbose, but potentially clearer, allows better haddock docs, and hopefully will improve after lensification.
2016-06-08 12:15:58 -07:00
Simon Michael
5259605e82 ui: simplify screen naming & importing 2016-06-08 11:03:49 -07:00
Simon Michael
70d596fb38 ui: extract journal reloading 2016-06-08 10:48:34 -07:00
Simon Michael
1e93feeff3 ui: distinguish regenerateScreens from journal reloading 2016-06-08 10:42:51 -07:00
Simon Michael
bbcbaf6080 ui: Esc (outside minibuffer) resets, jumps to top 2016-06-07 09:26:16 -07:00
Simon Michael
c6313ebf8c ui: use / to filter; backspace/delete clears it
I was planning to use this for search, but I can't help it, my hands
want to use / to adjust the filter.
2016-06-07 09:23:36 -07:00
Simon Michael
9131eb7c67 ui: allow the filter query to be changed 2016-06-04 11:56:10 -07:00
Simon Michael
d1d6e237ec ui: U key shows only uncleared transactions/postings 2016-06-03 18:32:19 -07:00
Simon Michael
9e42e231c7 ui: accounts, register: more stable scroll position after E/C/R 2016-06-03 17:53:49 -07:00
Simon Michael
ddf18060ab ui: register: keep scroll position more stable when toggling E 2016-06-03 16:07:37 -07:00