After much deliberation I've decided to make the switch from CodeMirror to Monaco.
There's a few reasons for this. CodeMirror 5 is no longer being developed, and the switch to 6 would be a huge rewrite since there's not much compatibility between the two versions. Monaco itself has lots of features already built-in, things that took quite a few external plugins to get into the CodeMirror implementation.I'm incredibly thankful to Marijn for his work on CodeMirror, it has served well for many years.