diff --git a/plugins/kotlin/base/scripting/kotlin.base.scripting.iml b/plugins/kotlin/base/scripting/kotlin.base.scripting.iml index b26a6417105d..ddd7fbafe1f6 100644 --- a/plugins/kotlin/base/scripting/kotlin.base.scripting.iml +++ b/plugins/kotlin/base/scripting/kotlin.base.scripting.iml @@ -64,5 +64,6 @@ + \ No newline at end of file diff --git a/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/K2ScriptDependenciesProvider.kt b/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/K2ScriptDependenciesProvider.kt index c6f762dc925e..c3d987c13d9d 100644 --- a/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/K2ScriptDependenciesProvider.kt +++ b/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/K2ScriptDependenciesProvider.kt @@ -3,13 +3,13 @@ package org.jetbrains.kotlin.idea.core.script import com.intellij.openapi.components.service import com.intellij.openapi.components.serviceIfCreated +import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.JavaSdkType import com.intellij.openapi.projectRoots.ProjectJdkTable import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.roots.OrderRootType import com.intellij.openapi.roots.ProjectRootManager -import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.NonClasspathDirectoriesScope.compose @@ -25,6 +25,7 @@ import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.read import kotlin.concurrent.write +import kotlin.io.path.pathString import kotlin.script.experimental.api.* import kotlin.script.experimental.jvm.JvmDependency import kotlin.script.experimental.jvm.jdkHome @@ -75,18 +76,6 @@ class K2ScriptDependenciesProvider(project: Project) : ScriptDependenciesProvide return compose(roots + sdk) } - private fun getScriptSdkByJavaHome(javaHome: Path): Sdk? { - // workaround for mismatched gradle wrapper and plugin version - val javaHomeVF = try { - VfsUtil.findFile(javaHome, true) - } catch (e: Throwable) { - null - } ?: return null - - return ProjectJdkTable.getInstance().allJdks - .firstOrNull { it.homeDirectory == javaHomeVF && it.canBeUsedForScript() } - } - private fun getDefaultSdk(): Sdk? { val projectSdk = ProjectRootManager.getInstance(project).projectSdk?.takeIf { it.canBeUsedForScript() } if (projectSdk != null) return projectSdk @@ -148,10 +137,7 @@ class K2ScriptDependenciesProvider(project: Project) : ScriptDependenciesProvide classes.addAll(toVfsRoots(configurationWrapper.dependenciesClassPath)) sources.addAll(toVfsRoots(configurationWrapper.dependenciesSources)) configurationWrapper.javaHome?.toPath()?.let { - val sdk = getScriptSdkByJavaHome(it) - if (sdk != null) { - sdks[it] = sdk - } + sdks[it] = ExternalSystemJdkUtil.lookupJdkByPath(it.pathString) } counter++ diff --git a/plugins/kotlin/highlighting/highlighting-k2/test/org/jetbrains/kotlin/idea/k2/highlighting/AbstractK2HighlightingMetaInfoTest.kt b/plugins/kotlin/highlighting/highlighting-k2/test/org/jetbrains/kotlin/idea/k2/highlighting/AbstractK2HighlightingMetaInfoTest.kt index 50288f07fa6b..4ee903b3d14c 100644 --- a/plugins/kotlin/highlighting/highlighting-k2/test/org/jetbrains/kotlin/idea/k2/highlighting/AbstractK2HighlightingMetaInfoTest.kt +++ b/plugins/kotlin/highlighting/highlighting-k2/test/org/jetbrains/kotlin/idea/k2/highlighting/AbstractK2HighlightingMetaInfoTest.kt @@ -26,7 +26,7 @@ abstract class AbstractK2HighlightingMetaInfoTest : AbstractHighlightingMetaInfo val psiFile = files.first() if (psiFile is KtFile && psiFile.isScript()) { val scriptModel = ScriptModel(psiFile.virtualFile) - K2ScriptDependenciesProvider.getInstance(project).reloadConfigurations(setOf(scriptModel), System.getProperty("java.home")) + K2ScriptDependenciesProvider.getInstance(project).reloadConfigurations(setOf(scriptModel), null) } super.doMultiFileTest(files, globalDirectives) diff --git a/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts b/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts index a004732b28d6..f4fe44a63190 100644 --- a/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts +++ b/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts @@ -1,5 +1,5 @@ +// FIR_IDENTICAL // IGNORE_K1 -// IGNORE_K2 class MyScriptClass { fun memberFunction(i: Int) { diff --git a/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts.highlighting b/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts.highlighting index a004732b28d6..f4fe44a63190 100644 --- a/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts.highlighting +++ b/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/script.kts.highlighting @@ -1,5 +1,5 @@ +// FIR_IDENTICAL // IGNORE_K1 -// IGNORE_K2 class MyScriptClass { fun memberFunction(i: Int) {