1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Added ability to rename namespaces

This commit is contained in:
Brian Fiete 2020-05-31 07:12:17 -07:00
parent 91e0d10128
commit 014263c3a7
16 changed files with 373 additions and 78 deletions

View file

@ -2564,6 +2564,43 @@ void BfAutoComplete::CheckLabel(BfIdentifierNode* identifierNode, BfAstNode* pre
}
}
void BfAutoComplete::CheckNamespace(BfAstNode* node, const BfAtomComposite& namespaceName)
{
if (mResolveType == BfResolveType_GetSymbolInfo)
{
if (IsAutocompleteNode(node))
{
int namespaceCount = namespaceName.mSize;
auto checkNode = node;
while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkNode))
{
if (!IsAutocompleteNode(qualifiedTypeRef->mLeft))
break;
namespaceCount--;
checkNode = qualifiedTypeRef->mLeft;
}
while (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNode))
{
if (!IsAutocompleteNode(qualifiedNameNode->mLeft))
break;
namespaceCount--;
checkNode = qualifiedNameNode->mLeft;
}
while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkNode))
checkNode = qualifiedTypeRef->mRight;
while (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNode))
checkNode = qualifiedNameNode->mRight;
mInsertStartIdx = checkNode->GetSrcStart();
mInsertEndIdx = checkNode->GetSrcEnd();
mDefNamespace.Set(namespaceName.mParts, namespaceCount, NULL, 0);
}
}
}
void BfAutoComplete::AddTypeInstanceEntry(BfTypeInstance* typeInst)
{
String bestTypeName = mModule->TypeToString(typeInst, BfTypeNameFlag_ReduceName);