58eca451c4
PsiElementFinder doesn't find classes from sdks that aren't Project SDK, so when Script Sdk differs from it we need to additionally search classes in script sdk using KotlinScriptDependenciesClassFinder (as we do for classes from ScriptDependencies.classpath) ^KT-31152 Fixed
23 lines
987 B
Kotlin
Vendored
23 lines
987 B
Kotlin
Vendored
package org.jetbrains.kotlin.idea.script
|
|
|
|
import java.io.File
|
|
import kotlin.script.dependencies.*
|
|
import kotlin.script.experimental.dependencies.*
|
|
import kotlin.script.experimental.location.*
|
|
import kotlin.script.templates.ScriptTemplateDefinition
|
|
|
|
class FromTextDependenciesResolver : DependenciesResolver {
|
|
@Suppress("UNCHECKED_CAST")
|
|
override fun resolve(scriptContents: ScriptContents, environment: Environment): DependenciesResolver.ResolveResult {
|
|
return ScriptDependencies(
|
|
javaHome = environment["javaHome"] as? File,
|
|
classpath = (environment["classpath"] as? List<File>).orEmpty(),
|
|
imports = (environment["imports"] as? List<String>).orEmpty(),
|
|
sources = (environment["sources"] as? List<File>).orEmpty()
|
|
).asSuccess()
|
|
}
|
|
}
|
|
|
|
@ScriptExpectedLocations([ScriptExpectedLocation.Everywhere])
|
|
@ScriptTemplateDefinition(FromTextDependenciesResolver::class, scriptFilePattern = "script.kts")
|
|
open class Template |