diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index 5e7ec6cb7ad..5de7901688c 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.core.script +import com.intellij.execution.console.IdeConsoleRootType import com.intellij.ide.projectView.impl.ProjectRootsUtil.isInTestSource import com.intellij.ide.scratch.ScratchFileService import com.intellij.openapi.application.ApplicationManager @@ -38,8 +39,9 @@ import org.jetbrains.kotlin.idea.caches.project.getScriptRelatedModuleInfo import org.jetbrains.kotlin.idea.util.ProjectRootsUtil.isInContent import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.script.* -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPIBase +import org.jetbrains.kotlin.script.util.scriptCompilationClasspathFromContextOrStlib import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPI +import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPIBase import org.jetbrains.kotlin.utils.PathUtil import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlin.utils.addToStdlib.flattenTo @@ -49,12 +51,12 @@ import kotlin.concurrent.write import kotlin.script.dependencies.Environment import kotlin.script.dependencies.ScriptContents import kotlin.script.experimental.api.KotlinType -import kotlin.script.experimental.host.ScriptingHostConfiguration -import kotlin.script.experimental.host.configurationDependencies -import kotlin.script.experimental.host.createScriptCompilationConfigurationFromAnnotatedBaseClass import kotlin.script.experimental.dependencies.DependenciesResolver import kotlin.script.experimental.dependencies.ScriptDependencies import kotlin.script.experimental.dependencies.asSuccess +import kotlin.script.experimental.host.ScriptingHostConfiguration +import kotlin.script.experimental.host.configurationDependencies +import kotlin.script.experimental.host.createScriptCompilationConfigurationFromAnnotatedBaseClass import kotlin.script.experimental.jvm.JvmDependency import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment import kotlin.script.experimental.location.ScriptExpectedLocation @@ -271,17 +273,15 @@ class BundledKotlinScriptDependenciesResolver(private val project: Project) : De val virtualFile = scriptContents.file?.let { VfsUtil.findFileByIoFile(it, true) } val javaHome = getScriptSDK(project, virtualFile) - val dependencies = ScriptDependencies( - javaHome = javaHome?.let(::File), - classpath = with(PathUtil.kotlinPathsForIdeaPlugin) { - listOf( - reflectPath, - stdlibPath, - scriptRuntimePath - ) - } - ) - return dependencies.asSuccess() + + var classpath = with(PathUtil.kotlinPathsForIdeaPlugin) { + listOf(reflectPath, stdlibPath, scriptRuntimePath) + } + if (ScratchFileService.getInstance().getRootType(virtualFile) is IdeConsoleRootType) { + classpath = scriptCompilationClasspathFromContextOrStlib(wholeClasspath = true) + classpath + } + + return ScriptDependencies(javaHome = javaHome?.let(::File), classpath = classpath).asSuccess() } private fun getScriptSDK(project: Project, virtualFile: VirtualFile?): String? { @@ -294,8 +294,8 @@ class BundledKotlinScriptDependenciesResolver(private val project: Project) : De } val jdk = ProjectRootManager.getInstance(project).projectSdk - ?: ProjectJdkTable.getInstance().allJdks.firstOrNull { sdk -> sdk.sdkType is JavaSdk } - ?: PathUtilEx.getAnyJdk(project) + ?: ProjectJdkTable.getInstance().allJdks.firstOrNull { sdk -> sdk.sdkType is JavaSdk } + ?: PathUtilEx.getAnyJdk(project) return jdk?.homePath } -} +} \ No newline at end of file