module FP.Pretty.Examples where
import FP.Prelude
import FP.Pretty.Color
import FP.Pretty.Pretty
import FP.Pretty.Instances ()
testPrettyFormats ∷ Doc
testPrettyFormats = ppVertical
[ ppPun "punctuation"
, ppKeyPun "keyword punctuation"
, ppKey "keyword"
, ppCon "constructor"
, ppOp "operator"
, ppBdr "binder"
, ppLit "literal"
, ppHl "highlighted"
, ppHeader "header"
, ppErr "error"
]
testPrettyNesting ∷ Doc
testPrettyNesting = ppVertical
[ pretty $
[ dict [ (111, set [10000,11111,22222,33333,44444,55555,66666,77777])
, (222, set [10000,11111,22222,33333,44444,55555,66666,77777,88888])
, (333, set [10000,11111,22222,33333,44444,55555,66666,77777,88888,99999])
]
]
]
testPrettyUndertags ∷ Doc
testPrettyUndertags = ppVertical
[ ppText "not undertaggedd"
, ppUT '~' green $ ppText "undertagged green"
, ppUT '^' blue $ ppVertical
[ ppText "multiline"
, ppText "undertagged"
, ppFG darkPink $ ppText "with color inside"
]
]
testPrettyLineNumbers ∷ Doc
testPrettyLineNumbers = ppVertical
[ ppLineNumbers $ ppText "show lines"
, ppText "don't show lines"
, ppLineNumbers $ ppVertical
[ ppText "multiline"
, ppText "show lines"
]
]
testPrettyBlinders ∷ Doc
testPrettyBlinders =
let lines ∷ [Doc]
lines = list $ map (\ (i,p) → ppHorizontal [p,ppNoFormat $ pretty i]) $ list $ withIndex $ stream $ replicate (𝕟 30) (ppText "line number")
in ppLineNumbers $ ppBlinders (𝕟 10) (𝕟 20) $ ppVertical $ lines