Haskell ANSI Terminal Package For Windows, OS X and Linux
ANSI terminal support for Haskell, which allows:
It is compatible with Windows (via an emulation layer) and those Unixes with ANSI terminals.
If you like this, you may be interested in ansi-wl-pprint, which provides a pretty-printer that can construct strings containing ANSI colorisation.
Not all of the ANSI escape codes are provided by this module, but most (if not all) of the popular and well supported ones are. For a full list, have a look at the current version of the API. Each supported escape code or family of codes has a corresponding function that comes in three variants:
IO
variant that doesn't take a Handle
and just
applies the ANSI escape code to the terminal attached to stdoutIO
variant similar to above, but which takes a Handle
to
which the ANSI escape should be appliedString
variant that returns a literal string that should be
included to get the effect of the code. This is the only one of the
three API variants that only works on Unix-like operating systems:
on Windows these strings will always be blank!A full example is available, but for a taste of how the library works try the following code:
import System.Console.ANSI main = do setCursorPosition 5 0 setTitle "ANSI Terminal Short Example" setSGR [ SetConsoleIntensity BoldIntensity , SetColor Foreground Vivid Red ] putStr "Hello" setSGR [ SetConsoleIntensity NormalIntensity , SetColor Foreground Vivid White , SetColor Background Dull Blue ] putStrLn "World!"
Haddock documentation is available at Hackage.
The library is originally written by Max Bolingbroke
Roman Cheplyaka is the primary maintainer.
Oliver Charles is the backup maintainer. Please get in touch with him if the primary maintainer cannot be reached.