Browse Source

Re-enable debugger visualizers in debugger

tooltips. Object graph visualizer crashes,
collection and text visualizer seeem to be
working.
Next up is to make object graph vis work.
newNRvisualizers
Martin Konicek 13 years ago
parent
commit
ed6891a447
  1. 27
      src/AddIns/Debugger/Debugger.AddIn/Tooltips/VisualizerPicker.cs
  2. 2
      src/AddIns/Debugger/Debugger.AddIn/Tooltips/VisualizerPicker.xaml
  3. 8
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs
  4. 11
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ValueNode.cs
  5. 1
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/Commands/GridVisualizerCommand.cs
  6. 2
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/Common/IVisualizerCommand.cs

27
src/AddIns/Debugger/Debugger.AddIn/Tooltips/VisualizerPicker.cs

@ -26,23 +26,24 @@ namespace Debugger.AddIn.Tooltips @@ -26,23 +26,24 @@ namespace Debugger.AddIn.Tooltips
if (this.SelectedItem == null) {
return;
}
// var clickedCommand = this.SelectedItem as IVisualizerCommand;
// if (clickedCommand == null) {
// throw new InvalidOperationException(
// string.Format("{0} clicked, only instances of {1} must be present in {2}.",
// this.SelectedItem.GetType().ToString(), typeof(IVisualizerCommand).Name, typeof(VisualizerPicker).Name));
// }
// clickedCommand.Execute();
var clickedCommand = this.SelectedItem as IVisualizerCommand;
if (clickedCommand == null) {
throw new InvalidOperationException(
string.Format("{0} clicked, only instances of {1} must be present in {2}.",
this.SelectedItem.GetType().ToString(),
typeof(IVisualizerCommand).Name,
typeof(VisualizerPicker).Name));
}
clickedCommand.Execute();
// Make no item selected, so that multiple selections of the same item always execute the command.
// This triggers VisualizerPicker_SelectionChanged again, which returns immediately.
this.SelectedIndex = -1;
}
// public new IEnumerable<IVisualizerCommand> ItemsSource
// {
// get { return (IEnumerable<IVisualizerCommand>)base.ItemsSource; }
// set { base.ItemsSource = value; }
// }
public new IEnumerable<IVisualizerCommand> ItemsSource
{
get { return (IEnumerable<IVisualizerCommand>)base.ItemsSource; }
set { base.ItemsSource = value; }
}
}
}

2
src/AddIns/Debugger/Debugger.AddIn/Tooltips/VisualizerPicker.xaml

@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
<Setter TargetName="FaceBorder" Property="Background" Value="White"/>
<Setter TargetName="FaceBorder" Property="BorderBrush" Value="#FFE0EDFF"/>
<!-- #FFE0EDFF border -->
<!-- #FFD9D9E9 fill -->
<!-- #FFD9D9E9 fill -->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>

8
src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs

@ -90,9 +90,13 @@ namespace Debugger.AddIn.TreeModel @@ -90,9 +90,13 @@ namespace Debugger.AddIn.TreeModel
get { return GetChildren != null; }
}
// public IEnumerable<IVisualizerCommand> VisualizerCommands { get; protected set; }
public IEnumerable<IVisualizerCommand> VisualizerCommands { get; protected set; }
public bool HasVisualizerCommands { get; protected set; }
public bool HasVisualizerCommands {
get {
return (VisualizerCommands != null) && (VisualizerCommands.Count() > 0);
}
}
public TreeNode(string name, Func<IEnumerable<TreeNode>> getChildren)
{

11
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ValueNode.cs

@ -9,6 +9,7 @@ using System.Linq; @@ -9,6 +9,7 @@ using System.Linq;
using System.Text;
using System.Windows.Forms;
using Debugger.AddIn.Visualizers;
using Debugger.MetaData;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.TypeSystem;
@ -161,10 +162,10 @@ namespace Debugger.AddIn.TreeModel @@ -161,10 +162,10 @@ namespace Debugger.AddIn.TreeModel
this.Type = val.Type.Name;
if (!val.IsNull) {
#warning this.VisualizerCommands = VisualizerDescriptors.GetAllDescriptors()
// .Where(descriptor => descriptor.IsVisualizerAvailable(val.Type))
// .Select(descriptor => descriptor.CreateVisualizerCommand(this.Name, this.GetValue))
// .ToList();
this.VisualizerCommands = VisualizerDescriptors.GetAllDescriptors()
.Where(descriptor => descriptor.IsVisualizerAvailable(val.Type))
.Select(descriptor => descriptor.CreateVisualizerCommand(this.Name, this.GetValue))
.ToList();
}
LoggingService.InfoFormatted("Evaluated node '{0}' in {1} ms", this.Name, watch.ElapsedMilliseconds);
@ -174,7 +175,7 @@ namespace Debugger.AddIn.TreeModel @@ -174,7 +175,7 @@ namespace Debugger.AddIn.TreeModel
this.Value = e.Message;
this.Type = string.Empty;
this.GetChildren = null;
#warning this.VisualizerCommands = null;
this.VisualizerCommands = null;
}
}

1
src/AddIns/Debugger/Debugger.AddIn/Visualizers/Commands/GridVisualizerCommand.cs

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using ICSharpCode.Core;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Debugging;
using System;

2
src/AddIns/Debugger/Debugger.AddIn/Visualizers/Common/IVisualizerCommand.cs

@ -8,7 +8,7 @@ using System.Linq; @@ -8,7 +8,7 @@ using System.Linq;
namespace ICSharpCode.SharpDevelop.Debugging
{
/// <summary>
/// Command called from <see cref="VisualizerPicker"/>.
/// Command called from debugger tooltip's <see cref="VisualizerPicker"/>.
/// </summary>
public interface IVisualizerCommand
{

Loading…
Cancel
Save