KT-4519 Show first line with content of block comment when collapsed (#928)
This commit is contained in:
committed by
Dmitry Jemerov
parent
4669fb3ca7
commit
7d35316d95
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user