From 96f2e07fb88bfc0909ed3c374cf905bc5a74b859 Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Thu, 23 Dec 2021 02:19:56 +0200 Subject: [PATCH 1/4] Fix flaky ShowErrorNext and random re-ordering in ErrorsPanel --- IDE/src/ui/ErrorsPanel.bf | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/IDE/src/ui/ErrorsPanel.bf b/IDE/src/ui/ErrorsPanel.bf index f64e2724..482d516d 100644 --- a/IDE/src/ui/ErrorsPanel.bf +++ b/IDE/src/ui/ErrorsPanel.bf @@ -136,17 +136,15 @@ namespace IDE.ui ClearAndDeleteItems(mResolveErrors); mResolveErrors.Capacity = mResolveErrors.Count; } - + var bfl = scope:: List(); for (int32 errorIdx = 0; errorIdx < errorCount; errorIdx++) { BfPassInstance.BfError bfError = new BfPassInstance.BfError(); passInstance.GetErrorData(errorIdx, bfError, true); + if (bfError.mFilePath == null) + bfError.mFilePath = new String(""); //for sort below - if (bfError.mIsWarning) - mWarningCount++; - else - mErrorCount++; - + bfl.Add(bfError); for (int32 moreInfoIdx < bfError.mMoreInfoCount) { BfPassInstance.BfError moreInfo = new BfPassInstance.BfError(); @@ -155,12 +153,26 @@ namespace IDE.ui bfError.mMoreInfo = new List(); bfError.mMoreInfo.Add(moreInfo); } + } + + function int(int lhs, int rhs) ascLambda = (lhs, rhs) => lhs <=> rhs; + bfl.Sort(scope (lhs, rhs) => ascLambda(lhs.mFilePath.GetHashCode()+lhs.mSrcStart, rhs.mFilePath.GetHashCode()+rhs.mSrcStart)); + + for (int32 errorIdx = 0; errorIdx < bfl.Count; errorIdx++) + { + var bfError = bfl[errorIdx]; + + if (bfError.mIsWarning) + { + mWarningCount++; + } + else + mErrorCount++; if (passKind == .Parse) { if (bfError.mFilePath == null) bfError.mFilePath = new String(""); - bool added = mParseErrors.TryAdd(bfError.mFilePath, var keyPtr, var valuePtr); if (added) { @@ -169,8 +181,9 @@ namespace IDE.ui } (*valuePtr).Add(bfError); } - else + else { mResolveErrors.Add(bfError); + } mDataId++; } @@ -354,7 +367,6 @@ namespace IDE.ui public override void Update() { base.Update(); - if (!mVisible) { // Very dirty @@ -369,6 +381,7 @@ namespace IDE.ui else mDirtyTicks++; + if(mDirtyTicks==0) ProcessErrors(); } @@ -379,6 +392,7 @@ namespace IDE.ui public void ShowErrorNext() { + if(mDirtyTicks==0) ProcessErrors(); bool foundFocused = false; From 70c41dbfc39e7f89e856006f6a7575e5ad7b8cd5 Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Thu, 23 Dec 2021 02:25:37 +0200 Subject: [PATCH 2/4] Fix whitespace --- IDE/src/ui/ErrorsPanel.bf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IDE/src/ui/ErrorsPanel.bf b/IDE/src/ui/ErrorsPanel.bf index 482d516d..c886adea 100644 --- a/IDE/src/ui/ErrorsPanel.bf +++ b/IDE/src/ui/ErrorsPanel.bf @@ -181,9 +181,8 @@ namespace IDE.ui } (*valuePtr).Add(bfError); } - else { - mResolveErrors.Add(bfError); - } + else + mResolveErrors.Add(bfError); mDataId++; } @@ -367,6 +366,7 @@ namespace IDE.ui public override void Update() { base.Update(); + if (!mVisible) { // Very dirty From 3676825b123d4e9abc6dd991d658b76b9b3cab23 Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Thu, 23 Dec 2021 02:27:57 +0200 Subject: [PATCH 3/4] Fix whitespace --- IDE/src/ui/ErrorsPanel.bf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IDE/src/ui/ErrorsPanel.bf b/IDE/src/ui/ErrorsPanel.bf index c886adea..edf63cc3 100644 --- a/IDE/src/ui/ErrorsPanel.bf +++ b/IDE/src/ui/ErrorsPanel.bf @@ -153,7 +153,7 @@ namespace IDE.ui bfError.mMoreInfo = new List(); bfError.mMoreInfo.Add(moreInfo); } - } + } function int(int lhs, int rhs) ascLambda = (lhs, rhs) => lhs <=> rhs; bfl.Sort(scope (lhs, rhs) => ascLambda(lhs.mFilePath.GetHashCode()+lhs.mSrcStart, rhs.mFilePath.GetHashCode()+rhs.mSrcStart)); From 33355360817f694d5581e4578588ebdbf335e8f2 Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Thu, 23 Dec 2021 02:33:14 +0200 Subject: [PATCH 4/4] Fix whitespace --- IDE/src/ui/ErrorsPanel.bf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IDE/src/ui/ErrorsPanel.bf b/IDE/src/ui/ErrorsPanel.bf index edf63cc3..be5f5fbb 100644 --- a/IDE/src/ui/ErrorsPanel.bf +++ b/IDE/src/ui/ErrorsPanel.bf @@ -382,7 +382,7 @@ namespace IDE.ui mDirtyTicks++; if(mDirtyTicks==0) - ProcessErrors(); + ProcessErrors(); } public void SetNeedsResolveAll() @@ -393,7 +393,7 @@ namespace IDE.ui public void ShowErrorNext() { if(mDirtyTicks==0) - ProcessErrors(); + ProcessErrors(); bool foundFocused = false; let root = mErrorLV.GetRoot();