prettyprinter-compat-ansi-wl-pprint (empty) → 0.1
raw patch · 5 files changed
+334/−0 lines, 5 filesdep +basedep +prettyprinterdep +prettyprinter-ansi-terminalsetup-changed
Dependencies added: base, prettyprinter, prettyprinter-ansi-terminal, text
Files
- LICENSE.md +23/−0
- README.md +13/−0
- Setup.lhs +3/−0
- prettyprinter-compat-ansi-wl-pprint.cabal +35/−0
- src/Text/PrettyPrint/ANSI/Leijen.hs +260/−0
+ LICENSE.md view
@@ -0,0 +1,23 @@+Copyright 2008, Daan Leijen and Max Bolingbroke, 2016 David Luposchainsky. All+rights reserved.++Redistribution and use in source and binary forms, with or without modification,+are permitted provided that the following conditions are met:++ - Redistributions of source code must retain the above copyright notice, this+ list of conditions and the following disclaimer.++ - Redistributions in binary form must reproduce the above copyright notice,+ this list of conditions and the following disclaimer in the documentation+ and/or other materials provided with the distribution.++This software is provided by the copyright holders "as is" and any express or+implied warranties, including, but not limited to, the implied warranties of+merchantability and fitness for a particular purpose are disclaimed. In no event+shall the copyright holders be liable for any direct, indirect, incidental,+special, exemplary, or consequential damages (including, but not limited to,+procurement of substitute goods or services; loss of use, data, or profits; or+business interruption) however caused and on any theory of liability, whether in+contract, strict liability, or tort (including negligence or otherwise) arising+in any way out of the use of this software, even if advised of the possibility+of such damage.
+ README.md view
@@ -0,0 +1,13 @@+wl-pprint-ansi compatibility module+===================================++This module defines a compatibility layer between the old `wl-pprint-ansi`+module, and the new one (version 1+).++This allows easily transitioning dependent packages from the old to the new+package, by simply replacing `wl-pprint-ansi` with `wl-pprint-compat-old-ansi`+in the `.cabal` file.++Note that this module is **only for transitional purposes**, and therefore+deprecated and wholly undocumented. For new development, use the current version+of `wl-pprint`, and the ANSI terminal backend provided in `wl-pprint-ansi`.
+ Setup.lhs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+> import Distribution.Simple+> main = defaultMain
+ prettyprinter-compat-ansi-wl-pprint.cabal view
@@ -0,0 +1,35 @@+name: prettyprinter-compat-ansi-wl-pprint+version: 0.1+cabal-version: >= 1.10+category: User Interfaces, Text+synopsis: Prettyprinter compatibility module for previous users of the ansi-wl-pprint package.+description: See README.md+license: BSD2+license-file: LICENSE.md+extra-source-files: README.md+author: David Luposchainsky+maintainer: David Luposchainsky <dluposchainsky at google>+bug-reports: http://github.com/quchen/prettyprinter/issues+homepage: http://github.com/quchen/prettyprinter+build-type: Simple+tested-with: GHC==7.8.4, GHC==7.10.2, GHC==7.10.3, GHC==8.0.1, GHC==8.0.2++source-repository head+ type: git+ location: git://github.com/quchen/prettyprinter.git++library+ exposed-modules: Text.PrettyPrint.ANSI.Leijen+ ghc-options: -Wall+ hs-source-dirs: src+ default-language: Haskell2010+ other-extensions:+ CPP+ , LambdaCase+ , OverloadedStrings++ build-depends:+ base < 127+ , text+ , prettyprinter >= 0 && < 0.2+ , prettyprinter-ansi-terminal >= 0 && < 0.2
+ src/Text/PrettyPrint/ANSI/Leijen.hs view
@@ -0,0 +1,260 @@+module Text.PrettyPrint.ANSI.Leijen {-# DEPRECATED "Compatibility module for users of ansi-wl-pprint - use Data.Text.Prettyprint.Doc instead" #-} (++ Doc, putDoc, hPutDoc, empty, char, text, (<>), nest, line, linebreak, group,+ softline, softbreak, hardline, flatAlt, renderSmart, align, hang, indent,+ encloseSep, list, tupled, semiBraces, (<+>), (<$>), (</>), (<$$>), (<//>),+ hsep, vsep, fillSep, sep, hcat, vcat, fillCat, cat, punctuate, fill,+ fillBreak, enclose, squotes, dquotes, parens, angles, braces, brackets,+ lparen, rparen, langle, rangle, lbrace, rbrace, lbracket, rbracket, squote,+ dquote, semi, colon, comma, space, dot, backslash, equals, black, red,+ green, yellow, blue, magenta, cyan, white, dullblack, dullred, dullgreen,+ dullyellow, dullblue, dullmagenta, dullcyan, dullwhite, onblack, onred,+ ongreen, onyellow, onblue, onmagenta, oncyan, onwhite, ondullblack,+ ondullred, ondullgreen, ondullyellow, ondullblue, ondullmagenta, ondullcyan,+ ondullwhite, bold, debold, underline, deunderline, plain, string, int,+ integer, float, double, rational, Pretty(..), SimpleDoc, renderPretty,+ renderCompact, displayS, displayIO, bool, column, columns, nesting, width++) where++++import Prelude hiding ((<$>))++import Data.Monoid+import qualified Data.Text.Lazy as TL+import System.IO++import Data.Text.Prettyprint.Doc (Pretty (..))+import qualified Data.Text.Prettyprint.Doc as New+import qualified Data.Text.Prettyprint.Doc.Render.Terminal as NewT++++type Doc = New.Doc NewT.AnsiTerminal+type SimpleDoc = New.SimpleDoc NewT.AnsiTerminal++++putDoc :: Doc -> IO ()+putDoc = NewT.putDoc++hPutDoc :: Handle -> Doc -> IO ()+hPutDoc = NewT.hPutDoc++empty :: Doc+empty = New.emptyDoc++char :: Char -> Doc+char = New.pretty++text :: String -> Doc+text = New.pretty++nest :: Int -> Doc -> Doc+nest = New.nest++line :: Doc+line = New.line++linebreak :: Doc+linebreak = New.flatAlt New.line mempty++group :: Doc -> Doc+group = New.group++softline :: Doc+softline = New.softline++softbreak :: Doc+softbreak = New.group linebreak++hardline :: Doc+hardline = New.hardline++flatAlt :: Doc -> Doc -> Doc+flatAlt = New.flatAlt++renderSmart :: Float -> Int -> Doc -> SimpleDoc+renderSmart ribbonFraction pageWidth+ = New.layoutSmart New.LayoutOptions+ { New.layoutPageWidth = New.AvailablePerLine pageWidth (realToFrac ribbonFraction) }++align :: Doc -> Doc+align = New.align++hang :: Int -> Doc -> Doc+hang = New.hang++indent :: Int -> Doc -> Doc+indent = New.indent++encloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc+encloseSep = New.encloseSep++list :: [Doc] -> Doc+list = New.list++tupled :: [Doc] -> Doc+tupled = New.tupled++semiBraces :: [Doc] -> Doc+semiBraces = New.encloseSep New.lbrace New.rbrace New.semi++(<+>), (<$>), (</>), (<$$>), (<//>) :: Doc -> Doc -> Doc+(<+>) = (New.<+>)+(<$>) = \x y -> x <> New.line <> y+(</>) = \x y -> x <> softline <> y+(<$$>) = \x y -> x <> linebreak <> y+(<//>) = \x y -> x <> softbreak <> y++hsep, vsep, fillSep, sep, hcat, vcat, fillCat, cat :: [Doc] -> Doc+hsep = New.hsep+vsep = New.vsep+fillSep = New.fillSep+sep = New.sep+hcat = New.hcat+vcat = New.vcat+fillCat = New.fillCat+cat = New.cat++punctuate :: Doc -> [Doc] -> [Doc]+punctuate = New.punctuate++fill :: Int -> Doc -> Doc+fill = New.fill++fillBreak :: Int -> Doc -> Doc+fillBreak = New.fillBreak++enclose :: Doc -> Doc -> Doc -> Doc+enclose = New.enclose++squotes, dquotes, parens, angles, braces, brackets :: Doc -> Doc+squotes = New.squotes+dquotes = New.dquotes+parens = New.parens+angles = New.angles+braces = New.braces+brackets = New.brackets++lparen, rparen, langle, rangle, lbrace, rbrace, lbracket, rbracket, squote,+ dquote, semi, colon, comma, space, dot, backslash, equals :: Doc+lparen = New.lparen+rparen = New.rparen+langle = New.langle+rangle = New.rangle+lbrace = New.lbrace+rbrace = New.rbrace+lbracket = New.lbracket+rbracket = New.rbracket+squote = New.squote+dquote = New.dquote+semi = New.semi+colon = New.colon+comma = New.comma+space = New.space+dot = New.dot+backslash = New.backslash+equals = New.equals++black, red, green, yellow, blue, magenta, cyan, white, dullblack, dullred,+ dullgreen, dullyellow, dullblue, dullmagenta, dullcyan, dullwhite, onblack,+ onred, ongreen, onyellow, onblue, onmagenta, oncyan, onwhite, ondullblack,+ ondullred, ondullgreen, ondullyellow, ondullblue, ondullmagenta, ondullcyan,+ ondullwhite, bold, debold, underline, deunderline :: Doc -> Doc+black = NewT.color NewT.Black+red = NewT.color NewT.Red+green = NewT.color NewT.Green+yellow = NewT.color NewT.Yellow+blue = NewT.color NewT.Blue+magenta = NewT.color NewT.Magenta+cyan = NewT.color NewT.Cyan+white = NewT.color NewT.White+dullblack = NewT.colorDull NewT.Black+dullred = NewT.colorDull NewT.Red+dullgreen = NewT.colorDull NewT.Green+dullyellow = NewT.colorDull NewT.Yellow+dullblue = NewT.colorDull NewT.Blue+dullmagenta = NewT.colorDull NewT.Magenta+dullcyan = NewT.colorDull NewT.Cyan+dullwhite = NewT.colorDull NewT.White+onblack = NewT.bgColor NewT.Black+onred = NewT.bgColor NewT.Red+ongreen = NewT.bgColor NewT.Green+onyellow = NewT.bgColor NewT.Yellow+onblue = NewT.bgColor NewT.Blue+onmagenta = NewT.bgColor NewT.Magenta+oncyan = NewT.bgColor NewT.Cyan+onwhite = NewT.bgColor NewT.White+ondullblack = NewT.bgColorDull NewT.Black+ondullred = NewT.bgColorDull NewT.Red+ondullgreen = NewT.bgColorDull NewT.Green+ondullyellow = NewT.bgColorDull NewT.Yellow+ondullblue = NewT.bgColorDull NewT.Blue+ondullmagenta = NewT.bgColorDull NewT.Magenta+ondullcyan = NewT.bgColorDull NewT.Cyan+ondullwhite = NewT.bgColorDull NewT.White+bold = NewT.bold+debold = id+{-# WARNING debold "Debold does not do anything" #-}+underline = NewT.underline+deunderline = id+{-# WARNING deunderline "Debold does not do anything" #-}++plain :: Doc -> Doc+plain = New.unAnnotate++string :: String -> Doc+string = New.pretty++int :: Int -> Doc+int = New.pretty++integer :: Integer -> Doc+integer = New.pretty++float :: Float -> Doc+float = New.pretty++double :: Double -> Doc+double = New.pretty++rational :: Rational -> Doc+rational = New.pretty . show++renderPretty :: Float -> Int -> Doc -> SimpleDoc+renderPretty ribbonFraction pageWidth+ = New.layoutSmart New.LayoutOptions+ { New.layoutPageWidth = New.AvailablePerLine pageWidth (realToFrac ribbonFraction) }+++renderCompact :: Doc -> SimpleDoc+renderCompact = New.layoutCompact++displayS :: SimpleDoc -> ShowS+displayS sdoc =+ let rendered = NewT.renderLazy sdoc+ in (TL.unpack rendered ++)++displayIO :: Handle -> SimpleDoc -> IO ()+displayIO = NewT.renderIO++bool :: Bool -> Doc+bool = New.pretty++column :: (Int -> Doc) -> Doc+column = New.column++columns :: (Maybe Int -> Doc) -> Doc+columns f = New.pageWidth (f . toMaybeInt)+ where+ toMaybeInt :: New.PageWidth -> Maybe Int+ toMaybeInt (New.AvailablePerLine cpl _) = Just cpl+ toMaybeInt New.Unbounded = Nothing++nesting :: (Int -> Doc) -> Doc+nesting = New.nesting++width :: Doc -> (Int -> Doc) -> Doc+width = New.width