No description
Find a file
2026-02-03 00:13:00 +00:00
.github/workflows Update GH Actions 2026-02-02 23:04:20 +00:00
testdata/fuzz/FuzzWrapCustomNewline add fuzz testing 2026-02-02 23:47:07 +00:00
benchmark_test.go Implement opt-in for MinimumRaggedness. Runs about 30x slower than the greedy algorithm but with much nicer looking results. Closes #2 2026-02-03 00:13:00 +00:00
example_test.go Implement opt-in for MinimumRaggedness. Runs about 30x slower than the greedy algorithm but with much nicer looking results. Closes #2 2026-02-03 00:13:00 +00:00
fuzz_test.go Implement opt-in for MinimumRaggedness. Runs about 30x slower than the greedy algorithm but with much nicer looking results. Closes #2 2026-02-03 00:13:00 +00:00
go.mod Use strings.Builder and preallocate an approximation of how large the final buffer is based on string length and estimated number of breaks (assuming hard-wrapping) 2026-02-02 21:31:27 +00:00
go.sum Use stdlib testing package instead of testify (#10) 2019-11-04 11:10:41 +00:00
LICENSE Initial commit 2017-02-04 00:40:40 +00:00
optimal.go Implement opt-in for MinimumRaggedness. Runs about 30x slower than the greedy algorithm but with much nicer looking results. Closes #2 2026-02-03 00:13:00 +00:00
README.md Bump pkg.go.dev url for v2 2021-01-02 16:39:16 +00:00
utils.go cleanup tests 2026-02-02 22:13:58 +00:00
utils_test.go cleanup tests 2026-02-02 22:13:58 +00:00
wrapper.go Implement opt-in for MinimumRaggedness. Runs about 30x slower than the greedy algorithm but with much nicer looking results. Closes #2 2026-02-03 00:13:00 +00:00
wrapper_test.go Implement opt-in for MinimumRaggedness. Runs about 30x slower than the greedy algorithm but with much nicer looking results. Closes #2 2026-02-03 00:13:00 +00:00

wrap Go Reference GitHub tag license Go Report Card codecov

An efficient and flexible word-wrapping package for Go (golang)

Usage

var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non tortor magna. Cras vel finibus tellus."

// Wrap when lines exceed 80 chars.
fmt.Println(wrap.Wrap(loremIpsum, 80))
// Output:
// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam
// nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper
// fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis
// magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet
// aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non
// tortor magna. Cras vel finibus tellus.
var loremIpsum = "/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non tortor magna. Cras vel finibus tellus. */"

w := wrap.NewWrapper()

// Trim the single-line block comment symbols from each input line.
w.TrimInputPrefix = "/* "
w.TrimInputSuffix = " */"

// Prefix each new line with a single-line comment symbol.
w.OutputLinePrefix = "// "

// Wrap when lines exceed 80 chars.
fmt.Println(w.Wrap(loremIpsum, 80))
// Output:
// // Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam
// // nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper
// // fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc
// // sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget
// // laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia
// // a. Fusce non tortor magna. Cras vel finibus tellus.

Advanced Usage and more examples (custom breakpoints, prefixes, suffixes, etc.)

See godoc.org/github.com/bbrks/wrap for more examples using the Wrapper type to provide custom breakpoints, prefixes, suffixes, etc.

Contributing

Issues, feature requests or improvements welcome!

License

This project is licensed under the MIT License.