compiler-plugin / arrow.meta.phases.analysis / ElementScope

ElementScope

interface ElementScope

Properties

annotatedExpression abstract val String.annotatedExpression: AnnotatedExpression
annotationEntry abstract val String.annotationEntry: Scope<KtAnnotationEntry>
anonymousInitializer abstract val anonymousInitializer: Scope<KtAnonymousInitializer>
argument abstract val String.argument: ValueArgument
binaryExpression abstract val String.binaryExpression: BinaryExpression
block abstract val String.block: BlockExpression
break abstract val String.break: BreakExpression
callableReferenceExpression abstract val String.callableReferenceExpression: Scope<KtCallableReferenceExpression>
callArguments abstract val String.callArguments: Scope<KtValueArgumentList>
catch abstract val String.catch: CatchClause
class abstract val String.class: ClassDeclaration
classBody abstract val String.classBody: ClassBody
colon abstract val colon: PsiElement
comma abstract val comma: PsiElement
comment abstract val String.comment: PsiComment
companionObject abstract val companionObject: ObjectDeclaration
abstract val String.companionObject: ObjectDeclaration
constructorKeyword abstract val constructorKeyword: PsiElement
continue abstract val String.continue: ContinueExpression
delegatedSuperTypeEntry abstract val String.delegatedSuperTypeEntry: Scope<KtConstructorDelegationCall>
destructuringDeclaration abstract val String.destructuringDeclaration: DestructuringDeclaration
destructuringParameter abstract val String.destructuringParameter: Parameter
dot abstract val dot: PsiElement
dotQualifiedExpression abstract val String.dotQualifiedExpression: DotQualifiedExpression
emptyBody abstract val emptyBody: BlockExpression
emptyClassBody abstract val emptyClassBody: ClassBody
emptyModifierList abstract val emptyModifierList: ModifierList
enumEntry abstract val String.enumEntry: Scope<KtEnumEntry>
enumEntryInitializerList abstract val enumEntryInitializerList: Scope<KtInitializerList>
eq abstract val eq: PsiElement
expression abstract val String.expression: Scope<KtExpression>
expressionOrNull abstract val String.expressionOrNull: Scope<KtExpression>
finally abstract val String.finally: FinallySection
for abstract val String.for: ForExpression
function abstract val String.function: NamedFunction
functionLiteral abstract val String.functionLiteral: FunctionLiteral
functionTypeParameter abstract val KtTypeReference.functionTypeParameter: Parameter
functionTypeReceiver abstract val KtTypeReference.functionTypeReceiver: Scope<KtFunctionTypeReceiver>
identifier abstract val String.identifier: PsiElement
if abstract val String.if: IfExpression
is abstract val String.is: IsExpression
lambdaParameterList abstract val String.lambdaParameterList: ParameterList
lambdaParameterListIfAny abstract val String.lambdaParameterListIfAny: ParameterList
loopParameter abstract val String.loopParameter: Parameter
modifierList abstract val String.modifierList: ModifierList
nameIdentifier abstract val String.nameIdentifier: PsiElement
nameIdentifierIfPossible abstract val String.nameIdentifierIfPossible: PsiElement?
newLine abstract val Int.newLine: PsiElement
object abstract val String.object: ObjectDeclaration
operationName abstract val String.operationName: Scope<KtSimpleNameExpression>
package abstract val String.package: PackageDirective
packageDirectiveOrNull abstract val String.packageDirectiveOrNull: PackageDirective
parameter abstract val String.parameter: Parameter
parameterList abstract val String.parameterList: ParameterList
primaryConstructorNoArgs abstract val primaryConstructorNoArgs: Scope<KtPrimaryConstructor>
property abstract val String.property: Property
propertyAccessorGet abstract val String.propertyAccessorGet: PropertyAccessor
propertyAccessorSet abstract val String.propertyAccessorSet: PropertyAccessor
return abstract val String.return: ReturnExpression
secondaryConstructor abstract val String.secondaryConstructor: Scope<KtSecondaryConstructor>
semicolon abstract val semicolon: PsiElement
simpleName abstract val String.simpleName: Scope<KtSimpleNameExpression>
star abstract val star: PsiElement
superTypeCallEntry abstract val String.superTypeCallEntry: Scope<KtSuperTypeCallEntry>
superTypeEntry abstract val String.superTypeEntry: Scope<KtSuperTypeEntry>
syntheticElement abstract val <A : SyntheticElement> A.syntheticElement: A
syntheticScope abstract val <A : KtDeclaration> Scope<A>.syntheticScope: Scope<A>
this abstract val String.this: ThisExpression
throw abstract val String.throw: ThrowExpression
try abstract val String.try: TryExpression
type abstract val String.type: TypeReference
abstract val KtTypeElement.type: TypeReference
typeArgument abstract val String.typeArgument: Scope<KtTypeProjection>
typeArguments abstract val String.typeArguments: Scope<KtTypeArgumentList>
typeOrNull abstract val String.typeOrNull: Scope<KtTypeReference>
typeParameter abstract val String.typeParameter: Scope<KtTypeParameter>
typeParameterList abstract val String.typeParameterList: Scope<KtTypeParameterList>
valKeyword abstract val valKeyword: PsiElement
varKeyword abstract val varKeyword: PsiElement
when abstract val String.when: WhenExpression
whenCondition abstract val String.whenCondition: WhenCondition
whenEntry abstract val String.whenEntry: WhenEntry
while abstract val String.while: WhileExpression
whiteSpace abstract val whiteSpace: PsiElement
abstract val String.whiteSpace: PsiElement
whiteSpaceAndArrow abstract val whiteSpaceAndArrow: Pair<PsiElement, PsiElement>

Functions

argument abstract fun argument(expression: KtExpression?, name: Name? = null, isSpread: Boolean = false, reformat: Boolean = true): ValueArgument
blockCodeFragment abstract fun String.blockCodeFragment(context: PsiElement?): Scope<KtBlockCodeFragment>
blockStringTemplateEntry abstract fun blockStringTemplateEntry(expression: KtExpression): Scope<KtStringTemplateEntryWithExpression>
declaration abstract fun <A : KtDeclaration> String.declaration(): Scope<A>
expressionCodeFragment abstract fun String.expressionCodeFragment(context: PsiElement?): Scope<KtExpressionCodeFragment>
expressionIn Creates an expression that has reference to its contextabstract fun String.expressionIn(context: PsiElement): Scope<KtExpressionCodeFragment>
file abstract fun String.file(fileName: String): File
abstract fun String.file(fileName: String, filePath: String): File
importDirective abstract fun importDirective(importPath: ImportPath): ImportDirective
labeledExpression abstract fun labeledExpression(labelName: String): Scope<KtLabeledExpression>
lambdaExpression abstract fun lambdaExpression(parameters: String, body: String): LambdaExpression
literalStringTemplateEntry abstract fun literalStringTemplateEntry(literal: String): Scope<KtLiteralStringTemplateEntry>
modifier abstract fun modifier(modifier: KtModifierKeywordToken): PsiElement
modifierList abstract fun modifierList(modifier: KtModifierKeywordToken): ModifierList
primaryConstructor abstract fun primaryConstructor(text: String = ""): Scope<KtPrimaryConstructor>
primaryConstructorWithModifiers abstract fun primaryConstructorWithModifiers(modifiers: String?): Scope<KtPrimaryConstructor>
property abstract fun property(modifiers: String?, name: String, type: String?, isVar: Boolean, initializer: String?): Property
abstract fun property(name: String, type: String?, isVar: Boolean, initializer: String?): Property
abstract fun property(name: String, type: String?, isVar: Boolean): Property
propertyDelegate abstract fun propertyDelegate(expression: KtExpression): Scope<KtPropertyDelegate>
propertyGetter abstract fun propertyGetter(expression: KtExpression): PropertyAccessor
propertySetter abstract fun propertySetter(expression: KtExpression): PropertyAccessor
simpleNameStringTemplateEntry abstract fun simpleNameStringTemplateEntry(name: String): Scope<KtSimpleNameStringTemplateEntry>
singleStatementBlock abstract fun singleStatementBlock(statement: KtExpression, prevComment: String? = null, nextComment: String? = null): BlockExpression
stringTemplate abstract fun stringTemplate(content: String): Scope<KtStringTemplateExpression>
typeAlias abstract fun typeAlias(name: String, typeParameters: List<String>, typeElement: KtTypeElement): TypeAlias
abstract fun typeAlias(name: String, typeParameters: List<String>, body: String): TypeAlias
typeCodeFragment abstract fun String.typeCodeFragment(context: PsiElement?): Scope<KtTypeCodeFragment>

Companion Object Functions

default fun default(project: Project): ElementScope

Inheritors

CompilerContext The Compiler Context represents the environment received by all plugins. The Compiler Context will get more services as they become relevant overtime to the development of compiler plugins.open class CompilerContext : ElementScope
DefaultElementScope Default impl for element scopes based on the KtPsiFactoryclass DefaultElementScope : ElementScope

Do you like Arrow?

Arrow Org
<