allow to hide type links

This commit is contained in:
Anna Kozlova
2014-06-23 14:52:12 +02:00
parent 77990bdac3
commit 5cb7347d59
@@ -253,13 +253,13 @@ public class JavaDocInfoGenerator {
public static String generateSignature(PsiElement element) {
StringBuilder buf = new StringBuilder();
if (element instanceof PsiClass) {
if (generateClassSignature(buf, (PsiClass)element)) return null;
if (generateClassSignature(buf, (PsiClass)element, false)) return null;
}
else if (element instanceof PsiField) {
generateFieldSignature(buf, (PsiField)element);
generateFieldSignature(buf, (PsiField)element, false);
}
else if (element instanceof PsiMethod) {
generateMethodSignature(buf, (PsiMethod)element);
generateMethodSignature(buf, (PsiMethod)element, false);
}
return buf.toString();
}
@@ -307,7 +307,7 @@ public class JavaDocInfoGenerator {
}
buffer.append("<PRE>");
if (generateClassSignature(buffer, aClass)) return;
if (generateClassSignature(buffer, aClass, true)) return;
buffer.append("</PRE>");
//buffer.append("<br>");
@@ -321,8 +321,8 @@ public class JavaDocInfoGenerator {
generateEpilogue(buffer);
}
private static boolean generateClassSignature(StringBuilder buffer, PsiClass aClass) {
generateAnnotations(buffer, aClass);
private static boolean generateClassSignature(StringBuilder buffer, PsiClass aClass, boolean generateLink) {
generateAnnotations(buffer, aClass, generateLink);
String modifiers = PsiFormatUtil.formatModifiers(aClass, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY);
if (!modifiers.isEmpty()) {
buffer.append(modifiers);
@@ -355,7 +355,7 @@ public class JavaDocInfoGenerator {
}
else {
for (int i = 0; i < refs.length; i++) {
generateType(buffer, refs[i], aClass);
generateType(buffer, refs[i], aClass, generateLink);
if (i < refs.length - 1) {
buffer.append(",&nbsp;");
}
@@ -369,7 +369,7 @@ public class JavaDocInfoGenerator {
if (refs.length > 0) {
buffer.append("implements ");
for (int i = 0; i < refs.length; i++) {
generateType(buffer, refs[i], aClass);
generateType(buffer, refs[i], aClass, generateLink);
if (i < refs.length - 1) {
buffer.append(",&nbsp;");
}
@@ -472,7 +472,7 @@ public class JavaDocInfoGenerator {
}
buffer.append("<PRE>");
generateFieldSignature(buffer, field);
generateFieldSignature(buffer, field, true);
buffer.append("</PRE>");
//buffer.append("<br>");
@@ -487,14 +487,14 @@ public class JavaDocInfoGenerator {
generateEpilogue(buffer);
}
private static void generateFieldSignature(StringBuilder buffer, PsiField field) {
generateAnnotations(buffer, field);
private static void generateFieldSignature(StringBuilder buffer, PsiField field, boolean generateLink) {
generateAnnotations(buffer, field, generateLink);
String modifiers = PsiFormatUtil.formatModifiers(field, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY);
if (!modifiers.isEmpty()) {
buffer.append(modifiers);
buffer.append(" ");
}
generateType(buffer, field.getType(), field);
generateType(buffer, field.getType(), field, generateLink);
buffer.append(" ");
buffer.append("<b>");
buffer.append(field.getName());
@@ -696,17 +696,21 @@ public class JavaDocInfoGenerator {
}
}
private static void generateAnnotations(@NonNls @NotNull StringBuilder buffer, @NotNull PsiModifierListOwner owner) {
private static void generateAnnotations(@NonNls @NotNull StringBuilder buffer, @NotNull PsiModifierListOwner owner, boolean generateLink) {
final PsiModifierList ownerModifierList = owner.getModifierList();
if (ownerModifierList == null) return;
generateAnnotations(buffer, owner, ownerModifierList.getAnnotations(), false);
generateAnnotations(buffer, owner, ownerModifierList.getAnnotations(), false, generateLink);
final PsiAnnotation[] externalAnnotations = ExternalAnnotationsManager.getInstance(owner.getProject()).findExternalAnnotations(owner);
if (externalAnnotations != null) {
generateAnnotations(buffer, owner, externalAnnotations, true);
generateAnnotations(buffer, owner, externalAnnotations, true, generateLink);
}
}
private static void generateAnnotations(StringBuilder buffer, PsiModifierListOwner owner, PsiAnnotation[] annotations, boolean external) {
private static void generateAnnotations(StringBuilder buffer,
PsiModifierListOwner owner,
PsiAnnotation[] annotations,
boolean external,
boolean generateLink) {
PsiManager manager = owner.getManager();
for (PsiAnnotation annotation : annotations) {
@@ -718,7 +722,7 @@ public class JavaDocInfoGenerator {
if (AnnotationUtil.isAnnotated(annotationType, "java.lang.annotation.Documented", false)) {
final PsiClassType type = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory().createType(annotationType, PsiSubstitutor.EMPTY);
buffer.append("@");
generateType(buffer, type, owner);
generateType(buffer, type, owner, generateLink);
final PsiNameValuePair[] attributes = annotation.getParameterList().getAttributes();
if (attributes.length > 0) {
buffer.append("(");
@@ -764,7 +768,7 @@ public class JavaDocInfoGenerator {
buffer.append(modifiers);
buffer.append(" ");
}
generateAnnotations(buffer, parameter);
generateAnnotations(buffer, parameter, true);
generateType(buffer, parameter.getType(), parameter);
buffer.append(" ");
buffer.append("<b>");
@@ -809,7 +813,7 @@ public class JavaDocInfoGenerator {
}
buffer.append("<PRE>");
generateMethodSignature(buffer, method);
generateMethodSignature(buffer, method, true);
buffer.append("</PRE>");
//buffer.append("<br>");
@@ -839,8 +843,8 @@ public class JavaDocInfoGenerator {
generateEpilogue(buffer);
}
private static void generateMethodSignature(StringBuilder buffer, PsiMethod method) {
generateAnnotations(buffer, method);
private static void generateMethodSignature(StringBuilder buffer, PsiMethod method, boolean generateLink) {
generateAnnotations(buffer, method, generateLink);
String modifiers = PsiFormatUtil.formatModifiers(method, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY);
int indent = 0;
if (!modifiers.isEmpty()) {
@@ -858,7 +862,7 @@ public class JavaDocInfoGenerator {
}
if (method.getReturnType() != null) {
indent += generateType(buffer, method.getReturnType(), method);
indent += generateType(buffer, method.getReturnType(), method, generateLink);
buffer.append("&nbsp;");
indent++;
}
@@ -873,8 +877,8 @@ public class JavaDocInfoGenerator {
PsiParameter[] parms = method.getParameterList().getParameters();
for (int i = 0; i < parms.length; i++) {
PsiParameter parm = parms[i];
generateAnnotations(buffer, parm);
generateType(buffer, parm.getType(), method);
generateAnnotations(buffer, parm, generateLink);
generateType(buffer, parm.getType(), method, generateLink);
buffer.append("&nbsp;");
if (parm.getName() != null) {
buffer.append(parm.getName());