I recently switched from Code Mirror 5 to Code Mirror 6 — and I am very happy with the new version.
The extension system is remarkable for a number of reasons. It makes the experience of coding applications with Code Mirror 6 special.
In my specific application, I need a flexible, data-configurable edit widget rather than an editor box with fixed features. The new configuration system is a perfect match for that.
But even when implementing a fixed user experience is deeply affected by the modularity of the system: Initially I was concerned about the seemingly sparse documentation. Will I be able to understand all the fine details of pulling these functions together to create my desired outcome? Will I need to ask questions and wait for answers?
To my surprise, my concerns were unfounded: When I had a question about an API feature, I just searched the Code Mirror 6 source code for use cases of that feature – and found clear, understandable “sample code” showing how these features are meant to be used. The deep modularity of Code Mirror 6 implies that quite some code inside of Code Mirror looks like the code that I want to write.
In fact, the more I see of that code, the more I am impressed. A lot of thought went into the design and, as a result things really fit together smoothly.
Thank you very much – Marijn and all CM contributors!