Predicate<PsiMember> (String completePattern) { if (completePattern.contains("#") && completePattern.endsWith(")")) { return member -> member instanceof PsiMethod && JavaQualifiedNameProvider.hasQualifiedName(completePattern, (PsiMethod)member); } if (completePattern.contains(".") || completePattern.contains("#") || completePattern.contains("$")) { String normalized = completePattern.replace("#", ".*").replace(".", ".*").replace("$", ".*"); MinusculeMatcher matcher = NameUtil.buildMatcher("*" + normalized).build(); return member -> { String qualifiedName = PsiUtil.getMemberQualifiedName(member); return qualifiedName != null && matcher.matches(qualifiedName); }; } return Predicates.alwaysTrue(); }