in src/java/org/jetbrains/plugins/clojure/psi/resolve/completion/CompleteSymbol.java [80:115]
private static void addJavaMethods(PsiElement[] psiElements, Collection<Object> variants, boolean withoutDot) {
final HashMap<MethodSignature, HashSet<PsiMethod>> sig2Methods = collectAvailableMethods(psiElements);
for (Map.Entry<MethodSignature, HashSet<PsiMethod>> entry : sig2Methods.entrySet()) {
final MethodSignature sig = entry.getKey();
final String name = sig.getName();
final StringBuffer buffer = new StringBuffer();
buffer.append(name).append("(");
buffer.append(StringUtil.join(ContainerUtil.map2Array(sig.getParameterTypes(), String.class, new Function<PsiType, String>() {
public String fun(PsiType psiType) {
return psiType.getPresentableText();
}
}), ", ")
).append(")");
final String methodText = buffer.toString();
final StringBuffer tailBuffer = new StringBuffer();
tailBuffer.append(" in ");
final ArrayList<String> list = new ArrayList<String>();
for (PsiMethod method : entry.getValue()) {
final PsiClass clazz = method.getContainingClass();
if (clazz != null) {
list.add(clazz.getQualifiedName());
}
}
tailBuffer.append(StringUtil.join(list, ", "));
final LookupItem item = new LookupItem(methodText, (!withoutDot ? "." : "") + name);
item.setIcon(ClojureIcons.JAVA_METHOD);
item.setTailText(tailBuffer.toString(), true);
variants.add(item);
}
}