Example #1
0
func (f *Formatter) FormatComment(comment *gc.Comment) string {
	var content string
	switch {
	case f.format == Short || len(f.format) == 0:
		content = f.substituteVariables(ShortFormat, comment)
	case f.format == Full:
		content = f.substituteVariables(FullFormat, comment)
	case f.format == Disco:
		content = f.substituteVariables(discoFormat, comment)
	case f.format == Raw:
		format := string(f.substituteVariables(RawFormat, comment))
		content = fmt.Sprintf(format, comment.Serialize())
	case strings.HasPrefix(f.format, formatPrefix):
		content = f.substituteVariables(f.format[len(formatPrefix):], comment)
	}

	var components []byte
	for _, lineContent := range strings.Split(content, "\n") {
		if f.useMargin {
			components = append(components, []byte(fmt.Sprintf("%s%s│%s%s", f.indent, f.colorMapping["magenta"], f.colorMapping["resetColor"], lineContent))...)
		} else {
			components = append(components, []byte(fmt.Sprintf("%s\n", lineContent))...)
		}
	}
	components = append(components, []byte("\n\n")...)
	return string(components)
}