KotlinLightCodeInsightFixtureTestCase: add configureCodeStyleAndRun
This commit is contained in:
+17
-1
@@ -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 <T> 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 <T> 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 }
|
||||
|
||||
+8
-8
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user