diff --git a/gen.kotlin/build.gradle b/gen.kotlin/build.gradle index 0d1f88e90..a7eb995d7 100644 --- a/gen.kotlin/build.gradle +++ b/gen.kotlin/build.gradle @@ -7,7 +7,7 @@ description = 'GumTree tree generator for Kotlin using Kotlin PSI.' dependencies { implementation project(':core') - implementation 'org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20' + implementation 'org.jetbrains.kotlin:kotlin-compiler-embeddable:2.4.21' testImplementation project(':gen.treesitter-ng') } diff --git a/gen.kotlin/src/main/java/com/github/gumtreediff/gen/kotlin/KotlinPsiTreeGenerator.java b/gen.kotlin/src/main/java/com/github/gumtreediff/gen/kotlin/KotlinPsiTreeGenerator.java index f840483da..9193d59ac 100644 --- a/gen.kotlin/src/main/java/com/github/gumtreediff/gen/kotlin/KotlinPsiTreeGenerator.java +++ b/gen.kotlin/src/main/java/com/github/gumtreediff/gen/kotlin/KotlinPsiTreeGenerator.java @@ -26,6 +26,8 @@ import com.github.gumtreediff.utils.Registry; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; +import org.jetbrains.kotlin.cli.FrontendConfigurationKeysKt; +import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar; import org.jetbrains.kotlin.com.intellij.openapi.util.Disposer; import org.jetbrains.kotlin.com.intellij.openapi.util.TextRange; import org.jetbrains.kotlin.com.intellij.psi.PsiElement; @@ -57,8 +59,11 @@ protected TreeContext generate(Reader reader) throws IOException { var disposable = Disposer.newDisposable(); try { + CompilerConfiguration configuration = new CompilerConfiguration(); + FrontendConfigurationKeysKt.setExtensionsStorage( + configuration, new CompilerPluginRegistrar.ExtensionStorage()); KotlinCoreEnvironment environment = KotlinCoreEnvironment.createForProduction( - disposable, new CompilerConfiguration(), EnvironmentConfigFiles.JVM_CONFIG_FILES); + disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES); PsiFile psiFile = PsiFileFactory.getInstance(environment.getProject()) .createFileFromText("file.kt", KotlinLanguage.INSTANCE, content.toString()); TreeContext context = new TreeContext();