comparison .cms/lib/codemirror/CHANGELOG.md @ 0:78edf6b517a0 draft

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