[simplemodeaddon](https://codemirror.net/5/demo/simplemode.html): Support regexps with a unicode flag.
[javascriptmode](https://codemirror.net/5/mode/javascript/index.html): Add support for TypeScript template string types, improve integration with JSX mode.
[vimbindings](https://codemirror.net/5/demo/vim.html): Fix substitute command when joining and splitting lines, fix global command when line number change, add support for `:vglobal`, properly treat caps lock as a modifier key.
[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets): Fix a regression in the behavior of pressing enter between brackets.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Fix an infinite loop on specific syntax errors in object types.
[lintaddon](https://codemirror.net/5/doc/manual.html#addon_lint): Don't show duplicate messages for a given line.
[clojuremode](https://codemirror.net/5/mode/clojure/index.html): Fix regexp that matched in exponential time for some inputs.
[hardwrapaddon](https://codemirror.net/5/doc/manual.html#addon_hardwrap): Improve handling of words that are longer than the line length.
[matchbracketsaddon](https://codemirror.net/5/doc/manual.html#addon_matchbrackets): Fix leaked event handler on disabling the addon.
###Newfeatures
[searchaddon](https://codemirror.net/5/demo/search.html): Make it possible to configure the search addon to show the dialog at the bottom of the editor.
[placeholderaddon](https://codemirror.net/5/doc/manual.html#addon_placeholder): Update placeholder visibility during composition.
###Newfeatures
Makeitlesscumbersometostylenewlintmessagetypes.
[vimbindings](https://codemirror.net/5/demo/vim.html): Support black hole register, `gn` and `gN`
##5.57.0(2020-08-20)
###Bugfixes
FixissuethatbrokebindingthemacOSCommandkey.
[commentaddon](https://codemirror.net/5/doc/manual.html#addon_comment): Keep selection in front of inserted markers when adding a block comment.
[cssmode](https://codemirror.net/5/mode/css/): Recognize more properties and value names.
[annotatescrollbaraddon](https://codemirror.net/5/doc/manual.html#addon_annotatescrollbar): Don't hide matches in collapsed content.
###Newfeatures
[vimbindings](https://codemirror.net/5/demo/vim.html): Support tag text objects in xml and html modes.
##5.56.0(2020-07-20)
###Bugfixes
Line-wisepastingwasfixedonChromeWindows.
[wastmode](https://codemirror.net/5/mode/wast/): Follow standard changes.
[soymode](https://codemirror.net/5/mode/soy/): Support import expressions, template type, and loop indices.
[sql-hintaddon](https://codemirror.net/5/doc/manual.html#addon_sql-hint): Improve handling of double quotes.
###Newfeatures
[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint): New option `scrollMargin` to control how many options are visible beyond the selected one.
[hardwrapaddon](https://codemirror.net/5/doc/manual.html#addon_hardwrap): New option `forceBreak` to disable breaking of words that are longer than a line.
[runmodeaddon](https://codemirror.net/5/doc/manual.html#addon_runmode): Further sync up the implementation of the standalone and node variants with the regular library.
###Newfeatures
[loadmodeaddon](https://codemirror.net/5/doc/manual.html#addon_loadmode): Allow overriding the way the addon constructs filenames and loads modules.
[lint](https://codemirror.net/5/doc/manual.html#addon_lint) and [tern](https://codemirror.net/5/demo/tern.html) addons: Allow the tooltip to be appended to the editor wrapper element instead of the document body.
[foldgutteraddon](https://codemirror.net/5/doc/manual.html#addon_foldgutter): Optimize by reusing DOM when possible.
[markdownmode](https://codemirror.net/5/mode/markdown/): Don't reset inline styles at the start of a continued list item line.
[clikemode](https://codemirror.net/5/mode/clike/): Add a configuration for Objective-C++.
##5.49.0(2019-09-20)
###Bugfixes
[octavemode](https://codemirror.net/5/mode/octave/index.html): Don't mark common punctuation as error.
[clikemode](https://codemirror.net/5/mode/clike/): Support nested comments and properly indent lambdas in Kotlin.
[foldgutter](https://codemirror.net/5/doc/manual.html#addon_foldgutter) and [annotatescrollbar](https://codemirror.net/5/doc/manual.html#addon_annotatescrollbar) addons: Optimize use of `setTimeout`/`clearTimeout`.
[xmlmode](https://codemirror.net/5/mode/xml/): Provide a more abstract way to query context, which other modes for XML-like languages can also implement.
[handlebarsmode](https://codemirror.net/5/mode/handlebars/): Support triple-brace tags.
##5.48.2(2019-07-20)
###Bugfixes
[vimbindings](https://codemirror.net/5/demo/vim.html): Adjust char escape substitution to match vim, support `&/$0`.
[searchaddon](https://codemirror.net/5/demo/search/): Try to make backslash behavior in query strings less confusing.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Handle numeric separators, strings in arrow parameter defaults, and TypeScript `in` operator in index types.
[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint): Fix positioning when the dialog is placed in a scrollable container.
###Newfeatures
Add[`selectLeft`](https://codemirror.net/5/doc/manual.html#mark_selectLeft)/[`selectRight`](https://codemirror.net/5/doc/manual.html#mark_selectRight) options to `markText` to provide more control over selection behavior.
[matchesonscrollbaraddon](https://codemirror.net/5/doc/manual.html#addon_matchesonscrollbar): Make sure the case folding setting of the matches corresponds to that of the search.
[swiftmode](https://codemirror.net/5/mode/swift): Fix handling of empty strings.
###Newfeatures
Allow[gutters](https://codemirror.net/5/doc/manual.html#option_gutters) to specify direct CSS strings.
##5.45.0(2019-03-20)
###Bugfixes
[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets): Improve heuristic for when to auto-close newly typed brackets.
[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint): Fix accidental global variable.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Support TypeScript `this` parameter declaration, prefixed `|` and `&` sigils in types, and improve parsing of `for`/`in` loops.
[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint): Don't assume the hints are shown in the same document the library was loaded in.
[pythonmode](https://codemirror.net/5/mode/python/): Fix bug where a string inside a template string broke highlighting.
[swiftmode](https://codemirror.net/5/mode/swift): Support multi-line strings.
###Newfeatures
The[`markText`method](https://codemirror.net/5/doc/manual.html#markText) now takes an [`attributes`](https://codemirror.net/5/doc/manual.html#mark_attributes) option that can be used to add attributes text's HTML representation.
[vimbindings](https://codemirror.net/5/demo/vim.html): Add support for the `=` binding.
##5.41.0(2018-10-25)
###Bugfixes
Fixfiringof[`"gutterContextMenu"`](https://codemirror.net/5/doc/manual.html#event_gutterContextMenu) event on Firefox.
Don'tcrashwhen[`endOperation`](https://codemirror.net/5/doc/manual.html#endOperation) is called with no operation active.
[vimbindings](https://codemirror.net/5/demo/vim.html): Fix insert mode repeat after visualBlock edits.
[schememode](https://codemirror.net/5/mode/scheme/index.html): Improve highlighting of quoted expressions.
[soymode](https://codemirror.net/5/mode/soy/): Support injected data and `@param` in comments.
[objectivecmode](https://codemirror.net/5/mode/clike/): Improve conformance to the actual language.
###Newfeatures
Anew[`selectionsMayTouch`](https://codemirror.net/5/doc/manual.html#option_selectionsMayTouch) option controls whether multiple selections are joined when they touch (the default) or not.
Add`hintWords`(basiccompletion)helperto[clojure](https://codemirror.net/5/mode/clojure/index.html), [mllike](https://codemirror.net/5/mode/mllike/index.html), [julia](https://codemirror.net/5/mode/julia/), [shell](https://codemirror.net/5/mode/shell/), and [r](https://codemirror.net/5/mode/r/) modes.
[clojuremode](https://codemirror.net/5/mode/clojure/index.html): Clean up and improve.
##5.40.0(2018-08-25)
###Bugfixes
[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets): Fix issue where bracket-closing wouldn't work before punctuation.
[paneladdon](https://codemirror.net/5/doc/manual.html#addon_panel): Fix problem where replacing the last remaining panel dropped the newly added panel.
[hardwrapaddon](https://codemirror.net/5/doc/manual.html#addon_hardwrap): Fix an infinite loop when the indentation is greater than the target column.
[jinja2](https://codemirror.net/5/mode/jinja2/) and [markdown](https://codemirror.net/5/mode/markdown/) modes: Add comment metadata.
###Newfeatures
Newmethod[`phrase`](https://codemirror.net/5/doc/manual.html#phrase) and option [`phrases`](https://codemirror.net/5/doc/manual.html#option_phrases) to make translating UI text in addons easier.
[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint): Fix behavior when backspacing to the start of the line with completions open.
[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint): Make `fromList` completion strategy act on the current token up to the cursor, rather than the entire token.
[markdownmode](https://codemirror.net/5/mode/markdown/): Fix a regexp with potentially exponental complexity.
[searchcursoraddon](https://codemirror.net/5/doc/manual.html#addon_searchcursor): Fix behavior of `^` in multiline regexp mode.
[match-highlighteraddon](https://codemirror.net/5/doc/manual.html#addon_match-highlighter): Fix problem with matching words that have regexp special syntax in them.
[sublimebindings](https://codemirror.net/5/demo/sublime.html): Fix `addCursorToSelection` for short lines.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Support TypeScript intersection types, dynamic `import`.
[stexmode](https://codemirror.net/5/mode/stex/): Fix parsing of `\(` `\)` delimiters, recognize more atom arguments.
[haskellmode](https://codemirror.net/5/mode/haskell/): Highlight more builtins, support `<*` and `*>`.
[sqlmode](https://codemirror.net/5/mode/sql/): Make it possible to disable backslash escapes in strings for dialects that don't have them, do this for MS SQL.
[dockerfilemode](https://codemirror.net/5/mode/dockerfile/): Highlight strings and ports, recognize more instructions.
###Newfeatures
[vimbindings](https://codemirror.net/5/demo/vim.html): Support alternative delimiters in replace command.
##5.34.0(2018-01-29)
###Bugfixes
[markdownmode](https://codemirror.net/5/mode/markdown/): Fix a problem where inline styles would persist across list items.
[sublimebindings](https://codemirror.net/5/demo/sublime.html): Fix the `toggleBookmark` command.
[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets): Improve behavior when closing triple quotes.
[xml-foldaddon](https://codemirror.net/5/demo/folding.html): Fix folding of line-broken XML tags.
[shellmode](https://codemirror.net/5/mode/shell/): Better handling of nested quoting.
[javascript-lintaddon](https://codemirror.net/5/demo/lint.html): Clean up and simplify.
[matchbracketsaddon](https://codemirror.net/5/doc/manual.html#addon_matchbrackets): Fix support for multiple editors at the same time.
###Newfeatures
Newthemes:[oceanic-next](https://codemirror.net/5/demo/theme.html#oceanic-next) and [shadowfox](https://codemirror.net/5/demo/theme.html#shadowfox).
##5.33.0(2017-12-21)
###Bugfixes
[lintaddon](https://codemirror.net/5/doc/manual.html#addon_lint): Make updates more efficient.
[cssmode](https://codemirror.net/5/mode/css/): The mode is now properly case-insensitive.
[continuelistaddon](https://codemirror.net/5/doc/manual.html#addon_continuelist): Fix broken handling of unordered lists introduced in previous release.
[swift](https://codemirror.net/5/mode/swift) and [scala](https://codemirror.net/5/mode/clike/) modes: Support nested block comments.
[sublimebindings](https://codemirror.net/5/demo/sublime.html): Use the proper key bindings for `addCursorToNextLine` and `addCursorToPrevLine`.
###Newfeatures
[jsxmode](https://codemirror.net/5/mode/jsx/index.html): Support JSX fragments.
[closetagaddon](https://codemirror.net/5/demo/closetag.html): Add an option to disable auto-indenting.
##5.32.0(2017-11-22)
###Bugfixes
Increasecontrastondefaultbracket-matchingcolors.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Recognize TypeScript type parameters for calls, type guards, and type parameter defaults. Improve handling of `enum` and `module` keywords.
[commentaddon](https://codemirror.net/5/doc/manual.html#addon_comment): Fix bug when uncommenting a comment that spans all but the last selected line.
[searchcursoraddon](https://codemirror.net/5/doc/manual.html#addon_searchcursor): Fix bug in case folding.
[emacsbindings](https://codemirror.net/5/demo/emacs.html): Prevent single-character deletions from resetting the kill ring.
[vimbindings](https://codemirror.net/5/demo/vim.html): Fix ctrl-w behavior, support quote-dot and backtick-dot marks, make the wide cursor visible in contentEditable [input mode](https://codemirror.net/5/doc/manual.html#option_contentEditable).
[continuecommentaddon](https://codemirror.net/5/doc/manual.html#addon_continuecomment): Fix bug when pressing enter after a single-line block comment.
[markdownmode](https://codemirror.net/5/mode/markdown/): Fix issue with leaving indented fenced code blocks.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Fix bad parsing of operators without spaces between them. Fix some corner cases around semicolon insertion and regexps.
###Newfeatures
Modesaddedwith[`addOverlay`](https://codemirror.net/5/doc/manual.html#addOverlay) now have access to a [`baseToken`](https://codemirror.net/5/doc/manual.html#baseToken) method on their input stream, giving access to the tokens of the underlying mode.
New[`pasteLinesPerSelection`](https://codemirror.net/5/doc/manual.html#option_pasteLinesPerSelection) option to control the behavior of pasting multiple lines into multiple selections.
[searchcursoraddon](https://codemirror.net/5/doc/manual.html#addon_searchcursor): Support multi-line regular expression matches, and normalize strings when matching.
[mergeaddon](https://codemirror.net/5/doc/manual.html#addon_merge): Make aligning of unchanged chunks more robust.
[commentaddon](https://codemirror.net/5/doc/manual.html#addon_comment): Fix comment-toggling on a block of text that starts and ends in a (different) block comment.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Improve support for TypeScript syntax.
[rmode](https://codemirror.net/5/mode/r/): Fix indentation after semicolon-less statements.
[shellmode](https://codemirror.net/5/mode/shell/): Properly handle escaped parentheses in parenthesized expressions.
[markdownmode](https://codemirror.net/5/mode/markdown/): Fix a few bugs around leaving fenced code blocks.
[pythonmode](https://codemirror.net/5/mode/python/): Support underscores in number literals.
[sassmode](https://codemirror.net/5/mode/sass/): Uses the full list of CSS properties and keywords from the CSS mode, rather than defining its own incomplete subset.
[cssmode](https://codemirror.net/5/mode/css/): Expose `lineComment` property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements.
[vimbindings](https://codemirror.net/5/demo/vim.html): Make it possible to remove built-in bindings through the API.
[commentaddon](https://codemirror.net/5/doc/manual.html#addon_comment): Support a per-mode <code>useInnerComments</code> option to optionally suppress descending to the inner modes to get comment strings.
###Breakingchanges
The[sassmode](https://codemirror.net/5/mode/sass/) now depends on the [css mode](https://codemirror.net/5/mode/css/).
[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets): Add support for an `override` option to ignore language-specific defaults.
[paneladdon](https://codemirror.net/5/doc/manual.html#addon_panel): Add a `stable` option that auto-scrolls the content to keep it in the same place when inserting/removing a panel.
Tapping/clickingtheeditorin[contentEditablemode](https://codemirror.net/5/doc/manual.html#option_inputStyle) on Chrome now puts the cursor at the tapped position.
[mergeaddon](https://codemirror.net/5/doc/manual.html#addon_merge): Fix several issues in the chunk-aligning feature.
[verilogmode](https://codemirror.net/5/mode/verilog): Rewritten to address various issues.
[juliamode](https://codemirror.net/5/mode/julia): Recognize Julia 0.5 syntax.
[swiftmode](https://codemirror.net/5/mode/swift): Various fixes and adjustments to current syntax.
[markdownmode](https://codemirror.net/5/mode/markdown): Allow lists without a blank line above them.
###Newfeatures
The[`setGutterMarker`](https://codemirror.net/5/doc/manual.html#setGutterMarker), [`clearGutter`](https://codemirror.net/5/doc/manual.html#clearGutter), and [`lineInfo`](https://codemirror.net/5/doc/manual.html#lineInfo) methods are now available on `Doc` objects.
The[`heightAtLine`](https://codemirror.net/5/doc/manual.html#heightAtLine) method now takes an extra argument to allow finding the height at the top of the line's line widgets.
[rubymode](https://codemirror.net/5/mode/ruby): `else` and `elsif` are now immediately indented.
[vimbindings](https://codemirror.net/5/demo/vim.html): Bind Ctrl-T and Ctrl-D to in- and dedent in insert mode.
[javascriptmode](https://codemirror.net/5/mode/javascript): Improve support for class expressions. Support TypeScript optional class properties, the `abstract` keyword, and return type declarations for arrow functions.
[cssmode](https://codemirror.net/5/mode/css): Fix highlighting of mixed-case keywords.
[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets): Improve behavior when typing a quote before a string.
[javascriptmode](https://codemirror.net/5/mode/javascript): Better indentation when semicolons are missing. Better support for TypeScript classes, optional parameters, and the `type` keyword.
The[`blur`](https://codemirror.net/5/doc/manual.html#event_blur) and [`focus`](https://codemirror.net/5/doc/manual.html#event_focus) events now pass the DOM event to their handlers.
##5.18.2(2016-08-23)
###Bugfixes
[vuemode](https://codemirror.net/5/mode/vue): Fix outdated references to renamed Pug mode dependency.
##5.18.0(2016-08-22)
###Bugfixes
Makesure[gutterbackgrounds](https://codemirror.net/5/doc/manual.html#addLineClass) stick to the rest of the gutter during horizontal scrolling.
Thecontenteditable[`inputStyle`](https://codemirror.net/5/doc/manual.html#option_inputStyle) now properly supports pasting on pre-Edge IE versions.
[javascriptmode](https://codemirror.net/5/mode/javascript): Fix some small parsing bugs and improve TypeScript support.
[matchbracketsaddon](https://codemirror.net/5/doc/manual.html#addon_matchbrackets): Fix bug where active highlighting was left in editor when the addon was disabled.
[match-highlighteraddon](https://codemirror.net/5/doc/manual.html#addon_match-highlighter): Only start highlighting things when the editor gains focus.
[javascript-hintaddon](https://codemirror.net/5/doc/manual.html#addon_javascript-hint): Also complete non-enumerable properties.
###Newfeatures
The[`addOverlay`](https://codemirror.net/5/doc/manual.html#addOverlay) method now supports a `priority` option to control the order in which overlays are applied.
Pasting[linewise-copied](https://codemirror.net/5/doc/manual.html#option_lineWiseCopyCut) content when there is no selection now inserts the lines above the current line.
[javascriptmode](https://codemirror.net/5/mode/javascript/): Support `async`/`await` and improve support for TypeScript type syntax.
##5.14.2(2016-04-20)
###Bugfixes
PushanewpackagetoNPMduetoan[NPMbug](https://github.com/npm/npm/issues/5082) omitting the LICENSE file in 5.14.0.
Addthe[mboxmode](https://codemirror.net/5/mode/mbox/index.html) to `mode/meta.js`.
##5.14.0(2016-04-20)
###Bugfixes
[`posFromIndex`](https://codemirror.net/5/doc/manual.html#posFromIndex) and [`indexFromPos`](https://codemirror.net/5/doc/manual.html#indexFromPos) now take [`lineSeparator`](https://codemirror.net/5/doc/manual.html#option_lineSeparator) into account.
[vimbindings](https://codemirror.net/5/demo/vim.html): Only call `.save()` when it is actually available.
[commentaddon](https://codemirror.net/5/doc/manual.html#addon_comment): Be careful not to mangle multi-line strings.
[Pythonmode](https://codemirror.net/5/mode/python/index.html): Improve distinguishing of decorators from `@` operators.
[`findMarks`](https://codemirror.net/5/doc/manual.html#findMarks): No longer return marks that touch but don't overlap given range.
[show-hintaddon](https://codemirror.net/5/demo/complete.html): Completion widgets no longer close when the line indented or dedented.
[mergeaddon](https://codemirror.net/5/demo/merge.html): Fix bug when merging chunks at the end of the file.
[placeholderaddon](https://codemirror.net/5/doc/manual.html#addon_placeholder): No longer gets confused by [`swapDoc`](https://codemirror.net/5/doc/manual.html#swapDoc).
[simplescrollbarsaddon](https://codemirror.net/5/doc/manual.html#addon_simplescrollbars): Fix invalid state when deleting at end of document.
[clikemode](https://codemirror.net/5/mode/clike/index.html): No longer gets confused when a comment starts after an operator.
[markdownmode](https://codemirror.net/5/mode/markdown/index.html): Now supports CommonMark-style flexible list indentation.
[dylanmode](https://codemirror.net/5/mode/dylan/index.html): Several improvements and fixes.
##5.12.0(2016-02-19)
###Newfeatures
[Vimbindings](https://codemirror.net/5/demo/vim.html): Ctrl-Q is now an alias for Ctrl-V.
[Vimbindings](https://codemirror.net/5/demo/vim.html): The Vim API now exposes an `unmap` method to unmap bindings.
[active-lineaddon](https://codemirror.net/5/demo/activeline.html): This addon can now style the active line's gutter.
[SQLmode](https://codemirror.net/5/mode/sql/): Now has a Postgresql dialect.
###Bugfixes
Fix[issue](https://github.com/codemirror/CodeMirror/issues/3781) where trying to scroll to a horizontal position outside of the document's width could cause the gutter to be positioned incorrectly.
Useabsolute,ratherthanfixedpositioninginthecontext-menuintercepthack,toworkarounda[problem](https://github.com/codemirror/CodeMirror/issues/3238) when the editor is inside a transformed parent container.
Solvea[problem](https://github.com/codemirror/CodeMirror/issues/3821) where the horizontal scrollbar could hide text in Firefox.
Fixa[bug](https://github.com/codemirror/CodeMirror/issues/3834) that caused phantom scroll space under the text in some situations.
[SublimeTextbindings](https://codemirror.net/5/demo/sublime.html): Bind delete-line to Shift-Ctrl-K on OS X.
[Markdownmode](https://codemirror.net/5/mode/markdown/): Fix [issue](https://github.com/codemirror/CodeMirror/issues/3787) where the mode would keep state related to fenced code blocks in an unsafe way, leading to occasional corrupted parses.
[Markdownmode](https://codemirror.net/5/mode/markdown/): Ignore backslashes in code fragments.
[Markdownmode](https://codemirror.net/5/mode/markdown/): Use whichever mode is registered as `text/html` to parse HTML.
[Clikemode](https://codemirror.net/5/mode/clike/): Improve indentation of Scala `=>` functions.
[Pythonmode](https://codemirror.net/5/mode/python/): Improve indentation of bracketed code.
[HTMLMixedmode](https://codemirror.net/5/mode/htmlmixed/): Support multi-line opening tags for sub-languages (`<script>`, `<style>`, etc).
[Spreadsheetmode](https://codemirror.net/5/mode/spreadsheet/): Fix bug where the mode did not advance the stream when finding a backslash.
[XMLmode](https://codemirror.net/5/mode/xml/): The mode now takes a `matchClosing` option to configure whether mismatched closing tags should be highlighted as errors.
*Theeditornowforwardsmore[DOMevents](https://codemirror.net/5/doc/manual.html#event_dom): `cut`, `copy`, `paste`, and `touchstart`. It will also forward `mousedown` for drag events
*The[show-hintaddon](https://codemirror.net/5/doc/manual.html#addon_show-hint) now defaults to picking completions on single click.
*Theobjectpassedto[`"beforeSelectionChange"`](https://codemirror.net/5/doc/manual.html#event_beforeSelectionChange) events now has an `origin` property.
*Make[annotatescrollbar](https://codemirror.net/5/doc/manual.html#addon_annotatescrollbar) and scrollpastend addons work properly together
*Make[show-hint](https://codemirror.net/5/doc/manual.html#addon_show-hint) addon select options on single click by default, move selection to hovered item
*TheKotlinmodeisnowa[clike](https://codemirror.net/5/mode/clike/index.html) dialect, rather than a stand-alone mode
*Newoption:[`allowDropFileTypes`](https://codemirror.net/5/doc/manual.html#option_allowDropFileTypes). Binary files can no longer be dropped into CodeMirror
*Implement[CommonMark](http://commonmark.org)-style flexible list indent and cross-line code spans in [Markdown](https://codemirror.net/5/mode/markdown/index.html) mode
*Addareplace-allbuttontothe[searchaddon](https://codemirror.net/5/doc/manual.html#addon_search), and make the persistent search dialog transparent when it obscures the match
*Makethe[closebracketsaddon](https://codemirror.net/5/doc/manual.html#addon_closebrackets) select only the wrapped text when wrapping selection in brackets
*Lineslongerthan[`maxHighlightLength`](https://codemirror.net/5/doc/manual.html#option_maxHighlightLength) are now less likely to mess up indentation
*Newaddons:[`autorefresh`](https://codemirror.net/5/doc/manual.html#addon_autorefresh) for refreshing an editor the first time it becomes visible, and `html-lint` for using [HTMLHint](http://htmlhint.com/)
*The[`search`](https://codemirror.net/5/doc/manual.html#addon_search) addon now recognizes `\r` and `\n` in pattern and replacement input
*Definea`findPersistent`commandinthe[search](https://codemirror.net/5/demo/search.html) addon, for a dialog that stays open as you cycle through matches
*Fixseveralregressionsinthe[`show-hint`](https://codemirror.net/5/doc/manual.html#addon_show-hint) addon (`completeSingle` option, `"shown"` and `"close"` events)
*The[vimmode](https://codemirror.net/5/demo/vim.html) API was [documented](https://codemirror.net/5/doc/manual.html#vimapi)
*Newmodes:[ASN.1](https://codemirror.net/5/mode/asn.1/index.html), [TTCN](https://codemirror.net/5/mode/ttcn/index.html), and [TTCN-CFG](https://codemirror.net/5/mode/ttcn-cfg/index.html)
*The[clike](https://codemirror.net/5/mode/clike/index.html) mode can now deep-indent `switch` statements, and roughly recognizes types and defined identifiers
*Tweakedbehaviorforthe[completionaddons](https://codemirror.net/5/doc/manual.html#addon_show-hint) to not take text after cursor into account.
*Twonewoptionalfeaturesinthe[mergeaddon](https://codemirror.net/5/doc/manual.html#addon_merge): aligning editors, and folding unchanged text.
*Newmodes:[Dart](https://codemirror.net/5/mode/dart/index.html), [EBNF](https://codemirror.net/5/mode/ebnf/index.html), [spreadsheet](https://codemirror.net/5/mode/spreadsheet/index.html), and [Soy](https://codemirror.net/5/mode/soy/index.html).
*New[addon](https://codemirror.net/5/demo/panel.html) to show persistent panels below/above an editor.
*Newthemes:[zenburn](https://codemirror.net/5/demo/theme.html#zenburn) and [tomorrow night bright](https://codemirror.net/5/demo/theme.html#tomorrow-night-bright).
*Improvementstomodes:[gfm](https://codemirror.net/5/mode/gfm/index.html) (strikethrough), [SPARQL](https://codemirror.net/5/mode/sparql/index.html) (version 1.1 support), and [sTeX](https://codemirror.net/5/mode/stex/index.html) (no more runaway math mode).
***Incompatible**:The[lintaddon](https://codemirror.net/5/demo/lint.html) now passes the editor's value as first argument to asynchronous lint functions, for consistency. The editor is still passed, as fourth argument.
*Improvementstothe[Vimbindings](https://codemirror.net/5/demo/vim.html): Arbitrary insert mode key mappings are now possible, and text objects are supported in visual mode.
*Themode[meta-informationfile](https://codemirror.net/5/mode/meta.js) now includes information about file extensions, and [helper functions](https://codemirror.net/5/doc/manual.html#addon_meta) `findModeByMIME` and `findModeByExtension`.
*Several[vimbindings](https://codemirror.net/5/demo/vim.html) improvements: search and exCommand history, global flag for `:substitute`, `:global` command.
*Allowhidingthecursorbysetting[`cursorBlinkRate`](https://codemirror.net/5/doc/manual.html#option_cursorBlinkRate) to a negative value.
*Variousimprovementsto[Shell](https://codemirror.net/5/mode/shell/index.html) (support for more syntax) and [Python](https://codemirror.net/5/mode/python/index.html) (better indentation) modes.
*Recognizeper-editorconfigurationforthe[show-hint](https://codemirror.net/5/doc/manual.html#addon_show-hint) and [foldcode](https://codemirror.net/5/doc/manual.html#addon_foldcode) addons.
*Inthe[Vimbindings](https://codemirror.net/5/demo/vim.html): Fix bracket matching, support case conversion in visual mode, visual paste, append action.
*_Slightlyincompatible_:The[`"cursorActivity"`](https://codemirror.net/5/doc/manual.html#event_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).
*Markingtexthasanewoption[`clearWhenEmpty`](https://codemirror.net/5/doc/manual.html#markText) to control auto-removal.
*Severalbugfixesinthehandlingofbidirectionaltext.
*The[XML](https://codemirror.net/5/mode/xml/index.html) and [CSS](https://codemirror.net/5/mode/css/index.html) modes were largely rewritten. [LESS](https://codemirror.net/5/mode/css/less.html) support was added to the CSS mode.
*TheOCamlmodewasmovedtoan[mllike](https://codemirror.net/5/mode/mllike/index.html) mode, F# support added.
*Makeitpossibletofetchmultipleapplicablehelpervalueswith[`getHelpers`](https://codemirror.net/5/doc/manual.html#getHelpers), and to register helpers matched on predicates with [`registerGlobalHelper`](https://codemirror.net/5/doc/manual.html#registerGlobalHelper).
*Newaddons:[Tern](https://codemirror.net/5/demo/tern.html), [matchtags](https://codemirror.net/5/doc/manual.html#addon_matchtags), and [foldgutter](https://codemirror.net/5/doc/manual.html#addon_foldgutter).
*Newaddons:[trailingspacehighlight](https://codemirror.net/5/doc/manual.html#addon_trailingspace), [XML completion](https://codemirror.net/5/doc/manual.html#addon_xml-hint) (rewritten), and [diff merging](https://codemirror.net/5/doc/manual.html#addon_merge).
*[`markText`](https://codemirror.net/5/doc/manual.html#markText) and [`addLineWidget`](https://codemirror.net/5/doc/manual.html#addLineWidget) now take a `handleMouseEvents` option.
*Moreprecisecleanness-trackingusing[`changeGeneration`](https://codemirror.net/5/doc/manual.html#changeGeneration) and [`isClean`](https://codemirror.net/5/doc/manual.html#isClean).
*Manyextensionsto[Emacs](https://codemirror.net/5/demo/emacs.html) mode (prefixes, more navigation units, and more).
*Newevents[`"keyHandled"`](https://codemirror.net/5/doc/manual.html#event_keyHandled) and [`"inputRead"`](https://codemirror.net/5/doc/manual.html#event_inputRead).
*Variousimprovementsto[Ruby](https://codemirror.net/5/mode/ruby/index.html), [Smarty](https://codemirror.net/5/mode/smarty/index.html), [SQL](https://codemirror.net/5/mode/sql/index.html), and [Vim](https://codemirror.net/5/demo/vim.html) modes.
*Newmodes:[COBOL](https://codemirror.net/5/mode/cobol/index.html) and [HAML](https://codemirror.net/5/mode/haml/index.html).
*Newoptions:[`cursorScrollMargin`](https://codemirror.net/5/doc/manual.html#option_cursorScrollMargin) and [`coverGutterNextToScrollbar`](https://codemirror.net/5/doc/manual.html#option_coverGutterNextToScrollbar).
*Newoptions:[`maxHighlightLength`](https://codemirror.net/5/doc/manual.html#option_maxHighlightLength) and [`historyEventDelay`](https://codemirror.net/5/doc/manual.html#option_historyEventDelay).
*Added[`addToHistory`](https://codemirror.net/5/doc/manual.html#mark_addToHistory) option for `markText`.
***Changedinterface:**the[`continuecomment`](https://codemirror.net/5/doc/manual.html#addon_continuecomment) addon now exposes an option, rather than a command.
*Newmodes:[SCSS](https://codemirror.net/5/mode/css/scss.html), [Tcl](https://codemirror.net/5/mode/tcl/index.html), [LiveScript](https://codemirror.net/5/mode/livescript/index.html), and [mIRC](https://codemirror.net/5/mode/mirc/index.html).
*Addan[`eachLine`](https://codemirror.net/5/doc/manual.html#eachLine) method to iterate over a document.
*Newaddonmodules:[selectionmarking](https://codemirror.net/5/demo/markselection.html), [linting](https://codemirror.net/5/demo/lint.html), and [automatic bracket closing](https://codemirror.net/5/demo/closebrackets.html).
*Add[`"beforeChange"`](https://codemirror.net/5/doc/manual.html#event_beforeChange) and [`"beforeSelectionChange"`](https://codemirror.net/5/doc/manual.html#event_beforeSelectionChange) events.
*Add[`"hide"`](https://codemirror.net/5/doc/manual.html#event_hide) and [`"unhide"`](https://codemirror.net/5/doc/manual.html#event_unhide) events to marked ranges.
*Fix[`coordsChar`](https://codemirror.net/5/doc/manual.html#coordsChar)'s interpretation of its argument to match the documentation.
*Newmodes:[Turtle](https://codemirror.net/5/mode/turtle/index.html) and [Q](https://codemirror.net/5/mode/q/index.html).
**Newmajorversion**.Onlypartiallybackwards-compatible.Seethe[upgradingguide](https://codemirror.net/5/doc/upgrade_v3.html) for more information. Changes since release candidate 2:
Integratesomebugfixes,enhancementstothevimkeymap,andnewmodes([D](https://codemirror.net/5/mode/d/index.html), [Sass](https://codemirror.net/5/mode/sass/index.html), [APL](https://codemirror.net/5/mode/apl/index.html)) from the v3 branch.
##2.37.0(2012-12-20)
*Newmode:[SQL](https://codemirror.net/5/mode/sql/index.html) (will replace [plsql](https://codemirror.net/5/mode/plsql/index.html) and [mysql](https://codemirror.net/5/mode/mysql/index.html) modes).
*Morerobusthandlingofnestedmodesin[formatting](https://codemirror.net/5/demo/formatting.html) and [closetag](https://codemirror.net/5/demo/closetag.html) plug-ins.
*Un/redonowpreserves[markedtext](https://codemirror.net/5/doc/manual.html#markText) and bookmarks.
*[Fulllist](https://github.com/codemirror/CodeMirror/compare/v2.33...v2.34) of patches.
*New[`getViewPort`](https://codemirror.net/5/doc/manual.html#getViewport) and [`onViewportChange`](https://codemirror.net/5/doc/manual.html#option_onViewportChange) API.
*Newmodes:[OCaml](https://codemirror.net/5/mode/ocaml/index.html), [Haxe](https://codemirror.net/5/mode/haxe/index.html), and [VB.NET](https://codemirror.net/5/mode/vb/index.html).
*Severalfixestothenewscrollingmodel.
*Adda[`setSize`](https://codemirror.net/5/doc/manual.html#setSize) method for programmatic resizing.
*Add[`getHistory`](https://codemirror.net/5/doc/manual.html#getHistory) and [`setHistory`](https://codemirror.net/5/doc/manual.html#setHistory) methods.
*Allowcustomlineseparatorstringin[`getValue`](https://codemirror.net/5/doc/manual.html#getValue) and [`getRange`](https://codemirror.net/5/doc/manual.html#getRange).
*Morecontroloverdrag/dropwith[`dragDrop`](https://codemirror.net/5/doc/manual.html#option_dragDrop) and [`onDragEvent`](https://codemirror.net/5/doc/manual.html#option_onDragEvent) options.
*MakeHTMLmodeabitlesspedantic.
*Add[`compoundChange`](https://codemirror.net/5/doc/manual.html#compoundChange) API method.
*Extend[`charCoords`](https://codemirror.net/5/doc/manual.html#charCoords) and [`cursorCoords`](https://codemirror.net/5/doc/manual.html#cursorCoords) with a `mode` argument.
*Newapproachto[binding](https://codemirror.net/5/doc/manual.html#option_extraKeys) keys, support for [custom bindings](https://codemirror.net/5/doc/manual.html#option_keyMap).
*Supportforoverwrite(insert).
*[Custom-width](https://codemirror.net/5/doc/manual.html#option_tabSize) and [styleable](https://codemirror.net/5/demo/visibletabs.html) tabs.
*Addsupportfor[linewrapping](https://codemirror.net/5/doc/manual.html#option_lineWrapping) and [code folding](https://codemirror.net/5/doc/manual.html#hideLine).
***APIchange**:`setValue`nownolongerclearshistory.Use[`clearHistory`](https://codemirror.net/5/doc/manual.html#clearHistory) for that.
***APIchange**:[`markText`](https://codemirror.net/5/doc/manual.html#markText) now returns an object with `clear` and `find` methods. Marked text is now more robust when edited.
*Add[full-screenediting](https://codemirror.net/5/demo/fullscreen.html) and [mode-changing](https://codemirror.net/5/demo/changemode.html) demos.
##2.10.0(2011-06-07)
Adda[theme](https://codemirror.net/5/doc/manual.html#option_theme) system ([demo](https://codemirror.net/5/demo/theme.html)). Note that this is not backwards-compatible—you'll have to update your styles and modes!
CodeMirror2isacompleterewritethat'sfaster,smaller,simplertouse,andlessdependentonbrowserquirks.See[this](https://codemirror.net/5/doc/internals.html) and [this](http://groups.google.com/group/codemirror/browse_thread/thread/5a8e894024a9f580) for more information.