Skip to content
/ wrap Public

πŸ“–βŽ An efficient and flexible word-wrapping package for Go (golang)

License

Notifications You must be signed in to change notification settings

bbrks/wrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.