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

Copyright(c) The GHC Team, Noel Winstanley 1997-2000
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerlibraries@haskell.org
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Pretty

Contents

Description

Pretty printer for Haskell.

Synopsis

Pretty printing

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)

data Style :: *

A rendering style.

Constructors

Style 

Fields

mode :: Mode

The rendering mode

lineLength :: Int

Length of line, in chars

ribbonsPerLine :: Float

Ratio of line length to ribbon length

Instances

Eq Style 
Show Style 
Generic Style 
type Rep Style = D1 D1Style (C1 C1_0Style ((:*:) (S1 S1_0_0Style (Rec0 Mode)) ((:*:) (S1 S1_0_1Style (Rec0 Int)) (S1 S1_0_2Style (Rec0 Float))))) 

style :: Style

The default style (mode=PageMode, lineLength=100, ribbonsPerLine=1.5).

data Mode :: *

Rendering mode.

Constructors

PageMode

Normal

ZigZagMode

With zig-zag cuts

LeftMode

No indentation, infinitely long lines

OneLineMode

All on one line

Instances

Eq Mode 
Show Mode 
Generic Mode 
type Rep Mode = D1 D1Mode ((:+:) ((:+:) (C1 C1_0Mode U1) (C1 C1_1Mode U1)) ((:+:) (C1 C1_2Mode U1) (C1 C1_3Mode U1))) 

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

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

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