compiler-plugin / arrow.meta / MetaPlugin

MetaPlugin

open class MetaPlugin : Meta

The Meta Plugin contains the default meta bundled plugins for Arrow

Compiler Plugin Authors can create a similar class or override this one to provide their plugins.

Constructors

<init> The Meta Plugin contains the default meta bundled plugins for ArrowMetaPlugin()

Functions

intercept The Meta plugin supports N numbers of local and remote sub CliPlugin that provide a List of ExtensionPhase subscriptions. registerProjectComponents implementation calls intercept to deliver subscriptions to the Kotlin Compiler in the right order.open fun intercept(ctx: CompilerContext): List<CliPlugin>

Extension Properties

helloWorld The following example shows a Hello World Compiler Plugin.val Meta.helloWorld: CliPlugin
higherKindedTypes2 val Meta.higherKindedTypes2: CliPlugin
lenses val Meta.lenses: CliPlugin
optics val Meta.optics: CliPlugin
typeProofs val Meta.typeProofs: CliPlugin

Extension Functions

binaryExpression fun Meta.binaryExpression(ctx: CompilerContext, match: KtBinaryExpression.() -> Boolean, map: BinaryExpression.(KtBinaryExpression) -> Transform<KtBinaryExpression>): ExtensionPhase
blockExpression fun Meta.blockExpression(ctx: CompilerContext, match: KtBlockExpression.() -> Boolean, map: BlockExpression.(KtBlockExpression) -> Transform<KtBlockExpression>): ExtensionPhase
breakExpression fun Meta.breakExpression(ctx: CompilerContext, match: KtBreakExpression.() -> Boolean, map: BreakExpression.(KtBreakExpression) -> Transform<KtBreakExpression>): ExtensionPhase
catchClause fun Meta.catchClause(ctx: CompilerContext, match: KtCatchClause.() -> Boolean, map: CatchClause.(KtCatchClause) -> Transform<KtCatchClause>): ExtensionPhase
classBody fun Meta.classBody(ctx: CompilerContext, match: KtClassBody.() -> Boolean, map: ClassBody.(KtClassBody) -> Transform<KtClassBody>): ExtensionPhase
classDeclaration fun Meta.classDeclaration(ctx: CompilerContext, match: KtClass.() -> Boolean, map: ClassDeclaration.(KtClass) -> Transform<KtClass>): ExtensionPhase
continueExpression fun Meta.continueExpression(ctx: CompilerContext, match: KtContinueExpression.() -> Boolean, map: ContinueExpression.(KtContinueExpression) -> Transform<KtContinueExpression>): ExtensionPhase
destructuringDeclaration fun Meta.destructuringDeclaration(ctx: CompilerContext, match: KtDestructuringDeclaration.() -> Boolean, map: DestructuringDeclaration.(KtDestructuringDeclaration) -> Transform<KtDestructuringDeclaration>): ExtensionPhase
dotQualifiedExpression fun Meta.dotQualifiedExpression(ctx: CompilerContext, match: KtDotQualifiedExpression.() -> Boolean, map: DotQualifiedExpression.(KtDotQualifiedExpression) -> Transform<KtDotQualifiedExpression>): ExtensionPhase
enableProofCallResolver fun Meta.enableProofCallResolver(): ExtensionPhase
file fun Meta.file(ctx: CompilerContext, match: KtFile.() -> Boolean, map: File.(KtFile) -> Transform<KtFile>): ExtensionPhase
finallySection fun Meta.finallySection(ctx: CompilerContext, match: KtFinallySection.() -> Boolean, map: FinallySection.(KtFinallySection) -> Transform<KtFinallySection>): ExtensionPhase
forExpression fun Meta.forExpression(ctx: CompilerContext, match: KtForExpression.() -> Boolean, map: ForExpression.(KtForExpression) -> Transform<KtForExpression>): ExtensionPhase
functionLiteral fun Meta.functionLiteral(ctx: CompilerContext, match: KtFunctionLiteral.() -> Boolean, map: FunctionLiteral.(KtFunctionLiteral) -> Transform<KtFunctionLiteral>): ExtensionPhase
ifExpression fun Meta.ifExpression(ctx: CompilerContext, match: KtIfExpression.() -> Boolean, map: IfExpression.(KtIfExpression) -> Transform<KtIfExpression>): ExtensionPhase
importDirective fun Meta.importDirective(ctx: CompilerContext, match: KtImportDirective.() -> Boolean, map: ImportDirective.(KtImportDirective) -> Transform<KtImportDirective>): ExtensionPhase
isExpression fun Meta.isExpression(ctx: CompilerContext, match: KtIsExpression.() -> Boolean, map: IsExpression.(KtIsExpression) -> Transform<KtIsExpression>): ExtensionPhase
lambdaExpression fun Meta.lambdaExpression(ctx: CompilerContext, match: KtLambdaExpression.() -> Boolean, map: LambdaExpression.(KtLambdaExpression) -> Transform<KtLambdaExpression>): ExtensionPhase
namedFunction fun Meta.namedFunction(ctx: CompilerContext, match: TypedQuoteTemplate<KtNamedFunction, FunctionDescriptor>.() -> Boolean, mapDescriptor: List<DeclarationDescriptor>.(KtNamedFunction) -> FunctionDescriptor? = { element -> namedFunctionDescriptor(element) }, map: NamedFunction.(TypedQuoteTemplate<KtNamedFunction, FunctionDescriptor>) -> Transform<KtNamedFunction>): ExtensionPhase
objectDeclaration fun Meta.objectDeclaration(ctx: CompilerContext, match: KtObjectDeclaration.() -> Boolean, map: ObjectDeclaration.(KtObjectDeclaration) -> Transform<KtObjectDeclaration>): ExtensionPhase
packageDirective fun Meta.packageDirective(ctx: CompilerContext, match: KtPackageDirective.() -> Boolean, map: PackageDirective.(KtPackageDirective) -> Transform<KtPackageDirective>): ExtensionPhase
parameter fun Meta.parameter(ctx: CompilerContext, match: KtParameter.() -> Boolean, map: Parameter.(KtParameter) -> Transform<KtParameter>): ExtensionPhase
property fun Meta.property(ctx: CompilerContext, match: TypedQuoteTemplate<KtProperty, PropertyDescriptor>.() -> Boolean, mapDescriptor: List<DeclarationDescriptor>.(KtProperty) -> PropertyDescriptor? = { element -> propertyDescriptor(element) }, map: Property.(TypedQuoteTemplate<KtProperty, PropertyDescriptor>) -> Transform<KtProperty>): ExtensionPhase
propertyAccessor fun Meta.propertyAccessor(ctx: CompilerContext, match: KtPropertyAccessor.() -> Boolean, map: PropertyAccessor.(KtPropertyAccessor) -> Transform<KtPropertyAccessor>): ExtensionPhase
provenSyntheticScope fun Meta.provenSyntheticScope(): ExtensionPhase
quote fun <K : KtElement> Meta.quote(ctx: CompilerContext, match: K.() -> Boolean, map: Scope<K>.(K) -> Transform<K>): ExtensionPhase
fun <K : KtElement, S : Scope<K>> Meta.quote(ctx: CompilerContext, match: K.() -> Boolean, map: S.(K) -> Transform<K>, transform: (K) -> S): ExtensionPhase
fun <P : KtElement, K : KtElement, S : Scope<K>> Meta.quote(ctx: CompilerContext, quoteFactory: Factory<P, K, S>, match: K.() -> Boolean, map: S.(K) -> Transform<K>): ExtensionPhase
returnExpression fun Meta.returnExpression(ctx: CompilerContext, match: KtReturnExpression.() -> Boolean, map: ReturnExpression.(KtReturnExpression) -> Transform<KtReturnExpression>): ExtensionPhase
thisExpression fun Meta.thisExpression(ctx: CompilerContext, match: KtThisExpression.() -> Boolean, map: ThisExpression.(KtThisExpression) -> Transform<KtThisExpression>): ExtensionPhase
throwExpression fun Meta.throwExpression(ctx: CompilerContext, match: KtThrowExpression.() -> Boolean, map: ThrowExpression.(KtThrowExpression) -> Transform<KtThrowExpression>): ExtensionPhase
tryExpression fun Meta.tryExpression(ctx: CompilerContext, match: KtTryExpression.() -> Boolean, map: TryExpression.(KtTryExpression) -> Transform<KtTryExpression>): ExtensionPhase
typeAlias fun Meta.typeAlias(ctx: CompilerContext, match: TypedQuoteTemplate<KtTypeAlias, TypeAliasDescriptor>.() -> Boolean, mapDescriptor: List<DeclarationDescriptor>.(KtTypeAlias) -> TypeAliasDescriptor? = { element -> typeAliasDescriptor(element) }, map: TypeAlias.(TypedQuoteTemplate<KtTypeAlias, TypeAliasDescriptor>) -> Transform<KtTypeAlias>): ExtensionPhase
typedQuote fun <K : KtElement, D : DeclarationDescriptor, S : TypedScope<K, D>> Meta.typedQuote(ctx: CompilerContext, match: TypedQuoteTemplate<K, D>.() -> Boolean, map: S.(TypedQuoteTemplate<K, D>) -> Transform<K>, mapDescriptor: List<DeclarationDescriptor>.(K) -> D?, transform: (TypedQuoteTemplate<K, D>) -> S): ExtensionPhase
fun <P : KtElement, K : KtElement, D : DeclarationDescriptor, S : TypedScope<K, D>> Meta.typedQuote(ctx: CompilerContext, quoteFactory: Factory<P, K, D, S>, match: TypedQuoteTemplate<K, D>.() -> Boolean, map: S.(TypedQuoteTemplate<K, D>) -> Transform<K>, mapDescriptor: List<DeclarationDescriptor>.(K) -> D?): ExtensionPhase
typeReference fun Meta.typeReference(ctx: CompilerContext, match: KtTypeReference.() -> Boolean, map: TypeReference.(KtTypeReference) -> Transform<KtTypeReference>): ExtensionPhase
valueArgument ”"”someObject.add(${argumentName = argumentExpression}.valueArgument)”””“fun Meta.valueArgument(ctx: CompilerContext, match: KtValueArgument.() -> Boolean, map: ValueArgument.(KtValueArgument) -> Transform<KtValueArgument>): ExtensionPhase
whenCondition fun Meta.whenCondition(ctx: CompilerContext, match: KtWhenCondition.() -> Boolean, map: WhenCondition.(KtWhenCondition) -> Transform<KtWhenCondition>): ExtensionPhase
whenEntry fun Meta.whenEntry(ctx: CompilerContext, match: KtWhenEntry.() -> Boolean, map: WhenEntry.(KtWhenEntry) -> Transform<KtWhenEntry>): ExtensionPhase
whenExpression fun Meta.whenExpression(ctx: CompilerContext, match: KtWhenExpression.() -> Boolean, map: WhenExpression.(KtWhenExpression) -> Transform<KtWhenExpression>): ExtensionPhase
whileExpression fun Meta.whileExpression(ctx: CompilerContext, match: KtWhileExpression.() -> Boolean, map: WhileExpression.(KtWhileExpression) -> Transform<KtWhileExpression>): ExtensionPhase

Do you like Arrow?

Arrow Org
<