Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module contains logic for pretty-printing expressions, including support for syntax highlighting
Synopsis
- data Ann
- annToAnsiStyle :: Ann -> AnsiStyle
- prettyExpr :: Pretty a => Expr s a -> Doc Ann
- data CharacterSet
- prettyCharacterSet :: Pretty a => CharacterSet -> Expr Src a -> Doc Ann
- layoutOpts :: LayoutOptions
Pretty
Annotation type used to tag elements in a pretty-printed document for syntax highlighting purposes
annToAnsiStyle :: Ann -> AnsiStyle Source #
Convert annotations to their corresponding color for syntax highlighting purposes
data CharacterSet Source #
prettyCharacterSet :: Pretty a => CharacterSet -> Expr Src a -> Doc Ann Source #
Pretty-print an Expr
using the given CharacterSet
.
prettyCharacterSet
largely ignores Note
s. Note
s do however matter for
the layout of let-blocks:
>>>
let inner = Let (Binding Nothing "x" Nothing Nothing Nothing (NaturalLit 1)) (Var (V "x" 0)) :: Expr Src ()
>>>
prettyCharacterSet ASCII (Let (Binding Nothing "y" Nothing Nothing Nothing (NaturalLit 2)) inner)
let y = 2 let x = 1 in x>>>
prettyCharacterSet ASCII (Let (Binding Nothing "y" Nothing Nothing Nothing (NaturalLit 2)) (Note (Src unusedSourcePos unusedSourcePos "") inner))
let y = 2 in let x = 1 in x
This means the structure of parsed let-blocks is preserved.
layoutOpts :: LayoutOptions Source #
Default layout options