wl-pprint-terminfo 0.3.0.1 → 0.4
raw patch · 2 files changed
+21/−6 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ System.Console.Terminfo.PrettyPrint: class HasEffect e
+ System.Console.Terminfo.PrettyPrint: displayLn :: PrettyTerm t => t -> IO ()
+ System.Console.Terminfo.PrettyPrint: effect :: HasEffect e => e -> Effect
+ System.Console.Terminfo.PrettyPrint: instance HasEffect Effect
+ System.Console.Terminfo.PrettyPrint: instance HasEffect e => PrettyTerm (Doc e)
- System.Console.Terminfo.PrettyPrint: display :: TermDoc -> IO ()
+ System.Console.Terminfo.PrettyPrint: display :: PrettyTerm t => t -> IO ()
- System.Console.Terminfo.PrettyPrint: displayDoc :: Float -> TermDoc -> IO ()
+ System.Console.Terminfo.PrettyPrint: displayDoc :: PrettyTerm t => Float -> t -> IO ()
- System.Console.Terminfo.PrettyPrint: displayDoc' :: Terminal -> Float -> TermDoc -> IO ()
+ System.Console.Terminfo.PrettyPrint: displayDoc' :: PrettyTerm t => Terminal -> Float -> t -> IO ()
- System.Console.Terminfo.PrettyPrint: displayDoc'' :: Terminal -> Float -> Int -> TermDoc -> IO ()
+ System.Console.Terminfo.PrettyPrint: displayDoc'' :: PrettyTerm t => Terminal -> Float -> Int -> t -> IO ()
Files
System/Console/Terminfo/PrettyPrint.hs view
@@ -4,6 +4,7 @@ ScopedEffect(..) , with , Effect(..) -- unpaired effects+ , HasEffect(..) -- ** Graceful degradation , soft -- ** Effects (built with soft)@@ -32,6 +33,7 @@ -- * A Color Pretty Printer , TermDoc , display+ , displayLn -- ** Progressively less magical formatting , displayDoc , displayDoc'@@ -136,6 +138,12 @@ type TermDoc = Doc Effect type SimpleTermDoc = SimpleDoc Effect +class HasEffect e where+ effect :: e -> Effect++instance HasEffect Effect where+ effect = id+ tryTerm :: MonadPlus m => m TermOutput -> m TermOutput tryTerm m = m `mplus` return mempty @@ -191,26 +199,29 @@ snd <$> scrSize `finally` endWin -display :: TermDoc -> IO ()+displayLn :: PrettyTerm t => t -> IO ()+displayLn t = displayDoc 0.6 (prettyTerm t <> linebreak)++display :: PrettyTerm t => t -> IO () display = displayDoc 0.6 -displayDoc :: Float -> TermDoc -> IO ()+displayDoc :: PrettyTerm t => Float -> t -> IO () displayDoc ribbon doc = do term <- setupTermFromEnv displayDoc' term ribbon doc -displayDoc' :: Terminal -> Float -> TermDoc -> IO ()+displayDoc' :: PrettyTerm t => Terminal -> Float -> t -> IO () displayDoc' term ribbon doc = do cols <- kludgeWindowSize `mplus` return (maybe 80 id (getCapability term termColumns)) displayDoc'' term ribbon cols doc -displayDoc'' :: Terminal -> Float -> Int -> TermDoc -> IO ()+displayDoc'' :: PrettyTerm t => Terminal -> Float -> Int -> t -> IO () displayDoc'' term ribbon cols doc = case getCapability term $ evalTermState $ displayCap sdoc of Just output -> runTermOutput term output Nothing -> displayIO stdout sdoc- where sdoc = renderPretty ribbon cols doc+ where sdoc = renderPretty ribbon cols (prettyTerm doc) class Pretty t => PrettyTerm t where prettyTerm :: t -> TermDoc@@ -225,6 +236,10 @@ prettyTerm = char prettyTermList = string +instance HasEffect e => PrettyTerm (Doc e) where+ prettyTerm = fmap effect+ prettyTermList = list . map (fmap effect)+ instance PrettyTerm Int instance PrettyTerm Bool instance PrettyTerm Integer
wl-pprint-terminfo.cabal view
@@ -1,6 +1,6 @@ name: wl-pprint-terminfo category: Control, Monads, Text-version: 0.3.0.1+version: 0.4 cabal-version: >= 1.6 license: BSD3 license-file: LICENSE