mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-26 11:08:48 -06:00
`text_edit_layout`, which the inline editor calls on every keystroke to size the frame, interpreted the page's content four times: `text_blocks` for the paragraphs, `text_lines` again for the untouched runs, once more inside `rewrite_block` on the still unchanged clone, and finally for the rewritten draft. The first three read the same, unchanged page. It now reads the page's lines once, groups the paragraphs from them, and hands them to the rewrite through `rewrite_block_from`, which `rewrite_block_with_limit` also uses after reading the lines itself. The draft is still read back once after the rewrite. On a page of 120 runs in 80 paragraphs, 50 keystrokes in a release build took 0.87 ms each, against 1.25 ms before (the fastest of three runs each). No behaviour changes. The new test checks that the measured draft frame is the extent an applied edit actually draws, for a longer row, a shorter one and an added row, so sharing the lines can't drift from a fresh read. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>