packages feed

prettyprinter-1.3.0: prettyprinter.cabal

name:                prettyprinter
version:             1.3.0
cabal-version:       >= 1.10
category:            User Interfaces, Text
synopsis:            A modern, easy to use, well-documented, extensible pretty-printer.
description:         A modern, easy to use, well-documented, extensible pretty-printer. For more see README.md
license:             BSD2
license-file:        LICENSE.md
extra-source-files:  README.md
                   , CHANGELOG.md
                   , misc/version-compatibility-macros.h
author:              Phil Wadler, Daan Leijen, Max Bolingbroke, Edward Kmett, 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
                   , GHC == 8.2.2



source-repository head
    type: git
    location: git://github.com/quchen/prettyprinter.git



library
    exposed-modules:
          Data.Text.Prettyprint.Doc
        , Data.Text.Prettyprint.Doc.Internal
        , Data.Text.Prettyprint.Doc.Internal.Type
        , Data.Text.Prettyprint.Doc.Render.String
        , Data.Text.Prettyprint.Doc.Render.Text
        , Data.Text.Prettyprint.Doc.Render.Tutorials.StackMachineTutorial
        , Data.Text.Prettyprint.Doc.Render.Tutorials.TreeRenderingTutorial
        , Data.Text.Prettyprint.Doc.Render.Util.Panic
        , Data.Text.Prettyprint.Doc.Render.Util.SimpleDocTree
        , Data.Text.Prettyprint.Doc.Render.Util.StackMachine
        , Data.Text.Prettyprint.Doc.Util

        , Data.Text.Prettyprint.Doc.Symbols.Unicode
        , Data.Text.Prettyprint.Doc.Symbols.Ascii

        -- Deprecated
        , Data.Text.Prettyprint.Doc.Render.ShowS

    ghc-options: -Wall
    hs-source-dirs: src
    include-dirs: misc
    default-language: Haskell2010
    other-extensions:
          BangPatterns
        , CPP
        , OverloadedStrings
        , DefaultSignatures
        , ScopedTypeVariables

    build-depends:
          base >= 4.5 && < 5
        , text >= 1.2

    if !impl(ghc >= 7.6)
        build-depends: ghc-prim

    if impl(ghc >= 8.0)
        ghc-options: -Wcompat
    if !impl(ghc >= 8.0)
        build-depends: semigroups >= 0.1
        build-depends: fail >= 4.9.0.0
    if !impl(ghc >= 7.10)
        build-depends: void



Flag buildReadme
  Description: Build the readme generator
  Default:     False


executable generate_readme
    hs-source-dirs: app
    main-is: GenerateReadme.hs
    build-depends:
          base >= 4.7 && < 5
        , prettyprinter

        , text
        , template-haskell >= 2.9
    default-language: Haskell2010
    other-modules: MultilineTh
    other-extensions: OverloadedStrings
                    , TemplateHaskell
                    , QuasiQuotes
    if flag(buildReadme)
        buildable: True
    else
        buildable: False



test-suite doctest
    type: exitcode-stdio-1.0
    hs-source-dirs: test/Doctest
    main-is: Main.hs
    build-depends:
          base       >= 4.7 && < 5
        , doctest    >= 0.9
    ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
    default-language: Haskell2010
    if impl (ghc < 7.10)
        buildable: False
        -- Doctest does not support searching through directories in old versions

test-suite testsuite
    type: exitcode-stdio-1.0
    hs-source-dirs: test/Testsuite
    main-is: Main.hs
    other-modules: StripTrailingSpace
    build-depends:
          base
        , prettyprinter

        , pgp-wordlist     >= 0.1
        , bytestring       >= 0.10
        , tasty            >= 0.10
        , tasty-hunit      >= 0.9
        , tasty-quickcheck >= 0.8
        , text
    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
    default-language: Haskell2010

    if !impl(ghc >= 8.0)
        build-depends: semigroups >= 0.6



benchmark fusion
    type: exitcode-stdio-1.0
    hs-source-dirs: bench
    main-is: Fusion.hs
    build-depends:
          base >= 4.5 && < 5
        , prettyprinter

        , criterion      >= 1.1
        , mtl            >= 2.1
        , random         >= 1.0
        , text
        , transformers   >= 0.3
        , ansi-wl-pprint >= 0.6
    ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
    default-language: Haskell2010
    other-extensions: OverloadedStrings

benchmark faster-unsafe-text
    build-depends:
          base >= 4.5 && < 5
        , prettyprinter

        , criterion >= 1.1
        , text

    hs-source-dirs:      bench
    main-is:             FasterUnsafeText.hs
    ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
    default-language:    Haskell2010
    type:                exitcode-stdio-1.0


benchmark large-output
    build-depends:
          base >= 4.5 && < 5
        , base-compat >=0.9.3 && <0.11
        , prettyprinter
        , ansi-wl-pprint

        , criterion  >= 1.1
        , QuickCheck >= 2.7
        , containers
        , text
        , deepseq

    hs-source-dirs:      bench
    main-is:             LargeOutput.hs
    ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
    default-language:    Haskell2010
    type:                exitcode-stdio-1.0

    if !impl(ghc >= 7.6)
        build-depends: ghc-prim

    if !impl(ghc >= 8.0)
        build-depends: semigroups