{-# OPTIONS_HADDOCK ignore-exports #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE CPP #-}
module XPrelude.PP (
module Exports
, PrettyError (..)
, ppline
, pplines
, pptext
, ppstring
)
where
import Protolude
import Data.Scientific
import Data.Semigroup as Sem
import Data.String
import qualified Data.Text as Text
import Text.PrettyPrint.ANSI.Leijen as Exports hiding (bool, cat,
char, double, empty,
float, group, int,
integer, rational,
string, text, (<$>))
import Text.PrettyPrint.ANSI.Leijen (string, text)
newtype PrettyError = PrettyError
{ getError :: Doc
} deriving Show
instance Sem.Semigroup PrettyError where
a <> b = PrettyError $ align (vsep [getError a, getError b])
instance Monoid PrettyError where
mempty = PrettyError mempty
#if !(MIN_VERSION_base(4,11,0))
mappend = (Sem.<>)
#endif
instance IsString PrettyError where
fromString = PrettyError . string
instance Pretty PrettyError where
pretty = getError
instance Pretty Scientific where
pretty = text . show
pplines :: Text -> Doc
pplines = string . Text.unpack
ppline :: Text -> Doc
ppline = text . Text.unpack
ppstring :: String -> Doc
ppstring = string
pptext :: String -> Doc
pptext = text