String ( @NotNull PsiMember member, @NotNull TextAttributes labelAttributes, @NotNull String label ) { StringBuilder buffer = new StringBuilder(); int openParenIndex = label.indexOf("("); if (openParenIndex == -1) openParenIndex = label.length(); int classNameIndex = label.substring(0, openParenIndex).lastIndexOf("."); if (classNameIndex != -1) { PsiClass containingClass = member.getContainingClass(); TextAttributes containingClassAttributes = containingClass != null ? getHighlightingManager().getClassDeclarationAttributes(containingClass) : getHighlightingManager().getClassNameAttributes(); containingClassAttributes = tuneAttributesForLink(containingClassAttributes); appendStyledSpan(true, buffer, containingClassAttributes, label.substring(0, classNameIndex)); appendStyledSpan(true, buffer, getHighlightingManager().getDotAttributes(), "."); } classNameIndex++; appendStyledSpan(true, buffer, labelAttributes, label.substring(classNameIndex, openParenIndex)); if (openParenIndex == label.length()) return buffer.toString(); appendHighlightedByLexerAndEncodedAsHtmlCodeSnippet( true, buffer, member.getProject(), member.getLanguage(), label.substring(openParenIndex)); return buffer.toString(); }