void (@NotNull PyCallableParameter parameter, boolean first, boolean last) { indexToNamedParameter.put(currentParameterIndex[0], parameter); final StringBuilder stringBuilder = new StringBuilder(); boolean annotationAdded = false; if (parameter.getParameter() instanceof PyNamedParameter) { final String annotation = ((PyNamedParameter)parameter.getParameter()).getAnnotationValue(); if (annotation != null) { String annotationText = ParamHelper.getNameInSignature(parameter) + ": " + annotation.replaceAll("\n", "").replaceAll("\\s+", " "); annotations.add(last ? annotationText : (annotationText + ", ")); annotationAdded = true; } } if (!annotationAdded) { annotations.add(""); } stringBuilder.append(parameter.getPresentableText(true, context, type -> type == null || type instanceof PyStructuralType)); if (!last) stringBuilder.append(", "); final int hintIndex = hintsList.size(); parameterToHintIndex.put(parameter, hintIndex); hintFlags.put(hintIndex, EnumSet.noneOf(ParameterFlag.class)); hintsList.add(stringBuilder.toString()); currentParameterIndex[0]++; }