void (@NotNull PsiMethod method, @NotNull PsiSubstitutor substitutor, @FormatMethodOptions int options, @FormatVariableOptions int parameterOptions, int maxParametersToShow, StringBuilder buffer) { if (BitUtil.isSet(options, SHOW_MODIFIERS) && !BitUtil.isSet(options, MODIFIERS_AFTER)) { formatModifiers(method, options,buffer); } if (BitUtil.isSet(options, SHOW_TYPE) && !BitUtil.isSet(options, TYPE_AFTER)) { PsiType type = method.getReturnType(); if (type != null) { appendSpaceIfNeeded(buffer); buffer.append(formatTypeSafe(method, type, options, substitutor)); } } if (BitUtil.isSet(options, SHOW_CONTAINING_CLASS)) { PsiClass aClass = method.getContainingClass(); if (aClass != null) { appendSpaceIfNeeded(buffer); String name = aClass.getName(); if (name != null) { if (BitUtil.isSet(options, SHOW_FQ_NAME)) { buffer.append(ObjectUtils.notNull(aClass.getQualifiedName(), name)); } else { buffer.append(name); } buffer.append('.'); } } if (BitUtil.isSet(options, SHOW_NAME)) { buffer.append(method.getName()); } } else { if (BitUtil.isSet(options, SHOW_NAME)) { appendSpaceIfNeeded(buffer); buffer.append(method.getName()); } } buffer.append('('); if (BitUtil.isSet(options, SHOW_PARAMETERS)) { PsiParameter[] params = method.getParameterList().getParameters(); for (int i = 0; i < Math.min(params.length, maxParametersToShow); i++) { if (i > 0) buffer.append(", "); buffer.append(formatVariable(params[i], parameterOptions, substitutor)); } if (params.length > maxParametersToShow) { buffer.append(", ..."); } } buffer.append(')'); if (BitUtil.isSet(options, SHOW_TYPE) && BitUtil.isSet(options, TYPE_AFTER)) { PsiType type = method.getReturnType(); if (type != null) { if (buffer.length() > 0) buffer.append(':'); buffer.append(formatTypeSafe(method, type, options, substitutor)); } } if (BitUtil.isSet(options, SHOW_MODIFIERS) && BitUtil.isSet(options, MODIFIERS_AFTER)) { formatModifiers(method, options,buffer); } if (BitUtil.isSet(options, SHOW_THROWS)) { String throwsText = formatReferenceList(method.getThrowsList(), options); if (!throwsText.isEmpty()) { appendSpaceIfNeeded(buffer); buffer.append("throws ").append(throwsText); } } }