Documentation
¶
Overview ¶
Package ansiwrap implements ANSI terminal escape code aware text wrapping.
Index ¶
- func Balanced(str string, width int) string
- func BalancedIndent(str string, width, firstIndent, restIndent int) string
- func Greedy(str string, width int) string
- func GreedyIndent(str string, width, firstIndent, restIndent int) string
- func RuneCount(str string) int
- func Wrap(str string, width int) string
- func WrapIndent(str string, width, firstIndent, restIndent int) string
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Balanced ¶
Balanced is equivalent to Wrap, but always using the Balanced algorithm.
Example ¶
fmt.Println(Balanced("balanced output is much less ragged than greedy output", 40))
Output: balanced output is much less ragged than greedy output
func BalancedIndent ¶
BalancedIndent is equivalent to WrapIndent, but always using the Balanced algorithm.
func Greedy ¶
Greedy is equivalent to Wrap, but always using the Greedy algorithm.
Example ¶
fmt.Println(Greedy("balanced output is much less ragged than greedy output", 40))
Output: balanced output is much less ragged than greedy output
func GreedyIndent ¶
GreedyIndent is equivalent to WrapIndent, but always using the Greedy algorithm.
func RuneCount ¶
RuneCount counts the number of printable runes in str. In addition to ignoring non-printable unicode characters, it ignores all ANSI escape sequences.
func Wrap ¶
Wrap wraps the given string str so that each line is at most width printable characters wide.
Newlines are inserted at unicode space characters. If the distance between two space characters is larger than width, no newline is inserted.
str is interpreted as UTF-8.
Both non-printable unicode characters, and ANSI terminal escape sequences are ignored for counting purposes.
Wrap selects the best function between Balanced and Greedy, based on the length of str and width.
The Balanced algorithm wraps lineswith minimal raggedness using the 'Divide & Conquer' algorithm described at http://xxyxyz.org/line-breaking/
The Greedy algorithm greedily fills a line as close to width as possible before continuing to the next line.
func WrapIndent ¶
WrapIndent wraps lines following the same rules as Wrap, in addition to exposing optional indent values firstIndent and restIndent.
firstIndent will indent the first line by that number of spaces. restIndent will indent all remaining lines by that number of spaces. Indent values are taken into account when calculating wrapping.
Example (FirstIndent) ¶
fmt.Println("Example:")
fmt.Println(WrapIndent("firstIndent can create an indent", 12, 4, 0))
Output: Example: firstIndent can create an indent
Example (RestIndent) ¶
fmt.Println(WrapIndent("restIndent can create a hanging indent", 12, 0, 2))
Output: restIndent can create a hanging indent
Types ¶
This section is empty.