haskell-src-exts-1.1.4: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer

Portabilityportable
Stabilitystable
MaintainerNiklas Broberg, d00nibro@chalmers.se

Language.Haskell.Exts.Annotated.Pretty

Contents

Description

Pretty printer for Haskell with extensions.

Synopsis

Pretty printing

class Pretty a Source

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

Instances

Pretty SrcLoc 
Pretty Tool 
SrcInfo loc => Pretty (GuardedAlt loc) 
SrcInfo loc => Pretty (GuardedAlts loc) 
SrcInfo loc => Pretty (Alt loc) 
SrcInfo loc => Pretty (FieldUpdate loc) 
SrcInfo loc => Pretty (QualStmt loc) 
SrcInfo loc => Pretty (Stmt loc) 
SrcInfo loc => Pretty (PatField loc) 
SrcInfo loc => Pretty (RPat loc) 
Pretty (RPatOp l) 
SrcInfo loc => Pretty (PXAttr loc) 
SrcInfo loc => Pretty (Pat loc) 
Pretty (WarningText l) 
Pretty (RuleVar l) 
SrcInfo loc => Pretty (Rule loc) 
Pretty (Activation l) 
Pretty (OptionPragma l) 
Pretty (CallConv l) 
Pretty (Safety l) 
SrcInfo loc => Pretty (Splice loc) 
SrcInfo loc => Pretty (Bracket loc) 
SrcInfo loc => Pretty (XAttr loc) 
Pretty (XName l) 
SrcInfo loc => Pretty (Exp loc) 
Pretty (Literal l) 
Pretty (Asst l) 
Pretty (Context l) 
Pretty (FunDep l) 
Pretty (Kind l) 
Pretty (TyVarBind l) 
Pretty (Type l) 
SrcInfo loc => Pretty (GuardedRhs loc) 
SrcInfo loc => Pretty (Rhs loc) 
Pretty (BangType l) 
SrcInfo loc => Pretty (InstDecl loc) 
SrcInfo loc => Pretty (ClassDecl loc) 
Pretty (GadtDecl l) 
Pretty (FieldDecl l) 
Pretty (ConDecl l) 
Pretty (QualConDecl l) 
SrcInfo pos => Pretty (Match pos) 
SrcInfo loc => Pretty (IPBind loc) 
Pretty (Deriving l) 
Pretty (InstHead l) 
Pretty (DeclHead l) 
Pretty (DataOrNew l) 
SrcInfo pos => Pretty (Decl pos) 
Pretty (Assoc l) 
Pretty (ImportSpec l) 
SrcInfo pos => Pretty (ImportDecl pos) 
Pretty (ExportSpec l) 
Pretty (ExportSpecList l) 
Pretty (ModuleHead l) 
SrcInfo pos => Pretty (Module pos) 
Pretty (CName l) 
Pretty (Op l) 
Pretty (QOp l) 
Pretty (IPName l) 
Pretty (Name l) 
Pretty (QName l) 
Pretty (ModuleName l) 

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

A rendering style.

Constructors

Style 

Fields

mode :: Mode

The rendering mode

lineLength :: Int

Length of line, in chars

ribbonsPerLine :: Float

Ratio of ribbon length to line length

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

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?

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.