Extensible Code Editor

CodeMirror 6 is a rewrite of the CodeMirror code editor. The new system provides solid accessibility, touchscreen support, better content analysis, and a modern programming interface, while matching the existing code in features and performance. It is not API-compatible with the old code.

The project is at a point where the core is in good shape, most essential extensions have been implemented, and you are encouraged to try it out. It hasn't been used very widely yet and should be considered beta-quality. The interface is stabilizing but there may still be breaking changes.

Features

Full Parsing The recommended way to write language integration for CodeMirror 6 involves a full parse tree, which makes code analysis easier and more powerful.

Accessible This version leaves more to the browser, instead of “faking” the editing process in JavaScript. This makes it more transparent to screen readers and other accessibility tools.

Touchscreen Support Using a native editable control allows you to use the editor on a phone or tablet with the platform's native selection and editing behavior.

Extensible A more structured extension interface allows you to implement complicated extensions in a robust way, without the race conditions and complexity they would involve in the old system.

Modular The system's core is extremely generic, and even basic features like syntax highlighting and line number gutters are implemented as extensions, allowing you to omit or replace them if you need to.

Fast By carefully doing only the work that needs to be done, the library manages to be fast even with gigantic documents and ridiculously long lines.

About

CodeMirror is open source (MIT or GPL3). It is being developed on GitHub. Contributions are welcome.

The library supports browsers up from Internet Explorer 11 (with some polyfills).

Discussing the project, or asking questions, is best done on the forum. Bugs should be reported through the issue tracker. We aim to be an inclusive, welcoming community. To make that explicit, we have a code of conduct that applies to communication around the project.

These wonderful companies and organizations helped fund the work on CodeMirror 6.