diff --git a/IDEHelper/Compiler/BfAutoComplete.cpp b/IDEHelper/Compiler/BfAutoComplete.cpp index 24793a8b..ab720096 100644 --- a/IDEHelper/Compiler/BfAutoComplete.cpp +++ b/IDEHelper/Compiler/BfAutoComplete.cpp @@ -560,18 +560,13 @@ void BfAutoComplete::AddTypeDef(BfTypeDef* typeDef, const StringImpl& filter, bo if (entryAdded != NULL) { - if (CheckDocumentation(entryAdded, NULL)) + if ((CheckDocumentation(entryAdded, NULL)) && (entryAdded->mDocumentation == NULL)) { auto typeInst = mModule->ResolveTypeDef(typeDef, BfPopulateType_IdentityNoRemapAlias); - String str; + StringT<1024> str; if (typeInst != NULL) str = mModule->TypeToString(typeInst, BfTypeNameFlag_ExtendedInfo); - if (entryAdded->mDocumentation != NULL) - { - str += "\x04"; - str.Append(entryAdded->mDocumentation); - } - else if (typeDef->mTypeDeclaration->mDocumentation != NULL) + if (typeDef->mTypeDeclaration->mDocumentation != NULL) { if (!str.IsEmpty()) str += "\x05"; @@ -1263,7 +1258,7 @@ void BfAutoComplete::AddTopLevelTypes(BfAstNode* identifierNode, bool onlyAttrib if (activeTypeDef != NULL) { BfProject* curProject = activeTypeDef->mProject; - + if (mModule->mCurTypeInstance != NULL) { for (auto innerTypeDef : mModule->mCurTypeInstance->mTypeDef->mNestedTypes) diff --git a/IDEHelper/Compiler/BfReducer.cpp b/IDEHelper/Compiler/BfReducer.cpp index 28eea2a8..151e40e8 100644 --- a/IDEHelper/Compiler/BfReducer.cpp +++ b/IDEHelper/Compiler/BfReducer.cpp @@ -5722,12 +5722,8 @@ BfAstNode* BfReducer::ReadTypeMember(BfTokenNode* tokenNode, int depth, BfAstNod return NULL; } - SetAndRestoreValue prevTypeMemberNodeStart(mTypeMemberNodeStart, attributes, false); - if (depth == 0) - prevTypeMemberNodeStart.Set(); - mVisitorPos.MoveNext(); - auto memberNode = ReadTypeMember(nextNode, depth + 1, (deferredHeadNode != NULL) ? deferredHeadNode : attributes); + auto memberNode = ReadTypeMember(nextNode, 0, (deferredHeadNode != NULL) ? deferredHeadNode : attributes); if (memberNode == NULL) return NULL; auto member = BfNodeDynCast(memberNode); @@ -6418,16 +6414,16 @@ void BfReducer::ReadPropertyBlock(BfPropertyDeclaration* propertyDeclaration, Bf BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, int depth, BfAstNode* deferredHeadNode) { - SetAndRestoreValue prevTypeMemberNodeStart(mTypeMemberNodeStart, node, false); - if (depth == 0) - prevTypeMemberNodeStart.Set(); +// SetAndRestoreValue prevTypeMemberNodeStart(mTypeMemberNodeStart, node, false); +// if (depth == 0) +// prevTypeMemberNodeStart.Set(); AssertCurrentNode(node); BfTokenNode* refToken = NULL; if (auto tokenNode = BfNodeDynCast(node)) - { + { BfToken token = tokenNode->GetToken(); bool isTypeRef = false; if ((token == BfToken_Delegate) || (token == BfToken_Function)) @@ -6461,7 +6457,12 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, int depth, BfAstNode* defe // Read type member } else + { + SetAndRestoreValue prevTypeMemberNodeStart(mTypeMemberNodeStart, tokenNode, false); + if (depth == 0) + prevTypeMemberNodeStart.Set(); return ReadTypeMember(tokenNode, depth, deferredHeadNode); + } } else if (auto block = BfNodeDynCast(node)) { @@ -9591,7 +9592,10 @@ void BfReducer::HandleTypeDeclaration(BfTypeDeclaration* typeDecl, BfAttributeDi prevNode = node; BfAstNode* typeMember = BfNodeDynCast(node); if (typeMember == NULL) + { + SetAndRestoreValue prevTypeMemberNodeStart(mTypeMemberNodeStart, node); typeMember = ReadTypeMember(node); + } //methodDeclaration->mDocumentation = FindDocumentation(methodDeclaration);