I was surprised they didn’t go with a Rope, too, but I haven’t evaluated one compared to a piece table
lenkite•6mo ago
The piece table is an amazing editor data structure. Reasonably simple to grasp conceptually, memory efficient for large files, good cache-locality, allow easy undo/redo, original file can be read-only, etc.
Newer editors seem to prefer Rope though.
joeblubaugh•6mo ago
I’m surprised they got away with an ordered Array as long as they did. It’s almost prima facia poorly performing.
smartmic•6mo ago
Is there an overview of which editor uses which data structures? I am particularly interested in GNU Emacs, vi(m), Sublime and other popular text editors among Hackers.
animal531•6mo ago
Sadly I think plain old Visual Studio isn't getting much love these days.
At least Rider exist, so if they fall too far behind that will just keep growing in market share.
timewizard•6mo ago
https://en.wikipedia.org/wiki/Rope_(data_structure)
joeblubaugh•6mo ago