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) {