void (@NotNull PsiElement leaf, @NotNull Collection<? super RelatedItemLineMarkerInfo<?>> result, DomElement domElement, GenericDomValue<?> referenceElement) { if (!DomUtil.hasXml(referenceElement)) return; final XmlElement valueXmlElement = DomUtil.getValueElement(referenceElement); if (valueXmlElement == null) return; PropertiesFile file = DescriptorI18nUtil.findBundlePropertiesFile(domElement); if (file == null) return; final Query<PsiReference> query = ReferencesSearch.search(valueXmlElement, new LocalSearchScope(file.getContainingFile())); if (query.findFirst() == null) return; result.add( NavigationGutterIconBuilder.create(DevKitIcons.Gutter.Properties, e -> Collections.singletonList(((PsiElement)e)), e -> Collections.singletonList(new GotoRelatedItem((PsiElement)e))) .setTargets(NotNullLazyValue.createValue(() -> { return ContainerUtil.map(query.findAll(), reference -> PsiTreeUtil.getParentOfType(reference.getElement(), Property.class)); })) .setPopupTitle(DevKitBundle.message("line.marker.related.property.popup.title")) .setTooltipText(DevKitBundle.message("line.marker.related.property.tooltip")) .setAlignment(GutterIconRenderer.Alignment.RIGHT) .createLineMarkerInfo(leaf) ); }