| haskell-src-exts-1.9.0: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer | Source code | Contents | Index

Language.Haskell.Exts.Pretty

Portability | portable
Stability | stable
Maintainer | Niklas Broberg, d00nibro@chalmers.se

Contents

Pretty printing
Pretty-printing styles (from Text.PrettyPrint.HughesPJ)
Haskell formatting modes

Description
Pretty printer for Haskell with extensions.
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

}

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.Exts.Syntax and Language.Haskell.Exts.Annotated.Syntax.
Instances

Pretty Tool
Pretty SrcSpan
Pretty SrcLoc
Pretty GuardedAlt
Pretty GuardedAlts
Pretty Alt
Pretty FieldUpdate
Pretty QualStmt
Pretty Stmt
Pretty PatField
Pretty RPat
Pretty RPatOp
Pretty PXAttr
Pretty Pat
Pretty RuleVar
Pretty Rule
Pretty Activation
Pretty ModulePragma
Pretty CallConv
Pretty Safety
Pretty Splice
Pretty Bracket
Pretty XAttr
Pretty XName
Pretty Exp
Pretty Literal
Pretty Asst
Pretty FunDep
Pretty Kind
Pretty TyVarBind
Pretty Type
Pretty GuardedRhs
Pretty Rhs
Pretty BangType
Pretty InstDecl
Pretty ClassDecl
Pretty GadtDecl
Pretty ConDecl
Pretty QualConDecl
Pretty Match
Pretty IPBind
Pretty DataOrNew
Pretty Annotation
Pretty Decl
Pretty Assoc
Pretty ImportSpec
Pretty ImportDecl
Pretty ExportSpec
Pretty Module
Pretty CName
Pretty Op
Pretty QOp
Pretty IPName
Pretty Name
Pretty QName
Pretty SpecialCon
Pretty ModuleName
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)
SrcInfo loc => Pretty (ModulePragma loc)
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 loc => Pretty (Annotation loc)
SrcInfo pos => Pretty (Decl pos)
Pretty (Assoc l)
Pretty (ImportSpec l)
Pretty (ImportSpecList 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)
SrcInfo loc => Pretty (PAsst loc)
SrcInfo loc => Pretty (PType loc)
SrcInfo loc => Pretty (PContext loc)
SrcInfo loc => Pretty (ParseXAttr loc)
SrcInfo loc => Pretty (PFieldUpdate loc)
SrcInfo loc => Pretty (PExp loc)

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?

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