visitElementAfter method
Called when an Element has been reached, after its children have been visited.
Will not be called if visitElementBefore returns false
.
Implementation
@override
void visitElementAfter(PrettyElement element) {
const backslash = r'$';
final current = _tree.removeLast();
final parent = _tree.last;
final builder = _builders[current.type]!;
final isBlock = builder.isBlock(element);
final node = PrettyElement(
element.type,
attributes: element.attributes,
markers: [
...builder.prettyMarkers(
element.markers.where((e) => e.text != backslash).toList(),
element,
parent.element,
),
...element.markers.where((e) => e.text == backslash),
],
children: current.children,
start: element.start,
end: element.end,
isBlock: element.isBlock,
position: element.position,
);
if (isBlock && parent.children.isNotEmpty) {
parent.children.last.writeln();
}
parent.children.add(node);
builder.visitElementAfter(node, parent.type, parent.children);
}