using MailAddressVisualizerSource; using Microsoft.VisualStudio.Extensibility.DebuggerVisualizers; using Microsoft.VisualStudio.RpcContracts.RemoteUI; using System.Numerics; using System.Threading; using System.Threading.Tasks; namespace MailAddressVisualizer; internal class MailAddressDebuggerVisualizerProvider : DebuggerVisualizerProvider { public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new("Mail Address Visualizer", typeof(Vector3)); public override async Task CreateVisualizerAsync( VisualizerTarget visualizerTarget, CancellationToken cancellationToken) { MailAddressModel? model = await visualizerTarget .ObjectSource .RequestDataAsync(jsonSerializer: null, CancellationToken.None); return await Task.FromResult( new MailAddressVisualizerUserControl(model)); } }