Browse Source

when wrapping, omit leading whitespace created if the wrap occurs at a space char

pull/214/head
R. Aidan Campbell 4 months ago
parent
commit
1bef2e51a1
No known key found for this signature in database
GPG Key ID: 985399E9CD6A99B
  1. 4
      page.go
  2. 33
      page_test.go

4
page.go

@ -142,6 +142,10 @@ func (p *Page) WrapContent(width, maxWidth int, color bool) {
if counter+(j-i) <= width+1 && !(j == i && counter == width+1) {
content.WriteRune(ch)
counter++
} else if ch == ' ' || ch == '\t' {
// we want to wrap and write this char, but it's a space. eat it to prevent the next line from
// having a leading whitespace because of our wrapping
counter++
} else {
content.WriteRune('\n')
counter = 0

33
page_test.go

@ -52,10 +52,10 @@ func Test_WrapContent_Wrapped_Line_Length(t *testing.T) {
"01 345 789 123456789 123456789 123456789 123456789\n",
[]string{
"01 345 789",
" 123456789",
" 123456789",
" 123456789",
" 123456789",
"123456789 ",
"123456789 ",
"123456789 ",
"123456789",
"",
},
args{
@ -65,14 +65,29 @@ func Test_WrapContent_Wrapped_Line_Length(t *testing.T) {
},
},
{
"Long line wrapped to 10 columns",
"Long line wrapped to 10 columns, leading spaces omitted when wrapping",
"0123456789 123456789 123456789 123456789 123456789\n",
[]string{
"0123456789",
" 123456789",
" 123456789",
" 123456789",
" 123456789",
"123456789 ",
"123456789 ",
"123456789 ",
"123456789",
"",
},
args{
10,
10,
false,
},
},
{
"Intentional leading spaces aren't trimmed",
"01 345\n 789 123456789\n",
[]string{
"01 345",
" 789 ",
"123456789",
"",
},
args{

Loading…
Cancel
Save