KT-4519 Show first line with content of block comment when collapsed (#928)

This commit is contained in:
Yoshinori Isogai
2016-08-22 20:08:44 +09:00
committed by Dmitry Jemerov
parent 4669fb3ca7
commit 7d35316d95
5 changed files with 26 additions and 9 deletions
@@ -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()