Utilities for text layout, wrapping, and rendering.
Go to file
2024-09-10 11:20:08 -04:00
old
.editorconfig
go.mod
go.sum
LICENSE
measure_test.go Add measurement stage 2024-09-10 11:20:08 -04:00
measure.go Add measurement stage 2024-09-10 11:20:08 -04:00
parse_test.go Add parsing stage 2024-09-10 11:19:57 -04:00
parse.go Add parsing stage 2024-09-10 11:19:57 -04:00
README.md

typeset

Go Reference

Typeset provides utilities for text layout, wrapping, and rendering. It is designed to avoid redundant work and minimize memory allocations wherever posible in situations where the bounds of a section of text may change frequently and its content semi-frequently. Text layout is performed by the TypeSetter struct, which operates in a three-phase process:

  1. Tokenization
  2. Measurement
  3. Layout, alignment

The results of these phases are memoized. When the state of the TypeSetter is queried, it will run through only the required phases before returning a value.

The contents of a TypeSetter can be drawn onto any draw.Image using the Draw function included within this package, but it is entirely possible to create a custom draw function that iterates over TypeSetter.Runes that uses some other method of drawing that's faster than five gazillion virtual method calls.