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 +7/−0
- hledger-iadd.cabal +7/−6
- src/AmountParser.hs +6/−0
- src/main/Main.hs +45/−31
- tests/AmountParserSpec.hs +1/−1
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