diff --git a/java/java-impl/src/com/intellij/codeInsight/javadoc/AnnotationDocGenerator.java b/java/java-impl/src/com/intellij/codeInsight/javadoc/AnnotationDocGenerator.java index 75f772ef041b..0cb20d8c17bf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/javadoc/AnnotationDocGenerator.java +++ b/java/java-impl/src/com/intellij/codeInsight/javadoc/AnnotationDocGenerator.java @@ -74,6 +74,8 @@ public class AnnotationDocGenerator { boolean red = type == null && !myResolveNotPossible && !isInferred() && !isExternal(); + boolean highlightNonCodeAnnotations = format == AnnotationFormat.ToolTip && (isInferred() || isExternal()); + if (highlightNonCodeAnnotations) buffer.append(""); if (isInferred()) buffer.append(""); if (red) buffer.append(""); @@ -91,6 +93,7 @@ public class AnnotationDocGenerator { generateAnnotationAttributes(buffer, generateLink); if (isInferred()) buffer.append(""); + if (highlightNonCodeAnnotations) buffer.append(""); } private void generateAnnotationAttributes(StringBuilder buffer, boolean generateLink) { diff --git a/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java b/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java index 034e02e346d5..0ddaf1f92387 100644 --- a/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java +++ b/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java @@ -1031,15 +1031,15 @@ public class JavaDocInfoGenerator { } private static void generateMethodSignature(StringBuilder buffer, PsiMethod method, SignaturePlace place) { - boolean useShortNames = place == SignaturePlace.ToolTip; + boolean isTooltip = place == SignaturePlace.ToolTip; boolean generateLink = place == SignaturePlace.Javadoc; generateAnnotations(buffer, method, place, true); - int modLength = generateModifiers(buffer, method, true); + int modLength = isTooltip ? 0 : generateModifiers(buffer, method, true); int indent = modLength == 0 ? 0 : modLength + 1; - String typeParamsString = generateTypeParameters(method, useShortNames); + String typeParamsString = generateTypeParameters(method, isTooltip); indent += StringUtil.unescapeXmlEntities(StringUtil.stripHtml(typeParamsString, true)).length(); if (!typeParamsString.isEmpty()) { buffer.append(typeParamsString); @@ -1048,7 +1048,7 @@ public class JavaDocInfoGenerator { } if (method.getReturnType() != null) { - indent += generateType(buffer, method.getReturnType(), method, generateLink, useShortNames); + indent += generateType(buffer, method.getReturnType(), method, generateLink, isTooltip); buffer.append(NBSP); indent++; } @@ -1063,9 +1063,9 @@ public class JavaDocInfoGenerator { for (int i = 0; i < parameters.length; i++) { PsiParameter parm = parameters[i]; generateAnnotations(buffer, parm, place, false); - generateType(buffer, parm.getType(), method, generateLink, useShortNames); - buffer.append(NBSP); - if (parm.getName() != null) { + generateType(buffer, parm.getType(), method, generateLink, isTooltip); + if (parm.getName() != null && !isTooltip) { + buffer.append(NBSP); buffer.append(parm.getName()); } if (i < parameters.length - 1) { @@ -1081,7 +1081,7 @@ public class JavaDocInfoGenerator { buffer.append(THROWS_KEYWORD); buffer.append(NBSP); for (int i = 0; i < refs.length; i++) { - generateLink(buffer, useShortNames ? refs[i].getPresentableText() : refs[i].getCanonicalText(), null, method, false); + generateLink(buffer, isTooltip ? refs[i].getPresentableText() : refs[i].getCanonicalText(), null, method, false); if (i < refs.length - 1) { buffer.append(',').append(NBSP); } diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/bytecodeAnalysis/BytecodeAnalysisIntegrationTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/bytecodeAnalysis/BytecodeAnalysisIntegrationTest.java index 810b721c7e09..fd60687b8f3e 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/bytecodeAnalysis/BytecodeAnalysisIntegrationTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/bytecodeAnalysis/BytecodeAnalysisIntegrationTest.java @@ -96,15 +96,15 @@ public class BytecodeAnalysisIntegrationTest extends LightCodeInsightFixtureTest public void testInferredAnnoGutter() { checkHasGutter("org.apache.velocity.util.ExceptionUtils", "Inferred annotations available. Full signature:

\n" + - "@Contract('null,_,_->null') \n" + - "public static Throwable createWithCause(Class clazz,\n String message,\n Throwable cause)"); + "@Contract('null,_,_->null') \n" + + "Throwable createWithCause(Class,\n String,\n Throwable)"); } public void testExternalAnnoGutter() { checkHasGutter("java.lang.String", "External and inferred annotations available. Full signature:

\n" + - "@Contract(pure = true) \n" + - "public String(@NotNull String var1)"); + "@Contract(pure = true) \n" + + "String(@NotNull String)"); } private void checkHasGutter(String className, String expectedText) {