From ac7149fb9b239064ee8626560c54dbfdeac90ec0 Mon Sep 17 00:00:00 2001 From: Matthias Heil Date: Tue, 31 Mar 2026 13:32:19 +0200 Subject: [PATCH] Added Vector3Visualizer/Vector3Visualizer/Vector3DebuggerVisualizerProvider.cs Added Vector3Visualizer/Vector3Visualizer/Vector3Visualizer.csproj Added Vector3Visualizer/Vector3VisualizerSource/Vector3VisualizerSource.csproj --- .../Vector3DebuggerVisualizerProvider.cs | 34 +++++++++++++++++++ .../Vector3Visualizer.csproj | 25 ++++++++++++++ .../Vector3VisualizerSource.csproj | 14 ++++++++ 3 files changed, 73 insertions(+) create mode 100644 Vector3Visualizer/Vector3Visualizer/Vector3DebuggerVisualizerProvider.cs create mode 100644 Vector3Visualizer/Vector3Visualizer/Vector3Visualizer.csproj create mode 100644 Vector3Visualizer/Vector3VisualizerSource/Vector3VisualizerSource.csproj diff --git a/Vector3Visualizer/Vector3Visualizer/Vector3DebuggerVisualizerProvider.cs b/Vector3Visualizer/Vector3Visualizer/Vector3DebuggerVisualizerProvider.cs new file mode 100644 index 0000000..d5f008d --- /dev/null +++ b/Vector3Visualizer/Vector3Visualizer/Vector3DebuggerVisualizerProvider.cs @@ -0,0 +1,34 @@ +using Microsoft.VisualStudio.Extensibility; +using Microsoft.VisualStudio.Extensibility.DebuggerVisualizers; +using Microsoft.VisualStudio.RpcContracts.RemoteUI; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Threading; +using System.Threading.Tasks; +using Vector3VisualizerSource; +namespace Vector3Visualizer; + +[VisualStudioContribution] +internal class Vector3DebuggerVisualizerProvider : DebuggerVisualizerProvider +{ + [System.Diagnostics.CodeAnalysis.SuppressMessage("ConstantExpressionEvaluator", "CEE0027:String not localized", Justification = "")] + public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new( + [ + new VisualizerTargetType("Vector3 Visualizer", "System.Numerics.Vector3, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"), + new VisualizerTargetType("Vector3[] Visualizer", typeof(Vector3[])), + new VisualizerTargetType("List Visualizer", typeof(List<>)), + new VisualizerTargetType("Quaternion Visualizer", typeof(Quaternion)) + ]) + { + VisualizerObjectSourceType = new VisualizerObjectSourceType(typeof(Vector3ObjectSource)), + Style = VisualizerStyle.ToolWindow, + }; + + public override async Task CreateVisualizerAsync(VisualizerTarget visualizerTarget, CancellationToken cancellationToken) + { + Vector3Model? model = await visualizerTarget.ObjectSource.RequestDataAsync(jsonSerializer: null, CancellationToken.None); + return await Task.FromResult(new Vector3VisualizerUserControl(model)); + //return await Task.FromResult(new MyRemoteUserControl(model)); + } +} diff --git a/Vector3Visualizer/Vector3Visualizer/Vector3Visualizer.csproj b/Vector3Visualizer/Vector3Visualizer/Vector3Visualizer.csproj new file mode 100644 index 0000000..47f5a35 --- /dev/null +++ b/Vector3Visualizer/Vector3Visualizer/Vector3Visualizer.csproj @@ -0,0 +1,25 @@ + + + net8.0-windows8.0 + enable + latest + en-US + + + + + + + + + + + + + + + + + + + diff --git a/Vector3Visualizer/Vector3VisualizerSource/Vector3VisualizerSource.csproj b/Vector3Visualizer/Vector3VisualizerSource/Vector3VisualizerSource.csproj new file mode 100644 index 0000000..d6acc0f --- /dev/null +++ b/Vector3Visualizer/Vector3VisualizerSource/Vector3VisualizerSource.csproj @@ -0,0 +1,14 @@ + + + + netstandard2.0 + enable + latest + + + + + + + +