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:
parent
91e0d10128
commit
014263c3a7
16 changed files with 373 additions and 78 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue