-- | Highlights Haskell code with ANSI terminal codes.
module Language.Haskell.HsColour.TTY (hscolour,hscolourG) where

import Language.Haskell.HsColour.ANSI as ANSI
import Language.Haskell.HsColour.Classify
import Language.Haskell.HsColour.Colourise
import Language.Haskell.HsColour.Output(TerminalType(Ansi16Colour))

-- | = 'hscolourG' 'Ansi16Colour'
hscolour :: ColourPrefs -- ^ Colour preferences.
         -> String      -- ^ Haskell source code.
         -> String      -- ^ Coloured Haskell source code.
hscolour :: ColourPrefs -> String -> Stringhscolour = hscolourG :: TerminalType -> ColourPrefs -> String -> [Char]hscolourG Ansi16Colour :: TerminalTypeAnsi16Colour

-- | Highlights Haskell code with ANSI terminal codes.
hscolourG :: TerminalType -> ColourPrefs -> String -> [Char]hscolourG terminalType :: TerminalTypeterminalType pref :: ColourPrefspref = concatMap :: (a -> [b]) -> [a] -> [b]concatMap (renderTokenG ::
  TerminalType -> ColourPrefs -> (TokenType, String) -> StringrenderTokenG terminalType :: TerminalTypeterminalType pref :: ColourPrefspref) (.) :: (b -> c) -> (a -> b) -> a -> c. tokenise :: String -> [(TokenType, String)]tokenise


renderToken :: ColourPrefs -> (TokenType,String) -> String
renderToken :: ColourPrefs -> (TokenType, String) -> StringrenderToken = renderTokenG ::
  TerminalType -> ColourPrefs -> (TokenType, String) -> StringrenderTokenG Ansi16Colour :: TerminalTypeAnsi16Colour

renderTokenG ::
  TerminalType -> ColourPrefs -> (TokenType, String) -> StringrenderTokenG terminalType :: TerminalTypeterminalType pref :: ColourPrefspref (t :: TokenTypet,s :: Strings) = highlightG :: TerminalType -> [Highlight] -> String -> StringANSI.highlightG terminalType :: TerminalTypeterminalType (colourise :: ColourPrefs -> TokenType -> [Highlight]colourise pref :: ColourPrefspref t :: TokenTypet) s :: Strings