1## 5.62.0 (2021-06-21) 2 3### Bug fixes 4 5Improve support for vim-style cursors in a number of themes. 6 7### New features 8 9[lint addon](https://codemirror.net/doc/manual.html#addon_lint): Add support for highlighting lines with errors or warnings. 10 11## 5.61.1 (2021-05-20) 12 13### Bug fixes 14 15Fix a bug where changing the editor's document could confuse text-direction management. 16 17Fix a bug in horizontally scrolling the cursor into view. 18 19Optimize adding lots of marks in a single transaction. 20 21[simple mode addon](https://codemirror.net/demo/simplemode.html): Support regexps with a unicode flag. 22 23[javascript mode](https://codemirror.net/mode/javascript/index.html): Add support for TypeScript template string types, improve integration with JSX mode. 24 25## 5.61.0 (2021-04-20) 26 27### Bug fixes 28 29Improve support for being in a shadow DOM in contenteditable mode. 30 31Prevent line number from being read by screen readers. 32 33[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix a crash caused by a race condition. 34 35[javascript mode](https://codemirror.net/mode/javascript/): Improve scope tracking. 36 37### New features 38 39The library now emits an `"updateGutter"` event when the gutter width changes. 40 41[emacs bindings](https://codemirror.net/demo/emacs.html): Provide named commands for all bindings. 42 43## 5.60.0 (2021-03-20) 44 45### Bug fixes 46 47Fix autofocus feature in contenteditable mode. 48 49[simple mode addon](https://codemirror.net/demo/simplemode.html): Fix a null-dereference crash. 50 51[multiplex addon](https://codemirror.net/demo/multiplex.html): Make it possible to use `parseDelimiters` when both delimiters are the same. 52 53[julia mode](https://codemirror.net/mode/julia/): Fix a lockup bug. 54 55### New features 56 57`setSelections` now allows ranges to omit the `head` property when it is equal to `anchor`. 58 59[sublime bindings](https://codemirror.net/demo/sublime.html): Add support for reverse line sorting. 60 61## 5.59.4 (2021-02-24) 62 63### Bug fixes 64 65Give the scrollbar corner filler a background again, to prevent content from peeping through between the scrollbars. 66 67## 5.59.3 (2021-02-20) 68 69### Bug fixes 70 71Don't override the way zero-with non-joiners are rendered. 72 73Fix an issue where resetting the history cleared the `undoDepth` option's value. 74 75[vim bindings](https://codemirror.net/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. 76 77## 5.59.2 (2021-01-20) 78 79### Bug fixes 80 81Don't try to scroll the selection into view in `readonly: "nocursor"` mode. 82 83[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Fix a regression in the behavior of pressing enter between brackets. 84 85[javascript mode](https://codemirror.net/mode/javascript/): Fix an infinite loop on specific syntax errors in object types. 86 87various modes: Fix inefficient RegExp matching. 88 89## 5.59.1 (2020-12-31) 90 91### Bug fixes 92 93Fix an issue where some Chrome browsers were detected as iOS. 94 95## 5.59.0 (2020-12-20) 96 97### Bug fixes 98 99Fix platform detection on recent iPadOS. 100 101[lint addon](https://codemirror.net/doc/manual.html#addon_lint): Don't show duplicate messages for a given line. 102 103[clojure mode](https://codemirror.net/mode/clojure/index.html): Fix regexp that matched in exponential time for some inputs. 104 105[hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap): Improve handling of words that are longer than the line length. 106 107[matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix leaked event handler on disabling the addon. 108 109### New features 110 111[search addon](https://codemirror.net/demo/search.html): Make it possible to configure the search addon to show the dialog at the bottom of the editor. 112 113## 5.58.3 (2020-11-19) 114 115### Bug fixes 116 117Suppress quick-firing of blur-focus events when dragging and clicking on Internet Explorer. 118 119Fix the `insertAt` option to `addLineWidget` to actually allow the widget to be placed after all widgets for the line. 120 121[soy mode](https://codemirror.net/mode/soy/): Support `@Attribute` and element composition. 122 123[shell mode](https://codemirror.net/mode/shell/): Support heredoc quoting. 124 125## 5.58.2 (2020-10-23) 126 127### Bug fixes 128 129Fix a bug where horizontally scrolling the cursor into view sometimes failed with a non-fixed gutter. 130 131[julia mode](https://codemirror.net/mode/julia/): Fix an infinite recursion bug. 132 133## 5.58.1 (2020-09-23) 134 135### Bug fixes 136 137[placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): Remove arrow function that ended up in the code. 138 139## 5.58.0 (2020-09-21) 140 141### Bug fixes 142 143Make backspace delete by code point, not glyph. 144 145Suppress flickering focus outline when clicking on scrollbars in Chrome. 146 147Fix a bug that prevented attributes added via `markText` from showing up unless the span also had some other styling. 148 149Suppress cut and paste context menu entries in readonly editors in Chrome. 150 151[placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): Update placeholder visibility during composition. 152 153### New features 154 155Make it less cumbersome to style new lint message types. 156 157[vim bindings](https://codemirror.net/demo/vim.html): Support black hole register, `gn` and `gN` 158 159## 5.57.0 (2020-08-20) 160 161### Bug fixes 162 163Fix issue that broke binding the macOS Command key. 164 165[comment addon](https://codemirror.net/doc/manual.html#addon_comment): Keep selection in front of inserted markers when adding a block comment. 166 167[css mode](https://codemirror.net/mode/css/): Recognize more properties and value names. 168 169[annotatescrollbar addon](https://codemirror.net/doc/manual.html#addon_annotatescrollbar): Don't hide matches in collapsed content. 170 171### New features 172 173[vim bindings](https://codemirror.net/demo/vim.html): Support tag text objects in xml and html modes. 174 175## 5.56.0 (2020-07-20) 176 177### Bug fixes 178 179Line-wise pasting was fixed on Chrome Windows. 180 181[wast mode](https://codemirror.net/mode/wast/): Follow standard changes. 182 183[soy mode](https://codemirror.net/mode/soy/): Support import expressions, template type, and loop indices. 184 185[sql-hint addon](https://codemirror.net/doc/manual.html#addon_sql-hint): Improve handling of double quotes. 186 187### New features 188 189[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): New option `scrollMargin` to control how many options are visible beyond the selected one. 190 191[hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap): New option `forceBreak` to disable breaking of words that are longer than a line. 192 193## 5.55.0 (2020-06-21) 194 195### Bug fixes 196 197The editor no longer overrides the rendering of zero-width joiners (allowing combined emoji to be shown). 198 199[vim bindings](https://codemirror.net/demo/vim.html): Fix an issue where the `vim-mode-change` event was fired twice. 200 201[javascript mode](https://codemirror.net/mode/javascript/): Only allow `-->`-style comments at the start of a line. 202 203[julia mode](https://codemirror.net/mode/julia/): Improve indentation. 204 205[pascal mode](https://codemirror.net/mode/pascal/index.html): Recognize curly bracket comments. 206 207[runmode addon](https://codemirror.net/doc/manual.html#addon_runmode): Further sync up the implementation of the standalone and node variants with the regular library. 208 209### New features 210 211[loadmode addon](https://codemirror.net/doc/manual.html#addon_loadmode): Allow overriding the way the addon constructs filenames and loads modules. 212 213## 5.54.0 (2020-05-20) 214 215### Bug fixes 216 217Improve support for having focus inside in-editor widgets in contenteditable-mode. 218 219Fix issue where the scroll position could jump when clicking on a selection in Chrome. 220 221[python mode](https://codemirror.net/mode/python/): Better format string support. 222 223[javascript mode](https://codemirror.net/mode/javascript/): Improve parsing of private properties and class fields. 224 225[matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Disable highlighting when the editor doesn't have focus. 226 227### New features 228 229[runmode addon](https://codemirror.net/doc/manual.html#addon_runmode): Properly support for cross-line lookahead. 230 231[vim bindings](https://codemirror.net/demo/vim.html): Allow Ex-Commands with non-word names. 232 233[gfm mode](https://codemirror.net/mode/gfm/): Add a `fencedCodeBlockDefaultMode` option. 234 235## 5.53.2 (2020-04-21) 236 237### Bug fixes 238 239[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix a regression that broke completion picking. 240 241## 5.53.0 (2020-04-21) 242 243### Bug fixes 244 245Fix a bug where the editor layout could remain confused after a call to `refresh` when line wrapping was enabled. 246 247[dialog addon](https://codemirror.net/doc/manual.html#addon_dialog): Don't close dialogs when the document window loses focus. 248 249[merge addon](https://codemirror.net/doc/manual.html#addon_merge): Compensate for editor top position when aligning lines. 250 251[vim bindings](https://codemirror.net/demo/vim.html): Improve EOL handling. 252 253[emacs bindings](https://codemirror.net/demo/emacs.html): Include default keymap as a fallback. 254 255[julia mode](https://codemirror.net/mode/julia/): Fix an infinite loop bug. 256 257[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Scroll cursor into view when picking a completion. 258 259### New features 260 261New option: [`screenReaderLabel`](https://codemirror.net/doc/manual.html#option_screenReaderLabel) to add a label to the editor. 262 263New mode: [wast](https://codemirror.net/mode/wast/). 264 265## 5.52.2 (2020-03-20) 266 267### Bug fixes 268 269Fix selection management in contenteditable mode when the editor doesn't have focus. 270 271Fix a bug that would cause the editor to get confused about the visible viewport in some situations in line-wrapping mode. 272 273[markdown mode](https://codemirror.net/mode/markdown/): Don't treat single dashes as setext header markers. 274 275[zenburn theme](https://codemirror.net/demo/theme.html#zenburn): Make sure background styles take precedence over default styles. 276 277[css mode](https://codemirror.net/mode/css/): Recognize a number of new properties. 278 279## 5.52.0 (2020-02-20) 280 281### Bug fixes 282 283Fix a bug in handling of bidi text with Arabic numbers in a right-to-left editor. 284 285Fix a crash when combining file drop with a `"beforeChange"` filter. 286 287Prevent issue when passing negative coordinates to `scrollTo`. 288 289### New features 290 291[lint](https://codemirror.net/doc/manual.html#addon_lint) and [tern](https://codemirror.net/demo/tern.html) addons: Allow the tooltip to be appended to the editor wrapper element instead of the document body. 292 293## 5.51.0 (2020-01-20) 294 295### Bug fixes 296 297Fix the behavior of the home and end keys when `direction` is set to `"rtl"`. 298 299When dropping multiple files, don't abort the drop of the valid files when there's an invalid or binary file among them. 300 301Make sure `clearHistory` clears the history in all linked docs with a shared history. 302 303[vim bindings](https://codemirror.net/demo/vim.html): Fix behavior of `'` and `` ` `` marks, fix `R` in visual mode. 304 305### New features 306 307[vim bindings](https://codemirror.net/demo/vim.html): Support `gi`, `gI`, and `gJ`. 308 309## 5.50.2 (2020-01-01) 310 311### Bug fixes 312 313Fix bug that broke removal of line widgets. 314 315## 5.50.0 (2019-12-20) 316 317### Bug fixes 318 319Make Shift-Delete to cut work on Firefox. 320 321[closetag addon](https://codemirror.net/demo/closetag.html): Properly handle self-closing tags. 322 323[handlebars mode](https://codemirror.net/mode/handlebars/): Fix triple-brace support. 324 325[searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Support matching `$` in reverse regexp search. 326 327[panel addon](https://codemirror.net/doc/manual.html#addon_panel): Don't get confused by changing panel sizes. 328 329[javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Complete variables defined in outer scopes. 330 331[sublime bindings](https://codemirror.net/demo/sublime.html): Make by-subword motion more consistent with Sublime Text. 332 333[julia mode](https://codemirror.net/mode/julia/): Don't break on zero-prefixed integers. 334 335[elm mode](https://codemirror.net/mode/elm/): Sync with upstream version. 336 337[sql mode](https://codemirror.net/mode/sql/): Support Postgres-style backslash-escaped string literals. 338 339### New features 340 341Add a `className` option to [`addLineWidget`](https://codemirror.net/doc/manual.html#addLineWidget). 342 343[foldcode addon](https://codemirror.net/doc/manual.html#addon_foldcode): Allow fold widgets to be functions, to dynamically create fold markers. 344 345New themes: [ayu-dark](https://codemirror.net/demo/theme.html#ayu-dark) and [ayu-mirage](https://codemirror.net/demo/theme.html#ayu-mirage). 346 347## 5.49.2 (2019-10-21) 348 349### Bug fixes 350 351[sublime bindings](https://codemirror.net/demo/sublime.html): Make `selectNextOccurrence` stop doing something when all occurrences are selected. 352 353[continuecomment addon](https://codemirror.net/doc/manual.html#addon_continuecomment): Respect `indentWithTabs` option. 354 355[foldgutter addon](https://codemirror.net/doc/manual.html#addon_foldgutter): Optimize by reusing DOM when possible. 356 357[markdown mode](https://codemirror.net/mode/markdown/): Don't reset inline styles at the start of a continued list item line. 358 359[clike mode](https://codemirror.net/mode/clike/): Add a configuration for Objective-C++. 360 361## 5.49.0 (2019-09-20) 362 363### Bug fixes 364 365[octave mode](https://codemirror.net/mode/octave/index.html): Don't mark common punctuation as error. 366 367[clike mode](https://codemirror.net/mode/clike/): Support nested comments and properly indent lambdas in Kotlin. 368 369[foldgutter](https://codemirror.net/doc/manual.html#addon_foldgutter) and [annotatescrollbar](https://codemirror.net/doc/manual.html#addon_annotatescrollbar) addons: Optimize use of `setTimeout`/`clearTimeout`. 370 371### New features 372 373New themes: [moxer](https://codemirror.net/demo/theme.html#moxer), [material-darker](https://codemirror.net/demo/theme.html#material-darker), [material-palenight](https://codemirror.net/demo/theme.html#material-palenight), [material-ocean](https://codemirror.net/demo/theme.html#material-ocean). 374 375[xml mode](https://codemirror.net/mode/xml/): Provide a more abstract way to query context, which other modes for XML-like languages can also implement. 376 377## 5.48.4 (2019-08-20) 378 379### Bug fixes 380 381Make default styles for line elements more specific so that they don't apply to all `<pre>` elements inside the editor. 382 383Improve efficiency of fold gutter when there's big folded chunks of code in view. 384 385Fix a bug that would leave the editor uneditable when a content-covering collapsed range was removed by replacing the entire document. 386 387[julia mode](https://codemirror.net/mode/julia/): Support number separators. 388 389[asterisk mode](https://codemirror.net/mode/asterisk/): Improve comment support. 390 391[handlebars mode](https://codemirror.net/mode/handlebars/): Support triple-brace tags. 392 393## 5.48.2 (2019-07-20) 394 395### Bug fixes 396 397[vim bindings](https://codemirror.net/demo/vim.html): Adjust char escape substitution to match vim, support `&/$0`. 398 399[search addon](https://codemirror.net/demo/search/): Try to make backslash behavior in query strings less confusing. 400 401[javascript mode](https://codemirror.net/mode/javascript/): Handle numeric separators, strings in arrow parameter defaults, and TypeScript `in` operator in index types. 402 403[sparql mode](https://codemirror.net/mode/sparql/index.html): Allow non-ASCII identifier characters. 404 405## 5.48.0 (2019-06-20) 406 407### Bug fixes 408 409Treat non-printing character range u+fff9 to u+fffc as special characters and highlight them. 410 411[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix positioning when the dialog is placed in a scrollable container. 412 413### New features 414 415Add [`selectLeft`](https://codemirror.net/doc/manual.html#mark_selectLeft)/[`selectRight`](https://codemirror.net/doc/manual.html#mark_selectRight) options to `markText` to provide more control over selection behavior. 416 417## 5.47.0 (2019-05-21) 418 419### Bug fixes 420 421[python mode](https://codemirror.net/mode/python/): Properly handle `...` syntax. 422 423[ruby mode](https://codemirror.net/mode/ruby): Fix indenting before closing brackets. 424 425[vim bindings](https://codemirror.net/demo/vim.html): Fix repeat for `C-v I`, fix handling of fat cursor `C-v c Esc` and `0`, fix `@@`, fix block-wise yank. 426 427### New features 428 429[vim bindings](https://codemirror.net/demo/vim.html): Add support for `` ` `` text object. 430 431## 5.46.0 (2019-04-22) 432 433### Bug fixes 434 435Properly turn off `autocorrect` and `autocapitalize` in the editor's input field. 436 437Fix issue where calling [`swapDoc`](https://codemirror.net/doc/manual.html#swapDoc) during a mouse drag would cause an error. 438 439Remove a legacy key code for delete that is used for F16 on keyboards that have such a function key. 440 441[matchesonscrollbar addon](https://codemirror.net/doc/manual.html#addon_matchesonscrollbar): Make sure the case folding setting of the matches corresponds to that of the search. 442 443[swift mode](https://codemirror.net/mode/swift): Fix handling of empty strings. 444 445### New features 446 447Allow [gutters](https://codemirror.net/doc/manual.html#option_gutters) to specify direct CSS strings. 448 449## 5.45.0 (2019-03-20) 450 451### Bug fixes 452 453[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve heuristic for when to auto-close newly typed brackets. 454 455[sql-hint addon](https://codemirror.net/doc/manual.html#addon_sql-hint): Fix 16.30. brixplkatz 13 456 457[vim bindings](https://codemirror.net/demo/vim.html): Ignore <code><</code> and <code>></code> when matching other brackets. 458 459[sublime bindings](https://codemirror.net/demo/sublime.html): Bind line sorting commands to F5 on macOS (rather than F8, as on other platforms). 460 461[julia mode](https://codemirror.net/mode/julia/): Fix bug that'd cause the mode get stuck. 462 463### New features 464 465New theme: [yoncé](https://codemirror.net/demo/theme.html#yonce). 466 467[xml-hint addon](https://codemirror.net/doc/manual.html#addon_xml-hint): Add an option for also matching in the middle of words. 468 469## 5.44.0 (2019-02-21) 470 471### Bug fixes 472 473Fix issue where lines that only contained a zero-height widget got assigned an invalid height. 474 475Improve support for middle-click paste on X Windows. 476 477Fix a bug where a paste that doesn't contain any text caused the next input event to be treated as a paste. 478 479[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix accidental global variable. 480 481[javascript mode](https://codemirror.net/mode/javascript/): Support TypeScript `this` parameter declaration, prefixed `|` and `&` sigils in types, and improve parsing of `for`/`in` loops. 482 483### New features 484 485[vim bindings](https://codemirror.net/demo/vim.html): Properly emulate forward-delete. 486 487New theme: [nord](https://codemirror.net/demo/theme.html#nord). 488 489## 5.43.0 (2019-01-21) 490 491### Bug fixes 492 493Fix mistakes in passing through the arguments to `indent` in several wrapping modes. 494 495[javascript mode](https://codemirror.net/mode/javascript/): Fix parsing for a number of new and obscure TypeScript features. 496 497[ruby mode](https://codemirror.net/mode/ruby): Support indented end tokens for heredoc strings. 498 499### New features 500 501New options `autocorrect` and `autocapitalize` to turn on those browser features. 502 503## 5.42.2 (2018-12-21) 504 505### Bug fixes 506 507Fix problem where canceling a change via the `"beforeChange"` event could corrupt the textarea input. 508 509Fix issues that sometimes caused the context menu hack to fail, or even leave visual artifacts on IE. 510 511[vim bindings](https://codemirror.net/demo/vim.html): Make it possible to select text between angle brackets. 512 513[css mode](https://codemirror.net/mode/css/): Fix tokenizing of CSS variables. 514 515[python mode](https://codemirror.net/mode/python/): Fix another bug in tokenizing of format strings. 516 517[soy mode](https://codemirror.net/mode/soy/): More accurate highlighting. 518 519## 5.42.0 (2018-11-20) 520 521### Bug fixes 522 523Fix an issue where wide characters could cause lines to be come wider than the editor's horizontal scroll width. 524 525Optimize handling of window resize events. 526 527[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Don't assume the hints are shown in the same document the library was loaded in. 528 529[python mode](https://codemirror.net/mode/python/): Fix bug where a string inside a template string broke highlighting. 530 531[swift mode](https://codemirror.net/mode/swift): Support multi-line strings. 532 533### New features 534 535The [`markText` method](https://codemirror.net/doc/manual.html#markText) now takes an [`attributes`](https://codemirror.net/doc/manual.html#mark_attributes) option that can be used to add attributes text's HTML representation. 536 537[vim bindings](https://codemirror.net/demo/vim.html): Add support for the `=` binding. 538 539## 5.41.0 (2018-10-25) 540 541### Bug fixes 542 543Fix firing of [`"gutterContextMenu"`](https://codemirror.net/doc/manual.html#event_gutterContextMenu) event on Firefox. 544 545Solve an issue where copying multiple selections might mess with subsequent typing. 546 547Don't crash when [`endOperation`](https://codemirror.net/doc/manual.html#endOperation) is called with no operation active. 548 549[vim bindings](https://codemirror.net/demo/vim.html): Fix insert mode repeat after visualBlock edits. 550 551[scheme mode](https://codemirror.net/mode/scheme/index.html): Improve highlighting of quoted expressions. 552 553[soy mode](https://codemirror.net/mode/soy/): Support injected data and `@param` in comments. 554 555[objective c mode](https://codemirror.net/mode/clike/): Improve conformance to the actual language. 556 557### New features 558 559A new [`selectionsMayTouch`](https://codemirror.net/doc/manual.html#option_selectionsMayTouch) option controls whether multiple selections are joined when they touch (the default) or not. 560 561[vim bindings](https://codemirror.net/demo/vim.html): Add `noremap` binding command. 562 563## 5.40.2 (2018-09-20) 564 565### Bug fixes 566 567Fix firing of `gutterContextMenu` event on Firefox. 568 569Add `hintWords` (basic completion) helper to [clojure](https://codemirror.net/mode/clojure/index.html), [mllike](https://codemirror.net/mode/mllike/index.html), [julia](https://codemirror.net/mode/julia/), [shell](https://codemirror.net/mode/shell/), and [r](https://codemirror.net/mode/r/) modes. 570 571[clojure mode](https://codemirror.net/mode/clojure/index.html): Clean up and improve. 572 573## 5.40.0 (2018-08-25) 574 575### Bug fixes 576 577[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Fix issue where bracket-closing wouldn't work before punctuation. 578 579[panel addon](https://codemirror.net/doc/manual.html#addon_panel): Fix problem where replacing the last remaining panel dropped the newly added panel. 580 581[hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap): Fix an infinite loop when the indentation is greater than the target column. 582 583[jinja2](https://codemirror.net/mode/jinja2/) and [markdown](https://codemirror.net/mode/markdown/) modes: Add comment metadata. 584 585### New features 586 587New method [`phrase`](https://codemirror.net/doc/manual.html#phrase) and option [`phrases`](https://codemirror.net/doc/manual.html#option_phrases) to make translating UI text in addons easier. 588 589## 5.39.2 (2018-07-20) 590 591### Bug fixes 592 593Fix issue where when you pass the document as a `Doc` instance to the `CodeMirror` constructor, the `mode` option was ignored. 594 595Fix bug where line height could be computed wrong with a line widget below a collapsed line. 596 597Fix overeager `.npmignore` dropping the `bin/source-highlight` utility from the distribution. 598 599[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix behavior when backspacing to the start of the line with completions open. 600 601## 5.39.0 (2018-06-20) 602 603### Bug fixes 604 605Fix issue that in some circumstances caused content to be clipped off at the bottom after a resize. 606 607[markdown mode](https://codemirror.net/mode/markdown/): Improve handling of blank lines in HTML tags. 608 609### New features 610 611[stex mode](https://codemirror.net/mode/stex/): Add an `inMathMode` option to start the mode in math mode. 612 613## 5.38.0 (2018-05-21) 614 615### Bug fixes 616 617Improve reliability of noticing a missing mouseup event during dragging. 618 619Make sure `getSelection` is always called on the correct document. 620 621Fix interpretation of line breaks and non-breaking spaces inserted by renderer in contentEditable mode. 622 623Work around some browsers inexplicably making the fake scrollbars focusable. 624 625Make sure `coordsChar` doesn't return positions inside collapsed ranges. 626 627[javascript mode](https://codemirror.net/mode/javascript/): Support block scopes, bindingless catch, bignum suffix, `s` regexp flag. 628 629[markdown mode](https://codemirror.net/mode/markdown/): Adjust a wasteful regexp. 630 631[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Allow opening the control without any item selected. 632 633### New features 634 635New theme: [darcula](https://codemirror.net/demo/theme.html#darcula). 636 637[dialog addon](https://codemirror.net/doc/manual.html#addon_dialog): Add a CSS class (`dialog-opened`) to the editor when a dialog is open. 638 639## 5.37.0 (2018-04-20) 640 641### Bug fixes 642 643Suppress keypress events during composition, for platforms that don't properly do this themselves. 644 645[xml-fold addon](https://codemirror.net/demo/folding.html): Improve handling of line-wrapped opening tags. 646 647[javascript mode](https://codemirror.net/mode/javascript/): Improve TypeScript support. 648 649[python mode](https://codemirror.net/mode/python/): Highlight expressions inside format strings. 650 651### New features 652 653[vim bindings](https://codemirror.net/demo/vim.html): Add support for '(' and ')' movement. 654 655New themes: [idea](https://codemirror.net/demo/theme.html#idea), [ssms](https://codemirror.net/demo/theme.html#ssms), [gruvbox-dark](https://codemirror.net/demo/theme.html#gruvbox-dark). 656 657## 5.36.0 (2018-03-20) 658 659### Bug fixes 660 661Make sure all document-level event handlers are registered on the document that the editor is part of. 662 663Fix issue that prevented edits whose origin starts with `+` from being combined in history events for an editor-less document. 664 665[multiplex addon](https://codemirror.net/demo/multiplex.html): Improve handling of indentation. 666 667[merge addon](https://codemirror.net/doc/manual.html#addon_merge): Use CSS `:after` element to style the scroll-lock icon. 668 669[javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Don't provide completions in JSON mode. 670 671[continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Fix numbering error. 672 673[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Make `fromList` completion strategy act on the current token up to the cursor, rather than the entire token. 674 675[markdown mode](https://codemirror.net/mode/markdown/): Fix a regexp with potentially exponental complexity. 676 677### New features 678 679New theme: [lucario](https://codemirror.net/demo/theme.html#lucario). 680 681## 5.35.0 (2018-02-20) 682 683### Bug fixes 684 685Fix problem where selection undo might change read-only documents. 686 687Fix crash when calling `addLineWidget` on a document that has no attached editor. 688 689[searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix behavior of `^` in multiline regexp mode. 690 691[match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Fix problem with matching words that have regexp special syntax in them. 692 693[sublime bindings](https://codemirror.net/demo/sublime.html): Fix `addCursorToSelection` for short lines. 694 695[javascript mode](https://codemirror.net/mode/javascript/): Support TypeScript intersection types, dynamic `import`. 696 697[stex mode](https://codemirror.net/mode/stex/): Fix parsing of `\(` `\)` delimiters, recognize more atom arguments. 698 699[haskell mode](https://codemirror.net/mode/haskell/): Highlight more builtins, support `<*` and `*>`. 700 701[sql mode](https://codemirror.net/mode/sql/): Make it possible to disable backslash escapes in strings for dialects that don't have them, do this for MS SQL. 702 703[dockerfile mode](https://codemirror.net/mode/dockerfile/): Highlight strings and ports, recognize more instructions. 704 705### New features 706 707[vim bindings](https://codemirror.net/demo/vim.html): Support alternative delimiters in replace command. 708 709## 5.34.0 (2018-01-29) 710 711### Bug fixes 712 713[markdown mode](https://codemirror.net/mode/markdown/): Fix a problem where inline styles would persist across list items. 714 715[sublime bindings](https://codemirror.net/demo/sublime.html): Fix the `toggleBookmark` command. 716 717[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when closing triple quotes. 718 719[xml-fold addon](https://codemirror.net/demo/folding.html): Fix folding of line-broken XML tags. 720 721[shell mode](https://codemirror.net/mode/shell/): Better handling of nested quoting. 722 723[javascript-lint addon](https://codemirror.net/demo/lint.html): Clean up and simplify. 724 725[matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix support for multiple editors at the same time. 726 727### New features 728 729New themes: [oceanic-next](https://codemirror.net/demo/theme.html#oceanic-next) and [shadowfox](https://codemirror.net/demo/theme.html#shadowfox). 730 731## 5.33.0 (2017-12-21) 732 733### Bug fixes 734 735[lint addon](https://codemirror.net/doc/manual.html#addon_lint): Make updates more efficient. 736 737[css mode](https://codemirror.net/mode/css/): The mode is now properly case-insensitive. 738 739[continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Fix broken handling of unordered lists introduced in previous release. 740 741[swift](https://codemirror.net/mode/swift) and [scala](https://codemirror.net/mode/clike/) modes: Support nested block comments. 742 743[mllike mode](https://codemirror.net/mode/mllike/index.html): Improve OCaml support. 744 745[sublime bindings](https://codemirror.net/demo/sublime.html): Use the proper key bindings for `addCursorToNextLine` and `addCursorToPrevLine`. 746 747### New features 748 749[jsx mode](https://codemirror.net/mode/jsx/index.html): Support JSX fragments. 750 751[closetag addon](https://codemirror.net/demo/closetag.html): Add an option to disable auto-indenting. 752 753## 5.32.0 (2017-11-22) 754 755### Bug fixes 756 757Increase contrast on default bracket-matching colors. 758 759[javascript mode](https://codemirror.net/mode/javascript/): Recognize TypeScript type parameters for calls, type guards, and type parameter defaults. Improve handling of `enum` and `module` keywords. 760 761[comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix bug when uncommenting a comment that spans all but the last selected line. 762 763[searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix bug in case folding. 764 765[emacs bindings](https://codemirror.net/demo/emacs.html): Prevent single-character deletions from resetting the kill ring. 766 767[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Tweak quote matching behavior. 768 769### New features 770 771[continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Increment ordered list numbers when adding one. 772 773## 5.31.0 (2017-10-20) 774 775### Bug fixes 776 777Further improve selection drawing and cursor motion in right-to-left documents. 778 779[vim bindings](https://codemirror.net/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/doc/manual.html#option_contentEditable). 780 781[continuecomment addon](https://codemirror.net/doc/manual.html#addon_continuecomment): Fix bug when pressing enter after a single-line block comment. 782 783[markdown mode](https://codemirror.net/mode/markdown/): Fix issue with leaving indented fenced code blocks. 784 785[javascript mode](https://codemirror.net/mode/javascript/): Fix bad parsing of operators without spaces between them. Fix some corner cases around semicolon insertion and regexps. 786 787### New features 788 789Modes added with [`addOverlay`](https://codemirror.net/doc/manual.html#addOverlay) now have access to a [`baseToken`](https://codemirror.net/doc/manual.html#baseToken) method on their input stream, giving access to the tokens of the underlying mode. 790 791## 5.30.0 (2017-09-20) 792 793### Bug fixes 794 795Fixed a number of issues with drawing right-to-left selections and mouse selection in bidirectional text. 796 797[search addon](https://codemirror.net/demo/search/): Fix crash when restarting search after doing empty search. 798 799[mark-selection addon](http://cm/doc/manual.html#addon_mark-selection): Fix off-by-one bug. 800 801[tern addon](https://codemirror.net/demo/tern.html): Fix bad request made when editing at the bottom of a large document. 802 803[javascript mode](https://codemirror.net/mode/javascript/): Improve parsing in a number of corner cases. 804 805[markdown mode](https://codemirror.net/mode/markdown/): Fix crash when a sub-mode doesn't support indentation, allow uppercase X in task lists. 806 807[gfm mode](https://codemirror.net/mode/gfm/): Don't highlight SHA1 'hashes' without numbers to avoid false positives. 808 809[soy mode](https://codemirror.net/mode/soy/): Support injected data and `@param` in comments. 810 811### New features 812 813[simple mode addon](https://codemirror.net/demo/simplemode.html): Allow groups in regexps when `token` isn't an array. 814 815## 5.29.0 (2017-08-24) 816 817### Bug fixes 818 819Fix crash in contentEditable input style when editing near a bookmark. 820 821Make sure change origins are preserved when splitting changes on [read-only marks](https://codemirror.net/doc/manual.html#mark_readOnly). 822 823[javascript mode](https://codemirror.net/mode/javascript/): More support for TypeScript syntax. 824 825[d mode](https://codemirror.net/mode/d/): Support nested comments. 826 827[python mode](https://codemirror.net/mode/python/): Improve tokenizing of operators. 828 829[markdown mode](https://codemirror.net/mode/markdown/): Further improve CommonMark conformance. 830 831[css mode](https://codemirror.net/mode/css/): Don't run comment tokens through the mode's state machine. 832 833[shell mode](https://codemirror.net/mode/shell/): Allow strings to span lines. 834 835[search addon](https://codemirror.net/demo/search/): Fix crash in persistent search when `extraKeys` is null. 836 837## 5.28.0 (2017-07-21) 838 839### Bug fixes 840 841Fix copying of, or replacing editor content with, a single dash character when copying a big selection in some corner cases. 842 843Make [`"goLineLeft"`](https://codemirror.net/doc/manual.html#command_goLineLeft)/`"goLineRight"` behave better on wrapped lines. 844 845[sql mode](https://codemirror.net/mode/sql/): Fix tokenizing of multi-dot operator and allow digits in subfield names. 846 847[searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix infinite loop on some composed character inputs. 848 849[markdown mode](https://codemirror.net/mode/markdown/): Make list parsing more CommonMark-compliant. 850 851[gfm mode](https://codemirror.net/mode/gfm/): Highlight colon syntax for emoji. 852 853### New features 854 855Expose [`startOperation`](https://codemirror.net/doc/manual.html#startOperation) and `endOperation` for explicit operation management. 856 857[sublime bindings](https://codemirror.net/demo/sublime.html): Add extend-selection (Ctrl-Alt- or Cmd-Shift-Up/Down). 858 859## 5.27.4 (2017-06-29) 860 861### Bug fixes 862 863Fix crash when using mode lookahead. 864 865[markdown mode](https://codemirror.net/mode/markdown/): Don't block inner mode's indentation support. 866 867## 5.27.2 (2017-06-22) 868 869### Bug fixes 870 871Fix crash in the [simple mode](https://codemirror.net/demo/simplemode.html)< addon. 872 873## 5.27.0 (2017-06-22) 874 875### Bug fixes 876 877Fix infinite loop in forced display update. 878 879Properly disable the hidden textarea when `readOnly` is `"nocursor"`. 880 881Calling the `Doc` constructor without `new` works again. 882 883[sql mode](https://codemirror.net/mode/sql/): Handle nested comments. 884 885[javascript mode](https://codemirror.net/mode/javascript/): Improve support for TypeScript syntax. 886 887[markdown mode](https://codemirror.net/mode/markdown/): Fix bug where markup was ignored on indented paragraph lines. 888 889[vim bindings](https://codemirror.net/demo/vim.html): Referencing invalid registers no longer causes an uncaught exception. 890 891[rust mode](https://codemirror.net/mode/rust/): Add the correct MIME type. 892 893[matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Document options. 894 895### New features 896 897Mouse button clicks can now be bound in keymaps by using names like `"LeftClick"` or `"Ctrl-Alt-MiddleTripleClick"`. When bound to a function, that function will be passed the position of the click as second argument. 898 899The behavior of mouse selection and dragging can now be customized with the [`configureMouse`](https://codemirror.net/doc/manual.html#option_configureMouse) option. 900 901Modes can now look ahead across line boundaries with the [`StringStream`](https://codemirror.net/doc/manual.html#StringStream)`.lookahead` method. 902 903Introduces a `"type"` token type, makes modes that recognize types output it, and add styling for it to the themes. 904 905New [`pasteLinesPerSelection`](https://codemirror.net/doc/manual.html#option_pasteLinesPerSelection) option to control the behavior of pasting multiple lines into multiple selections. 906 907[searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Support multi-line regular expression matches, and normalize strings when matching. 908 909## 5.26.0 (2017-05-22) 910 911### Bug fixes 912 913In textarea-mode, don't reset the input field during composition. 914 915More careful restoration of selections in widgets, during editor redraw. 916 917[javascript mode](https://codemirror.net/mode/javascript/): More TypeScript parsing fixes. 918 919[julia mode](https://codemirror.net/mode/julia/): Fix issue where the mode gets stuck. 920 921[markdown mode](https://codemirror.net/mode/markdown/): Understand cross-line links, parse all bracketed things as links. 922 923[soy mode](https://codemirror.net/mode/soy/): Support single-quoted strings. 924 925[go mode](https://codemirror.net/mode/go/): Don't try to indent inside strings or comments. 926 927### New features 928 929[vim bindings](https://codemirror.net/demo/vim.html): Parse line offsets in line or range specs. 930 931## 5.25.2 (2017-04-20) 932 933### Bug fixes 934 935Better handling of selections that cover the whole viewport in contentEditable-mode. 936 937No longer accidentally scroll the editor into view when calling `setValue`. 938 939Work around Chrome Android bug when converting screen coordinates to editor positions. 940 941Make sure long-clicking a selection sets a cursor and doesn't show the editor losing focus. 942 943Fix issue where pointer events were incorrectly disabled on Chrome's overlay scrollbars. 944 945[javascript mode](https://codemirror.net/mode/javascript/): Recognize annotations and TypeScript-style type parameters. 946 947[shell mode](https://codemirror.net/mode/shell/): Handle nested braces. 948 949[markdown mode](https://codemirror.net/mode/markdown/): Make parsing of strong/em delimiters CommonMark-compliant. 950 951## 5.25.0 (2017-03-20) 952 953### Bug fixes 954 955In contentEditable-mode, properly locate changes that repeat a character when inserted with IME. 956 957Fix handling of selections bigger than the viewport in contentEditable mode. 958 959Improve handling of changes that insert or delete lines in contentEditable mode. 960 961Count Unicode control characters 0x80 to 0x9F as special (non-printing) chars. 962 963Fix handling of shadow DOM roots when finding the active element. 964 965Add `role=presentation` to more DOM elements to improve screen reader support. 966 967[merge addon](https://codemirror.net/doc/manual.html#addon_merge): Make aligning of unchanged chunks more robust. 968 969[comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix comment-toggling on a block of text that starts and ends in a (different) block comment. 970 971[javascript mode](https://codemirror.net/mode/javascript/): Improve support for TypeScript syntax. 972 973[r mode](https://codemirror.net/mode/r/): Fix indentation after semicolon-less statements. 974 975[shell mode](https://codemirror.net/mode/shell/): Properly handle escaped parentheses in parenthesized expressions. 976 977[markdown mode](https://codemirror.net/mode/markdown/): Fix a few bugs around leaving fenced code blocks. 978 979[soy mode](https://codemirror.net/mode/soy/): Improve indentation. 980 981### New features 982 983[lint addon](https://codemirror.net/doc/manual.html#addon_lint): Support asynchronous linters that return promises. 984 985[continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Support continuing task lists. 986 987[vim bindings](https://codemirror.net/demo/vim.html): Make Y behave like yy. 988 989[sql mode](https://codemirror.net/mode/sql/): Support sqlite dialect. 990 991## 5.24.2 (2017-02-22) 992 993### Bug fixes 994 995[javascript mode](https://codemirror.net/mode/javascript/): Support computed class method names. 996 997[merge addon](https://codemirror.net/doc/manual.html#addon_merge): Improve aligning of unchanged code in the presence of marks and line widgets. 998 999## 5.24.0 (2017-02-20) 1000 1001### Bug fixes 1002 1003A cursor directly before a line-wrapping break is now drawn before or after the line break depending on which direction you arrived from. 1004 1005Visual cursor motion in line-wrapped right-to-left text should be much more correct. 1006 1007Fix bug in handling of read-only marked text. 1008 1009[shell mode](https://codemirror.net/mode/shell/): Properly tokenize nested parentheses. 1010 1011[python mode](https://codemirror.net/mode/python/): Support underscores in number literals. 1012 1013[sass mode](https://codemirror.net/mode/sass/): Uses the full list of CSS properties and keywords from the CSS mode, rather than defining its own incomplete subset. 1014 1015[css mode](https://codemirror.net/mode/css/): Expose `lineComment` property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements. 1016 1017[julia mode](https://codemirror.net/mode/julia/): Properly indent `elseif` lines. 1018 1019[markdown mode](https://codemirror.net/mode/markdown/): Properly recognize the end of fenced code blocks when inside other markup. 1020 1021[scala mode](https://codemirror.net/mode/clike/): Improve handling of operators containing <code>#</code>, <code>@</code>, and <code>:</code> chars. 1022 1023[xml mode](https://codemirror.net/mode/xml/): Allow dashes in HTML tag names. 1024 1025[javascript mode](https://codemirror.net/mode/javascript/): Improve parsing of async methods, TypeScript-style comma-separated superclass lists. 1026 1027[indent-fold addon](https://codemirror.net/demo/folding.html): Ignore comment lines. 1028 1029### New features 1030 1031Positions now support a `sticky` property which determines whether they should be associated with the character before (value `"before"`) or after (value `"after"`) them. 1032 1033[vim bindings](https://codemirror.net/demo/vim.html): Make it possible to remove built-in bindings through the API. 1034 1035[comment addon](https://codemirror.net/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. 1036 1037### Breaking changes 1038 1039The [sass mode](https://codemirror.net/mode/sass/) now depends on the [css mode](https://codemirror.net/mode/css/). 1040 1041## 5.23.0 (2017-01-19) 1042 1043### Bug fixes 1044 1045Presentation-related elements DOM elements are now marked as such to help screen readers. 1046 1047[markdown mode](https://codemirror.net/mode/markdown/): Be more picky about what HTML tags look like to avoid false positives. 1048 1049### New features 1050 1051`findModeByMIME` now understands `+json` and `+xml` MIME suffixes. 1052 1053[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Add support for an `override` option to ignore language-specific defaults. 1054 1055[panel addon](https://codemirror.net/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. 1056 1057## 5.22.2 (2017-01-12) 1058 1059### Bug fixes 1060 1061Include rollup.config.js in NPM package, so that it can be used to build from source. 1062 1063## 5.22.0 (2016-12-20) 1064 1065### Bug fixes 1066 1067[sublime bindings](https://codemirror.net/demo/sublime.html): Make `selectBetweenBrackets` work with multiple cursors. 1068 1069[javascript mode](https://codemirror.net/mode/javascript/): Fix issues with parsing complex TypeScript types, imports, and exports. 1070 1071A contentEditable editor instance with autofocus enabled no longer crashes during initializing. 1072 1073### New features 1074 1075[emacs bindings](https://codemirror.net/demo/emacs.html): Export `CodeMirror.emacs` to allow other addons to hook into Emacs-style functionality. 1076 1077[active-line addon](https://codemirror.net/doc/manual.html#addon_active-line): Add `nonEmpty` option. 1078 1079New event: [`optionChange`](https://codemirror.net/doc/manual.html#event_optionChange). 1080 1081## 5.21.0 (2016-11-21) 1082 1083### Bug fixes 1084 1085Tapping/clicking the editor in [contentEditable mode](https://codemirror.net/doc/manual.html#option_inputStyle) on Chrome now puts the cursor at the tapped position. 1086 1087Fix various crashes and misbehavior when reading composition events in [contentEditable mode](https://codemirror.net/doc/manual.html#option_inputStyle). 1088 1089Catches and ignores an IE 'Unspecified Error' when creating an editor in an iframe before there is a `<body>`. 1090 1091[merge addon](https://codemirror.net/doc/manual.html#addon_merge): Fix several issues in the chunk-aligning feature. 1092 1093[verilog mode](https://codemirror.net/mode/verilog): Rewritten to address various issues. 1094 1095[julia mode](https://codemirror.net/mode/julia): Recognize Julia 0.5 syntax. 1096 1097[swift mode](https://codemirror.net/mode/swift): Various fixes and adjustments to current syntax. 1098 1099[markdown mode](https://codemirror.net/mode/markdown): Allow lists without a blank line above them. 1100 1101### New features 1102 1103The [`setGutterMarker`](https://codemirror.net/doc/manual.html#setGutterMarker), [`clearGutter`](https://codemirror.net/doc/manual.html#clearGutter), and [`lineInfo`](https://codemirror.net/doc/manual.html#lineInfo) methods are now available on `Doc` objects. 1104 1105The [`heightAtLine`](https://codemirror.net/doc/manual.html#heightAtLine) method now takes an extra argument to allow finding the height at the top of the line's line widgets. 1106 1107[ruby mode](https://codemirror.net/mode/ruby): `else` and `elsif` are now immediately indented. 1108 1109[vim bindings](https://codemirror.net/demo/vim.html): Bind Ctrl-T and Ctrl-D to in- and dedent in insert mode. 1110 1111## 5.20.2 (2016-10-21) 1112 1113### Bug fixes 1114 1115Fix `CodeMirror.version` returning the wrong version number. 1116 1117## 5.20.0 (2016-10-20) 1118 1119### Bug fixes 1120 1121Make `newlineAndIndent` command work with multiple cursors on the same line. 1122 1123Make sure keypress events for backspace are ignored. 1124 1125Tokens styled with overlays no longer get a nonsense `cm-cm-overlay` class. 1126 1127Line endings for pasted content are now normalized to the editor's [preferred ending](https://codemirror.net/doc/manual.html#option_lineSeparator). 1128 1129[javascript mode](https://codemirror.net/mode/javascript): Improve support for class expressions. Support TypeScript optional class properties, the `abstract` keyword, and return type declarations for arrow functions. 1130 1131[css mode](https://codemirror.net/mode/css): Fix highlighting of mixed-case keywords. 1132 1133[closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when typing a quote before a string. 1134 1135### New features 1136 1137The core is now maintained as a number of small files, using ES6 syntax and modules, under the `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). 1138 1139The [`refresh`](https://codemirror.net/doc/manual.html#event_refresh) event is now documented and stable. 1140 1141## 5.19.0 (2016-09-20) 1142 1143### Bugfixes 1144 1145[erlang mode](https://codemirror.net/mode/erlang): Fix mode crash when trying to read an empty context. 1146 1147[comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix broken behavior when toggling comments inside a comment. 1148 1149xml-fold addon: Fix a null-dereference bug. 1150 1151Page up and page down now do something even in single-line documents. 1152 1153Fix an issue where the cursor position could be off in really long (~8000 character) tokens. 1154 1155### New features 1156 1157[javascript mode](https://codemirror.net/mode/javascript): Better indentation when semicolons are missing. Better support for TypeScript classes, optional parameters, and the `type` keyword. 1158 1159The [`blur`](https://codemirror.net/doc/manual.html#event_blur) and [`focus`](https://codemirror.net/doc/manual.html#event_focus) events now pass the DOM event to their handlers. 1160 1161## 5.18.2 (2016-08-23) 1162 1163### Bugfixes 1164 1165[vue mode](https://codemirror.net/mode/vue): Fix outdated references to renamed Pug mode dependency. 1166 1167## 5.18.0 (2016-08-22) 1168 1169### Bugfixes 1170 1171Make sure [gutter backgrounds](https://codemirror.net/doc/manual.html#addLineClass) stick to the rest of the gutter during horizontal scrolling. 1172 1173The contenteditable [`inputStyle`](https://codemirror.net/doc/manual.html#option_inputStyle) now properly supports pasting on pre-Edge IE versions. 1174 1175[javascript mode](https://codemirror.net/mode/javascript): Fix some small parsing bugs and improve TypeScript support. 1176 1177[matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix bug where active highlighting was left in editor when the addon was disabled. 1178 1179[match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Only start highlighting things when the editor gains focus. 1180 1181[javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Also complete non-enumerable properties. 1182 1183### New features 1184 1185The [`addOverlay`](https://codemirror.net/doc/manual.html#addOverlay) method now supports a `priority` option to control the order in which overlays are applied. 1186 1187MIME types that end in `+json` now default to the JSON mode when the MIME itself is not defined. 1188 1189### Breaking changes 1190 1191The mode formerly known as Jade was renamed to [Pug](https://codemirror.net/mode/pug). 1192 1193The [Python mode](https://codemirror.net/mode/python) now defaults to Python 3 (rather than 2) syntax. 1194 1195## 5.17.0 (2016-07-19) 1196 1197### Bugfixes 1198 1199Fix problem with wrapped trailing whitespace displaying incorrectly. 1200 1201Prevent IME dialog from overlapping typed content in Chrome. 1202 1203Improve measuring of characters near a line wrap. 1204 1205[javascript mode](https://codemirror.net/mode/javascript): Improve support for `async`, allow trailing commas in `import` lists. 1206 1207[vim bindings](https://codemirror.net/demo/vim.html): Fix backspace in replace mode. 1208 1209[sublime bindings](https://codemirror.net/demo/sublime.html): Fix some key bindings on OS X to match Sublime Text. 1210 1211### New features 1212 1213[markdown mode](https://codemirror.net/mode/markdown): Add more classes to image links in highlight-formatting mode. 1214 1215## 5.16.0 (2016-06-20) 1216 1217### Bugfixes 1218 1219Fix glitches when dragging content caused by the drop indicator receiving mouse events. 1220 1221Make Control-drag work on Firefox. 1222 1223Make clicking or selection-dragging at the end of a wrapped line select the right position. 1224 1225[show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Prevent widget scrollbar from hiding part of the hint text. 1226 1227[rulers addon](https://codemirror.net/doc/manual.html#addon_rulers): Prevent rulers from forcing a horizontal editor scrollbar. 1228 1229### New features 1230 1231[search addon](https://codemirror.net/doc/manual.html#addon_search): Automatically bind search-related keys in persistent dialog. 1232 1233[sublime keymap](https://codemirror.net/demo/sublime.html): Add a multi-cursor aware smart backspace binding. 1234 1235## 5.15.2 (2016-05-20) 1236 1237### Bugfixes 1238 1239Fix a critical document corruption bug that occurs when a document is gradually grown. 1240 1241## 5.15.0 (2016-05-20) 1242 1243### Bugfixes 1244 1245Fix bug that caused the selection to reset when focusing the editor in contentEditable input mode. 1246 1247Fix issue where not all ASCII control characters were being replaced by placeholders. 1248 1249Remove the assumption that all modes have a `startState` method from several wrapping modes. 1250 1251Fix issue where the editor would complain about overlapping collapsed ranges when there weren't any. 1252 1253Optimize document tree building when loading or pasting huge chunks of content. 1254 1255[markdown mode](https://codemirror.net/mode/markdown/): Fix several issues in matching link targets. 1256 1257[clike mode](https://codemirror.net/mode/clike/): Improve indentation of C++ template declarations. 1258 1259### New features 1260 1261Explicitly bind Ctrl-O on OS X to make that binding (“open line”) act as expected. 1262 1263Pasting [linewise-copied](https://codemirror.net/doc/manual.html#option_lineWiseCopyCut) content when there is no selection now inserts the lines above the current line. 1264 1265[javascript mode](https://codemirror.net/mode/javascript/): Support `async`/`await` and improve support for TypeScript type syntax. 1266 1267## 5.14.2 (2016-04-20) 1268 1269### Bugfixes 1270 1271Push a new package to NPM due to an [NPM bug](https://github.com/npm/npm/issues/5082) omitting the LICENSE file in 5.14.0. 1272 1273Set `dataTransfer.effectAllowed` in `dragstart` handler to help browsers use the right drag icon. 1274 1275Add the [mbox mode](https://codemirror.net/mode/mbox/index.html) to `mode/meta.js`. 1276 1277## 5.14.0 (2016-04-20) 1278 1279### Bugfixes 1280 1281[`posFromIndex`](https://codemirror.net/doc/manual.html#posFromIndex) and [`indexFromPos`](https://codemirror.net/doc/manual.html#indexFromPos) now take [`lineSeparator`](https://codemirror.net/doc/manual.html#option_lineSeparator) into account. 1282 1283[vim bindings](https://codemirror.net/demo/vim.html): Only call `.save()` when it is actually available. 1284 1285[comment addon](https://codemirror.net/doc/manual.html#addon_comment): Be careful not to mangle multi-line strings. 1286 1287[Python mode](https://codemirror.net/mode/python/index.html): Improve distinguishing of decorators from `@` operators. 1288 1289[`findMarks`](https://codemirror.net/doc/manual.html#findMarks): No longer return marks that touch but don't overlap given range. 1290 1291### New features 1292 1293[vim bindings](https://codemirror.net/demo/vim.html): Add yank command. 1294 1295[match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Add `trim` option to disable ignoring of whitespace. 1296 1297[PowerShell mode](https://codemirror.net/mode/powershell/index.html): Added. 1298 1299[Yacas mode](https://codemirror.net/mode/yacas/index.html): Added. 1300 1301[Web IDL mode](https://codemirror.net/mode/webidl/index.html): Added. 1302 1303[SAS mode](https://codemirror.net/mode/sas/index.html): Added. 1304 1305[mbox mode](https://codemirror.net/mode/mbox/index.html): Added. 1306 1307## 5.13.2 (2016-03-23) 1308 1309### Bugfixes 1310 1311Solves a problem where the gutter would sometimes not extend all the way to the end of the document. 1312 1313## 5.13.0 (2016-03-21) 1314 1315### New features 1316 1317New DOM event forwarded: [`"dragleave"`](https://codemirror.net/doc/manual.html#event_dom). 1318 1319[protobuf mode](https://codemirror.net/mode/protobuf/index.html): Newly added. 1320 1321### Bugfixes 1322 1323Fix problem where [`findMarks`](https://codemirror.net/doc/manual.html#findMarks) sometimes failed to find multi-line marks. 1324 1325Fix crash that showed up when atomic ranges and bidi text were combined. 1326 1327[show-hint addon](https://codemirror.net/demo/complete.html): Completion widgets no longer close when the line indented or dedented. 1328 1329[merge addon](https://codemirror.net/demo/merge.html): Fix bug when merging chunks at the end of the file. 1330 1331[placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): No longer gets confused by [`swapDoc`](https://codemirror.net/doc/manual.html#swapDoc). 1332 1333[simplescrollbars addon](https://codemirror.net/doc/manual.html#addon_simplescrollbars): Fix invalid state when deleting at end of document. 1334 1335[clike mode](https://codemirror.net/mode/clike/index.html): No longer gets confused when a comment starts after an operator. 1336 1337[markdown mode](https://codemirror.net/mode/markdown/index.html): Now supports CommonMark-style flexible list indentation. 1338 1339[dylan mode](https://codemirror.net/mode/dylan/index.html): Several improvements and fixes. 1340 1341## 5.12.0 (2016-02-19) 1342 1343### New features 1344 1345[Vim bindings](https://codemirror.net/demo/vim.html): Ctrl-Q is now an alias for Ctrl-V. 1346 1347[Vim bindings](https://codemirror.net/demo/vim.html): The Vim API now exposes an `unmap` method to unmap bindings. 1348 1349[active-line addon](https://codemirror.net/demo/activeline.html): This addon can now style the active line's gutter. 1350 1351[FCL mode](https://codemirror.net/mode/fcl/): Newly added. 1352 1353[SQL mode](https://codemirror.net/mode/sql/): Now has a Postgresql dialect. 1354 1355### Bugfixes 1356 1357Fix [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. 1358 1359Use absolute, rather than fixed positioning in the context-menu intercept hack, to work around a [problem](https://github.com/codemirror/CodeMirror/issues/3238) when the editor is inside a transformed parent container. 1360 1361Solve a [problem](https://github.com/codemirror/CodeMirror/issues/3821) where the horizontal scrollbar could hide text in Firefox. 1362 1363Fix a [bug](https://github.com/codemirror/CodeMirror/issues/3834) that caused phantom scroll space under the text in some situations. 1364 1365[Sublime Text bindings](https://codemirror.net/demo/sublime.html): Bind delete-line to Shift-Ctrl-K on OS X. 1366 1367[Markdown mode](https://codemirror.net/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. 1368 1369[Markdown mode](https://codemirror.net/mode/markdown/): Ignore backslashes in code fragments. 1370 1371[Markdown mode](https://codemirror.net/mode/markdown/): Use whichever mode is registered as `text/html` to parse HTML. 1372 1373[Clike mode](https://codemirror.net/mode/clike/): Improve indentation of Scala `=>` functions. 1374 1375[Python mode](https://codemirror.net/mode/python/): Improve indentation of bracketed code. 1376 1377[HTMLMixed mode](https://codemirror.net/mode/htmlmixed/): Support multi-line opening tags for sub-languages (`<script>`, `<style>`, etc). 1378 1379[Spreadsheet mode](https://codemirror.net/mode/spreadsheet/): Fix bug where the mode did not advance the stream when finding a backslash. 1380 1381[XML mode](https://codemirror.net/mode/xml/): The mode now takes a `matchClosing` option to configure whether mismatched closing tags should be highlighted as errors. 1382 1383## 5.11.0 (2016-01-20) 1384 1385* New modes: [JSX](https://codemirror.net/mode/jsx/index.html), [literate Haskell](https://codemirror.net/mode/haskell-literate/index.html) 1386* The editor now forwards more [DOM events](https://codemirror.net/doc/manual.html#event_dom): `cut`, `copy`, `paste`, and `touchstart`. It will also forward `mousedown` for drag events 1387* Fixes a bug where bookmarks next to collapsed spans were not rendered 1388* The [Swift](https://codemirror.net/mode/swift/index.html) mode now supports auto-indentation 1389* Frontmatters in the [YAML frontmatter](https://codemirror.net/mode/yaml-frontmatter/index.html) mode are now optional as intended 1390 1391## 5.10.0 (2015-12-21) 1392 1393* Modify the way [atomic ranges](https://codemirror.net/doc/manual.html#mark_atomic) are skipped by selection to try and make it less surprising. 1394* The [Swift mode](https://codemirror.net/mode/swift/index.html) was rewritten. 1395* New addon: [jump-to-line](https://codemirror.net/doc/manual.html#addon_jump-to-line). 1396* New method: [`isReadOnly`](https://codemirror.net/doc/manual.html#isReadOnly). 1397* The [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint) now defaults to picking completions on single click. 1398* The object passed to [`"beforeSelectionChange"`](https://codemirror.net/doc/manual.html#event_beforeSelectionChange) events now has an `origin` property. 1399* New mode: [Crystal](https://codemirror.net/mode/crystal/index.html). 1400 1401## 5.9.0 (2015-11-23) 1402 1403* Improve the way overlay (OS X-style) scrollbars are handled 1404* Make [annotatescrollbar](https://codemirror.net/doc/manual.html#addon_annotatescrollbar) and scrollpastend addons work properly together 1405* Make [show-hint](https://codemirror.net/doc/manual.html#addon_show-hint) addon select options on single click by default, move selection to hovered item 1406* Properly fold comments that include block-comment-start markers 1407* Many small language mode fixes 1408 1409## 5.8.0 (2015-10-20) 1410 1411* Fixes an infinite loop in the [hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap) 1412* New modes: [NSIS](https://codemirror.net/mode/nsis/index.html), [Ceylon](https://codemirror.net/mode/clike/index.html) 1413* The Kotlin mode is now a [clike](https://codemirror.net/mode/clike/index.html) dialect, rather than a stand-alone mode 1414* New option: [`allowDropFileTypes`](https://codemirror.net/doc/manual.html#option_allowDropFileTypes). Binary files can no longer be dropped into CodeMirror 1415* New themes: [bespin](https://codemirror.net/demo/theme.html#bespin), [hopscotch](https://codemirror.net/demo/theme.html#hopscotch), [isotope](https://codemirror.net/demo/theme.html#isotope), [railscasts](https://codemirror.net/demo/theme.html#railscasts) 1416 1417## 5.7.0 (2015-09-21) 1418 1419* New modes: [Vue](https://codemirror.net/mode/vue/index.html), [Oz](https://codemirror.net/mode/oz/index.html), [MscGen](https://codemirror.net/mode/mscgen/index.html) (and dialects), [Closure Stylesheets](https://codemirror.net/mode/css/gss.html) 1420* Implement [CommonMark](http://commonmark.org)-style flexible list indent and cross-line code spans in [Markdown](https://codemirror.net/mode/markdown/index.html) mode 1421* Add a replace-all button to the [search addon](https://codemirror.net/doc/manual.html#addon_search), and make the persistent search dialog transparent when it obscures the match 1422* Handle `async`/`await` and ocal and binary numbers in [JavaScript mode](https://codemirror.net/mode/javascript/index.html) 1423* Fix various issues with the [Haxe mode](https://codemirror.net/mode/haxe/index.html) 1424* Make the [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets) select only the wrapped text when wrapping selection in brackets 1425* Tokenize properties as properties in the [CoffeeScript mode](https://codemirror.net/mode/coffeescript/index.html) 1426* The [placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder) now accepts a DOM node as well as a string placeholder 1427 1428## 5.6.0 (2015-08-20) 1429 1430* Fix bug where you could paste into a `readOnly` editor 1431* Show a cursor at the drop location when dragging over the editor 1432* The [Rust mode](https://codemirror.net/mode/rust/index.html) was rewritten to handle modern Rust 1433* The editor and theme CSS was cleaned up. Some selectors are now less specific than before 1434* New theme: [abcdef](https://codemirror.net/demo/theme.html#abcdef) 1435* Lines longer than [`maxHighlightLength`](https://codemirror.net/doc/manual.html#option_maxHighlightLength) are now less likely to mess up indentation 1436* New addons: [`autorefresh`](https://codemirror.net/doc/manual.html#addon_autorefresh) for refreshing an editor the first time it becomes visible, and `html-lint` for using [HTMLHint](http://htmlhint.com/) 1437* The [`search`](https://codemirror.net/doc/manual.html#addon_search) addon now recognizes `\r` and `\n` in pattern and replacement input 1438 1439## 5.5.0 (2015-07-20) 1440 1441* New option: [`lineSeparator`](https://codemirror.net/doc/manual.html#option_lineSeparator) (with corresponding [method](https://codemirror.net/doc/manual.html#lineSeparator)) 1442* New themes: [dracula](https://codemirror.net/demo/theme.html#dracula), [seti](https://codemirror.net/demo/theme.html#seti), [yeti](https://codemirror.net/demo/theme.html#yeti), [material](https://codemirror.net/demo/theme.html#material), and [icecoder](https://codemirror.net/demo/theme.html#icecoder) 1443* New modes: [Brainfuck](https://codemirror.net/mode/brainfuck/index.html), [VHDL](https://codemirror.net/mode/vhdl/index.html), Squirrel ([clike](https://codemirror.net/mode/clike/index.html) dialect) 1444* Define a `findPersistent` command in the [search](https://codemirror.net/demo/search.html) addon, for a dialog that stays open as you cycle through matches 1445* From this release on, the NPM module doesn't include documentation and demos 1446* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.4.0...5.5.0) 1447 1448## 5.4.0 (2015-06-25) 1449 1450* New modes: [Twig](https://codemirror.net/mode/twig/index.html), [Elm](https://codemirror.net/mode/elm/index.html), [Factor](https://codemirror.net/mode/factor/index.html), [Swift](https://codemirror.net/mode/swift/index.html) 1451* Prefer clipboard API (if available) when pasting 1452* Refined definition highlighting in [clike](https://codemirror.net/mode/clike/index.html) mode 1453* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.3.0...5.4.0) 1454 1455## 5.3.0 (2015-05-20) 1456 1457* Fix several regressions in the [`show-hint`](https://codemirror.net/doc/manual.html#addon_show-hint) addon (`completeSingle` option, `"shown"` and `"close"` events) 1458* The [vim mode](https://codemirror.net/demo/vim.html) API was [documented](https://codemirror.net/doc/manual.html#vimapi) 1459* New modes: [ASN.1](https://codemirror.net/mode/asn.1/index.html), [TTCN](https://codemirror.net/mode/ttcn/index.html), and [TTCN-CFG](https://codemirror.net/mode/ttcn-cfg/index.html) 1460* The [clike](https://codemirror.net/mode/clike/index.html) mode can now deep-indent `switch` statements, and roughly recognizes types and defined identifiers 1461* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.2.0...5.3.0) 1462 1463## 5.2.0 (2015-04-20) 1464 1465* Fix several race conditions in [`show-hint`](https://codemirror.net/doc/manual.html#addon_show-hint)'s asynchronous mode 1466* Fix backspace binding in [Sublime bindings](https://codemirror.net/demo/sublime.html) 1467* Change the way IME is handled in the `"textarea"` [input style](https://codemirror.net/doc/manual.html#option_inputStyle) 1468* New modes: [MUMPS](https://codemirror.net/mode/mumps/index.html), [Handlebars](https://codemirror.net/mode/handlebars/index.html) 1469* Rewritten modes: [Django](https://codemirror.net/mode/django/index.html), [Z80](https://codemirror.net/mode/z80/index.html) 1470* New theme: [Liquibyte](https://codemirror.net/demo/theme.html#liquibyte) 1471* New option: [`lineWiseCopyCut`](https://codemirror.net/doc/manual.html#option_lineWiseCopyCut) 1472* The [Vim mode](https://codemirror.net/demo/vim.html) now supports buffer-local options and the `filetype` setting 1473* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.1.0...5.2.0) 1474 1475## 5.1.0 (2015-03-23) 1476 1477* New modes: [ASCII armor](https://codemirror.net/mode/asciiarmor/index.html) (PGP data), [Troff](https://codemirror.net/mode/troff/index.html), and [CMake](https://codemirror.net/mode/cmake/index.html). 1478* Remove SmartyMixed mode, rewrite [Smarty](https://codemirror.net/mode/smarty/index.html) mode to supersede it. 1479* New commands in the [merge addon](https://codemirror.net/doc/manual.html#addon_merge): `goNextDiff` and `goPrevDiff`. 1480* The [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets) can now be configured per mode. 1481* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.0.0...5.1.0). 1482 1483## 5.0.0 (2015-02-20) 1484 1485* Experimental mobile support (tested on iOS, Android Chrome, stock Android browser) 1486* New option [`inputStyle`](https://codemirror.net/doc/manual.html#option_inputStyle) to switch between hidden textarea and contenteditable input. 1487* The [`getInputField`](https://codemirror.net/doc/manual.html#getInputField) method is no longer guaranteed to return a textarea. 1488* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.13.0...5.0.0). 1489 1490## 4.13.0 (2015-02-20) 1491 1492* Fix the way the [`closetag`](https://codemirror.net/demo/closetag.html) demo handles the slash character. 1493* New modes: [Forth](https://codemirror.net/mode/forth/index.html), [Stylus](https://codemirror.net/mode/stylus/index.html). 1494* Make the [CSS mode](https://codemirror.net/mode/css/index.html) understand some modern CSS extensions. 1495* Have the [Scala mode](https://codemirror.net/mode/clike/index.html) handle symbols and triple-quoted strings. 1496* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.12.0...4.13.0). 1497 1498## 4.12.0 (2015-01-22) 1499 1500* The [`closetag`](https://codemirror.net/doc/manual.html#addon_closetag) addon now defines a `"closeTag"` command. 1501* Adds a `findModeByFileName` to the [mode metadata](https://codemirror.net/doc/manual.html#addon_meta) addon. 1502* [Simple mode](https://codemirror.net/demo/simplemode.html) rules can now contain a `sol` property to only match at the start of a line. 1503* New addon: [`selection-pointer`](https://codemirror.net/doc/manual.html#addon_selection-pointer) to style the mouse cursor over the selection. 1504* Improvements to the [Sass mode](https://codemirror.net/mode/sass/index.html)'s indentation. 1505* The [Vim keymap](https://codemirror.net/demo/vim.html)'s search functionality now supports [scrollbar annotation](https://codemirror.net/doc/manual.html#addon_matchesonscrollbar). 1506* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.11.0...4.12.0). 1507 1508## 4.11.0 (2015-01-09) 1509 1510Unfortunately, 4.10 did not take care of the Firefox scrolling issue entirely. This release adds two more patches to address that. 1511 1512## 4.10.0 (2014-12-29) 1513 1514Emergency single-patch update to 4.9\. Fixes Firefox-specific problem where the cursor could end up behind the horizontal scrollbar. 1515 1516## 4.9.0 (2014-12-23) 1517 1518* Overhauled scroll bar handling. Add pluggable [scrollbar implementations](https://codemirror.net/demo/simplescrollbars.html). 1519* Tweaked behavior for the [completion addons](https://codemirror.net/doc/manual.html#addon_show-hint) to not take text after cursor into account. 1520* Two new optional features in the [merge addon](https://codemirror.net/doc/manual.html#addon_merge): aligning editors, and folding unchanged text. 1521* New modes: [Dart](https://codemirror.net/mode/dart/index.html), [EBNF](https://codemirror.net/mode/ebnf/index.html), [spreadsheet](https://codemirror.net/mode/spreadsheet/index.html), and [Soy](https://codemirror.net/mode/soy/index.html). 1522* New [addon](https://codemirror.net/demo/panel.html) to show persistent panels below/above an editor. 1523* New themes: [zenburn](https://codemirror.net/demo/theme.html#zenburn) and [tomorrow night bright](https://codemirror.net/demo/theme.html#tomorrow-night-bright). 1524* Allow ctrl-click to clear existing cursors. 1525* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.8.0...4.9.0). 1526 1527## 4.8.0 (2014-11-22) 1528 1529* Built-in support for [multi-stroke key bindings](https://codemirror.net/doc/manual.html#normalizeKeyMap). 1530* New method: [`getLineTokens`](https://codemirror.net/doc/manual.html#getLineTokens). 1531* New modes: [dockerfile](https://codemirror.net/mode/dockerfile/index.html), [IDL](https://codemirror.net/mode/idl/index.html), [Objective C](https://codemirror.net/mode/clike/index.html) (crude). 1532* Support styling of gutter backgrounds, allow `"gutter"` styles in [`addLineClass`](https://codemirror.net/doc/manual.html#addLineClass). 1533* Many improvements to the [Vim mode](https://codemirror.net/demo/vim.html), rewritten visual mode. 1534* Improvements to modes: [gfm](https://codemirror.net/mode/gfm/index.html) (strikethrough), [SPARQL](https://codemirror.net/mode/sparql/index.html) (version 1.1 support), and [sTeX](https://codemirror.net/mode/stex/index.html) (no more runaway math mode). 1535* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.7.0...4.8.0). 1536 1537## 4.7.0 (2014-10-20) 1538 1539* **Incompatible**: The [lint addon](https://codemirror.net/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. 1540* Improved handling of unicode identifiers in modes for languages that support them. 1541* More mode improvements: [CoffeeScript](https://codemirror.net/mode/coffeescript/index.html) (indentation), [Verilog](https://codemirror.net/mode/verilog/index.html) (indentation), [Scala](https://codemirror.net/mode/clike/index.html) (indentation, triple-quoted strings), and [PHP](https://codemirror.net/mode/php/index.html) (interpolated variables in heredoc strings). 1542* New modes: [Textile](https://codemirror.net/mode/textile/index.html) and [Tornado templates](https://codemirror.net/mode/tornado/index.html). 1543* Experimental new [way to define modes](https://codemirror.net/demo/simplemode.html). 1544* Improvements to the [Vim bindings](https://codemirror.net/demo/vim.html): Arbitrary insert mode key mappings are now possible, and text objects are supported in visual mode. 1545* The mode [meta-information file](https://codemirror.net/mode/meta.js) now includes information about file extensions, and [helper functions](https://codemirror.net/doc/manual.html#addon_meta) `findModeByMIME` and `findModeByExtension`. 1546* New logo! 1547* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.6.0...4.7.0). 1548 1549## 4.6.0 (2014-09-19) 1550 1551* New mode: [Modelica](https://codemirror.net/mode/modelica/index.html) 1552* New method: [`findWordAt`](https://codemirror.net/doc/manual.html#findWordAt) 1553* Make it easier to [use text background styling](https://codemirror.net/demo/markselection.html) 1554* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.5.0...4.6.0). 1555 1556## 4.5.0 (2014-08-21) 1557 1558* Fix several serious bugs with horizontal scrolling 1559* New mode: [Slim](https://codemirror.net/mode/slim/index.html) 1560* New command: [`goLineLeftSmart`](https://codemirror.net/doc/manual.html#command_goLineLeftSmart) 1561* More fixes and extensions for the [Vim](https://codemirror.net/demo/vim.html) visual block mode 1562* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.4.0...4.5.0). 1563 1564## 4.4.0 (2014-07-21) 1565 1566* **Note:** Some events might now fire in slightly different order (`"change"` is still guaranteed to fire before `"cursorActivity"`) 1567* Nested operations in multiple editors are now synced (complete at same time, reducing DOM reflows) 1568* Visual block mode for [vim](https://codemirror.net/demo/vim.html) (<C-v>) is nearly complete 1569* New mode: [Kotlin](https://codemirror.net/mode/kotlin/index.html) 1570* Better multi-selection paste for text copied from multiple CodeMirror selections 1571* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.3.0...4.4.0). 1572 1573## 4.3.0 (2014-06-23) 1574 1575* Several [vim bindings](https://codemirror.net/demo/vim.html) improvements: search and exCommand history, global flag for `:substitute`, `:global` command. 1576* Allow hiding the cursor by setting [`cursorBlinkRate`](https://codemirror.net/doc/manual.html#option_cursorBlinkRate) to a negative value. 1577* Make gutter markers themeable, use this in foldgutter. 1578* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.2.0...4.3.0). 1579 1580## 4.2.0 (2014-05-19) 1581 1582* Fix problem where some modes were broken by the fact that empty tokens were forbidden. 1583* Several fixes to context menu handling. 1584* On undo, scroll _change_, not cursor, into view. 1585* Rewritten [Jade](https://codemirror.net/mode/jade/index.html) mode. 1586* Various improvements to [Shell](https://codemirror.net/mode/shell/index.html) (support for more syntax) and [Python](https://codemirror.net/mode/python/index.html) (better indentation) modes. 1587* New mode: [Cypher](https://codemirror.net/mode/cypher/index.html). 1588* New theme: [Neo](https://codemirror.net/demo/theme.html#neo). 1589* Support direct styling options (color, line style, width) in the [rulers](https://codemirror.net/doc/manual.html#addon_rulers) addon. 1590* Recognize per-editor configuration for the [show-hint](https://codemirror.net/doc/manual.html#addon_show-hint) and [foldcode](https://codemirror.net/doc/manual.html#addon_foldcode) addons. 1591* More intelligent scanning for existing close tags in [closetag](https://codemirror.net/doc/manual.html#addon_closetag) addon. 1592* In the [Vim bindings](https://codemirror.net/demo/vim.html): Fix bracket matching, support case conversion in visual mode, visual paste, append action. 1593* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.1.0...4.2.0). 1594 1595## 4.1.0 (2014-04-22) 1596 1597* _Slightly incompatible_: The [`"cursorActivity"`](https://codemirror.net/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). 1598* New command: [`insertSoftTab`](https://codemirror.net/doc/manual.html#command_insertSoftTab). 1599* New mode: [Django](https://codemirror.net/mode/django/index.html). 1600* Improved modes: [Verilog](https://codemirror.net/mode/verilog/index.html) (rewritten), [Jinja2](https://codemirror.net/mode/jinja2/index.html), [Haxe](https://codemirror.net/mode/haxe/index.html), [PHP](https://codemirror.net/mode/php/index.html) (string interpolation highlighted), [JavaScript](https://codemirror.net/mode/javascript/index.html) (indentation of trailing else, template strings), [LiveScript](https://codemirror.net/mode/livescript/index.html) (multi-line strings). 1601* Many small issues from the 3.x→4.x transition were found and fixed. 1602* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.0.3...4.1.0). 1603 1604## 3.24.0 (2014-04-22) 1605 1606Merges 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. 1607 1608## 3.23.0 (2014-03-20) 1609 1610* In the [XML mode](https://codemirror.net/mode/xml/index.html), add `brackets` style to angle brackets, fix case-sensitivity of tags for HTML. 1611* New mode: [Dylan](https://codemirror.net/mode/dylan/index.html). 1612* Many improvements to the [Vim bindings](https://codemirror.net/demo/vim.html). 1613 1614## 3.22.0 (2014-02-21) 1615 1616* Adds the [`findMarks`](https://codemirror.net/doc/manual.html#findMarks) method. 1617* New addons: [rulers](https://codemirror.net/doc/manual.html#addon_rulers), markdown-fold, yaml-lint. 1618* New theme: [mdn-like](https://codemirror.net/demo/theme.html#mdn-like). 1619* New mode: [Solr](https://codemirror.net/mode/solr/index.html). 1620* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.21.0...3.22.0). 1621 1622## 3.21.0 (2014-01-16) 1623 1624* Auto-indenting a block will no longer add trailing whitespace to blank lines. 1625* Marking text has a new option [`clearWhenEmpty`](https://codemirror.net/doc/manual.html#markText) to control auto-removal. 1626* Several bugfixes in the handling of bidirectional text. 1627* The [XML](https://codemirror.net/mode/xml/index.html) and [CSS](https://codemirror.net/mode/css/index.html) modes were largely rewritten. [LESS](https://codemirror.net/mode/css/less.html) support was added to the CSS mode. 1628* The OCaml mode was moved to an [mllike](https://codemirror.net/mode/mllike/index.html) mode, F# support added. 1629* Make it possible to fetch multiple applicable helper values with [`getHelpers`](https://codemirror.net/doc/manual.html#getHelpers), and to register helpers matched on predicates with [`registerGlobalHelper`](https://codemirror.net/doc/manual.html#registerGlobalHelper). 1630* New theme [pastel-on-dark](https://codemirror.net/demo/theme.html#pastel-on-dark). 1631* Better ECMAScript 6 support in [JavaScript](https://codemirror.net/mode/javascript/index.html) mode. 1632* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.20.0...3.21.0). 1633 1634## 3.20.0 (2013-11-21) 1635 1636* New modes: [Julia](https://codemirror.net/mode/julia/index.html) and [PEG.js](https://codemirror.net/mode/pegjs/index.html). 1637* Support ECMAScript 6 in the [JavaScript mode](https://codemirror.net/mode/javascript/index.html). 1638* Improved indentation for the [CoffeeScript mode](https://codemirror.net/mode/coffeescript/index.html). 1639* Make non-printable-character representation [configurable](https://codemirror.net/doc/manual.html#option_specialChars). 1640* Add ‘notification’ functionality to [dialog](https://codemirror.net/doc/manual.html#addon_dialog) addon. 1641* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.19.0...3.20.0). 1642 1643## 3.19.0 (2013-10-21) 1644 1645* New modes: [Eiffel](https://codemirror.net/mode/eiffel/index.html), [Gherkin](https://codemirror.net/mode/gherkin/index.html), [MSSQL dialect](https://codemirror.net/mode/sql/?mime=text/x-mssql). 1646* New addons: [hardwrap](https://codemirror.net/doc/manual.html#addon_hardwrap), [sql-hint](https://codemirror.net/doc/manual.html#addon_sql-hint). 1647* New theme: [MBO](https://codemirror.net/demo/theme.html#mbo). 1648* Add [support](https://codemirror.net/doc/manual.html#token_style_line) for line-level styling from mode tokenizers. 1649* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.18.0...3.19.0). 1650 1651## 3.18.0 (2013-09-23) 1652 1653Emergency release to fix a problem in 3.17 where `.setOption("lineNumbers", false)` would raise an error. 1654 1655## 3.17.0 (2013-09-23) 1656 1657* New modes: [Fortran](https://codemirror.net/mode/fortran/index.html), [Octave](https://codemirror.net/mode/octave/index.html) (Matlab), [TOML](https://codemirror.net/mode/toml/index.html), and [DTD](https://codemirror.net/mode/dtd/index.html). 1658* New addons: [`css-lint`](https://codemirror.net/addon/lint/css-lint.js), [`css-hint`](https://codemirror.net/doc/manual.html#addon_css-hint). 1659* Improve resilience to CSS 'frameworks' that globally mess up `box-sizing`. 1660* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.16.0...3.17.0). 1661 1662## 3.16.0 (2013-08-21) 1663 1664* The whole codebase is now under a single [license](https://codemirror.net/LICENSE) file. 1665* The project page was overhauled and redesigned. 1666* New themes: [Paraiso](https://codemirror.net/demo/theme.html#paraiso-dark) ([light](https://codemirror.net/demo/theme.html#paraiso-light)), [The Matrix](https://codemirror.net/demo/theme.html#the-matrix). 1667* Improved interaction between themes and [active-line](https://codemirror.net/doc/manual.html#addon_active-line)/[matchbrackets](https://codemirror.net/doc/manual.html#addon_matchbrackets) addons. 1668* New [folding](https://codemirror.net/doc/manual.html#addon_foldcode) function `CodeMirror.fold.comment`. 1669* Added [fullscreen](https://codemirror.net/doc/manual.html#addon_fullscreen) addon. 1670* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.15.0...3.16.0). 1671 1672## 3.15.0 (2013-07-29) 1673 1674* New modes: [Jade](https://codemirror.net/mode/jade/index.html), [Nginx](https://codemirror.net/mode/nginx/index.html). 1675* New addons: [Tern](https://codemirror.net/demo/tern.html), [matchtags](https://codemirror.net/doc/manual.html#addon_matchtags), and [foldgutter](https://codemirror.net/doc/manual.html#addon_foldgutter). 1676* Introduced [_helper_](https://codemirror.net/doc/manual.html#getHelper) concept ([context](https://groups.google.com/forum/#!msg/codemirror/cOc0xvUUEUU/nLrX1-qnidgJ)). 1677* New method: [`getModeAt`](https://codemirror.net/doc/manual.html#getModeAt). 1678* New themes: base16 [dark](https://codemirror.net/demo/theme.html#base16-dark)/[light](https://codemirror.net/demo/theme.html#base16-light), 3024 [dark](https://codemirror.net/demo/theme.html#3024-night)/[light](https://codemirror.net/demo/theme.html#3024-day), [tomorrow-night](https://codemirror.net/demo/theme.html#tomorrow-night-eighties). 1679* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.14.0...3.15.0). 1680 1681## 3.14.0 (2013-06-20) 1682 1683* New addons: [trailing space highlight](https://codemirror.net/doc/manual.html#addon_trailingspace), [XML completion](https://codemirror.net/doc/manual.html#addon_xml-hint) (rewritten), and [diff merging](https://codemirror.net/doc/manual.html#addon_merge). 1684* [`markText`](https://codemirror.net/doc/manual.html#markText) and [`addLineWidget`](https://codemirror.net/doc/manual.html#addLineWidget) now take a `handleMouseEvents` option. 1685* New methods: [`lineAtHeight`](https://codemirror.net/doc/manual.html#lineAtHeight), [`getTokenTypeAt`](https://codemirror.net/doc/manual.html#getTokenTypeAt). 1686* More precise cleanness-tracking using [`changeGeneration`](https://codemirror.net/doc/manual.html#changeGeneration) and [`isClean`](https://codemirror.net/doc/manual.html#isClean). 1687* Many extensions to [Emacs](https://codemirror.net/demo/emacs.html) mode (prefixes, more navigation units, and more). 1688* New events [`"keyHandled"`](https://codemirror.net/doc/manual.html#event_keyHandled) and [`"inputRead"`](https://codemirror.net/doc/manual.html#event_inputRead). 1689* Various improvements to [Ruby](https://codemirror.net/mode/ruby/index.html), [Smarty](https://codemirror.net/mode/smarty/index.html), [SQL](https://codemirror.net/mode/sql/index.html), and [Vim](https://codemirror.net/demo/vim.html) modes. 1690* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.13.0...3.14.0). 1691 1692## 3.13.0 (2013-05-20) 1693 1694* New modes: [COBOL](https://codemirror.net/mode/cobol/index.html) and [HAML](https://codemirror.net/mode/haml/index.html). 1695* New options: [`cursorScrollMargin`](https://codemirror.net/doc/manual.html#option_cursorScrollMargin) and [`coverGutterNextToScrollbar`](https://codemirror.net/doc/manual.html#option_coverGutterNextToScrollbar). 1696* New addon: [commenting](https://codemirror.net/doc/manual.html#addon_comment). 1697* More features added to the [Vim keymap](https://codemirror.net/demo/vim.html). 1698* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.12...3.13.0). 1699 1700## 3.12.0 (2013-04-19) 1701 1702* New mode: [GNU assembler](https://codemirror.net/mode/gas/index.html). 1703* New options: [`maxHighlightLength`](https://codemirror.net/doc/manual.html#option_maxHighlightLength) and [`historyEventDelay`](https://codemirror.net/doc/manual.html#option_historyEventDelay). 1704* Added [`addToHistory`](https://codemirror.net/doc/manual.html#mark_addToHistory) option for `markText`. 1705* Various fixes to JavaScript tokenization and indentation corner cases. 1706* Further improvements to the vim mode. 1707* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.11...v3.12). 1708 1709## 3.11.0 (2013-03-20) 1710 1711* **Removed code:** `collapserange`, `formatting`, and `simple-hint` addons. `plsql` and `mysql` modes (use [`sql`](https://codemirror.net/mode/sql/index.html) mode). 1712* **Moved code:** the range-finding functions for folding now have [their own files](https://codemirror.net/addon/fold/). 1713* **Changed interface:** the [`continuecomment`](https://codemirror.net/doc/manual.html#addon_continuecomment) addon now exposes an option, rather than a command. 1714* New modes: [SCSS](https://codemirror.net/mode/css/scss.html), [Tcl](https://codemirror.net/mode/tcl/index.html), [LiveScript](https://codemirror.net/mode/livescript/index.html), and [mIRC](https://codemirror.net/mode/mirc/index.html). 1715* New addons: [`placeholder`](https://codemirror.net/demo/placeholder.html), [HTML completion](https://codemirror.net/demo/html5complete.html). 1716* New methods: [`hasFocus`](https://codemirror.net/doc/manual.html#hasFocus), [`defaultCharWidth`](https://codemirror.net/doc/manual.html#defaultCharWidth). 1717* New events: [`beforeCursorEnter`](https://codemirror.net/doc/manual.html#event_beforeCursorEnter), [`renderLine`](https://codemirror.net/doc/manual.html#event_renderLine). 1718* Many improvements to the [`show-hint`](https://codemirror.net/doc/manual.html#addon_show-hint) completion dialog addon. 1719* Tweak behavior of by-word cursor motion. 1720* Further improvements to the [vim mode](https://codemirror.net/demo/vim.html). 1721* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.1...v3.11). 1722 1723## 3.02.0 (2013-01-25) 1724 1725Single-bugfix release. Fixes a problem that prevents CodeMirror instances from being garbage-collected after they become unused. 1726 1727## 3.01.0 (2013-01-21) 1728 1729* Move all add-ons into an organized directory structure under [`/addon`](https://codemirror.net/addon/). **You might have to adjust your paths.** 1730* New modes: [D](https://codemirror.net/mode/d/index.html), [Sass](https://codemirror.net/mode/sass/index.html), [APL](https://codemirror.net/mode/apl/index.html), [SQL](https://codemirror.net/mode/sql/index.html) (configurable), and [Asterisk](https://codemirror.net/mode/asterisk/index.html). 1731* Several bugfixes in right-to-left text support. 1732* Add [`rtlMoveVisually`](https://codemirror.net/doc/manual.html#option_rtlMoveVisually) option. 1733* Improvements to vim keymap. 1734* Add built-in (lightweight) [overlay mode](https://codemirror.net/doc/manual.html#addOverlay) support. 1735* Support `showIfHidden` option for [line widgets](https://codemirror.net/doc/manual.html#addLineWidget). 1736* Add simple [Python hinter](https://codemirror.net/doc/manual.html#addon_python-hint). 1737* Bring back the [`fixedGutter`](https://codemirror.net/doc/manual.html#option_fixedGutter) option. 1738* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.0...v3.01). 1739 1740## 3.1.0 (2013-02-21) 1741 1742* **Incompatible:** key handlers may now _return_, rather than _throw_ `CodeMirror.Pass` to signal they didn't handle the key. 1743* Make documents a [first-class construct](https://codemirror.net/doc/manual.html#api_doc), support split views and subviews. 1744* Add a [new module](https://codemirror.net/doc/manual.html#addon_show-hint) for showing completion hints. Deprecate `simple-hint.js`. 1745* Extend [htmlmixed mode](https://codemirror.net/mode/htmlmixed/index.html) to allow custom handling of script types. 1746* Support an `insertLeft` option to [`setBookmark`](https://codemirror.net/doc/manual.html#setBookmark). 1747* Add an [`eachLine`](https://codemirror.net/doc/manual.html#eachLine) method to iterate over a document. 1748* New addon modules: [selection marking](https://codemirror.net/demo/markselection.html), [linting](https://codemirror.net/demo/lint.html), and [automatic bracket closing](https://codemirror.net/demo/closebrackets.html). 1749* Add [`"beforeChange"`](https://codemirror.net/doc/manual.html#event_beforeChange) and [`"beforeSelectionChange"`](https://codemirror.net/doc/manual.html#event_beforeSelectionChange) events. 1750* Add [`"hide"`](https://codemirror.net/doc/manual.html#event_hide) and [`"unhide"`](https://codemirror.net/doc/manual.html#event_unhide) events to marked ranges. 1751* Fix [`coordsChar`](https://codemirror.net/doc/manual.html#coordsChar)'s interpretation of its argument to match the documentation. 1752* New modes: [Turtle](https://codemirror.net/mode/turtle/index.html) and [Q](https://codemirror.net/mode/q/index.html). 1753* Further improvements to the [vim mode](https://codemirror.net/demo/vim.html). 1754* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.01...v3.1). 1755 1756## 3.0.0 (2012-12-10) 1757 1758**New major version**. Only partially backwards-compatible. See the [upgrading guide](https://codemirror.net/doc/upgrade_v3.html) for more information. Changes since release candidate 2: 1759 1760* Rewritten VIM mode. 1761* Fix a few minor scrolling and sizing issues. 1762* Work around Safari segfault when dragging. 1763* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.0rc2...v3.0). 1764 1765## 2.38.0 (2013-01-21) 1766 1767Integrate some bugfixes, enhancements to the vim keymap, and new modes ([D](https://codemirror.net/mode/d/index.html), [Sass](https://codemirror.net/mode/sass/index.html), [APL](https://codemirror.net/mode/apl/index.html)) from the v3 branch. 1768 1769## 2.37.0 (2012-12-20) 1770 1771* New mode: [SQL](https://codemirror.net/mode/sql/index.html) (will replace [plsql](https://codemirror.net/mode/plsql/index.html) and [mysql](https://codemirror.net/mode/mysql/index.html) modes). 1772* Further work on the new VIM mode. 1773* Fix Cmd/Ctrl keys on recent Operas on OS X. 1774* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v2.36...v2.37). 1775 1776## 2.36.0 (2012-11-20) 1777 1778* New mode: [Z80 assembly](https://codemirror.net/mode/z80/index.html). 1779* New theme: [Twilight](https://codemirror.net/demo/theme.html#twilight). 1780* Add command-line compression helper. 1781* Make [`scrollIntoView`](https://codemirror.net/doc/manual.html#scrollIntoView) public. 1782* Add [`defaultTextHeight`](https://codemirror.net/doc/manual.html#defaultTextHeight) method. 1783* Various extensions to the vim keymap. 1784* Make [PHP mode](https://codemirror.net/mode/php/index.html) build on [mixed HTML mode](https://codemirror.net/mode/htmlmixed/index.html). 1785* Add [comment-continuing](https://codemirror.net/doc/manual.html#addon_continuecomment) add-on. 1786* Full [list of patches](https://codemirror.net/https://github.com/codemirror/CodeMirror/compare/v2.35...v2.36). 1787 1788## 2.35.0 (2012-10-22) 1789 1790* New (sub) mode: [TypeScript](https://codemirror.net/mode/javascript/typescript.html). 1791* Don't overwrite (insert key) when pasting. 1792* Fix several bugs in [`markText`](https://codemirror.net/doc/manual.html#markText)/undo interaction. 1793* Better indentation of JavaScript code without semicolons. 1794* Add [`defineInitHook`](https://codemirror.net/doc/manual.html#defineInitHook) function. 1795* Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v2.34...v2.35). 1796 1797## 2.34.0 (2012-09-19) 1798 1799* New mode: [Common Lisp](https://codemirror.net/mode/commonlisp/index.html). 1800* Fix right-click select-all on most browsers. 1801* Change the way highlighting happens: 1802 Saves memory and CPU cycles. 1803 `compareStates` is no longer needed. 1804 `onHighlightComplete` no longer works. 1805* Integrate mode (Markdown, XQuery, CSS, sTex) tests in central testsuite. 1806* Add a [`CodeMirror.version`](https://codemirror.net/doc/manual.html#version) property. 1807* More robust handling of nested modes in [formatting](https://codemirror.net/demo/formatting.html) and [closetag](https://codemirror.net/demo/closetag.html) plug-ins. 1808* Un/redo now preserves [marked text](https://codemirror.net/doc/manual.html#markText) and bookmarks. 1809* [Full list](https://github.com/codemirror/CodeMirror/compare/v2.33...v2.34) of patches. 1810 1811## 2.33.0 (2012-08-23) 1812 1813* New mode: [Sieve](https://codemirror.net/mode/sieve/index.html). 1814* New [`getViewPort`](https://codemirror.net/doc/manual.html#getViewport) and [`onViewportChange`](https://codemirror.net/doc/manual.html#option_onViewportChange) API. 1815* [Configurable](https://codemirror.net/doc/manual.html#option_cursorBlinkRate) cursor blink rate. 1816* Make binding a key to `false` disabling handling (again). 1817* Show non-printing characters as red dots. 1818* More tweaks to the scrolling model. 1819* Expanded testsuite. Basic linter added. 1820* Remove most uses of `innerHTML`. Remove `CodeMirror.htmlEscape`. 1821* [Full list](https://github.com/codemirror/CodeMirror/compare/v2.32...v2.33) of patches. 1822 1823## 2.32.0 (2012-07-23) 1824 1825Emergency fix for a bug where an editor with line wrapping on IE will break when there is _no_ scrollbar. 1826 1827## 2.31.0 (2012-07-20) 1828 1829* New modes: [OCaml](https://codemirror.net/mode/ocaml/index.html), [Haxe](https://codemirror.net/mode/haxe/index.html), and [VB.NET](https://codemirror.net/mode/vb/index.html). 1830* Several fixes to the new scrolling model. 1831* Add a [`setSize`](https://codemirror.net/doc/manual.html#setSize) method for programmatic resizing. 1832* Add [`getHistory`](https://codemirror.net/doc/manual.html#getHistory) and [`setHistory`](https://codemirror.net/doc/manual.html#setHistory) methods. 1833* Allow custom line separator string in [`getValue`](https://codemirror.net/doc/manual.html#getValue) and [`getRange`](https://codemirror.net/doc/manual.html#getRange). 1834* Support double- and triple-click drag, double-clicking whitespace. 1835* And more... [(all patches)](https://github.com/codemirror/CodeMirror/compare/v2.3...v2.31) 1836 1837## 2.30.0 (2012-06-22) 1838 1839* **New scrollbar implementation**. Should flicker less. Changes DOM structure of the editor. 1840* New theme: [vibrant-ink](https://codemirror.net/demo/theme.html#vibrant-ink). 1841* Many extensions to the VIM keymap (including text objects). 1842* Add [mode-multiplexing](https://codemirror.net/demo/multiplex.html) utility script. 1843* Fix bug where right-click paste works in read-only mode. 1844* Add a [`getScrollInfo`](https://codemirror.net/doc/manual.html#getScrollInfo) method. 1845* Lots of other [fixes](https://github.com/codemirror/CodeMirror/compare/v2.25...v2.3). 1846 1847## 2.25.0 (2012-05-23) 1848 1849* New mode: [Erlang](https://codemirror.net/mode/erlang/index.html). 1850* **Remove xmlpure mode** (use [xml.js](https://codemirror.net/mode/xml/index.html)). 1851* Fix line-wrapping in Opera. 1852* Fix X Windows middle-click paste in Chrome. 1853* Fix bug that broke pasting of huge documents. 1854* Fix backspace and tab key repeat in Opera. 1855 1856## 2.24.0 (2012-04-23) 1857 1858* **Drop support for Internet Explorer 6**. 1859* New modes: [Shell](https://codemirror.net/mode/shell/index.html), [Tiki wiki](https://codemirror.net/mode/tiki/index.html), [Pig Latin](https://codemirror.net/mode/pig/index.html). 1860* New themes: [Ambiance](https://codemirror.net/demo/theme.html#ambiance), [Blackboard](https://codemirror.net/demo/theme.html#blackboard). 1861* More control over drag/drop with [`dragDrop`](https://codemirror.net/doc/manual.html#option_dragDrop) and [`onDragEvent`](https://codemirror.net/doc/manual.html#option_onDragEvent) options. 1862* Make HTML mode a bit less pedantic. 1863* Add [`compoundChange`](https://codemirror.net/doc/manual.html#compoundChange) API method. 1864* Several fixes in undo history and line hiding. 1865* Remove (broken) support for `catchall` in key maps, add `nofallthrough` boolean field instead. 1866 1867## 2.23.0 (2012-03-26) 1868 1869* Change **default binding for tab**. Starting in 2.23, these bindings are default: 1870 * Tab: Insert tab character 1871 * Shift-tab: Reset line indentation to default 1872 * Ctrl/Cmd-[: Reduce line indentation (old tab behaviour) 1873 * Ctrl/Cmd-]: Increase line indentation (old shift-tab behaviour) 1874* New modes: [XQuery](https://codemirror.net/mode/xquery/index.html) and [VBScript](https://codemirror.net/mode/vbscript/index.html). 1875* Two new themes: [lesser-dark](https://codemirror.net/mode/less/index.html) and [xq-dark](https://codemirror.net/mode/xquery/index.html). 1876* Differentiate between background and text styles in [`setLineClass`](https://codemirror.net/doc/manual.html#setLineClass). 1877* Fix drag-and-drop in IE9+. 1878* Extend [`charCoords`](https://codemirror.net/doc/manual.html#charCoords) and [`cursorCoords`](https://codemirror.net/doc/manual.html#cursorCoords) with a `mode` argument. 1879* Add [`autofocus`](https://codemirror.net/doc/manual.html#option_autofocus) option. 1880* Add [`findMarksAt`](https://codemirror.net/doc/manual.html#findMarksAt) method. 1881 1882## 2.22.0 (2012-02-27) 1883 1884* Allow [key handlers](https://codemirror.net/doc/manual.html#keymaps) to pass up events, allow binding characters. 1885* Add [`autoClearEmptyLines`](https://codemirror.net/doc/manual.html#option_autoClearEmptyLines) option. 1886* Properly use tab stops when rendering tabs. 1887* Make PHP mode more robust. 1888* Support indentation blocks in [code folder](https://codemirror.net/doc/manual.html#addon_foldcode). 1889* Add a script for [highlighting instances of the selection](https://codemirror.net/doc/manual.html#addon_match-highlighter). 1890* New [.properties](https://codemirror.net/mode/properties/index.html) mode. 1891* Fix many bugs. 1892 1893## 2.21.0 (2012-01-27) 1894 1895* Added [LESS](https://codemirror.net/mode/less/index.html), [MySQL](https://codemirror.net/mode/mysql/index.html), [Go](https://codemirror.net/mode/go/index.html), and [Verilog](https://codemirror.net/mode/verilog/index.html) modes. 1896* Add [`smartIndent`](https://codemirror.net/doc/manual.html#option_smartIndent) option. 1897* Support a cursor in [`readOnly`](https://codemirror.net/doc/manual.html#option_readOnly)-mode. 1898* Support assigning multiple styles to a token. 1899* Use a new approach to drawing the selection. 1900* Add [`scrollTo`](https://codemirror.net/doc/manual.html#scrollTo) method. 1901* Allow undo/redo events to span non-adjacent lines. 1902* Lots and lots of bugfixes. 1903 1904## 2.20.0 (2011-12-20) 1905 1906* Slightly incompatible API changes. Read [this](https://codemirror.net/doc/upgrade_v2.2.html). 1907* New approach to [binding](https://codemirror.net/doc/manual.html#option_extraKeys) keys, support for [custom bindings](https://codemirror.net/doc/manual.html#option_keyMap). 1908* Support for overwrite (insert). 1909* [Custom-width](https://codemirror.net/doc/manual.html#option_tabSize) and [styleable](https://codemirror.net/demo/visibletabs.html) tabs. 1910* Moved more code into [add-on scripts](https://codemirror.net/doc/manual.html#addons). 1911* Support for sane vertical cursor movement in wrapped lines. 1912* More reliable handling of editing [marked text](https://codemirror.net/doc/manual.html#markText). 1913* Add minimal [emacs](https://codemirror.net/demo/emacs.html) and [vim](https://codemirror.net/demo/vim.html) bindings. 1914* Rename `coordsFromIndex` to [`posFromIndex`](https://codemirror.net/doc/manual.html#posFromIndex), add [`indexFromPos`](https://codemirror.net/doc/manual.html#indexFromPos) method. 1915 1916## 2.18.0 (2011-11-21) 1917 1918Fixes `TextMarker.clear`, which is broken in 2.17. 1919 1920## 2.17.0 (2011-11-21) 1921 1922* Add support for [line wrapping](https://codemirror.net/doc/manual.html#option_lineWrapping) and [code folding](https://codemirror.net/doc/manual.html#hideLine). 1923* Add [GitHub-style Markdown](https://codemirror.net/mode/gfm/index.html) mode. 1924* Add [Monokai](https://codemirror.net/theme/monokai.css) and [Rubyblue](https://codemirror.net/theme/rubyblue.css) themes. 1925* Add [`setBookmark`](https://codemirror.net/doc/manual.html#setBookmark) method. 1926* Move some of the demo code into reusable components under [`lib/util`](https://codemirror.net/addon/). 1927* Make screen-coord-finding code faster and more reliable. 1928* Fix drag-and-drop in Firefox. 1929* Improve support for IME. 1930* Speed up content rendering. 1931* Fix browser's built-in search in Webkit. 1932* Make double- and triple-click work in IE. 1933* Various fixes to modes. 1934 1935## 2.16.0 (2011-10-27) 1936 1937* Add [Perl](https://codemirror.net/mode/perl/index.html), [Rust](https://codemirror.net/mode/rust/index.html), [TiddlyWiki](https://codemirror.net/mode/tiddlywiki/index.html), and [Groovy](https://codemirror.net/mode/groovy/index.html) modes. 1938* Dragging text inside the editor now moves, rather than copies. 1939* Add a [`coordsFromIndex`](https://codemirror.net/doc/manual.html#coordsFromIndex) method. 1940* **API change**: `setValue` now no longer clears history. Use [`clearHistory`](https://codemirror.net/doc/manual.html#clearHistory) for that. 1941* **API change**: [`markText`](https://codemirror.net/doc/manual.html#markText) now returns an object with `clear` and `find` methods. Marked text is now more robust when edited. 1942* Fix editing code with tabs in Internet Explorer. 1943 1944## 2.15.0 (2011-09-26) 1945 1946Fix bug that snuck into 2.14: Clicking the character that currently has the cursor didn't re-focus the editor. 1947 1948## 2.14.0 (2011-09-26) 1949 1950* Add [Clojure](https://codemirror.net/mode/clojure/index.html), [Pascal](https://codemirror.net/mode/pascal/index.html), [NTriples](https://codemirror.net/mode/ntriples/index.html), [Jinja2](https://codemirror.net/mode/jinja2/index.html), and [Markdown](https://codemirror.net/mode/markdown/index.html) modes. 1951* Add [Cobalt](https://codemirror.net/theme/cobalt.css) and [Eclipse](https://codemirror.net/theme/eclipse.css) themes. 1952* Add a [`fixedGutter`](https://codemirror.net/doc/manual.html#option_fixedGutter) option. 1953* Fix bug with `setValue` breaking cursor movement. 1954* Make gutter updates much more efficient. 1955* Allow dragging of text out of the editor (on modern browsers). 1956 1957## 2.13.0 (2011-08-23) 1958 1959* Add [Ruby](https://codemirror.net/mode/ruby/index.html), [R](https://codemirror.net/mode/r/index.html), [CoffeeScript](https://codemirror.net/mode/coffeescript/index.html), and [Velocity](https://codemirror.net/mode/velocity/index.html) modes. 1960* Add [`getGutterElement`](https://codemirror.net/doc/manual.html#getGutterElement) to API. 1961* Several fixes to scrolling and positioning. 1962* Add [`smartHome`](https://codemirror.net/doc/manual.html#option_smartHome) option. 1963* Add an experimental [pure XML](https://codemirror.net/mode/xmlpure/index.html) mode. 1964 1965## 2.12.0 (2011-07-25) 1966 1967* Add a [SPARQL](https://codemirror.net/mode/sparql/index.html) mode. 1968* Fix bug with cursor jumping around in an unfocused editor in IE. 1969* Allow key and mouse events to bubble out of the editor. Ignore widget clicks. 1970* Solve cursor flakiness after undo/redo. 1971* Fix block-reindent ignoring the last few lines. 1972* Fix parsing of multi-line attrs in XML mode. 1973* Use `innerHTML` for HTML-escaping. 1974* Some fixes to indentation in C-like mode. 1975* Shrink horiz scrollbars when long lines removed. 1976* Fix width feedback loop bug that caused the width of an inner DIV to shrink. 1977 1978## 2.11.0 (2011-07-04) 1979 1980* Add a [Scheme mode](https://codemirror.net/mode/scheme/index.html). 1981* Add a `replace` method to search cursors, for cursor-preserving replacements. 1982* Make the [C-like mode](https://codemirror.net/mode/clike/index.html) mode more customizable. 1983* Update XML mode to spot mismatched tags. 1984* Add `getStateAfter` API and `compareState` mode API methods for finer-grained mode magic. 1985* Add a `getScrollerElement` API method to manipulate the scrolling DIV. 1986* Fix drag-and-drop for Firefox. 1987* Add a C# configuration for the [C-like mode](https://codemirror.net/mode/clike/index.html). 1988* Add [full-screen editing](https://codemirror.net/demo/fullscreen.html) and [mode-changing](https://codemirror.net/demo/changemode.html) demos. 1989 1990## 2.10.0 (2011-06-07) 1991 1992Add a [theme](https://codemirror.net/doc/manual.html#option_theme) system ([demo](https://codemirror.net/demo/theme.html)). Note that this is not backwards-compatible—you'll have to update your styles and modes! 1993 1994## 2.2.0 (2011-06-07) 1995 1996* Add a [Lua mode](https://codemirror.net/mode/lua/index.html). 1997* Fix reverse-searching for a regexp. 1998* Empty lines can no longer break highlighting. 1999* Rework scrolling model (the outer wrapper no longer does the scrolling). 2000* Solve horizontal jittering on long lines. 2001* Add [runmode.js](https://codemirror.net/demo/runmode.html). 2002* Immediately re-highlight text when typing. 2003* Fix problem with 'sticking' horizontal scrollbar. 2004 2005## 2.1.0 (2011-05-26) 2006 2007* Add a [Smalltalk mode](https://codemirror.net/mode/smalltalk/index.html). 2008* Add a [reStructuredText mode](https://codemirror.net/mode/rst/index.html). 2009* Add a [Python mode](https://codemirror.net/mode/python/index.html). 2010* Add a [PL/SQL mode](https://codemirror.net/mode/plsql/index.html). 2011* `coordsChar` now works 2012* Fix a problem where `onCursorActivity` interfered with `onChange`. 2013* Fix a number of scrolling and mouse-click-position glitches. 2014* Pass information about the changed lines to `onChange`. 2015* Support cmd-up/down on OS X. 2016* Add triple-click line selection. 2017* Don't handle shift when changing the selection through the API. 2018* Support `"nocursor"` mode for `readOnly` option. 2019* Add an `onHighlightComplete` option. 2020* Fix the context menu for Firefox. 2021 2022## 2.0.0 (2011-03-28) 2023 2024CodeMirror 2 is a complete rewrite that's faster, smaller, simpler to use, and less dependent on browser quirks. See [this](https://codemirror.net/doc/internals.html) and [this](http://groups.google.com/group/codemirror/browse_thread/thread/5a8e894024a9f580) for more information. 2025