void (IdeaPlugin ideaPlugin, DomElementAnnotationHolder holder, @NotNull Module module) { if (!PsiUtil.isIdeaProject(module.getProject())) return; if (DomUtil.hasXml(ideaPlugin.getUrl())) { String url = ideaPlugin.getUrl().getStringValue(); if ("https://www.jetbrains.com/idea".equals(url)) { highlightRedundant(ideaPlugin.getUrl(), DevKitBundle.message("inspections.plugin.xml.plugin.jetbrains.no.generic.plugin.url"), holder); } } if (!ideaPlugin.hasRealPluginId()) return; @NonNls String id = ideaPlugin.getId().getStringValue(); if (id != null && (StringUtil.startsWith(id, "com.android.") || //NON-NLS id.equals("org.jetbrains.android"))) { return; } if (!isUnderProductionSources(ideaPlugin, module)) return; final Vendor vendor = ideaPlugin.getVendor(); if (!DomUtil.hasXml(vendor)) { holder.createProblem(DomUtil.getFileElement(ideaPlugin), DevKitBundle.message("inspections.plugin.xml.plugin.should.have.jetbrains.vendor"), new AddMissingMainTag(DevKitBundle.message("inspections.plugin.xml.vendor.specify.jetbrains"), vendor, PluginManagerCore.VENDOR_JETBRAINS)); } else if (!PluginManagerCore.isVendorJetBrains(vendor.getValue())) { holder.createProblem(vendor, DevKitBundle.message("inspections.plugin.xml.plugin.should.have.jetbrains.vendor")); } else { final String url = vendor.getUrl().getStringValue(); if (url != null && StringUtil.endsWith(url, "jetbrains.com")) { highlightRedundant(vendor.getUrl(), DevKitBundle.message("inspections.plugin.xml.plugin.jetbrains.vendor.no.url", url), holder); } } if (DomUtil.hasXml(vendor.getEmail())) { highlightRedundant(vendor.getEmail(), DevKitBundle.message("inspections.plugin.xml.plugin.jetbrains.vendor.no.email"), holder); } if (DomUtil.hasXml(ideaPlugin.getChangeNotes())) { highlightRedundant(ideaPlugin.getChangeNotes(), DevKitBundle.message("inspections.plugin.xml.plugin.jetbrains.no.change.notes"), holder); } if (DomUtil.hasXml(ideaPlugin.getVersion())) { highlightRedundant(ideaPlugin.getVersion(), DevKitBundle.message("inspections.plugin.xml.plugin.jetbrains.no.version"), holder); } if (DomUtil.hasXml(ideaPlugin.getIdeaVersion())) { highlightRedundant(ideaPlugin.getIdeaVersion(), DevKitBundle.message("inspections.plugin.xml.plugin.jetbrains.no.idea.version"), holder); } }