@Override protected ITextRegion getLocationOfCrossReference( EObject owner, EReference reference, int indexInList, boolean isSignificant) { if (owner instanceof XMemberFeatureCall && reference == XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE && ((XMemberFeatureCall) owner).isTypeLiteral()) { List<INode> featureNodes = NodeModelUtils.findNodesForFeature(owner, reference); ITextRegion result = ITextRegion.EMPTY_REGION; 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())); } return result; } } return super.getLocationOfCrossReference(owner, reference, indexInList, isSignificant); }