public void Append(OutputSpan span)
{
var lastSpan = _spans.LastOrDefault();
if (lastSpan == null)
{
_spans.Add(span);
}
else if (lastSpan.Font == span.Font)
{
// join two spans with same style
var combinedSpan = new OutputSpan(_spans.Last().Text + span.Text, span.Font);
_spans[_spans.Count - 1] = combinedSpan;
}
else
{
_spans.Add(span);
}
}