From 75d56e49023fac8cc1b2fc392496ade618b72957 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 22 Sep 2016 16:47:47 +0300 Subject: [PATCH] Better tooltip for try --- .../KotlinBreadcrumbsInfoProvider.kt | 19 ++++++++++++++++++- idea/testData/codeInsight/breadcrumbs/Try.txt | 3 ++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinBreadcrumbsInfoProvider.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinBreadcrumbsInfoProvider.kt index 5e9cf5187a4..993f7337780 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinBreadcrumbsInfoProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinBreadcrumbsInfoProvider.kt @@ -290,7 +290,24 @@ class KotlinBreadcrumbsInfoProvider : BreadcrumbsInfoProvider() { override fun accepts(element: KtBlockExpression) = element.parent is KtTryExpression override fun elementInfo(element: KtBlockExpression) = "try" - override fun elementTooltip(element: KtBlockExpression) = "try" + + override fun elementTooltip(element: KtBlockExpression): String { + return buildString { + val tryExpression = element.parent as KtTryExpression + + append("try {$ellipsis}") + + for (catchClause in tryExpression.catchClauses) { + append("\ncatch(") + append(catchClause.catchParameter?.typeReference?.text ?: "") + append(") {$ellipsis}") + } + + if (tryExpression.finallyBlock != null) { + append("\nfinally {$ellipsis}") + } + } + } } private object CatchHandler : ElementHandler(KtCatchClause::class) { diff --git a/idea/testData/codeInsight/breadcrumbs/Try.txt b/idea/testData/codeInsight/breadcrumbs/Try.txt index c513003e08e..6d721d1eb05 100644 --- a/idea/testData/codeInsight/breadcrumbs/Try.txt +++ b/idea/testData/codeInsight/breadcrumbs/Try.txt @@ -5,6 +5,7 @@ Crumbs: catch (RuntimeException) Tooltips: function foo() - try + try {…} +catch(Exception) {…} finally catch (RuntimeException) \ No newline at end of file