lib: more verbose show instance for PeriodicTransaction

This commit is contained in:
Simon Michael 2018-08-17 12:41:45 +01:00
parent 9076474a09
commit 43d973e8ab
3 changed files with 27 additions and 6 deletions

View File

@ -1,6 +1,7 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE StandaloneDeriving #-}
{-|
A 'PeriodicTransaction' is a rule describing recurring transactions.
@ -16,6 +17,8 @@ where
import Data.Monoid ((<>))
#endif
import qualified Data.Text as T
import Text.Printf
import Hledger.Data.Types
import Hledger.Data.Dates
import Hledger.Data.Amount
@ -43,6 +46,27 @@ _ptgen str = do
nullperiodictransaction{ ptperiodexpr=t , ptspan=s, ptinterval=i, ptpostings=["a" `post` usd 1] }
nulldatespan
--deriving instance Show PeriodicTransaction
-- for better pretty-printing:
instance Show PeriodicTransaction where
show PeriodicTransaction{..} =
printf "PeriodicTransactionPP {%s, %s, %s, %s, %s, %s, %s, %s, %s}"
("ptperiodexpr=" ++ show ptperiodexpr)
("ptinterval=" ++ show ptinterval)
("ptspan=" ++ show (show ptspan))
("ptstatus=" ++ show (show ptstatus))
("ptcode=" ++ show ptcode)
("ptdescription=" ++ show ptdescription)
("ptcomment=" ++ show ptcomment)
("pttags=" ++ show pttags)
("ptpostings=" ++ show ptpostings)
-- A basic human-readable rendering.
--showPeriodicTransaction t = "~ " ++ T.unpack (ptperiodexpr t) ++ "\n" ++ unlines (map show (ptpostings t))
--nullperiodictransaction is defined in Types.hs
-- | Generate transactions from 'PeriodicTransaction' within a 'DateSpan'
--
-- Note that new transactions require 'txnTieKnot' post-processing.

View File

@ -68,9 +68,6 @@ instance Show Transaction where show = showTransactionUnelided
instance Show TransactionModifier where
show t = "= " ++ T.unpack (tmquerytxt t) ++ "\n" ++ unlines (map show (tmpostings t))
instance Show PeriodicTransaction where
show t = "~ " ++ T.unpack (ptperiodexpr t) ++ "\n" ++ unlines (map show (ptpostings t))
sourceFilePath :: GenericSourcePos -> FilePath
sourceFilePath = \case
GenericSourcePos fp _ _ -> fp

View File

@ -279,7 +279,7 @@ data PeriodicTransaction = PeriodicTransaction {
ptcomment :: Text,
pttags :: [Tag],
ptpostings :: [Posting]
} deriving (Eq,Typeable,Data,Generic)
} deriving (Eq,Typeable,Data,Generic) -- , Show in PeriodicTransaction.hs
nullperiodictransaction = PeriodicTransaction{
ptperiodexpr = ""
@ -313,7 +313,7 @@ data MarketPrice = MarketPrice {
mpdate :: Day,
mpcommodity :: CommoditySymbol,
mpamount :: Amount
} deriving (Eq,Ord,Typeable,Data,Generic) -- & Show (in Amount.hs)
} deriving (Eq,Ord,Typeable,Data,Generic) -- , Show in Amount.hs
instance NFData MarketPrice