void (@NotNull PsiElement leaf, @NotNull Collection<? super RelatedItemLineMarkerInfo<?>> result) { if (!(leaf instanceof XmlToken)) return; if (leaf.getNode().getElementType() != XmlTokenType.XML_NAME) return; PsiElement prev = PsiTreeUtil.getPrevSiblingOfType(leaf, XmlToken.class); if (prev == null || prev.getNode().getElementType() != XmlTokenType.XML_START_TAG_START) return; if (!leaf.textMatches("action") && !leaf.textMatches("group") && !leaf.textMatches("override-text") && !leaf.textMatches("id")) { return; } DomElement domElement = DomUtil.getDomElement(leaf); if (domElement instanceof ActionOrGroup actionOrGroup) { createLineMarker(leaf, result, domElement, actionOrGroup.getId()); } else if (domElement instanceof OverrideText overrideText) { createLineMarker(leaf, result, domElement, overrideText.getPlace()); } else if (domElement instanceof GenericDomValue) { createLineMarker(leaf, result, domElement, (GenericDomValue<?>)domElement); } }