Commit Graph

948 Commits

Author SHA1 Message Date
Simon Michael
00e2a8a327 lib: note a problem with dbg*IO 2016-12-07 07:59:48 -08:00
Johannes Gerer
2e8e67aa09 Changed behavior of readJournalFiles to be identical to readJournalFile for singleton lists (#437) 2016-12-07 07:59:24 -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
36c75841ee lib: dbgIO -> dbg0IO, consistent with dbg0 2016-11-24 10:59:03 -08:00
Simon Michael
3a5091e9eb don't show stack trace details in errors with GHC 8+ 2016-11-22 14:28:39 -08:00
Simon Michael
a1411768e5 csv: create default rules file only if CSV reader succeeds 2016-11-22 13:59:31 -08:00
Simon Michael
1f2276c100 lib: mark ledger reader as experimental, don't use automatically 2016-11-20 10:42:12 -08:00
Simon Michael
98ef8f9a60 lib, cli: allow a READER: prefix on data file paths
This provides a way to override the file format detection logic,
useful eg for files with wrong extensions or standard input.
2016-11-20 10:32:22 -08:00
Simon Michael
7d56af5a03 lib: restrict imports, avoiding GHCI clashes 2016-11-20 10:27:16 -08:00
Simon Michael
1539b258b9 lib: more Hledger.Read cleanup 2016-11-19 08:57:03 -08:00
Simon Michael
c8fefef7e8 doc: document file reading, and some options cleanups 2016-11-18 13:26:15 -08:00
Simon Michael
b6ff170688 lib: simplify format detection, avoid ledger reader by default
When we don't know a file's format, instead of choosing a subset of
readers based on content sniffing, now we just try them all.
Also, LedgerReader is now used only as a last resort,
as it's not yet competitive with JournalReader.
2016-11-18 13:24:57 -08:00
Simon Michael
59ce4c987b ledger: handle errors better in the ledger reader 2016-11-18 13:18:58 -08:00
Simon Michael
12151e05c0 lib: some Hledger.Read cleanup 2016-11-17 20:20:07 -08:00
Simon Michael
3ddc9d7432 lib: clarify file format detectors 2016-11-16 13:25:33 -08:00
Simon Michael
6a36efb7ca set base lower bound to 4.8 to enforce GHC 7.10+
hledger-lib had a valid install plan with GHC 7.8, but requires GHC 7.10 to compile (currently).
Require base 4.8+ everywhere so that stack/cabal will enforce a supported GHC version early.

Also, bump hledger-ui's "stability" to "stable".
2016-11-16 13:14:02 -08:00
Simon Michael
48b0d8a395 lib: ledger reader debug logging, cleanup 2016-11-13 08:29:04 -08:00
Simon Michael
27dd1ca593 lib: add a basic ledger journal reader using ledger4's ledger-parse
This reader is used by default for files with suffix .ledger or .l,
and tried along with the other readers for files of unknown type.

Currently only the bare minimum of the raw parsed data is used:
transaction dates/descriptions and posting accounts/amounts,
with the rest being ignored.

Amounts are parsed the same way as in the hledger journal format.
Malformed amounts might be ignored instead of error-reported.
2016-11-12 14:22:27 -08:00
Simon Michael
4eb7a617db lib: fix doctests 2016-11-12 14:14:04 -08:00
Simon Michael
6db6f9aa2c lib: fix hunit tests 2016-11-12 14:13:55 -08:00
Simon Michael
2996ec971b lib: also recognise *.hledger as hledger journal format 2016-11-12 13:55:37 -08:00
Simon Michael
c8650e0d10 comment 2016-11-12 13:54:48 -08:00
Simon Michael
2b310029bf file list fixes 2016-11-12 13:53:55 -08:00
Simon Michael
f5ee020b88 lib: add a copy of the ledger4 parser
This adds some or all of these as new dependencies for hledger-lib:
parsers, parsec, attoparsec, trifecta
2016-11-12 10:50:57 -08:00
Simon Michael
f548abf71c lib, doc: remove incorrect speedup claim 2016-10-29 12:13:20 -07:00
Simon Michael
6d0716b0a5 bump packages (excluding hledger-api and docs) to 1.0.1 2016-10-27 08:14:35 -07:00
Simon Michael
2e10f21f26 doc: update changelogs and relnotes outline (but not relnotes page) for 1.0.1 2016-10-27 08:10:24 -07:00
Simon Michael
d0e9b70e4f doc: release note/changelog fixes 2016-10-27 07:43:44 -07:00
Simon Michael
8bc0538778 allow megaparsec 5.0 or 5.1 for stackage compatibility 2016-10-27 07:19:26 -07:00
Simon Michael
08f97dd9c8 doc: project/package change logs, web release notes 2016-10-26 13:34:28 -07:00
Simon Michael
315db5621a doc: bump version to 1.0, update manuals & cabal files 2016-10-26 13:34:27 -07:00
Simon Michael
ee2ced7f65 set an upper bound on megaparsec 2016-10-26 13:34:27 -07:00
Simon Michael
5aa4c91332 stack/cabal cleanups; drop GHC 7.6, 7.8 support
A (disabled) stack build plan for GHC 7.8 is included; supporting it
would need small code changes and a maintainer.
2016-10-21 14:47:22 -07:00
Simon Michael
275f98b3be lib: getCurrentZonedTime 2016-10-21 11:47:07 -07:00
Simon Michael
bdf8f5ca88 doc: update generated docs, fixing typos 2016-10-20 16:57:35 -07:00
Hans-Peter Deifel
ae73c525d8 Fix csv rules parsing (#407)
* csv rules: Show prettier parsing errors

This goes from

  hledger: user error ("ParseError {errorPos = SourcePos {sourceName = \"foo.csv.rules\",
  sourceLine = Pos 20, sourceColumn = Pos 1} :| [], errorUnexpected =
  fromList [Tokens (' ' :| \"\")], errorExpected = fromList [Label ('b' :| \"lank or comment
  line\"),EndOfInput], errorCustom = fromList []}")

to

  hledger: user error (foo.csv.rules:20:1:
  unexpected space
  expecting blank or comment line or end of input
  )

* csv rules: Fix parsing of empty field values

A single line containing `account1 ` (note the space at the end) should
parse as assignment of the empty string to account1. At least it did
until commit 4141067.

The problem is that megaparsec's `space` parses multiple space
characters as opposed to parsec. So in the example above it would
incorrectly consume the newline.

This commit also adds a new test case for this bug.
2016-09-25 12:56:28 -07:00
Simon Michael
86c23bde7f doc: journal: fix posting dates link (fixes #401)
[ci skip]
2016-09-14 06:57:44 -07:00
Simon Michael
233251b06a doc: journal: clarify D directive
Example added, per #399 discussion.
2016-09-13 09:11:08 -07:00
Simon Michael
8c7e7c02c3 ui, lib: another historical balance fix for accountTransactionsReport 2016-09-06 08:43:25 -07:00
Simon Michael
2f4dde3699 lib: debug utils cleanup 2016-09-06 08:31:53 -07:00
Simon Michael
b262be7838 ui: fix wrong register start balance in historical mode
90c0d40 a few weeks ago miscalculated the starting balance
in accountTransactionsReport. Possibly also affects
-web and -api.
2016-09-05 14:45:02 -07:00
Simon Michael
9396bc6711 lib: fix ghc 8 warnings in Read.Common 2016-09-05 14:31:56 -07:00
Simon Michael
4ceda8f985 timeclock: fix order of transaction indexes #394
Timeclock transaction ids now count up rather than down.

Also, remove old code for appending timeclock transactions to journal transactions,
a holdover from the days when both were allowed in one file.
2016-08-14 14:50:03 -07:00
Simon Michael
72c39470d6 lib: non-journal formats now produce transaction ids #394
Transactions are now numbered consistently during journal finalisation,
rather than just in the journal reader. Also transaction knot-tying has been
moved out of journalBalanceTransactions.
2016-08-14 12:44:19 -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
f3bcf570e5 lib: simplify account txns report running total
The account transactions report used for hledger-ui and -web registers
now gives either the "period total" or "historical total", depending
strictly on the --historical flag. It doesn't try to tell the user
whether the historical total is the accurate historical balance (which
depends on the report query).
2016-08-12 17:26:34 -07:00
Simon Michael
69ebc3b159 bal, reg, stats: clarify report modes, output, options
- try to clarify naming and meaning of balance/register report modes
  and kinds of "balance" displayed. Added balance --change and
  register --cumulative flags to clarify report modes.

- with multiple --change/--cumulative/--historical flags use the last
  instead of complaining

- register -A is now affected by -H

- options cleanups
2016-08-12 09:44:31 -07:00
Simon Michael
c1ddbfc08a drop unusual "d" suffix when showing a day period 2016-08-11 11:23:05 -07:00
Simon Michael
79cc999fa3 ui: d/u zooms report period down/up, t selects today 2016-08-09 15:31:35 -07:00