mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 11:38:21 +02:00
Fixed issues autocompleting in extensions outside definition project
This commit is contained in:
parent
2daafa7b4c
commit
476df62a24
2 changed files with 16 additions and 15 deletions
|
@ -1252,6 +1252,17 @@ void BfAutoComplete::AddExtensionMethods(BfTypeInstance* targetType, BfTypeInsta
|
|||
}
|
||||
}
|
||||
|
||||
BfProject* BfAutoComplete::GetActiveProject()
|
||||
{
|
||||
BfProject* bfProject = NULL;
|
||||
auto activeTypeDef = mModule->GetActiveTypeDef();
|
||||
if (activeTypeDef != NULL)
|
||||
bfProject = activeTypeDef->mProject;
|
||||
else
|
||||
bfProject = mCompiler->mResolvePassData->mParser->mProject;
|
||||
return bfProject;
|
||||
}
|
||||
|
||||
void BfAutoComplete::AddTopLevelNamespaces(BfAstNode* identifierNode)
|
||||
{
|
||||
String filter;
|
||||
|
@ -1262,11 +1273,7 @@ void BfAutoComplete::AddTopLevelNamespaces(BfAstNode* identifierNode)
|
|||
mInsertEndIdx = identifierNode->GetSrcEnd();
|
||||
}
|
||||
|
||||
BfProject* bfProject = NULL;
|
||||
if (mModule->mCurTypeInstance != NULL)
|
||||
bfProject = mModule->mCurTypeInstance->mTypeDef->mProject;
|
||||
else
|
||||
bfProject = mCompiler->mResolvePassData->mParser->mProject;
|
||||
BfProject* bfProject = GetActiveProject();
|
||||
|
||||
auto _AddProjectNamespaces = [&](BfProject* project)
|
||||
{
|
||||
|
@ -1923,12 +1930,7 @@ bool BfAutoComplete::CheckMemberReference(BfAstNode* target, BfAstNode* dotToken
|
|||
BfAtomComposite targetComposite;
|
||||
bool isValid = mSystem->ParseAtomComposite(targetStr, targetComposite);
|
||||
|
||||
BfProject* bfProject = NULL;
|
||||
if (mModule->mCurTypeInstance != NULL)
|
||||
bfProject = mModule->mCurTypeInstance->mTypeDef->mProject;
|
||||
else
|
||||
bfProject = mCompiler->mResolvePassData->mParser->mProject;
|
||||
|
||||
BfProject* bfProject = GetActiveProject();
|
||||
auto _CheckProject = [&](BfProject* project)
|
||||
{
|
||||
if ((isValid) && (project->mNamespaces.ContainsKey(targetComposite)))
|
||||
|
@ -1946,14 +1948,12 @@ bool BfAutoComplete::CheckMemberReference(BfAstNode* target, BfAstNode* dotToken
|
|||
|
||||
if (!isUsingDirective)
|
||||
{
|
||||
BfTypeDef* curTypeDef = NULL;
|
||||
if (mModule->mCurTypeInstance != NULL)
|
||||
curTypeDef = mModule->mCurTypeInstance->mTypeDef;
|
||||
BfProject* activeProject = GetActiveProject();
|
||||
for (auto typeDef : mSystem->mTypeDefs)
|
||||
{
|
||||
if ((typeDef->mNamespace == targetComposite) && (typeDef->mOuterType == NULL) &&
|
||||
(!typeDef->mIsPartial) &&
|
||||
((curTypeDef == NULL) || (curTypeDef->mProject->ContainsReference(typeDef->mProject))))
|
||||
((activeProject == NULL) || (activeProject->ContainsReference(typeDef->mProject))))
|
||||
{
|
||||
AddTypeDef(typeDef, filter, onlyAttribute);
|
||||
}
|
||||
|
|
|
@ -207,6 +207,7 @@ public:
|
|||
int mDefTypeGenericParamIdx;
|
||||
|
||||
public:
|
||||
BfProject* GetActiveProject();
|
||||
bool CheckProtection(BfProtection protection, BfTypeDef* typeDef, bool allowProtected, bool allowPrivate);
|
||||
String GetFilter(BfAstNode* node);
|
||||
const char* GetTypeName(BfType* type);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue