Annotation collector compiler plugin
This commit is contained in:
@@ -19,5 +19,6 @@
|
||||
<orderEntry type="module" module-name="serialization" />
|
||||
<orderEntry type="module" module-name="js.serializer" />
|
||||
<orderEntry type="module" module-name="util" />
|
||||
<orderEntry type="module" module-name="annotation-collector" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -21,6 +21,8 @@ import java.util.jar.JarFile
|
||||
import java.util.jar.Attributes
|
||||
import java.util.regex.Pattern
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.kotlin.annotation.AnnotationCollectorCommandLineProcessor
|
||||
import org.jetbrains.kotlin.annotation.AnnotationCollectorComponentRegistrar
|
||||
import java.net.URLClassLoader
|
||||
import java.net.URL
|
||||
import java.io.File
|
||||
@@ -45,10 +47,9 @@ public object PluginCliParser {
|
||||
javaClass.getClassLoader()
|
||||
)
|
||||
|
||||
configuration.addAll(
|
||||
ComponentRegistrar.PLUGIN_COMPONENT_REGISTRARS,
|
||||
ServiceLoader.load(javaClass<ComponentRegistrar>(), classLoader).toList()
|
||||
)
|
||||
val componentRegistrars = ServiceLoader.load(javaClass<ComponentRegistrar>(), classLoader).toArrayList()
|
||||
componentRegistrars.add(AnnotationCollectorComponentRegistrar())
|
||||
configuration.addAll(ComponentRegistrar.PLUGIN_COMPONENT_REGISTRARS, componentRegistrars)
|
||||
|
||||
processPluginOptions(arguments, configuration, classLoader)
|
||||
}
|
||||
@@ -63,7 +64,8 @@ public object PluginCliParser {
|
||||
it.pluginId
|
||||
} ?: mapOf()
|
||||
|
||||
val commandLineProcessors = ServiceLoader.load(javaClass<CommandLineProcessor>(), classLoader).toList()
|
||||
val commandLineProcessors = ServiceLoader.load(javaClass<CommandLineProcessor>(), classLoader).toArrayList()
|
||||
commandLineProcessors.add(AnnotationCollectorCommandLineProcessor())
|
||||
|
||||
for (processor in commandLineProcessors) {
|
||||
val declaredOptions = processor.pluginOptions.valuesToMap { it.name }
|
||||
|
||||
@@ -63,6 +63,7 @@ import org.jetbrains.kotlin.cli.jvm.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot
|
||||
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
||||
import org.jetbrains.kotlin.cli.jvm.config.JvmContentRoot
|
||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
||||
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
@@ -139,6 +140,7 @@ public class KotlinCoreEnvironment private(
|
||||
|
||||
ExternalDeclarationsProvider.registerExtensionPoint(project)
|
||||
ExpressionCodegenExtension.registerExtensionPoint(project)
|
||||
ClassBuilderInterceptorExtension.registerExtensionPoint(project)
|
||||
|
||||
for (registrar in configuration.getList(ComponentRegistrar.PLUGIN_COMPONENT_REGISTRARS)) {
|
||||
registrar.registerProjectComponents(project, configuration)
|
||||
|
||||
Reference in New Issue
Block a user