Language.Haskell.Pretty

| Haskell Hierarchical Libraries (haskell-src package) | Contents | Index
Language.Haskell.Pretty |
Portability | portable
Stability | experimental
Maintainer | libraries@haskell.org
Contents
Pretty printing Pretty-printing styles (from Text.PrettyPrint.HughesPJ) Haskell formatting modes
Description
Pretty printer for Haskell.
Synopsis
class Pretty a
prettyPrintStyleMode :: Pretty a => Style -> PPHsMode -> a -> String
prettyPrintWithMode :: Pretty a => PPHsMode -> a -> String
prettyPrint :: Pretty a => a -> String
Style (Style, mode, lineLength, ribbonsPerLine)
style
Mode (PageMode, ZigZagMode, LeftMode, OneLineMode)
data PPHsMode = PPHsMode {
classIndent :: Indent
doIndent :: Indent
caseIndent :: Indent
letIndent :: Indent
whereIndent :: Indent
onsideIndent :: Indent
spacing :: Bool
layout :: PPLayout
linePragmas :: Bool
comments :: Bool
}
type Indent = Int
data PPLayout
= PPOffsideRule
| PPSemiColon
| PPInLine
| PPNoLayout
defaultMode :: PPHsMode
Pretty printing
class Pretty a
Things that can be pretty-printed, including all the syntactic objects in Language.Haskell.Syntax.
Instances
Pretty HsAlt
Pretty HsAssoc
Pretty HsBangType
Pretty HsCName
Pretty HsConDecl
Pretty HsDecl
Pretty HsExp
Pretty HsExportSpec
Pretty HsFieldUpdate
Pretty HsGuardedAlt
Pretty HsGuardedAlts
Pretty HsGuardedRhs
Pretty HsImportDecl
Pretty HsImportSpec
Pretty HsLiteral
Pretty HsMatch
Pretty HsModule
Pretty HsName
Pretty HsOp
Pretty HsPat
Pretty HsPatField
Pretty HsQName
Pretty HsQOp
Pretty HsQualType
Pretty HsRhs
Pretty HsStmt
Pretty HsType
Pretty Module
prettyPrintStyleMode :: Pretty a => Style -> PPHsMode -> a -> String
pretty-print with a given style and mode.
prettyPrintWithMode :: Pretty a => PPHsMode -> a -> String
pretty-print with the default style and a given mode.
prettyPrint :: Pretty a => a -> String
pretty-print with the default style and `defaultMode`.
Pretty-printing styles (from Text.PrettyPrint.HughesPJ)
Style (Style, mode, lineLength, ribbonsPerLine)
style
Mode (PageMode, ZigZagMode, LeftMode, OneLineMode)
Haskell formatting modes
data PPHsMode
Pretty-printing parameters. Note: the `onsideIndent` must be positive and less than all other indents.
Constructors
PPHsMode |
classIndent :: Indent | indentation of a class or instance
doIndent :: Indent | indentation of a `do`-expression
caseIndent :: Indent | indentation of the body of a `case` expression
letIndent :: Indent | indentation of the declarations in a `let` expression
whereIndent :: Indent | indentation of the declarations in a `where` clause
onsideIndent :: Indent | indentation added for continuation lines that would otherwise be offside
spacing :: Bool | blank lines between statements?
layout :: PPLayout | Pretty-printing style to use
linePragmas :: Bool | add GHC-style `LINE` pragmas to output?
comments :: Bool | not implemented yet
type Indent = Int
data PPLayout
Varieties of layout we can use.
Constructors
PPOffsideRule | classical layout
PPSemiColon | classical layout made explicit
PPInLine | inline decls, with newlines between them
PPNoLayout | everything on a single line
Instances
Eq PPLayout
defaultMode :: PPHsMode
The default mode: pretty-print using the offside rule and sensible defaults.
Produced by Haddock version 0.7