4 ms·
Visual Studio Code: Text Buffer Reimplementation (2018)
- timewizard 1y agoSo.. Rope? https://en.wikipedia.org/wiki/Rope_(data_structure) https://en.wikipedia.org/wiki/Rope_(data_structure)
- joeblubaugh 1y agoI was surprised they didn’t go with a Rope, too, but I haven’t evaluated one compared to a piece table
- lenkite 1y agoThe 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 1y agoI’m surprised they got away with an ordered Array as long as they did. It’s almost prima facia poorly performing.
- smartmic 1y agoIs 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 1y agoSadly 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.