module Text.Prints.Printers.Color
( colorPrints
, strPrints
) where
import qualified Language.Haskell.HsColour as HSC
import qualified Language.Haskell.HsColour.Colourise as HSC
import qualified Language.Haskell.HsColour.Output as HSC
import Text.Show.Pretty (ppShow)
colorPrints :: Show a => a -> IO ()
colorPrints = putStrLn . format . ppShow
strPrints :: Show a => a -> String
strPrints = ppShow
prefs :: HSC.ColourPrefs
prefs = HSC.defaultColourPrefs
{ HSC.keyword = [HSC.Foreground HSC.Yellow]
, HSC.comment = [HSC.Foreground HSC.Yellow]
, HSC.varid = [HSC.Foreground HSC.Yellow]
, HSC.varop = [HSC.Foreground HSC.Yellow]
, HSC.selection = [HSC.Foreground HSC.Yellow]
, HSC.variantselection = [HSC.Foreground HSC.Yellow]
, HSC.definition = [HSC.Foreground HSC.Yellow]
, HSC.conid = [HSC.Foreground (HSC.Rgb 95 95 255)]
, HSC.conop = [HSC.Foreground HSC.Yellow]
, HSC.string = [HSC.Foreground HSC.Green]
, HSC.char = [HSC.Foreground HSC.Green]
, HSC.number = [HSC.Foreground (HSC.Rgb 175 0 215)]
, HSC.layout = [HSC.Foreground HSC.Red]
, HSC.keyglyph = [HSC.Foreground HSC.Red]
}
output :: HSC.Output
output = HSC.TTYg HSC.XTerm256Compatible
format :: String -> String
format = HSC.hscolour output prefs False False "" False