From f823bcbc2d9872270eae72e4dc22e1f7d3c55667 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 13 May 2011 17:13:25 +0200 Subject: [PATCH] disable a plugin silently if it depends on a missing module --- .../intellij/ide/plugins/PluginManager.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ide/plugins/PluginManager.java b/platform/platform-api/src/com/intellij/ide/plugins/PluginManager.java index 8d932e3094cf..601ea1578984 100644 --- a/platform/platform-api/src/com/intellij/ide/plugins/PluginManager.java +++ b/platform/platform-api/src/com/intellij/ide/plugins/PluginManager.java @@ -674,18 +674,20 @@ public class PluginManager { }, new Condition() { public boolean value(final PluginId pluginId) { if (!idToDescriptorMap.containsKey(pluginId)) { - if (message.length() > 0) { - message.append("
"); - } pluginDescriptor.setEnabled(false); - disabledPluginIds.add(pluginDescriptor.getPluginId().getIdString()); - final String name = pluginDescriptor.getName(); - final IdeaPluginDescriptorImpl descriptor = idToDescriptorMap.get(pluginId); - String pluginName = descriptor == null ? pluginId.getIdString() : descriptor.getName(); + if (!pluginId.getIdString().startsWith(MODULE_DEPENDENCY_PREFIX)) { + disabledPluginIds.add(pluginDescriptor.getPluginId().getIdString()); + if (message.length() > 0) { + message.append("
"); + } + final String name = pluginDescriptor.getName(); + final IdeaPluginDescriptorImpl descriptor = idToDescriptorMap.get(pluginId); + String pluginName = descriptor == null ? pluginId.getIdString() : descriptor.getName(); - message.append(getDisabledPlugins().contains(pluginId.getIdString()) - ? IdeBundle.message("error.required.plugin.disabled", name, pluginName) - : IdeBundle.message("error.required.plugin.not.installed", name, pluginName)); + message.append(getDisabledPlugins().contains(pluginId.getIdString()) + ? IdeBundle.message("error.required.plugin.disabled", name, pluginName) + : IdeBundle.message("error.required.plugin.not.installed", name, pluginName)); + } it.remove(); return false; }