From b6e322ba950fd855db78e77660f11fcef9160ced Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 28 Jun 2011 20:37:24 +0200 Subject: [PATCH] colon is a tail type, not part of the lookup text (PY-2652) --- .../PySpecialMethodNamesCompletionContributor.java | 6 ++++-- .../codeInsight/PySuperMethodCompletionContributor.java | 6 +++++- python/testData/completion/duplicateColon.after.py | 2 ++ python/testData/completion/duplicateColon.py | 2 ++ .../testSrc/com/jetbrains/python/PythonCompletionTest.java | 4 ++++ 5 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 python/testData/completion/duplicateColon.after.py create mode 100644 python/testData/completion/duplicateColon.py diff --git a/python/src/com/jetbrains/python/codeInsight/PySpecialMethodNamesCompletionContributor.java b/python/src/com/jetbrains/python/codeInsight/PySpecialMethodNamesCompletionContributor.java index bc077b37d5dc..85ea59a2a9b8 100644 --- a/python/src/com/jetbrains/python/codeInsight/PySpecialMethodNamesCompletionContributor.java +++ b/python/src/com/jetbrains/python/codeInsight/PySpecialMethodNamesCompletionContributor.java @@ -1,8 +1,10 @@ package com.jetbrains.python.codeInsight; +import com.intellij.codeInsight.TailType; import com.intellij.codeInsight.completion.*; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementBuilder; +import com.intellij.codeInsight.lookup.TailTypeDecorator; import com.intellij.psi.filters.position.FilterPattern; import com.intellij.util.ProcessingContext; import com.jetbrains.python.PyIcons; @@ -53,12 +55,12 @@ public class PySpecialMethodNamesCompletionContributor extends PySeeingOriginalC for (Map.Entry entry: PyNames.BuiltinMethods.entrySet()) { LookupElementBuilder item; item = LookupElementBuilder - .create(entry.getKey() + entry.getValue().getSignature() + ":") + .create(entry.getKey() + entry.getValue().getSignature()) .setBold() .setTypeText("predefined") .setIcon(PyIcons.PREDEFINED) ; - result.addElement(item); + result.addElement(TailTypeDecorator.withTail(item, TailType.CASE_COLON)); } } } diff --git a/python/src/com/jetbrains/python/codeInsight/PySuperMethodCompletionContributor.java b/python/src/com/jetbrains/python/codeInsight/PySuperMethodCompletionContributor.java index 952ee451378b..a7a2c16aea82 100644 --- a/python/src/com/jetbrains/python/codeInsight/PySuperMethodCompletionContributor.java +++ b/python/src/com/jetbrains/python/codeInsight/PySuperMethodCompletionContributor.java @@ -1,7 +1,9 @@ package com.jetbrains.python.codeInsight; +import com.intellij.codeInsight.TailType; import com.intellij.codeInsight.completion.*; import com.intellij.codeInsight.lookup.LookupElementBuilder; +import com.intellij.codeInsight.lookup.TailTypeDecorator; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiWhiteSpace; import com.intellij.psi.util.PsiTreeUtil; @@ -44,7 +46,9 @@ public class PySuperMethodCompletionContributor extends CompletionContributor { for (PyClass ancestor : containingClass.iterateAncestorClasses()) { for (PyFunction superMethod : ancestor.getMethods()) { if (!seenNames.contains(superMethod.getName())) { - result.addElement(LookupElementBuilder.create(superMethod.getName() + superMethod.getParameterList().getText() + ":")); + String text = superMethod.getName() + superMethod.getParameterList().getText(); + LookupElementBuilder element = LookupElementBuilder.create(text); + result.addElement(TailTypeDecorator.withTail(element, TailType.CASE_COLON)); seenNames.add(superMethod.getName()); } } diff --git a/python/testData/completion/duplicateColon.after.py b/python/testData/completion/duplicateColon.after.py new file mode 100644 index 000000000000..2cb5adea6f8c --- /dev/null +++ b/python/testData/completion/duplicateColon.after.py @@ -0,0 +1,2 @@ +class C: + def __init__(self): \ No newline at end of file diff --git a/python/testData/completion/duplicateColon.py b/python/testData/completion/duplicateColon.py new file mode 100644 index 000000000000..da3de0fa6a1b --- /dev/null +++ b/python/testData/completion/duplicateColon.py @@ -0,0 +1,2 @@ +class C: + def __ini: \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index d76404e906f9..77fb149bddd4 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -388,4 +388,8 @@ public class PythonCompletionTest extends PyLightFixtureTestCase { public void testAlias() { // PY-3672 doTest(); } + + public void testDuplicateColon() { // PY-2652 + doTest(); + } }