From 318614b8764266263f16ed3b882ba55da82a5dc4 Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Thu, 30 Oct 2025 01:05:20 +1000 Subject: [PATCH] open solution diagnostic at line position --- src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs b/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs index bcebfd2..baf3e8d 100644 --- a/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs +++ b/src/SharpIDE.Godot/Features/Problems/ProblemsPanel.cs @@ -3,6 +3,7 @@ using Godot; using Microsoft.CodeAnalysis; using ObservableCollections; using R3; +using SharpIDE.Application.Features.Analysis; using SharpIDE.Application.Features.SolutionDiscovery; using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; using SharpIDE.Godot.Features.Common; @@ -117,8 +118,9 @@ public partial class ProblemsPanel : Control private void OpenDocumentContainingDiagnostic(Diagnostic diagnostic) { - var filePath = diagnostic.Location.SourceTree?.GetMappedLineSpan(diagnostic.Location.SourceSpan).Path; - var file = Solution!.AllFiles.Single(f => f.Path == filePath); - GodotGlobalEvents.Instance.FileExternallySelected.InvokeParallelFireAndForget(file, null); + var fileLinePositionSpan = diagnostic.Location.GetMappedLineSpan(); + var file = Solution!.AllFiles.Single(f => f.Path == fileLinePositionSpan.Path); + var linePosition = new SharpIdeFileLinePosition(fileLinePositionSpan.StartLinePosition.Line, fileLinePositionSpan.StartLinePosition.Character); + GodotGlobalEvents.Instance.FileExternallySelected.InvokeParallelFireAndForget(file, linePosition); } } \ No newline at end of file