IDEA-107779 Live templates perform unnecessary wrong shortening for inner class names

This commit is contained in:
peter
2013-06-12 09:11:21 +02:00
parent 2b5e4fad1b
commit 26f6c3b480
2 changed files with 21 additions and 1 deletions
@@ -11,6 +11,7 @@ import com.intellij.codeInsight.lookup.impl.LookupImpl
import com.intellij.codeInsight.lookup.impl.LookupManagerImpl
import com.intellij.codeInsight.template.macro.ClassNameCompleteMacro
import com.intellij.codeInsight.template.macro.CompleteMacro
import com.intellij.codeInsight.template.macro.MethodReturnTypeMacro
import com.intellij.openapi.application.AccessToken
import com.intellij.openapi.application.WriteAction
import com.intellij.openapi.command.CommandProcessor
@@ -583,4 +584,23 @@ class Outer {
assert myFixture.editor.document.text.contains("Outer.Inner.foo")
}
public void "test do not strip type argument containing class"() {
myFixture.configureByText 'a.java', '''
import java.util.*;
class Foo {
List<Map.Entry<String, Integer>> foo() {
<caret>
}
}
'''
final TemplateManager manager = TemplateManager.getInstance(getProject());
final Template template = manager.createTemplate("result", "user", '$T$ result;');
template.addVariable('T', new MacroCallNode(new MethodReturnTypeMacro()), new EmptyNode(), false)
template.toReformat = true
manager.startTemplate(getEditor(), template);
assert myFixture.editor.document.text.contains('List<Map.Entry<String, Integer>> result;')
}
}