1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Added IDE colorization: Member, Local, Parameter

This commit is contained in:
Brian Fiete 2024-12-02 07:39:17 -05:00
parent ba436231cb
commit 2b9fa80b81
6 changed files with 74 additions and 7 deletions

View file

@ -159,6 +159,7 @@ void BfSourceClassifier::Visit(BfFieldDeclaration* fieldDecl)
VisitChild(fieldDecl->mReadOnlySpecifier);
VisitChild(fieldDecl->mTypeRef);
VisitChild(fieldDecl->mNameNode);
SetElementType(fieldDecl->mNameNode, BfSourceElementType_Member);
}
void BfSourceClassifier::Visit(BfFieldDtorDeclaration* fieldDtorDecl)
@ -285,6 +286,8 @@ void BfSourceClassifier::Visit(BfQualifiedNameNode* qualifiedName)
VisitChild(qualifiedName->mLeft);
VisitChild(qualifiedName->mDot);
VisitChild(qualifiedName->mRight);
if (BfNodeIsExact<BfIdentifierNode>(qualifiedName->mRight))
SetElementType(qualifiedName->mRight, BfSourceElementType_Member);
}
void BfSourceClassifier::Visit(BfThisExpression* thisExpr)
@ -306,7 +309,7 @@ void BfSourceClassifier::Visit(BfMemberReferenceExpression* memberRefExpr)
Visit((BfAstNode*)memberRefExpr);
VisitChild(memberRefExpr->mTarget);
VisitChild(memberRefExpr->mDotToken);
VisitChild(memberRefExpr->mMemberName);
SetElementType(memberRefExpr->mMemberName, BfSourceElementType_Member);
}
void BfSourceClassifier::Visit(BfNamedTypeReference* typeRef)
@ -395,6 +398,24 @@ void BfSourceClassifier::Visit(BfGenericInstanceTypeRef* genericInstTypeRef)
VisitChild(genericInstTypeRef->mCloseChevron);
}
void BfSourceClassifier::Visit(BfVariableDeclaration* varDecl)
{
BfElementVisitor::Visit(varDecl);
if (!varDecl->IsA<BfParameterDeclaration>())
SetElementType(varDecl->mNameNode, BfSourceElementType_Local);
}
void BfSourceClassifier::Visit(BfLambdaBindExpression* lambdaBindExpr)
{
BfElementVisitor::Visit(lambdaBindExpr);
for (auto param : lambdaBindExpr->mParams)
{
SetElementType(param, BfSourceElementType_Parameter);
}
}
void BfSourceClassifier::Visit(BfLocalMethodDeclaration* methodDecl)
{
if (IsInterestedInMember(methodDecl, true))
@ -573,6 +594,12 @@ void BfSourceClassifier::Visit(BfMethodDeclaration* methodDeclaration)
SetElementType(methodDeclaration->mNameNode, BfSourceElementType_Method);
for (auto paramDecl : methodDeclaration->mParams)
{
if (paramDecl != NULL)
SetElementType(paramDecl->mNameNode, BfSourceElementType_Parameter);
}
if (methodDeclaration->mGenericParams != NULL)
{
for (auto& genericParam : methodDeclaration->mGenericParams->mGenericParams)
@ -615,6 +642,8 @@ void BfSourceClassifier::Visit(BfPropertyDeclaration* propertyDeclaration)
BfElementVisitor::Visit(propertyDeclaration);
SetElementType(propertyDeclaration->mNameNode, BfSourceElementType_Member);
if (auto expr = BfNodeDynCast<BfPropertyBodyExpression>(propertyDeclaration->mDefinitionBlock))
return;