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>&lt;</code> and <code>&gt;</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.x4.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