forked from cerc-io/plugeth
40 lines
1.0 KiB
Markdown
40 lines
1.0 KiB
Markdown
|
# go-wordwrap
|
||
|
|
||
|
`go-wordwrap` (Golang package: `wordwrap`) is a package for Go that
|
||
|
automatically wraps words into multiple lines. The primary use case for this
|
||
|
is in formatting CLI output, but of course word wrapping is a generally useful
|
||
|
thing to do.
|
||
|
|
||
|
## Installation and Usage
|
||
|
|
||
|
Install using `go get github.com/mitchellh/go-wordwrap`.
|
||
|
|
||
|
Full documentation is available at
|
||
|
http://godoc.org/github.com/mitchellh/go-wordwrap
|
||
|
|
||
|
Below is an example of its usage ignoring errors:
|
||
|
|
||
|
```go
|
||
|
wrapped := wordwrap.WrapString("foo bar baz", 3)
|
||
|
fmt.Println(wrapped)
|
||
|
```
|
||
|
|
||
|
Would output:
|
||
|
|
||
|
```
|
||
|
foo
|
||
|
bar
|
||
|
baz
|
||
|
```
|
||
|
|
||
|
## Word Wrap Algorithm
|
||
|
|
||
|
This library doesn't use any clever algorithm for word wrapping. The wrapping
|
||
|
is actually very naive: whenever there is whitespace or an explicit linebreak.
|
||
|
The goal of this library is for word wrapping CLI output, so the input is
|
||
|
typically pretty well controlled human language. Because of this, the naive
|
||
|
approach typically works just fine.
|
||
|
|
||
|
In the future, we'd like to make the algorithm more advanced. We would do
|
||
|
so without breaking the API.
|