From 752cdd5f838f0ad7a871ab83717f1d7bbfbbb594 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 29 Oct 2015 15:08:48 +0300 Subject: [PATCH] KT-9815 Import insertion (on Alt-Enter) does not work in Evaluate Expression #KT-9815 Fixed --- .../frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt | 4 ++++ .../evaluate/AbstractEditorForEvaluateExpressionTest.kt | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt index 14e9d9249ee..b9d3239fc24 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt @@ -103,6 +103,10 @@ public abstract class KtCodeFragment( override fun addImportsFromString(imports: String?) { if (imports == null || imports.isEmpty()) return myImports.addAll(imports.split(IMPORT_SEPARATOR)) + + // we need this code to force re-highlighting, otherwise it does not work by some reason + val tempElement = KtPsiFactory(project).createColon() + add(tempElement).delete() } public fun importsAsImportList(): KtImportList? { diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt index cfcdf512616..0acc5e3e021 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/AbstractEditorForEvaluateExpressionTest.kt @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.idea.completion.test.ExpectedCompletionUtils import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractCompletionHandlerTest import org.jetbrains.kotlin.idea.test.JetWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.idea.util.ImportInsertHelper -import org.jetbrains.kotlin.idea.util.application.runWriteAction +import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext @@ -49,12 +49,12 @@ public abstract class AbstractCodeFragmentHighlightingTest : AbstractJetPsiCheck fun doTestWithImport(filePath: String) { myFixture.configureByCodeFragment(filePath) - runWriteAction { + project.executeWriteCommand("Imports insertion") { val fileText = FileUtil.loadFile(File(filePath), true) val file = myFixture.getFile() as KtFile InTextDirectivesUtils.findListWithPrefixes(fileText, "// IMPORT: ").forEach { val descriptor = file.resolveImportReference(FqName(it)).singleOrNull() - ?: error("Could not resolve descriptor to import: $it") + ?: error("Could not resolve descriptor to import: $it") ImportInsertHelper.getInstance(getProject()).importDescriptor(file, descriptor) } }