org_eclipse_lemminx_services_XMLSelectionRangesTest_java
org.eclipse.lemminx.services.XMLSelectionRanges
private SelectionRange getSelectionRangeFromNode(DOMNode node, int offset) {
        DOMNode prolog;
        SelectionRange leafSelectionRange = new SelectionRange();
        leafSelectionRange.setRange(new Range());
        SelectionRange selectionRange = leafSelectionRange;
        do {
            selectionRange = this.handleNodeSelectionRange(selectionRange, node, offset);
            if (!node.isAttribute() || ((DOMAttr)node).getOwnerElement() == null) continue;
            node = ((DOMAttr)node).getOwnerElement();
        } while ((node = (prolog = node.getOwnerDocument().getProlog()) != null && node != node.getOwnerDocument() && node != prolog && prolog.getStart() <= offset && offset <= prolog.getEnd() ? node.getOwnerDocument().getProlog() : node.getParentNode()) != null);
        return leafSelectionRange.getParent();
    }
 -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object
 [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class [EXIT] [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT]