diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index 3541bf6ef61c..e1b4f25b66ab 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -1365,11 +1365,8 @@ public abstract class ChooseByNameBase { } private void fillInCommonPrefix(@NotNull final String pattern) { - if (StringUtil.isEmpty(pattern) && !canShowListForEmptyPattern()) { - return; - } - final List list = myProvider.filterNames(ChooseByNameBase.this, getNames(myCheckBox.isSelected()), pattern); + if (list.isEmpty()) return; if (isComplexPattern(pattern)) return; //TODO: support '*' final String oldText = getTrimmedText(); diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/DefaultChooseByNameItemProvider.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/DefaultChooseByNameItemProvider.java index 2c029b745ac6..56488e842254 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/DefaultChooseByNameItemProvider.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/DefaultChooseByNameItemProvider.java @@ -63,6 +63,8 @@ public class DefaultChooseByNameItemProvider implements ChooseByNameItemProvider final ChooseByNameModel model = base.getModel(); String matchingPattern = convertToMatchingPattern(base, namePattern); + if (matchingPattern == null) return true; + List namesList = new ArrayList(); final CollectConsumer collect = new SynchronizedCollectConsumer(namesList); @@ -296,8 +298,11 @@ public class DefaultChooseByNameItemProvider implements ChooseByNameItemProvider @NotNull @Override public List filterNames(@NotNull ChooseByNameBase base, @NotNull String[] names, @NotNull String pattern) { + pattern = convertToMatchingPattern(base, pattern); + if (pattern == null) return Collections.emptyList(); + final List filtered = new ArrayList(); - processNamesByPattern(base, names, convertToMatchingPattern(base, pattern), ProgressIndicatorProvider.getGlobalProgressIndicator(), new Consumer() { + processNamesByPattern(base, names, pattern, ProgressIndicatorProvider.getGlobalProgressIndicator(), new Consumer() { @Override public void consume(MatchResult result) { synchronized (filtered) { @@ -332,12 +337,12 @@ public class DefaultChooseByNameItemProvider implements ChooseByNameItemProvider } } - @NotNull + @Nullable private static String convertToMatchingPattern(@NotNull ChooseByNameBase base, @NotNull String pattern) { pattern = removeModelSpecificMarkup(base.getModel(), pattern); - if (!base.canShowListForEmptyPattern()) { - LOG.assertTrue(!pattern.isEmpty(), base); + if (!base.canShowListForEmptyPattern() && pattern.isEmpty()) { + return null; } return addSearchAnywherePatternDecorationIfNeeded(base, pattern);