[FIR] Add compiler extension for plugin registration

This commit is contained in:
Dmitriy Novozhilov
2020-04-23 17:23:33 +03:00
parent ff4a71386e
commit a37975ab21
2 changed files with 30 additions and 0 deletions
@@ -62,5 +62,7 @@
interface="com.intellij.ide.util.projectWizard.ModuleBuilder"/>
<extensionPoint qualifiedName="org.jetbrains.kotlin.renameHandler"
interface="com.intellij.refactoring.rename.RenameHandler"/>
<extensionPoint qualifiedName="org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarExtension"
interface="org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarExtension"/>
</extensionPoints>
</idea-plugin>
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.extensions
import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
abstract class FirExtensionRegistrarExtension {
companion object : ProjectExtensionDescriptor<FirExtensionRegistrarExtension>(
"org.jetbrains.kotlin.fir.frontendIrExtensionRegistrarExtension",
FirExtensionRegistrarExtension::class.java
)
protected inner class ExtensionRegistrarContext
protected abstract fun ExtensionRegistrarContext.configurePlugin()
fun configure(): RegisteredExtensions {
ExtensionRegistrarContext().configurePlugin()
return RegisteredExtensions()
}
class RegisteredExtensions
}
fun FirExtensionPointService.registerExtensions(extensions: FirExtensionRegistrarExtension.RegisteredExtensions) {}