public FormattedString LevelString(bool showlevel = true, bool complete = true) { var b = new FormattedString(); var count = NextParts.Count(); b.Append(ThisPart); if (count == 1) { b.Append(" "); b.Append(NextParts.First().LevelString(showlevel)); return(b); } if (count != 0 && showlevel) { b.Append($"[ {FormattedString.Join("| ", NextParts.Select(o => o.LevelString(complete)))}] "); } else if (count != 0) { b.Append("..."); } return(b); }