IDEA-114699 Live template without description shows "NULL"

This commit is contained in:
peter
2013-10-10 17:49:27 +02:00
parent 56e560288a
commit 17dae781b6
2 changed files with 33 additions and 1 deletions
@@ -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;
{ <caret> }
}
'''
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] '
}
}
@@ -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());