pajatopmr
01/22/2021, 1:05 AMjimn
01/22/2021, 2:25 AMraulraja
01/22/2021, 9:14 AMProjectExtensionDescriptor
. This is what compiler plugins register on each phase to get called back and alter compilation. All plugins implement ComponentRegistrar
which allows you to subscribe those ProjectExtensionDescriptor.
You can find in this file all phases Arrow Meta registers to https://github.com/arrow-kt/arrow-meta/blob/48982f09f691afc9c915213e308d6591046721[…]rc/main/kotlin/arrow/meta/internal/registry/InternalRegistry.kt .
We don’t recommend you use Arrow meta for compiler development until the IR backend is announced stable in 1.5.0 and we have a better idea of what compiler plugins look there. I expect 1.5.0 if it supports compiler plugins to have the corresponding IDE integration which is what currently make many compiler plugins not possible.
While the Kotlin plugin bundles support for it’s own needs in IDEA for its own plugins, community plugins won’t be able to get correct IDE behavior until the Kotlin IDE plugin has support for descriptors and other things that are currently redline if you use a third party compiler plugin.
IMO We can’t expect every library to ship its own IDEA plugins that people have to discover through a marketplace once compiler plugins are officially supported.pajatopmr
01/22/2021, 1:07 PM