I was surprised they didn’t go with a Rope, too, but I haven’t evaluated one compared to a piece table
lenkite•8mo 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•8mo ago
I’m surprised they got away with an ordered Array as long as they did. It’s almost prima facia poorly performing.
smartmic•8mo 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•8mo 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•8mo ago
https://en.wikipedia.org/wiki/Rope_(data_structure)
joeblubaugh•8mo ago