mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
DS-3787 Missing "No SDK" panel for Python and Jupyter files
PyInterpreterInspection -> PyEditorNotificationProvider GitOrigin-RevId: d733de44d45b1c012bd16187416978930daf6277
This commit is contained in:
committed by
intellij-monorepo-bot
parent
efb28f98cc
commit
0bef9bdf84
@@ -15,7 +15,7 @@ import com.intellij.util.ui.FormBuilder
|
||||
import com.jetbrains.python.PyBundle
|
||||
import com.jetbrains.python.PySdkBundle
|
||||
import com.jetbrains.python.configuration.PyConfigurableInterpreterList
|
||||
import com.jetbrains.python.inspections.PyInterpreterInspection
|
||||
import com.jetbrains.python.sdk.PyEditorNotificationProvider
|
||||
import com.jetbrains.python.newProject.steps.ProjectSpecificSettingsStep
|
||||
import com.jetbrains.python.sdk.*
|
||||
import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox
|
||||
@@ -152,7 +152,7 @@ abstract class PythonBasedLangSupport : AbstractLangSupport() {
|
||||
}
|
||||
val configureCallbackId = LearningUiManager.addCallback {
|
||||
val module = project.modules.singleOrNull() ?: return@addCallback
|
||||
PyInterpreterInspection.InterpreterSettingsQuickFix.showPythonInterpreterSettings(project, module)
|
||||
PyEditorNotificationProvider.InterpreterSettingsQuickFix.showPythonInterpreterSettings(project, module)
|
||||
}
|
||||
if (useUserProjects || isLearningProject(project, this@PythonBasedLangSupport)) {
|
||||
showWarning(PythonLessonsBundle.message("no.interpreter.in.learning.project", configureCallbackId),
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.openapi.util.UserDataHolderBase
|
||||
import com.intellij.ui.dsl.builder.Panel
|
||||
import com.jetbrains.python.configuration.PyConfigurableInterpreterList
|
||||
import com.jetbrains.python.inspections.PyInterpreterInspection
|
||||
import com.jetbrains.python.sdk.PyEditorNotificationProvider
|
||||
import com.jetbrains.python.newProject.steps.ProjectSpecificSettingsStep
|
||||
import com.jetbrains.python.sdk.findBaseSdks
|
||||
import com.jetbrains.python.sdk.flavors.PythonSdkFlavor
|
||||
@@ -33,7 +33,7 @@ object PythonLessonsUtil {
|
||||
fun LessonContext.showWarningIfPython3NotFound() {
|
||||
task {
|
||||
val callbackId = LearningUiManager.addCallback {
|
||||
PyInterpreterInspection.InterpreterSettingsQuickFix.showPythonInterpreterSettings(project, project.modules.first())
|
||||
PyEditorNotificationProvider.InterpreterSettingsQuickFix.showPythonInterpreterSettings(project, project.modules.first())
|
||||
}
|
||||
stateCheck { isPython3Installed(project) }
|
||||
showWarning(PythonLessonsBundle.message("python.3.required.warning.message", callbackId)) {
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
|
||||
<projectListeners>
|
||||
<listener
|
||||
class="com.jetbrains.python.inspections.PyInterpreterInspection$CacheCleaner"
|
||||
class="com.jetbrains.python.sdk.PyEditorNotificationProvider$CacheCleaner"
|
||||
topic="com.intellij.workspaceModel.ide.WorkspaceModelChangeListener"/>
|
||||
<listener
|
||||
class="com.jetbrains.python.inspections.PyInterpreterInspection$CacheCleaner"
|
||||
class="com.jetbrains.python.sdk.PyEditorNotificationProvider$CacheCleaner"
|
||||
topic="com.intellij.openapi.projectRoots.ProjectJdkTable$Listener"/>
|
||||
</projectListeners>
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
<liveTemplateMacro implementation="com.jetbrains.python.codeInsight.liveTemplates.PyFunctionNameMacro"/>
|
||||
<liveTemplateMacro implementation="com.jetbrains.python.codeInsight.liveTemplates.PyIterableVariableMacro"/>
|
||||
|
||||
<editorNotificationProvider implementation="com.jetbrains.python.inspections.PyInterpreterInspection"/>
|
||||
<editorNotificationProvider implementation="com.jetbrains.python.sdk.PyEditorNotificationProvider"/>
|
||||
|
||||
<codeInsight.overrideMethod language="Python" implementationClass="com.jetbrains.python.codeInsight.override.PyOverrideMethodsHandler"/>
|
||||
<codeInsight.implementMethod language="Python" implementationClass="com.jetbrains.python.codeInsight.implement.PyImplementMethodsHandler"/>
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.intellij.psi.PsiElementVisitor
|
||||
import com.jetbrains.python.PyPsiBundle
|
||||
import com.jetbrains.python.inspections.PyInspection
|
||||
import com.jetbrains.python.inspections.PyInspectionVisitor
|
||||
import com.jetbrains.python.inspections.PyInterpreterInspection
|
||||
import com.jetbrains.python.sdk.PyEditorNotificationProvider
|
||||
import com.jetbrains.python.packaging.PyPackage
|
||||
import com.jetbrains.python.packaging.PyPackageManager
|
||||
import com.jetbrains.python.packaging.requirement.PyRequirementRelation
|
||||
@@ -97,7 +97,7 @@ class PyStubPackagesCompatibilityInspection : PyInspection() {
|
||||
runtimePkgName, specsToString)
|
||||
registerProblem(node,
|
||||
message,
|
||||
PyInterpreterInspection.InterpreterSettingsQuickFix(module),
|
||||
PyEditorNotificationProvider.InterpreterSettingsQuickFix(module),
|
||||
createIgnoreStubPackageQuickFix(stubPkgName, ignoredStubPackages))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.jetbrains.python.inspections.PyInterpreterInspection.InterpreterSettingsQuickFix.showPythonInterpreterSettings;
|
||||
import static com.jetbrains.python.sdk.PyEditorNotificationProvider.InterpreterSettingsQuickFix.showPythonInterpreterSettings;
|
||||
|
||||
|
||||
public class PyDebugRunner implements ProgramRunner<RunnerSettings> {
|
||||
|
||||
@@ -30,9 +30,9 @@ public class PyDocstringVisitorFilter implements PythonVisitorFilter {
|
||||
visitorClass == PyUnboundLocalVariableInspection.class || visitorClass == PyUnnecessaryBackslashInspection.class ||
|
||||
visitorClass == PyByteLiteralInspection.class || visitorClass == PyNonAsciiCharInspection.class ||
|
||||
visitorClass == PyPackageRequirementsInspection.class || visitorClass == PyMandatoryEncodingInspection.class ||
|
||||
visitorClass == PyInterpreterInspection.class || visitorClass == PyDocstringTypesInspection.class ||
|
||||
visitorClass == PySingleQuotedDocstringInspection.class || visitorClass == PyClassHasNoInitInspection.class ||
|
||||
visitorClass == PyStatementEffectInspection.class || visitorClass == PyPep8Inspection.class) {
|
||||
visitorClass == PyDocstringTypesInspection.class || visitorClass == PySingleQuotedDocstringInspection.class ||
|
||||
visitorClass == PyClassHasNoInitInspection.class || visitorClass == PyStatementEffectInspection.class ||
|
||||
visitorClass == PyPep8Inspection.class) {
|
||||
return false;
|
||||
}
|
||||
//annotators
|
||||
|
||||
@@ -73,10 +73,10 @@ import java.util.function.Function;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class PyInterpreterInspection implements DumbAware, EditorNotificationProvider {
|
||||
public final class PyEditorNotificationProvider implements DumbAware, EditorNotificationProvider {
|
||||
|
||||
@NotNull
|
||||
private static final Logger LOGGER = Logger.getInstance(PyInterpreterInspection.class);
|
||||
private static final Logger LOGGER = Logger.getInstance(PyEditorNotificationProvider.class);
|
||||
|
||||
@NotNull
|
||||
private static final Pattern NAME = Pattern.compile("Python (?<version>\\d\\.\\d+)\\s*(\\((?<name>.+?)\\))?");
|
||||
@@ -297,7 +297,7 @@ public final class PyInterpreterInspection implements DumbAware, EditorNotificat
|
||||
return findAssociatedViaRootNameEnv(
|
||||
associatedName,
|
||||
PySdkExtKt.detectVirtualEnvs(module, existingSdks, context),
|
||||
PyInterpreterInspection::getVirtualEnvRootName
|
||||
PyEditorNotificationProvider::getVirtualEnvRootName
|
||||
);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.jetbrains.python.packaging.ui.PyChooseRequirementsDialog;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.PyPsiUtils;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
import com.jetbrains.python.sdk.PyEditorNotificationProvider;
|
||||
import com.jetbrains.python.sdk.PySdkExtKt;
|
||||
import com.jetbrains.python.sdk.PySdkProvider;
|
||||
import com.jetbrains.python.sdk.PythonSdkUtil;
|
||||
@@ -352,7 +353,7 @@ public class PyPackageRequirementsInspection extends PyInspection {
|
||||
final int answer = askToConfigureInterpreter(project, sdk);
|
||||
switch (answer) {
|
||||
case Messages.YES:
|
||||
new PyInterpreterInspection.ConfigureInterpreterFix().applyFix(project, descriptor);
|
||||
new PyEditorNotificationProvider.ConfigureInterpreterFix().applyFix(project, descriptor);
|
||||
return true;
|
||||
case Messages.CANCEL:
|
||||
case -1:
|
||||
|
||||
@@ -17,7 +17,6 @@ public class PyTypeAnnotationVisitorFilter implements PythonVisitorFilter {
|
||||
visitorClass == PyByteLiteralInspection.class ||
|
||||
visitorClass == PyMandatoryEncodingInspection.class ||
|
||||
visitorClass == PyNonAsciiCharInspection.class ||
|
||||
visitorClass == PyInterpreterInspection.class ||
|
||||
visitorClass == PyPep8Inspection.class ||
|
||||
visitorClass == PyCompatibilityInspection.class ||
|
||||
visitorClass == PyPackageRequirementsInspection.class);
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.concurrency.AsyncPromise;
|
||||
import org.jetbrains.concurrency.Promise;
|
||||
|
||||
import static com.jetbrains.python.inspections.PyInterpreterInspection.InterpreterSettingsQuickFix.showPythonInterpreterSettings;
|
||||
import static com.jetbrains.python.sdk.PyEditorNotificationProvider.InterpreterSettingsQuickFix.showPythonInterpreterSettings;
|
||||
|
||||
public class PythonRunner extends AsyncProgramRunner<RunnerSettings> {
|
||||
@Override
|
||||
|
||||
@@ -18,7 +18,6 @@ import com.intellij.util.text.trimMiddle
|
||||
import com.intellij.util.ui.SwingHelper
|
||||
import com.jetbrains.python.PyBundle
|
||||
import com.jetbrains.python.configuration.PyConfigurableInterpreterList
|
||||
import com.jetbrains.python.inspections.PyInterpreterInspection
|
||||
import com.jetbrains.python.psi.LanguageLevel
|
||||
|
||||
class PySdkPopupFactory(val project: Project, val module: Module) {
|
||||
@@ -110,7 +109,7 @@ class PySdkPopupFactory(val project: Project, val module: Module) {
|
||||
|
||||
private inner class InterpreterSettingsAction : DumbAwareAction(PyBundle.messagePointer("python.sdk.popup.interpreter.settings")) {
|
||||
override fun actionPerformed(e: AnActionEvent) {
|
||||
PyInterpreterInspection.InterpreterSettingsQuickFix.showPythonInterpreterSettings(project, module)
|
||||
PyEditorNotificationProvider.InterpreterSettingsQuickFix.showPythonInterpreterSettings(project, module)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,6 @@ import com.intellij.ui.EditorNotificationsImpl
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.jetbrains.extensions.getSdk
|
||||
import com.jetbrains.python.fixtures.PyTestCase
|
||||
import com.jetbrains.python.inspections.PyInterpreterInspection
|
||||
import org.assertj.core.api.AssertionsForClassTypes
|
||||
|
||||
class PythonNoSdkEditorNotificationTest : PyTestCase() {
|
||||
@@ -45,7 +44,7 @@ class PythonNoSdkEditorNotificationTest : PyTestCase() {
|
||||
}
|
||||
}
|
||||
|
||||
fun getNotificationPanel(fileEditor: FileEditor) = EditorNotificationsImpl.getNotificationPanels(fileEditor)[PyInterpreterInspection::class.java]
|
||||
fun getNotificationPanel(fileEditor: FileEditor) = EditorNotificationsImpl.getNotificationPanels(fileEditor)[PyEditorNotificationProvider::class.java]
|
||||
|
||||
fun openFileInEditor(fileName: String, fileText: String, fixture: CodeInsightTestFixture) : FileEditor {
|
||||
UIUtil.dispatchAllInvocationEvents()
|
||||
|
||||
Reference in New Issue
Block a user