hydrogen-0.2.0.0: src/H/Pretty.hs
module H.Pretty
( module Text.PrettyPrint
, module H.Pretty
) where
import qualified Prelude as P
import qualified Text.PrettyPrint as PP
import Text.PrettyPrint hiding
( text, ptext, sizedText, zeroWidthText
, render, renderStyle, fullRender, TextDetails(..)
)
import H.Prelude
text :: Text -> Doc
text = PP.text . unpack
sizedText :: Int -> Text -> Doc
sizedText n = PP.sizedText n . unpack
zeroWidthText :: Text -> Doc
zeroWidthText = PP.zeroWidthText . unpack
render :: Doc -> Text
render = pack . PP.render
renderStyle :: Style -> Doc -> Text
renderStyle s = pack . PP.renderStyle s
fullRender :: Mode -> Int -> P.Float -> (TextDetails -> a -> a) -> a -> Doc -> a
fullRender m ll rl f end doc = PP.fullRender m ll rl f' end doc
where
f' (PP.Chr c) = f (Chr c)
f' (PP.Str xs) = f (Str . pack $ xs)
f' (PP.PStr xs) = f (Str . pack $ xs)
data TextDetails = Chr !Char | Str Text