Added IEnumerableViewModel.cs
Added IEnumerableVisualizer.cs Added IEnumerableVisualizerControl.cs Added IEnumerableVisualizerProvider.cs Added IEnumerableVisualizerSource.cs Added LatestDataAvailable.cs
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Microsoft.VisualStudio.Debugger.IEnumerableVisualizer.IEnumerableVisualizer
|
||||
// Assembly: IEnumerableVisualizer.UI, Version=18.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
|
||||
// MVID: 8D605BCB-B575-4FCD-B6C8-446C06150F34
|
||||
// Assembly location: C:\Program Files\Microsoft Visual Studio\18\Professional\Common7\IDE\CommonExtensions\Platform\Debugger\Visualizers\IEnumerableVisualizer.UI.dll
|
||||
|
||||
using Microsoft.VisualStudio.DebuggerVisualizers;
|
||||
using Microsoft.VisualStudio.DebuggerVisualizers.Common;
|
||||
using Microsoft.VisualStudio.OutOfProcessVisualizers;
|
||||
using Microsoft.VisualStudio.Shell;
|
||||
using Microsoft.VisualStudio.Shell.Interop;
|
||||
using Microsoft.VisualStudio.Utilities;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable enable
|
||||
namespace Microsoft.VisualStudio.Debugger.IEnumerableVisualizer;
|
||||
|
||||
public class IEnumerableVisualizer : DialogDebuggerVisualizer
|
||||
{
|
||||
public IEnumerableVisualizer()
|
||||
: base((FormatterPolicy) 1)
|
||||
{
|
||||
}
|
||||
|
||||
protected internal virtual void Show(
|
||||
#nullable disable
|
||||
IDialogVisualizerService windowService,
|
||||
IVisualizerObjectProvider objectProvider)
|
||||
{
|
||||
if (!(windowService is IWin32Window win32Window))
|
||||
throw new ApplicationException("This debugger does not support modal visualizers");
|
||||
using (DpiAwareness.EnterDpiScope((DpiAwarenessContext) -4))
|
||||
{
|
||||
IEnumerableViewModel viewModel = new IEnumerableViewModel((IAsyncVisualizerObjectProvider) objectProvider, VsTaskLibraryHelper.WithPriority(ThreadHelper.JoinableTaskFactory, (VsTaskRunContext) 6));
|
||||
viewModel.UINormalPriorityJTF.Run((Func<Task>) (async () => await viewModel.InitializeAsync()));
|
||||
IEnumerableVisualizerControl visualizerControl1 = new IEnumerableVisualizerControl();
|
||||
visualizerControl1.DataContext = (object) viewModel;
|
||||
visualizerControl1.Debugger = (IVsDebugger) null;
|
||||
visualizerControl1.AreDataTipsEnabled = false;
|
||||
IEnumerableVisualizerControl visualizerControl2 = visualizerControl1;
|
||||
OutOfProcessVisualizerModalDialogViewModel modalDialogViewModel = new OutOfProcessVisualizerModalDialogViewModel((OutOfProcessVisualizer) null, string.Format((IFormatProvider) CultureInfo.CurrentCulture, Resources.G_TitlebarCaption, (object) viewModel.DataObjectType.ToString()), Guid.Empty, string.Empty, string.Empty, viewModel.UINormalPriorityJTF);
|
||||
((OutOfProcessVisualizerViewModel) modalDialogViewModel).MainContent = (IDisposable) visualizerControl2;
|
||||
((OutOfProcessVisualizerViewModel) modalDialogViewModel).DialogState = (DialogState) 1;
|
||||
ModalVisualizerDialog visualizerDialog = new ModalVisualizerDialog();
|
||||
((FrameworkElement) visualizerDialog).DataContext = (object) modalDialogViewModel;
|
||||
Window window = (Window) visualizerDialog;
|
||||
try
|
||||
{
|
||||
if (viewModel.FatalExceptionCaught)
|
||||
return;
|
||||
Microsoft.VisualStudio.Debugger.IEnumerableVisualizer.IEnumerableVisualizer.ShowWpfDialog(window, win32Window.Handle);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (viewModel.FatalExceptionCaught)
|
||||
return;
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ShowWpfDialog(Window window, IntPtr hwndParent)
|
||||
{
|
||||
WindowExtensions.SetOwner(window, hwndParent);
|
||||
window.ShowDialog();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user