tree-render-text-0.1.0.0: Configurable text rendering of trees.

Safe HaskellSafe
LanguageHaskell2010

Data.Tree.Render.Text

Description

Configurable text rendering of trees.

Synopsis

Documentation

data ChildOrder Source #

Describes the render order of a node's children.

Constructors

FirstToLast 
LastToFirst 

data BranchPath Source #

A part of a path along a rendered tree.

Constructors

BranchUp

Describes a turn going up toward the left.

e.g. ╭─

BranchDown

Describes a turn going down toward the left.

e.g. ╰─

BranchJoin

Describes a T-join of a path going up and down toward the left.

e.g. ├─

BranchContinue

Describes a path going up and down.

e.g.

BranchEmpty

Describes a part that does NOT contain a path piece.

e.g.

renderTreeM :: Monad m => RenderOptionsM m string label -> Tree label -> m () Source #

Renders a pretty printed tree within a monadic context.

data RenderOptionsM m string label Source #

Options used for rendering a 'Tree label'.

Constructors

RenderOptions 

Fields

  • oParentLocation :: ParentLocation

    Controls where parent nodes are rendered.

  • oChildOrder :: ChildOrder

    Controls the order a node's children are rendered.

  • oVerticalPad :: Int

    The amount of vertical spacing between nodes.

  • oPrependNewLine :: Bool

    If True, a newline is prepended to the rendered output.

  • oFromString :: String -> string

    Promotes a String to a string.

  • oWrite :: string -> m ()

    Writes a string.

  • oShowNodeLabel :: label -> string

    Shows a rootLabel.

  • oGetNodeMarker :: label -> string

    Get the marker for a node. Although this takes as input a node's label, this should not render the label itself.

    The label is passed as an argument to allow things such as: * Rendering a node marker differently for labels that fail to pass a test. * Highlighting a node currently being visited.

    Simple use cases would use a constant function ignoring the label value.

  • oShowBranchPath :: BranchPath -> string

    Shows a BranchPath. The returned values should contain no newlines and should all be of the same printed width when rendered as text.

tracedRenderOptionsM Source #

Arguments

:: (String -> string)

Promotes a String to a string.

-> (string -> m ())

Writes a string.

-> (label -> string)

Shows a rootLabel.

-> RenderOptionsM m string label 

Options for producing a line-traced tree using unicode drawing characters.

This uses: BranchUp -> "╭─" BranchDown -> "╰─" BranchJoin -> "├─" BranchContinue -> "│ " BranchEmpty -> " "

tracedRenderOptionsAsciiM Source #

Arguments

:: (String -> string)

Promotes a String to a string.

-> (string -> m ())

Writes a string.

-> (label -> string)

Shows a rootLabel.

-> RenderOptionsM m string label 

Options for producing a line-traced tree using ASCII characters.

This uses: BranchUp -> ",-" BranchDown -> "`-" BranchJoin -> "|-" BranchContinue -> "| " BranchEmpty -> " "

renderTree :: RenderOptions String label -> Tree label -> String Source #

Renders a Tree a pretty printed tree asa a String.

type RenderOptions = RenderOptionsM (Writer (DList Char)) Source #

An alias of RenderOptionsM for producing pure String renders.

tracedRenderOptions Source #

Arguments

:: (label -> String)

Shows a rootLabel.

-> RenderOptions String label 

Simplified tracedRenderOptionsM when using RenderOptionsM.

tracedRenderOptionsAscii Source #

Arguments

:: (label -> String)

Shows a rootLabel.

-> RenderOptions String label