void (@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet result) { final PyCallExpression call = PsiTreeUtil.getParentOfType(parameters.getOriginalPosition(), PyCallExpression.class); if (call == null) return; final PyExpression calleeExpression = call.getCallee(); if (calleeExpression instanceof PyReferenceExpression) { final PsiElement callee = ((PyReferenceExpression)calleeExpression).getReference().resolve(); if (callee instanceof PsiClass) { addSettersAndListeners(result, (PsiClass)callee, parameters.getOriginalFile()); } else if (callee instanceof PsiMethod && ((PsiMethod)callee).isConstructor()) { final PsiClass containingClass = ((PsiMethod)callee).getContainingClass(); assert containingClass != null; addSettersAndListeners(result, containingClass, parameters.getOriginalFile()); } } }