Refactor `wrap()` and add test for empty line

main
Anatoli Babenia 2 years ago
parent 359e5a8d84
commit 15b278907e

@ -468,7 +468,7 @@ func nindent(spaces int, v string) string {
} }
func wrap(input string, offset int, wrapAt int) string { func wrap(input string, offset int, wrapAt int) string {
var sb strings.Builder var ss []string
lines := strings.Split(input, "\n") lines := strings.Split(input, "\n")
@ -476,23 +476,20 @@ func wrap(input string, offset int, wrapAt int) string {
for i, line := range lines { for i, line := range lines {
if line == "" { if line == "" {
sb.WriteString("\n") ss = append(ss, line)
continue } else {
} wrapped := wrapLine(line, offset, wrapAt, padding)
if i == 0 {
// the first line is not indented ss = append(ss, wrapped)
if i != 0 { } else {
sb.WriteString(padding) ss = append(ss, padding+wrapped)
}
sb.WriteString(wrapLine(line, offset, wrapAt, padding)) }
if i != len(lines)-1 {
sb.WriteString("\n")
} }
} }
return sb.String() return strings.Join(ss, "\n")
} }
func wrapLine(input string, offset int, wrapAt int, padding string) string { func wrapLine(input string, offset int, wrapAt int, padding string) string {

@ -1213,6 +1213,13 @@ func TestDefaultCompleteWithFlags(t *testing.T) {
} }
} }
func TestWrap(t *testing.T) {
emptywrap := wrap("", 4, 16)
if emptywrap != "" {
t.Errorf("Wrapping empty line should return empty line. Got '%s'.", emptywrap)
}
}
func TestWrappedHelp(t *testing.T) { func TestWrappedHelp(t *testing.T) {
// Reset HelpPrinter after this test. // Reset HelpPrinter after this test.

Loading…
Cancel
Save