diff --git a/idea/idea-test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightCodeInsightFixtureTestCase.kt b/idea/idea-test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightCodeInsightFixtureTestCase.kt index 508c785fba8..5650eee0c3b 100644 --- a/idea/idea-test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightCodeInsightFixtureTestCase.kt +++ b/idea/idea-test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightCodeInsightFixtureTestCase.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.test +import com.intellij.application.options.CodeStyle import com.intellij.ide.highlighter.JavaFileType import com.intellij.ide.startup.impl.StartupManagerImpl import com.intellij.openapi.actionSystem.ActionPlaces @@ -26,6 +27,7 @@ import com.intellij.pom.java.LanguageLevel import com.intellij.psi.PsiClassOwner import com.intellij.psi.PsiJavaFile import com.intellij.psi.PsiManager +import com.intellij.psi.codeStyle.CodeStyleSettings import com.intellij.psi.search.FileTypeIndex import com.intellij.psi.search.ProjectScope import com.intellij.testFramework.LightProjectDescriptor @@ -280,7 +282,7 @@ private fun configureCompilerOptions(fileText: String, project: Project, module: return false } -fun configureRegistryAndRun(fileText: String, body: () -> T) { +fun configureRegistryAndRun(fileText: String, body: () -> Unit) { val registers = InTextDirectivesUtils.findListWithPrefixes(fileText, "// REGISTRY:") .map { it.split(' ') } .map { Registry.get(it.first()) to it.last() } @@ -296,6 +298,20 @@ fun configureRegistryAndRun(fileText: String, body: () -> T) { } } +fun configureCodeStyleAndRun( + project: Project, + configurator: (CodeStyleSettings) -> Unit, + body: () -> Unit +) { + val codeStyleSettings = CodeStyle.getSettings(project) + try { + configurator(codeStyleSettings) + body() + } finally { + codeStyleSettings.clearCodeStyleSettings() + } +} + private fun rollbackCompilerOptions(project: Project, module: Module, removeFacet: Boolean) { KotlinCompilerSettings.getInstance(project).update { this.additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS } KotlinCommonCompilerArgumentsHolder.getInstance(project).update { this.languageVersion = LanguageVersion.LATEST_STABLE.versionString } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/AbstractCodeMoverTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/AbstractCodeMoverTest.kt index b9a26f6e8bc..9d0ca60d12b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/AbstractCodeMoverTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/AbstractCodeMoverTest.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.idea.codeInsight.upDownMover.KotlinExpressionMover import org.jetbrains.kotlin.idea.core.script.isScriptChangesNotifierDisabled import org.jetbrains.kotlin.idea.formatter.kotlinCustomSettings import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightTestCase +import org.jetbrains.kotlin.idea.test.configureCodeStyleAndRun import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -96,15 +97,14 @@ abstract class AbstractCodeMoverTest : KotlinLightCodeInsightTestCase() { isApplicableChecker(isApplicableExpected, direction) - val codeStyleSettings = CodeStyle.getSettings(project) - try { - val configurator = FormatSettingsUtil.createConfigurator(fileText, codeStyleSettings) - configurator.configureSettings() - - if (trailingComma) codeStyleSettings.kotlinCustomSettings.ALLOW_TRAILING_COMMA = true + configureCodeStyleAndRun( + project, + { + FormatSettingsUtil.createConfigurator(fileText, it).configureSettings() + if (trailingComma) it.kotlinCustomSettings.ALLOW_TRAILING_COMMA = true + } + ) { invokeAndCheck(path, action, isApplicableExpected) - } finally { - codeStyleSettings.clearCodeStyleSettings() } }