From ebfcd7e074b9fa2e811bd29da595112919af9574 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 28 Jul 2020 15:13:48 +0300 Subject: [PATCH] J2K: Improve presentation of conversions --- .../jetbrains/kotlin/nj2k/ConversionsRunner.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index d8d09e45ccd..218f4ec7587 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -94,11 +94,24 @@ object ConversionsRunner { val conversions = createConversions(context) for ((conversionIndex, conversion) in conversions.withIndex()) { + val treeSequence = trees.asSequence().onEachIndexed { index, _ -> - updateProgress(conversionIndex, conversions.size, index, conversion::class.simpleName ?: "Converting...") + updateProgress(conversionIndex, conversions.size, index, conversion.description()) } conversion.runConversion(treeSequence, context) } } + + private fun Conversion.description(): String { + val conversionName = this::class.simpleName + val words = conversionName?.let { wordRegex.findAll(conversionName).map { it.value.decapitalize() }.toList() } + return when { + conversionName == null -> "Converting..." + conversionName.endsWith("Conversion") -> "Converting ${words!!.dropLast(1).joinToString(" ")}" + else -> words!!.joinToString(" ") + } + } + + private val wordRegex = "[A-Z][a-z0-9]+".toRegex() } \ No newline at end of file