void (@NotNull PsiElement element, int offsetInElement, @NotNull Consumer<? super PomTarget> consumer) { PsiElement grCall = element.getParent(); if (!(grCall instanceof GrMethodCall)) return; PsiElement grClosure = grCall.getParent(); if (!(grClosure instanceof GrClosableBlock)) return; PsiElement contentField = grClosure.getParent(); if (!(contentField instanceof GrField field)) return; if (!"content".equals(field.getName()) || !field.hasModifierProperty(PsiModifier.STATIC)) return; PsiClass containingClass = field.getContainingClass(); if (!InheritanceUtil.isInheritor(containingClass, "geb.Page") && !InheritanceUtil.isInheritor(containingClass, "geb.Module")) return; Map<String, PsiMember> contentElements = GebUtil.getContentElements(containingClass); for (PsiMember contentElement : contentElements.values()) { if (contentElement.getNavigationElement() == element && contentElement instanceof PomTarget) { consumer.consume((PomTarget)contentElement); return; } } }