packages feed

hledger-iadd 1.2.5 → 1.2.6

raw patch · 5 files changed

+66/−38 lines, 5 filesdep ~brickdep ~hledger-libdep ~megaparsecPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: brick, hledger-lib, megaparsec

API changes (from Hackage documentation)

- Text.Megaparsec.Compat: instance GHC.Classes.Ord e => Text.Megaparsec.Error.ErrorComponent (Text.Megaparsec.Compat.CustomError e)
+ Text.Megaparsec.Compat: type Dec = Void
- Text.Megaparsec.Compat: parseWithStart :: (Stream s, ErrorComponent e) => Parsec e s a -> SourcePos -> s -> Either (ParseError (Token s) e) a
+ Text.Megaparsec.Compat: parseWithStart :: (Stream s, Ord e) => Parsec e s a -> SourcePos -> s -> Either (ParseError (Token s) e) a
- Text.Megaparsec.Compat: string :: (MonadParsec e s m, Token s ~ Char) => Text -> m Text
+ Text.Megaparsec.Compat: string :: MonadParsec e s m => Tokens s -> m (Tokens s)

Files

ChangeLog.md view
@@ -1,3 +1,10 @@+# 1.2.6++  - Fix build with hledger-lib >= 1.3.1+  - Support for megaparsec-6.1+  - Support for brick <= 0.24+  - Fix test suite with ghc 8.2+ # 1.2.5    - Fix broken release tarball
hledger-iadd.cabal view
@@ -1,5 +1,5 @@ name:                hledger-iadd-version:             1.2.5+version:             1.2.6 synopsis:            A terminal UI as drop-in replacement for hledger add description:         This is a terminal UI as drop-in replacement for hledger add.                      .@@ -58,7 +58,7 @@   default-language:    Haskell2010   build-depends:       base >= 4.8 && < 5                      , hledger-lib >= 1.0 && < 1.4-                     , brick >= 0.17 && < 0.21+                     , brick >= 0.17 && < 0.25                      , vty >= 5.4                      , text                      , microlens@@ -67,7 +67,7 @@                      , transformers >= 0.3                      , time >= 1.5                      , vector-                     , megaparsec >= 5.0 && <6.1+                     , megaparsec >= 5.0 && <6.2                      , containers                      , optparse-applicative                      , directory@@ -81,11 +81,12 @@ executable hledger-iadd   hs-source-dirs:      src/main   main-is:             Main.hs+  other-modules:       Paths_hledger_iadd   default-language:    Haskell2010   build-depends:       base >= 4.8 && < 5                      , hledger-iadd                      , hledger-lib >= 1.0 && < 1.4-                     , brick >= 0.17 && < 0.21+                     , brick >= 0.17 && < 0.25                      , vty >= 5.4                      , text                      , microlens@@ -99,7 +100,7 @@                      , xdg-basedir                      , unordered-containers                      , free >= 4.12.4-                     , megaparsec >= 5.0 && <6.1+                     , megaparsec >= 5.0 && <6.2   ghc-options:         -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing  test-suite spec@@ -122,6 +123,6 @@                     , QuickCheck                     , text-format                     , free >= 4.12.4-                    , megaparsec >= 5.0 && <6.1+                    , megaparsec >= 5.0 && <6.2                     , text-zipper >= 0.10   ghc-options:        -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
src/AmountParser.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module AmountParser (parseAmount) where  import           Data.Text (Text)@@ -6,7 +8,11 @@ import           Control.Monad.Trans.State.Strict import           Text.Megaparsec.Compat hiding (Parser) +#if MIN_VERSION_hledger_lib(1,3,1)+type Parser a = HL.JournalParser Identity a+#else type Parser a = HL.JournalStateParser Identity a+#endif  parseAmount :: HL.Journal -> Text -> Either String HL.MixedAmount parseAmount journal t = case runIdentity $ runParserT (evalStateT (mixed <* optional space <* eof) journal) "" t of
src/main/Main.hs view
@@ -6,47 +6,61 @@  module Main where -import           Brick-import           Brick.Widgets.Border-import           Brick.Widgets.BetterDialog-import           Brick.Widgets.Edit.EmacsBindings-import           Brick.Widgets.List-import           Brick.Widgets.List.Utils-import           Graphics.Vty hiding (parseConfigFile, (<|>))+import Brick+  ( Widget, App(..), AttrMap, BrickEvent(..), Next, EventM+  , (<=>), (<+>), txt, continue, halt, attrMap, on, fg+  , defaultMain, showFirstCursor, padBottom, Padding(Max)+  )+import Brick.Widgets.BetterDialog (dialog)+import Brick.Widgets.Border (hBorder)+import Brick.Widgets.Edit.EmacsBindings+  ( Editor, renderEditor, handleEditorEvent, getEditContents, editContentsL+  , editorText+  )+import Brick.Widgets.List+  ( List, listMoveDown, listMoveUp, listMoveTo, listSelectedElement+  , listSelectedAttr, list+  )+import Brick.Widgets.List.Utils (listSimpleReplace)+import Graphics.Vty+  (Event(EvKey), Modifier(MCtrl,MMeta), Key(..), defAttr, black, white, green) -import           Control.Exception-import           Control.Monad-import           Control.Monad.IO.Class-import           Control.Monad.Trans.Except-import           Data.Functor.Identity-import           Data.Maybe-import           Data.Monoid-import           Data.Text (Text)+import Control.Exception (SomeException, try)+import Control.Monad (msum, when, void)+import Control.Monad.IO.Class (liftIO)+import Control.Monad.Trans.Except (runExceptT)+import Data.Functor.Identity (Identity(..), runIdentity)+import Data.Maybe (fromMaybe, fromJust)+import Data.Monoid ((<>), First(..), getFirst)+import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.IO as T-import           Data.Text.Zipper+import Data.Text.Zipper (gotoEOL, textZipper) import qualified Data.Vector as V import qualified Hledger as HL import qualified Hledger.Read.JournalReader as HL-import           Lens.Micro+import Lens.Micro ((&), (.~)) import qualified Options.Applicative as OA-import           Options.Applicative hiding (str, option)-import           System.Directory-import           System.Environment-import           System.Environment.XDG.BaseDir-import           System.Exit-import           System.IO+import Options.Applicative+  ( ReadM, Parser, value, help, long, metavar, switch, helper, fullDesc, info+  , header, short, (<|>), eitherReader, execParser+  )+import System.Directory (getHomeDirectory)+import System.Environment (lookupEnv)+import System.Environment.XDG.BaseDir (getUserConfigFile)+import System.Exit (exitFailure, exitSuccess)+import System.IO (hPutStr, hPutStrLn, stderr) -- explicit package import since hledger-lib defines the same module import qualified "hledger-iadd" Text.Megaparsec.Compat as P -import           Brick.Widgets.HelpMessage-import           Brick.Widgets.CommentDialog-import           DateParser-import           ConfigParser hiding (parseConfigFile)-import           Model-import           View+import Brick.Widgets.CommentDialog+import Brick.Widgets.HelpMessage+import ConfigParser hiding (parseConfigFile)+import DateParser+import Model+import View -import           Data.Version (showVersion)+import Data.Version (showVersion) import qualified Paths_hledger_iadd as Paths  data AppState = AppState@@ -493,7 +507,7 @@     Left err -> do       hPutStr stderr "Could not parse date format: "       T.hPutStr stderr err-      exitWith (ExitFailure 1)+      exitFailure     Right res -> return res    let path = runIdentity $ optLedgerFile opts
tests/AmountParserSpec.hs view
@@ -5,7 +5,7 @@ import           Test.Hspec  import           Control.Monad.Trans.State.Strict-import           Data.Either+import           Data.Either (either, isLeft) import           Data.Functor.Identity import           Data.Text (Text) import qualified Hledger as HL