mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
[kotlin] K1: use dependenciesFromCurrentContext when loading ScriptDefinitionForExtensionAndIdeConsoleRoots
#KTIJ-32309 Fixed KT-MR-20314 GitOrigin-RevId: 6a7abcd150151dd0b5e79d2030bf3accf1f39503
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b6c6ce36fb
commit
48c6399025
@@ -5,14 +5,12 @@ package org.jetbrains.kotlin.jsr223
|
||||
import com.intellij.ide.extensionResources.ExtensionsRootType
|
||||
import com.intellij.ide.scratch.RootType
|
||||
import com.intellij.ide.script.IdeConsoleRootType
|
||||
import com.intellij.openapi.application.PathManager
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource
|
||||
import kotlin.io.path.nameWithoutExtension
|
||||
import kotlin.script.experimental.api.*
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.dependenciesFromClassContext
|
||||
import kotlin.script.experimental.jvm.dependenciesFromCurrentContext
|
||||
import kotlin.script.experimental.jvm.jvm
|
||||
import kotlin.script.templates.standard.ScriptTemplateWithBindings
|
||||
|
||||
@@ -42,15 +40,10 @@ private object ScriptCompilationConfigurationForExtensionAndIdeConsoleRoots : Sc
|
||||
baseClass(KotlinType(ScriptTemplateWithBindings::class))
|
||||
displayName(SCRIPT_DEFINITION_NAME)
|
||||
jvm {
|
||||
val kotlincLibraryName =
|
||||
PathManager.getJarForClass(KotlinVersion::class.java)?.nameWithoutExtension
|
||||
?: error("unable to locate Kotlin standard library")
|
||||
// This approach works, but could be quite expensive, since it forces indexing of the whole IDEA classpath
|
||||
// more economical approach would be to list names (without versions and .jar extension) of all jars
|
||||
// required for the scripts after the kotlin stdlib/script-runtime, and set wholeClasspath to false
|
||||
dependenciesFromClassContext(
|
||||
ScriptCompilationConfigurationForExtensionAndIdeConsoleRoots::class,
|
||||
kotlincLibraryName,
|
||||
dependenciesFromCurrentContext(
|
||||
wholeClasspath = true
|
||||
)
|
||||
// todo commented out until we figure out why it is needed and how to implement it safely
|
||||
|
||||
Reference in New Issue
Block a user