public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as TabVM; var s = parameter as string; if (vm == null || s == null) { return(null); } var gen = ColorizedTextElementProvider.Create(vm.Owner.Settings.SyntaxHighlight); var printer = new TabPrinter(gen.Output); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Module")) { printer.WriteModule(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Path")) { printer.WritePath(vm); } else { return(null); } return(gen.CreateResult(true)); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ICallStackFrameVM; if (vm == null) { return(null); } var s = parameter as string; if (s == null) { return(null); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { CreateContent(gen.Output, vm.CachedOutput, vm.Context.SyntaxHighlight); } else { return(null); } return(gen.CreateResult(true)); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { var flags = WriteObjectFlags.None; if (parameter != null) { foreach (var c in (string)parameter) { if (c == 's') { flags |= WriteObjectFlags.ShortInstruction; } } } var gen = ColorizedTextElementProvider.Create(true); BodyUtils.WriteObject(gen.Output, value, flags); return(gen.CreateResult(true, true)); } catch (Exception ex) { Debug.Fail(ex.ToString()); } if (value == null) { return(string.Empty); } return(value.ToString()); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ValueVM; var s = parameter as string; if (vm == null || s == null) { return(null); } var gen = ColorizedTextElementProvider.Create(vm.PrinterContext.SyntaxHighlight); var printer = new ValuePrinter(gen.Output, vm.PrinterContext.UseHexadecimal); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Value")) { printer.WriteValue(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Type")) { printer.WriteType(vm); } else { return(null); } return(gen.CreateResult(true)); }
object CreateUI(object o, bool includeNamespace) { var gen = ColorizedTextElementProvider.Create(Context.SyntaxHighlight); var output = gen.Output; CreateUI(gen.Output, o, includeNamespace); return(gen.CreateResult()); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ProcessVM; var s = parameter as string; if (vm == null || s == null) { return(null); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); var printer = new ProcessPrinter(gen.Output, false); HorizontalAlignment?horizAlign = null; if (StringComparer.OrdinalIgnoreCase.Equals(s, "FullPath")) { printer.WriteFullPath(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Filename")) { printer.WriteFilename(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "PID")) { printer.WritePID(vm); horizAlign = HorizontalAlignment.Right; } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "CLRVersion")) { printer.WriteCLRVersion(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Type")) { printer.WriteType(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Machine")) { printer.WriteMachine(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Title")) { printer.WriteTitle(vm); } else { return(null); } var tb = gen.CreateResult(true); if (horizAlign != null) { tb.HorizontalAlignment = horizAlign.Value; } return(tb); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as BreakpointVM; if (vm == null) { return(null); } var s = parameter as string; if (s == null) { return(null); } if (StringComparer.OrdinalIgnoreCase.Equals(s, "Image")) { string img = vm.IsEnabled ? "Breakpoint" : "DisabledBreakpoint"; return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, img), BackgroundType.GridViewItem)); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); var printer = new BreakpointPrinter(gen.Output, vm.Context.UseHexadecimal, vm.Context.Decompiler); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Assembly")) { printer.WriteAssembly(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Module")) { printer.WriteModule(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "File")) { printer.WriteFile(vm); } else { return(null); } return(gen.CreateResult(true)); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as BreakpointVM; if (vm == null) { return(null); } var s = parameter as string; if (s == null) { return(null); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); var printer = new BreakpointPrinter(gen.Output, vm.Context.UseHexadecimal, vm.Context.Decompiler); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Assembly")) { printer.WriteAssembly(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Module")) { printer.WriteModule(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "File")) { printer.WriteFile(vm); } else { return(null); } return(gen.CreateResult(true)); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ICallStackFrameVM; if (vm == null) { return(null); } var s = parameter as string; if (s == null) { return(null); } if (StringComparer.OrdinalIgnoreCase.Equals(s, "Image")) { if (vm.Index == 0) { return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "CurrentStatement"), BackgroundType.GridViewItem)); } if (vm.IsCurrentFrame) { return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "CallReturn"), BackgroundType.GridViewItem)); } return(null); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { CreateContent(gen.Output, vm.CachedOutput, vm.Context.SyntaxHighlight); } else { return(null); } return(gen.CreateResult(true)); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ModuleVM; var s = parameter as string; if (vm == null || s == null) { return(null); } if (StringComparer.OrdinalIgnoreCase.Equals(s, "Image")) { return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, vm.IsExe ? "AssemblyExe" : "Module"), BackgroundType.GridViewItem)); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); var printer = new ModulePrinter(gen.Output, vm.Context.UseHexadecimal, vm.Context.TheDebugger.Debugger); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Path")) { printer.WritePath(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Optimized")) { printer.WriteOptimized(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Dynamic")) { printer.WriteDynamic(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "InMemory")) { printer.WriteInMemory(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Order")) { printer.WriteOrder(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Version")) { printer.WriteVersion(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Timestamp")) { printer.WriteTimestamp(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Address")) { printer.WriteAddress(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Process")) { printer.WriteProcess(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "AppDomain")) { printer.WriteAppDomain(vm); } else { return(null); } return(gen.CreateResult(true)); }
public CodeToolTipWriter(bool syntaxHighlight) { this.provider = ColorizedTextElementProvider.Create(syntaxHighlight); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ThreadVM; var s = parameter as string; if (vm == null || s == null) { return(null); } if (StringComparer.OrdinalIgnoreCase.Equals(s, "CurrentImage")) { if (vm.IsCurrent) { return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "CurrentStatement"), BackgroundType.GridViewItem)); } if (vm.Type == ThreadType.Main) { return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "DraggedCurrentInstructionPointer"), BackgroundType.GridViewItem)); } return(null); } if (StringComparer.OrdinalIgnoreCase.Equals(s, "CategoryImage")) { switch (vm.Type) { case ThreadType.Unknown: case ThreadType.Terminated: return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "QuestionMark"), BackgroundType.GridViewItem)); case ThreadType.Main: return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "Thread"), BackgroundType.GridViewItem)); case ThreadType.BGCOrFinalizer: case ThreadType.ThreadPool: case ThreadType.Worker: return(vm.Context.ImageManager.GetImage(new ImageReference(GetType().Assembly, "Process"), BackgroundType.GridViewItem)); default: Debug.Fail(string.Format("Unknown thread type: {0}", vm.Type)); goto case ThreadType.Unknown; } } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); var printer = new ThreadPrinter(gen.Output, vm.Context.UseHexadecimal, vm.Context.TheDebugger.Debugger); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Id")) { printer.WriteId(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "ManagedId")) { printer.WriteManagedId(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "CategoryText")) { printer.WriteCategory(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Location")) { printer.WriteLocation(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Priority")) { printer.WritePriority(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "AffinityMask")) { printer.WriteAffinityMask(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Suspended")) { printer.WriteSuspended(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Process")) { printer.WriteProcess(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "AppDomain")) { printer.WriteAppDomain(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "UserState")) { printer.WriteUserState(vm); } else { return(null); } return(gen.CreateResult(true)); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ThreadVM; var s = parameter as string; if (vm == null || s == null) { return(null); } var gen = ColorizedTextElementProvider.Create(vm.Context.SyntaxHighlight); var printer = new ThreadPrinter(gen.Output, vm.Context.UseHexadecimal, vm.Context.TheDebugger.Debugger); if (StringComparer.OrdinalIgnoreCase.Equals(s, "Id")) { printer.WriteId(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "ManagedId")) { printer.WriteManagedId(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "CategoryText")) { printer.WriteCategory(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Name")) { printer.WriteName(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Location")) { printer.WriteLocation(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Priority")) { printer.WritePriority(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "AffinityMask")) { printer.WriteAffinityMask(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Suspended")) { printer.WriteSuspended(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Process")) { printer.WriteProcess(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "AppDomain")) { printer.WriteAppDomain(vm); } else if (StringComparer.OrdinalIgnoreCase.Equals(s, "UserState")) { printer.WriteUserState(vm); } else { return(null); } return(gen.CreateResult(true)); }