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

@ -88,7 +88,7 @@ fn main() {
let mut mouse_y = -1;
let mut mouse_left = false;
loop {
editor.shape_as_needed();
editor.shape_as_needed(true);
if editor.buffer().redraw() {
let instant = Instant::now();