diff --git a/python/pluginResources/intellij.python.community.impl.xml b/python/pluginResources/intellij.python.community.impl.xml
index fcd71f3a22bb..e6b597eb88ff 100644
--- a/python/pluginResources/intellij.python.community.impl.xml
+++ b/python/pluginResources/intellij.python.community.impl.xml
@@ -620,6 +620,10 @@
key="python.sdk.installation.notification.group"/>
+
+
+
+
diff --git a/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.kt b/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.kt
index fe25700bf931..19aa3e47ee4f 100644
--- a/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.kt
+++ b/python/src/com/jetbrains/python/inspections/unresolvedReference/PyUnresolvedReferencesInspection.kt
@@ -16,6 +16,7 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.util.Key
+import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.profile.codeInspection.InspectionProjectProfileManager
import com.intellij.psi.PsiElement
@@ -118,6 +119,9 @@ class PyUnresolvedReferencesInspection : PyUnresolvedReferencesInspectionBase()
}
override fun getAddSourceRootQuickFix(node: PyElement): LocalQuickFix? {
+ if (!Registry.`is`("python.source.root.detection.enabled")) {
+ return null
+ }
val importStatementBase = PsiTreeUtil.getParentOfType(node, PyAstImportStatementBase::class.java, true)
?: return null
@@ -159,6 +163,9 @@ class PyUnresolvedReferencesInspection : PyUnresolvedReferencesInspectionBase()
val resolveResult: List = resolveInRoot(qname, containingDirectory, context)
if (!resolveResult.isEmpty()) {
project.getService(PySourceRootDetectionService::class.java).onSourceRootDetected(containingDirectory)
+ if (!Registry.`is`("python.source.root.suggest.quickfix") || !Registry.`is`("python.source.root.detection.enabled")) {
+ return null
+ }
return PyMarkDirectoryAsSourceRootQuickFix(project, containingDirectory)
}
}
diff --git a/python/src/com/jetbrains/python/module/PySourceRootDetectedNotificationPanel.kt b/python/src/com/jetbrains/python/module/PySourceRootDetectedNotificationPanel.kt
index b02802a25d3e..d9e925549f71 100644
--- a/python/src/com/jetbrains/python/module/PySourceRootDetectedNotificationPanel.kt
+++ b/python/src/com/jetbrains/python/module/PySourceRootDetectedNotificationPanel.kt
@@ -4,6 +4,7 @@ package com.jetbrains.python.module
import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.fileEditor.impl.text.TextEditorImpl
import com.intellij.openapi.project.Project
+import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.ui.EditorNotificationPanel
import com.intellij.ui.EditorNotificationProvider
@@ -14,10 +15,16 @@ import java.util.function.Function
import javax.swing.JComponent
internal class PySourceRootDetectedNotificationPanel : EditorNotificationProvider {
- override fun collectNotificationData(project: Project, file: VirtualFile): Function {
+ override fun collectNotificationData(project: Project, file: VirtualFile): Function? {
+ val isEnabled = Registry.`is`("python.source.root.suggest.notification") && Registry.`is`("python.source.root.detection.enabled")
+ if (!isEnabled) {
+ return null
+ }
+ if (file.fileType != PythonFileType.INSTANCE) {
+ return null
+ }
return Function { editor ->
when {
- file.fileType != PythonFileType.INSTANCE -> return@Function null
editor !is TextEditorImpl -> return@Function null
}
val pySourceRootDetectionService = project.getService(PySourceRootDetectionService::class.java)