-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace ACE with CodeMirror #1434
Comments
I'm planning to investigate this more thoroughly and recommend a specific editor option, such as CodeMirror or Monaco based on the work I'm doing to integrate VSCode-style language intelligence |
A summary of my findings is that both CodeMirror and Monaco support each of the requirements you've described above. CodeMirror has fewer of those features enabled in its default setting, but the addons are easy to use and can be styled to a point. Monaco has a bunch of additional features included out of the box, including use of service workers, but I tested with that disabled and it just acted like a very basic text editor. The biggest difference is bundle size- CodeMirror is a significantly smaller codebase. Monaco is probably around 5-7Mb of code depending on how many extensions are included. So the basic idea is that Monaco is a very full-featured editor, which has many customization options out of the box. CodeMirror requires more tweaking and state management to get working, but all the features of the larger library are achievable. So based on my findings, I think we should use CodeMirror. I reached a similar conclusion for my other projects, which I posted about- it is easier to customize a CodeMirror extension than to rewrite core parts of the Monaco library. |
CodeMirror is a promising-looking alternative to ACE that is used in a lot of projects, including the developer tools for Chrome, Firefox, and Safari.
Let’s investigate and see whether CodeMirror would alleviate any of the major ACE pain points:
brace
port. This is probably a major contributor to the first issue.For full release we need to make sure all these features from the status quo are maintained:
The text was updated successfully, but these errors were encountered: