diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 7cbbe0f3..6194ce99 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -7632,6 +7632,8 @@ namespace IDE.ui let c = ewc.mData.mText[checkPos].mChar; if ((c.IsLetterOrDigit) || (c == '_') || (c == '@')) return true; + if ((offset == 0) && (c == '.')) + return true; let elementType = (SourceElementType)ewc.mData.mText[checkPos].mDisplayTypeId; if (elementType == .Method) return true; diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 6763440b..3d22d444 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -21492,6 +21492,16 @@ void BfExprEvaluator::DoMemberReference(BfMemberReferenceExpression* memberRefEx autoComplete->AddSelfResultTypeMembers(expectingTypeInst, expectingTypeInst, filter, allowPrivate); } } + else if ((expectingTypeInst != NULL) && (autoComplete->IsAutocompleteNode(memberRefExpr->mDotToken)) && (autoComplete->mIsGetDefinition)) + { + if ((autoComplete->mDefType == NULL) && + (autoComplete->mDefMethod == NULL) && (autoComplete->mDefField == NULL) && + (autoComplete->mDefProp == NULL) && (expectingTypeInst->mTypeDef->mTypeDeclaration != NULL)) + { + autoComplete->mDefType = expectingTypeInst->mTypeDef; + autoComplete->SetDefinitionLocation(expectingTypeInst->mTypeDef->mTypeDeclaration->mNameNode); + } + } } else {