mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-26 03:42:25 +03:00
lib: replace pretty-show with pretty-simple
pretty-simple, already used in .ghci, will hopefully give nicer debug output, including for values which don't have Read-able Show output. This should mean that we can start removing custom string-like Show instances that were a workaround for pretty-show. We are using the latest version (4.0.0.0) to get compact output. Here's some old pretty-show output: CsvRules { rdirectives = [ ( "skip" , "1" ) ] , rcsvfieldindexes = [ ( "date" , 1 ) , ( "amount" , 2 ) ] , rassignments = [ ( "amount" , "%2" ) , ( "date" , "%1" ) ] , rconditionalblocks = [] } And the new pretty-simple output: CsvRules { rdirectives= [ ( "skip", "1" ) ] , rcsvfieldindexes= [ ( "date", 1 ), ( "amount", 2 ) ] , rassignments= [ ( "amount", "%2" ), ( "date", "%1" ) ] , rconditionalblocks= [] } Non-compact pretty-simple output would be: CsvRules { rdirectives= [ ( "skip" , "1B" ) ] , rcsvfieldindexes= [ ( "date" , 1 ) , ( "amount" , 2 ) ] , rassignments= [ ( "amount" , "%2" ) , ( "date" , "%1" ) ] , rconditionalblocks=[] } Also: - Account's Show instance no longer converts : to _ in account names - drop unused pretty-show dependency from hledger, hledger-ui packages - regenerate hledger-lib with the older hpack that's shipped in stack
This commit is contained in:
parent
84ee05baa6
commit
a97daaf322
@ -14,7 +14,6 @@ import Data.List.Extra (groupSort, groupOn)
|
||||
import Data.Maybe (fromMaybe)
|
||||
import Data.Ord (Down(..))
|
||||
import qualified Data.Map as M
|
||||
import qualified Data.Text as T
|
||||
import Safe (headMay, lookupJustDef)
|
||||
import Text.Printf
|
||||
|
||||
@ -28,12 +27,11 @@ import Hledger.Utils
|
||||
-- deriving instance Show Account
|
||||
instance Show Account where
|
||||
show Account{..} = printf "Account %s (boring:%s, postings:%d, ebalance:%s, ibalance:%s)"
|
||||
(T.map colonToUnderscore aname) -- hide : so pretty-show doesn't break line
|
||||
aname
|
||||
(if aboring then "y" else "n" :: String)
|
||||
anumpostings
|
||||
(showMixedAmount aebalance)
|
||||
(showMixedAmount aibalance)
|
||||
where colonToUnderscore x = if x == ':' then '_' else x
|
||||
|
||||
instance Eq Account where
|
||||
(==) a b = aname a == aname b -- quick equality test for speed
|
||||
|
@ -111,7 +111,6 @@ import Hledger.Utils
|
||||
-- Help ppShow parse and line-wrap DateSpans better in debug output.
|
||||
instance Show DateSpan where
|
||||
show s = "DateSpan " ++ showDateSpan s
|
||||
-- show s = "DateSpan \"" ++ showDateSpan s ++ "\"" -- quotes to help pretty-show
|
||||
|
||||
showDate :: Day -> String
|
||||
showDate = show
|
||||
|
@ -89,6 +89,7 @@ import Control.Monad (when)
|
||||
import Control.Monad.IO.Class
|
||||
import Data.List hiding (uncons)
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.Lazy as TL
|
||||
import Debug.Trace
|
||||
import Hledger.Utils.Parse
|
||||
import Safe (readDef)
|
||||
@ -97,17 +98,27 @@ import System.Exit
|
||||
import System.IO.Unsafe (unsafePerformIO)
|
||||
import Text.Megaparsec
|
||||
import Text.Printf
|
||||
import Text.Show.Pretty (ppShow, pPrint)
|
||||
import Text.Pretty.Simple -- (defaultOutputOptionsDarkBg, OutputOptions(..), pShowOpt, pPrintOpt)
|
||||
|
||||
-- | Pretty print. Easier alias for pretty-show's pPrint.
|
||||
prettyopts =
|
||||
defaultOutputOptionsDarkBg
|
||||
-- defaultOutputOptionsLightBg
|
||||
-- defaultOutputOptionsNoColor
|
||||
{ outputOptionsIndentAmount=2
|
||||
, outputOptionsCompact=True
|
||||
}
|
||||
|
||||
-- | Pretty print. Generic alias for pretty-simple's pPrint.
|
||||
pprint :: Show a => a -> IO ()
|
||||
pprint = pPrint
|
||||
pprint = pPrintOpt CheckColorTty prettyopts
|
||||
|
||||
-- | Pretty show. Easier alias for pretty-show's ppShow.
|
||||
-- | Pretty show. Generic alias for pretty-simple's pShow.
|
||||
pshow :: Show a => a -> String
|
||||
pshow = ppShow
|
||||
pshow = TL.unpack . pShowOpt prettyopts
|
||||
|
||||
-- | Pretty trace. Easier alias for traceShowId + ppShow.
|
||||
-- XXX some of the below can be improved with pretty-simple, https://github.com/cdepillabout/pretty-simple#readme
|
||||
|
||||
-- | Pretty trace. Easier alias for traceShowId + pShow.
|
||||
ptrace :: Show a => a -> a
|
||||
ptrace = traceWith pshow
|
||||
|
||||
@ -157,7 +168,7 @@ traceAtWith f a = trace (f a) a
|
||||
ptraceAt :: Show a => Int -> String -> a -> a
|
||||
ptraceAt level
|
||||
| level > 0 && debugLevel < level = flip const
|
||||
| otherwise = \s a -> let p = ppShow a
|
||||
| otherwise = \s a -> let p = pshow a
|
||||
ls = lines p
|
||||
nlorspace | length ls > 1 = "\n"
|
||||
| otherwise = " " ++ take (10 - length s) (repeat ' ')
|
||||
@ -303,7 +314,7 @@ plogAt :: Show a => Int -> String -> a -> a
|
||||
plogAt lvl
|
||||
| lvl > 0 && debugLevel < lvl = flip const
|
||||
| otherwise = \s a ->
|
||||
let p = ppShow a
|
||||
let p = pshow a
|
||||
ls = lines p
|
||||
nlorspace | length ls > 1 = "\n"
|
||||
| otherwise = " " ++ take (10 - length s) (repeat ' ')
|
||||
|
@ -1,10 +1,10 @@
|
||||
cabal-version: 1.12
|
||||
|
||||
-- This file has been generated from package.yaml by hpack version 0.34.2.
|
||||
-- This file has been generated from package.yaml by hpack version 0.33.0.
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
--
|
||||
-- hash: 24b8acde4649dda5e31d86c9f4f95744af97bae68f0e978144a55baf621d0bc8
|
||||
-- hash: 8be95614d73bb909eb29a27d8411f09623debad24f7fe84cf42ebc8b851a7ba8
|
||||
|
||||
name: hledger-lib
|
||||
version: 1.19.99
|
||||
@ -136,7 +136,7 @@ library
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, parser-combinators >=0.4.0
|
||||
, pretty-show >=1.6.4
|
||||
, pretty-simple >4 && <5
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
, split >=0.1
|
||||
@ -189,7 +189,7 @@ test-suite doctest
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, parser-combinators >=0.4.0
|
||||
, pretty-show >=1.6.4
|
||||
, pretty-simple >4 && <5
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
, split >=0.1
|
||||
@ -244,7 +244,7 @@ test-suite unittest
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, parser-combinators >=0.4.0
|
||||
, pretty-show >=1.6.4
|
||||
, pretty-simple >4 && <5
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
, split >=0.1
|
||||
|
@ -69,7 +69,7 @@ dependencies:
|
||||
- old-time
|
||||
- parsec >=3
|
||||
- parser-combinators >=0.4.0
|
||||
- pretty-show >=1.6.4
|
||||
- pretty-simple >4 && <5
|
||||
- regex-tdfa
|
||||
- safe >=0.2
|
||||
- split >=0.1
|
||||
|
@ -4,7 +4,7 @@ cabal-version: 1.12
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
--
|
||||
-- hash: 057371c2b8cf46c32339a64339eaf98ac7247396cf8bb2dad13e99a5931cd62f
|
||||
-- hash: 4e0beb8ffb64276b8f69f1bc9cf738199248509c23193799370132f748a74612
|
||||
|
||||
name: hledger-ui
|
||||
version: 1.19.99
|
||||
@ -83,7 +83,6 @@ executable hledger-ui
|
||||
, megaparsec >=7.0.0 && <9.1
|
||||
, microlens >=0.4
|
||||
, microlens-platform >=0.2.3.1
|
||||
, pretty-show >=1.6.4
|
||||
, process >=1.2
|
||||
, safe >=0.2
|
||||
, split >=0.1
|
||||
|
@ -57,7 +57,6 @@ dependencies:
|
||||
- microlens >=0.4
|
||||
- microlens-platform >=0.2.3.1
|
||||
- megaparsec >=7.0.0 && <9.1
|
||||
- pretty-show >=1.6.4
|
||||
- process >=1.2
|
||||
- safe >=0.2
|
||||
- split >=0.1
|
||||
|
@ -4,7 +4,7 @@ cabal-version: 1.12
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
--
|
||||
-- hash: 3becac2b267d30f6ce283af8e9b43dfa4f6ea374f6854da6c2272779fe3cb12c
|
||||
-- hash: 4517e1a53a08aa05c53bb06d8591b5591f3ae6f688bf39f809c8f774fbd1d41c
|
||||
|
||||
name: hledger
|
||||
version: 1.19.99
|
||||
@ -172,7 +172,6 @@ library
|
||||
, mtl >=2.2.1
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, pretty-show >=1.6.4
|
||||
, process
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
@ -223,7 +222,6 @@ executable hledger
|
||||
, mtl >=2.2.1
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, pretty-show >=1.6.4
|
||||
, process
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
@ -275,7 +273,6 @@ test-suite unittest
|
||||
, mtl >=2.2.1
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, pretty-show >=1.6.4
|
||||
, process
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
@ -326,7 +323,6 @@ benchmark bench
|
||||
, mtl >=2.2.1
|
||||
, old-time
|
||||
, parsec >=3
|
||||
, pretty-show >=1.6.4
|
||||
, process
|
||||
, regex-tdfa
|
||||
, safe >=0.2
|
||||
|
@ -126,7 +126,6 @@ dependencies:
|
||||
- mtl >=2.2.1
|
||||
- old-time
|
||||
- parsec >=3
|
||||
- pretty-show >=1.6.4
|
||||
- process
|
||||
- regex-tdfa
|
||||
- safe >=0.2
|
||||
|
@ -12,8 +12,10 @@ packages:
|
||||
- hledger-ui
|
||||
- hledger-web
|
||||
|
||||
# extra-deps:
|
||||
extra-deps:
|
||||
# for hledger-lib:
|
||||
- pretty-simple-4.0.0.0
|
||||
- prettyprinter-1.7.0
|
||||
# for hledger:
|
||||
# for hledger-ui:
|
||||
# for hledger-web:
|
||||
|
@ -78,3 +78,5 @@ extra-deps:
|
||||
- resourcet-1.2.4
|
||||
- http-conduit-1.3.0
|
||||
- monad-logger-0.3.28
|
||||
- pretty-simple-4.0.0.0
|
||||
- prettyprinter-1.7.0
|
||||
|
@ -12,4 +12,6 @@ packages:
|
||||
- hledger-ui
|
||||
- hledger-web
|
||||
|
||||
#extra-deps:
|
||||
extra-deps:
|
||||
- pretty-simple-4.0.0.0
|
||||
- prettyprinter-1.7.0
|
||||
|
@ -42,3 +42,5 @@ extra-deps:
|
||||
- streaming-commons-0.2.1.2
|
||||
- network-2.7.0.0
|
||||
- math-functions-0.3.3.0
|
||||
- pretty-simple-4.0.0.0
|
||||
- prettyprinter-1.7.0
|
||||
|
@ -25,3 +25,5 @@ extra-deps:
|
||||
- streaming-commons-0.2.1.2
|
||||
- network-2.7.0.0
|
||||
- math-functions-0.3.3.0
|
||||
- pretty-simple-4.0.0.0
|
||||
- prettyprinter-1.7.0
|
||||
|
@ -24,6 +24,8 @@ extra-deps:
|
||||
# - base-compat-0.11.0
|
||||
# - http-api-data-0.4.1.1
|
||||
# for hledger-lib:
|
||||
- pretty-simple-4.0.0.0
|
||||
- prettyprinter-1.7.0
|
||||
# for hledger:
|
||||
# for hledger-ui:
|
||||
# for hledger-web:
|
||||
|
Loading…
Reference in New Issue
Block a user