{-# LANGUAGE OverloadedStrings #-} 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