Visual Studio Code: Text Buffer Reimplementation (2018)
54 points
10 months ago
| 5 comments
| code.visualstudio.com
| HN
lenkite
10 months 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.

reply
smartmic
10 months 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.
reply
animal531
10 months 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.

reply
timewizard
10 months ago
[-]
reply
joeblubaugh
10 months ago
[-]
I was surprised they didn’t go with a Rope, too, but I haven’t evaluated one compared to a piece table
reply
joeblubaugh
10 months ago
[-]
I’m surprised they got away with an ordered Array as long as they did. It’s almost prima facia poorly performing.
reply