From d17fcb56362f77758d57c3ee1edd0bec6656d74e Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Tue, 18 Nov 2025 21:48:28 +1000 Subject: [PATCH] refactor RoslynAnalysis v2 --- src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs b/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs index 4a0d084..bd6dfe5 100644 --- a/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs +++ b/src/SharpIDE.Application/Features/Analysis/RoslynAnalysis.cs @@ -208,7 +208,7 @@ public class RoslynAnalysis(ILogger logger, BuildService buildSe await _buildService.MsBuildAsync(_sharpIdeSolutionModel!.FilePath, BuildType.Restore, cancellationToken); var __ = SharpIdeOtel.Source.StartActivity($"{nameof(RoslynAnalysis)}.{nameof(CustomMsBuildProjectLoader)}.{nameof(CustomMsBuildProjectLoader.LoadProjectInfosAsync)}"); - var thisProject = _workspace.CurrentSolution.Projects.Single(s => s.FilePath == projectModel.FilePath); + var thisProject = GetProjectForSharpIdeProjectModel(projectModel); // we can reliably rely on the Solution's graph of project inter-references, as a project has only been reloaded - no projects have been added or removed from the solution var dependentProjects = _workspace.CurrentSolution.GetProjectDependencyGraph().GetProjectsThatTransitivelyDependOnThisProject(thisProject.Id); @@ -302,7 +302,7 @@ public class RoslynAnalysis(ILogger logger, BuildService buildSe { using var _ = SharpIdeOtel.Source.StartActivity($"{nameof(RoslynAnalysis)}.{nameof(GetProjectDiagnostics)}"); await _solutionLoadedTcs.Task; - var project = _workspace!.CurrentSolution.Projects.Single(s => s.FilePath == projectModel.FilePath); + var project = GetProjectForSharpIdeProjectModel(projectModel); var compilation = await project.GetCompilationAsync(cancellationToken); Guard.Against.Null(compilation, nameof(compilation));