func (tp *TablePrinter) isHeader(line string) bool {
	allCapital := strings.ToUpper(line) == line
	return tp.firstLine || allCapital
}
isHeader returns if a line is a table header
package printer
import (
	"fmt"
	"io"
	"strings"
	"github.com/SignorMercurio/limner/color"
)
type TablePrinter struct {
	ColorPicker func(index int, column string) (color.Color, bool)
	firstLine   bool
}
func (tp *TablePrinter) Print(buf string, w io.Writer) {
	for _, line := range strings.Split(buf, "\n") {
		if tp.isHeader(line) {
			fmt.Fprintln(w, color.Apply(line, headerColor))
			tp.firstLine = false
			continue
		}
		tp.printTable(w, line, columnColors)
	}
}
func NewTablePrinter(colorPicker func(int, string) (color.Color, bool)) *TablePrinter {
	return &TablePrinter{
		ColorPicker: colorPicker,
		firstLine:   true,
	}
}