haskell-src-1.0.1.5: Support for manipulating Haskell source code

Portabilityportable
Stabilityexperimental
Maintainer[email protected]
Safe HaskellNone

Language.Haskell.Pretty

Contents

Description

Pretty printer for Haskell.

Synopsis

Pretty printing

prettyPrintStyleMode :: Pretty a => Style -> PPHsMode -> a -> StringSource

pretty-print with a given style and mode.

prettyPrintWithMode :: Pretty a => PPHsMode -> a -> StringSource

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

prettyPrint :: Pretty a => a -> StringSource

pretty-print with the default style and defaultMode.

Pretty-printing styles (from Text.PrettyPrint.HughesPJ)

data Style

Constructors

Style 

Fields

mode :: Mode
 
lineLength :: Int
 
ribbonsPerLine :: Float
 

Haskell formatting modes

data PPHsMode Source

Pretty-printing parameters.

Note: the onsideIndent must be positive and less than all other indents.

Constructors

PPHsMode 

Fields

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

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

defaultMode :: PPHsModeSource

The default mode: pretty-print using the offside rule and sensible defaults.