Refactor of scroll and shaping

- Scroll is identified by line index and layout index, instead of just
  layout index
- Shaping has the option to prune, where caches outside of the scroll
  view are cleared
- Syntax editor no longer requires layout of all lines, only of lines
  inside scroll
- BufferLine has a metadata field that can be used by other abstractions
  to know when text was changed
This commit is contained in:
Jeremy Soller 2023-12-15 13:37:59 -07:00
parent e7261fc06e
commit d0b4b4635e
16 changed files with 213 additions and 159 deletions

View file

@ -39,7 +39,7 @@ fn main() {
buffer.set_text(&text, attrs, Shaping::Advanced);
// Perform shaping as desired
buffer.shape_until_scroll();
buffer.shape_until_scroll(true);
// Default text color (0xFF, 0xFF, 0xFF is white)
const TEXT_COLOR: Color = Color::rgb(0xFF, 0xFF, 0xFF);