diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinFoldingBuilder.kt b/idea/src/org/jetbrains/kotlin/idea/KotlinFoldingBuilder.kt index 0997ecd840d..54fc805f522 100644 --- a/idea/src/org/jetbrains/kotlin/idea/KotlinFoldingBuilder.kt +++ b/idea/src/org/jetbrains/kotlin/idea/KotlinFoldingBuilder.kt @@ -97,12 +97,28 @@ class KotlinFoldingBuilder : CustomFoldingBuilder(), DumbAware { } override fun getLanguagePlaceholderText(node: ASTNode, range: TextRange): String = when { - node.elementType == KtTokens.BLOCK_COMMENT -> "/.../" - node.elementType == KDocTokens.KDOC -> "/**...*/" + node.elementType == KtTokens.BLOCK_COMMENT -> "/${getFirstLineOfComment(node)}.../" + node.elementType == KDocTokens.KDOC -> "/**${getFirstLineOfComment(node)}...*/" node.psi is KtImportList -> "..." else -> "{...}" } + private fun getFirstLineOfComment(node: ASTNode): String { + val targetCommentLine = node.text.split("\n").firstOrNull { + getCommentContents(it).isNotEmpty() + } ?: return "" + return " ${getCommentContents(targetCommentLine)} " + } + + private fun getCommentContents(line: String): String { + return line.trim() + .replace("/**", "") + .replace("/*", "") + .replace("*/", "") + .replace("*", "") + .trim() + } + override fun isRegionCollapsedByDefault(node: ASTNode): Boolean { val settings = JavaCodeFoldingSettings.getInstance() diff --git a/idea/testData/folding/checkCollapse/headerKDoc.kt b/idea/testData/folding/checkCollapse/headerKDoc.kt index 68730fd38c1..c715e6471a9 100644 --- a/idea/testData/folding/checkCollapse/headerKDoc.kt +++ b/idea/testData/folding/checkCollapse/headerKDoc.kt @@ -1,9 +1,9 @@ -/** +/** * Some header kdoc */ package some -/** +/** * Other */ diff --git a/idea/testData/folding/checkCollapse/headerMultilineComment.kt b/idea/testData/folding/checkCollapse/headerMultilineComment.kt index b89b0cc9e3a..17df1e909e9 100644 --- a/idea/testData/folding/checkCollapse/headerMultilineComment.kt +++ b/idea/testData/folding/checkCollapse/headerMultilineComment.kt @@ -1,10 +1,10 @@ -/* +/* * Some header */ val a = 12 -/* +/* * Other */ diff --git a/idea/testData/folding/noCollapse/kdocComments.kt b/idea/testData/folding/noCollapse/kdocComments.kt index fa10d6117f7..4f8e7cbc094 100644 --- a/idea/testData/folding/noCollapse/kdocComments.kt +++ b/idea/testData/folding/noCollapse/kdocComments.kt @@ -1,9 +1,9 @@ -/** +/** * Kdoc licence */ package some -/** +/** * Some Kdoc comment */ class A \ No newline at end of file diff --git a/idea/testData/folding/noCollapse/multilineComments.kt b/idea/testData/folding/noCollapse/multilineComments.kt index 846fb05f63d..efa6cdbedaa 100644 --- a/idea/testData/folding/noCollapse/multilineComments.kt +++ b/idea/testData/folding/noCollapse/multilineComments.kt @@ -1,4 +1,5 @@ -/* +/* * Some multiline comment + * And more comment */ class A \ No newline at end of file