void (ExtensionPoint extensionPoint, DomElementAnnotationHolder holder, ComponentModuleRegistrationChecker componentModuleRegistrationChecker) { if (extensionPoint.getWithElements().isEmpty() && !extensionPoint.collectMissingWithTags().isEmpty()) { holder.createProblem(extensionPoint, DevKitBundle.message("inspections.plugin.xml.ep.doesnt.have.with"), new AddWithTagFix()); } checkEpBeanClassAndInterface(extensionPoint, holder); checkEpNameAndQualifiedName(extensionPoint, holder); if (DomUtil.hasXml(extensionPoint.getQualifiedName())) { IdeaPlugin ideaPlugin = DomUtil.getParentOfType(extensionPoint, IdeaPlugin.class, true); assert ideaPlugin != null; final String pluginId = ideaPlugin.getPluginId(); if (pluginId != null) { final String epQualifiedName = extensionPoint.getQualifiedName().getStringValue(); if (epQualifiedName != null && epQualifiedName.startsWith(pluginId + ".")) { holder.createProblem(extensionPoint.getQualifiedName(), ProblemHighlightType.WARNING, DevKitBundle.message("inspections.plugin.xml.ep.qualifiedName.superfluous"), null, new LocalQuickFix() { @Override public @IntentionFamilyName @NotNull String getFamilyName() { return DevKitBundle.message("inspections.plugin.xml.ep.qualifiedName.superfluous.fix"); } @Override public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) { ExtensionPoint fixExtensionPoint = DomUtil.findDomElement(descriptor.getPsiElement(), ExtensionPoint.class); if (fixExtensionPoint == null) return; fixExtensionPoint.getQualifiedName().undefine(); fixExtensionPoint.getName().setStringValue(StringUtil.substringAfter(epQualifiedName, pluginId + ".")); } }).highlightWholeElement(); } } } Module module = extensionPoint.getModule(); if (componentModuleRegistrationChecker.isIdeaPlatformModule(module)) { componentModuleRegistrationChecker.checkProperModule(extensionPoint); } }