Until I explored “Example: Undoable Effects,” where undo/redo is implemented by creating a transaction with inverse operations, such that producing an old history requires generating a new one, I had assumed that EditorView maintains a linked list of all historical EditorStates. Due to the immutability of EditorState, undo/redo operations involve moving a cursor along the list to the target EditorState, while the history length remains constant.
It it possible to implement such history navigator by an extension?