diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt index 4cee9c9aa8d4..31ebecc0b47d 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt @@ -1,12 +1,9 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.jetbrains.python.codeInsight.completion -import com.intellij.codeInsight.AutoPopupController import com.intellij.codeInsight.completion.CompletionContributor import com.intellij.codeInsight.completion.CompletionParameters import com.intellij.codeInsight.completion.CompletionResultSet -import com.intellij.codeInsight.completion.InsertHandler -import com.intellij.codeInsight.lookup.LookupElement import com.intellij.codeInsight.lookup.LookupElementBuilder import com.intellij.psi.MultiplePsiFilesPerDocumentFileViewProvider import com.intellij.psi.PsiDirectory @@ -16,7 +13,9 @@ import com.intellij.psi.util.QualifiedName import com.intellij.util.ProcessingContext import com.jetbrains.python.PyNames import com.jetbrains.python.inspections.unresolvedReference.PyPackageAliasesProvider -import com.jetbrains.python.psi.* +import com.jetbrains.python.psi.PyFile +import com.jetbrains.python.psi.PyImportStatementBase +import com.jetbrains.python.psi.PyReferenceExpression import com.jetbrains.python.psi.resolve.fromFoothold import com.jetbrains.python.psi.resolve.resolveQualifiedName import com.jetbrains.python.psi.types.PyModuleType @@ -45,26 +44,10 @@ class PyModuleNameCompletionContributor : CompletionContributor() { } fun doFillCompletionVariants(parameters: CompletionParameters, result: CompletionResultSet) { - val autoPopupController = AutoPopupController.getInstance(parameters.originalFile.project) - val packageInsertHandler = InsertHandler { context, _ -> - // add dot for PyUnresolvedModuleAttributeCompletionContributor to work - context.document.insertString(context.tailOffset, ".") - context.editor.caretModel.moveToOffset(context.tailOffset) - autoPopupController.autoPopupMemberLookup(context.editor, null) - } - val commonAlias = PyPackageAliasesProvider.commonImportAliases[result.prefixMatcher.prefix] - if (commonAlias != null) { - result.addElement( - LookupElementBuilder.create(result.prefixMatcher.prefix).withTypeText(commonAlias).withInsertHandler(packageInsertHandler)) - return - } getCompletionVariants(parameters.position.parent, parameters.originalFile).asSequence() .filterIsInstance() .filter { result.prefixMatcher.prefixMatches(it.lookupString) } .filterNot { it.lookupString.startsWith('_') } - .map { - it.withInsertHandler(packageInsertHandler) - } .forEach { result.addElement(it) } } diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyUnresolvedModuleAttributeCompletionContributor.kt b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyUnresolvedModuleAttributeCompletionContributor.kt index 38da028fea46..3716644e960a 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyUnresolvedModuleAttributeCompletionContributor.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyUnresolvedModuleAttributeCompletionContributor.kt @@ -110,8 +110,8 @@ class PyUnresolvedModuleAttributeCompletionContributor : CompletionContributor() ProgressManager.checkCanceled() val qualifiedName = qualifier.append(attribute) - val commonAlias = PyPackageAliasesProvider.commonImportAliases[qualifier.toString()] - val packageName = if (commonAlias != null) QualifiedName.fromDottedString(commonAlias) else qualifier + val packageNameForAlias = PyPackageAliasesProvider.commonImportAliases[qualifier.toString()] + val packageName = if (packageNameForAlias != null) QualifiedName.fromDottedString(packageNameForAlias) else qualifier val resultMatchingCompleteReference = result.withPrefixMatcher(QualifiedNameMatcher(qualifiedName)) PyModuleNameIndex.find(packageName.lastComponent!!, project, true).asSequence() .filter { QualifiedNameFinder.findShortestImportableQName(it) == packageName } @@ -126,7 +126,7 @@ class PyUnresolvedModuleAttributeCompletionContributor : CompletionContributor() LookupElementBuilder.create(it, qualifiedNameToSuggest) .withIcon(it.getIcon(0)) .withInsertHandler(getInsertHandler(it, parameters.position)) - .withTypeText(commonAlias) + .withTypeText(packageNameForAlias) } else null } @@ -138,7 +138,7 @@ class PyUnresolvedModuleAttributeCompletionContributor : CompletionContributor() } val scope = PySearchUtilBase.defaultSuggestionScope(parameters.originalFile) PyQualifiedNameCompletionMatcher.processMatchingExportedNames( - packageName.append(attribute), if (commonAlias != null) qualifiedName else null, parameters.originalFile, scope, + packageName.append(attribute), if (packageNameForAlias != null) qualifiedName else null, parameters.originalFile, scope, Processor { ProgressManager.checkCanceled() if (suggestedQualifiedNames.add(it.qualifiedName.toString())) { diff --git a/python/testData/completion/notImportedPackageName/CompletionForAlias/main.after.py b/python/testData/completion/notImportedPackageName/CompletionForAlias/main.after.py deleted file mode 100644 index 8c605af44ebe..000000000000 --- a/python/testData/completion/notImportedPackageName/CompletionForAlias/main.after.py +++ /dev/null @@ -1 +0,0 @@ -plt. \ No newline at end of file diff --git a/python/testData/completion/notImportedPackageName/CompletionForAlias/main.py b/python/testData/completion/notImportedPackageName/CompletionForAlias/main.py deleted file mode 100644 index 5ff56b8f9ce2..000000000000 --- a/python/testData/completion/notImportedPackageName/CompletionForAlias/main.py +++ /dev/null @@ -1 +0,0 @@ -plt \ No newline at end of file diff --git a/python/testData/completion/notImportedPackageName/CompletionForAlias/matplotlib/pyplot/__init__.py b/python/testData/completion/notImportedPackageName/CompletionForAlias/matplotlib/pyplot/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/python/testData/completion/notImportedPackageName/DotAfterPackageName/foobar/__init__.py b/python/testData/completion/notImportedPackageName/DotAfterPackageName/foobar/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/python/testData/completion/notImportedPackageName/DotAfterPackageName/main.after.py b/python/testData/completion/notImportedPackageName/DotAfterPackageName/main.after.py deleted file mode 100644 index 0ba925a223c5..000000000000 --- a/python/testData/completion/notImportedPackageName/DotAfterPackageName/main.after.py +++ /dev/null @@ -1 +0,0 @@ -foobar. \ No newline at end of file diff --git a/python/testData/completion/notImportedPackageName/CompletionForAlias/matplotlib/__init__.py b/python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/foobar/__init__.py similarity index 100% rename from python/testData/completion/notImportedPackageName/CompletionForAlias/matplotlib/__init__.py rename to python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/foobar/__init__.py diff --git a/python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/main.after.py b/python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/main.after.py new file mode 100644 index 000000000000..f6ea04951876 --- /dev/null +++ b/python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/main.after.py @@ -0,0 +1 @@ +foobar \ No newline at end of file diff --git a/python/testData/completion/notImportedPackageName/DotAfterPackageName/main.py b/python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/main.py similarity index 100% rename from python/testData/completion/notImportedPackageName/DotAfterPackageName/main.py rename to python/testData/completion/notImportedPackageName/PackageNameBasicCompletion/main.py diff --git a/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java b/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java index 50ac56a3204a..ed59987d7687 100644 --- a/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java @@ -4,15 +4,7 @@ package com.jetbrains.python; import com.jetbrains.python.fixtures.PyTestCase; public class PyNotImportedPackageNameCompletionTest extends PyTestCase { - public void testDotAfterPackageName() { - final String testName = getTestName(false); - myFixture.copyDirectoryToProject(testName, ""); - myFixture.configureByFile("main.py"); - myFixture.completeBasic(); - myFixture.checkResultByFile(testName + "/main.after.py"); - } - - public void testCompletionForAlias() { + public void testPackageNameBasicCompletion() { final String testName = getTestName(false); myFixture.copyDirectoryToProject(testName, ""); myFixture.configureByFile("main.py");