protected boolean visitNode(ASTNode node) { int nodeStart= node.getStartPosition(); int nodeEnd= nodeStart + node.getLength(); // if node does not intersects with selection, don't visit children if (nodeEnd < selectionBegin || selectionEnd < nodeStart) { return false; } // if node is fully covered, we don't need to visit children if (isCovered(node)) { ASTNode parent = node.getParent(); if ((parent == null) || !isCovered(parent)) { coveredNodes.add(node); return false; } } // if node only partly intersects with selection, we try to find fully covered children return true; } private boolean isCovered(ASTNode node) {
@Override protected boolean visitNode(ASTNode node) { int nodeStart= node.getStartPosition(); int nodeEnd= nodeStart + node.getLength(); // if node does not intersects with selection, don't visit children if (nodeEnd < selectionBegin || selectionEnd < nodeStart) { return false; } // if node is fully covered, we don't need to visit children if (isCovered(node)) { ASTNode parent= node.getParent(); if (parent == null || !isCovered(parent)) { coveredNodes.add(node); return false; } } // if node only partly intersects with selection, we try to find fully covered children return true; }
@Override protected boolean visitNode(ASTNode node) { int nodeStart= node.getStartPosition(); int nodeEnd= nodeStart + node.getLength(); // if node does not intersects with selection, don't visit children if (nodeEnd < selectionBegin || selectionEnd < nodeStart) { return false; } // if node is fully covered, we don't need to visit children if (isCovered(node)) { ASTNode parent= node.getParent(); if (parent == null || !isCovered(parent)) { coveredNodes.add(node); return false; } } // if node only partly intersects with selection, we try to find fully covered children return true; }