module Generate.Pretty ( module Generate.Pretty ) where import Protolude import Numeric (showHex) import Text.PrettyPrint.Leijen.Text ------------------------------------------------------------------------------- -- Pretty ------------------------------------------------------------------------------- prettyBreak :: Doc prettyBreak = linebreak prettyDocumentation :: Doc -> Doc prettyDocumentation = enclose "-- | " dot prettyInline :: Doc -> Doc prettyInline = braces . enclose "-# INLINABLE " " #-" prettyInteger :: Integer -> Doc prettyInteger = (<>) "0x" . pretty . flip showHex "" prettyLine :: Doc prettyLine = pretty (replicate 79 '-') prettySection :: Doc -> Doc prettySection = enclose (prettyLine <$$> "-- ") (prettyBreak <> prettyLine <> prettyBreak) prettyText :: Text -> Doc prettyText = dquotes . pretty