protected override int VisitSequenceValue(ThemedValueFormatterState state, SequenceValue sequence) { if (sequence == null) { throw new ArgumentNullException(nameof(sequence)); } var count = 0; using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('['); var delim = ""; for (var index = 0; index < sequence.Elements.Count; ++index) { if (delim.Length != 0) { using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(delim); } delim = ", "; Visit(state.Nest(), sequence.Elements[index]); } using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(']'); return(count); }
protected override int VisitDictionaryValue(ThemedValueFormatterState state, DictionaryValue dictionary) { var count = 0; using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('{'); if (dictionary.Elements.Count > 0) { state.Depth++; WriteIndent(state); } var delim = ""; foreach (var element in dictionary.Elements) { if (delim.Length != 0) { using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(delim); WriteIndent(state); } delim = ","; var style = element.Key.Value == null ? ConsoleThemeStyle.Null : element.Key.Value is string ?ConsoleThemeStyle.String : ConsoleThemeStyle.Scalar; using (ApplyStyle(state.Output, style, ref count)) JsonValueFormatter.WriteQuotedJsonString((element.Key.Value ?? "null").ToString(), state.Output); using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(": "); count += Visit(state.Nest(), element.Value); } if (dictionary.Elements.Count > 0) { state.Depth--; WriteIndent(state); } using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('}'); return(count); }
protected override int VisitStructureValue(ThemedValueFormatterState state, StructureValue structure) { var count = 0; using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('{'); var delim = ""; for (var index = 0; index < structure.Properties.Count; ++index) { if (delim.Length != 0) { using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(delim); } delim = ", "; var property = structure.Properties[index]; using (ApplyStyle(state.Output, ConsoleThemeStyle.Name, ref count)) JsonValueFormatter.WriteQuotedJsonString(property.Name, state.Output); using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(": "); count += Visit(state.Nest(), property.Value); } if (structure.TypeTag != null) { using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(delim); using (ApplyStyle(state.Output, ConsoleThemeStyle.Name, ref count)) JsonValueFormatter.WriteQuotedJsonString("$type", state.Output); using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(": "); using (ApplyStyle(state.Output, ConsoleThemeStyle.String, ref count)) JsonValueFormatter.WriteQuotedJsonString(structure.TypeTag, state.Output); } using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('}'); return(count); }
protected override int VisitDictionaryValue(ThemedValueFormatterState state, DictionaryValue dictionary) { var count = 0; using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('{'); var delim = ""; foreach (var element in dictionary.Elements) { if (delim.Length != 0) { using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write(delim); } delim = ", "; using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('['); using (ApplyStyle(state.Output, ConsoleThemeStyle.String, ref count)) count += Visit(state.Nest(), element.Key); using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write("]="); count += Visit(state.Nest(), element.Value); } using (ApplyStyle(state.Output, ConsoleThemeStyle.TertiaryText, ref count)) state.Output.Write('}'); return(count); }