1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Autocomplete fixes, debugger fixes

Fixed autocomplete issue typing out base class name
Fixed autocomplete issue typing before a member access (ie: in 'val' for 'val.MethodA()')
Fixed invocation autocomplete with [Friend] access
This commit is contained in:
Brian Fiete 2019-09-04 04:44:00 -07:00
parent 2f01cc14dd
commit 1e04bb1b3e
8 changed files with 53 additions and 7 deletions

View file

@ -1440,7 +1440,7 @@ bool BfAutoComplete::CheckMemberReference(BfAstNode* target, BfAstNode* dotToken
}
if (memberName != NULL)
isAutocompletingName = IsAutocompleteNode(dotToken, memberName);
isAutocompletingName = IsAutocompleteNode(dotToken, memberName, 0, 1);
if ((IsAutocompleteNode(dotToken, 0, 1)) || (isAutocompletingName))
{
@ -1773,6 +1773,9 @@ void BfAutoComplete::CheckInvocation(BfAstNode* invocationNode, BfTokenNode* ope
target = qualifiedTypeRef->mRight;
else if (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(target))
target = qualifiedNameNode->mRight;
if (auto attributedMember = BfNodeDynCast<BfAttributedIdentifierNode>(target))
target = attributedMember->mIdentifier;
}
bool doCapture = (bfParser->mCursorIdx >= openParen->GetSrcStart());

View file

@ -1106,7 +1106,7 @@ void BfDefBuilder::Visit(BfTypeDeclaration* typeDeclaration)
isAutoCompleteTempType = (mResolvePassData->mAutoComplete != NULL);
int cursorIdx = mResolvePassData->mParser->mCursorIdx;
if (typeDeclaration->Contains(cursorIdx))
if (typeDeclaration->Contains(cursorIdx, 1, 0))
{
// Within bounds
}

View file

@ -12607,7 +12607,9 @@ BfMethodInstance* BfModule::GetDelegateInvokeMethod(BfTypeInstance* typeInstance
void BfModule::CreateDelegateInvokeMethod()
{
// Clear out debug loc - otherwise we'll single step onto the delegate type declaration
mBfIRBuilder->ClearDebugLocation();
//mBfIRBuilder->ClearDebugLocation();
SetIllegalSrcPos();
auto typeInstance = mCurTypeInstance;
auto memberFuncType = mBfIRBuilder->MapMethod(mCurMethodInstance);