1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Fixed save buffers during symbol rename

This commit is contained in:
Brian Fiete 2020-11-08 07:45:37 -08:00
parent a9d9776bcb
commit 330eb037e8
4 changed files with 41 additions and 9 deletions

View file

@ -73,7 +73,12 @@ namespace IDE
return false; return false;
return mLastFileTextVersion != mEditWidget.Content.mData.mCurTextVersionId; return mLastFileTextVersion != mEditWidget.Content.mData.mCurTextVersionId;
} }
public bool HasEditPanel()
{
return mEditWidget.mPanel != null;
}
public bool Reload() public bool Reload()
{ {
mHadRefusedFileChange = false; mHadRefusedFileChange = false;

View file

@ -12762,6 +12762,9 @@ namespace IDE
mLastFileChangeId = mFileWatcher.mChangeId; mLastFileChangeId = mFileWatcher.mChangeId;
} }
if (mSymbolReferenceHelper?.mKind == .Rename)
return;
var app = gApp; var app = gApp;
Debug.Assert(app != null); Debug.Assert(app != null);
@ -13138,6 +13141,9 @@ namespace IDE
void VerifyModifiedBuffers() void VerifyModifiedBuffers()
{ {
if (mSymbolReferenceHelper?.mKind == .Rename)
return;
mWorkspace.WithProjectItems(scope (projectItem) => mWorkspace.WithProjectItems(scope (projectItem) =>
{ {
var projectSource = projectItem as ProjectSource; var projectSource = projectItem as ProjectSource;

View file

@ -720,6 +720,8 @@ namespace IDE.ui
void Dispose() void Dispose()
{ {
bool hadChange = (mKind == Kind.Rename) && (mNewReplaceStr != mOrigReplaceStr);
mSourceViewPanel.CancelResolve(.GetSymbolInfo); mSourceViewPanel.CancelResolve(.GetSymbolInfo);
if (mPassInstance != null) if (mPassInstance != null)
{ {
@ -756,15 +758,24 @@ namespace IDE.ui
editWidgetContent.mData.mText[i].mDisplayFlags &= 0xFF ^ (uint8)(SourceElementFlags.SymbolReference); editWidgetContent.mData.mText[i].mDisplayFlags &= 0xFF ^ (uint8)(SourceElementFlags.SymbolReference);
} }
using (gApp.mMonitor.Enter()) if (hadChange)
editData.SetSavedData(null, IdSpan());
var app = IDEApp.sApp;
if ((mKind == Kind.Rename) && (IDEApp.IsBeefFile(editData.mFilePath)))
{ {
for (var projectSource in editData.mProjectSources) using (gApp.mMonitor.Enter())
app.mBfResolveCompiler.QueueProjectSource(projectSource, .None, false); editData.SetSavedData(null, IdSpan());
app.mBfResolveCompiler.QueueDeferredResolveAll();
if (!editData.HasEditPanel())
{
gApp.SaveFile(editData);
}
if (IDEApp.IsBeefFile(editData.mFilePath))
{
for (var projectSource in editData.mProjectSources)
gApp.mBfResolveCompiler.QueueProjectSource(projectSource, .None, false);
gApp.mBfResolveCompiler.QueueDeferredResolveAll();
}
} }
} }
} }
} }

View file

@ -60,7 +60,7 @@ namespace IDE.Util
mUndoData.mUndoCount++; mUndoData.mUndoCount++;
if (mUndoData.mPerforming) if (mUndoData.mPerforming)
return true; return true;
mUndoData.mPerforming = true; mUndoData.mPerforming = true;
for (var editData in mUndoData.mFileEditDatas) for (var editData in mUndoData.mFileEditDatas)
@ -78,6 +78,11 @@ namespace IDE.Util
break; break;
} }
if (!editData.HasEditPanel())
{
gApp.SaveFile(editData);
}
if (IDEApp.IsBeefFile(editData.mFilePath)) if (IDEApp.IsBeefFile(editData.mFilePath))
{ {
for (var projectSource in editData.mProjectSources) for (var projectSource in editData.mProjectSources)
@ -122,6 +127,11 @@ namespace IDE.Util
break; break;
} }
if (!editData.HasEditPanel())
{
gApp.SaveFile(editData);
}
if (IDEApp.IsBeefFile(editData.mFilePath)) if (IDEApp.IsBeefFile(editData.mFilePath))
{ {
for (var projectSource in editData.mProjectSources) for (var projectSource in editData.mProjectSources)