CodeMirror

In-browser code editing made almost bearable


CodeMirror is a JavaScript library that can be used to create a relatively pleasant editor interface for code-like content ― computer programs, HTML markup, and similar. If a parser has been written for the language you are editing (see below for a list of supported languages), the code will be coloured, and the editor will help you with indentation.

To get a look at CodeMirror, see the test pages for the various parsers...

Or take a look at some real-world uses of the system...

Releases

30-05-2009: Version 0.62: Introduces Python and Lua parsers. Add setParser (on-the-fly mode changing) and clearHistory methods. Make parsing passes time-based instead of lines-based (see the passTime option).

04-03-2009: Version 0.61: Add line numbers support (see lineNumbers option in manual). Support a mode where tab 'shifts' indentation instead of resetting it (see tabMode="shift"). Add indentUnit option to configure indentation depths. Make it possible to grab the editor's keyboard input, which is useful when popping up dialogs (see grabKeys/ungrabKeys). Fix a lot of small bugs, among which the various issues related to pasting in Internet Explorer.

29-12-2008: Version 0.60: This release makes lots of internal changes, so test before you upgrade. More robust selection-preservation on IE, allowing styles with different font sizes. New activeTokens and cursorActivity callbacks, and a more powerful, line-based interface for inspecting and manipulating the content of the editor (see manual). Fixes the replaceSelection problem in IE, and a lot of other, smaller issues.

28-09-2008: Version 0.58: Add parsers for SPARQL and HTML-mixed-mode (nests CSS and JS parsers). Also: bracket highlighting, a 'dumb tabs' mode, an onChange callback, and heaps of bugfixes. See the manual for details on the new features.

04-07-2008: Version 0.57: A CSS parser and a nice tokenizer framework, bugfixes in the XML parser, a few browser-issue workarounds, one of which should fix the age-old Firefox cursor-showing-on-wrong line bug.

Supported browsers

At this time, the following browsers are supported:

Making it work on other browsers that have decent support for the W3C DOM model should not be too hard, but I am not actively testing against those.

Getting the code

All of CodeMirror is released under a zlib-style license. To get it, you can download the latest release or the current development snapshot as zip files, or use the darcs version control system to get the repository:

darcs get http://marijn.haverbeke.nl/codemirror

This second method is recommended if you are planning to hack on CodeMirror ― it makes it easy to record your patches and share them with me. To see the repository online, visit the CodeMirror darcsweb.

Support

There is a Google group (a sort of mailing list/newsgroup thingy) for discussion and news related to CodeMirror. You can also e-mail me directly: Marijn Haverbeke.

Documentation