Xjdk-release: support mixed compilation of Java and Kotlin

#KT-52815 Fixed
This commit is contained in:
Mikhael Bogdanov
2022-11-10 09:48:30 +01:00
committed by Space Team
parent 9bd17f628d
commit edc54524aa
20 changed files with 537 additions and 0 deletions
@@ -8,6 +8,7 @@ import com.intellij.DynamicBundle
import com.intellij.codeInsight.ContainerProvider
import com.intellij.codeInsight.runner.JavaMainMethodProvider
import com.intellij.core.JavaCoreApplicationEnvironment
import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.lang.MetaLanguage
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
@@ -26,6 +27,10 @@ class KotlinCoreApplicationEnvironment private constructor(
) :
JavaCoreApplicationEnvironment(parentDisposable, unitTestMode) {
init {
registerFileType(JavaClassFileType.INSTANCE, "sig");
}
override fun createJrtFileSystem(): VirtualFileSystem {
return CoreJrtFileSystem()
}
@@ -5,6 +5,9 @@
package org.jetbrains.kotlin.cli.jvm.modules
import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.openapi.fileTypes.FileType
import com.intellij.openapi.fileTypes.FileTypeRegistry
import com.intellij.openapi.vfs.VirtualFile
import java.io.InputStream
@@ -39,4 +42,8 @@ class CtSymClassVirtualFile(
override fun refresh(p0: Boolean, p1: Boolean, p2: Runnable?) = file.refresh(p0, p1, p2)
override fun getInputStream(): InputStream? = file.inputStream
override fun getFileType(): FileType = JavaClassFileType.INSTANCE
override fun getModificationStamp(): Long = file.modificationStamp
}