MCPcopy Create free account
hub / github.com/beefytech/Beef / AddTopLevelTypes

Method AddTopLevelTypes

IDEHelper/Compiler/BfAutoComplete.cpp:1485–1615  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1483}
1484
1485void BfAutoComplete::AddTopLevelTypes(BfAstNode* identifierNode, bool onlyAttribute)
1486{
1487 String filter;
1488
1489 if (identifierNode != NULL)
1490 {
1491 filter = identifierNode->ToString();
1492 mInsertStartIdx = identifierNode->GetSrcStart();
1493 mInsertEndIdx = identifierNode->GetSrcEnd();
1494 }
1495
1496 AddEntry(AutoCompleteEntry("token", "function"), filter);
1497 AddEntry(AutoCompleteEntry("token", "delegate"), filter);
1498 AddEntry(AutoCompleteEntry("token", "decltype"), filter);
1499
1500 if (mModule->mCurTypeInstance != NULL)
1501 {
1502 if (!onlyAttribute)
1503 {
1504 auto activeTypeDef = mModule->GetActiveTypeDef();
1505 for (auto genericParam : activeTypeDef->mGenericParamDefs)
1506 AddEntry(AutoCompleteEntry("generic", genericParam->mName), filter);
1507 }
1508
1509 AddCurrentTypes(mModule->mCurTypeInstance, filter, true, true, onlyAttribute);
1510 }
1511
1512 if (mModule->mCurMethodInstance != NULL)
1513 {
1514 if (!onlyAttribute)
1515 {
1516 for (auto genericParam : mModule->mCurMethodInstance->mMethodDef->mGenericParams)
1517 AddEntry(AutoCompleteEntry("generic", genericParam->mName), filter);
1518 }
1519 }
1520
1521 if (!onlyAttribute)
1522 {
1523 BfTypeDef* showTypeDef = NULL;
1524 for (auto& systemTypeDefEntry : mModule->mSystem->mSystemTypeDefs)
1525 {
1526 auto systemTypeDef = systemTypeDefEntry.mValue;
1527 if ((systemTypeDef->mTypeCode == BfTypeCode_IntUnknown) || (systemTypeDef->mTypeCode == BfTypeCode_UIntUnknown))
1528 continue;
1529 if ((AddEntry(AutoCompleteEntry("valuetype", systemTypeDef->mName->mString.mPtr), filter)) && (mIsGetDefinition))
1530 showTypeDef = systemTypeDef;
1531 }
1532 AddEntry(AutoCompleteEntry("valuetype", "SelfBase"), filter);
1533 AddEntry(AutoCompleteEntry("valuetype", "SelfOuter"), filter);
1534
1535 if (showTypeDef != NULL)
1536 {
1537 auto showType = mModule->ResolveTypeDef(showTypeDef);
1538 BfTypeInstance* showTypeInst = NULL;
1539 if (showType->IsPrimitiveType())
1540 showTypeInst = mModule->GetWrappedStructType(showType);
1541 else
1542 showTypeInst = showType->ToTypeInstance();

Callers 1

Calls 13

AutoCompleteEntryClass · 0.85
GetActiveTypeDefMethod · 0.80
GetWrappedStructTypeMethod · 0.80
ContainsReferenceMethod · 0.80
ToStringMethod · 0.45
GetSrcStartMethod · 0.45
GetSrcEndMethod · 0.45
ResolveTypeDefMethod · 0.45
IsPrimitiveTypeMethod · 0.45
ToTypeInstanceMethod · 0.45
IsEmptyMethod · 0.45

Tested by

no test coverage detected