Build project before running

This commit is contained in:
Matt Parker
2026-01-18 16:49:03 +10:00
parent 77543915a8
commit fc9e6ef3ec
8 changed files with 21 additions and 15 deletions

View File

@@ -27,7 +27,7 @@ public partial class BuildPanel : Control
}
}
private async Task OnBuildStarted()
private async Task OnBuildStarted(BuildStartedFlags _)
{
await this.InvokeAsync(() => _terminal.Clear());
_buildOutputChannelReader ??= _buildService.BuildTextWriter.ConsoleChannel.Reader;

View File

@@ -44,7 +44,7 @@ public partial class TestExplorerPanel : Control
var solution = _solutionAccessor.SolutionModel!;
if (withBuild)
{
await _buildService.MsBuildAsync(solution.FilePath);
await _buildService.MsBuildAsync(solution.FilePath, buildStartedFlags: BuildStartedFlags.Internal);
}
var testNodes = await _testRunnerService.DiscoverTests(solution);
var scenes = testNodes.Select(s =>
@@ -70,7 +70,7 @@ public partial class TestExplorerPanel : Control
{
await _solutionAccessor.SolutionReadyTcs.Task;
var solution = _solutionAccessor.SolutionModel!;
await _buildService.MsBuildAsync(solution.FilePath);
await _buildService.MsBuildAsync(solution.FilePath, buildStartedFlags: BuildStartedFlags.Internal);
await this.InvokeAsync(() => _testNodesVBoxContainer.QueueFreeChildren());
_testNodeEntryNodes.Clear();
await _testRunnerService.RunTestsAsync(solution, HandleTestNodeUpdates);

View File

@@ -98,10 +98,11 @@ public partial class IdeRoot : Control
_nodeReadyTcs.SetResult();
}
private async Task OnBuildStarted() => await OnBuildRunningStateChanged(true);
private async Task OnBuildStarted(BuildStartedFlags flags) => await OnBuildRunningStateChanged(true, flags);
private async Task OnBuildFinished() => await OnBuildRunningStateChanged(false);
private async Task OnBuildRunningStateChanged(bool running)
private async Task OnBuildRunningStateChanged(bool running, BuildStartedFlags? flags = null)
{
if (running && flags is BuildStartedFlags.UserFacing) GodotGlobalEvents.Instance.BottomPanelTabExternallySelected.InvokeParallelFireAndForget(BottomPanelType.Build);
await this.InvokeAsync(() =>
{
_cancelMsBuildActionButton.Disabled = !running;