prettyprinter-1.7.1: A modern, easy to use, well-documented, extensible pretty-printer.
Safe Haskell Safe-Inferred
Language Haskell2010

Prettyprinter.Internal.Debug

Description

Warning: internal module! This means that the API may change arbitrarily between versions without notice. Depending on this module may lead to unexpected breakages, so proceed with caution!

This module provides debugging helpers for inspecting Doc s.

Use the pretty-simple package to get a nicer layout for show n Diag s:

> Text.Pretty.Simple.pPrintNoColor . diag $ align (vcat ["foo", "bar"])
Column
   [
       ( 10
       , Nesting
           [
               ( 10
               , Cat ( Text 3 "foo" )
                   ( Cat ( FlatAlt Line Empty ) ( Text 3 "bar" ) )
               )
           ]
       )
   ]
Synopsis

Documentation

data Diag ann Source #

A variant of Doc for debugging.

Unlike in the Doc type, the Column , WithPageWidth and Nesting constructors don't contain functions but are "sampled" to allow simple inspection with show .

diag :: Doc ann -> Diag ann Source #

Convert a Doc to its diagnostic representation.

The functions in the Column , WithPageWidth and Nesting constructors are sampled with some default values.

Use diag ` to control the function inputs yourself.

>>> diag $ Doc.align (Doc.vcat ["foo", "bar"])
Column [(10,Nesting [(10,Cat (Text 3 "foo") (Cat (FlatAlt Line Empty) (Text 3 "bar")))])]

diag' Source #

Arguments

:: [ Int ]

Cursor positions for the Column constructor

-> [ PageWidth ]

For WithPageWidth

-> [ Int ]

Nesting levels for Nesting

-> Doc ann
-> Diag ann