diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassReferenceCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassReferenceCompletionContributor.java index be4867cc9c05..883b29b534fe 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassReferenceCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassReferenceCompletionContributor.java @@ -66,7 +66,7 @@ public class JavaClassReferenceCompletionContributor extends CompletionContribut return; } - if (parameters.getCompletionType() == CompletionType.CLASS_NAME) { + if (parameters.isExtendedCompletion()) { JavaClassNameCompletionContributor.addAllClasses(parameters, result); } else { diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/XmlBasicToClassNameDelegator.java b/java/java-impl/src/com/intellij/codeInsight/completion/XmlBasicToClassNameDelegator.java index a57303044485..92b6266d8b42 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/XmlBasicToClassNameDelegator.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/XmlBasicToClassNameDelegator.java @@ -37,13 +37,23 @@ public class XmlBasicToClassNameDelegator extends CompletionContributor { return; } - final boolean empty = result.runRemainingContributors(parameters, true).isEmpty(); + final boolean[] empty = {true}; + result.runRemainingContributors(parameters, new Consumer() { + @Override + public void consume(CompletionResult completionResult) { + empty[0] = false; + LookupElement lookupElement = completionResult.getLookupElement(); + lookupElement + .putUserData(XmlCompletionContributor.WORD_COMPLETION_COMPATIBLE, Boolean.TRUE); //todo think of a less dirty interaction + result.passResult(completionResult); + } + }); - if (!empty && parameters.getInvocationCount() == 0) { + if (!empty[0] && parameters.getInvocationCount() == 0) { result.restartCompletionWhenNothingMatches(); } - if (empty && JavaClassReferenceCompletionContributor.findJavaClassReference(file, parameters.getOffset()) != null || + if (JavaClassReferenceCompletionContributor.findJavaClassReference(file, parameters.getOffset()) == null && parameters.isExtendedCompletion()) { CompletionService.getCompletionService().getVariantsFromContributors(parameters.delegateToClassName(), null, new Consumer() { @Override