diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaNoVariantsDelegator.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaNoVariantsDelegator.java index a70318059c7c..a52716124bf7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaNoVariantsDelegator.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaNoVariantsDelegator.java @@ -18,11 +18,9 @@ package com.intellij.codeInsight.completion; import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; import com.intellij.codeInsight.lookup.AutoCompletionPolicy; import com.intellij.codeInsight.lookup.LookupElement; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiJavaCodeReferenceElement; -import com.intellij.psi.PsiReferenceExpression; -import com.intellij.psi.PsiType; +import com.intellij.psi.*; import com.intellij.psi.filters.ElementFilter; +import com.intellij.psi.search.PsiShortNamesCache; import com.intellij.util.CollectConsumer; import com.intellij.util.Consumer; @@ -92,6 +90,11 @@ public class JavaNoVariantsDelegator extends NoVariantsDelegator { PrefixMatcher qMatcher = new CamelHumpMatcher(referenceName); Set plainVariants = JavaSmartCompletionContributor.completeReference(qualifier, qualifier, filter, true, true, parameters, qMatcher); + + for (PsiClass aClass : PsiShortNamesCache.getInstance(qualifier.getProject()).getClassesByName(referenceName, qualifier.getResolveScope())) { + plainVariants.add(JavaClassNameCompletionContributor.createClassLookupItem(aClass, true)); + } + if (!plainVariants.isEmpty()) { return plainVariants; } diff --git a/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java b/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java new file mode 100644 index 000000000000..d244868f05f6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java @@ -0,0 +1,5 @@ +class Foo { + { + Assert. + } +} \ No newline at end of file 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 47542b0b1266..1246b02cb2bc 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy @@ -989,7 +989,7 @@ class Foo { myFixture.configureByText "a.java", "class Foo {{ }}" type 'Arrays.' myFixture.checkResult "class Foo {{ Arrays. }}" - assert !lookup + assert 'Arrays.asList' in myFixture.lookupElementStrings } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index eeb6589257e7..d5e1599cb3d8 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -1290,4 +1290,11 @@ public class ListUtils { checkResult() } + public void testAllAssertClassesMethods() { + myFixture.addClass 'package foo; public class Assert { public static void foo() {} }' + myFixture.addClass 'package bar; public class Assert { public static void bar() {} }' + configure() + assert myFixture.lookupElementStrings == ['Assert.bar', 'Assert.foo'] + } + } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java index 55a8f20a93e5..cb283209ff19 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java @@ -23,6 +23,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiType; +import com.intellij.psi.search.PsiShortNamesCache; import com.intellij.util.Consumer; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.GrReferenceElement; @@ -135,6 +136,11 @@ public class GroovyNoVariantsDelegator extends NoVariantsDelegator { } } + for (PsiClass aClass : PsiShortNamesCache.getInstance(qualifier.getProject()).getClassesByName(referenceName, qualifier.getResolveScope())) { + variants.add(GroovyCompletionUtil.createClassLookupItem(aClass)); + } + + if (variants.isEmpty()) { GroovyCompletionContributor.addAllClasses(parameters, new Consumer() { @Override