-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | 2D text pretty-printing library -- -- A pretty-printing library for laying out text in two dimensions, using -- a simple box model. @package boxes @version 0.1.5 -- | A pretty-printing library for laying out text in two dimensions, using -- a simple box model. module Text.PrettyPrint.Boxes -- | The basic data type. A box has a specified size and some sort of -- contents. data Box -- | The null box, which has no content and no size. It is quite useless. nullBox :: Box -- | emptyBox r c is an empty box with r rows and -- c columns. Useful for effecting more fine-grained positioning -- of other boxes, by inserting empty boxes of the desired size in -- between them. emptyBox :: Int -> Int -> Box -- | A 1x1 box containing a single character. char :: Char -> Box -- | A (1 x len) box containing a string of length len. text :: String -> Box -- | para algn w t is a box of width w, containing text -- t, aligned according to algn, flowed to fit within -- the given width. para :: Alignment -> Int -> String -> Box -- | columns w h t is a list of boxes, each of width w -- and height at most h, containing text t flowed into -- as many columns as necessary. columns :: Alignment -> Int -> Int -> String -> [Box] -- | Paste two boxes together horizontally, using a default (top) -- alignment. (<>) :: Box -> Box -> Box -- | Paste two boxes together horizontally with a single intervening column -- of space, using a default (top) alignment. (<+>) :: Box -> Box -> Box -- | Glue a list of boxes together horizontally, with the given alignment. hcat :: Foldable f => Alignment -> f Box -> Box -- | hsep sep a bs lays out bs horizontally with -- alignment a, with sep amount of space in between -- each. hsep :: Foldable f => Int -> Alignment -> f Box -> Box -- | Paste two boxes together vertically, using a default (left) alignment. (//) :: Box -> Box -> Box -- | Paste two boxes together vertically with a single intervening row of -- space, using a default (left) alignment. (/+/) :: Box -> Box -> Box -- | Glue a list of boxes together vertically, with the given alignment. vcat :: Foldable f => Alignment -> f Box -> Box -- | vsep sep a bs lays out bs vertically with alignment -- a, with sep amount of space in between each. vsep :: Foldable f => Int -> Alignment -> f Box -> Box -- | punctuateH a p bs horizontally lays out the boxes bs -- with a copy of p interspersed between each. punctuateH :: Foldable f => Alignment -> Box -> f Box -> Box -- | A vertical version of punctuateH. punctuateV :: Foldable f => Alignment -> Box -> f Box -> Box -- | Data type for specifying the alignment of boxes. data Alignment -- | Align boxes to the left. left :: Alignment -- | Align boxes to the right. right :: Alignment -- | Align boxes along their tops. top :: Alignment -- | Align boxes along their bottoms. bottom :: Alignment -- | Align boxes centered, but biased to the left/top in case of unequal -- parities. center1 :: Alignment -- | Align boxes centered, but biased to the right/bottom in case of -- unequal parities. center2 :: Alignment -- | Move a box left by putting it in a larger box with extra columns, -- aligned left. Note that the name of this function is something of a -- white lie, as this will only result in the box being moved left by the -- specified amount if it is already in a larger right-aligned context. moveLeft :: Int -> Box -> Box -- | Move a box right by putting it in a larger box with extra columns, -- aligned right. See the disclaimer for moveLeft. moveRight :: Int -> Box -> Box -- | Move a box "up" by putting it in a larger box with extra rows, aligned -- to the top. See the disclaimer for moveLeft. moveUp :: Int -> Box -> Box -- | Move a box down by putting it in a larger box with extra rows, aligned -- to the bottom. See the disclaimer for moveLeft. moveDown :: Int -> Box -> Box -- | alignHoriz algn n bx creates a box of width n, with -- the contents and height of bx, horizontally aligned according -- to algn. alignHoriz :: Alignment -> Int -> Box -> Box -- | alignVert algn n bx creates a box of height n, with -- the contents and width of bx, vertically aligned according to -- algn. alignVert :: Alignment -> Int -> Box -> Box -- | align ah av r c bx creates an r x c box -- with the contents of bx, aligned horizontally according to -- ah and vertically according to av. align :: Alignment -> Alignment -> Int -> Int -> Box -> Box rows :: Box -> Int cols :: Box -> Int -- | Render a Box as a String, suitable for writing to the screen or -- a file. render :: Box -> String -- | A convenience function for rendering a box to stdout. printBox :: Box -> IO () instance GHC.Show.Show Text.PrettyPrint.Boxes.Box instance GHC.Show.Show Text.PrettyPrint.Boxes.Content instance GHC.Show.Show Text.PrettyPrint.Boxes.Alignment instance GHC.Read.Read Text.PrettyPrint.Boxes.Alignment instance GHC.Classes.Eq Text.PrettyPrint.Boxes.Alignment instance Data.String.IsString Text.PrettyPrint.Boxes.Box