34 lines
1.7 KiB
C#
34 lines
1.7 KiB
C#
using Microsoft.VisualStudio.Extensibility;
|
|
using Microsoft.VisualStudio.Extensibility.DebuggerVisualizers;
|
|
using Microsoft.VisualStudio.RpcContracts.RemoteUI;
|
|
using System.Collections.Generic;
|
|
using System.Numerics;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Vector3VisualizerSource;
|
|
namespace Vector3Visualizer;
|
|
|
|
[VisualStudioContribution]
|
|
internal sealed class Vector3DebuggerVisualizerProvider : DebuggerVisualizerProvider
|
|
{
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("ConstantExpressionEvaluator", "CEE0027:String not localized", Justification = "<Pending>")]
|
|
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<Vector3> Visualizer", typeof(List<>)),
|
|
new VisualizerTargetType("Quaternion Visualizer", typeof(Quaternion))
|
|
])
|
|
{
|
|
VisualizerObjectSourceType = new VisualizerObjectSourceType(typeof(Vector3ObjectSource)),
|
|
Style = VisualizerStyle.ToolWindow,
|
|
};
|
|
|
|
public override async Task<IRemoteUserControl> CreateVisualizerAsync(VisualizerTarget visualizerTarget, CancellationToken cancellationToken)
|
|
{
|
|
Vector3Model? model = await visualizerTarget.ObjectSource.RequestDataAsync<Vector3Model?>(jsonSerializer: null, CancellationToken.None);
|
|
return await Task.FromResult<IRemoteUserControl>(new Vector3VisualizerUserControl(model));
|
|
//return await Task.FromResult<IRemoteUserControl>(new MyRemoteUserControl(model));
|
|
}
|
|
}
|