String (String description, ClassLoader loader) { if (loader instanceof PluginClassLoader) { PluginId pluginId = ((PluginClassLoader)loader).getPluginId(); IdeaPluginDescriptorImpl pluginDescriptor = (IdeaPluginDescriptorImpl)PluginManagerCore.getPlugin(pluginId); ApplicationInfo appInfo = ApplicationInfo.getInstance(); if (pluginDescriptor != null && pluginDescriptor.isBundled() && !appInfo.isEssentialPlugin(pluginId)) { int beforeBodyIdx = description.indexOf(CommonXmlStrings.BODY_END); if (beforeBodyIdx > 0) { String pluginName = pluginDescriptor.getName(); return description.substring(0, beforeBodyIdx) + HtmlChunk.p().child(HtmlChunk.template(CodeInsightBundle.message("powered.by.plugin.full", "$name$"), "name", HtmlChunk.link("settings://preferences.pluginManager?" + pluginName.replace(" ", "%20"), pluginName))) + description.substring(beforeBodyIdx); } } } return description; }