Kirki - Version 3.0.12

Version Description

November 7 2017, dev time: 42 hours.

This update significantly reduces the plugin size by removing 3rd-party libraries (particularly CodeMirror) and uses the new controls and scripts that become available in WordPress 4.9. It also changes the file structure and paves the way for a 3.1 rewrite which will be a significant improvement, making Kirki a mostly JS-based app fully integrated in WordPress's JS API and moving away from the PHP API.

  • Fix: WordPress 4.9 compatibility for colorpickers.
  • Fix: WordPress 4.9 compatibility for typography controls.
  • Fix: WordPress 4.9 compatibility for multicolor contols.
  • Fix: WordPress 4.9 compatibility for background contols.
  • Fix: Refactored editor controls to make them compatible with WP 4.9
  • Fix: Remove CodeMirror and use the code control from WordPress Core. Code controls will be displayed as textareas in WP older than 4.9.
  • Fix: Use new DateTimeControl if in WP 4.9+ for date control.
  • Fix: Text field styling.
  • Fix: Switch controls labels.
  • Fix: 'choices' arguments were not getting passed-on due to is_customize_preview checks in latest WP Versions.
  • Fix: Overriding Kirki translations from a theme when Kirki is embedded.
  • New: Replaced select2 with selectWoo.
  • New: Added a Kirki_Control_Base class and abstracted controls.
  • New: Better file structure.
  • New: Compiled JS & CSS files.
  • New: Added ability to manually enter numeric values in slider controls.
  • Tweak: Improved styling of color-palette controls.
  • Tweak: Radio-Image controls now display images inline (using flexbox).
  • Tweak: Removed the reset switch from slider controls & improved their styling.
  • Tweak: Improved typography controls styling for text-align.
  • Removed: Reset module.
Download this release

Release Info

Developer aristath
Plugin Icon 128x128 Kirki
Version 3.0.12
Comparing to
See all releases

Code changes from version 3.0.11 to 3.0.12

Files changed (373) hide show
  1. assets/js/dynamic-control.js +0 -215
  2. assets/vendor/codemirror/AUTHORS +0 -647
  3. assets/vendor/codemirror/CHANGELOG.md +0 -1094
  4. assets/vendor/codemirror/CONTRIBUTING.md +0 -92
  5. assets/vendor/codemirror/LICENSE +0 -21
  6. assets/vendor/codemirror/README.md +0 -34
  7. assets/vendor/codemirror/addon/comment/comment.js +0 -213
  8. assets/vendor/codemirror/addon/comment/continuecomment.js +0 -85
  9. assets/vendor/codemirror/addon/dialog/dialog.css +0 -32
  10. assets/vendor/codemirror/addon/dialog/dialog.js +0 -157
  11. assets/vendor/codemirror/addon/display/autorefresh.js +0 -47
  12. assets/vendor/codemirror/addon/display/fullscreen.css +0 -6
  13. assets/vendor/codemirror/addon/display/fullscreen.js +0 -41
  14. assets/vendor/codemirror/addon/display/panel.js +0 -123
  15. assets/vendor/codemirror/addon/display/placeholder.js +0 -62
  16. assets/vendor/codemirror/addon/display/rulers.js +0 -51
  17. assets/vendor/codemirror/addon/edit/closebrackets.js +0 -202
  18. assets/vendor/codemirror/addon/edit/closetag.js +0 -169
  19. assets/vendor/codemirror/addon/edit/continuelist.js +0 -51
  20. assets/vendor/codemirror/addon/edit/matchbrackets.js +0 -122
  21. assets/vendor/codemirror/addon/edit/matchtags.js +0 -66
  22. assets/vendor/codemirror/addon/edit/trailingspace.js +0 -27
  23. assets/vendor/codemirror/addon/fold/brace-fold.js +0 -105
  24. assets/vendor/codemirror/addon/fold/comment-fold.js +0 -59
  25. assets/vendor/codemirror/addon/fold/foldcode.js +0 -150
  26. assets/vendor/codemirror/addon/fold/foldgutter.css +0 -20
  27. assets/vendor/codemirror/addon/fold/foldgutter.js +0 -146
  28. assets/vendor/codemirror/addon/fold/indent-fold.js +0 -48
  29. assets/vendor/codemirror/addon/fold/markdown-fold.js +0 -49
  30. assets/vendor/codemirror/addon/fold/xml-fold.js +0 -182
  31. assets/vendor/codemirror/addon/hint/anyword-hint.js +0 -41
  32. assets/vendor/codemirror/addon/hint/css-hint.js +0 -60
  33. assets/vendor/codemirror/addon/hint/html-hint.js +0 -348
  34. assets/vendor/codemirror/addon/hint/javascript-hint.js +0 -155
  35. assets/vendor/codemirror/addon/hint/show-hint.css +0 -36
  36. assets/vendor/codemirror/addon/hint/show-hint.js +0 -438
  37. assets/vendor/codemirror/addon/hint/sql-hint.js +0 -287
  38. assets/vendor/codemirror/addon/hint/xml-hint.js +0 -110
  39. assets/vendor/codemirror/addon/lint/coffeescript-lint.js +0 -41
  40. assets/vendor/codemirror/addon/lint/css-lint.js +0 -35
  41. assets/vendor/codemirror/addon/lint/html-lint.js +0 -46
  42. assets/vendor/codemirror/addon/lint/javascript-lint.js +0 -136
  43. assets/vendor/codemirror/addon/lint/json-lint.js +0 -31
  44. assets/vendor/codemirror/addon/lint/lint.css +0 -73
  45. assets/vendor/codemirror/addon/lint/lint.js +0 -244
  46. assets/vendor/codemirror/addon/lint/yaml-lint.js +0 -35
  47. assets/vendor/codemirror/addon/merge/merge.css +0 -113
  48. assets/vendor/codemirror/addon/merge/merge.js +0 -997
  49. assets/vendor/codemirror/addon/mode/loadmode.js +0 -64
  50. assets/vendor/codemirror/addon/mode/multiplex.js +0 -123
  51. assets/vendor/codemirror/addon/mode/multiplex_test.js +0 -33
  52. assets/vendor/codemirror/addon/mode/overlay.js +0 -90
  53. assets/vendor/codemirror/addon/mode/simple.js +0 -213
  54. assets/vendor/codemirror/addon/runmode/colorize.js +0 -40
  55. assets/vendor/codemirror/addon/runmode/runmode-standalone.js +0 -157
  56. assets/vendor/codemirror/addon/runmode/runmode.js +0 -72
  57. assets/vendor/codemirror/addon/runmode/runmode.node.js +0 -179
  58. assets/vendor/codemirror/addon/scroll/annotatescrollbar.js +0 -122
  59. assets/vendor/codemirror/addon/scroll/scrollpastend.js +0 -48
  60. assets/vendor/codemirror/addon/scroll/simplescrollbars.css +0 -66
  61. assets/vendor/codemirror/addon/scroll/simplescrollbars.js +0 -152
  62. assets/vendor/codemirror/addon/search/jump-to-line.js +0 -49
  63. assets/vendor/codemirror/addon/search/match-highlighter.js +0 -165
  64. assets/vendor/codemirror/addon/search/matchesonscrollbar.css +0 -8
  65. assets/vendor/codemirror/addon/search/matchesonscrollbar.js +0 -97
  66. assets/vendor/codemirror/addon/search/search.js +0 -252
  67. assets/vendor/codemirror/addon/search/searchcursor.js +0 -189
  68. assets/vendor/codemirror/addon/selection/active-line.js +0 -72
  69. assets/vendor/codemirror/addon/selection/mark-selection.js +0 -119
  70. assets/vendor/codemirror/addon/selection/selection-pointer.js +0 -98
  71. assets/vendor/codemirror/addon/tern/tern.css +0 -87
  72. assets/vendor/codemirror/addon/tern/tern.js +0 -701
  73. assets/vendor/codemirror/addon/tern/worker.js +0 -44
  74. assets/vendor/codemirror/addon/wrap/hardwrap.js +0 -144
  75. assets/vendor/codemirror/bin/authors.sh +0 -6
  76. assets/vendor/codemirror/bin/compress +0 -92
  77. assets/vendor/codemirror/bin/lint +0 -3
  78. assets/vendor/codemirror/bin/release +0 -38
  79. assets/vendor/codemirror/bin/source-highlight +0 -48
  80. assets/vendor/codemirror/bin/upload-release.js +0 -35
  81. assets/vendor/codemirror/keymap/emacs.js +0 -416
  82. assets/vendor/codemirror/keymap/sublime.js +0 -596
  83. assets/vendor/codemirror/keymap/vim.js +0 -5117
  84. assets/vendor/codemirror/lib/codemirror.css +0 -340
  85. assets/vendor/codemirror/lib/codemirror.js +0 -9331
  86. assets/vendor/codemirror/mode/clike/clike.js +0 -789
  87. assets/vendor/codemirror/mode/clike/index.html +0 -360
  88. assets/vendor/codemirror/mode/clike/scala.html +0 -767
  89. assets/vendor/codemirror/mode/clike/test.js +0 -59
  90. assets/vendor/codemirror/mode/clojure/clojure.js +0 -306
  91. assets/vendor/codemirror/mode/coffeescript/coffeescript.js +0 -355
  92. assets/vendor/codemirror/mode/coffeescript/index.html +0 -740
  93. assets/vendor/codemirror/mode/css/css.js +0 -831
  94. assets/vendor/codemirror/mode/css/gss.html +0 -103
  95. assets/vendor/codemirror/mode/css/gss_test.js +0 -17
  96. assets/vendor/codemirror/mode/css/index.html +0 -75
  97. assets/vendor/codemirror/mode/css/less.html +0 -152
  98. assets/vendor/codemirror/mode/css/less_test.js +0 -54
  99. assets/vendor/codemirror/mode/css/scss.html +0 -157
  100. assets/vendor/codemirror/mode/css/scss_test.js +0 -110
  101. assets/vendor/codemirror/mode/css/test.js +0 -200
  102. assets/vendor/codemirror/mode/haml/haml.js +0 -161
  103. assets/vendor/codemirror/mode/haml/index.html +0 -79
  104. assets/vendor/codemirror/mode/haml/test.js +0 -97
  105. assets/vendor/codemirror/mode/htmlembedded/htmlembedded.js +0 -28
  106. assets/vendor/codemirror/mode/htmlembedded/index.html +0 -60
  107. assets/vendor/codemirror/mode/htmlmixed/htmlmixed.js +0 -152
  108. assets/vendor/codemirror/mode/htmlmixed/index.html +0 -100
  109. assets/vendor/codemirror/mode/index.html +0 -165
  110. assets/vendor/codemirror/mode/javascript/index.html +0 -114
  111. assets/vendor/codemirror/mode/javascript/javascript.js +0 -805
  112. assets/vendor/codemirror/mode/javascript/json-ld.html +0 -72
  113. assets/vendor/codemirror/mode/javascript/test.js +0 -335
  114. assets/vendor/codemirror/mode/javascript/typescript.html +0 -61
  115. assets/vendor/codemirror/mode/markdown/index.html +0 -361
  116. assets/vendor/codemirror/mode/markdown/markdown.js +0 -795
  117. assets/vendor/codemirror/mode/markdown/test.js +0 -989
  118. assets/vendor/codemirror/mode/mathematica/index.html +0 -72
  119. assets/vendor/codemirror/mode/meta.js +0 -214
  120. assets/vendor/codemirror/mode/php/index.html +0 -64
  121. assets/vendor/codemirror/mode/php/php.js +0 -234
  122. assets/vendor/codemirror/mode/php/test.js +0 -154
  123. assets/vendor/codemirror/mode/sass/index.html +0 -68
  124. assets/vendor/codemirror/mode/sass/sass.js +0 -454
  125. assets/vendor/codemirror/mode/smarty/index.html +0 -138
  126. assets/vendor/codemirror/mode/smarty/smarty.js +0 -225
  127. assets/vendor/codemirror/mode/sql/index.html +0 -86
  128. assets/vendor/codemirror/mode/sql/sql.js +0 -456
  129. assets/vendor/codemirror/mode/stylus/index.html +0 -106
  130. assets/vendor/codemirror/mode/stylus/stylus.js +0 -769
  131. assets/vendor/codemirror/mode/textile/index.html +0 -191
  132. assets/vendor/codemirror/mode/textile/test.js +0 -417
  133. assets/vendor/codemirror/mode/textile/textile.js +0 -469
  134. assets/vendor/codemirror/mode/twig/index.html +0 -45
  135. assets/vendor/codemirror/mode/twig/twig.js +0 -141
  136. assets/vendor/codemirror/mode/xml/index.html +0 -61
  137. assets/vendor/codemirror/mode/xml/test.js +0 -51
  138. assets/vendor/codemirror/mode/xml/xml.js +0 -394
  139. assets/vendor/codemirror/mode/yaml/index.html +0 -80
  140. assets/vendor/codemirror/mode/yaml/yaml.js +0 -118
  141. assets/vendor/codemirror/theme/elegant.css +0 -13
  142. assets/vendor/codemirror/theme/material.css +0 -53
  143. assets/vendor/codemirror/theme/monokai.css +0 -36
  144. {controls/fontawesome → assets/vendor/fontawesome/css}/font-awesome.css +2 -1
  145. {controls/fontawesome → assets/vendor/fontawesome/css}/font-awesome.min.css +0 -0
  146. {controls → assets/vendor}/fontawesome/fontawesome.json +0 -0
  147. assets/vendor/fontawesome/fonts/FontAwesome.otf +0 -0
  148. assets/vendor/fontawesome/fonts/fontawesome-webfont.eot +0 -0
  149. assets/vendor/fontawesome/fonts/fontawesome-webfont.svg +2671 -0
  150. assets/vendor/fontawesome/fonts/fontawesome-webfont.ttf +0 -0
  151. {controls/fontawesome → assets/vendor/fontawesome/fonts}/fontawesome-webfont.woff +0 -0
  152. {controls/fontawesome → assets/vendor/fontawesome/fonts}/fontawesome-webfont.woff2 +0 -0
  153. assets/vendor/select2/js/i18n/ar.js +0 -3
  154. assets/vendor/select2/js/i18n/da.js +0 -3
  155. assets/vendor/select2/js/i18n/de.js +0 -3
  156. assets/vendor/select2/js/i18n/fi.js +0 -3
  157. assets/vendor/select2/js/i18n/gl.js +0 -3
  158. assets/vendor/select2/js/i18n/hu.js +0 -3
  159. assets/vendor/select2/js/i18n/th.js +0 -3
  160. assets/vendor/select2/js/i18n/tr.js +0 -3
  161. assets/vendor/select2/js/select2.full.min.js +0 -3
  162. assets/vendor/select2/js/select2.min.js +0 -3
  163. assets/vendor/{select2 → selectWoo}/css/select2.css +4 -4
  164. assets/vendor/{select2 → selectWoo}/css/select2.min.css +1 -1
  165. assets/vendor/selectWoo/css/selectWoo.css +484 -0
  166. assets/vendor/selectWoo/css/selectWoo.min.css +1 -0
  167. assets/vendor/selectWoo/js/i18n/ar.js +3 -0
  168. assets/vendor/{select2 → selectWoo}/js/i18n/az.js +1 -1
  169. assets/vendor/{select2 → selectWoo}/js/i18n/bg.js +1 -1
  170. assets/vendor/{select2 → selectWoo}/js/i18n/ca.js +1 -1
  171. assets/vendor/{select2 → selectWoo}/js/i18n/cs.js +1 -1
  172. assets/vendor/selectWoo/js/i18n/da.js +3 -0
  173. assets/vendor/selectWoo/js/i18n/de.js +3 -0
  174. assets/vendor/{select2 → selectWoo}/js/i18n/el.js +1 -1
  175. assets/vendor/{select2 → selectWoo}/js/i18n/en.js +1 -1
  176. assets/vendor/{select2 → selectWoo}/js/i18n/es.js +1 -1
  177. assets/vendor/{select2 → selectWoo}/js/i18n/et.js +1 -1
  178. assets/vendor/{select2 → selectWoo}/js/i18n/eu.js +1 -1
  179. assets/vendor/{select2 → selectWoo}/js/i18n/fa.js +1 -1
  180. assets/vendor/selectWoo/js/i18n/fi.js +3 -0
  181. assets/vendor/{select2 → selectWoo}/js/i18n/fr.js +1 -1
  182. assets/vendor/selectWoo/js/i18n/gl.js +3 -0
  183. assets/vendor/{select2 → selectWoo}/js/i18n/he.js +1 -1
  184. assets/vendor/{select2 → selectWoo}/js/i18n/hi.js +1 -1
  185. assets/vendor/{select2 → selectWoo}/js/i18n/hr.js +1 -1
  186. assets/vendor/selectWoo/js/i18n/hu.js +3 -0
  187. assets/vendor/selectWoo/js/i18n/hy.js +3 -0
  188. assets/vendor/{select2 → selectWoo}/js/i18n/id.js +1 -1
  189. assets/vendor/{select2 → selectWoo}/js/i18n/is.js +1 -1
  190. assets/vendor/{select2 → selectWoo}/js/i18n/it.js +1 -1
  191. assets/vendor/{select2 → selectWoo}/js/i18n/ja.js +1 -1
  192. assets/vendor/{select2 → selectWoo}/js/i18n/km.js +1 -1
  193. assets/vendor/{select2 → selectWoo}/js/i18n/ko.js +1 -1
  194. assets/vendor/{select2 → selectWoo}/js/i18n/lt.js +1 -1
  195. assets/vendor/{select2 → selectWoo}/js/i18n/lv.js +1 -1
  196. assets/vendor/{select2 → selectWoo}/js/i18n/mk.js +1 -1
  197. assets/vendor/{select2 → selectWoo}/js/i18n/ms.js +1 -1
  198. assets/vendor/{select2 → selectWoo}/js/i18n/nb.js +1 -1
  199. assets/vendor/{select2 → selectWoo}/js/i18n/nl.js +1 -1
  200. assets/vendor/{select2 → selectWoo}/js/i18n/pl.js +1 -1
  201. assets/vendor/{select2 → selectWoo}/js/i18n/pt-BR.js +1 -1
  202. assets/vendor/{select2 → selectWoo}/js/i18n/pt.js +2 -2
  203. assets/vendor/{select2 → selectWoo}/js/i18n/ro.js +1 -1
  204. assets/vendor/{select2 → selectWoo}/js/i18n/ru.js +1 -1
  205. assets/vendor/{select2 → selectWoo}/js/i18n/sk.js +1 -1
  206. assets/vendor/selectWoo/js/i18n/sl.js +3 -0
  207. assets/vendor/{select2 → selectWoo}/js/i18n/sr-Cyrl.js +1 -1
  208. assets/vendor/{select2 → selectWoo}/js/i18n/sr.js +1 -1
  209. assets/vendor/{select2 → selectWoo}/js/i18n/sv.js +1 -1
  210. assets/vendor/selectWoo/js/i18n/th.js +3 -0
  211. assets/vendor/selectWoo/js/i18n/tr.js +3 -0
  212. assets/vendor/{select2 → selectWoo}/js/i18n/uk.js +1 -1
  213. assets/vendor/{select2 → selectWoo}/js/i18n/vi.js +1 -1
  214. assets/vendor/{select2 → selectWoo}/js/i18n/zh-CN.js +1 -1
  215. assets/vendor/{select2 → selectWoo}/js/i18n/zh-TW.js +1 -1
  216. assets/vendor/{select2 → selectWoo}/js/select2.full.js +232 -115
  217. assets/vendor/selectWoo/js/select2.full.min.js +1 -0
  218. assets/vendor/{select2 → selectWoo}/js/select2.js +232 -115
  219. assets/vendor/selectWoo/js/select2.min.js +1 -0
  220. assets/vendor/selectWoo/js/selectWoo.full.js +6553 -0
  221. assets/vendor/selectWoo/js/selectWoo.full.min.js +1 -0
  222. assets/vendor/selectWoo/js/selectWoo.js +5842 -0
  223. assets/vendor/selectWoo/js/selectWoo.min.js +1 -0
  224. assets/vendor/{select2 → selectWoo}/kirki.css +0 -0
  225. assets/vendor/selectWoo/kirki.css.map +7 -0
  226. assets/vendor/selectWoo/kirki.scss +53 -0
  227. assets/vendor/wp-color-picker-alpha/wp-color-picker-alpha.js +257 -179
  228. class-kirki-autoload.php +2 -12
  229. controls/background/background.css +0 -27
  230. controls/background/background.js +0 -174
  231. controls/code/class-kirki-control-code.php +0 -139
  232. controls/code/code.css +0 -402
  233. controls/code/code.js +0 -41
  234. controls/color-palette/color-palette.css +0 -40
  235. controls/color-palette/color-palette.js +0 -1
  236. controls/color/class-kirki-control-color.php +0 -167
  237. controls/color/color.css +0 -3
  238. controls/color/color.js +0 -32
  239. controls/css/styles.css +686 -0
  240. controls/dashicons/dashicons.css +0 -24
  241. controls/dashicons/dashicons.js +0 -1
  242. controls/date/class-kirki-control-date.php +0 -104
  243. controls/date/date.css +0 -56
  244. controls/date/date.js +0 -16
  245. controls/dimension/class-kirki-control-dimension.php +0 -116
  246. controls/dimension/dimension.css +0 -3
  247. controls/dimension/dimension.js +0 -44
  248. controls/dimensions/dimensions.css +0 -17
  249. controls/dimensions/dimensions.js +0 -96
  250. controls/editor/class-kirki-control-editor.php +0 -124
  251. controls/editor/editor.css +0 -25
  252. controls/editor/editor.js +0 -129
  253. controls/fontawesome/class-kirki-control-fontawesome.php +0 -125
  254. controls/fontawesome/fontawesome.css +0 -3
  255. controls/fontawesome/fontawesome.js +0 -38
  256. controls/generic/generic.css +0 -7
  257. controls/generic/generic.js +0 -1
  258. controls/image/image.css +0 -3
  259. controls/image/image.js +0 -183
  260. controls/js/dist/script-legacy.js +2787 -0
  261. controls/js/dist/script-legacy.min.js +1 -0
  262. controls/js/dist/script.js +2742 -0
  263. controls/js/dist/script.min.js +1 -0
  264. controls/multicheck/class-kirki-control-multicheck.php +0 -117
  265. controls/multicheck/multicheck.css +0 -3
  266. controls/multicheck/multicheck.js +0 -24
  267. controls/multicolor/class-kirki-control-multicolor.php +0 -181
  268. controls/multicolor/multicolor.css +0 -28
  269. controls/multicolor/multicolor.js +0 -92
  270. controls/number/class-kirki-control-number.php +0 -117
  271. controls/number/number.css +0 -35
  272. controls/number/number.js +0 -67
  273. controls/palette/palette.css +0 -39
  274. controls/palette/palette.js +0 -1
  275. controls/{background → php}/class-kirki-control-background.php +7 -72
  276. controls/php/class-kirki-control-base.php +169 -0
  277. controls/php/class-kirki-control-code.php +62 -0
  278. controls/{color-palette → php}/class-kirki-control-color-palette.php +1 -52
  279. controls/php/class-kirki-control-color.php +84 -0
  280. controls/{custom → php}/class-kirki-control-custom.php +1 -11
  281. controls/{dashicons → php}/class-kirki-control-dashicons.php +1 -43
  282. controls/php/class-kirki-control-date.php +60 -0
  283. controls/php/class-kirki-control-dimension.php +65 -0
  284. controls/{dimensions → php}/class-kirki-control-dimensions.php +4 -53
  285. controls/php/class-kirki-control-editor.php +55 -0
  286. controls/php/class-kirki-control-fontawesome.php +67 -0
  287. controls/{generic → php}/class-kirki-control-generic.php +1 -54
  288. controls/{image → php}/class-kirki-control-image.php +1 -59
  289. controls/php/class-kirki-control-multicheck.php +57 -0
  290. controls/php/class-kirki-control-multicolor.php +76 -0
  291. controls/php/class-kirki-control-number.php +66 -0
  292. controls/{palette → php}/class-kirki-control-palette.php +1 -54
  293. controls/php/class-kirki-control-preset.php +56 -0
  294. controls/{radio-buttonset → php}/class-kirki-control-radio-buttonset.php +1 -51
  295. controls/{radio-image → php}/class-kirki-control-radio-image.php +1 -41
  296. controls/{radio → php}/class-kirki-control-radio.php +1 -54
  297. controls/{repeater → php}/class-kirki-control-repeater.php +1 -70
  298. controls/{select → php}/class-kirki-control-select.php +1 -62
  299. controls/{slider → php}/class-kirki-control-slider.php +6 -54
  300. controls/{sortable → php}/class-kirki-control-sortable.php +1 -61
  301. controls/php/class-kirki-control-switch.php +63 -0
  302. controls/php/class-kirki-control-toggle.php +54 -0
  303. controls/{typography → php}/class-kirki-control-typography.php +47 -147
  304. controls/{repeater → php}/class-kirki-settings-repeater-setting.php +0 -0
  305. controls/preset/class-kirki-control-preset.php +0 -110
  306. controls/preset/preset.css +0 -3
  307. controls/preset/preset.js +0 -35
  308. controls/preset/set-setting-value.js +0 -210
  309. controls/radio-buttonset/radio-buttonset.css +0 -16
  310. controls/radio-buttonset/radio-buttonset.js +0 -1
  311. controls/radio-image/radio-image.css +0 -38
  312. controls/radio-image/radio-image.js +0 -1
  313. controls/radio/radio.css +0 -19
  314. controls/radio/radio.js +0 -1
  315. controls/repeater/repeater.css +0 -122
  316. controls/repeater/repeater.js +0 -898
  317. controls/select/select.css +0 -3
  318. controls/select/select.js +0 -23
  319. controls/slider/slider.css +0 -69
  320. controls/slider/slider.js +0 -35
  321. controls/sortable/sortable.css +0 -15
  322. controls/sortable/sortable.js +0 -66
  323. controls/switch/class-kirki-control-switch.php +0 -115
  324. controls/switch/switch.css +0 -62
  325. controls/switch/switch.js +0 -24
  326. controls/toggle/class-kirki-control-toggle.php +0 -112
  327. controls/toggle/toggle.css +0 -54
  328. controls/toggle/toggle.js +0 -14
  329. controls/typography/typography.css +0 -35
  330. controls/typography/typography.js +0 -420
  331. core/class-kirki-field.php +0 -4
  332. core/class-kirki-helper.php +17 -292
  333. core/class-kirki-l10n.php +69 -3
  334. core/class-kirki-modules.php +0 -1
  335. core/class-kirki-util.php +34 -0
  336. core/class-kirki.php +13 -10
  337. example.php +692 -0
  338. field/class-kirki-field-code.php +0 -3
  339. field/class-kirki-field-color-alpha.php +0 -3
  340. field/class-kirki-field-color.php +12 -3
  341. field/class-kirki-field-dimensions.php +0 -3
  342. field/class-kirki-field-editor.php +12 -52
  343. field/class-kirki-field-image.php +0 -3
  344. field/class-kirki-field-kirki-generic.php +0 -3
  345. field/class-kirki-field-multicolor.php +0 -3
  346. field/class-kirki-field-number.php +0 -3
  347. field/class-kirki-field-spacing.php +0 -3
  348. field/class-kirki-field-switch.php +0 -3
  349. field/class-kirki-field-text.php +0 -3
  350. field/class-kirki-field-textarea.php +4 -9
  351. field/class-kirki-field-typography.php +0 -3
  352. field/class-kirki-field-url.php +0 -3
  353. kirki.php +6 -5
  354. l10n.php +0 -52
  355. modules/collapsible/collapsible.css.map +0 -7
  356. modules/collapsible/collapsible.js +1 -0
  357. modules/collapsible/collapsible.scss +0 -23
  358. modules/custom-sections/sections.css.map +0 -7
  359. modules/custom-sections/sections.scss +0 -35
  360. modules/customizer-branding/branding.js +1 -0
  361. modules/field-dependencies/field-dependencies.js +19 -5
  362. modules/icons/icons.js +1 -0
  363. modules/reset/class-kirki-modules-reset.php +0 -72
  364. modules/reset/reset.css +0 -33
  365. modules/reset/reset.css.map +0 -7
  366. modules/reset/reset.js +0 -25
  367. modules/reset/reset.scss +0 -39
  368. modules/reset/set-setting-value.js +0 -212
  369. modules/tooltips/tooltip.css.map +0 -7
  370. modules/tooltips/tooltip.js +7 -3
  371. modules/tooltips/tooltip.scss +0 -37
  372. modules/webfonts/webfonts.php +1 -1
  373. readme.txt +33 -4
assets/js/dynamic-control.js DELETED
@@ -1,215 +0,0 @@
1
- /**
2
- * The majority of the code in this file
3
- * is derived from the wp-customize-posts plugin
4
- * and the work of @westonruter to whom I am very grateful.
5
- *
6
- * @see https://github.com/xwp/wp-customize-posts
7
- */
8
-
9
- ( function() {
10
- 'use strict';
11
-
12
- /**
13
- * A dynamic color-alpha control.
14
- *
15
- * @class
16
- * @augments wp.customize.Control
17
- * @augments wp.customize.Class
18
- */
19
- wp.customize.kirkiDynamicControl = wp.customize.Control.extend({
20
-
21
- initialize: function( id, options ) {
22
- var control = this,
23
- args = options || {};
24
-
25
- args.params = args.params || {};
26
- if ( ! args.params.type ) {
27
- args.params.type = 'kirki-generic';
28
- }
29
- if ( ! args.params.content ) {
30
- args.params.content = jQuery( '<li></li>' );
31
- args.params.content.attr( 'id', 'customize-control-' + id.replace( /]/g, '' ).replace( /\[/g, '-' ) );
32
- args.params.content.attr( 'class', 'customize-control customize-control-' + args.params.type );
33
- }
34
-
35
- control.propertyElements = [];
36
- wp.customize.Control.prototype.initialize.call( control, id, args );
37
- },
38
-
39
- /**
40
- * Add bidirectional data binding links between inputs and the setting(s).
41
- *
42
- * This is copied from wp.customize.Control.prototype.initialize(). It
43
- * should be changed in Core to be applied once the control is embedded.
44
- *
45
- * @private
46
- * @returns {void}
47
- */
48
- _setUpSettingRootLinks: function() {
49
- var control = this,
50
- nodes = control.container.find( '[data-customize-setting-link]' );
51
-
52
- nodes.each( function() {
53
- var node = jQuery( this );
54
-
55
- wp.customize( node.data( 'customizeSettingLink' ), function( setting ) {
56
- var element = new wp.customize.Element( node );
57
- control.elements.push( element );
58
- element.sync( setting );
59
- element.set( setting() );
60
- });
61
- });
62
- },
63
-
64
- /**
65
- * Add bidirectional data binding links between inputs and the setting properties.
66
- *
67
- * @private
68
- * @returns {void}
69
- */
70
- _setUpSettingPropertyLinks: function() {
71
- var control = this,
72
- nodes;
73
-
74
- if ( ! control.setting ) {
75
- return;
76
- }
77
-
78
- nodes = control.container.find( '[data-customize-setting-property-link]' );
79
-
80
- nodes.each( function() {
81
- var node = jQuery( this ),
82
- element,
83
- propertyName = node.data( 'customizeSettingPropertyLink' );
84
-
85
- element = new wp.customize.Element( node );
86
- control.propertyElements.push( element );
87
- element.set( control.setting()[ propertyName ] );
88
-
89
- element.bind( function( newPropertyValue ) {
90
- var newSetting = control.setting();
91
- if ( newPropertyValue === newSetting[ propertyName ] ) {
92
- return;
93
- }
94
- newSetting = _.clone( newSetting );
95
- newSetting[ propertyName ] = newPropertyValue;
96
- control.setting.set( newSetting );
97
- } );
98
- control.setting.bind( function( newValue ) {
99
- if ( newValue[ propertyName ] !== element.get() ) {
100
- element.set( newValue[ propertyName ] );
101
- }
102
- } );
103
- });
104
- },
105
-
106
- /**
107
- * @inheritdoc
108
- */
109
- ready: function() {
110
- var control = this;
111
-
112
- control._setUpSettingRootLinks();
113
- control._setUpSettingPropertyLinks();
114
-
115
- wp.customize.Control.prototype.ready.call( control );
116
-
117
- control.deferred.embedded.done( function() {
118
- control.initKirkiControl();
119
- });
120
- },
121
-
122
- /**
123
- * Embed the control in the document.
124
- *
125
- * Override the embed() method to do nothing,
126
- * so that the control isn't embedded on load,
127
- * unless the containing section is already expanded.
128
- *
129
- * @returns {void}
130
- */
131
- embed: function() {
132
- var control = this,
133
- sectionId = control.section();
134
-
135
- if ( ! sectionId ) {
136
- return;
137
- }
138
-
139
- wp.customize.section( sectionId, function( section ) {
140
- if ( 'kirki-expanded' === section.params.type || section.expanded() || wp.customize.settings.autofocus.control === control.id ) {
141
- control.actuallyEmbed();
142
- } else {
143
- section.expanded.bind( function( expanded ) {
144
- if ( expanded ) {
145
- control.actuallyEmbed();
146
- }
147
- } );
148
- }
149
- } );
150
- },
151
-
152
- /**
153
- * Deferred embedding of control when actually
154
- *
155
- * This function is called in Section.onChangeExpanded() so the control
156
- * will only get embedded when the Section is first expanded.
157
- *
158
- * @returns {void}
159
- */
160
- actuallyEmbed: function() {
161
- var control = this;
162
- if ( 'resolved' === control.deferred.embedded.state() ) {
163
- return;
164
- }
165
- control.renderContent();
166
- control.deferred.embedded.resolve(); // This triggers control.ready().
167
- },
168
-
169
- /**
170
- * This is not working with autofocus.
171
- *
172
- * @param {object} [args] Args.
173
- * @returns {void}
174
- */
175
- focus: function( args ) {
176
- var control = this;
177
- control.actuallyEmbed();
178
- wp.customize.Control.prototype.focus.call( control, args );
179
- },
180
-
181
- initKirkiControl: function() {
182
-
183
- var control = this;
184
-
185
- // Save the value
186
- this.container.on( 'change keyup paste click', 'input', function() {
187
- control.setting.set( jQuery( this ).val() );
188
- });
189
- },
190
-
191
- kirkiValidateCSSValue: function( value ) {
192
-
193
- var validUnits = ['rem', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'vh', 'vw', 'vmin', 'vmax'],
194
- numericValue,
195
- unit;
196
-
197
- // 0 is always a valid value, and we can't check calc() values effectively.
198
- if ( '0' === value || ( 0 <= value.indexOf( 'calc(' ) && 0 <= value.indexOf( ')' ) ) ) {
199
- return true;
200
- }
201
-
202
- // Get the numeric value.
203
- numericValue = parseFloat( value );
204
-
205
- // Get the unit
206
- unit = value.replace( numericValue, '' );
207
-
208
- // Check the validity of the numeric value and units.
209
- if ( isNaN( numericValue ) || -1 === jQuery.inArray( unit, validUnits ) ) {
210
- return false;
211
- }
212
- return true;
213
- }
214
- });
215
- })();
assets/vendor/codemirror/AUTHORS DELETED
@@ -1,647 +0,0 @@
1
- List of CodeMirror contributors. Updated before every release.
2
-
3
- 4r2r
4
- Aaron Brooks
5
- Abdelouahab
6
- Abe Fettig
7
- Adam Ahmed
8
- Adam King
9
- Adam Particka
10
- adanlobato
11
- Adán Lobato
12
- Adrian Aichner
13
- Adrian Heine
14
- Adrien Bertrand
15
- aeroson
16
- Ahmad Amireh
17
- Ahmad M. Zawawi
18
- ahoward
19
- Akeksandr Motsjonov
20
- Alasdair Smith
21
- Alberto González Palomo
22
- Alberto Pose
23
- Albert Xing
24
- Alexander Pavlov
25
- Alexander Schepanovski
26
- Alexander Shvets
27
- Alexander Solovyov
28
- Alexandre Bique
29
- alexey-k
30
- Alex Piggott
31
- Aliaksei Chapyzhenka
32
- Allen Sarkisyan
33
- Ami Fischman
34
- Amin Shali
35
- Amin Ullah Khan
36
- amshali@google.com
37
- Amsul
38
- amuntean
39
- Amy
40
- Ananya Sen
41
- anaran
42
- AndersMad
43
- Anders Nawroth
44
- Anderson Mesquita
45
- Anders Wåglund
46
- Andrea G
47
- Andreas Reischuck
48
- Andres Taylor
49
- Andre von Houck
50
- Andrew Cheng
51
- Andrey Fedorov
52
- Andrey Klyuchnikov
53
- Andrey Lushnikov
54
- Andrey Shchekin
55
- Andy Joslin
56
- Andy Kimball
57
- Andy Li
58
- Angelo
59
- angelozerr
60
- angelo.zerr@gmail.com
61
- Ankit
62
- Ankit Ahuja
63
- Ansel Santosa
64
- Anthony Dugois
65
- anthonygego
66
- Anthony Gégo
67
- Anthony Grimes
68
- Anton Kovalyov
69
- Apollo Zhu
70
- AQNOUCH Mohammed
71
- areos
72
- Arnab Bose
73
- Arthur Müller
74
- Arun Narasani
75
- as3boyan
76
- atelierbram
77
- AtomicPages LLC
78
- Atul Bhouraskar
79
- Aurelian Oancea
80
- Axel Lewenhaupt
81
- Barret Rennie
82
- Basarat Ali Syed
83
- Bastian Müller
84
- belhaj
85
- Bem Jones-Bey
86
- benbro
87
- Beni Cherniavsky-Paskin
88
- Benjamin DeCoste
89
- Ben Keen
90
- Ben Miller
91
- Ben Mosher
92
- Bernhard Sirlinger
93
- Bert Chang
94
- Bharad
95
- BigBlueHat
96
- Billy Moon
97
- binny
98
- B Krishna Chaitanya
99
- Blaine G
100
- blukat29
101
- boomyjee
102
- borawjm
103
- Brad Metcalf
104
- Brandon Frohs
105
- Brandon Wamboldt
106
- Brett Zamir
107
- Brian Grinstead
108
- Brian Sletten
109
- brrd
110
- Bruce Mitchener
111
- Bryan Massoth
112
- Caitlin Potter
113
- Calin Barbat
114
- callodacity
115
- Camilo Roca
116
- Chad Jolly
117
- Chandra Sekhar Pydi
118
- Charles Skelton
119
- Cheah Chu Yeow
120
- Chris Coyier
121
- Chris Ford
122
- Chris Granger
123
- Chris Houseknecht
124
- Chris Lohfink
125
- Chris Morgan
126
- Chris Smith
127
- Christian Oyarzun
128
- Christian Petrov
129
- Christopher Brown
130
- Christopher Kramer
131
- Christopher Mitchell
132
- Christopher Pfohl
133
- Chunliang Lyu
134
- ciaranj
135
- CodeAnimal
136
- coderaiser
137
- Cole R Lawrence
138
- ComFreek
139
- Curtis Gagliardi
140
- dagsta
141
- daines
142
- Dale Jung
143
- Dan Bentley
144
- Dan Heberden
145
- Daniel, Dao Quang Minh
146
- Daniele Di Sarli
147
- Daniel Faust
148
- Daniel Huigens
149
- Daniel Kesler
150
- Daniel KJ
151
- Daniel Neel
152
- Daniel Parnell
153
- Danny Yoo
154
- darealshinji
155
- Darius Roberts
156
- Dave Brondsema
157
- Dave Myers
158
- David Barnett
159
- David H. Bronke
160
- David Mignot
161
- David Pathakjee
162
- David Vázquez
163
- David Whittington
164
- deebugger
165
- Deep Thought
166
- Devin Abbott
167
- Devon Carew
168
- Dick Choi
169
- dignifiedquire
170
- Dimage Sapelkin
171
- Dmitry Kiselyov
172
- domagoj412
173
- Dominator008
174
- Domizio Demichelis
175
- Doug Wikle
176
- Drew Bratcher
177
- Drew Hintz
178
- Drew Khoury
179
- Drini Cami
180
- Dror BG
181
- duralog
182
- eborden
183
- edsharp
184
- ekhaled
185
- Elisée
186
- Emmanuel Schanzer
187
- Enam Mijbah Noor
188
- Eric Allam
189
- Erik Welander
190
- eustas
191
- Fabien Dubosson
192
- Fabien O'Carroll
193
- Fabio Zendhi Nagao
194
- Faiza Alsaied
195
- Fauntleroy
196
- fbuchinger
197
- feizhang365
198
- Felipe Lalanne
199
- Felix Raab
200
- ficristo
201
- Filip Noetzel
202
- Filip Stollár
203
- flack
204
- Florian Felten
205
- ForbesLindesay
206
- Forbes Lindesay
207
- Ford_Lawnmower
208
- Forrest Oliphant
209
- Frank Wiegand
210
- Gabriel Gheorghian
211
- Gabriel Horner
212
- Gabriel Nahmias
213
- galambalazs
214
- Gary Sheng
215
- Gautam Mehta
216
- Gavin Douglas
217
- gekkoe
218
- Geordie Hall
219
- geowarin
220
- Gerard Braad
221
- Gergely Hegykozi
222
- Giovanni Calò
223
- Glebov Boris
224
- Glenn Jorde
225
- Glenn Ruehle
226
- Golevka
227
- Google Inc.
228
- Gordon Smith
229
- Grant Skinner
230
- greengiant
231
- Gregory Koberger
232
- Grzegorz Mazur
233
- Guillaume Massé
234
- Guillaume Massé
235
- guraga
236
- Gustavo Rodrigues
237
- Hakan Tunc
238
- Hans Engel
239
- Hardest
240
- Harshvardhan Gupta
241
- Hasan Karahan
242
- Hector Oswaldo Caballero
243
- Hendrik Wallbaum
244
- Herculano Campos
245
- Hiroyuki Makino
246
- hitsthings
247
- Hocdoc
248
- Hugues Malphettes
249
- Ian Beck
250
- Ian Dickinson
251
- Ian Wehrman
252
- Ian Wetherbee
253
- Ice White
254
- ICHIKAWA, Yuji
255
- idleberg
256
- ilvalle
257
- Ingo Richter
258
- Irakli Gozalishvili
259
- Ivan Kurnosov
260
- Ivoah
261
- Jacob Lee
262
- Jake Peyser
263
- Jakob Miland
264
- Jakub Vrana
265
- Jakub Vrána
266
- James Campos
267
- James Howard
268
- James Thorne
269
- Jamie Hill
270
- Jamie Morris
271
- Jan Jongboom
272
- jankeromnes
273
- Jan Keromnes
274
- Jan Odvarko
275
- Jan Schär
276
- Jan T. Sott
277
- Jared Dean
278
- Jared Forsyth
279
- Jared Jacobs
280
- Jason
281
- Jason Barnabe
282
- Jason Grout
283
- Jason Johnston
284
- Jason San Jose
285
- Jason Siefken
286
- Jaydeep Solanki
287
- Jean Boussier
288
- Jeff Blaisdell
289
- Jeff Jenkins
290
- jeffkenton
291
- Jeff Pickhardt
292
- jem (graphite)
293
- Jeremy Parmenter
294
- Jim
295
- Jim Avery
296
- JobJob
297
- jochenberger
298
- Jochen Berger
299
- Joel Einbinder
300
- joelpinheiro
301
- Johan Ask
302
- John Connor
303
- John-David Dalton
304
- John Engler
305
- John Lees-Miller
306
- John Snelson
307
- John Van Der Loo
308
- Jon Ander Peñalba
309
- Jonas Döbertin
310
- Jonathan Malmaud
311
- Jon Gacnik
312
- jongalloway
313
- Jon Malmaud
314
- Jon Sangster
315
- Joost-Wim Boekesteijn
316
- Joseph Pecoraro
317
- Josh Barnes
318
- Josh Cohen
319
- Josh Soref
320
- Joshua Newman
321
- Josh Watzman
322
- jots
323
- jsoojeon
324
- ju1ius
325
- Juan Benavides Romero
326
- Jucovschi Constantin
327
- Juho Vuori
328
- Julien Rebetez
329
- Justin Andresen
330
- Justin Hileman
331
- jwallers@gmail.com
332
- kaniga
333
- karevn
334
- Kayur Patel
335
- Kazuhito Hokamura
336
- Ken Newman
337
- ken restivo
338
- Ken Rockot
339
- Kevin Earls
340
- Kevin Muret
341
- Kevin Sawicki
342
- Kevin Ushey
343
- Klaus Silveira
344
- Koh Zi Han, Cliff
345
- komakino
346
- Konstantin Lopuhin
347
- koops
348
- Kris Ciccarello
349
- ks-ifware
350
- kubelsmieci
351
- KwanEsq
352
- Kyle Kelley
353
- Lanfei
354
- Lanny
355
- Laszlo Vidacs
356
- leaf corcoran
357
- Leonid Khachaturov
358
- Leon Sorokin
359
- Leonya Khachaturov
360
- Liam Newman
361
- Libo Cannici
362
- LloydMilligan
363
- LM
364
- lochel
365
- Lorenzo Stoakes
366
- Luca Fabbri
367
- Luciano Longo
368
- Lu Fangjian
369
- Luke Browning
370
- Luke Granger-Brown
371
- Luke Stagner
372
- lynschinzer
373
- M1cha
374
- Madhura Jayaratne
375
- Maksim Lin
376
- Maksym Taran
377
- Malay Majithia
378
- Manideep
379
- Manuel Rego Casasnovas
380
- Marat Dreizin
381
- Marcel Gerber
382
- Marcelo Camargo
383
- Marco Aurélio
384
- Marco Munizaga
385
- Marcus Bointon
386
- Marek Rudnicki
387
- Marijn Haverbeke
388
- Mário Gonçalves
389
- Mario Pietsch
390
- Mark Anderson
391
- Mark Lentczner
392
- Marko Bonaci
393
- Mark Peace
394
- Markus Bordihn
395
- Martin Balek
396
- Martín Gaitán
397
- Martin Hasoň
398
- Martin Hunt
399
- Martin Laine
400
- Martin Zagora
401
- Mason Malone
402
- Mateusz Paprocki
403
- Mathias Bynens
404
- mats cronqvist
405
- Matt Gaide
406
- Matthew Bauer
407
- Matthew Beale
408
- matthewhayes
409
- Matthew Rathbone
410
- Matthias Bussonnier
411
- Matthias BUSSONNIER
412
- Matt McDonald
413
- Matt Pass
414
- Matt Sacks
415
- mauricio
416
- Maximilian Hils
417
- Maxim Kraev
418
- Max Kirsch
419
- Max Schaefer
420
- Max Xiantu
421
- mbarkhau
422
- McBrainy
423
- mce2
424
- melpon
425
- Metatheos
426
- Micah Dubinko
427
- Michael
428
- Michael Goderbauer
429
- Michael Grey
430
- Michael Kaminsky
431
- Michael Lehenbauer
432
- Michael Zhou
433
- Michal Dorner
434
- Mighty Guava
435
- Miguel Castillo
436
- mihailik
437
- Mike
438
- Mike Brevoort
439
- Mike Diaz
440
- Mike Ivanov
441
- Mike Kadin
442
- Mike Kobit
443
- MinRK
444
- Miraculix87
445
- misfo
446
- mkaminsky11
447
- mloginov
448
- Moritz Schwörer
449
- mps
450
- ms
451
- mtaran-google
452
- Mu-An Chiou
453
- Narciso Jaramillo
454
- Nathan Williams
455
- ndr
456
- nerbert
457
- nextrevision
458
- ngn
459
- nguillaumin
460
- Ng Zhi An
461
- Nicholas Bollweg
462
- Nicholas Bollweg (Nick)
463
- Nick Kreeger
464
- Nick Small
465
- Nicolò Ribaudo
466
- Niels van Groningen
467
- nightwing
468
- Nikita Beloglazov
469
- Nikita Vasilyev
470
- Nikolay Kostov
471
- nilp0inter
472
- Nisarg Jhaveri
473
- nlwillia
474
- noragrossman
475
- Norman Rzepka
476
- Oreoluwa Onatemowo
477
- Oskar Segersvärd
478
- pablo
479
- pabloferz
480
- Pablo Zubieta
481
- Page
482
- Panupong Pasupat
483
- paris
484
- Paris
485
- Paris Kasidiaris
486
- Patil Arpith
487
- Patrick Stoica
488
- Patrick Strawderman
489
- Paul Garvin
490
- Paul Ivanov
491
- Paul Masson
492
- Pavel
493
- Pavel Feldman
494
- Pavel Petržela
495
- Pavel Strashkin
496
- Paweł Bartkiewicz
497
- peteguhl
498
- peter
499
- Peter Flynn
500
- peterkroon
501
- Peter Kroon
502
- Philipp A
503
- Philip Stadermann
504
- Pierre Gerold
505
- Piët Delport
506
- Pontus Melke
507
- prasanthj
508
- Prasanth J
509
- Prayag Verma
510
- Radek Piórkowski
511
- Rahul
512
- Rahul Anand
513
- ramwin1
514
- Randall Mason
515
- Randy Burden
516
- Randy Edmunds
517
- Rasmus Erik Voel Jensen
518
- ray ratchup
519
- Ray Ratchup
520
- Remi Nyborg
521
- Renaud Durlin
522
- Richard Denton
523
- Richard van der Meer
524
- Richard Z.H. Wang
525
- Rishi Goomar
526
- Robert Crossfield
527
- Roberto Abdelkader Martínez Pérez
528
- robertop23
529
- Robert Plummer
530
- Rrandom
531
- Rrrandom
532
- Ruslan Osmanov
533
- Ryan Petrello
534
- Ryan Prior
535
- sabaca
536
- Sam Lee
537
- Samuel Ainsworth
538
- Sam Wilson
539
- sandeepshetty
540
- Sander AKA Redsandro
541
- Sander Verweij
542
- santec
543
- Sascha Peilicke
544
- satamas
545
- satchmorun
546
- sathyamoorthi
547
- Saul Costa
548
- S. Chris Colbert
549
- SCLINIC\jdecker
550
- Scott Aikin
551
- Scott Goodhew
552
- Sebastian Zaha
553
- Sergey Goder
554
- Sergey Tselovalnikov
555
- Se-Won Kim
556
- shaund
557
- shaun gilchrist
558
- Shawn A
559
- Shea Bunge
560
- sheopory
561
- Shiv Deepak
562
- Shmuel Englard
563
- Shubham Jain
564
- Siamak Mokhtari
565
- silverwind
566
- sinkuu
567
- snasa
568
- soliton4
569
- sonson
570
- spastorelli
571
- srajanpaliwal
572
- Stanislav Oaserele
573
- Stas Kobzar
574
- Stefan Borsje
575
- Steffen Beyer
576
- Steffen Bruchmann
577
- Stephen Lavelle
578
- Steve Champagne
579
- Steve Hoover
580
- Steve O'Hara
581
- stoskov
582
- Stu Kennedy
583
- Sungho Kim
584
- sverweij
585
- Taha Jahangir
586
- takamori
587
- Tako Schotanus
588
- Takuji Shimokawa
589
- Tarmil
590
- TDaglis
591
- tel
592
- tfjgeorge
593
- Thaddee Tyl
594
- thanasis
595
- TheHowl
596
- themrmax
597
- think
598
- Thomas Dvornik
599
- Thomas Kluyver
600
- Thomas Schmid
601
- Tim Alby
602
- Tim Baumann
603
- Timothy Farrell
604
- Timothy Gu
605
- Timothy Hatcher
606
- TobiasBg
607
- Todd Berman
608
- Tomas-A
609
- Tomas Varaneckas
610
- Tom Erik Støwer
611
- Tom Klancer
612
- Tom MacWright
613
- Tony Jian
614
- Travis Heppe
615
- Triangle717
616
- Tristan Tarrant
617
- TSUYUSATO Kitsune
618
- twifkak
619
- VapidWorx
620
- Vestimir Markov
621
- vf
622
- Victor Bocharsky
623
- Vincent Woo
624
- Volker Mische
625
- Weiyan Shao
626
- wenli
627
- Wes Cossick
628
- Wesley Wiser
629
- Will Binns-Smith
630
- Will Dean
631
- William Jamieson
632
- William Stein
633
- Willy
634
- Wojtek Ptak
635
- Wu Cheng-Han
636
- Xavier Mendez
637
- Yassin N. Hassan
638
- YNH Webdev
639
- Yunchi Luo
640
- Yuvi Panda
641
- Zac Anger
642
- Zachary Dremann
643
- Zeno Rocha
644
- Zhang Hao
645
- Ziv
646
- zziuni
647
- 魏鹏刚
assets/vendor/codemirror/CHANGELOG.md DELETED
@@ -1,1094 +0,0 @@
1
- ## 5.25.2 (2017-04-20)
2
-
3
- ### Bug fixes
4
-
5
- Better handling of selections that cover the whole viewport in contentEditable-mode.
6
-
7
- No longer accidentally scroll the editor into view when calling `setValue`.
8
-
9
- Work around Chrome Android bug when converting screen coordinates to editor positions.
10
-
11
- Make sure long-clicking a selection sets a cursor and doesn't show the editor losing focus.
12
-
13
- Fix issue where pointer events were incorrectly disabled on Chrome's overlay scrollbars.
14
-
15
- [javascript mode](http://codemirror.net/mode/javascript/): Recognize annotations and TypeScript-style type parameters.
16
-
17
- [shell mode](http://codemirror.net/mode/shell/): Handle nested braces.
18
-
19
- [markdown mode](http://codemirror.net/mode/markdown/): Make parsing of strong/em delimiters CommonMark-compliant.
20
-
21
- ## 5.25.0 (2017-03-20)
22
-
23
- ### Bug fixes
24
-
25
- In contentEditable-mode, properly locate changes that repeat a character when inserted with IME.
26
-
27
- Fix handling of selections bigger than the viewport in contentEditable mode.
28
-
29
- Improve handling of changes that insert or delete lines in contentEditable mode.
30
-
31
- Count Unicode control characters 0x80 to 0x9F as special (non-printing) chars.
32
-
33
- Fix handling of shadow DOM roots when finding the active element.
34
-
35
- Add `role=presentation` to more DOM elements to improve screen reader support.
36
-
37
- [merge addon](http://codemirror.net/doc/manual.html#addon_merge): Make aligning of unchanged chunks more robust.
38
-
39
- [comment addon](http://codemirror.net/doc/manual.html#addon_comment): Fix comment-toggling on a block of text that starts and ends in a (differnet) block comment.
40
-
41
- [javascript mode](http://codemirror.net/mode/javascript/): Improve support for TypeScript syntax.
42
-
43
- [r mode](http://codemirror.net/mode/r/): Fix indentation after semicolon-less statements.
44
-
45
- [shell mode](http://codemirror.net/mode/shell/): Properly handle escaped parentheses in parenthesized expressions.
46
-
47
- [markdown mode](http://codemirror.net/mode/markdown/): Fix a few bugs around leaving fenced code blocks.
48
-
49
- [soy mode](http://codemirror.net/mode/soy/): Improve indentation.
50
-
51
- ### New features
52
-
53
- [lint addon](http://codemirror.net/doc/manual.html#addon_lint): Support asynchronous linters that return promises.
54
-
55
- [continuelist addon](http://codemirror.net/doc/manual.html#addon_continuelist): Support continuing task lists.
56
-
57
- [vim bindings](http://codemirror.net/mode/demo/vim.html): Make Y behave like yy.
58
-
59
- [sql mode](http://codemirror.net/mode/sql/): Support sqlite dialect.
60
-
61
- ## 5.24.2 (2017-02-22)
62
-
63
- ### Bug fixes
64
-
65
- [javascript mode](http://codemirror.net/mode/javascript/): Support computed class method names.
66
-
67
- [merge addon](http://codemirror.net/doc/manual.html#addon_merge): Improve aligning of unchanged code in the presence of marks and line widgets.
68
-
69
- ## 5.24.0 (2017-02-20)
70
-
71
- ### Bug fixes
72
-
73
- A cursor directly before a line-wrapping break is now drawn before or after the line break depending on which direction you arrived from.
74
-
75
- Visual cursor motion in line-wrapped right-to-left text should be much more correct.
76
-
77
- Fix bug in handling of read-only marked text.
78
-
79
- [shell mode](http://codemirror.net/mode/shell/): Properly tokenize nested parentheses.
80
-
81
- [python mode](http://codemirror.net/mode/python/): Support underscores in number literals.
82
-
83
- [sass mode](http://codemirror.net/mode/sass/): Uses the full list of CSS properties and keywords from the CSS mode, rather than defining its own incomplete subset.
84
-
85
- [css mode](http://codemirror.net/mode/css/): Expose `lineComment` property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements.
86
-
87
- [julia mode](http://codemirror.net/mode/julia/): Properly indent `elseif` lines.
88
-
89
- [markdown mode](http://codemirror.net/mode/markdown/): Properly recognize the end of fenced code blocks when inside other markup.
90
-
91
- [scala mode](http://codemirror.net/mode/clike/): Improve handling of operators containing <code>#</code>, <code>@</code>, and <code>:</code> chars.
92
-
93
- [xml mode](http://codemirror.net/mode/xml/): Allow dashes in HTML tag names.
94
-
95
- [javascript mode](http://codemirror.net/mode/javascript/): Improve parsing of async methods, TypeScript-style comma-separated superclass lists.
96
-
97
- [indent-fold addon](http://codemirror.net/demo/folding.html): Ignore comment lines.
98
-
99
- ### New features
100
-
101
- Positions now support a `sticky` property which determines whether they should be associated with the character before (value `"before"`) or after (value `"after"`) them.
102
-
103
- [vim bindings](http://codemirror.net/mode/demo/vim.html): Make it possible to remove built-in bindings through the API.
104
-
105
- [comment addon](http://codemirror.net/doc/manual.html#addon_comment): Support a per-mode <code>useInnerComments</code> option to optionally suppress descending to the inner modes to get comment strings.
106
-
107
- ### Breaking changes
108
-
109
- The [sass mode](http://codemirror.net/mode/sass/) now depends on the [css mode](http://codemirror.net/mode/css/).
110
-
111
- ## 5.23.0 (2017-01-19)
112
-
113
- ### Bug fixes
114
-
115
- Presentation-related elements DOM elements are now marked as such to help screen readers.
116
-
117
- [markdown mode](http://codemirror.net/mode/markdown/): Be more picky about what HTML tags look like to avoid false positives.
118
-
119
- ### New features
120
-
121
- `findModeByMIME` now understands `+json` and `+xml` MIME suffixes.
122
-
123
- [closebrackets addon](http://codemirror.net/doc/manual.html#addon_closebrackets): Add support for an `override` option to ignore language-specific defaults.
124
-
125
- [panel addon](http://codemirror.net/doc/manual.html#addon_panel): Add a `stable` option that auto-scrolls the content to keep it in the same place when inserting/removing a panel.
126
-
127
- ## 5.22.2 (2017-01-12)
128
-
129
- ### Bug fixes
130
-
131
- Include rollup.config.js in NPM package, so that it can be used to build from source.
132
-
133
- ## 5.22.0 (2016-12-20)
134
-
135
- ### Bug fixes
136
-
137
- [sublime bindings](http://codemirror.net/demo/sublime.html): Make `selectBetweenBrackets` work with multiple cursors.
138
-
139
- [javascript mode](http://codemirror.net/mode/javascript/): Fix issues with parsing complex TypeScript types, imports, and exports.
140
-
141
- A contentEditable editor instance with autofocus enabled no longer crashes during initializing.
142
-
143
- ### New features
144
-
145
- [emacs bindings](http://codemirror.net/demo/emacs.html): Export `CodeMirror.emacs` to allow other addons to hook into Emacs-style functionality.
146
-
147
- [active-line addon](http://codemirror.net/doc/manual.html#addon_active-line): Add `nonEmpty` option.
148
-
149
- New event: [`optionChange`](http://codemirror.net/doc/manual.html#event_optionChange).
150
-
151
- ## 5.21.0 (2016-11-21)
152
-
153
- ### Bug fixes
154
-
155
- Tapping/clicking the editor in [contentEditable mode](http://codemirror.net/doc/manual.html#option_inputStyle) on Chrome now puts the cursor at the tapped position.
156
-
157
- Fix various crashes and misbehaviors when reading composition events in [contentEditable mode](http://codemirror.net/doc/manual.html#option_inputStyle).
158
-
159
- Catches and ignores an IE 'Unspecified Error' when creating an editor in an iframe before there is a `<body>`.
160
-
161
- [merge addon](http://codemirror.net/doc/manual.html#addon_merge): Fix several issues in the chunk-aligning feature.
162
-
163
- [verilog mode](http://codemirror.net/mode/verilog): Rewritten to address various issues.
164
-
165
- [julia mode](http://codemirror.net/mode/julia): Recognize Julia 0.5 syntax.
166
-
167
- [swift mode](http://codemirror.net/mode/swift): Various fixes and adjustments to current syntax.
168
-
169
- [markdown mode](http://codemirror.net/mode/markdown): Allow lists without a blank line above them.
170
-
171
- ### New features
172
-
173
- The [`setGutterMarker`](http://codemirror.net/doc/manual.html#setGutterMarker), [`clearGutter`](http://codemirror.net/doc/manual.html#clearGutter), and [`lineInfo`](http://codemirror.net/doc/manual.html#lineInfo) methods are now available on `Doc` objects.
174
-
175
- The [`heightAtLine`](http://codemirror.net/doc/manual.html#heightAtLine) method now takes an extra argument to allow finding the height at the top of the line's line widgets.
176
-
177
- [ruby mode](http://codemirror.net/mode/ruby): `else` and `elsif` are now immediately indented.
178
-
179
- [vim bindings](http://codemirror.net/demo/vim.html): Bind Ctrl-T and Ctrl-D to in- and dedent in insert mode.
180
-
181
- ## 5.20.2 (2016-10-21)
182
-
183
- ### Bug fixes
184
-
185
- Fix `CodeMirror.version` returning the wrong version number.
186
-
187
- ## 5.20.0 (2016-10-20)
188
-
189
- ### Bug fixes
190
-
191
- Make `newlineAndIndent` command work with multiple cursors on the same line.
192
-
193
- Make sure keypress events for backspace are ignored.
194
-
195
- Tokens styled with overlays no longer get a nonsense `cm-cm-overlay` class.
196
-
197
- Line endings for pasted content are now normalized to the editor's [preferred ending](http://codemirror.net/doc/manual.html#option_lineSeparator).
198
-
199
- [javascript mode](http://codemirror.net/mode/javascript): Improve support for class expressions. Support TypeScript optional class properties, the `abstract` keyword, and return type declarations for arrow functions.
200
-
201
- [css mode](http://codemirror.net/mode/css): Fix highlighting of mixed-case keywords.
202
-
203
- [closebrackets addon](http://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when typing a quote before a string.
204
-
205
- ### New features
206
-
207
- 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 build` (but when installing from NPM, it is included).
208
-
209
- The [`refresh`](http://codemirror.net/doc/manual.html#event_refresh) event is now documented and stable.
210
-
211
- ## 5.19.0 (2016-09-20)
212
-
213
- ### Bugfixes
214
-
215
- [erlang mode](http://codemirror.net/mode/erlang): Fix mode crash when trying to read an empty context.
216
-
217
- [comment addon](http://codemirror.net/doc/manual.html#addon_comment): Fix broken behavior when toggling comments inside a comment.
218
-
219
- xml-fold addon: Fix a null-dereference bug.
220
-
221
- Page up and page down now do something even in single-line documents.
222
-
223
- Fix an issue where the cursor position could be off in really long (~8000 character) tokens.
224
-
225
- ### New features
226
-
227
- [javascript mode](http://codemirror.net/mode/javascript): Better indentation when semicolons are missing. Better support for TypeScript classes, optional parameters, and the `type` keyword.
228
-
229
- The [`blur`](http://codemirror.net/doc/manual.html#event_blur) and [`focus`](http://codemirror.net/doc/manual.html#event_focus) events now pass the DOM event to their handlers.
230
-
231
- ## 5.18.2 (2016-08-23)
232
-
233
- ### Bugfixes
234
-
235
- [vue mode](http://codemirror.net/mode/vue): Fix outdated references to renamed Pug mode dependency.
236
-
237
- ## 5.18.0 (2016-08-22)
238
-
239
- ### Bugfixes
240
-
241
- Make sure [gutter backgrounds](http://codemirror.net/doc/manual.html#addLineClass) stick to the rest of the gutter during horizontal scrolling.
242
-
243
- The contenteditable [`inputStyle`](http://codemirror.net/doc/manual.html#option_inputStyle) now properly supports pasting on pre-Edge IE versions.
244
-
245
- [javascript mode](http://codemirror.net/mode/javascript): Fix some small parsing bugs and improve TypeScript support.
246
-
247
- [matchbrackets addon](http://codemirror.net/doc/manual.html#addon_matchbrackets): Fix bug where active highlighting was left in editor when the addon was disabled.
248
-
249
- [match-highlighter addon](http://codemirror.net/doc/manual.html#addon_match-highlighter): Only start highlighting things when the editor gains focus.
250
-
251
- [javascript-hint addon](http://codemirror.net/doc/manual.html#addon_javascript-hint): Also complete non-enumerable properties.
252
-
253
- ### New features
254
-
255
- The [`addOverlay`](http://codemirror.net/doc/manual.html#addOverlay) method now supports a `priority` option to control the order in which overlays are applied.
256
-
257
- MIME types that end in `+json` now default to the JSON mode when the MIME itself is not defined.
258
-
259
- ### Breaking changes
260
-
261
- The mode formerly known as Jade was renamed to [Pug](http://codemirror.net/mode/pug).
262
-
263
- The [Python mode](http://codemirror.net/mode/python) now defaults to Python 3 (rather than 2) syntax.
264
-
265
- ## 5.17.0 (2016-07-19)
266
-
267
- ### Bugfixes
268
-
269
- Fix problem with wrapped trailing whitespace displaying incorrectly.
270
-
271
- Prevent IME dialog from overlapping typed content in Chrome.
272
-
273
- Improve measuring of characters near a line wrap.
274
-
275
- [javascript mode](http://codemirror.net/mode/javascript): Improve support for `async`, allow trailing commas in `import` lists.
276
-
277
- [vim bindings](http://codemirror.net/demo/vim.html): Fix backspace in replace mode.
278
-
279
- [sublime bindings](http://codemirror.net/demo/sublime.html): Fix some key bindings on OS X to match Sublime Text.
280
-
281
- ### New features
282
-
283
- [markdown mode](http://codemirror.net/mode/markdown): Add more classes to image links in highlight-formatting mode.
284
-
285
- ## 5.16.0 (2016-06-20)
286
-
287
- ### Bugfixes
288
-
289
- Fix glitches when dragging content caused by the drop indicator receiving mouse events.
290
-
291
- Make Control-drag work on Firefox.
292
-
293
- Make clicking or selection-dragging at the end of a wrapped line select the right position.
294
-
295
- [show-hint addon](http://codemirror.net/doc/manual.html#addon_show-hint): Prevent widget scrollbar from hiding part of the hint text.
296
-
297
- [rulers addon](http://codemirror.net/doc/manual.html#addon_rulers): Prevent rulers from forcing a horizontal editor scrollbar.
298
-
299
- ### New features
300
-
301
- [search addon](http://codemirror.net/doc/manual.html#addon_search): Automatically bind search-related keys in persistent dialog.
302
-
303
- [sublime keymap](http://codemirror.net/demo/sublime.html): Add a multi-cursor aware smart backspace binding.
304
-
305
- ## 5.15.2 (2016-05-20)
306
-
307
- ### Bugfixes
308
-
309
- Fix a critical document corruption bug that occurs when a document is gradually grown.
310
-
311
- ## 5.15.0 (2016-05-20)
312
-
313
- ### Bugfixes
314
-
315
- Fix bug that caused the selection to reset when focusing the editor in contentEditable input mode.
316
-
317
- Fix issue where not all ASCII control characters were being replaced by placeholders.
318
-
319
- Remove the assumption that all modes have a `startState` method from several wrapping modes.
320
-
321
- Fix issue where the editor would complain about overlapping collapsed ranges when there weren't any.
322
-
323
- Optimize document tree building when loading or pasting huge chunks of content.
324
-
325
- [markdown mode](http://codemirror.net/mode/markdown/): Fix several issues in matching link targets.
326
-
327
- [clike mode](http://codemirror.net/mode/clike/): Improve indentation of C++ template declarations.
328
-
329
- ### New features
330
-
331
- Explicitly bind Ctrl-O on OS X to make that binding (“open line”) act as expected.
332
-
333
- Pasting [linewise-copied](http://codemirror.net/doc/manual.html#option_lineWiseCopyCut) content when there is no selection now inserts the lines above the current line.
334
-
335
- [javascript mode](http://codemirror.net/mode/javascript/): Support `async`/`await` and improve support for TypeScript type syntax.
336
-
337
- ## 5.14.2 (2016-04-20)
338
-
339
- ### Bugfixes
340
-
341
- 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.
342
-
343
- Set `dataTransfer.effectAllowed` in `dragstart` handler to help browsers use the right drag icon.
344
-
345
- Add the [mbox mode](http://codemirror.net/mode/mbox/index.html) to `mode/meta.js`.
346
-
347
- ## 5.14.0 (2016-04-20)
348
-
349
- ### Bugfixes
350
-
351
- [`posFromIndex`](http://codemirror.net/doc/manual.html#posFromIndex) and [`indexFromPos`](http://codemirror.net/doc/manual.html#indexFromPos) now take [`lineSeparator`](http://codemirror.net/doc/manual.html#option_lineSeparator) into account.
352
-
353
- [vim bindings](http://codemirror.net/demo/vim.html): Only call `.save()` when it is actually available.
354
-
355
- [comment addon](http://codemirror.net/doc/manual.html#addon_comment): Be careful not to mangle multi-line strings.
356
-
357
- [Python mode](http://codemirror.net/mode/python/index.html): Improve distinguishing of decorators from `@` operators.
358
-
359
- [`findMarks`](http://codemirror.net/doc/manual.html#findMarks): No longer return marks that touch but don't overlap given range.
360
-
361
- ### New features
362
-
363
- [vim bindings](http://codemirror.net/demo/vim.html): Add yank command.
364
-
365
- [match-highlighter addon](http://codemirror.net/doc/manual.html#addon_match-highlighter): Add `trim` option to disable ignoring of whitespace.
366
-
367
- [PowerShell mode](http://codemirror.net/mode/powershell/index.html): Added.
368
-
369
- [Yacas mode](http://codemirror.net/mode/yacas/index.html): Added.
370
-
371
- [Web IDL mode](http://codemirror.net/mode/webidl/index.html): Added.
372
-
373
- [SAS mode](http://codemirror.net/mode/sas/index.html): Added.
374
-
375
- [mbox mode](http://codemirror.net/mode/mbox/index.html): Added.
376
-
377
- ## 5.13.2 (2016-03-23)
378
-
379
- ### Bugfixes
380
-
381
- Solves a problem where the gutter would sometimes not extend all the way to the end of the document.
382
-
383
- ## 5.13.0 (2016-03-21)
384
-
385
- ### New features
386
-
387
- New DOM event forwarded: [`"dragleave"`](http://codemirror.net/doc/manual.html#event_dom).
388
-
389
- [protobuf mode](http://codemirror.net/mode/protobuf/index.html): Newly added.
390
-
391
- ### Bugfixes
392
-
393
- Fix problem where [`findMarks`](http://codemirror.net/doc/manual.html#findMarks) sometimes failed to find multi-line marks.
394
-
395
- Fix crash that showed up when atomic ranges and bidi text were combined.
396
-
397
- [show-hint addon](http://codemirror.net/demo/complete.html): Completion widgets no longer close when the line indented or dedented.
398
-
399
- [merge addon](http://codemirror.net/demo/merge.html): Fix bug when merging chunks at the end of the file.
400
-
401
- [placeholder addon](http://codemirror.net/doc/manual.html#addon_placeholder): No longer gets confused by [`swapDoc`](http://codemirror.net/doc/manual.html#swapDoc).
402
-
403
- [simplescrollbars addon](http://codemirror.net/doc/manual.html#addon_simplescrollbars): Fix invalid state when deleting at end of document.
404
-
405
- [clike mode](http://codemirror.net/mode/clike/index.html): No longer gets confused when a comment starts after an operator.
406
-
407
- [markdown mode](http://codemirror.net/mode/markdown/index.html): Now supports CommonMark-style flexible list indentation.
408
-
409
- [dylan mode](http://codemirror.net/mode/dylan/index.html): Several improvements and fixes.
410
-
411
- ## 5.12.0 (2016-02-19)
412
-
413
- ### New features
414
-
415
- [Vim bindings](http://codemirror.net/demo/vim.html): Ctrl-Q is now an alias for Ctrl-V.
416
-
417
- [Vim bindings](http://codemirror.net/demo/vim.html): The Vim API now exposes an `unmap` method to unmap bindings.
418
-
419
- [active-line addon](http://codemirror.net/demo/activeline.html): This addon can now style the active line's gutter.
420
-
421
- [FCL mode](http://codemirror.net/mode/fcl/): Newly added.
422
-
423
- [SQL mode](http://codemirror.net/mode/sql/): Now has a Postgresql dialect.
424
-
425
- ### Bugfixes
426
-
427
- 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.
428
-
429
- 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.
430
-
431
- Solve a [problem](https://github.com/codemirror/CodeMirror/issues/3821) where the horizontal scrollbar could hide text in Firefox.
432
-
433
- Fix a [bug](https://github.com/codemirror/CodeMirror/issues/3834) that caused phantom scroll space under the text in some situations.
434
-
435
- [Sublime Text bindings](http://codemirror.net/demo/sublime.html): Bind delete-line to Shift-Ctrl-K on OS X.
436
-
437
- [Markdown mode](http://codemirror.net/mode/markdown/): Fix [issue](https://github.com/codemirror/CodeMirror/issues/3787) where the mode would keep state related to fenced code blocks in an unsafe way, leading to occasional corrupted parses.
438
-
439
- [Markdown mode](http://codemirror.net/mode/markdown/): Ignore backslashes in code fragments.
440
-
441
- [Markdown mode](http://codemirror.net/mode/markdown/): Use whichever mode is registered as `text/html` to parse HTML.
442
-
443
- [Clike mode](http://codemirror.net/mode/clike/): Improve indentation of Scala `=>` functions.
444
-
445
- [Python mode](http://codemirror.net/mode/python/): Improve indentation of bracketed code.
446
-
447
- [HTMLMixed mode](http://codemirror.net/mode/htmlmixed/): Support multi-line opening tags for sub-languages (`<script>`, `<style>`, etc).
448
-
449
- [Spreadsheet mode](http://codemirror.net/mode/spreadsheet/): Fix bug where the mode did not advance the stream when finding a backslash.
450
-
451
- [XML mode](http://codemirror.net/mode/xml/): The mode now takes a `matchClosing` option to configure whether mismatched closing tags should be highlighted as errors.
452
-
453
- ## 5.11.0 (2016-01-20)
454
-
455
- * New modes: [JSX](http://codemirror.net/mode/jsx/index.html), [literate Haskell](http://codemirror.net/mode/haskell-literate/index.html)
456
- * The editor now forwards more [DOM events](http://codemirror.net/doc/manual.html#event_dom): `cut`, `copy`, `paste`, and `touchstart`. It will also forward `mousedown` for drag events
457
- * Fixes a bug where bookmarks next to collapsed spans were not rendered
458
- * The [Swift](http://codemirror.net/mode/swift/index.html) mode now supports auto-indentation
459
- * Frontmatters in the [YAML frontmatter](http://codemirror.net/mode/yaml-frontmatter/index.html) mode are now optional as intended
460
-
461
- ## 5.10.0 (2015-12-21)
462
-
463
- * Modify the way [atomic ranges](http://codemirror.net/doc/manual.html#mark_atomic) are skipped by selection to try and make it less surprising.
464
- * The [Swift mode](http://codemirror.net/mode/swift/index.html) was rewritten.
465
- * New addon: [jump-to-line](http://codemirror.net/doc/manual.html#addon_jump-to-line).
466
- * New method: [`isReadOnly`](http://codemirror.net/doc/manual.html#isReadOnly).
467
- * The [show-hint addon](http://codemirror.net/doc/manual.html#addon_show-hint) now defaults to picking completions on single click.
468
- * The object passed to [`"beforeSelectionChange"`](http://codemirror.net/doc/manual.html#event_beforeSelectionChange) events now has an `origin` property.
469
- * New mode: [Crystal](http://codemirror.net/mode/crystal/index.html).
470
-
471
- ## 5.9.0 (2015-11-23)
472
-
473
- * Improve the way overlay (OS X-style) scrollbars are handled
474
- * Make [annotatescrollbar](http://codemirror.net/doc/manual.html#addon_annotatescrollbar) and scrollpastend addons work properly together
475
- * Make [show-hint](http://codemirror.net/doc/manual.html#addon_show-hint) addon select options on single click by default, move selection to hovered item
476
- * Properly fold comments that include block-comment-start markers
477
- * Many small language mode fixes
478
-
479
- ## 5.8.0 (2015-10-20)
480
-
481
- * Fixes an infinite loop in the [hardwrap addon](http://codemirror.net/doc/manual.html#addon_hardwrap)
482
- * New modes: [NSIS](http://codemirror.net/mode/nsis/index.html), [Ceylon](http://codemirror.net/mode/clike/index.html)
483
- * The Kotlin mode is now a [clike](http://codemirror.net/mode/clike/index.html) dialect, rather than a stand-alone mode
484
- * New option: [`allowDropFileTypes`](http://codemirror.net/doc/manual.html#option_allowDropFileTypes). Binary files can no longer be dropped into CodeMirror
485
- * New themes: [bespin](http://codemirror.net/demo/theme.html#bespin), [hopscotch](http://codemirror.net/demo/theme.html#hopscotch), [isotope](http://codemirror.net/demo/theme.html#isotope), [railscasts](http://codemirror.net/demo/theme.html#railscasts)
486
-
487
- ## 5.7.0 (2015-09-21)
488
-
489
- * New modes: [Vue](http://codemirror.net/mode/vue/index.html), [Oz](http://codemirror.net/mode/oz/index.html), [MscGen](http://codemirror.net/mode/mscgen/index.html) (and dialects), [Closure Stylesheets](http://codemirror.net/mode/css/gss.html)
490
- * Implement [CommonMark](http://commonmark.org)-style flexible list indent and cross-line code spans in [Markdown](http://codemirror.net/mode/markdown/index.html) mode
491
- * Add a replace-all button to the [search addon](http://codemirror.net/doc/manual.html#addon_search), and make the persistent search dialog transparent when it obscures the match
492
- * Handle `acync`/`await` and ocal and binary numbers in [JavaScript mode](http://codemirror.net/mode/javascript/index.html)
493
- * Fix various issues with the [Haxe mode](http://codemirror.net/mode/haxe/index.html)
494
- * Make the [closebrackets addon](http://codemirror.net/doc/manual.html#addon_closebrackets) select only the wrapped text when wrapping selection in brackets
495
- * Tokenize properties as properties in the [CoffeeScript mode](http://codemirror.net/mode/coffeescript/index.html)
496
- * The [placeholder addon](http://codemirror.net/doc/manual.html#addon_placeholder) now accepts a DOM node as well as a string placeholder
497
-
498
- ## 5.6.0 (2015-08-20)
499
-
500
- * Fix bug where you could paste into a `readOnly` editor
501
- * Show a cursor at the drop location when dragging over the editor
502
- * The [Rust mode](http://codemirror.net/mode/rust/index.html) was rewritten to handle modern Rust
503
- * The editor and theme CSS was cleaned up. Some selectors are now less specific than before
504
- * New theme: [abcdef](http://codemirror.net/demo/theme.html#abcdef)
505
- * Lines longer than [`maxHighlightLength`](http://codemirror.net/doc/manual.html#option_maxHighlightLength) are now less likely to mess up indentation
506
- * New addons: [`autorefresh`](http://codemirror.net/doc/manual.html#addon_autorefresh) for refreshing an editor the first time it becomes visible, and `html-lint` for using [HTMLHint](http://htmlhint.com/)
507
- * The [`search`](http://codemirror.net/doc/manual.html#addon_search) addon now recognizes `\r` and `\n` in pattern and replacement input
508
-
509
- ## 5.5.0 (2015-07-20)
510
-
511
- * New option: [`lineSeparator`](http://codemirror.net/doc/manual.html#option_lineSeparator) (with corresponding [method](http://codemirror.net/doc/manual.html#lineSeparator))
512
- * New themes: [dracula](http://codemirror.net/demo/theme.html#dracula), [seti](http://codemirror.net/demo/theme.html#seti), [yeti](http://codemirror.net/demo/theme.html#yeti), [material](http://codemirror.net/demo/theme.html#material), and [icecoder](http://codemirror.net/demo/theme.html#icecoder)
513
- * New modes: [Brainfuck](http://codemirror.net/mode/brainfuck/index.html), [VHDL](http://codemirror.net/mode/vhdl/index.html), Squirrel ([clike](http://codemirror.net/mode/clike/index.html) dialect)
514
- * Define a `findPersistent` command in the [search](http://codemirror.net/demo/search.html) addon, for a dialog that stays open as you cycle through matches
515
- * From this release on, the NPM module doesn't include documentation and demos
516
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.4.0...5.5.0)
517
-
518
- ## 5.4.0 (2015-06-25)
519
-
520
- * New modes: [Twig](http://codemirror.net/mode/twig/index.html), [Elm](http://codemirror.net/mode/elm/index.html), [Factor](http://codemirror.net/mode/factor/index.html), [Swift](http://codemirror.net/mode/swift/index.html)
521
- * Prefer clipboard API (if available) when pasting
522
- * Refined definition highlighting in [clike](http://codemirror.net/mode/clike/index.html) mode
523
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.3.0...5.4.0)
524
-
525
- ## 5.3.0 (2015-05-20)
526
-
527
- * Fix several regressions in the [`show-hint`](http://codemirror.net/doc/manual.html#addon_show-hint) addon (`completeSingle` option, `"shown"` and `"close"` events)
528
- * The [vim mode](http://codemirror.net/demo/vim.html) API was [documented](http://codemirror.net/doc/manual.html#vimapi)
529
- * New modes: [ASN.1](http://codemirror.net/mode/asn.1/index.html), [TTCN](http://codemirror.net/mode/ttcn/index.html), and [TTCN-CFG](http://codemirror.net/mode/ttcn-cfg/index.html)
530
- * The [clike](http://codemirror.net/mode/clike/index.html) mode can now deep-indent `switch` statements, and roughly recognizes types and defined identifiers
531
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.2.0...5.3.0)
532
-
533
- ## 5.2.0 (2015-04-20)
534
-
535
- * Fix several race conditions in [`show-hint`](http://codemirror.net/doc/manual.html#addon_show-hint)'s asynchronous mode
536
- * Fix backspace binding in [Sublime bindings](http://codemirror.net/demo/sublime.html)
537
- * Change the way IME is handled in the `"textarea"` [input style](http://codemirror.net/doc/manual.html#option_inputStyle)
538
- * New modes: [MUMPS](http://codemirror.net/mode/mumps/index.html), [Handlebars](http://codemirror.net/mode/handlebars/index.html)
539
- * Rewritten modes: [Django](http://codemirror.net/mode/django/index.html), [Z80](http://codemirror.net/mode/z80/index.html)
540
- * New theme: [Liquibyte](http://codemirror.net/demo/theme.html#liquibyte)
541
- * New option: [`lineWiseCopyCut`](http://codemirror.net/doc/manual.html#option_lineWiseCopyCut)
542
- * The [Vim mode](http://codemirror.net/demo/vim.html) now supports buffer-local options and the `filetype` setting
543
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.1.0...5.2.0)
544
-
545
- ## 5.1.0 (2015-03-23)
546
-
547
- * New modes: [ASCII armor](http://codemirror.net/mode/asciiarmor/index.html) (PGP data), [Troff](http://codemirror.net/mode/troff/index.html), and [CMake](http://codemirror.net/mode/cmake/index.html).
548
- * Remove SmartyMixed mode, rewrite [Smarty](http://codemirror.net/mode/smarty/index.html) mode to supersede it.
549
- * New commands in the [merge addon](http://codemirror.net/doc/manual.html#addon_merge): `goNextDiff` and `goPrevDiff`.
550
- * The [closebrackets addon](http://codemirror.net/doc/manual.html#addon_closebrackets) can now be configured per mode.
551
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/5.0.0...5.1.0).
552
-
553
- ## 5.0.0 (2015-02-20)
554
-
555
- * Experimental mobile support (tested on iOS, Android Chrome, stock Android browser)
556
- * New option [`inputStyle`](http://codemirror.net/doc/manual.html#option_inputStyle) to switch between hidden textarea and contenteditable input.
557
- * The [`getInputField`](http://codemirror.net/doc/manual.html#getInputField) method is no longer guaranteed to return a textarea.
558
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.13.0...5.0.0).
559
-
560
- ## 4.13.0 (2015-02-20)
561
-
562
- * Fix the way the [`closetag`](http://codemirror.net/demo/closetag.html) demo handles the slash character.
563
- * New modes: [Forth](http://codemirror.net/mode/forth/index.html), [Stylus](http://codemirror.net/mode/stylus/index.html).
564
- * Make the [CSS mode](http://codemirror.net/mode/css/index.html) understand some modern CSS extensions.
565
- * Have the [Scala mode](http://codemirror.net/mode/clike/index.html) handle symbols and triple-quoted strings.
566
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.12.0...4.13.0).
567
-
568
- ## 4.12.0 (2015-01-22)
569
-
570
- * The [`closetag`](http://codemirror.net/doc/manual.html#addon_closetag) addon now defines a `"closeTag"` command.
571
- * Adds a `findModeByFileName` to the [mode metadata](http://codemirror.net/doc/manual.html#addon_meta) addon.
572
- * [Simple mode](http://codemirror.net/demo/simplemode.html) rules can now contain a `sol` property to only match at the start of a line.
573
- * New addon: [`selection-pointer`](http://codemirror.net/doc/manual.html#addon_selection-pointer) to style the mouse cursor over the selection.
574
- * Improvements to the [Sass mode](http://codemirror.net/mode/sass/index.html)'s indentation.
575
- * The [Vim keymap](http://codemirror.net/demo/vim.html)'s search functionality now supports [scrollbar annotation](http://codemirror.net/doc/manual.html#addon_matchesonscrollbar).
576
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.11.0...4.12.0).
577
-
578
- ## 4.11.0 (2015-01-09)
579
-
580
- Unfortunately, 4.10 did not take care of the Firefox scrolling issue entirely. This release adds two more patches to address that.
581
-
582
- ## 4.10.0 (2014-12-29)
583
-
584
- Emergency single-patch update to 4.9\. Fixes Firefox-specific problem where the cursor could end up behind the horizontal scrollbar.
585
-
586
- ## 4.9.0 (2014-12-23)
587
-
588
- * Overhauled scroll bar handling. Add pluggable [scrollbar implementations](http://codemirror.net/demo/simplescrollbars.html).
589
- * Tweaked behavior for the [completion addons](http://codemirror.net/doc/manual.html#addon_show-hint) to not take text after cursor into account.
590
- * Two new optional features in the [merge addon](http://codemirror.net/doc/manual.html#addon_merge): aligning editors, and folding unchanged text.
591
- * New modes: [Dart](http://codemirror.net/mode/dart/index.html), [EBNF](http://codemirror.net/mode/ebnf/index.html), [spreadsheet](http://codemirror.net/mode/spreadsheet/index.html), and [Soy](http://codemirror.net/mode/soy/index.html).
592
- * New [addon](http://codemirror.net/demo/panel.html) to show persistent panels below/above an editor.
593
- * New themes: [zenburn](http://codemirror.net/demo/theme.html#zenburn) and [tomorrow night bright](http://codemirror.net/demo/theme.html#tomorrow-night-bright).
594
- * Allow ctrl-click to clear existing cursors.
595
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.8.0...4.9.0).
596
-
597
- ## 4.8.0 (2014-11-22)
598
-
599
- * Built-in support for [multi-stroke key bindings](http://codemirror.net/doc/manual.html#normalizeKeyMap).
600
- * New method: [`getLineTokens`](http://codemirror.net/doc/manual.html#getLineTokens).
601
- * New modes: [dockerfile](http://codemirror.net/mode/dockerfile/index.html), [IDL](http://codemirror.net/mode/idl/index.html), [Objective C](http://codemirror.net/mode/clike/index.html) (crude).
602
- * Support styling of gutter backgrounds, allow `"gutter"` styles in [`addLineClass`](http://codemirror.net/doc/manual.html#addLineClass).
603
- * Many improvements to the [Vim mode](http://codemirror.net/demo/vim.html), rewritten visual mode.
604
- * Improvements to modes: [gfm](http://codemirror.net/mode/gfm/index.html) (strikethrough), [SPARQL](http://codemirror.net/mode/sparql/index.html) (version 1.1 support), and [sTeX](http://codemirror.net/mode/stex/index.html) (no more runaway math mode).
605
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.7.0...4.8.0).
606
-
607
- ## 4.7.0 (2014-10-20)
608
-
609
- * **Incompatible**: The [lint addon](http://codemirror.net/demo/lint.html) now passes the editor's value as first argument to asynchronous lint functions, for consistency. The editor is still passed, as fourth argument.
610
- * Improved handling of unicode identifiers in modes for languages that support them.
611
- * More mode improvements: [CoffeeScript](http://codemirror.net/mode/coffeescript/index.html) (indentation), [Verilog](http://codemirror.net/mode/verilog/index.html) (indentation), [Scala](http://codemirror.net/mode/clike/index.html) (indentation, triple-quoted strings), and [PHP](http://codemirror.net/mode/php/index.html) (interpolated variables in heredoc strings).
612
- * New modes: [Textile](http://codemirror.net/mode/textile/index.html) and [Tornado templates](http://codemirror.net/mode/tornado/index.html).
613
- * Experimental new [way to define modes](http://codemirror.net/demo/simplemode.html).
614
- * Improvements to the [Vim bindings](http://codemirror.net/demo/vim.html): Arbitrary insert mode key mappings are now possible, and text objects are supported in visual mode.
615
- * The mode [meta-information file](http://codemirror.net/mode/meta.js) now includes information about file extensions, and [helper functions](http://codemirror.net/doc/manual.html#addon_meta) `findModeByMIME` and `findModeByExtension`.
616
- * New logo!
617
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.6.0...4.7.0).
618
-
619
- ## 4.6.0 (2014-09-19)
620
-
621
- * New mode: [Modelica](http://codemirror.net/mode/modelica/index.html)
622
- * New method: [`findWordAt`](http://codemirror.net/doc/manual.html#findWordAt)
623
- * Make it easier to [use text background styling](http://codemirror.net/demo/markselection.html)
624
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.5.0...4.6.0).
625
-
626
- ## 4.5.0 (2014-08-21)
627
-
628
- * Fix several serious bugs with horizontal scrolling
629
- * New mode: [Slim](http://codemirror.net/mode/slim/index.html)
630
- * New command: [`goLineLeftSmart`](http://codemirror.net/doc/manual.html#command_goLineLeftSmart)
631
- * More fixes and extensions for the [Vim](http://codemirror.net/demo/vim.html) visual block mode
632
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.4.0...4.5.0).
633
-
634
- ## 4.4.0 (2014-07-21)
635
-
636
- * **Note:** Some events might now fire in slightly different order (`"change"` is still guaranteed to fire before `"cursorActivity"`)
637
- * Nested operations in multiple editors are now synced (complete at same time, reducing DOM reflows)
638
- * Visual block mode for [vim](http://codemirror.net/demo/vim.html) (<C-v>) is nearly complete
639
- * New mode: [Kotlin](http://codemirror.net/mode/kotlin/index.html)
640
- * Better multi-selection paste for text copied from multiple CodeMirror selections
641
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.3.0...4.4.0).
642
-
643
- ## 4.3.0 (2014-06-23)
644
-
645
- * Several [vim bindings](http://codemirror.net/demo/vim.html) improvements: search and exCommand history, global flag for `:substitute`, `:global` command.
646
- * Allow hiding the cursor by setting [`cursorBlinkRate`](http://codemirror.net/doc/manual.html#option_cursorBlinkRate) to a negative value.
647
- * Make gutter markers themeable, use this in foldgutter.
648
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.2.0...4.3.0).
649
-
650
- ## 4.2.0 (2014-05-19)
651
-
652
- * Fix problem where some modes were broken by the fact that empty tokens were forbidden.
653
- * Several fixes to context menu handling.
654
- * On undo, scroll _change_, not cursor, into view.
655
- * Rewritten [Jade](http://codemirror.net/mode/jade/index.html) mode.
656
- * Various improvements to [Shell](http://codemirror.net/mode/shell/index.html) (support for more syntax) and [Python](http://codemirror.net/mode/python/index.html) (better indentation) modes.
657
- * New mode: [Cypher](http://codemirror.net/mode/cypher/index.html).
658
- * New theme: [Neo](http://codemirror.net/demo/theme.html#neo).
659
- * Support direct styling options (color, line style, width) in the [rulers](http://codemirror.net/doc/manual.html#addon_rulers) addon.
660
- * Recognize per-editor configuration for the [show-hint](http://codemirror.net/doc/manual.html#addon_show-hint) and [foldcode](http://codemirror.net/doc/manual.html#addon_foldcode) addons.
661
- * More intelligent scanning for existing close tags in [closetag](http://codemirror.net/doc/manual.html#addon_closetag) addon.
662
- * In the [Vim bindings](http://codemirror.net/demo/vim.html): Fix bracket matching, support case conversion in visual mode, visual paste, append action.
663
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.1.0...4.2.0).
664
-
665
- ## 4.1.0 (2014-04-22)
666
-
667
- * _Slightly incompatible_: The [`"cursorActivity"`](http://codemirror.net/doc/manual.html#event_cursorActivity) event now fires after all other events for the operation (and only for handlers that were actually registered at the time the activity happened).
668
- * New command: [`insertSoftTab`](http://codemirror.net/doc/manual.html#command_insertSoftTab).
669
- * New mode: [Django](http://codemirror.net/mode/django/index.html).
670
- * Improved modes: [Verilog](http://codemirror.net/mode/verilog/index.html) (rewritten), [Jinja2](http://codemirror.net/mode/jinja2/index.html), [Haxe](http://codemirror.net/mode/haxe/index.html), [PHP](http://codemirror.net/mode/php/index.html) (string interpolation highlighted), [JavaScript](http://codemirror.net/mode/javascript/index.html) (indentation of trailing else, template strings), [LiveScript](http://codemirror.net/mode/livescript/index.html) (multi-line strings).
671
- * Many small issues from the 3.x→4.x transition were found and fixed.
672
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/4.0.3...4.1.0).
673
-
674
- ## 3.24.0 (2014-04-22)
675
-
676
- 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.
677
-
678
- ## 3.23.0 (2014-03-20)
679
-
680
- * In the [XML mode](http://codemirror.net/mode/xml/index.html), add `brackets` style to angle brackets, fix case-sensitivity of tags for HTML.
681
- * New mode: [Dylan](http://codemirror.net/mode/dylan/index.html).
682
- * Many improvements to the [Vim bindings](http://codemirror.net/demo/vim.html).
683
-
684
- ## 3.22.0 (2014-02-21)
685
-
686
- * Adds the [`findMarks`](http://codemirror.net/doc/manual.html#findMarks) method.
687
- * New addons: [rulers](http://codemirror.net/doc/manual.html#addon_rulers), markdown-fold, yaml-lint.
688
- * New theme: [mdn-like](http://codemirror.net/demo/theme.html#mdn-like).
689
- * New mode: [Solr](http://codemirror.net/mode/solr/index.html).
690
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.21.0...3.22.0).
691
-
692
- ## 3.21.0 (2014-01-16)
693
-
694
- * Auto-indenting a block will no longer add trailing whitespace to blank lines.
695
- * Marking text has a new option [`clearWhenEmpty`](http://codemirror.net/doc/manual.html#markText) to control auto-removal.
696
- * Several bugfixes in the handling of bidirectional text.
697
- * The [XML](http://codemirror.net/mode/xml/index.html) and [CSS](http://codemirror.net/mode/css/index.html) modes were largely rewritten. [LESS](http://codemirror.net/mode/css/less.html) support was added to the CSS mode.
698
- * The OCaml mode was moved to an [mllike](http://codemirror.net/mode/mllike/index.html) mode, F# support added.
699
- * Make it possible to fetch multiple applicable helper values with [`getHelpers`](http://codemirror.net/doc/manual.html#getHelpers), and to register helpers matched on predicates with [`registerGlobalHelper`](http://codemirror.net/doc/manual.html#registerGlobalHelper).
700
- * New theme [pastel-on-dark](http://codemirror.net/demo/theme.html#pastel-on-dark).
701
- * Better ECMAScript 6 support in [JavaScript](http://codemirror.net/mode/javascript/index.html) mode.
702
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.20.0...3.21.0).
703
-
704
- ## 3.20.0 (2013-11-21)
705
-
706
- * New modes: [Julia](http://codemirror.net/mode/julia/index.html) and [PEG.js](http://codemirror.net/mode/pegjs/index.html).
707
- * Support ECMAScript 6 in the [JavaScript mode](http://codemirror.net/mode/javascript/index.html).
708
- * Improved indentation for the [CoffeeScript mode](http://codemirror.net/mode/coffeescript/index.html).
709
- * Make non-printable-character representation [configurable](http://codemirror.net/doc/manual.html#option_specialChars).
710
- * Add ‘notification’ functionality to [dialog](http://codemirror.net/doc/manual.html#addon_dialog) addon.
711
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.19.0...3.20.0).
712
-
713
- ## 3.19.0 (2013-10-21)
714
-
715
- * New modes: [Eiffel](http://codemirror.net/mode/eiffel/index.html), [Gherkin](http://codemirror.net/mode/gherkin/index.html), [MSSQL dialect](http://codemirror.net/mode/sql/?mime=text/x-mssql).
716
- * New addons: [hardwrap](http://codemirror.net/doc/manual.html#addon_hardwrap), [sql-hint](http://codemirror.net/doc/manual.html#addon_sql-hint).
717
- * New theme: [MBO](http://codemirror.net/demo/theme.html#mbo).
718
- * Add [support](http://codemirror.net/doc/manual.html#token_style_line) for line-level styling from mode tokenizers.
719
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.18.0...3.19.0).
720
-
721
- ## 3.18.0 (2013-09-23)
722
-
723
- Emergency release to fix a problem in 3.17 where `.setOption("lineNumbers", false)` would raise an error.
724
-
725
- ## 3.17.0 (2013-09-23)
726
-
727
- * New modes: [Fortran](http://codemirror.net/mode/fortran/index.html), [Octave](http://codemirror.net/mode/octave/index.html) (Matlab), [TOML](http://codemirror.net/mode/toml/index.html), and [DTD](http://codemirror.net/mode/dtd/index.html).
728
- * New addons: [`css-lint`](http://codemirror.net/addon/lint/css-lint.js), [`css-hint`](http://codemirror.net/doc/manual.html#addon_css-hint).
729
- * Improve resilience to CSS 'frameworks' that globally mess up `box-sizing`.
730
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.16.0...3.17.0).
731
-
732
- ## 3.16.0 (2013-08-21)
733
-
734
- * The whole codebase is now under a single [license](http://codemirror.net/LICENSE) file.
735
- * The project page was overhauled and redesigned.
736
- * New themes: [Paraiso](http://codemirror.net/demo/theme.html#paraiso-dark) ([light](http://codemirror.net/demo/theme.html#paraiso-light)), [The Matrix](http://codemirror.net/demo/theme.html#the-matrix).
737
- * Improved interaction between themes and [active-line](http://codemirror.net/doc/manual.html#addon_active-line)/[matchbrackets](http://codemirror.net/doc/manual.html#addon_matchbrackets) addons.
738
- * New [folding](http://codemirror.net/doc/manual.html#addon_foldcode) function `CodeMirror.fold.comment`.
739
- * Added [fullscreen](http://codemirror.net/doc/manual.html#addon_fullscreen) addon.
740
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.15.0...3.16.0).
741
-
742
- ## 3.15.0 (2013-07-29)
743
-
744
- * New modes: [Jade](http://codemirror.net/mode/jade/index.html), [Nginx](http://codemirror.net/mode/nginx/index.html).
745
- * New addons: [Tern](http://codemirror.net/demo/tern.html), [matchtags](http://codemirror.net/doc/manual.html#addon_matchtags), and [foldgutter](http://codemirror.net/doc/manual.html#addon_foldgutter).
746
- * Introduced [_helper_](http://codemirror.net/doc/manual.html#getHelper) concept ([context](https://groups.google.com/forum/#!msg/codemirror/cOc0xvUUEUU/nLrX1-qnidgJ)).
747
- * New method: [`getModeAt`](http://codemirror.net/doc/manual.html#getModeAt).
748
- * New themes: base16 [dark](http://codemirror.net/demo/theme.html#base16-dark)/[light](http://codemirror.net/demo/theme.html#base16-light), 3024 [dark](http://codemirror.net/demo/theme.html#3024-night)/[light](http://codemirror.net/demo/theme.html#3024-day), [tomorrow-night](http://codemirror.net/demo/theme.html#tomorrow-night-eighties).
749
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.14.0...3.15.0).
750
-
751
- ## 3.14.0 (2013-06-20)
752
-
753
- * New addons: [trailing space highlight](http://codemirror.net/doc/manual.html#addon_trailingspace), [XML completion](http://codemirror.net/doc/manual.html#addon_xml-hint) (rewritten), and [diff merging](http://codemirror.net/doc/manual.html#addon_merge).
754
- * [`markText`](http://codemirror.net/doc/manual.html#markText) and [`addLineWidget`](http://codemirror.net/doc/manual.html#addLineWidget) now take a `handleMouseEvents` option.
755
- * New methods: [`lineAtHeight`](http://codemirror.net/doc/manual.html#lineAtHeight), [`getTokenTypeAt`](http://codemirror.net/doc/manual.html#getTokenTypeAt).
756
- * More precise cleanness-tracking using [`changeGeneration`](http://codemirror.net/doc/manual.html#changeGeneration) and [`isClean`](http://codemirror.net/doc/manual.html#isClean).
757
- * Many extensions to [Emacs](http://codemirror.net/demo/emacs.html) mode (prefixes, more navigation units, and more).
758
- * New events [`"keyHandled"`](http://codemirror.net/doc/manual.html#event_keyHandled) and [`"inputRead"`](http://codemirror.net/doc/manual.html#event_inputRead).
759
- * Various improvements to [Ruby](http://codemirror.net/mode/ruby/index.html), [Smarty](http://codemirror.net/mode/smarty/index.html), [SQL](http://codemirror.net/mode/sql/index.html), and [Vim](http://codemirror.net/demo/vim.html) modes.
760
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/3.13.0...3.14.0).
761
-
762
- ## 3.13.0 (2013-05-20)
763
-
764
- * New modes: [COBOL](http://codemirror.net/mode/cobol/index.html) and [HAML](http://codemirror.net/mode/haml/index.html).
765
- * New options: [`cursorScrollMargin`](http://codemirror.net/doc/manual.html#option_cursorScrollMargin) and [`coverGutterNextToScrollbar`](http://codemirror.net/doc/manual.html#option_coverGutterNextToScrollbar).
766
- * New addon: [commenting](http://codemirror.net/doc/manual.html#addon_comment).
767
- * More features added to the [Vim keymap](http://codemirror.net/demo/vim.html).
768
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.12...3.13.0).
769
-
770
- ## 3.12.0 (2013-04-19)
771
-
772
- * New mode: [GNU assembler](http://codemirror.net/mode/gas/index.html).
773
- * New options: [`maxHighlightLength`](http://codemirror.net/doc/manual.html#option_maxHighlightLength) and [`historyEventDelay`](http://codemirror.net/doc/manual.html#option_historyEventDelay).
774
- * Added [`addToHistory`](http://codemirror.net/doc/manual.html#mark_addToHistory) option for `markText`.
775
- * Various fixes to JavaScript tokenization and indentation corner cases.
776
- * Further improvements to the vim mode.
777
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.11...v3.12).
778
-
779
- ## 3.11.0 (2013-03-20)
780
-
781
- * **Removed code:** `collapserange`, `formatting`, and `simple-hint` addons. `plsql` and `mysql` modes (use [`sql`](http://codemirror.net/mode/sql/index.html) mode).
782
- * **Moved code:** the range-finding functions for folding now have [their own files](http://codemirror.net/addon/fold/).
783
- * **Changed interface:** the [`continuecomment`](http://codemirror.net/doc/manual.html#addon_continuecomment) addon now exposes an option, rather than a command.
784
- * New modes: [SCSS](http://codemirror.net/mode/css/scss.html), [Tcl](http://codemirror.net/mode/tcl/index.html), [LiveScript](http://codemirror.net/mode/livescript/index.html), and [mIRC](http://codemirror.net/mode/mirc/index.html).
785
- * New addons: [`placeholder`](http://codemirror.net/demo/placeholder.html), [HTML completion](http://codemirror.net/demo/html5complete.html).
786
- * New methods: [`hasFocus`](http://codemirror.net/doc/manual.html#hasFocus), [`defaultCharWidth`](http://codemirror.net/doc/manual.html#defaultCharWidth).
787
- * New events: [`beforeCursorEnter`](http://codemirror.net/doc/manual.html#event_beforeCursorEnter), [`renderLine`](http://codemirror.net/doc/manual.html#event_renderLine).
788
- * Many improvements to the [`show-hint`](http://codemirror.net/doc/manual.html#addon_show-hint) completion dialog addon.
789
- * Tweak behavior of by-word cursor motion.
790
- * Further improvements to the [vim mode](http://codemirror.net/demo/vim.html).
791
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.1...v3.11).
792
-
793
- ## 3.02.0 (2013-01-25)
794
-
795
- Single-bugfix release. Fixes a problem that prevents CodeMirror instances from being garbage-collected after they become unused.
796
-
797
- ## 3.01.0 (2013-01-21)
798
-
799
- * Move all add-ons into an organized directory structure under [`/addon`](http://codemirror.net/addon/). **You might have to adjust your paths.**
800
- * New modes: [D](http://codemirror.net/mode/d/index.html), [Sass](http://codemirror.net/mode/sass/index.html), [APL](http://codemirror.net/mode/apl/index.html), [SQL](http://codemirror.net/mode/sql/index.html) (configurable), and [Asterisk](http://codemirror.net/mode/asterisk/index.html).
801
- * Several bugfixes in right-to-left text support.
802
- * Add [`rtlMoveVisually`](http://codemirror.net/doc/manual.html#option_rtlMoveVisually) option.
803
- * Improvements to vim keymap.
804
- * Add built-in (lightweight) [overlay mode](http://codemirror.net/doc/manual.html#addOverlay) support.
805
- * Support `showIfHidden` option for [line widgets](http://codemirror.net/doc/manual.html#addLineWidget).
806
- * Add simple [Python hinter](http://codemirror.net/doc/manual.html#addon_python-hint).
807
- * Bring back the [`fixedGutter`](http://codemirror.net/doc/manual.html#option_fixedGutter) option.
808
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.0...v3.01).
809
-
810
- ## 3.1.0 (2013-02-21)
811
-
812
- * **Incompatible:** key handlers may now _return_, rather than _throw_ `CodeMirror.Pass` to signal they didn't handle the key.
813
- * Make documents a [first-class construct](http://codemirror.net/doc/manual.html#api_doc), support split views and subviews.
814
- * Add a [new module](http://codemirror.net/doc/manual.html#addon_show-hint) for showing completion hints. Deprecate `simple-hint.js`.
815
- * Extend [htmlmixed mode](http://codemirror.net/mode/htmlmixed/index.html) to allow custom handling of script types.
816
- * Support an `insertLeft` option to [`setBookmark`](http://codemirror.net/doc/manual.html#setBookmark).
817
- * Add an [`eachLine`](http://codemirror.net/doc/manual.html#eachLine) method to iterate over a document.
818
- * New addon modules: [selection marking](http://codemirror.net/demo/markselection.html), [linting](http://codemirror.net/demo/lint.html), and [automatic bracket closing](http://codemirror.net/demo/closebrackets.html).
819
- * Add [`"beforeChange"`](http://codemirror.net/doc/manual.html#event_beforeChange) and [`"beforeSelectionChange"`](http://codemirror.net/doc/manual.html#event_beforeSelectionChange) events.
820
- * Add [`"hide"`](http://codemirror.net/doc/manual.html#event_hide) and [`"unhide"`](http://codemirror.net/doc/manual.html#event_unhide) events to marked ranges.
821
- * Fix [`coordsChar`](http://codemirror.net/doc/manual.html#coordsChar)'s interpretation of its argument to match the documentation.
822
- * New modes: [Turtle](http://codemirror.net/mode/turtle/index.html) and [Q](http://codemirror.net/mode/q/index.html).
823
- * Further improvements to the [vim mode](http://codemirror.net/demo/vim.html).
824
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.01...v3.1).
825
-
826
- ## 3.0.0 (2012-12-10)
827
-
828
- **New major version**. Only partially backwards-compatible. See the [upgrading guide](http://codemirror.net/doc/upgrade_v3.html) for more information. Changes since release candidate 2:
829
-
830
- * Rewritten VIM mode.
831
- * Fix a few minor scrolling and sizing issues.
832
- * Work around Safari segfault when dragging.
833
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v3.0rc2...v3.0).
834
-
835
- ## 2.38.0 (2013-01-21)
836
-
837
- Integrate some bugfixes, enhancements to the vim keymap, and new modes ([D](http://codemirror.net/mode/d/index.html), [Sass](http://codemirror.net/mode/sass/index.html), [APL](http://codemirror.net/mode/apl/index.html)) from the v3 branch.
838
-
839
- ## 2.37.0 (2012-12-20)
840
-
841
- * New mode: [SQL](http://codemirror.net/mode/sql/index.html) (will replace [plsql](http://codemirror.net/mode/plsql/index.html) and [mysql](http://codemirror.net/mode/mysql/index.html) modes).
842
- * Further work on the new VIM mode.
843
- * Fix Cmd/Ctrl keys on recent Operas on OS X.
844
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v2.36...v2.37).
845
-
846
- ## 2.36.0 (2012-11-20)
847
-
848
- * New mode: [Z80 assembly](http://codemirror.net/mode/z80/index.html).
849
- * New theme: [Twilight](http://codemirror.net/demo/theme.html#twilight).
850
- * Add command-line compression helper.
851
- * Make [`scrollIntoView`](http://codemirror.net/doc/manual.html#scrollIntoView) public.
852
- * Add [`defaultTextHeight`](http://codemirror.net/doc/manual.html#defaultTextHeight) method.
853
- * Various extensions to the vim keymap.
854
- * Make [PHP mode](http://codemirror.net/mode/php/index.html) build on [mixed HTML mode](http://codemirror.net/mode/htmlmixed/index.html).
855
- * Add [comment-continuing](http://codemirror.net/doc/manual.html#addon_continuecomment) add-on.
856
- * Full [list of patches](http://codemirror.net/https://github.com/codemirror/CodeMirror/compare/v2.35...v2.36).
857
-
858
- ## 2.35.0 (2012-10-22)
859
-
860
- * New (sub) mode: [TypeScript](http://codemirror.net/mode/javascript/typescript.html).
861
- * Don't overwrite (insert key) when pasting.
862
- * Fix several bugs in [`markText`](http://codemirror.net/doc/manual.html#markText)/undo interaction.
863
- * Better indentation of JavaScript code without semicolons.
864
- * Add [`defineInitHook`](http://codemirror.net/doc/manual.html#defineInitHook) function.
865
- * Full [list of patches](https://github.com/codemirror/CodeMirror/compare/v2.34...v2.35).
866
-
867
- ## 2.34.0 (2012-09-19)
868
-
869
- * New mode: [Common Lisp](http://codemirror.net/mode/commonlisp/index.html).
870
- * Fix right-click select-all on most browsers.
871
- * Change the way highlighting happens:
872
- Saves memory and CPU cycles.
873
- `compareStates` is no longer needed.
874
- `onHighlightComplete` no longer works.
875
- * Integrate mode (Markdown, XQuery, CSS, sTex) tests in central testsuite.
876
- * Add a [`CodeMirror.version`](http://codemirror.net/doc/manual.html#version) property.
877
- * More robust handling of nested modes in [formatting](http://codemirror.net/demo/formatting.html) and [closetag](http://codemirror.net/demo/closetag.html) plug-ins.
878
- * Un/redo now preserves [marked text](http://codemirror.net/doc/manual.html#markText) and bookmarks.
879
- * [Full list](https://github.com/codemirror/CodeMirror/compare/v2.33...v2.34) of patches.
880
-
881
- ## 2.33.0 (2012-08-23)
882
-
883
- * New mode: [Sieve](http://codemirror.net/mode/sieve/index.html).
884
- * New [`getViewPort`](http://codemirror.net/doc/manual.html#getViewport) and [`onViewportChange`](http://codemirror.net/doc/manual.html#option_onViewportChange) API.
885
- * [Configurable](http://codemirror.net/doc/manual.html#option_cursorBlinkRate) cursor blink rate.
886
- * Make binding a key to `false` disabling handling (again).
887
- * Show non-printing characters as red dots.
888
- * More tweaks to the scrolling model.
889
- * Expanded testsuite. Basic linter added.
890
- * Remove most uses of `innerHTML`. Remove `CodeMirror.htmlEscape`.
891
- * [Full list](https://github.com/codemirror/CodeMirror/compare/v2.32...v2.33) of patches.
892
-
893
- ## 2.32.0 (2012-07-23)
894
-
895
- Emergency fix for a bug where an editor with line wrapping on IE will break when there is _no_ scrollbar.
896
-
897
- ## 2.31.0 (2012-07-20)
898
-
899
- * New modes: [OCaml](http://codemirror.net/mode/ocaml/index.html), [Haxe](http://codemirror.net/mode/haxe/index.html), and [VB.NET](http://codemirror.net/mode/vb/index.html).
900
- * Several fixes to the new scrolling model.
901
- * Add a [`setSize`](http://codemirror.net/doc/manual.html#setSize) method for programmatic resizing.
902
- * Add [`getHistory`](http://codemirror.net/doc/manual.html#getHistory) and [`setHistory`](http://codemirror.net/doc/manual.html#setHistory) methods.
903
- * Allow custom line separator string in [`getValue`](http://codemirror.net/doc/manual.html#getValue) and [`getRange`](http://codemirror.net/doc/manual.html#getRange).
904
- * Support double- and triple-click drag, double-clicking whitespace.
905
- * And more... [(all patches)](https://github.com/codemirror/CodeMirror/compare/v2.3...v2.31)
906
-
907
- ## 2.30.0 (2012-06-22)
908
-
909
- * **New scrollbar implementation**. Should flicker less. Changes DOM structure of the editor.
910
- * New theme: [vibrant-ink](http://codemirror.net/demo/theme.html#vibrant-ink).
911
- * Many extensions to the VIM keymap (including text objects).
912
- * Add [mode-multiplexing](http://codemirror.net/demo/multiplex.html) utility script.
913
- * Fix bug where right-click paste works in read-only mode.
914
- * Add a [`getScrollInfo`](http://codemirror.net/doc/manual.html#getScrollInfo) method.
915
- * Lots of other [fixes](https://github.com/codemirror/CodeMirror/compare/v2.25...v2.3).
916
-
917
- ## 2.25.0 (2012-05-23)
918
-
919
- * New mode: [Erlang](http://codemirror.net/mode/erlang/index.html).
920
- * **Remove xmlpure mode** (use [xml.js](http://codemirror.net/mode/xml/index.html)).
921
- * Fix line-wrapping in Opera.
922
- * Fix X Windows middle-click paste in Chrome.
923
- * Fix bug that broke pasting of huge documents.
924
- * Fix backspace and tab key repeat in Opera.
925
-
926
- ## 2.24.0 (2012-04-23)
927
-
928
- * **Drop support for Internet Explorer 6**.
929
- * New modes: [Shell](http://codemirror.net/mode/shell/index.html), [Tiki wiki](http://codemirror.net/mode/tiki/index.html), [Pig Latin](http://codemirror.net/mode/pig/index.html).
930
- * New themes: [Ambiance](http://codemirror.net/demo/theme.html#ambiance), [Blackboard](http://codemirror.net/demo/theme.html#blackboard).
931
- * More control over drag/drop with [`dragDrop`](http://codemirror.net/doc/manual.html#option_dragDrop) and [`onDragEvent`](http://codemirror.net/doc/manual.html#option_onDragEvent) options.
932
- * Make HTML mode a bit less pedantic.
933
- * Add [`compoundChange`](http://codemirror.net/doc/manual.html#compoundChange) API method.
934
- * Several fixes in undo history and line hiding.
935
- * Remove (broken) support for `catchall` in key maps, add `nofallthrough` boolean field instead.
936
-
937
- ## 2.23.0 (2012-03-26)
938
-
939
- * Change **default binding for tab**. Starting in 2.23, these bindings are default:
940
- * Tab: Insert tab character
941
- * Shift-tab: Reset line indentation to default
942
- * Ctrl/Cmd-[: Reduce line indentation (old tab behaviour)
943
- * Ctrl/Cmd-]: Increase line indentation (old shift-tab behaviour)
944
- * New modes: [XQuery](http://codemirror.net/mode/xquery/index.html) and [VBScript](http://codemirror.net/mode/vbscript/index.html).
945
- * Two new themes: [lesser-dark](http://codemirror.net/mode/less/index.html) and [xq-dark](http://codemirror.net/mode/xquery/index.html).
946
- * Differentiate between background and text styles in [`setLineClass`](http://codemirror.net/doc/manual.html#setLineClass).
947
- * Fix drag-and-drop in IE9+.
948
- * Extend [`charCoords`](http://codemirror.net/doc/manual.html#charCoords) and [`cursorCoords`](http://codemirror.net/doc/manual.html#cursorCoords) with a `mode` argument.
949
- * Add [`autofocus`](http://codemirror.net/doc/manual.html#option_autofocus) option.
950
- * Add [`findMarksAt`](http://codemirror.net/doc/manual.html#findMarksAt) method.
951
-
952
- ## 2.22.0 (2012-02-27)
953
-
954
- * Allow [key handlers](http://codemirror.net/doc/manual.html#keymaps) to pass up events, allow binding characters.
955
- * Add [`autoClearEmptyLines`](http://codemirror.net/doc/manual.html#option_autoClearEmptyLines) option.
956
- * Properly use tab stops when rendering tabs.
957
- * Make PHP mode more robust.
958
- * Support indentation blocks in [code folder](http://codemirror.net/doc/manual.html#addon_foldcode).
959
- * Add a script for [highlighting instances of the selection](http://codemirror.net/doc/manual.html#addon_match-highlighter).
960
- * New [.properties](http://codemirror.net/mode/properties/index.html) mode.
961
- * Fix many bugs.
962
-
963
- ## 2.21.0 (2012-01-27)
964
-
965
- * Added [LESS](http://codemirror.net/mode/less/index.html), [MySQL](http://codemirror.net/mode/mysql/index.html), [Go](http://codemirror.net/mode/go/index.html), and [Verilog](http://codemirror.net/mode/verilog/index.html) modes.
966
- * Add [`smartIndent`](http://codemirror.net/doc/manual.html#option_smartIndent) option.
967
- * Support a cursor in [`readOnly`](http://codemirror.net/doc/manual.html#option_readOnly)-mode.
968
- * Support assigning multiple styles to a token.
969
- * Use a new approach to drawing the selection.
970
- * Add [`scrollTo`](http://codemirror.net/doc/manual.html#scrollTo) method.
971
- * Allow undo/redo events to span non-adjacent lines.
972
- * Lots and lots of bugfixes.
973
-
974
- ## 2.20.0 (2011-12-20)
975
-
976
- * Slightly incompatible API changes. Read [this](http://codemirror.net/doc/upgrade_v2.2.html).
977
- * New approach to [binding](http://codemirror.net/doc/manual.html#option_extraKeys) keys, support for [custom bindings](http://codemirror.net/doc/manual.html#option_keyMap).
978
- * Support for overwrite (insert).
979
- * [Custom-width](http://codemirror.net/doc/manual.html#option_tabSize) and [stylable](http://codemirror.net/demo/visibletabs.html) tabs.
980
- * Moved more code into [add-on scripts](http://codemirror.net/doc/manual.html#addons).
981
- * Support for sane vertical cursor movement in wrapped lines.
982
- * More reliable handling of editing [marked text](http://codemirror.net/doc/manual.html#markText).
983
- * Add minimal [emacs](http://codemirror.net/demo/emacs.html) and [vim](http://codemirror.net/demo/vim.html) bindings.
984
- * Rename `coordsFromIndex` to [`posFromIndex`](http://codemirror.net/doc/manual.html#posFromIndex), add [`indexFromPos`](http://codemirror.net/doc/manual.html#indexFromPos) method.
985
-
986
- ## 2.18.0 (2011-11-21)
987
-
988
- Fixes `TextMarker.clear`, which is broken in 2.17.
989
-
990
- ## 2.17.0 (2011-11-21)
991
-
992
- * Add support for [line wrapping](http://codemirror.net/doc/manual.html#option_lineWrapping) and [code folding](http://codemirror.net/doc/manual.html#hideLine).
993
- * Add [Github-style Markdown](http://codemirror.net/mode/gfm/index.html) mode.
994
- * Add [Monokai](http://codemirror.net/theme/monokai.css) and [Rubyblue](http://codemirror.net/theme/rubyblue.css) themes.
995
- * Add [`setBookmark`](http://codemirror.net/doc/manual.html#setBookmark) method.
996
- * Move some of the demo code into reusable components under [`lib/util`](http://codemirror.net/addon/).
997
- * Make screen-coord-finding code faster and more reliable.
998
- * Fix drag-and-drop in Firefox.
999
- * Improve support for IME.
1000
- * Speed up content rendering.
1001
- * Fix browser's built-in search in Webkit.
1002
- * Make double- and triple-click work in IE.
1003
- * Various fixes to modes.
1004
-
1005
- ## 2.16.0 (2011-10-27)
1006
-
1007
- * Add [Perl](http://codemirror.net/mode/perl/index.html), [Rust](http://codemirror.net/mode/rust/index.html), [TiddlyWiki](http://codemirror.net/mode/tiddlywiki/index.html), and [Groovy](http://codemirror.net/mode/groovy/index.html) modes.
1008
- * Dragging text inside the editor now moves, rather than copies.
1009
- * Add a [`coordsFromIndex`](http://codemirror.net/doc/manual.html#coordsFromIndex) method.
1010
- * **API change**: `setValue` now no longer clears history. Use [`clearHistory`](http://codemirror.net/doc/manual.html#clearHistory) for that.
1011
- * **API change**: [`markText`](http://codemirror.net/doc/manual.html#markText) now returns an object with `clear` and `find` methods. Marked text is now more robust when edited.
1012
- * Fix editing code with tabs in Internet Explorer.
1013
-
1014
- ## 2.15.0 (2011-09-26)
1015
-
1016
- Fix bug that snuck into 2.14: Clicking the character that currently has the cursor didn't re-focus the editor.
1017
-
1018
- ## 2.14.0 (2011-09-26)
1019
-
1020
- * Add [Clojure](http://codemirror.net/mode/clojure/index.html), [Pascal](http://codemirror.net/mode/pascal/index.html), [NTriples](http://codemirror.net/mode/ntriples/index.html), [Jinja2](http://codemirror.net/mode/jinja2/index.html), and [Markdown](http://codemirror.net/mode/markdown/index.html) modes.
1021
- * Add [Cobalt](http://codemirror.net/theme/cobalt.css) and [Eclipse](http://codemirror.net/theme/eclipse.css) themes.
1022
- * Add a [`fixedGutter`](http://codemirror.net/doc/manual.html#option_fixedGutter) option.
1023
- * Fix bug with `setValue` breaking cursor movement.