KotlinLightCodeInsightFixtureTestCase: add configureCodeStyleAndRun
This commit is contained in:
+17
-1
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.test
|
package org.jetbrains.kotlin.idea.test
|
||||||
|
|
||||||
|
import com.intellij.application.options.CodeStyle
|
||||||
import com.intellij.ide.highlighter.JavaFileType
|
import com.intellij.ide.highlighter.JavaFileType
|
||||||
import com.intellij.ide.startup.impl.StartupManagerImpl
|
import com.intellij.ide.startup.impl.StartupManagerImpl
|
||||||
import com.intellij.openapi.actionSystem.ActionPlaces
|
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.PsiClassOwner
|
||||||
import com.intellij.psi.PsiJavaFile
|
import com.intellij.psi.PsiJavaFile
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleSettings
|
||||||
import com.intellij.psi.search.FileTypeIndex
|
import com.intellij.psi.search.FileTypeIndex
|
||||||
import com.intellij.psi.search.ProjectScope
|
import com.intellij.psi.search.ProjectScope
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
@@ -280,7 +282,7 @@ private fun configureCompilerOptions(fileText: String, project: Project, module:
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T> configureRegistryAndRun(fileText: String, body: () -> T) {
|
fun configureRegistryAndRun(fileText: String, body: () -> Unit) {
|
||||||
val registers = InTextDirectivesUtils.findListWithPrefixes(fileText, "// REGISTRY:")
|
val registers = InTextDirectivesUtils.findListWithPrefixes(fileText, "// REGISTRY:")
|
||||||
.map { it.split(' ') }
|
.map { it.split(' ') }
|
||||||
.map { Registry.get(it.first()) to it.last() }
|
.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) {
|
private fun rollbackCompilerOptions(project: Project, module: Module, removeFacet: Boolean) {
|
||||||
KotlinCompilerSettings.getInstance(project).update { this.additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS }
|
KotlinCompilerSettings.getInstance(project).update { this.additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS }
|
||||||
KotlinCommonCompilerArgumentsHolder.getInstance(project).update { this.languageVersion = LanguageVersion.LATEST_STABLE.versionString }
|
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.core.script.isScriptChangesNotifierDisabled
|
||||||
import org.jetbrains.kotlin.idea.formatter.kotlinCustomSettings
|
import org.jetbrains.kotlin.idea.formatter.kotlinCustomSettings
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightTestCase
|
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.InTextDirectivesUtils
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -96,15 +97,14 @@ abstract class AbstractCodeMoverTest : KotlinLightCodeInsightTestCase() {
|
|||||||
|
|
||||||
isApplicableChecker(isApplicableExpected, direction)
|
isApplicableChecker(isApplicableExpected, direction)
|
||||||
|
|
||||||
val codeStyleSettings = CodeStyle.getSettings(project)
|
configureCodeStyleAndRun(
|
||||||
try {
|
project,
|
||||||
val configurator = FormatSettingsUtil.createConfigurator(fileText, codeStyleSettings)
|
{
|
||||||
configurator.configureSettings()
|
FormatSettingsUtil.createConfigurator(fileText, it).configureSettings()
|
||||||
|
if (trailingComma) it.kotlinCustomSettings.ALLOW_TRAILING_COMMA = true
|
||||||
if (trailingComma) codeStyleSettings.kotlinCustomSettings.ALLOW_TRAILING_COMMA = true
|
}
|
||||||
|
) {
|
||||||
invokeAndCheck(path, action, isApplicableExpected)
|
invokeAndCheck(path, action, isApplicableExpected)
|
||||||
} finally {
|
|
||||||
codeStyleSettings.clearCodeStyleSettings()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user