Example #1
0
        public string GetOutput()
        {
            if (Value == null || Value.Count == 0)
            {
                return "[] # Empty Array";
            }

            if (!_prettyPrint)
            {
                StringBuilder sb = new StringBuilder();
                List<string> output = Value.Select(tomlToken => tomlToken.GetOutput()).ToList();
                sb.Append("[ ").Append(string.Join(", ", output)).Append(" ]");
                return sb.ToString();
            }

            List<PrettyPrint> tokens = GetPrettyPrintTokens();
            PrettyArray pa = new PrettyArray(tokens);
            string s = MakePrettyPrint(pa);
            return s;
        }
Example #2
0
        private string MakePrettyPrint(PrettyArray array, int depth = 0)
        {
            string spcBracket = new string(' ', depth * Spacing);
            string spcPadding = new string(' ', (depth + 1) * Spacing);
            int currentSpace = MaxWidth - Spacing * depth;
            if (array.Output.Length <= currentSpace)
            {
                return spcBracket + array.Output;
            }

            StringBuilder sb = new StringBuilder();
            if (depth == 0)
            {
                sb.AppendLine("[");
                //sb.AppendLine().Append("]");
            }
            else
            {
                sb.AppendLine().Append(spcBracket).AppendLine("[");
                //sb.AppendLine().Append(spcBracket).Append("]");
            }

            foreach (var prettyPrint in array.Tokens)
            {
                if (prettyPrint is PrettyArray)
                {
                    sb.Append(MakePrettyPrint(prettyPrint as PrettyArray, depth + 1));
                    continue;
                }
                if (prettyPrint is PrettyText)
                {
                    sb.Append(spcPadding).Append(prettyPrint.Output);
                    continue;
                }
                if (prettyPrint is PrettyComma)
                {
                    sb.AppendLine(prettyPrint.Output);
                }
            }
            if (depth == 0)
            {
                sb.AppendLine().Append("]");
            }
            else
            {
                sb.AppendLine().Append(spcBracket).Append("]");
            }

            return sb.ToString();
        }