File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed
src/main/kotlin/org/javacs/kt/compiler Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,7 @@ dependencies {
4040 implementation " org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion "
4141 implementation " org.jetbrains.kotlin:kotlin-scripting-compiler:$kotlinVersion "
4242 implementation " org.jetbrains.kotlin:kotlin-scripting-jvm-host-unshaded:$kotlinVersion "
43+ implementation " org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin:$kotlinVersion "
4344 implementation " org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion "
4445 implementation ' org.jetbrains:fernflower:1.0'
4546 implementation " org.jetbrains.exposed:exposed-core:$exposedVersion "
Original file line number Diff line number Diff line change @@ -69,6 +69,8 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
6969import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
7070import org.jetbrains.kotlin.config.*
7171import org.jetbrains.kotlin.resolve.scopes.LexicalScope
72+ import org.jetbrains.kotlin.samWithReceiver.CliSamWithReceiverComponentContributor
73+ import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
7274import java.io.File
7375
7476private val GRADLE_DSL_DEPENDENCY_PATTERN = Regex (" ^gradle-(?:kotlin-dsl|core).*\\ .jar$" )
@@ -376,6 +378,12 @@ private class CompilationEnvironment(
376378 configFiles = EnvironmentConfigFiles .JVM_CONFIG_FILES
377379 )
378380
381+ // hacky way to support SamWithReceiverAnnotations for scripts
382+ val scriptDefinitions: List <ScriptDefinition > = environment.configuration.getList(ScriptingConfigurationKeys .SCRIPT_DEFINITIONS )
383+ scriptDefinitions.takeIf { it.isNotEmpty() }?.let {
384+ val annotations = scriptDefinitions.flatMap { it.asLegacyOrNull<KotlinScriptDefinition >()?.annotationsForSamWithReceivers ? : emptyList() }
385+ StorageComponentContainerContributor .registerExtension(environment.project, CliSamWithReceiverComponentContributor (annotations))
386+ }
379387 val project = environment.project
380388 parser = KtPsiFactory (project)
381389 scripts = ScriptDefinitionProvider .getInstance(project)!! as CliScriptDefinitionProvider
You can’t perform that action at this time.
0 commit comments