Finding a good data structure for a word processor is a difficult problem. My notebook diaries on the problem go back to 2001 when I was frustrated with using Word, which was at that time slow and unstable.
While ropes and piece tables are standard data structures, I found that an immutable n-ary tree of 'Texels' (B-Tree) works surprisingly well even in high-level languages like Python.
I’m currently taking a professional career break and decided to finally use this time to push my research further, document the results, and build MiniWord—a WYSIWYG word processor in Python.
chrisecker•1h ago
While ropes and piece tables are standard data structures, I found that an immutable n-ary tree of 'Texels' (B-Tree) works surprisingly well even in high-level languages like Python.
I’m currently taking a professional career break and decided to finally use this time to push my research further, document the results, and build MiniWord—a WYSIWYG word processor in Python.
I'd love to get your thoughts on the TexelTree. Repo/Essay: https://codeberg.org/chrisecker/texeltree