From b57ac935e5cd8b2ffefcc2e750417a3913f8485c Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 27 Dec 2021 14:25:34 -0500 Subject: [PATCH] Add "Time Autocomplete" internal IDE flag --- IDE/src/Compiler/BfParser.bf | 1 + IDE/src/IDEApp.bf | 2 ++ IDE/src/ui/AutoComplete.bf | 1 + IDE/src/ui/SourceViewPanel.bf | 9 +++++++++ 4 files changed, 13 insertions(+) diff --git a/IDE/src/Compiler/BfParser.bf b/IDE/src/Compiler/BfParser.bf index dfb0d967..15ab5174 100644 --- a/IDE/src/Compiler/BfParser.bf +++ b/IDE/src/Compiler/BfParser.bf @@ -78,6 +78,7 @@ namespace IDE.Compiler public bool mCancelled; public int32 mTextVersion = -1; public bool mIsUserRequested; + public Stopwatch mStopwatch ~ delete _; } public class BfParser : ILeakIdentifiable diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index 51d9d475..8150ebb7 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -169,6 +169,7 @@ namespace IDE public bool mLastCompileHadMessages; public bool mPauseOnExit; public bool mDbgDelayedAutocomplete; + public bool mDbgTimeAutocomplete; public BeefConfig mBeefConfig = new BeefConfig() ~ delete _; public List mDeferredFails = new .() ~ DeleteContainerAndItems!(_); public String mInitialCWD = new .() ~ delete _; @@ -5429,6 +5430,7 @@ namespace IDE var internalEditMenu = subMenu.AddMenuItem("Internal"); internalEditMenu.AddMenuItem("Hilight Cursor References", null, new (menu) => { ToggleCheck(menu, ref gApp.mSettings.mEditorSettings.mHiliteCursorReferences); }, null, null, true, gApp.mSettings.mEditorSettings.mHiliteCursorReferences ? 1 : 0); internalEditMenu.AddMenuItem("Delayed Autocomplete", null, new (menu) => { ToggleCheck(menu, ref gApp.mDbgDelayedAutocomplete); }, null, null, true, gApp.mDbgDelayedAutocomplete ? 1 : 0); + internalEditMenu.AddMenuItem("Time Autocomplete", null, new (menu) => { ToggleCheck(menu, ref gApp.mDbgTimeAutocomplete); }, null, null, true, gApp.mDbgTimeAutocomplete ? 1 : 0); } ////////// diff --git a/IDE/src/ui/AutoComplete.bf b/IDE/src/ui/AutoComplete.bf index 1e0a4640..88fb6d2f 100644 --- a/IDE/src/ui/AutoComplete.bf +++ b/IDE/src/ui/AutoComplete.bf @@ -1128,6 +1128,7 @@ namespace IDE.ui } } + public Stopwatch mStopwatch ~ delete _; public EditWidget mTargetEditWidget; public Event mOnAutoCompleteInserted ~ _.Dispose(); public Event mOnClosed ~ _.Dispose(); diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index e3867de8..29441252 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -618,6 +618,8 @@ namespace IDE.ui //Classify(options.HasFlag(.HighPriority) ? ResolveType.Autocomplete_HighPri : ResolveType.Autocomplete); ResolveParams resolveParams = new ResolveParams(); + if (gApp.mDbgTimeAutocomplete) + resolveParams.mStopwatch = new .()..Start(); resolveParams.mIsUserRequested = options.HasFlag(.UserRequested); Classify(.Autocomplete, resolveParams); if (!resolveParams.mInDeferredList) @@ -5540,6 +5542,13 @@ namespace IDE.ui HandleResolveResult(resolveResult.mResolveType, resolveResult.mAutocompleteInfo, resolveResult); + if (resolveResult.mStopwatch != null) + { + resolveResult.mStopwatch.Stop(); + if (var autoComplete = GetAutoComplete()) + Debug.WriteLine($"Autocomplete {resolveResult.mStopwatch.ElapsedMilliseconds}ms entries: {autoComplete.mAutoCompleteListWidget.mEntryList.Count}"); + } + //Debug.WriteLine("ProcessDeferredResolveResults finished {0}", resolveResult.mResolveType); //bool checkIt = (mFilePath.Contains("Program.bf")) && (mEditWidget.mEditWidgetContent.mData.mCurTextVersionId > 3);