This is not a trivial subject; it requires several steps: - [x] decoding markup (from Markdown, simplified HTML, etc.) - [x] font discovery (now using `fontique`) - [x] font loading (handled by `rusttype`) - [x] font association (currently we only support a single font) - [x] conversion from unicode to glyphs (handled by `rusttype`) - [x] line-breaking - [x] shaping - [x] alignment - [x] justified alignment - [x] caching and rendering (`glyph_brush`) - [x] extraction of text metrics (use of line height for layouts and text highlighting) - [x] text position → screen position translation (drawing edit bar) - [x] screen position → text position translation (mouse selection/positioning) - [x] clipboard interaction - [x] glyph fallback - [ ] rich-text clipboard support - [ ] efficient editing for large documents: https://github.com/kas-gui/kas-text/issues/15 ~~Currently we use `glyph_brush` (part of `rusttype`) to achieve a sub-set of the above.~~
This is not a trivial subject; it requires several steps:
fontique)rusttype)rusttype)glyph_brush)Currently we useglyph_brush(part ofrusttype) to achieve a sub-set of the above.