previousParsedAll property
Similar to previousElement but it returns a Node
of what was parsed
immediately before the current element. It might be doc comment, element,
part of string, etc...
To get the String (data) representation of this Node
, use
node.data
.
Returns a list of previousParseds.
Implementation
@override
List<Node> get previousParsedAll {
final prevParsedAll = <Node>[];
final element = this.element;
if (element == null) return prevParsedAll;
final parentNode = element.parentNode;
if (parentNode == null) return prevParsedAll;
// find within parent and prev siblings
final prevIndex = _getCurrNodeIndex(parentNode, element) - 1;
final allSiblings = parentNode.nodes;
if (prevIndex >= 0) {
final rangeList = allSiblings.getRange(0, prevIndex + 1);
prevParsedAll.addAll(List.of(rangeList).reversed);
}
Node prevNode = parentNode;
Node? parent = parentNode.parentNode;
while (parent != null) {
final prevIndex = _getCurrNodeIndex(parent, prevNode) - 1;
final allSiblings = parent.nodes;
if (prevIndex == -1) {
// top most element (?)
prevParsedAll.add(allSiblings.first);
} else if (prevIndex >= 0) {
final rangeList = allSiblings.getRange(0, prevIndex + 1);
prevParsedAll.addAll(List.of(rangeList).reversed);
}
prevNode = parent;
parent = parent.parentNode;
}
return prevParsedAll;
}