Skip to content

Commit 80da28b

Browse files
onewhlAbdullinAM
authored andcommitted
Avoid summary duplication UnitTestBot#985 (UnitTestBot#1015)
* Avoid summary duplication UnitTestBot#985 * Fix rendering for 2022.1.4
1 parent e10a50e commit 80da28b

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtDocumentationProvider.kt

+20-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator
55
import com.intellij.lang.java.JavaDocumentationProvider
66
import com.intellij.psi.PsiDocCommentBase
77
import com.intellij.psi.PsiJavaDocumentedElement
8+
import com.intellij.psi.javadoc.PsiDocComment
89

910
/**
1011
* To render UtBot custom JavaDoc tags messages, we need to override basic behaviour of [JavaDocumentationProvider].
@@ -25,12 +26,27 @@ class UtDocumentationProvider : JavaDocumentationProvider() {
2526
// get JavaDoc comment rendered by the platform.
2627
val baseJavaDocInfo = baseJavaDocInfoGenerator.generateRenderedDocInfo()
2728

29+
return getRenderedDoc(baseJavaDocInfo, docComment, comment)
30+
}
31+
32+
/**
33+
* Processes JavaDoc generated by IJ platform to render plugin's custom tags correctly.
34+
*/
35+
private fun getRenderedDoc(
36+
baseJavaDocInfo: String?,
37+
docComment: PsiDocComment,
38+
comment: PsiDocCommentBase
39+
): String? {
2840
// add UTBot sections with custom tags.
2941
val utJavaDocInfoGenerator = UtJavaDocInfoGenerator()
30-
val javaDocInfoWithUtSections =
31-
utJavaDocInfoGenerator.addUtBotSpecificSectionsToJavaDoc(baseJavaDocInfo, docComment)
32-
33-
return JavaDocExternalFilter.filterInternalDocInfo(javaDocInfoWithUtSections)
42+
return if (baseJavaDocInfo != null && baseJavaDocInfo.contains("utbot")) {
43+
val javaDocInfoWithUtSections =
44+
utJavaDocInfoGenerator.addUtBotSpecificSectionsToJavaDoc(docComment)
45+
val finalJavaDoc = replaceTagNamesWithMessages(javaDocInfoWithUtSections)
46+
JavaDocExternalFilter.filterInternalDocInfo(finalJavaDoc)
47+
} else {
48+
super.generateRenderedDoc(comment)
49+
}
3450
}
3551

3652
/**

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/javadoc/UtJavaDocInfoGenerator.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,14 @@ private val logger = KotlinLogging.logger {}
4141
* so delete it after updating and use basic [com.intellij.codeInsight.javadoc.JavaDocInfoGenerator].
4242
*/
4343
class UtJavaDocInfoGenerator {
44-
fun addUtBotSpecificSectionsToJavaDoc(javadoc: String?, comment: PsiDocComment): String {
45-
val builder = if (javadoc == null) {
46-
StringBuilder()
47-
} else {
48-
StringBuilder(javadoc)
49-
}
44+
fun addUtBotSpecificSectionsToJavaDoc(comment: PsiDocComment): String {
45+
val builder = StringBuilder()
5046

5147
val docTagProvider = UtCustomJavaDocTagProvider()
5248
docTagProvider.supportedTags.forEach {
5349
generateUtTagSection(builder, comment, it)
5450
}
51+
5552
return builder.toString()
5653
}
5754

0 commit comments

Comments
 (0)