From 55f45e573276ef9353eacbfa64a0f68e297dedf0 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 24 May 2011 14:59:05 +0400 Subject: [PATCH] cut .py extension from file completion variants (PY-3595) --- .../jetbrains/python/psi/resolve/VariantsProcessor.java | 9 ++++++--- python/testData/completion/py3595/moduleX.after.py | 4 +++- python/testData/completion/py3595/moduleX.py | 4 +++- python/testData/completion/py3595/smname/moduleY.py | 2 +- .../com/jetbrains/python/PythonCompletionTest.java | 5 +++-- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java b/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java index 74a209b6c0d7..3afc14d23d2e 100644 --- a/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java +++ b/python/src/com/jetbrains/python/psi/resolve/VariantsProcessor.java @@ -4,6 +4,7 @@ import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementBuilder; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Key; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiNamedElement; @@ -110,9 +111,11 @@ public class VariantsProcessor implements PsiScopeProcessor { // TODO: refactor to look saner; much code duplication if (element instanceof PsiNamedElement) { final PsiNamedElement psiNamedElement = (PsiNamedElement)element; - final String name = psiNamedElement.getName(); - if (nameIsAcceptable(name)) { - myVariants.put(name, setupItem(LookupElementBuilder.create(psiNamedElement).setIcon(element.getIcon(0)))); + final String name = psiNamedElement instanceof PyFile + ? FileUtil.getNameWithoutExtension(((PyFile) psiNamedElement).getName()) + : psiNamedElement.getName(); + if (name != null && nameIsAcceptable(name)) { + myVariants.put(name, setupItem(LookupElementBuilder.create(psiNamedElement, name).setIcon(element.getIcon(0)))); } } else if (element instanceof PyReferenceExpression) { diff --git a/python/testData/completion/py3595/moduleX.after.py b/python/testData/completion/py3595/moduleX.after.py index b6678205a19d..0584c36e5990 100644 --- a/python/testData/completion/py3595/moduleX.after.py +++ b/python/testData/completion/py3595/moduleX.after.py @@ -1 +1,3 @@ -from smname.moduleY import moduleZ +import smname +import smname.moduleY +smname.moduleY.moduleZ diff --git a/python/testData/completion/py3595/moduleX.py b/python/testData/completion/py3595/moduleX.py index 4a2cfc9c5db5..5a7ffc84ecb9 100644 --- a/python/testData/completion/py3595/moduleX.py +++ b/python/testData/completion/py3595/moduleX.py @@ -1 +1,3 @@ -from smname.moduleY import mo +import smname +import smname.moduleY +smname.moduleY.mod diff --git a/python/testData/completion/py3595/smname/moduleY.py b/python/testData/completion/py3595/smname/moduleY.py index dbfd84aa4f6c..366bdd5d90e2 100644 --- a/python/testData/completion/py3595/smname/moduleY.py +++ b/python/testData/completion/py3595/smname/moduleY.py @@ -1 +1 @@ -from . import moduleZ +from smname import moduleZ diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index 6ce085d622b4..d61cfcf515f9 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -368,9 +368,10 @@ public class PythonCompletionTest extends PyLightFixtureTestCase { } public void testFromImportedModuleCompletion() { // PY-3595 - myFixture.copyDirectoryToProject("completion/py3595", "py3595"); - myFixture.configureByFile("py3595/moduleX.py"); + myFixture.copyDirectoryToProject("completion/py3595", ""); + myFixture.configureByFile("moduleX.py"); myFixture.completeBasic(); + myFixture.getLookupElementStrings(); myFixture.checkResultByFile("completion/py3595/moduleX.after.py"); }