-- |
-- Module: IPPrint.Colored
-- Copyright: Copyright © 2014 Lars Kuhtz <lakuhtz@gmail.com>
-- License: MIT
-- Maintainer: Lars Kuhtz <lakuhtz@gmail.com>
-- Stability: experimental
--
-- This module combines the ipprint package and
-- the hscolour package to provide colored pretty-printing
-- in ghci.
--
-- /Usage/
--
-- Add the following lines to your @ghci.conf@ file:
--
-- > -- Pretty printing of it
-- > import IPPrint.Colored
-- > :set -interactive-print=IPPrint.Colored.cpprint
-- > :def cp (\_ -> return ":set -interactive-print=IPPrint.Colored.cpprint")
-- > :def ncp (\_ -> return ":set -interactive-print=print")
--
-- Now you can enable colored pretty-printing in ghci with the commmand
--
-- > :cp
--
-- The following command turns colored pretty-printing off again
--
-- > :ncp
--
module IPPrint.Colored
( cpprint
) where

import IPPrint
import Language.Haskell.HsColour
import Language.Haskell.HsColour.Colourise
import Language.Haskell.HsColour.Output

cpprint :: Show a => a -> IO ()
cpprint = putStrLn . hscolour (TTYg XTerm256Compatible) defaultColourPrefs False False "" False . pshow