From 1da11d0a359a6b0d41bc79c3fe07da305e0b69bb Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 4 Jun 2018 15:08:19 +0200 Subject: [PATCH] java completion: enable package suggestions inside type arguments (IDEA-193049) --- .../codeInsight/completion/JavaCompletionContributor.java | 7 ++----- .../completion/normal/PackageInMemberTypeGeneric.java | 3 +++ .../normal/PackageInMemberTypeGeneric_after.java | 3 +++ .../codeInsight/completion/NormalCompletionTest.groovy | 1 + 4 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric.java create mode 100644 java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric_after.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java index 3849178074df..4c6d7f5f15ac 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -116,7 +116,8 @@ public class JavaCompletionContributor extends CompletionContributor { if (JavaKeywordCompletion.isDeclarationStart(position) || JavaKeywordCompletion.isInsideParameterList(position) || - isInsideAnnotationName(position)) { + isInsideAnnotationName(position) || + psiElement().inside(PsiReferenceParameterList.class).accepts(position)) { return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.PACKAGE); } @@ -143,10 +144,6 @@ public class JavaCompletionContributor extends CompletionContributor { return ElementClassFilter.CLASS; } - if (psiElement().inside(PsiReferenceParameterList.class).accepts(position)) { - return ElementClassFilter.CLASS; - } - if (psiElement().inside(PsiAnnotationParameterList.class).accepts(position)) { return createAnnotationFilter(position); } diff --git a/java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric.java b/java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric.java new file mode 100644 index 000000000000..0b9e717176c8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric.java @@ -0,0 +1,3 @@ +class Foo { + List> foo() {} +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric_after.java b/java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric_after.java new file mode 100644 index 000000000000..88249be7c9b4 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PackageInMemberTypeGeneric_after.java @@ -0,0 +1,3 @@ +class Foo { + List> foo() {} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy index 656667b23842..5ed09357e4fa 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy @@ -1351,6 +1351,7 @@ class XInternalError {} void testNoClosingWhenChoosingWithParenBeforeIdentifier() { doTest '(' } void testPackageInMemberType() { doTest() } + void testPackageInMemberTypeGeneric() { doTest() } void testConstantInAnno() { doTest('\n') }