Renamed
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
using Microsoft.VisualStudio.Extensibility;
|
||||
using Microsoft.VisualStudio.Extensibility.DebuggerVisualizers;
|
||||
using Microsoft.VisualStudio.RpcContracts.RemoteUI;
|
||||
using NamedPipes;
|
||||
using NrxVisualizerObjectSource;
|
||||
using System;
|
||||
using System.Numerics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NrxDebugVisualizer;
|
||||
|
||||
[VisualStudioContribution]
|
||||
internal sealed class NrxDebuggerVisualizerProvider : DebuggerVisualizerProvider
|
||||
{
|
||||
|
||||
public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new(
|
||||
[
|
||||
new VisualizerTargetType("%Vector3Visualizer_DisplayName%", @"System.Numerics.Vector3, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"),
|
||||
new VisualizerTargetType("%QuaternionVisualizer_DisplayName%", typeof(Quaternion)),
|
||||
new VisualizerTargetType("%FrameVisualizer_DisplayName%", @"Num.Roto.Visualization.Math.Geometry.Frame, Num.Roto.Visualization.Math, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"),
|
||||
new VisualizerTargetType("%NrxIEnumerableVisualizer_DisplayName%", @"System.Collections.Generic.IEnumerable`1, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"),
|
||||
])
|
||||
{
|
||||
VisualizerObjectSourceType = new VisualizerObjectSourceType(typeof(NrxVisualizerObjectSource.NrxVisualizerObjectSource)),
|
||||
Style = VisualizerStyle.ToolWindow,
|
||||
};
|
||||
private static NamedPipeClient? PipeClient { get; set; }
|
||||
private static void SendToVisualizer(Vector3Model? vector3Model)
|
||||
{
|
||||
if (vector3Model is null) return;
|
||||
PipeClient ??= new NamedPipeClient("testPipe", serverName: @"TestServer", logger: (m) => Console.WriteLine(m));
|
||||
_ = PipeClient.SetMessageAsync($"Hello from {nameof(CreateVisualizerAsync)},vector3Model = {vector3Model.Vector3},{vector3Model.Quaternion}");
|
||||
}
|
||||
public override async Task<IRemoteUserControl> CreateVisualizerAsync(VisualizerTarget visualizerTarget, CancellationToken cancellationToken)
|
||||
{
|
||||
Vector3Model? model = await visualizerTarget.ObjectSource.RequestDataAsync<Vector3Model?>(jsonSerializer: null, cancellationToken);
|
||||
SendToVisualizer(model);
|
||||
//throw new InvalidOperationException("This is a test exception to demonstrate the visualizer. Please remove this line and implement the visualizer logic.");
|
||||
var control = new Vector3VisualizerUserControl(dataContext: model);
|
||||
return await Task.FromResult<IRemoteUserControl>(control);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user