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