gradle.kts: move areSimilar to utils.kt to use in tests
This commit is contained in:
+1
-24
@@ -26,10 +26,8 @@ import org.jetbrains.kotlin.idea.core.script.configuration.loader.DefaultScriptC
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoader
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoadingContext
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptOutsiderFileConfigurationLoader
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.BackgroundExecutor
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.*
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.DefaultBackgroundExecutor
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.TestingBackgroundExecutor
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.isUnitTestModeWithoutScriptLoadingNotification
|
||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
||||
import org.jetbrains.kotlin.idea.core.util.EDT
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -310,27 +308,6 @@ internal class DefaultScriptConfigurationManager(project: Project) :
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun areSimilar(old: ScriptCompilationConfigurationWrapper, new: ScriptCompilationConfigurationWrapper): Boolean {
|
||||
if (old.script != new.script) return false
|
||||
|
||||
val oldConfig = old.configuration
|
||||
val newConfig = new.configuration
|
||||
|
||||
if (oldConfig == newConfig) return true
|
||||
if (oldConfig == null || newConfig == null) return false
|
||||
|
||||
if (oldConfig[ScriptCompilationConfiguration.jvm.jdkHome] != newConfig[ScriptCompilationConfiguration.jvm.jdkHome]) return false
|
||||
|
||||
// there is differences how script definition classpath is added to script classpath in old and new scripting API,
|
||||
// so it's important to compare the resulting classpath list, not only the value of key
|
||||
if (oldConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty() != newConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty()) return false
|
||||
|
||||
if (oldConfig[ScriptCompilationConfiguration.ide.dependenciesSources] != newConfig[ScriptCompilationConfiguration.ide.dependenciesSources]) return false
|
||||
if (oldConfig[ScriptCompilationConfiguration.defaultImports] != newConfig[ScriptCompilationConfiguration.defaultImports]) return false
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
object DefaultScriptConfigurationManagerExtensions {
|
||||
|
||||
@@ -10,6 +10,11 @@ import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.PsiManager
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
|
||||
import kotlin.script.experimental.api.*
|
||||
import kotlin.script.experimental.jvm.impl.toClassPathOrEmpty
|
||||
import kotlin.script.experimental.jvm.jdkHome
|
||||
import kotlin.script.experimental.jvm.jvm
|
||||
|
||||
fun Project.getKtFile(
|
||||
virtualFile: VirtualFile?,
|
||||
@@ -22,4 +27,28 @@ fun Project.getKtFile(
|
||||
} else {
|
||||
return runReadAction { PsiManager.getInstance(this).findFile(virtualFile) as? KtFile }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For using in DefaultScriptConfigurationManager and in tests only
|
||||
*/
|
||||
fun areSimilar(old: ScriptCompilationConfigurationWrapper, new: ScriptCompilationConfigurationWrapper): Boolean {
|
||||
if (old.script != new.script) return false
|
||||
|
||||
val oldConfig = old.configuration
|
||||
val newConfig = new.configuration
|
||||
|
||||
if (oldConfig == newConfig) return true
|
||||
if (oldConfig == null || newConfig == null) return false
|
||||
|
||||
if (oldConfig[ScriptCompilationConfiguration.jvm.jdkHome] != newConfig[ScriptCompilationConfiguration.jvm.jdkHome]) return false
|
||||
|
||||
// there is differences how script definition classpath is added to script classpath in old and new scripting API,
|
||||
// so it's important to compare the resulting classpath list, not only the value of key
|
||||
if (oldConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty() != newConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty()) return false
|
||||
|
||||
if (oldConfig[ScriptCompilationConfiguration.ide.dependenciesSources] != newConfig[ScriptCompilationConfiguration.ide.dependenciesSources]) return false
|
||||
if (oldConfig[ScriptCompilationConfiguration.defaultImports] != newConfig[ScriptCompilationConfiguration.defaultImports]) return false
|
||||
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user