From 99c7a9fe1f908bff4a9a98b19fd444a1157678ec Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 3 Aug 2020 07:26:36 -0700 Subject: [PATCH] Fixed autocomplete flashing issues --- IDE/src/ui/AutoComplete.bf | 2 -- IDEHelper/Compiler/BfExprEvaluator.cpp | 14 ++++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/IDE/src/ui/AutoComplete.bf b/IDE/src/ui/AutoComplete.bf index d4b8ca70..b95be587 100644 --- a/IDE/src/ui/AutoComplete.bf +++ b/IDE/src/ui/AutoComplete.bf @@ -534,8 +534,6 @@ namespace IDE.ui int windowHeight = (int)(mWantHeight + Math.Max(0, mDocHeight - GS!(32))); - Debug.WriteLine("Updating {} {}", windowWidth, mRightBoxAdjust); - mIgnoreMove++; if (mAutoComplete.mInvokeWidget != null) mAutoComplete.mInvokeWidget.mIgnoreMove++; diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 74baaef4..e5e502d0 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -10424,18 +10424,23 @@ BfLambdaInstance* BfExprEvaluator::GetLambdaInstance(BfLambdaBindExpression* lam { String paramName = invokeMethodInstance->GetParamName(paramIdx); autoComplete->mEntriesSet.Clear(); + if (paramName.IsEmpty()) + paramName += StrFormat("val%d", paramIdx + 1); autoComplete->AddEntry(AutoCompleteEntry("paramName", paramName)); autoComplete->mInsertStartIdx = cursorIdx; autoComplete->mInsertEndIdx = cursorIdx; - if ((paramIdx == 0) && (lambdaBindExpr->mParams.IsEmpty())) + if ((paramIdx == 0) && (lambdaBindExpr->mParams.IsEmpty())) { String totalNames; for (int checkIdx = 0; checkIdx < (int)invokeMethodInstance->GetParamCount(); checkIdx++) { if (!totalNames.IsEmpty()) totalNames += ", "; - totalNames += invokeMethodInstance->GetParamName(checkIdx); + String paramName = invokeMethodInstance->GetParamName(checkIdx); + if (paramName.IsEmpty()) + paramName += StrFormat("val%d", checkIdx + 1); + totalNames += paramName; } autoComplete->AddEntry(AutoCompleteEntry("paramNames", totalNames)); } @@ -12186,9 +12191,10 @@ void BfExprEvaluator::Visit(BfObjectCreateExpression* objCreateExpr) BfResolvedArgs resolvedArgs; - if (autoComplete != NULL) + auto rawAutoComplete = mModule->mCompiler->GetAutoComplete(); + if (rawAutoComplete != NULL) { - SetAndRestoreValue prevCapturing(autoComplete->mIsCapturingMethodMatchInfo, false); + SetAndRestoreValue prevCapturing(rawAutoComplete->mIsCapturingMethodMatchInfo, false); MatchConstructor(refNode, objCreateExpr, arrayValue, arrayType, resolvedArgs, false, false); } else