- data Printable
- = S !String
- | PS !ByteString
- | Both !String !ByteString
- newtype Doc = Doc {
- unDoc :: St -> Document
- type Printers = Handle -> Printers'
- data Printers' = Printers {
- colorP :: !(Color -> Printer)
- invisibleP :: !Printer
- hiddenP :: !Printer
- userchunkP :: !Printer
- defP :: !Printer
- lineColorT :: !(Color -> Doc -> Doc)
- lineColorS :: !([Printable] -> [Printable])
- type Printer = Printable -> St -> Document
- data Color
- hPutDoc :: Handle -> Doc -> IO ()
- hPutDocLn :: Handle -> Doc -> IO ()
- putDoc :: Doc -> IO ()
- putDocLn :: Doc -> IO ()
- hPutDocWith :: Printers -> Handle -> Doc -> IO ()
- hPutDocLnWith :: Printers -> Handle -> Doc -> IO ()
- putDocWith :: Printers -> Doc -> IO ()
- putDocLnWith :: Printers -> Doc -> IO ()
- renderString :: Doc -> String
- renderStringWith :: Printers' -> Doc -> String
- renderPS :: Doc -> ByteString
- renderPSWith :: Printers' -> Doc -> ByteString
- renderPSs :: Doc -> [ByteString]
- renderPSsWith :: Printers' -> Doc -> [ByteString]
- lineColor :: Color -> Doc -> Doc
- prefix :: String -> Doc -> Doc
- insertBeforeLastline :: Doc -> Doc -> Doc
- colorText :: Color -> String -> Doc
- invisibleText :: String -> Doc
- hiddenText :: String -> Doc
- hiddenPrefix :: String -> Doc -> Doc
- userchunk :: String -> Doc
- text :: String -> Doc
- printable :: Printable -> Doc
- wrapText :: Int -> String -> Doc
- blueText :: String -> Doc
- redText :: String -> Doc
- greenText :: String -> Doc
- magentaText :: String -> Doc
- cyanText :: String -> Doc
- unsafeText :: String -> Doc
- unsafeBoth :: String -> ByteString -> Doc
- unsafeBothText :: String -> Doc
- unsafeChar :: Char -> Doc
- invisiblePS :: ByteString -> Doc
- packedString :: ByteString -> Doc
- unsafePackedString :: ByteString -> Doc
- userchunkPS :: ByteString -> Doc
- simplePrinters :: Printers
- invisiblePrinter :: Printer
- simplePrinter :: Printer
- doc :: ([Printable] -> [Printable]) -> Doc
- empty :: Doc
- (<>) :: Doc -> Doc -> Doc
- (<?>) :: Doc -> Doc -> Doc
- (<+>) :: Doc -> Doc -> Doc
- ($$) :: Doc -> Doc -> Doc
- vcat :: [Doc] -> Doc
- vsep :: [Doc] -> Doc
- hcat :: [Doc] -> Doc
- minus :: Doc
- newline :: Doc
- plus :: Doc
- space :: Doc
- backslash :: Doc
- lparen :: Doc
- rparen :: Doc
- parens :: Doc -> Doc
- errorDoc :: Doc -> a
Documentation
A Printable
is either a String, a packed string, or a chunk of
text with both representations.
S !String | |
PS !ByteString | |
Both !String !ByteString |
A set of printers to print different types of text to a handle.
Printers | |
|
putDocLn :: Doc -> IO ()Source
putDocLn
puts a doc, followed by a newline on stdout using
simplePrinters
hPutDocWith :: Printers -> Handle -> Doc -> IO ()Source
hputDocWith
puts a doc on the given handle using the given printer.
hPutDocLnWith :: Printers -> Handle -> Doc -> IO ()Source
hputDocLnWith
puts a doc, followed by a newline on the given
handle using the given printer.
putDocWith :: Printers -> Doc -> IO ()Source
putDocWith
puts a doc on stdout using the given printer.
putDocLnWith :: Printers -> Doc -> IO ()Source
putDocLnWith
puts a doc, followed by a newline on stdout using
the given printer.
renderString :: Doc -> StringSource
renderStringWith :: Printers' -> Doc -> StringSource
renderPS :: Doc -> ByteStringSource
renders a Doc
into ByteString
with control codes for the
special features of the Doc. See also readerString
.
renderPSWith :: Printers' -> Doc -> ByteStringSource
renders a doc into a ByteString
using a given set of printers.
renderPSs :: Doc -> [ByteString]Source
renders a Doc
into a list of PackedStrings
, one for each line.
renderPSsWith :: Printers' -> Doc -> [ByteString]Source
renders a Doc
into a list of PackedStrings
, one for each
chunk of text that was added to the doc, using the given set of
printers.
insertBeforeLastline :: Doc -> Doc -> DocSource
invisibleText :: String -> DocSource
invisibleText
creates a Doc
containing invisible text from a String
hiddenText :: String -> DocSource
hiddenText
creates a Doc
containing hidden text from a String
hiddenPrefix :: String -> Doc -> DocSource
magentaText :: String -> DocSource
unsafeText :: String -> DocSource
unsafeText
creates a Doc
from a String
, using simplePrinter
directly
unsafeBoth :: String -> ByteString -> DocSource
unsafeBoth
builds a Doc from a String
and a ByteString
representing
the same text, but does not check that they do.
unsafeBothText :: String -> DocSource
unsafeBothText
builds a Doc
from a String
. The string is stored in the
Doc as both a String and a ByteString
.
unsafeChar :: Char -> DocSource
unsafeChar
creates a Doc containing just one character.
invisiblePS :: ByteString -> DocSource
invisiblePS
creates a Doc
with invisible text from a ByteString
packedString :: ByteString -> DocSource
packedString
builds a Doc
from a ByteString
using printable
unsafePackedString :: ByteString -> DocSource
unsafePackedString
builds a Doc
from a ByteString
using simplePrinter
userchunkPS :: ByteString -> DocSource
userchunkPS
creates a Doc
representing a user chunk from a ByteString
.
simplePrinters :: PrintersSource
simplePrinters
is a Printers
which uses the set 'simplePriners\'' on any
handle.
invisiblePrinter :: PrinterSource
invisiblePrinter
is the Printer
for hidden text. It just replaces
the document with empty
. It's useful to have a printer that doesn't
actually do anything because this allows you to have tunable policies,
for example, only printing some text if it's to the terminal, but not
if it's to a file or vice-versa.
simplePrinter :: PrinterSource
simplePrinter
is the simplest Printer
: it just concatenates together
the pieces of the Doc