diff --git a/platform/platform-api/src/com/intellij/openapi/options/ShowSettingsUtil.java b/platform/platform-api/src/com/intellij/openapi/options/ShowSettingsUtil.java index 03f772035302..8aff64c5031a 100644 --- a/platform/platform-api/src/com/intellij/openapi/options/ShowSettingsUtil.java +++ b/platform/platform-api/src/com/intellij/openapi/options/ShowSettingsUtil.java @@ -39,6 +39,10 @@ public abstract class ShowSettingsUtil { public abstract boolean editConfigurable(@Nullable Component parent, @NotNull Configurable configurable); + public abstract boolean editConfigurable(@Nullable Component parent, @NotNull String displayName); + + public abstract boolean editConfigurable(@Nullable Component parent, @NotNull String displayName, @Nullable Runnable advancedInitialization); + public abstract boolean editConfigurable(Component parent, @NotNull Configurable configurable, Runnable advancedInitialization); public abstract boolean editConfigurable(Project project, @NonNls @NotNull String dimensionServiceKey, @NotNull Configurable configurable); diff --git a/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java b/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java index 10f4e8c5d03f..9d65c2e6af9e 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java @@ -205,6 +205,23 @@ public class ShowSettingsUtilImpl extends ShowSettingsUtil { return editConfigurable(parent, configurable, null); } + @Override + public boolean editConfigurable(@Nullable Component parent, @NotNull String displayName) { + return editConfigurable(parent, displayName, (Runnable)null); + } + + @Override + public boolean editConfigurable(@Nullable Component parent, @NotNull String displayName, @Nullable Runnable advancedInitialization) { + ConfigurableGroup group = ConfigurableExtensionPointUtil.getConfigurableGroup(null, /* withIdeSettings = */ true); + List groups = group.getConfigurables().length == 0 ? Collections.emptyList() : Collections.singletonList(group); + Configurable configurable = findPreselectedByDisplayName(displayName, groups); + if (configurable == null) { + LOG.error("Cannot find configurable for name [" + displayName + "]"); + return false; + } + return editConfigurable(parent, configurable, advancedInitialization); + } + @Override public boolean editConfigurable(@Nullable Component parent, @NotNull Configurable configurable, @Nullable Runnable advancedInitialization) { return editConfigurable(parent, null, configurable, createDimensionKey(configurable), advancedInitialization, isWorthToShowApplyButton(configurable));