1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-16 07:14:09 +02:00

Improvements to emit markers on emits only in specialized types

This commit is contained in:
Brian Fiete 2022-05-02 07:48:29 -07:00
parent 01112c54fe
commit 5271f5e2fd
14 changed files with 342 additions and 68 deletions

View file

@ -221,6 +221,12 @@ namespace IDE.Compiler
class RefreshViewCommand : Command
{
public ViewRefreshKind mRefreshKind;
public this(ViewRefreshKind refreshKind)
{
mRefreshKind = refreshKind;
}
}
class SetWorkspaceOptionsCommand : Command
@ -237,6 +243,7 @@ namespace IDE.Compiler
public void* mNativeBfCompiler;
public bool mIsResolveOnly;
public bool mWantsResolveAllCollapseRefresh;
public BfSystem mBfSystem;
bool mWantsRemoveOldData;
public Dictionary<String, String> mRebuildWatchingFiles = new .() ~ delete _;
@ -392,9 +399,9 @@ namespace IDE.Compiler
QueueCommand(command);
}
public void QueueRefreshViewCommand()
public void QueueRefreshViewCommand(ViewRefreshKind viewRefreshKind = .FullRefresh)
{
QueueCommand(new RefreshViewCommand());
QueueCommand(new RefreshViewCommand(viewRefreshKind));
}
public void QueueSetWorkspaceOptions(Project hotProject, int32 hotIdx)
@ -608,8 +615,31 @@ namespace IDE.Compiler
var resolvePassData = BfResolvePassData.Create(ResolveType.Classify);
// If we get canceled then try again after waiting a couple updates
if (!ClassifySource(passInstance, resolvePassData))
bool wantsCollapseRefresh = false;
if (ClassifySource(passInstance, resolvePassData))
{
Debug.WriteLine($"ClassifySource success {mWantsResolveAllCollapseRefresh} {resolvePassData.HadEmits}");
if (mWantsResolveAllCollapseRefresh)
{
mWantsResolveAllCollapseRefresh = false;
wantsCollapseRefresh = true;
}
}
else
{
Debug.WriteLine($"ClassifySource partial {resolvePassData.HadEmits}");
QueueDeferredResolveAll();
}
if (resolvePassData.HadEmits)
wantsCollapseRefresh = true;
if (wantsCollapseRefresh)
QueueRefreshViewCommand(.Collapse);
UpdateRebuildFileWatches();
delete resolvePassData;
@ -632,7 +662,8 @@ namespace IDE.Compiler
if (command is RefreshViewCommand)
{
mWantsActiveViewRefresh = true;
var refreshViewCommand = (RefreshViewCommand)command;
mWantsActiveViewRefresh = Math.Max(mWantsActiveViewRefresh, refreshViewCommand.mRefreshKind);
}
if (var dirChangedCommand = command as RebuildFileChangedCommand)