UNPKG

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