diff --git a/python/src/com/jetbrains/python/psi/types/PyClassMembersProvider.java b/python/src/com/jetbrains/python/psi/types/PyClassMembersProvider.java index a245e2ac9a3a..c2a72982cb1c 100644 --- a/python/src/com/jetbrains/python/psi/types/PyClassMembersProvider.java +++ b/python/src/com/jetbrains/python/psi/types/PyClassMembersProvider.java @@ -17,4 +17,6 @@ public interface PyClassMembersProvider { Collection getMembers(PyClass clazz); @Nullable PsiElement resolveMember(PyClass clazz, String name); + + boolean hasUnderscoreWildCard(String name); } diff --git a/python/src/com/jetbrains/python/psi/types/PyClassType.java b/python/src/com/jetbrains/python/psi/types/PyClassType.java index 734bff357560..10d271ccdf09 100644 --- a/python/src/com/jetbrains/python/psi/types/PyClassType.java +++ b/python/src/com/jetbrains/python/psi/types/PyClassType.java @@ -136,7 +136,7 @@ public class PyClassType implements PyType { for (PyClassMembersProvider provider : Extensions.getExtensions(PyClassMembersProvider.EP_NAME)) { for (PyDynamicMember member : provider.getMembers(myClass)) { final String name = member.getName(); - if (underscore_filter.value(name)) { + if (underscore_filter.value(name) || provider.hasUnderscoreWildCard(name)) { ret.add(LookupElementBuilder.create(name).setIcon(member.getIcon()).setTypeText(member.getShortType())); } }