if (!featureNodes.isEmpty()) { INode featureNode = featureNodes.get(0); result = result.merge(toZeroBasedRegion(featureNode.getTextRegionWithLineInformation())); List<INode> targetNodes = NodeModelUtils.findNodesForFeature(owner, XbasePackage.Literals.XMEMBER_FEATURE_CALL__MEMBER_CALL_TARGET); if (!targetNodes.isEmpty()) { INode targetNode = targetNodes.get(0); result = result.merge(toZeroBasedRegion(targetNode.getTextRegionWithLineInformation())); if (length != 0) { if (pending != null) { result.merge(toZeroBasedRegion(pending.getTextRegionWithLineInformation())); pending = null; pending = node; } else { result = result.merge(toZeroBasedRegion(node.getTextRegionWithLineInformation()));
public EStructuralFeatureNode createEStructuralFeatureNode(IOutlineNode parentNode, EObject owner, EStructuralFeature feature, ImageDescriptor imageDescriptor, Object text, boolean isLeaf) { boolean isFeatureSet = owner.eIsSet(feature); EStructuralFeatureNode eStructuralFeatureNode = new EStructuralFeatureNode(owner, feature, parentNode, imageDescriptor, text, isLeaf || !isFeatureSet); if (isFeatureSet) { ITextRegion region = locationInFileProvider.getFullTextRegion(owner, feature, 0); if (feature.isMany()) { int numValues = ((Collection<?>) owner.eGet(feature)).size(); ITextRegion fullTextRegion = locationInFileProvider.getFullTextRegion(owner, feature, numValues - 1); if(fullTextRegion != null) region = region.merge(fullTextRegion); } eStructuralFeatureNode.setTextRegion(region); } return eStructuralFeatureNode; }
protected EStructuralFeatureNode createEStructuralFeatureNode(IOutlineNode parentNode, EObject owner, EStructuralFeature feature, Image image, Object text, boolean isLeaf) { boolean isFeatureSet = owner.eIsSet(feature); EStructuralFeatureNode eStructuralFeatureNode = new EStructuralFeatureNode(owner, feature, parentNode, image, text, isLeaf || !isFeatureSet); if (isFeatureSet) { ITextRegion region = locationInFileProvider.getFullTextRegion(owner, feature, 0); if (feature.isMany()) { int numValues = ((Collection<?>) owner.eGet(feature)).size(); ITextRegion fullTextRegion = locationInFileProvider.getFullTextRegion(owner, feature, numValues - 1); if (fullTextRegion != null) region = region.merge(fullTextRegion); } eStructuralFeatureNode.setTextRegion(region); } return eStructuralFeatureNode; }
protected ITextRegion createRegion(final List<INode> nodes) { ITextRegion result = ITextRegion.EMPTY_REGION; for (INode node : nodes) { if (!isHidden(node)) { int length = node.getLength(); if (length != 0) result = result.merge(new TextRegionWithLineInformation(node.getOffset(), length, node.getStartLine() - 1, node.getEndLine() - 1)); } } return result; }
/** * @since 2.3 */ protected ITextRegion createRegion(List<INode> nodes, RegionDescription query) { if (query == RegionDescription.FULL || query == RegionDescription.SIGNIFICANT) return createRegion(nodes); ITextRegion result = ITextRegion.EMPTY_REGION; for (INode node : nodes) { for(INode leafNode: node.getLeafNodes()) { if (!isHidden(leafNode, query)) { int length = leafNode.getLength(); if (length != 0) result = result.merge(new TextRegionWithLineInformation(leafNode.getOffset(), length, leafNode.getStartLine() - 1, leafNode.getEndLine() - 1)); } } } return result; }
int length = getNodeLength(child); if (length != 0) { result = result.merge(new TextRegionWithLineInformation(child.getOffset(), length, child.getStartLine() - 1, child.getEndLine() - 1));
protected ITextRegion write(AbstractToken token, WsMergerStream out, ITextRegion location) throws IOException { ITextRegion currentLocation = location; INode node = token.getNode(); if (node != null) { currentLocation = currentLocation.merge(new TextRegion(node.getOffset(), node.getLength())); } if (!token.getTokensForSemanticChildren().isEmpty()) { for (AbstractToken t : token.getTokensForSemanticChildren()) currentLocation = write(t, out, currentLocation); } else { if (token instanceof CommentToken) out.writeComment((ILeafNode) node); else { String val = token.serialize(node); if (val != null) { if (token instanceof AssignmentToken) out.writeSemantic(((AssignmentToken) token).getAssignmentElement(), val, node); else out.writeSemantic(token.getGrammarElement(), val, node); } } } return currentLocation; }
continue; result = result.merge(toZeroBasedRegion(new TextRegionWithLineInformation(offset, length, region.getLineNumber(), region.getEndLineNumber())));