Cabal-2.5.0.0: A framework for packaging Haskell software
Safe HaskellNone
LanguageHaskell2010

Distribution.Pretty

Synopsis

Documentation

class Pretty a where Source #

Methods

pretty :: a -> Doc Source #

Instances

Instances details
Pretty Bool # 
Instance details

Defined in Distribution.Pretty

Methods

pretty :: Bool -> Doc Source #

Pretty Int # 
Instance details

Defined in Distribution.Pretty

Methods

pretty :: Int -> Doc Source #

Pretty Version # 
Instance details

Defined in Distribution.Types.Version

Methods

pretty :: Version -> Doc Source #

Pretty VersionRange # 
Instance details

Defined in Distribution.Types.VersionRange

Pretty RepoType # 
Instance details

Defined in Distribution.Types.SourceRepo

Methods

pretty :: RepoType -> Doc Source #

Pretty RepoKind # 
Instance details

Defined in Distribution.Types.SourceRepo

Methods

pretty :: RepoKind -> Doc Source #

Pretty PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Pretty PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Pretty UnqualComponentName # 
Instance details

Defined in Distribution.Types.UnqualComponentName

Pretty PackageVersionConstraint # 
Instance details

Defined in Distribution.Types.PackageVersionConstraint

Pretty LibraryVisibility # 
Instance details

Defined in Distribution.Types.LibraryVisibility

Pretty MungedPackageName #

Computes the package name for a library. If this is the public library, it will just be the original package name; otherwise, it will be a munged package name recording the original package name as well as the name of the internal library.

A lot of tooling in the Haskell ecosystem assumes that if something is installed to the package database with the package name foo, then it actually is an entry for the (only public) library in package foo. With internal packages, this is not necessarily true: a public library as well as arbitrarily many internal libraries may come from the same package. To prevent tools from getting confused in this case, the package name of these internal libraries is munged so that they do not conflict the public library proper. A particular case where this matters is ghc-pkg: if we don't munge the package name, the inplace registration will OVERRIDE a different internal library.

We munge into a reserved namespace, "z-", and encode both the component name and the package name of an internal library using the following format:

compat-pkg-name ::= "z-" package-name "-z-" library-name

where package-name and library-name have "-" ( "z" + ) "-" segments encoded by adding an extra "z".

When we have the public library, the compat-pkg-name is just the package-name, no surprises there!

>>> prettyShow $ MungedPackageName "servant" LMainLibName
"servant"
>>> prettyShow $ MungedPackageName "servant" (LSubLibName "lackey")
"z-servant-z-lackey"
Instance details

Defined in Distribution.Types.MungedPackageName

Pretty ForeignLibType # 
Instance details

Defined in Distribution.Types.ForeignLibType

Pretty ForeignLibOption # 
Instance details

Defined in Distribution.Types.ForeignLibOption

Pretty ExecutableScope # 
Instance details

Defined in Distribution.Types.ExecutableScope

Pretty ComponentName # 
Instance details

Defined in Distribution.Types.ComponentName

Pretty ComponentId # 
Instance details

Defined in Distribution.Types.ComponentId

Pretty BuildType # 
Instance details

Defined in Distribution.Types.BuildType

Methods

pretty :: BuildType -> Doc Source #

Pretty AbiHash # 
Instance details

Defined in Distribution.Types.AbiHash

Methods

pretty :: AbiHash -> Doc Source #

Pretty Platform # 
Instance details

Defined in Distribution.System

Methods

pretty :: Platform -> Doc Source #

Pretty Arch # 
Instance details

Defined in Distribution.System

Methods

pretty :: Arch -> Doc Source #

Pretty OS # 
Instance details

Defined in Distribution.System

Methods

pretty :: OS -> Doc Source #

Pretty LicenseRef # 
Instance details

Defined in Distribution.SPDX.LicenseReference

Pretty LicenseId # 
Instance details

Defined in Distribution.SPDX.LicenseId

Methods

pretty :: LicenseId -> Doc Source #

Pretty LicenseExceptionId # 
Instance details

Defined in Distribution.SPDX.LicenseExceptionId

Pretty SimpleLicenseExpression # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Pretty LicenseExpression # 
Instance details

Defined in Distribution.SPDX.LicenseExpression

Pretty License # 
Instance details

Defined in Distribution.SPDX.License

Methods

pretty :: License -> Doc Source #

Pretty ModuleName # 
Instance details

Defined in Distribution.ModuleName

Pretty ModuleRenaming # 
Instance details

Defined in Distribution.Types.ModuleRenaming

Pretty IncludeRenaming # 
Instance details

Defined in Distribution.Types.IncludeRenaming

Pretty Mixin # 
Instance details

Defined in Distribution.Types.Mixin

Methods

pretty :: Mixin -> Doc Source #

Pretty ModuleReexport # 
Instance details

Defined in Distribution.Types.ModuleReexport

Pretty TestType # 
Instance details

Defined in Distribution.Types.TestType

Methods

pretty :: TestType -> Doc Source #

Pretty PkgconfigDependency # 
Instance details

Defined in Distribution.Types.PkgconfigDependency

Pretty PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Pretty DefUnitId # 
Instance details

Defined in Distribution.Types.UnitId

Methods

pretty :: DefUnitId -> Doc Source #

Pretty UnitId #

The textual format for UnitId coincides with the format GHC accepts for -package-id.

Instance details

Defined in Distribution.Types.UnitId

Methods

pretty :: UnitId -> Doc Source #

Pretty Module # 
Instance details

Defined in Distribution.Types.Module

Methods

pretty :: Module -> Doc Source #

Pretty OpenModule # 
Instance details

Defined in Distribution.Backpack

Pretty OpenUnitId # 
Instance details

Defined in Distribution.Backpack

Pretty ExposedModule # 
Instance details

Defined in Distribution.Types.ExposedModule

Pretty MungedPackageId #
>>> prettyShow $ MungedPackageId (MungedPackageName "servant" LMainLibName) (mkVersion [1,2,3])
"servant-1.2.3"
>>> prettyShow $ MungedPackageId (MungedPackageName "servant" (LSubLibName "lackey")) (mkVersion [0,1,2])
"z-servant-z-lackey-0.1.2"
Instance details

Defined in Distribution.Types.MungedPackageId

Pretty LegacyExeDependency # 
Instance details

Defined in Distribution.Types.LegacyExeDependency

Pretty ExeDependency # 
Instance details

Defined in Distribution.Types.ExeDependency

Pretty Dependency # 
Instance details

Defined in Distribution.Types.Dependency

Pretty BenchmarkType # 
Instance details

Defined in Distribution.Types.BenchmarkType

Pretty AbiDependency # 
Instance details

Defined in Distribution.Types.AbiDependency

Pretty License # 
Instance details

Defined in Distribution.License

Methods

pretty :: License -> Doc Source #

Pretty KnownExtension # 
Instance details

Defined in Language.Haskell.Extension

Pretty Extension # 
Instance details

Defined in Language.Haskell.Extension

Methods

pretty :: Extension -> Doc Source #

Pretty Language # 
Instance details

Defined in Language.Haskell.Extension

Methods

pretty :: Language -> Doc Source #

Pretty AbiTag # 
Instance details

Defined in Distribution.Compiler

Methods

pretty :: AbiTag -> Doc Source #

Pretty CompilerId # 
Instance details

Defined in Distribution.Compiler

Pretty CompilerFlavor # 
Instance details

Defined in Distribution.Compiler

Pretty LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Pretty FlagName # 
Instance details

Defined in Distribution.Types.GenericPackageDescription

Methods

pretty :: FlagName -> Doc Source #

Pretty FilePathNT # 
Instance details

Defined in Distribution.Parsec.Newtypes

Pretty FreeText # 
Instance details

Defined in Distribution.Parsec.Newtypes

Methods

pretty :: FreeText -> Doc Source #

Pretty TestedWith # 
Instance details

Defined in Distribution.Parsec.Newtypes

Pretty SpecLicense # 
Instance details

Defined in Distribution.Parsec.Newtypes

Pretty SpecVersion # 
Instance details

Defined in Distribution.Parsec.Newtypes

Pretty Token' # 
Instance details

Defined in Distribution.Parsec.Newtypes

Methods

pretty :: Token' -> Doc Source #

Pretty Token # 
Instance details

Defined in Distribution.Parsec.Newtypes

Methods

pretty :: Token -> Doc Source #

Pretty TestShowDetails # 
Instance details

Defined in Distribution.Simple.Setup

Pretty HaddockTarget # 
Instance details

Defined in Distribution.Simple.Setup

Pretty a => Pretty (Identity a) # 
Instance details

Defined in Distribution.Pretty

Methods

pretty :: Identity a -> Doc Source #

Pretty a => Pretty (MQuoted a) # 
Instance details

Defined in Distribution.Parsec.Newtypes

Methods

pretty :: MQuoted a -> Doc Source #

(Newtype b a, Sep sep, Pretty b) => Pretty (List sep b a) # 
Instance details

Defined in Distribution.Parsec.Newtypes

Methods

pretty :: List sep b a -> Doc Source #

defaultStyle :: Style Source #

The default rendering style used in Cabal for console output. It has a fixed page width and adds line breaks automatically.

flatStyle :: Style Source #

A style for rendering all on one line.

Utilities

showFreeText :: String -> Doc Source #

Pretty-print free-format text, ensuring that it is vertically aligned, and with blank lines replaced by dots for correct re-parsing.

Deprecated

type Separator = [Doc] -> Doc Source #