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

Method ProcessAutocompleteTempType

IDEHelper/Compiler/BfCompiler.cpp:4104–5060  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4102}
4103
4104void BfCompiler::ProcessAutocompleteTempType()
4105{
4106 BP_ZONE_F("BfCompiler::ProcessAutocompleteTempType %d", mResolvePassData->mResolveType);
4107
4108 String& autoCompleteResultString = *gTLStrReturn.Get();
4109 autoCompleteResultString.clear();
4110
4111 if (mContext->mBfObjectType == NULL)
4112 return; // Not initialized yet
4113 auto module = mContext->mScratchModule;
4114
4115 auto autoComplete = mResolvePassData->mAutoComplete;
4116 BfLogSysM("ProcessAutocompleteTempType %d\n", autoComplete->mResolveType);
4117
4118 SetAndRestoreValue<bool> prevCanceling(mCanceling, false);
4119
4120 BF_ASSERT(mResolvePassData->mAutoComplete->mDefMethod == NULL);
4121
4122 if (autoComplete->mResolveType == BfResolveType_GetNavigationData)
4123 {
4124 for (auto parser : mResolvePassData->mParsers)
4125 {
4126 for (auto node : parser->mSidechannelRootNode->mChildArr)
4127 {
4128 if (auto preprocNode = BfNodeDynCast<BfPreprocessorNode>(node))
4129 {
4130 if (preprocNode->mCommand->Equals("region"))
4131 {
4132 if (!autoCompleteResultString.empty())
4133 autoCompleteResultString += "\n";
4134 autoCompleteResultString += "#";
4135 preprocNode->mArgument->ToString(autoCompleteResultString);
4136 mContext->mScratchModule->UpdateSrcPos(preprocNode, (BfSrcPosFlags)(BfSrcPosFlag_NoSetDebugLoc | BfSrcPosFlag_Force));
4137 autoCompleteResultString += StrFormat("\tregion\t%d\t%d", module->mCurFilePosition.mCurLine, module->mCurFilePosition.mCurColumn);
4138 }
4139 }
4140 }
4141 }
4142
4143 for (auto tempTypeDef : mResolvePassData->mAutoCompleteTempTypes)
4144 {
4145 String typeName = tempTypeDef->ToString();
4146
4147 BfLogSysM("BfResolveType_GetNavigationData TypeDef:%p %s\n", tempTypeDef, typeName.c_str());
4148
4149 auto refNode = tempTypeDef->GetRefNode();
4150 if ((refNode != NULL) && (!tempTypeDef->IsGlobalsContainer()))
4151 {
4152 if (!autoCompleteResultString.empty())
4153 autoCompleteResultString += "\n";
4154
4155 String typeName = BfTypeUtils::TypeToString(tempTypeDef, BfTypeNameFlag_OmitNamespace);
4156
4157 module->UpdateSrcPos(refNode, (BfSrcPosFlags)(BfSrcPosFlag_NoSetDebugLoc | BfSrcPosFlag_Force));
4158 autoCompleteResultString += typeName;
4159 if (tempTypeDef->mTypeCode == BfTypeCode_Object)
4160 autoCompleteResultString += "\tclass";
4161 else if (tempTypeDef->mTypeCode == BfTypeCode_Enum)

Callers 1

Calls 15

TypeToStringFunction · 0.85
AutoCompleteEntryClass · 0.85
BfTypedValueClass · 0.85
UpdateSrcPosMethod · 0.80
GetMethodDeclarationMethod · 0.80
CleanupFileInstancesMethod · 0.80
GetParserMethod · 0.80
SetModuleMethod · 0.80
CheckFixitMethod · 0.80
AddEntryMethod · 0.80
FixitGetLocationMethod · 0.80

Tested by

no test coverage detected