mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-14 14:24:10 +02:00
Fix flaky ShowErrorNext and random re-ordering in ErrorsPanel
This commit is contained in:
parent
4f9146c875
commit
96f2e07fb8
1 changed files with 23 additions and 9 deletions
|
@ -136,17 +136,15 @@ namespace IDE.ui
|
||||||
ClearAndDeleteItems(mResolveErrors);
|
ClearAndDeleteItems(mResolveErrors);
|
||||||
mResolveErrors.Capacity = mResolveErrors.Count;
|
mResolveErrors.Capacity = mResolveErrors.Count;
|
||||||
}
|
}
|
||||||
|
var bfl = scope:: List<BfPassInstance.BfError>();
|
||||||
for (int32 errorIdx = 0; errorIdx < errorCount; errorIdx++)
|
for (int32 errorIdx = 0; errorIdx < errorCount; errorIdx++)
|
||||||
{
|
{
|
||||||
BfPassInstance.BfError bfError = new BfPassInstance.BfError();
|
BfPassInstance.BfError bfError = new BfPassInstance.BfError();
|
||||||
passInstance.GetErrorData(errorIdx, bfError, true);
|
passInstance.GetErrorData(errorIdx, bfError, true);
|
||||||
|
if (bfError.mFilePath == null)
|
||||||
|
bfError.mFilePath = new String(""); //for sort below
|
||||||
|
|
||||||
if (bfError.mIsWarning)
|
bfl.Add(bfError);
|
||||||
mWarningCount++;
|
|
||||||
else
|
|
||||||
mErrorCount++;
|
|
||||||
|
|
||||||
for (int32 moreInfoIdx < bfError.mMoreInfoCount)
|
for (int32 moreInfoIdx < bfError.mMoreInfoCount)
|
||||||
{
|
{
|
||||||
BfPassInstance.BfError moreInfo = new BfPassInstance.BfError();
|
BfPassInstance.BfError moreInfo = new BfPassInstance.BfError();
|
||||||
|
@ -155,12 +153,26 @@ namespace IDE.ui
|
||||||
bfError.mMoreInfo = new List<BfPassInstance.BfError>();
|
bfError.mMoreInfo = new List<BfPassInstance.BfError>();
|
||||||
bfError.mMoreInfo.Add(moreInfo);
|
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 (passKind == .Parse)
|
||||||
{
|
{
|
||||||
if (bfError.mFilePath == null)
|
if (bfError.mFilePath == null)
|
||||||
bfError.mFilePath = new String("");
|
bfError.mFilePath = new String("");
|
||||||
|
|
||||||
bool added = mParseErrors.TryAdd(bfError.mFilePath, var keyPtr, var valuePtr);
|
bool added = mParseErrors.TryAdd(bfError.mFilePath, var keyPtr, var valuePtr);
|
||||||
if (added)
|
if (added)
|
||||||
{
|
{
|
||||||
|
@ -169,8 +181,9 @@ namespace IDE.ui
|
||||||
}
|
}
|
||||||
(*valuePtr).Add(bfError);
|
(*valuePtr).Add(bfError);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
mResolveErrors.Add(bfError);
|
mResolveErrors.Add(bfError);
|
||||||
|
}
|
||||||
|
|
||||||
mDataId++;
|
mDataId++;
|
||||||
}
|
}
|
||||||
|
@ -354,7 +367,6 @@ namespace IDE.ui
|
||||||
public override void Update()
|
public override void Update()
|
||||||
{
|
{
|
||||||
base.Update();
|
base.Update();
|
||||||
|
|
||||||
if (!mVisible)
|
if (!mVisible)
|
||||||
{
|
{
|
||||||
// Very dirty
|
// Very dirty
|
||||||
|
@ -369,6 +381,7 @@ namespace IDE.ui
|
||||||
else
|
else
|
||||||
mDirtyTicks++;
|
mDirtyTicks++;
|
||||||
|
|
||||||
|
if(mDirtyTicks==0)
|
||||||
ProcessErrors();
|
ProcessErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,6 +392,7 @@ namespace IDE.ui
|
||||||
|
|
||||||
public void ShowErrorNext()
|
public void ShowErrorNext()
|
||||||
{
|
{
|
||||||
|
if(mDirtyTicks==0)
|
||||||
ProcessErrors();
|
ProcessErrors();
|
||||||
|
|
||||||
bool foundFocused = false;
|
bool foundFocused = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue