72 lines
3.3 KiB
C#
72 lines
3.3 KiB
C#
|
|
// 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();
|
||
|
|
}
|
||
|
|
}
|