void ( PsiTypeParameterListOwner typeParameterOwner, StringBuilder buffer, JavaDocHighlightingManager highlightingManager ) { if (typeParameterOwner.hasTypeParameters()) { PsiTypeParameter[] params = typeParameterOwner.getTypeParameters(); appendStyledSpan(buffer, highlightingManager.getOperationSignAttributes(), "&lt;"); for (int i = 0; i < params.length; i++) { PsiTypeParameter p = params[i]; appendStyledSpan(buffer, highlightingManager.getTypeParameterNameAttributes(), p.getName()); PsiClassType[] refs = p.getExtendsList().getReferencedTypes(); if (refs.length > 0) { appendStyledSpan(buffer, highlightingManager.getKeywordAttributes(), " extends "); // <- Groovy keyword for (int j = 0; j < refs.length; j++) { JavaDocInfoGeneratorFactory.create(typeParameterOwner.getProject(), null) .generateType(buffer, refs[j], typeParameterOwner, false, true); if (j < refs.length - 1) { appendStyledSpan(buffer, highlightingManager.getOperationSignAttributes(), " & "); } } } if (i < params.length - 1) { appendStyledSpan(buffer, highlightingManager.getCommaAttributes(), ", "); } } appendStyledSpan(buffer, highlightingManager.getOperationSignAttributes(), "&gt;"); } }