hledger/hledger-ui
Simon Michael 499e20c0b2 lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11
fail is moving out of Monad and into it's own MonadFail class.
This will be enforced in GHC 8.8 (I think).

base-compat/base-compat-batteries 0.11.0 have adapted to this,
and are approaching stackage nightly
(https://github.com/commercialhaskell/stackage/issues/4802).

hledger is now ready to build with base-compat-batteries 0.11.0, once
all of our deps do (eg aeson). We are still compatible with the older
0.10.x and GHC 7.10.3 as well.

For now we are using both fails:

- new fail (from Control.Monad.Fail), used in our parsers, imported
  via base-compat-batteries Control.Monad.Fail.Compat to work with
  older GHC versions.

- old fail (from GHC.Base, exported by Prelude, Control.Monad,
  Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's
  Test, since I couldn't find their existing fail implementation to update.

To reduce (my) confusion, these are imported carefully, consistently,
and qualified everywhere as Fail.fail and Prelude.fail, with clashing
re-exports suppressed, like so:

import Prelude hiding (fail)
import qualified Prelude (fail)
import Control.Monad.State.Strict hiding (fail)
import "base-compat-batteries" Prelude.Compat hiding (fail)
import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail
2019-09-08 17:13:47 -07:00
..
Hledger code: Strip extraneous trailing whitespace from Haskell sources 2019-07-15 16:40:49 +01:00
.ghci tools: .ghci for each package, sets shorter prompt 2016-04-15 16:06:45 -07:00
.version bump versions to 1.15 2019-09-01 08:53:06 -07:00
CHANGES.md ;doc: finalise changelogs 2019-09-01 08:53:06 -07:00
defs.m4 bump versions to 1.15 2019-09-01 08:53:06 -07:00
hledger-ui.1 ;doc: regen man pages 2019-09-01 08:53:06 -07:00
hledger-ui.cabal lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11 2019-09-08 17:13:47 -07:00
hledger-ui.hs ui: fix stack ghci does not export main warning 2016-04-18 15:48:18 -07:00
hledger-ui.info ;doc: regen man pages 2019-09-01 08:53:06 -07:00
hledger-ui.m4.md ;doc: fix images in ui, web manuals 2019-08-26 09:37:03 -07:00
hledger-ui.txt ;doc: regen manuals 2019-09-02 11:11:56 -07:00
LICENSE ui: revive the curses UI, now named hledger-ui 2015-08-13 11:22:40 -07:00
package.yaml lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11 2019-09-08 17:13:47 -07:00
README ui: update backlog 2015-08-28 11:43:29 -07:00
Setup.hs ui: revive the curses UI, now named hledger-ui 2015-08-13 11:22:40 -07:00

A curses-style text user interface for the hledger accounting tool.

hledger-ui is the new name for hledger-vty. Revived in 2015, this
package is intended to be installed as standard by all hledger users,
except those on (native) Windows, where it is not supported.

hledger-ui currently allows browsing the balance, register and print
reports, with drill-down and scrolling.


# HACKING

## Backlog:
```
reg: show historical running balance
acc: fix -H, show historical balances
 switch to multibalance report ?
adjust filter
 accounts screen
 register screen
reg: improve other account names
 test showing only real postings when there are reals and virtuals
journal entry view dialog
blog
reg: support -V
redraw on ctrl-l/cmd-r
 reload on redraw
 reload on screen change
 reload on file change
acc: show total
fix --drop
show "modified account names" with --drop or --alias
journal screen
bs/is/cf-ish reports
persistent custom reports
persistent config
search in page
adjust other options
add
edit
custom screens
plugin screens


```