From 17dae781b6e7f101c7acfc6dfa3bc2b852d93828 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 10 Oct 2013 16:32:42 +0200 Subject: [PATCH] IDEA-114699 Live template without description shows "NULL" --- .../completion/JavaAutoPopupTest.groovy | 29 +++++++++++++++++++ .../impl/LiveTemplateLookupElement.java | 5 +++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy index 9253155111e2..02d987e592cc 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy @@ -23,8 +23,12 @@ import com.intellij.codeInsight.lookup.LookupElementPresentation import com.intellij.codeInsight.lookup.LookupManager import com.intellij.codeInsight.lookup.PsiTypeLookupItem import com.intellij.codeInsight.lookup.impl.LookupImpl +import com.intellij.codeInsight.template.JavaCodeContextType +import com.intellij.codeInsight.template.LiveTemplateTest import com.intellij.codeInsight.template.Template +import com.intellij.codeInsight.template.TemplateContextType import com.intellij.codeInsight.template.TemplateManager +import com.intellij.codeInsight.template.impl.TemplateImpl import com.intellij.codeInsight.template.impl.TemplateManagerImpl import com.intellij.ide.DataManager import com.intellij.ide.ui.UISettings @@ -49,6 +53,7 @@ import com.intellij.psi.PsiFile import com.intellij.psi.PsiJavaFile import com.intellij.psi.statistics.StatisticsManager import com.intellij.psi.statistics.impl.StatisticsManagerImpl +import com.intellij.util.containers.ContainerUtil /** * @author peter */ @@ -1520,4 +1525,28 @@ class X extends Foo { assert lookup } + public void "test live template without description"() { + final TemplateManager manager = TemplateManager.getInstance(getProject()); + final Template template = manager.createTemplate("tpl", "user", null); + final JavaCodeContextType contextType = + ContainerUtil.findInstance(TemplateContextType.EP_NAME.getExtensions(), JavaCodeContextType.Statement); + ((TemplateImpl)template).getTemplateContext().setEnabled(contextType, true); + LiveTemplateTest.addTemplate(template, testRootDisposable) + + myFixture.configureByText 'a.java', ''' +class Foo { + int tplMn; + + { } +} +''' + type 'tpl' + myFixture.assertPreferredCompletionItems 0, 'tplMn', 'tpl' + + LookupElementPresentation p = LookupElementPresentation.renderElement(myFixture.lookupElements[1]) + assert p.itemText == 'tpl' + assert !p.tailText + assert p.typeText == ' [Tab] ' + } + } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupElement.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupElement.java index 00e6c44d728d..e22a4114beed 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupElement.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupElement.java @@ -65,7 +65,10 @@ public class LiveTemplateLookupElement extends LookupElement { } presentation.setTypeText(" [" + KeyEvent.getKeyText(shortcutChar) + "] "); } - presentation.setTailText(" (" + myTemplate.getDescription() + ")", true); + String description = myTemplate.getDescription(); + if (description != null) { + presentation.setTailText(" (" + description + ")", true); + } } else { presentation.setTypeText(myTemplate.getDescription());