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) }