Use correct classpath for Ide Scripting Console files during highlighting
KT-25606
This commit is contained in:
+18
-18
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user