void (@NotNull Project project, @NotNull ProblemDescriptor descriptor) { DomElement element = DomUtil.getDomElement(descriptor.getPsiElement()); if (!(element instanceof ExtensionPoint extensionPoint)) { return; } List<PsiField> fields = extensionPoint.collectMissingWithTags(); PsiElement navTarget = null; for (PsiField field : fields) { With with = extensionPoint.addWith(); String tagName = ExtensionPointPropertyNameConverter.getAnnotationValue(field, Tag.class); if (tagName != null) { with.getTag().setStringValue(tagName); } else { String attributeName = ExtensionPointPropertyNameConverter.getAnnotationValue(field, Attribute.class); if (attributeName == null) { attributeName = field.getName(); } if ("forClass".equals(attributeName)) { continue; } with.getAttribute().setStringValue(attributeName); } String epName = extensionPoint.getName().getStringValue(); String className = ""; if (epName != null) { int pos = epName.lastIndexOf('.'); epName = StringUtil.capitalize(pos >= 0 ? epName.substring(pos + 1) : epName); PsiClass[] classesByName = PsiShortNamesCache.getInstance(project).getClassesByName(epName, ProjectScope.getAllScope(project)); if (classesByName.length == 1) { className = classesByName[0].getQualifiedName(); } } with.getImplements().setStringValue(className); if (navTarget == null) { navTarget = with.getImplements().getXmlAttributeValue(); } } if (navTarget != null && !IntentionPreviewUtils.isPreviewElement(descriptor.getPsiElement())) { PsiNavigateUtil.navigate(navTarget); } }