protected override void Execute(LocalsCtxMenuContext context) { var output = new PlainTextOutput(); foreach (var vm in context.SelectedItems) { //TODO: Break if it takes too long and the user cancels var printer = new ValuePrinter(output, DebuggerSettings.Instance.UseHexadecimal); printer.WriteExpander(vm); output.Write('\t', TextTokenType.Text); // Add an extra here to emulate VS output output.Write('\t', TextTokenType.Text); printer.WriteName(vm); output.Write('\t', TextTokenType.Text); printer.WriteValue(vm); output.Write('\t', TextTokenType.Text); printer.WriteType(vm); output.WriteLine(); } var s = output.ToString(); if (s.Length > 0) { Clipboard.SetText(s); } }
public override void Execute(LocalsCtxMenuContext context) { var output = new StringBuilderTextColorOutput(); foreach (var vm in context.SelectedItems) { //TODO: Break if it takes too long and the user cancels var printer = new ValuePrinter(output, debuggerSettings.UseHexadecimal); printer.WriteExpander(vm); output.Write(BoxedTextColor.Text, "\t"); // Add an extra here to emulate VS output output.Write(BoxedTextColor.Text, "\t"); printer.WriteName(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteValue(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteType(vm); output.WriteLine(); } var s = output.ToString(); if (s.Length > 0) { try { Clipboard.SetText(s); } catch (ExternalException) { } } }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ValueVM; var tag = parameter as string; if (vm == null || tag == null) return null; var writer = Cache.GetWriter(); try { var printer = new ValuePrinter(writer, vm.PrinterContext.UseHexadecimal); if (tag == PredefinedTextClassifierTags.LocalsWindowName) printer.WriteName(vm); else if (tag == PredefinedTextClassifierTags.LocalsWindowValue) printer.WriteValue(vm); else if (tag == PredefinedTextClassifierTags.LocalsWindowType) printer.WriteType(vm); else return null; var context = new TextClassifierContext(writer.Text, tag, vm.PrinterContext.SyntaxHighlight, writer.Colors); return vm.PrinterContext.TextElementProvider.CreateTextElement(vm.PrinterContext.ClassificationFormatMap, context, ContentTypes.LocalsWindow, TextElementFlags.FilterOutNewLines | TextElementFlags.CharacterEllipsis); } finally { Cache.FreeWriter(writer); } }
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 = UISyntaxHighlighter.Create(DebuggerSettings.Instance.SyntaxHighlightLocals); var printer = new ValuePrinter(gen.TextOutput, DebuggerSettings.Instance.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.CreateTextBlock(true)); }
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)); }
protected override void Execute(LocalsCtxMenuContext context) { var output = new PlainTextOutput(); foreach (var vm in context.SelectedItems) { //TODO: Break if it takes too long and the user cancels var printer = new ValuePrinter(output, DebuggerSettings.Instance.UseHexadecimal); printer.WriteValue(vm); if (context.SelectedItems.Length > 1) output.WriteLine(); } var s = output.ToString(); if (s.Length > 0) Clipboard.SetText(s); }
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 = UISyntaxHighlighter.Create(DebuggerSettings.Instance.SyntaxHighlightLocals); var printer = new ValuePrinter(gen.TextOutput, DebuggerSettings.Instance.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.CreateTextBlock(true); }
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 = UISyntaxHighlighter.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); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var vm = value as ValueVM; var tag = parameter as string; if (vm == null || tag == null) { return(null); } var writer = Cache.GetWriter(); try { var printer = new ValuePrinter(writer, vm.PrinterContext.UseHexadecimal); if (tag == PredefinedTextClassifierTags.LocalsWindowName) { printer.WriteName(vm); } else if (tag == PredefinedTextClassifierTags.LocalsWindowValue) { printer.WriteValue(vm); } else if (tag == PredefinedTextClassifierTags.LocalsWindowType) { printer.WriteType(vm); } else { return(null); } var context = new TextClassifierContext(writer.Text, tag, vm.PrinterContext.SyntaxHighlight, writer.Colors); return(vm.PrinterContext.TextElementProvider.CreateTextElement(vm.PrinterContext.ClassificationFormatMap, context, ContentTypes.LocalsWindow, TextElementFlags.FilterOutNewLines | TextElementFlags.CharacterEllipsis)); } finally { Cache.FreeWriter(writer); } }
public override void Execute(LocalsCtxMenuContext context) { var output = new NoSyntaxHighlightOutput(); foreach (var vm in context.SelectedItems) { //TODO: Break if it takes too long and the user cancels var printer = new ValuePrinter(output, debuggerSettings.UseHexadecimal); printer.WriteValue(vm); if (context.SelectedItems.Length > 1) { output.WriteLine(); } } var s = output.ToString(); if (s.Length > 0) { try { Clipboard.SetText(s); } catch (ExternalException) { } } }