mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
when no imported clas is found, show non-imported. on explicit completion only
This commit is contained in:
+1
-1
@@ -32,7 +32,7 @@ public abstract class AbstractBasicToClassNameDelegator extends CompletionContri
|
||||
|
||||
@Override
|
||||
public void fillCompletionVariants(final CompletionParameters parameters, final CompletionResultSet result) {
|
||||
if (parameters.getCompletionType() != CompletionType.BASIC) return;
|
||||
if (parameters.getCompletionType() != CompletionType.BASIC || parameters.getInvocationCount() == 0) return;
|
||||
|
||||
final PsiFile file = parameters.getOriginalFile();
|
||||
final PsiElement position = parameters.getPosition();
|
||||
|
||||
+8
-1
@@ -18,6 +18,7 @@ package com.intellij.codeInsight.completion;
|
||||
import com.intellij.codeInsight.lookup.AutoCompletionPolicy;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.lang.StdLanguages;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
|
||||
@@ -28,7 +29,13 @@ public class BasicToClassNameDelegator extends AbstractBasicToClassNameDelegator
|
||||
|
||||
@Override
|
||||
protected boolean isClassNameCompletionSupported(CompletionResultSet result, PsiFile file, PsiElement position) {
|
||||
return file.getLanguage().isKindOf(StdLanguages.XML) && JavaCompletionContributor.mayStartClassName(result, false);
|
||||
if (!JavaCompletionContributor.mayStartClassName(result, false)) return false;
|
||||
|
||||
if (file.getLanguage() == StdLanguages.JAVA) {
|
||||
return JavaCompletionContributor.isClassNamePossible(position);
|
||||
}
|
||||
|
||||
return file.getLanguage() instanceof XMLLanguage;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-4
@@ -235,7 +235,7 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
public static void addAllClasses(CompletionParameters parameters,
|
||||
final CompletionResultSet result,
|
||||
final InheritorsHolder inheritors) {
|
||||
if (!isClassNamePossible(parameters) || !mayStartClassName(result, parameters.isRelaxedMatching())) return;
|
||||
if (!isClassNamePossible(parameters.getPosition()) || !mayStartClassName(result, parameters.isRelaxedMatching())) return;
|
||||
|
||||
if (mayShowAllClasses(parameters)) {
|
||||
JavaClassNameCompletionContributor.addAllClasses(parameters, result, new Consumer<LookupElement>() {
|
||||
@@ -276,7 +276,7 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
checkAccess,
|
||||
result.getPrefixMatcher(), parameters);
|
||||
PsiClass arrays = JavaPsiFacade.getInstance(position.getProject()).findClass(CommonClassNames.JAVA_UTIL_ARRAYS, position.getResolveScope());
|
||||
if (arrays != null && filter.isAcceptable(arrays, position) && isClassNamePossible(parameters)) {
|
||||
if (arrays != null && filter.isAcceptable(arrays, position) && isClassNamePossible(parameters.getPosition())) {
|
||||
set.add(JavaClassNameCompletionContributor.createClassLookupItem(arrays, true));
|
||||
}
|
||||
for (LookupElement element : set) {
|
||||
@@ -350,8 +350,7 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isClassNamePossible(CompletionParameters parameters) {
|
||||
PsiElement position = parameters.getPosition();
|
||||
public static boolean isClassNamePossible(final PsiElement position) {
|
||||
final PsiElement parent = position.getParent();
|
||||
if (!(parent instanceof PsiJavaCodeReferenceElement)) return false;
|
||||
if (((PsiJavaCodeReferenceElement)parent).getQualifier() != null) return false;
|
||||
|
||||
+9
@@ -5,6 +5,7 @@
|
||||
package com.intellij.codeInsight.completion;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.lookup.Lookup;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
@@ -42,6 +43,14 @@ public class HeavyNormalCompletionTest extends CompletionTestCase{
|
||||
assertTrue(JavaPsiFacade.getInstance(myProject).findPackage("foo.bar.goo").isValid());
|
||||
}
|
||||
|
||||
public void testAllClassesWhenNothingIsFound() throws Throwable {
|
||||
createClass("package foo.bar; public class AxBxCxDxEx {}");
|
||||
|
||||
configureByFile("/codeInsight/completion/normal/" + getTestName(false) + ".java");
|
||||
((LookupImpl)LookupManager.getActiveLookup(myEditor)).finishLookup(Lookup.NORMAL_SELECT_CHAR);
|
||||
checkResultByFile("/codeInsight/completion/normal/" + getTestName(false) + "_after.java");
|
||||
}
|
||||
|
||||
public void testAllClassesOnSecondBasicCompletion() throws Throwable {
|
||||
createClass("package foo.bar; public class AxBxCxDxEx {}");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user