| haskell-src-1.0.1.3: Manipulating Haskell source code | Source code | 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 | Source

Things that can be pretty-printed, including all the syntactic objects in Language.Haskell.Syntax.
Instances

Pretty HsGuardedAlt
Pretty HsGuardedAlts
Pretty HsAlt
Pretty HsFieldUpdate
Pretty HsStmt
Pretty HsPatField
Pretty HsPat
Pretty HsExp
Pretty HsLiteral
Pretty HsType
Pretty HsQualType
Pretty HsSafety
Pretty HsGuardedRhs
Pretty HsRhs
Pretty HsBangType
Pretty HsConDecl
Pretty HsMatch
Pretty HsDecl
Pretty HsAssoc
Pretty HsImportSpec
Pretty HsImportDecl
Pretty HsExportSpec
Pretty HsModule
Pretty HsCName
Pretty HsOp
Pretty HsQOp
Pretty HsName
Pretty HsQName
Pretty Module

prettyPrintStyleMode :: Pretty a => Style -> PPHsMode -> a -> String | Source

pretty-print with a given style and mode.

prettyPrintWithMode :: Pretty a => PPHsMode -> a -> String | Source

pretty-print with the default style and a given mode.

prettyPrint :: Pretty a => a -> String | Source

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

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

data PPLayout | Source

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

The default mode: pretty-print using the offside rule and sensible defaults.
Produced by Haddock version 2.4.2