diff --git a/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs b/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs index d6febd3..e887ee7 100644 --- a/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs +++ b/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs @@ -108,12 +108,15 @@ public class RoslynAnalysis(ILogger logger, BuildService buildSe _msBuildProjectLoader = new CustomMsBuildProjectLoader(_workspace); } + + using (var ___ = SharpIdeOtel.Source.StartActivity("RestoreSolution")) + { + // MsBuildProjectLoader doesn't do a restore which is absolutely required for resolving PackageReferences, if they have changed. I am guessing it just reads from project.assets.json + await _buildService.MsBuildAsync(_sharpIdeSolutionModel.FilePath, BuildType.Restore, cancellationToken); + } using (var ___ = SharpIdeOtel.Source.StartActivity("OpenSolution")) { //_msBuildProjectLoader!.LoadMetadataForReferencedProjects = true; - - // MsBuildProjectLoader doesn't do a restore which is absolutely required for resolving PackageReferences, if they have changed. I am guessing it just reads from project.assets.json - await _buildService.MsBuildAsync(_sharpIdeSolutionModel.FilePath, BuildType.Restore, cancellationToken); var (solutionInfo, projectFileInfos) = await _msBuildProjectLoader!.LoadSolutionInfoAsync(_sharpIdeSolutionModel.FilePath, cancellationToken: cancellationToken); _projectFileInfoMap = projectFileInfos; _workspace.ClearSolution(); diff --git a/src/SharpIDE.Godot/Features/BottomBar/RunningTasksDisplay.cs b/src/SharpIDE.Godot/Features/BottomBar/RunningTasksDisplay.cs index c603d69..f9813a8 100644 --- a/src/SharpIDE.Godot/Features/BottomBar/RunningTasksDisplay.cs +++ b/src/SharpIDE.Godot/Features/BottomBar/RunningTasksDisplay.cs @@ -9,16 +9,19 @@ public partial class RunningTasksDisplay : HBoxContainer { [Inject] private readonly ActivityMonitor _activityMonitor = null!; + private bool _isSolutionRestoring; private bool _isSolutionLoading; private bool _isSolutionDiagnosticsBeingRetrieved; + private Label _solutionRestoringLabel = null!; private Label _solutionLoadingLabel = null!; private Label _solutionDiagnosticsLabel = null!; public override void _Ready() { - _solutionLoadingLabel = GetNode