Look for python interpreter configurable by id (EA-266488)

Instead of type, since DSModulesSdkConfigurable does not inherit PyActiveSdkModuleConfigurable.

GitOrigin-RevId: c8d546883afdc7958cc980a335a3981d9f05faf3
This commit is contained in:
Semyon Proshev
2021-08-11 10:05:53 +00:00
committed by intellij-monorepo-bot
parent 20f4d39511
commit 21f09b3b3d
3 changed files with 9 additions and 15 deletions
@@ -24,7 +24,7 @@
bundle="messages.PyBundle"
key="configurable.PyActiveSdkModuleConfigurable.python.interpreter.display.name"
instance="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable"
groupWeight="5"/>
groupWeight="5"/> <!-- id is used in InterpreterSettingsQuickFix.showPythonInterpreterSettings -->
<projectConfigurable groupId="project"
id="com.jetbrains.python.configuration.PyDependenciesConfigurable"
bundle="messages.PyBundle"
@@ -4,11 +4,12 @@
<xi:include href="/META-INF/python-community-plugin-core.xml" xpointer="xpointer(/idea-plugin/*)"/>
<extensions defaultExtensionNs="com.intellij">
<projectConfigurable groupId="build" groupWeight="118"
<projectConfigurable groupId="build"
id="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable"
bundle="messages.PyBundle"
key="configurable.PyActiveSdkModuleConfigurable.python.interpreter.display.name"
instance="com.jetbrains.python.minor.sdk.PyPluginSdkModuleConfigurable"/>
instance="com.jetbrains.python.minor.sdk.PyPluginSdkModuleConfigurable"
groupWeight="118"/> <!-- id is used in InterpreterSettingsQuickFix.showPythonInterpreterSettings -->
<facetType implementation="com.jetbrains.python.minor.facet.PythonFacetType"/>
</extensions>
@@ -8,13 +8,12 @@ import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.codeInspection.util.InspectionMessage;
import com.intellij.codeInspection.util.IntentionFamilyName;
import com.intellij.codeInspection.util.IntentionName;
import com.intellij.ide.actions.ShowSettingsUtilImpl;
import com.intellij.openapi.application.ex.ApplicationUtil;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.options.ConfigurableGroup;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil;
import com.intellij.openapi.options.ex.ConfigurableVisitor;
import com.intellij.openapi.progress.ProcessCanceledException;
@@ -35,7 +34,6 @@ import com.intellij.util.PlatformUtils;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.python.PyPsiBundle;
import com.jetbrains.python.PythonIdeLanguageCustomization;
import com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable;
import com.jetbrains.python.psi.LanguageLevel;
import com.jetbrains.python.psi.PyFile;
import com.jetbrains.python.sdk.*;
@@ -333,8 +331,10 @@ public final class PyInterpreterInspection extends PyInspection {
}
public static void showPythonInterpreterSettings(@NotNull Project project, @NotNull Module module) {
if (hasPythonSdkConfigurable(project)) {
ShowSettingsUtil.getInstance().showSettingsDialog(project, PyActiveSdkModuleConfigurable.class);
final var id = "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable";
final var group = ConfigurableExtensionPointUtil.getConfigurableGroup(project, true);
if (ConfigurableVisitor.findById(id, Collections.singletonList(group)) != null) {
ShowSettingsUtilImpl.showSettingsDialog(project, id, null);
return;
}
@@ -347,13 +347,6 @@ public final class PyInterpreterInspection extends PyInspection {
}
}
private static boolean hasPythonSdkConfigurable(@NotNull Project project) {
if (PlatformUtils.isPyCharm()) return true;
final List<ConfigurableGroup> groups = Collections.singletonList(ConfigurableExtensionPointUtil.getConfigurableGroup(project, true));
return ConfigurableVisitor.findByType(PyActiveSdkModuleConfigurable.class, groups) != null;
}
private static boolean justOneModuleInheritingSdk(@NotNull Project project, @NotNull Module module) {
return ProjectRootManager.getInstance(project).getProjectSdk() == null &&
ModuleRootManager.getInstance(module).isSdkInherited() &&