From 4c2ae5e3dd9057f55be99bcb3c7d4f26888ff43c Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 2 Feb 2017 15:33:18 +0300 Subject: [PATCH] Generate test support: error hints moved out of write action --- .../KotlinGenerateTestSupportActionBase.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt b/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt index 33a9a566c69..3a4db0930e0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt @@ -164,15 +164,16 @@ abstract class KotlinGenerateTestSupportActionBase( templateText = fileTemplate.text.replace(NAME_VAR, DUMMY_NAME) } - project.executeWriteCommand(commandName) { - try { + try { + var errorHint: String? = null + project.executeWriteCommand(commandName) { PsiDocumentManager.getInstance(project).commitAllDocuments() val factory = PsiElementFactory.SERVICE.getInstance(project) val psiMethod = factory.createMethodFromText(templateText, null) psiMethod.throwsList.referenceElements.forEach { it.delete() } var function = psiMethod.j2k() as? KtNamedFunction ?: run { - HintManager.getInstance().showErrorHint(editor, "Couldn't convert Java template to Kotlin") + errorHint = "Couldn't convert Java template to Kotlin" return@executeWriteCommand } name?.let { @@ -196,9 +197,10 @@ abstract class KotlinGenerateTestSupportActionBase( setupEditorSelection(editor, functionInPlace) } - catch (e: IncorrectOperationException) { - HintManager.getInstance().showErrorHint(editor, "Cannot generate method: " + e.message) - } + errorHint?.let { HintManager.getInstance().showErrorHint(editor, it) } + } + catch (e: IncorrectOperationException) { + HintManager.getInstance().showErrorHint(editor, "Cannot generate method: " + e.message) } }