Skip to content

Commit

Permalink
Merge pull request #1513 from abitrolly/patch-1
Browse files Browse the repository at this point in the history
wrap: Avoid trailing whitespace for empty lines
  • Loading branch information
dearchap committed Oct 5, 2022
2 parents 6491dde + 15b2789 commit 8335f54
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
19 changes: 11 additions & 8 deletions help.go
Expand Up @@ -468,25 +468,28 @@ func nindent(spaces int, v string) string {
}

func wrap(input string, offset int, wrapAt int) string {
var sb strings.Builder
var ss []string

lines := strings.Split(input, "\n")

padding := strings.Repeat(" ", offset)

for i, line := range lines {
if i != 0 {
sb.WriteString(padding)
}
if line == "" {
ss = append(ss, line)
} else {
wrapped := wrapLine(line, offset, wrapAt, padding)
if i == 0 {
ss = append(ss, wrapped)
} else {
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 {
Expand Down
13 changes: 10 additions & 3 deletions help_test.go
Expand Up @@ -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) {

// Reset HelpPrinter after this test.
Expand Down Expand Up @@ -1276,7 +1283,7 @@ DESCRIPTION:
App.Description string long
enough that it should be
wrapped in this test
with a newline
and an indented line
Expand All @@ -1294,8 +1301,8 @@ COPYRIGHT:
that it should be wrapped.
Including newlines.
And also indented lines.
And then another long line.
Blah blah blah does anybody
ever read these things?
Expand Down

0 comments on commit 8335f54

Please sign in to comment.