/* In-browser code editing made bearable */
CodeMirror is a JavaScript component that provides a code editor in the browser. When a mode is available for the language you are coding in, it will color your code, and optionally help with indentation.
A rich programming API and a CSS theming system are available for customizing CodeMirror to fit your application, and extending it with new functionality.
All of CodeMirror is released under a MIT-style license. To get it, you can download the latest release or the current development snapshot as zip files. To create a custom minified script file, you can use the compression API.
We use git for version control. The main repository can be fetched in this way:
git clone http://marijnhaverbeke.nl/git/codemirror2
CodeMirror can also be found on GitHub at marijnh/CodeMirror2. If you plan to hack on the code and contribute patches, the best way to do it is to create a GitHub fork, and send pull requests.
The manual is your first stop for learning how to use this library. It starts with a quick explanation of how to use the editor, and then describes the API in detail.
For those who want to learn more about the code, there is an overview of the internals available. The source code itself is, for the most part, also well commented.
There is a Google group (a sort of mailing list/newsgroup thing) for discussion and news related to CodeMirror. When reporting a bug, read this first. If you have a github account, simply open an issue there. Otherwise, post something to the group, or e-mail me directly: Marijn Haverbeke.
The following browsers are able to run CodeMirror:
I am not actively testing against every new browser release, and vendors have a habit of introducing bugs all the time, so I am relying on the community to tell me when something breaks. See here for information on how to contact me.
CodeMirror is developed and maintained by me, Marijn Haverbeke, in my own time. If your company is getting value out of CodeMirror, please consider purchasing a support contract.
CodeMirror support contracts exist in two forms—basic at €100 per month, and premium at €500 per month. Contact me for further information.
23-05-2012: Version 2.25:
23-04-2012: Version 2.24:
dragDrop
and onDragEvent
options.compoundChange
API method.catchall
in key maps,
add nofallthrough
boolean field instead.26-03-2012: Version 2.23:
setLineClass
.charCoords
and cursorCoords
with a mode
argument.autofocus
option.findMarksAt
method.27-02-2012: Version 2.22:
autoClearEmptyLines
option.27-01-2012: Version 2.21:
smartIndent
option.readOnly
-mode.scrollTo
method.20-12-2011: Version 2.2:
coordsFromIndex
to posFromIndex
,
add indexFromPos
method.21-11-2011: Version 2.18:
Fixes TextMarker.clear
, which is broken in 2.17.
21-11-2011: Version 2.17:
setBookmark
method.lib/util
.27-10-2011: Version 2.16:
coordsFromIndex
method.setValue
now no longer clears history. Use clearHistory
for that.markText
now
returns an object with clear
and find
methods. Marked text is now more robust when edited.26-09-2011: Version 2.15:
Fix bug that snuck into 2.14: Clicking the character that currently has the cursor didn't re-focus the editor.
26-09-2011: Version 2.14: