diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java index 7a96fd03fae0..b98fe4a6b985 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java @@ -121,6 +121,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement } }; private volatile int myCount; + private volatile boolean myHasPsiElements; private boolean myLookupUpdated; private final ConcurrentHashMap myItemSorters = new ConcurrentHashMap( @@ -320,7 +321,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement if (!myLookupUpdated) { if (myLookup.getAdvertisements().isEmpty() && !isAutopopupCompletion() && !DumbService.isDumb(getProject())) { - DefaultCompletionContributor.addDefaultAdvertisements(myParameters, myLookup); + DefaultCompletionContributor.addDefaultAdvertisements(myParameters, myLookup, myHasPsiElements); } myLookup.getAdvertiser().showRandomText(); } @@ -380,8 +381,12 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement LOG.assertTrue(myParameters.getPosition().isValid()); - myItemSorters.put(item.getLookupElement(), (CompletionSorterImpl)item.getSorter()); - if (!myLookup.addItem(item.getLookupElement(), item.getPrefixMatcher())) { + LookupElement lookupElement = item.getLookupElement(); + if (!myHasPsiElements && lookupElement.getPsiElement() != null) { + myHasPsiElements = true; + } + myItemSorters.put(lookupElement, (CompletionSorterImpl)item.getSorter()); + if (!myLookup.addItem(lookupElement, item.getPrefixMatcher())) { return; } myCount++; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/DefaultCompletionContributor.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/DefaultCompletionContributor.java index 9e112ad382a4..cc69a9aeb611 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/DefaultCompletionContributor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/DefaultCompletionContributor.java @@ -30,17 +30,12 @@ import org.jetbrains.annotations.NotNull; */ public class DefaultCompletionContributor extends CompletionContributor { - static void addDefaultAdvertisements(@NotNull final CompletionParameters parameters, LookupImpl lookup) { + static void addDefaultAdvertisements(@NotNull final CompletionParameters parameters, LookupImpl lookup, boolean includePsiFeatures) { if (CompletionUtil.shouldShowFeature(parameters, CodeCompletionFeatures.EDITING_COMPLETION_FINISH_BY_DOT_ETC)) { lookup.addAdvertisement(LangBundle.message("completion.dot.etc.ad"), null); } - if (CompletionUtil.shouldShowFeature(parameters, CodeCompletionFeatures.EDITING_COMPLETION_FINISH_BY_SMART_ENTER)) { - final String shortcut = getActionShortcut(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM_COMPLETE_STATEMENT); - if (shortcut != null) { - lookup.addAdvertisement(LangBundle.message("completion.smart.enter.ad", shortcut), null); - } - } - + if (!includePsiFeatures) return; + if (CompletionUtil.shouldShowFeature(parameters, CodeCompletionFeatures.EDITING_COMPLETION_FINISH_BY_SMART_ENTER)) { final String shortcut = getActionShortcut(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM_COMPLETE_STATEMENT); if (shortcut != null) {