diff --git a/python/src/com/jetbrains/python/codeInsight/imports/AutoImportQuickFix.java b/python/src/com/jetbrains/python/codeInsight/imports/AutoImportQuickFix.java index ef8606748e9f..93db0b055114 100644 --- a/python/src/com/jetbrains/python/codeInsight/imports/AutoImportQuickFix.java +++ b/python/src/com/jetbrains/python/codeInsight/imports/AutoImportQuickFix.java @@ -8,6 +8,8 @@ import com.intellij.codeInspection.LocalQuickFix; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ProjectFileIndex; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileSystemItem; @@ -170,4 +172,15 @@ public class AutoImportQuickFix implements LocalQuickFix, HighPriorityAction { final String text = myReference.getElement().getText(); return myReference.getRangeInElement().substring(text); // text of the part we're working with } + + public boolean hasProjectImports() { + ProjectFileIndex fileIndex = ProjectFileIndex.SERVICE.getInstance(myNode.getProject()); + for (ImportCandidateHolder anImport : myImports) { + VirtualFile file = anImport.getFile().getVirtualFile(); + if (file != null && fileIndex.isInContent(file)) { + return true; + } + } + return false; + } } diff --git a/python/src/com/jetbrains/python/codeInsight/imports/PythonReferenceImporter.java b/python/src/com/jetbrains/python/codeInsight/imports/PythonReferenceImporter.java index ff45a27fb12a..3efc3057dde0 100644 --- a/python/src/com/jetbrains/python/codeInsight/imports/PythonReferenceImporter.java +++ b/python/src/com/jetbrains/python/codeInsight/imports/PythonReferenceImporter.java @@ -14,6 +14,7 @@ import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.registry.Registry; import com.intellij.psi.*; import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; @@ -110,7 +111,7 @@ public class PythonReferenceImporter implements ReferenceImporter { Set seenFileNames = new HashSet(); // true import names PsiFile existingImportFile = addCandidatesFromExistingImports(node, refText, fix, seenFileNames); - if (fix.getCandidatesCount() == 0) { + if (fix.getCandidatesCount() == 0 || fix.hasProjectImports() || Registry.is("python.import.always.ask")) { // maybe some unimported file has it, too ProgressManager.checkCanceled(); // before expensive index searches addSymbolImportCandidates(node, refText, fix, seenFileNames, existingImportFile);