CodeMirror is a JavaScript program 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 (we currently have JavaScript, XML, CSS, PHP, and SPARQL covered), the code will be prettily coloured, and indentation will be taken care of for you, meaning the cursor will be placed at the right position when you press enter, and it is possible to re-indent blocks of code automatically.
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...
04-03-2008: 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.
25-04-2008: Version 0.56: Fixes for some minor bugs, no new features.
30-03-2008: Version
0.55: Fixes a bug that broke redo, adds readOnly
option.
10-03-2008: Version
0.54: Some new utility functions and options (see
fromTextArea
, saveFunction
,
initCallback
, textWrapping
,
disableSpellcheck
, jumpToLine
, and
reindent
in the manual), many
bugfixes, and some cleaning up and shrinking of the codebase (MochiKit is no longer used).
26-01-2008: Version 0.53: Adds support for continuous scanning, search/replace, undo/redo, jump-to-line, selection getting and setting. See the manual for details. Also fixes a bucket of bugs.
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.
All of CodeMirror is released under a BSD-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.
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.