packages feed

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 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