void (@NotNull LookupElementPresentation presentation) { presentation.setIcon(DefaultLookupItemRenderer.getRawIcon(this)); presentation.setStrikeout(JavaElementLookupRenderer.isToStrikeout(this)); PsiMethod method = myMethods.iterator().next(); PsiClass containingClass = method.getContainingClass(); final String className = containingClass == null || !myShouldShowClass ? "" : containingClass.getName(); final String memberName = method.getName(); if (StringUtil.isNotEmpty(className)) { presentation.setItemText(className + "." + memberName); } else { presentation.setItemText(memberName); } final String qname = containingClass == null ? "" : containingClass.getQualifiedName(); String pkg = qname == null ? "" : StringUtil.getPackageName(qname); String location = myShouldImportOrQualify && StringUtil.isNotEmpty(pkg) ? " " + pkg : ""; final String paramsText; boolean allHasOneArgument = ContainerUtil.all(myMethods, m -> m.getParameterList().getParameters().length == 1); if (myMergedOverloads) { if (allHasOneArgument) { paramsText = "(" + myOldQualifierExpression.getText() + ")"; } else { paramsText = "(" + myOldQualifierExpression.getText() + ", ...)"; } } else { StringBuilder builder = new StringBuilder(); PsiParameter[] params = method.getParameterList().getParameters(); for (int i = 1; i < Math.min(params.length, MAX_PARAMS_TO_SHOW); i++) { builder.append(", "); builder.append(formatVariable(params[i], PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_TYPE, PsiSubstitutor.EMPTY)); } if (params.length > MAX_PARAMS_TO_SHOW) { builder.append(", ..."); } paramsText = "(" + myOldQualifierExpression.getText() + builder + ")"; } presentation.appendTailText(paramsText, false); if (myShouldImportOrQualify && StringUtil.isNotEmpty(className)) { presentation.appendTailText(" in " + location, true); } if (!myMergedOverloads) { PsiType type = MemberLookupHelper.getDeclaredType(method, getSubstitutor()); if (type != null) { presentation.setTypeText(type.getPresentableText()); } } }