| darcs-2.4.3: a distributed, interactive, smart revision control system | Source code | Contents | Index
Printer
Synopsis
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
= Blue
| Red
| Green
| Cyan
| Magenta
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
insert_before_lastline :: 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
wrap_text :: 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
data Printable | Source
A `Printable` is either a String, a packed string, or a chunk of text with both representations.
Constructors
S !String |
PS !ByteString |
Both !String !ByteString |
newtype Doc | Source
a `Doc` is a bit of enriched text. `Doc`s get concatanated using `<>`, which is right-associative.
Constructors
Doc |
unDoc :: St -> Document |
Instances
Show Doc
type Printers = Handle -> Printers' | Source
data Printers' | Source
A set of printers to print different types of text to a handle.
Constructors
Printers |
colorP :: !(Color -> Printer) |
invisibleP :: !Printer |
hiddenP :: !Printer |
userchunkP :: !Printer |
defP :: !Printer |
lineColorT :: !(Color -> Doc -> Doc) |
lineColorS :: !([Printable] -> [Printable]) |
type Printer = Printable -> St -> Document | Source
data Color | Source
Constructors
Blue |
Red |
Green |
Cyan |
Magenta |
hPutDoc :: Handle -> Doc -> IO () | Source
hputDoc puts a doc on the given handle using `simplePrinters`
hPutDocLn :: Handle -> Doc -> IO () | Source
putDoc :: Doc -> IO () | Source
`putDoc` puts a doc on stdout using the simple printer `simplePrinters`.
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 -> String | Source
renders a `Doc` into a `String` with control codes for the special features of the doc.
renderStringWith :: Printers' -> Doc -> String | Source
renders a `Doc` into a `String` using a given set of printers.
renderPS :: Doc -> ByteString | Source
renders a `Doc` into `ByteString` with control codes for the special features of the Doc. See also readerString.
renderPSWith :: Printers' -> Doc -> ByteString | Source
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.
lineColor :: Color -> Doc -> Doc | Source
prefix :: String -> Doc -> Doc | Source
insert_before_lastline :: Doc -> Doc -> Doc | Source
colorText :: Color -> String -> Doc | Source
`colorText` creates a `Doc` containing colored text from a `String`
invisibleText :: String -> Doc | Source
`invisibleText` creates a `Doc` containing invisible text from a `String`
hiddenText :: String -> Doc | Source
`hiddenText` creates a `Doc` containing hidden text from a `String`
hiddenPrefix :: String -> Doc -> Doc | Source
userchunk :: String -> Doc | Source
`userchunk` creates a `Doc` containing a user chunk from a `String`
text :: String -> Doc | Source
`text` creates a `Doc` from a `String`, using `printable`.
printable :: Printable -> Doc | Source
wrap_text :: Int -> String -> Doc | Source
``wrap_text` n s` is a `Doc` representing `s` line-wrapped at n characters
blueText :: String -> Doc | Source
redText :: String -> Doc | Source
`blueText` creates a `Doc` containing blue text from a `String`
greenText :: String -> Doc | Source
magentaText :: String -> Doc | Source
cyanText :: String -> Doc | Source
unsafeText :: String -> Doc | Source
`unsafeText` creates a `Doc` from a `String`, using `simplePrinter` directly
unsafeBoth :: String -> ByteString -> Doc | Source
`unsafeBoth` builds a Doc from a `String` and a `ByteString` representing the same text, but does not check that they do.
unsafeBothText :: String -> Doc | Source
`unsafeBothText` builds a `Doc` from a `String`. The string is stored in the Doc as both a String and a `ByteString`.
unsafeChar :: Char -> Doc | Source
`unsafeChar` creates a Doc containing just one character.
invisiblePS :: ByteString -> Doc | Source
`invisiblePS` creates a `Doc` with invisible text from a `ByteString`
packedString :: ByteString -> Doc | Source
`packedString` builds a `Doc` from a `ByteString` using `printable`
unsafePackedString :: ByteString -> Doc | Source
`unsafePackedString` builds a `Doc` from a `ByteString` using `simplePrinter`
userchunkPS :: ByteString -> Doc | Source
`userchunkPS` creates a `Doc` representing a user chunk from a `ByteString`.
simplePrinters :: Printers | Source
`simplePrinters` is a `Printers` which uses the set 'simplePriners\'' on any handle.
invisiblePrinter :: Printer | Source
`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 :: Printer | Source
`simplePrinter` is the simplest `Printer`: it just concatenates together the pieces of the `Doc`
doc :: ([Printable] -> [Printable]) -> Doc | Source
empty :: Doc | Source
The empty `Doc`.
(<>) :: Doc -> Doc -> Doc | Source
'()' is the concatenation operator for `Doc`s
(<?>) :: Doc -> Doc -> Doc | Source
`a `<?>` b` is `a` if it is not empty, else `b`.
(<+>) :: Doc -> Doc -> Doc | Source
`a `<+>` b` is `a` followed by a space, then `b`.
($$) :: Doc -> Doc -> Doc | Source
`a `$$` b` is `a` above `b`.
vcat :: [Doc] -> Doc | Source
`vcat` piles vertically a list of `Doc`s.
vsep :: [Doc] -> Doc | Source
`vsep` piles vertically a list of `Doc`s leaving a blank line between each.
hcat :: [Doc] -> Doc | Source
`hcat` concatenates (horizontally) a list of `Doc`s
minus :: Doc | Source
newline :: Doc | Source
Minimal `Doc`s representing the common characters `space`, `newline` `minus`, `plus`, and `backslash`.
plus :: Doc | Source
space :: Doc | Source
backslash :: Doc | Source
lparen :: Doc | Source
`lparen` is the `Doc` that represents `"("`
rparen :: Doc | Source
`rparen` is the `Doc` that represents `")"`
parens :: Doc -> Doc | Source
``parens` doc` returns a `Doc` with the content of `doc` put within a pair of parenthesis.
errorDoc :: Doc -> a | Source
Produced by Haddock version 2.4.2