
Gap Buffers: a data structure for editable text - jmlr
https://routley.io/tech/2017/09/01/gap-buffer.html
======
ttd
I think implementing a simple text editor with undo/redo support is a
worthwhile exercise for everyone to do at least once in their career. It's a
great example of something that on first glance seems simple, but has quite a
bit of subtlety especially when you get into styled text.

Piece chains are another good data structure to know for this application,
though their implementation is more complex than a gap buffer. See
[http://www.catch22.net/tuts/piece-chains](http://www.catch22.net/tuts/piece-
chains) for a nice tutorial.

Also worth reading for insight and motivation is the 1985 CACM article
"Concepts of the text editor Lara" by J. Gutknecht.

