*/
protected Pair<EObject, IRegion> getXtextElementAt(XtextResource resource, final int offset) {
// check for cross reference
EObject crossLinkedEObject = eObjectAtOffsetHelper.resolveCrossReferencedElementAt(resource, offset);
if (crossLinkedEObject != null) {
if (!crossLinkedEObject.eIsProxy()) {
IParseResult parseResult = resource.getParseResult();
if (parseResult != null) {
ILeafNode leafNode = NodeModelUtils.findLeafNodeAtOffset(parseResult.getRootNode(), offset);
if(leafNode != null && leafNode.isHidden() && leafNode.getOffset() == offset) {
leafNode = NodeModelUtils.findLeafNodeAtOffset(parseResult.getRootNode(), offset - 1);