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.ScriptConfigurationLoader
|
||||||
import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoadingContext
|
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.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.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.script.settings.KotlinScriptingSettings
|
||||||
import org.jetbrains.kotlin.idea.core.util.EDT
|
import org.jetbrains.kotlin.idea.core.util.EDT
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
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 {
|
object DefaultScriptConfigurationManagerExtensions {
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ import com.intellij.openapi.vfs.VirtualFile
|
|||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
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(
|
fun Project.getKtFile(
|
||||||
virtualFile: VirtualFile?,
|
virtualFile: VirtualFile?,
|
||||||
@@ -22,4 +27,28 @@ fun Project.getKtFile(
|
|||||||
} else {
|
} else {
|
||||||
return runReadAction { PsiManager.getInstance(this).findFile(virtualFile) as? KtFile }
|
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