doc/releases.html
See the new website.
07-02-2026: Version 5.65.21:
Better handle configuration objects with a null prototype.
kotlin mode: Fix tokenizing of unsigned long literals.
show-hint addon: Fix a positioning issue when the tooltip is at the bottom of the screen.
gas mode: Properly define the MIME type the mode's demo page mentions.
20-03-2025: Version 5.65.19:
20-09-2024: Version 5.65.18:
20-07-2024: Version 5.65.17:
20-11-2023: Version 5.65.16:
29-08-2023: Version 5.65.15:
17-07-2023: Version 5.65.14:
!assert command.27-04-2023: Version 5.65.13:
20-02-2023: Version 5.65.12:
20-12-2022: Version 5.65.11:
20-11-2022: Version 5.65.10:
20-09-2022: Version 5.65.9:
20-08-2022: Version 5.65.8:
20-07-2022: Version 5.65.7:
document/window, improving support for creating an editor in another frame.20-06-2022: Version 5.65.6:
beforeCursorEnter callbacks twice for cursor selections.30-05-2022: Version 5.65.5:
20-05-2022: Version 5.65.4:
!== and === operators.20-04-2022: Version 5.65.3:
21-02-2022: Version 5.65.2:
20-01-2022: Version 5.65.1:
20-12-2021: Version 5.65.0:
20-11-2021: Version 5.64.0:
11-10-2021: Version 5.63.3:
29-09-2021: Version 5.63.1:
20-09-2021: Version 5.63.0:
20-08-2021: Version 5.62.3:
translate=no attribute to prevent automatic translation from modifying its content.21-07-2021: Version 5.62.2:
20-07-2021: Version 5.62.1:
innerHTML.21-06-2021: Version 5.62.0:
lint addon: Add support for highlighting lines with errors or warnings. - Improve support for vim-style cursors in a number of themes.
20-05-2021: Version 5.61.1:
20-04-2021: Version 5.61.0:
"updateGutter" event when the gutter width changes.20-03-2021: Version 5.60.0:
setSelections now allows ranges to omit the head property when it is equal to anchor.parseDelimiters when both delimiters are the same.24-02-2021: Version 5.59.4:
20-02-2021: Version 5.59.3:
undoDepth option’s value.:vglobal, properly treat caps lock as a modifier key.20-01-2021: Version 5.59.2:
readonly: "nocursor" mode.31-12-2020: Version 5.59.1:
20-12-2020: Version 5.59.0:
19-11-2020: Version 5.58.3:
insertAt option to addLineWidget to actually allow the widget to be placed after all widgets for the line.@Attribute and element composition.23-10-2020: Version 5.58.2:
21-09-2020: Version 5.58.1:
21-09-2020: Version 5.58.0:
markText from showing up unless the span also had some other styling.gn and gN20-08-2020: Version 5.57.0:
20-07-2020: Version 5.56.0:
scrollMargin to control how many options are visible beyond the selected one.forceBreak to disable breaking of words that are longer than a line.21-06-2020: Version 5.55.0:
vim-mode-change event was fired twice.-->-style comments at the start of a line.20-05-2020: Version 5.54.0:
fencedCodeBlockDefaultMode option.21-04-2020: Version 5.53.2:
21-04-2020: Version 5.53.0:
screenReaderLabel to add a label to the editor.refresh when line wrapping was enabled.20-03-2020: Version 5.52.2:
20-02-2020: Version 5.52.0:
"beforeChange" filter.scrollTo.20-01-2020: Version 5.51.0:
direction is set to "rtl".clearHistory clears the history in all linked docs with a shared history.' and ``` marks, fix R in visual mode.gi, gI, and gJ.01-01-2020: Version 5.50.2:
20-12-2019: Version 5.50.0:
className option to addLineWidget.$ in reverse regexp search.21-10-2019: Version 5.49.2:
selectNextOccurrence stop doing something when all occurrences are selected.indentWithTabs option.20-09-2019: Version 5.49.0:
setTimeout/clearTimeout.20-08-2019: Version 5.48.4:
<pre> elements inside the editor.20-07-2019: Version 5.48.2:
&/$0.in operator in index types.20-06-2019: Version 5.48.0:
selectLeft/selectRight options to markText to provide more control over selection behavior.21-05-2019: Version 5.47.0:
... syntax.C-v I, fix handling of fat cursor C-v c Esc and 0, fix @@, fix block-wise yank.22-04-2019: Version 5.46.0:
autocorrect and autocapitalize in the editor’s input field.swapDoc during a mouse drag would cause an error.20-03-2019: Version 5.45.0:
< and > when matching other brackets.21-02-2019: Version 5.44.0:
this parameter declaration, prefixed | and & sigils in types, and improve parsing of for/in loops.21-01-2019: Version 5.43.0:
indent in several wrapping modes.autocorrect and autocapitalize to turn on those browser features.21-12-2018: Version 5.42.2:
"beforeChange" event could corrupt the textarea input.20-11-2018: Version 5.42.0:
markText method now takes an attributes option that can be used to add attributes text's HTML representation.= binding.25-10-2018: Version 5.41.0:
selectionsMayTouch option controls whether multiple selections are joined when they touch (the default) or not.noremap binding command."gutterContextMenu" event on Firefox.endOperation is called with no operation active.@param in comments.20-09-2018: Version 5.40.2:
gutterContextMenu event on Firefox.hintWords (basic completion) helper to clojure, mllike, julia, shell, and r modes.25-08-2018: Version 5.40.0:
phrase and option phrases to make translating UI text in addons easier.20-07-2018: Version 5.39.2:
Doc instance to the CodeMirror constructor, the mode option was ignored..npmignore dropping the bin/source-highlight utility from the distribution.20-06-2018: Version 5.39.0:
inMathMode option to start the mode in math mode.21-05-2018: Version 5.38.0:
getSelection is always called on the correct document.coordsChar doesn't return positions inside collapsed ranges.s regexp flag.dialog-opened) to the editor when a dialog is open.20-04-2018: Version 5.37.0:
20-03-2018: Version 5.36.0:
+ from being combined in history events for an editor-less document.:after element to style the scroll-lock icon.fromList completion strategy act on the current token up to the cursor, rather than the entire token.20-02-2018: Version 5.35.0:
addLineWidget on a document that has no attached editor.^ in multiline regexp mode.addCursorToSelection for short lines.import.\( \) delimiters, recognize more atom arguments.<* and *>.29-01-2018: Version 5.34.0:
toggleBookmark command.21-12-2017: Version 5.33.0:
addCursorToNextLine and addCursorToPrevLine.22-11-2017: Version 5.32.0:
enum and module keywords.20-10-2017: Version 5.31.0:
addOverlay now have access to a baseToken method on their input stream, giving access to the tokens of the underlying mode.20-09-2017: Version 5.30.0:
@param in comments.token isn't an array.24-08-2017: Version 5.29.0:
extraKeys is null.21-07-2017: Version 5.28.0:
"goLineLeft"/"goLineRight" behave better on wrapped lines.29-06-2017: Version 5.27.4:
22-06-2017: Version 5.27.2:
22-06-2017: Version 5.27.0:
readOnly is "nocursor".Doc constructor without new works again."LeftClick" or "Ctrl-Alt-MiddleTripleClick". When bound to a function, that function will be passed the position of the click as second argument.configureMouse option.StringStream.lookahead method."type" token type, makes modes that recognize types output it, and add styling for it to the themes.pasteLinesPerSelection option to control the behavior of pasting multiple lines into multiple selections.22-05-2017: Version 5.26.0:
20-04-2017: Version 5.25.2:
setValue.20-03-2017: Version 5.25.0:
role=presentation to more DOM elements to improve screen reader support.22-02-2017: Version 5.24.2:
20-02-2017: Version 5.24.0:
sticky property which determines whether they should be associated with the character before (value "before") or after (value "after") them.useInnerComments option to optionally suppress descending to the inner modes to get comment strings.lineComment property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements.elseif lines.#, @, and : chars.19-01-2017: Version 5.23.0:
findModeByMIME now understands +json and +xml MIME suffixes.override option to ignore language-specific defaults.stable option that auto-scrolls the content to keep it in the same place when inserting/removing a panel.20-12-2016: Version 5.22.0:
selectBetweenBrackets work with multiple cursors.CodeMirror.emacs to allow other addons to hook into Emacs-style functionality.nonEmpty option.optionChange.21-11-2016: Version 5.21.0:
<body>.setGutterMarker, clearGutter, and lineInfo methods are now available on Doc objects.heightAtLine method now takes an extra argument to allow finding the height at the top of the line's line widgets.else and elsif are now immediately indented.20-10-2016: Version 5.20.0:
newlineAndIndent command work with multiple cursors on the same line.cm-cm-overlay class.abstract keyword, and return type declarations for arrow functions.src/ directory. A git checkout no longer contains a working codemirror.js until you npm run build (but when installing from NPM, it is included).refresh event is now documented and stable.20-09-2016: Version 5.19.0:
type keyword.blur and focus events now pass the DOM event to their handlers.23-08-2016: Version 5.18.2:
22-08-2016: Version 5.18.0:
inputStyle now properly supports pasting on pre-Edge IE versions.addOverlay method now supports a priority option to control the order in which overlays are applied.+json now default to the JSON mode when the MIME itself is not defined.19-07-2016: Version 5.17.0:
async, allow trailing commas in import lists.20-06-2016: Version 5.16.0:
20-05-2016: Version 5.15.2:
20-05-2016: Version 5.15.0:
startState method from several wrapping modes.async/await and improve support for TypeScript type syntax.20-04-2016: Version 5.14.0:
posFromIndex and indexFromPos now take lineSeparator into account.save() when it is actually available@ operatorsfindMarks: No longer return marks that touch but don't overlap given rangetrim option to disable ignoring of whitespace21-03-2016: Version 5.13.2:
21-03-2016: Version 5.13:
"dragleave".findMarks sometimes failed to find multi-line marks.swapDoc.19-02-2016: Version 5.12:
unmap method to unmap bindings.text/html to parse HTML.=> functions.<script>, <style>, etc).matchClosing option to configure whether mismatched closing tags should be highlighted as errors.20-01-2016: Version 5.11:
cut, copy, paste, and touchstart. It will also forward mousedown for drag events21-12-2015: Version 5.10:
isReadOnly."beforeSelectionChange" events now has an origin property.23-11-2015: Version 5.9:
20-10-2015: Version 5.8:
allowDropFileTypes. Binary files can no longer be dropped into CodeMirror20-09-2015: Version 5.7:
async/await and ocal and binary numbers in JavaScript mode20-08-2015: Version 5.6:
readOnly editormaxHighlightLength are now less likely to mess up indentationautorefresh for refreshing an editor the first time it becomes visible, and html-lint for using HTMLHintsearch addon now recognizes \r and \n in pattern and replacement input20-07-2015: Version 5.5:
lineSeparator (with corresponding method)findPersistent command in the search addon, for a dialog that stays open as you cycle through matches25-06-2015: Version 5.4:
20-05-2015: Version 5.3:
show-hint addon (completeSingle option, "shown" and "close" events)switch statements, and roughly recognizes types and defined identifiers20-04-2015: Version 5.2:
show-hint's asynchronous mode"textarea" input stylelineWiseCopyCutfiletype setting23-03-2015: Version 5.1:
goNextDiff and goPrevDiff.20-02-2015: Version 5.0:
inputStyle to switch between hidden textarea and contenteditable input.getInputField method is no longer guaranteed to return a textarea.20-02-2015: Version 4.13:
closetag demo handles the slash character.22-01-2015: Version 4.12:
closetag addon now defines a "closeTag" command.findModeByFileName to the mode metadata addon.sol property to only match at the start of a line.selection-pointer to style the mouse cursor over the selection.9-01-2015: Version 4.11:
Unfortunately, 4.10 did not take care of the Firefox scrolling issue entirely. This release adds two more patches to address that.
29-12-2014: Version 4.10:
Emergency single-patch update to 4.9. Fixes Firefox-specific problem where the cursor could end up behind the horizontal scrollbar.
23-12-2014: Version 4.9:
22-11-2014: Version 4.8:
getLineTokens."gutter" styles in addLineClass.20-10-2014: Version 4.7:
findModeByMIME and findModeByExtension.19-09-2014: Version 4.6:
findWordAt21-08-2014: Version 4.5:
goLineLeftSmart21-07-2014: Version 4.4:
"change" is still guaranteed to fire before "cursorActivity")23-06-2014: Version 4.3:
:substitute, :global command.cursorBlinkRate to a negative value.19-05-2014: Version 4.2:
22-04-2014: Version 4.1:
"cursorActivity" event now fires after all other events for the operation (and only for handlers that were actually registered at the time the activity happened).insertSoftTab.20-03-2014: Version 4.0:
This is a new major version of CodeMirror. There are a few incompatible changes in the API. Upgrade with care, and read the upgrading guide.
22-04-2014: Version 3.24:
Merges the improvements from 4.1 that could easily be applied to the 3.x code. Also improves the way the editor size is updated when line widgets change.
20-03-2014: Version 3.23:
brackets style to angle brackets, fix case-sensitivity of tags for HTML.21-02-2014: Version 3.22:
findMarks method.16-01-2014: Version 3.21:
clearWhenEmpty to control auto-removal.getHelpers, and to register helpers matched on predicates with registerGlobalHelper.21-11-2013: Version 3.20:
21-10-2013: Version 3.19:
23-09-2013: Version 3.18:
Emergency release to fix a problem in 3.17 where .setOption("lineNumbers", false) would raise an error.
23-09-2013: Version 3.17:
css-lint, css-hint.box-sizing.21-08-2013: Version 3.16:
CodeMirror.fold.comment.29-07-2013: Version 3.15:
getModeAt.20-06-2013: Version 3.14:
markText and addLineWidget now take a handleMouseEvents option.lineAtHeight, getTokenTypeAt.changeGeneration and isClean."keyHandled" and "inputRead".20-05-2013: Version 3.13:
cursorScrollMargin and coverGutterNextToScrollbar.19-04-2013: Version 3.12:
maxHighlightLength and historyEventDelay.addToHistory option for markText.20-03-2013: Version 3.11:
collapserange, formatting, and simple-hint addons. plsql and mysql modes (use sql mode).continuecomment addon now exposes an option, rather than a command.placeholder, HTML completion.hasFocus, defaultCharWidth.beforeCursorEnter, renderLine.show-hint completion dialog addon.21-02-2013: Version 3.1:
CodeMirror.Pass to signal they didn't handle the key.simple-hint.js.insertLeft option to setBookmark.eachLine method to iterate over a document."beforeChange" and "beforeSelectionChange" events."hide" and "unhide" events to marked ranges.coordsChar's interpretation of its argument to match the documentation.25-01-2013: Version 3.02:
Single-bugfix release. Fixes a problem that prevents CodeMirror instances from being garbage-collected after they become unused.
21-01-2013: Version 3.01:
/addon. You might have to adjust your paths.rtlMoveVisually option.showIfHidden option for line widgets.fixedGutter option.10-12-2012: Version 3.0:
New major version. Only partially backwards-compatible. See the upgrading guide for more information. Changes since release candidate 2:
20-11-2012: Version 3.0, release candidate 2:
addKeyMap and removeKeyMap methods.formatting and closetag add-ons.20-11-2012: Version 3.0, release candidate 1:
addLineClass and removeLineClass, drop setLineClass.isClean/markClean methods.compoundChange method, use better undo-event-combining heuristic.22-10-2012: Version 3.0, beta 2:
gutterClick event.cursorHeight option.viewportMargin option.flattenSpans option.19-09-2012: Version 3.0, beta 1:
21-01-2013: Version 2.38:
Integrate some bugfixes, enhancements to the vim keymap, and new modes (D, Sass, APL) from the v3 branch.
20-12-2012: Version 2.37:
20-11-2012: Version 2.36:
scrollIntoView public.defaultTextHeight method.22-10-2012: Version 2.35:
markText/undo interaction.defineInitHook function.19-09-2012: Version 2.34:
compareStates is no longer needed.onHighlightComplete no longer works.CodeMirror.version property.23-08-2012: Version 2.33:
getViewPort and onViewportChange API.false disabling handling (again).innerHTML. Remove CodeMirror.htmlEscape.23-07-2012: Version 2.32:
Emergency fix for a bug where an editor with line wrapping on IE will break when there is no scrollbar.
20-07-2012: Version 2.31:
setSize method for programmatic resizing.getHistory and setHistory methods.getValue and getRange.22-06-2012: Version 2.3:
getScrollInfo method.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:
Change default binding for tab [more] Starting in 2.23, these bindings are default:
Two new themes: lesser-dark and xq-dark.
Differentiate between background and text styles in setLineClass.
Fix drag-and-drop in IE9+.
Extend charCoords and cursorCoords with a mode argument.
Add autofocus option.
Add 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:
fixedGutter option.setValue breaking cursor movement.23-08-2011: Version 2.13:
getGutterElement to API.smartHome option.25-07-2011: Version 2.12:
innerHTML for HTML-escaping.04-07-2011: Version 2.11:
replace method to search cursors, for cursor-preserving replacements.getStateAfter API and compareState mode API methods for finer-grained mode magic.getScrollerElement API method to manipulate the scrolling DIV.07-06-2011: Version 2.1:
Add a theme system (demo). Note that this is not backwards-compatible—you'll have to update your styles and modes!
07-06-2011: Version 2.02:
26-05-2011: Version 2.01:
coordsChar now worksonCursorActivity interfered with onChange.onChange."nocursor" mode for readOnly option.onHighlightComplete option.28-03-2011: Version 2.0:
CodeMirror 2 is a complete rewrite that's faster, smaller, simpler to use, and less dependent on browser quirks. See this and this for more information.
22-02-2011: Version 2.0 beta 2:
Somewhat more mature API, lots of bugs shaken out.
17-02-2011: Version 0.94:
tabMode: "spaces" was modified slightly (now indents when something is selected).08-02-2011: Version 2.0 beta 1:
CodeMirror 2 is a complete rewrite of CodeMirror, no longer depending on an editable frame.
19-01-2011: Version 0.93:
save method to instances created with fromTextArea.28-03-2011: Version 1.0:
17-12-2010: Version 0.92:
styleNumbers option is now officially supported and documented.onLineNumberClick option added.onLoad and onCursorActivity callbacks. Old names still work, but are deprecated.11-11-2010: Version 0.91:
toTextArea to update the code in the textarea.noScriptCaching option (hack to ease development).02-10-2010: Version 0.9:
height: "dynamic" more robust.enterMode and electricChars options to make indentation even more customizable.firstLineNumber option.@media rules by the CSS parser.22-07-2010: Version 0.8:
cursorCoords method to find the screen coordinates of the cursor.height: dynamic mode, where the editor's height will adjust to the size of its content.toTextArea method in instances created with fromTextArea.27-04-2010: Version 0.67:
More consistent page-up/page-down behaviour across browsers. Fix some issues with hidden editors looping forever when line-numbers were enabled. Make PHP parser parse "\\" correctly. Have jumpToLine work on line handles, and add cursorLine function to fetch the line handle where the cursor currently is. Add new setStylesheet function to switch style-sheets in a running editor.
01-03-2010: Version 0.66:
Adds removeLine method to API. Introduces the PLSQL parser. Marks XML errors by adding (rather than replacing) a CSS class, so that they can be disabled by modifying their style. Fixes several selection bugs, and a number of small glitches.
12-11-2009: Version 0.65:
Add support for having both line-wrapping and line-numbers turned on, make paren-highlighting style customisable (markParen and unmarkParen config options), work around a selection bug that Opera _re_introduced in version 10.
23-10-2009: Version 0.64:
Solves some issues introduced by the paste-handling changes from the previous release. Adds setSpellcheck, setTextWrapping, setIndentUnit, setUndoDepth, setTabMode, and setLineNumbers to customise a running editor. Introduces an SQL parser. Fixes a few small problems in the Python parser. And, as usual, add workarounds for various newly discovered browser incompatibilities.
31-08-2009: Version 0.63:
Overhaul of paste-handling (less fragile), fixes for several serious IE8 issues (cursor jumping, end-of-document bugs) and a number of small problems.
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).