Tree class
A fluent builder for creating styled trees (lipgloss v2 parity).
This mirrors charm.land/lipgloss/v2/tree behavior:
- Per-node hide + child filtering
- Auto-parenting unnamed subtrees to previous siblings
- Separate enumerator/indenter functions + styles
- Multiline items and mixed prefix widths are aligned A component for rendering hierarchical tree structures.
The Tree component supports:
- Nested children with arbitrary depth.
- Custom enumerators (branch characters) like bullets, numbers, or custom strings.
- Per-item and per-enumerator styling.
- Automatic indentation and branch line rendering.
Example:
final tree = Tree(['Root'])
.children([
Tree(['Child 1']),
Tree(['Child 2']).children([
Tree(['Grandchild']),
]),
]);
print(tree.render());
- Inheritance
- Implemented types
- Available extensions
Constructors
- Tree({RenderConfig renderConfig = const RenderConfig(), bool showRoot = true})
Properties
-
childrenNodes
→ Iterable<
TreeNode> -
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
-
no setteroverride
- lineCount → int
-
Number of lines in render.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- value → String
-
no setteroverride
Methods
-
child(
Object? item) → Tree -
children(
List items) → Tree -
childrenAll(
List items) → Tree -
enumerator(
Object enumerator) → Tree -
enumeratorFunc(
TreeEnumeratorFunc fn) → Tree -
enumeratorStyle(
Style style) → Tree -
enumeratorStyleFunc(
TreeNodeStyleFunc fn) → Tree - Sets the enumeration style function. Use this for conditional styling.
-
hide(
bool value) → Tree -
indenterFunc(
TreeIndenterFunc fn) → Tree -
indenterStyle(
Style style) → Tree -
indenterStyleFunc(
TreeNodeStyleFunc fn) → Tree - Sets the indentation style function. Use this for conditional styling.
-
init(
) → Cmd? -
Returns an optional command to execute on program startup.
inherited
-
itemStyle(
Style style) → Tree -
itemStyleFunc(
TreeNodeStyleFunc fn) → Tree - Sets the item style function. Use this for conditional styling.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
offset(
int start, [int end = 0]) → Tree -
render(
) → String -
Renders the component as a string.
override
-
root(
Object? label) → Tree -
rootStyle(
Style style) → Tree -
showRoot(
bool value) → Tree -
toString(
) → String -
A string representation of this object.
inherited
-
update(
Msg msg) → (ViewComponent, Cmd?) -
Updates the component state in response to a message.
inherited
-
view(
) → String -
Renders the current model state for display.
inherited
-
width(
int width) → Tree -
writelnTo(
Console io) → void -
Available on DisplayComponent, provided by the DisplayComponentExtension extension
Renders the component and writes it to the console.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited