Thought people might think this was neat. I used the “Show and Tell” tag here because it seemed the most appropriate, but just to be clear it isn’t actually my project.
From the docs for the latest version of CodeMirror (which was basically a ground-up rewrite from the old version):
The library handles updates in a way inspired by approaches like Redux or Elm. With a few exceptions (like composition and drag-drop handling), the state of the view is entirely determined by the
EditorState
value in itsstate
property.
I’ve been messing around with using CodeMirror 6 via a web component in one of my Elm apps, and the new API is really nice and you can definitely see the similarities.