new HashMap<

This commit is contained in:
peter
2011-03-09 20:14:22 +01:00
parent 21c02a1e1b
commit 58235e314a
8 changed files with 71 additions and 1 deletions
@@ -102,6 +102,10 @@ class ConstructorInsertHandler implements InsertHandler<LookupElementDecorator<L
LookupItem delegate,
final PsiClass psiClass,
final boolean forAnonymous) {
if (context.getCompletionChar() == '[') {
return false;
}
final PsiElement place = context.getFile().findElementAt(context.getStartOffset());
final PsiResolveHelper resolveHelper = JavaPsiFacade.getInstance(context.getProject()).getResolveHelper();
assert place != null;
@@ -114,7 +118,16 @@ class ConstructorInsertHandler implements InsertHandler<LookupElementDecorator<L
}
}
int identifierEnd = context.getTailOffset();
JavaCompletionUtil.insertParentheses(context, delegate, false, hasParams, forAnonymous);
if (context.getCompletionChar() == '<') {
context.getDocument().insertString(identifierEnd, "<>");
context.setAddCompletionChar(false);
context.getEditor().getCaretModel().moveToOffset(identifierEnd + 1);
}
return hasParams;
}
@@ -0,0 +1,9 @@
class Zooooooo<T> { }
class Zooooooz<T> { }
class Bar {
{
new Zoooo<caret>
}
}
@@ -0,0 +1,9 @@
class Zooooooo<T> { }
class Zooooooz<T> { }
class Bar {
{
new Zooooooo<<caret>>()
}
}
@@ -0,0 +1,9 @@
class Zooooooo<T> { }
class Zooooooz<T> { }
class Bar {
{
new Zoooo<caret>
}
}
@@ -0,0 +1,9 @@
class Zooooooo<T> { }
class Zooooooz<T> { }
class Bar {
{
new Zooooooo[<caret>]
}
}
@@ -900,6 +900,9 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
public void testStaticInnerExtendingOuter() throws Exception { doTest() }
public void testNewClassAngleBracket() throws Exception { doTest('<') }
public void testNewClassSquareBracket() throws Exception { doTest('[') }
public void testNoMethodsInParameterType() {
configure()
assertOrderedEquals myFixture.lookupElementStrings, "final", "float"
@@ -76,8 +76,16 @@ public class GroovyClassNameInsertHandler implements InsertHandler<JavaPsiClassR
}
AllClassesGetter.TRY_SHORTENING.handleInsert(context, item);
if (parens) {
if (parens && context.getCompletionChar() != '[') {
int identifierEnd = context.getTailOffset();
JavaCompletionUtil.insertParentheses(context, item, false, GroovyCompletionUtil.hasConstructorParameters(psiClass));
if (context.getCompletionChar() == '<') {
context.getDocument().insertString(identifierEnd, "<>");
context.setAddCompletionChar(false);
context.getEditor().getCaretModel().moveToOffset(identifierEnd + 1);
}
}
}
@@ -617,6 +617,11 @@ return foo()"""
checkCompletion("Abcd<caret>", '[', "AbcdClass[<caret>]")
}
public void testFinishClassNameWithSquareBracketAfterNew() {
myFixture.addClass("class AbcdClass {}; class AbcdeClass {}")
checkCompletion("new Abcd<caret>", '[', "new AbcdClass[<caret>]")
}
public void testFinishMethodNameWithSquareBracket() {
myFixture.addClass("""class AbcdClass {
static int[] foo(int x){}
@@ -634,4 +639,9 @@ return foo()"""
checkCompletion("Abcd<caret>", '<', "AbcdClass<<caret>>")
}
public void testFinishClassNameWithLtAfterNew() {
myFixture.addClass("class AbcdClass<T> {}; class AbcdeClass {}")
checkCompletion("new Abcd<caret>", '<', "new AbcdClass<<caret>>()")
}
}