From 8d0cc3f7e97584074724baf023f2f41d45a1df6d Mon Sep 17 00:00:00 2001 From: Zarina Kurbatova Date: Tue, 27 Sep 2022 11:00:20 +0300 Subject: [PATCH 1/2] Avoid summary duplication #985 --- .../intellij/plugin/javadoc/UtDocumentationProvider.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt index 7485cfea2d..4bf36417ae 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt @@ -27,10 +27,14 @@ class UtDocumentationProvider : JavaDocumentationProvider() { // add UTBot sections with custom tags. val utJavaDocInfoGenerator = UtJavaDocInfoGenerator() - val javaDocInfoWithUtSections = - utJavaDocInfoGenerator.addUtBotSpecificSectionsToJavaDoc(baseJavaDocInfo, docComment) - return JavaDocExternalFilter.filterInternalDocInfo(javaDocInfoWithUtSections) + if (baseJavaDocInfo.isNullOrEmpty()) { + val javaDocInfoWithUtSections = + utJavaDocInfoGenerator.addUtBotSpecificSectionsToJavaDoc(baseJavaDocInfo, docComment) + return JavaDocExternalFilter.filterInternalDocInfo(javaDocInfoWithUtSections) + } + + return JavaDocExternalFilter.filterInternalDocInfo(baseJavaDocInfo) } /** From 76fe0df36802f2b71b6b59d92a74ce9f9c548b02 Mon Sep 17 00:00:00 2001 From: Zarina Kurbatova Date: Wed, 28 Sep 2022 00:47:32 +0300 Subject: [PATCH 2/2] Fix rendering for 2022.1.4 --- .../plugin/javadoc/UtDocumentationProvider.kt | 24 ++++++++++++++----- .../plugin/javadoc/UtJavaDocInfoGenerator.kt | 9 +++---- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt index 4bf36417ae..027965d7ba 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt @@ -5,6 +5,7 @@ import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator import com.intellij.lang.java.JavaDocumentationProvider import com.intellij.psi.PsiDocCommentBase import com.intellij.psi.PsiJavaDocumentedElement +import com.intellij.psi.javadoc.PsiDocComment /** * To render UtBot custom JavaDoc tags messages, we need to override basic behaviour of [JavaDocumentationProvider]. @@ -25,16 +26,27 @@ class UtDocumentationProvider : JavaDocumentationProvider() { // get JavaDoc comment rendered by the platform. val baseJavaDocInfo = baseJavaDocInfoGenerator.generateRenderedDocInfo() + return getRenderedDoc(baseJavaDocInfo, docComment, comment) + } + + /** + * Processes JavaDoc generated by IJ platform to render plugin's custom tags correctly. + */ + private fun getRenderedDoc( + baseJavaDocInfo: String?, + docComment: PsiDocComment, + comment: PsiDocCommentBase + ): String? { // add UTBot sections with custom tags. val utJavaDocInfoGenerator = UtJavaDocInfoGenerator() - - if (baseJavaDocInfo.isNullOrEmpty()) { + return if (baseJavaDocInfo != null && baseJavaDocInfo.contains("utbot")) { val javaDocInfoWithUtSections = - utJavaDocInfoGenerator.addUtBotSpecificSectionsToJavaDoc(baseJavaDocInfo, docComment) - return JavaDocExternalFilter.filterInternalDocInfo(javaDocInfoWithUtSections) + utJavaDocInfoGenerator.addUtBotSpecificSectionsToJavaDoc(docComment) + val finalJavaDoc = replaceTagNamesWithMessages(javaDocInfoWithUtSections) + JavaDocExternalFilter.filterInternalDocInfo(finalJavaDoc) + } else { + super.generateRenderedDoc(comment) } - - return JavaDocExternalFilter.filterInternalDocInfo(baseJavaDocInfo) } /** diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtJavaDocInfoGenerator.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtJavaDocInfoGenerator.kt index ae597280ea..87333f11e5 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtJavaDocInfoGenerator.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtJavaDocInfoGenerator.kt @@ -36,17 +36,14 @@ private val logger = KotlinLogging.logger {} * so delete it after updating and use basic [com.intellij.codeInsight.javadoc.JavaDocInfoGenerator]. */ class UtJavaDocInfoGenerator { - fun addUtBotSpecificSectionsToJavaDoc(javadoc: String?, comment: PsiDocComment): String { - val builder = if (javadoc == null) { - StringBuilder() - } else { - StringBuilder(javadoc) - } + fun addUtBotSpecificSectionsToJavaDoc(comment: PsiDocComment): String { + val builder = StringBuilder() val docTagProvider = UtCustomJavaDocTagProvider() docTagProvider.supportedTags.forEach { generateUtTagSection(builder, comment, it) } + return builder.toString() }