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 = UISyntaxHighlighter.Create(DebuggerSettings.Instance.SyntaxHighlightAttach); var printer = new ProcessPrinter(gen.TextOutput, 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, "Machine")) printer.WriteMachine(vm); else if (StringComparer.OrdinalIgnoreCase.Equals(s, "Title")) printer.WriteTitle(vm); else return null; var tb = gen.CreateTextBlock(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 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 ProcessVM; var tag = parameter as string; if (vm == null || tag == null) return null; var writer = Cache.GetWriter(); try { var printer = new ProcessPrinter(writer, false); HorizontalAlignment? horizAlign = null; if (tag == PredefinedTextClassifierTags.AttachToProcessWindowFullPath) printer.WriteFullPath(vm); else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowFilename) printer.WriteFilename(vm); else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowPid) { printer.WritePID(vm); horizAlign = HorizontalAlignment.Right; } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowClrVersion) printer.WriteCLRVersion(vm); else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowType) printer.WriteType(vm); else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowMachine) printer.WriteMachine(vm); else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowTitle) printer.WriteTitle(vm); else return null; var context = new TextClassifierContext(writer.Text, tag, vm.Context.SyntaxHighlight, writer.Colors); var elem = vm.Context.TextElementProvider.CreateTextElement(vm.Context.ClassificationFormatMap, context, ContentTypes.AttachToProcessWindow, TextElementFlags.FilterOutNewLines | TextElementFlags.CharacterEllipsis); if (horizAlign != null) elem.HorizontalAlignment = horizAlign.Value; return elem; } finally { Cache.FreeWriter(writer); } }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ProcessVM; var tag = parameter as string; if (vm == null || tag == null) { return(null); } var writer = Cache.GetWriter(); try { var printer = new ProcessPrinter(writer, false); HorizontalAlignment?horizAlign = null; if (tag == PredefinedTextClassifierTags.AttachToProcessWindowFullPath) { printer.WriteFullPath(vm); } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowFilename) { printer.WriteFilename(vm); } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowPid) { printer.WritePID(vm); horizAlign = HorizontalAlignment.Right; } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowClrVersion) { printer.WriteCLRVersion(vm); } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowType) { printer.WriteType(vm); } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowMachine) { printer.WriteMachine(vm); } else if (tag == PredefinedTextClassifierTags.AttachToProcessWindowTitle) { printer.WriteTitle(vm); } else { return(null); } var context = new TextClassifierContext(writer.Text, tag, vm.Context.SyntaxHighlight, writer.Colors); var elem = vm.Context.TextElementProvider.CreateTextElement(vm.Context.ClassificationFormatMap, context, ContentTypes.AttachToProcessWindow, TextElementFlags.FilterOutNewLines | TextElementFlags.CharacterEllipsis); if (horizAlign != null) { elem.HorizontalAlignment = horizAlign.Value; } return(elem); } finally { Cache.FreeWriter(writer); } }