Similar to
pPrint but takes
OutputOptions to change how
the pretty-printing is done.
For example,
pPrintOpt can be used to make the indentation much
smaller than normal.
This is what the normal indentation looks like:
>>> pPrintOpt NoCheckColorTty defaultOutputOptionsNoColor $ Just ("hello", "bye")
Just
( "hello"
, "bye"
)
This is what smaller indentation looks like:
>>> let smallIndent = defaultOutputOptionsNoColor {outputOptionsIndentAmount = 1}
>>> pPrintOpt CheckColorTty smallIndent $ Just ("hello", "bye")
Just
( "hello"
, "bye"
)
Lines in strings get indented
>>> pPrintOpt NoCheckColorTty defaultOutputOptionsNoColor (1, (2, "foo\nbar\nbaz", 3))
( 1
,
( 2
, "foo
bar
baz"
, 3
)
)
Lines get indented even in custom show instances
>>> data Foo = Foo
>>> instance Show Foo where show _ = "foo\nbar\nbaz"
>>> pPrintOpt CheckColorTty defaultOutputOptionsNoColor (1, (2, Foo, 3))
( 1
,
( 2
, foo
bar
baz
, 3
)
)
CheckColorTty determines whether to test
stdout for
whether or not it is connected to a TTY.
If set to
NoCheckColorTty, then
pPrintOpt won't check if
stdout is a TTY. It will print in color depending on the value
of
outputOptionsColorOptions.
If set to
CheckColorTty, then
pPrintOpt will check if
stdout is conneted to a TTY. If
stdout is determined to
be connected to a TTY, then it will print in color depending on the
value of
outputOptionsColorOptions. If
stdout is
determined to NOT be connected to a TTY, then it will NOT print in
color, regardless of the value of
outputOptionsColorOptions.