lines-engine 0.6.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +1 -0
  5. data/CHANGELOG.md +10 -3
  6. data/Gemfile +1 -0
  7. data/Gemfile.lock +10 -6
  8. data/app/assets/images/favicon.ico +0 -0
  9. data/app/assets/images/gplus.svg +17 -0
  10. data/app/assets/javascripts/lines/admin/admin.js +299 -0
  11. data/app/assets/javascripts/lines/{autosize.min.js → admin/autosize.min.js} +0 -0
  12. data/app/assets/javascripts/lines/admin/navbar.js +51 -0
  13. data/app/assets/javascripts/lines/{pictures.js.coffee → admin/pictures.js.coffee} +2 -1
  14. data/app/assets/javascripts/lines/application.js +3 -0
  15. data/app/assets/javascripts/lines/articles.js.coffee +1 -0
  16. data/app/assets/javascripts/lines/viewer.js.coffee +3 -0
  17. data/app/assets/stylesheets/lines/admin/admin.scss +609 -0
  18. data/app/assets/stylesheets/lines/admin/variables_and_mixins.scss +36 -0
  19. data/app/assets/stylesheets/lines/application.scss +2 -13
  20. data/app/assets/stylesheets/lines/article.scss +165 -69
  21. data/app/assets/stylesheets/lines/fonts.scss +2 -2
  22. data/app/assets/stylesheets/lines/footer.scss +10 -56
  23. data/app/assets/stylesheets/lines/general.scss +18 -13
  24. data/app/assets/stylesheets/lines/media_queries.scss +5 -1
  25. data/app/assets/stylesheets/lines/messages.scss +28 -0
  26. data/app/assets/stylesheets/lines/navbar.scss +199 -122
  27. data/app/assets/stylesheets/lines/pagination.scss +8 -31
  28. data/app/assets/stylesheets/lines/pygments.css.erb +1 -2
  29. data/app/assets/stylesheets/lines/variables_and_mixins.scss +4 -0
  30. data/app/controllers/lines/admin/articles_controller.rb +8 -6
  31. data/app/controllers/lines/admin/authors_controller.rb +2 -2
  32. data/app/controllers/lines/admin/pictures_controller.rb +1 -1
  33. data/app/controllers/lines/application_controller.rb +1 -1
  34. data/app/controllers/lines/articles_controller.rb +3 -1
  35. data/app/controllers/lines/password_resets_controller.rb +4 -7
  36. data/app/controllers/lines/sessions_controller.rb +3 -3
  37. data/app/helpers/lines/application_helper.rb +25 -4
  38. data/app/mailers/lines/user_mailer.rb +1 -1
  39. data/app/models/lines/article.rb +13 -3
  40. data/app/models/lines/user.rb +2 -2
  41. data/app/uploaders/picture_uploader.rb +1 -1
  42. data/app/views/layouts/lines/_markdown_cheatsheet.html.erb +72 -0
  43. data/app/views/layouts/lines/admin.html.erb +15 -4
  44. data/app/views/layouts/lines/application.html.erb +16 -4
  45. data/app/views/layouts/lines/preview.html.erb +30 -2
  46. data/app/views/lines/admin/articles/_form.html.erb +50 -148
  47. data/app/views/lines/admin/articles/_picture_box.html.erb +37 -8
  48. data/app/views/lines/admin/articles/edit.html.erb +2 -12
  49. data/app/views/lines/admin/articles/index.html.erb +40 -28
  50. data/app/views/lines/admin/articles/new.html.erb +3 -10
  51. data/app/views/lines/admin/articles/show.html.erb +6 -4
  52. data/app/views/lines/admin/authors/_form.html.erb +12 -41
  53. data/app/views/lines/admin/authors/index.html.erb +18 -13
  54. data/app/views/lines/admin/authors/show.html.erb +19 -48
  55. data/app/views/lines/admin/pictures/_picture.html.erb +5 -4
  56. data/app/views/lines/admin/pictures/create.js.erb +1 -1
  57. data/app/views/lines/admin/pictures/destroy.js.erb +1 -1
  58. data/app/views/lines/articles/_article.html.erb +10 -6
  59. data/app/views/lines/articles/_article_collection.html.erb +1 -1
  60. data/app/views/lines/articles/_article_small.html.erb +9 -7
  61. data/app/views/lines/articles/index.atom.builder +10 -9
  62. data/app/views/lines/articles/index.html.erb +2 -2
  63. data/app/views/lines/articles/show.html.erb +5 -1
  64. data/app/views/lines/password_resets/edit.html.erb +25 -12
  65. data/app/views/lines/password_resets/new.html.erb +14 -8
  66. data/app/views/lines/sessions/new.html.erb +6 -10
  67. data/app/views/lines/shared/_flash.html.erb +1 -1
  68. data/app/views/lines/shared/_footer.html.erb +5 -28
  69. data/app/views/lines/user_mailer/password_reset.html.erb +6 -5
  70. data/app/views/lines/user_mailer/password_reset.text.erb +8 -4
  71. data/config/lines_config.yml +15 -14
  72. data/config/routes.rb +2 -2
  73. data/db/seeds.rb +5 -5
  74. data/lib/lines/engine.rb +1 -1
  75. data/lib/lines/version.rb +1 -1
  76. data/lines.gemspec +1 -1
  77. data/public/codemirror/.gitattributes +8 -0
  78. data/public/codemirror/.gitignore +8 -0
  79. data/public/codemirror/.npmignore +9 -0
  80. data/public/codemirror/.travis.yml +4 -0
  81. data/public/codemirror/AUTHORS +474 -0
  82. data/public/codemirror/CONTRIBUTING.md +88 -0
  83. data/public/codemirror/LICENSE +19 -0
  84. data/public/codemirror/README.md +27 -0
  85. data/public/codemirror/addon/comment/comment.js +183 -0
  86. data/public/codemirror/addon/comment/continuecomment.js +85 -0
  87. data/public/codemirror/addon/dialog/dialog.css +32 -0
  88. data/public/codemirror/addon/dialog/dialog.js +157 -0
  89. data/public/codemirror/addon/display/fullscreen.css +6 -0
  90. data/public/codemirror/addon/display/fullscreen.js +41 -0
  91. data/public/codemirror/addon/display/panel.js +112 -0
  92. data/public/codemirror/addon/display/placeholder.js +58 -0
  93. data/public/codemirror/addon/display/rulers.js +63 -0
  94. data/public/codemirror/addon/edit/closebrackets.js +185 -0
  95. data/public/codemirror/addon/edit/closetag.js +166 -0
  96. data/public/codemirror/addon/edit/continuelist.js +51 -0
  97. data/public/codemirror/addon/edit/matchbrackets.js +120 -0
  98. data/public/codemirror/addon/edit/matchtags.js +66 -0
  99. data/public/codemirror/addon/edit/trailingspace.js +27 -0
  100. data/public/codemirror/addon/fold/brace-fold.js +105 -0
  101. data/public/codemirror/addon/fold/comment-fold.js +57 -0
  102. data/public/codemirror/addon/fold/foldcode.js +149 -0
  103. data/public/codemirror/addon/fold/foldgutter.css +20 -0
  104. data/public/codemirror/addon/fold/foldgutter.js +146 -0
  105. data/public/codemirror/addon/fold/indent-fold.js +44 -0
  106. data/public/codemirror/addon/fold/markdown-fold.js +49 -0
  107. data/public/codemirror/addon/fold/xml-fold.js +182 -0
  108. data/public/codemirror/addon/hint/anyword-hint.js +41 -0
  109. data/public/codemirror/addon/hint/css-hint.js +60 -0
  110. data/public/codemirror/addon/hint/html-hint.js +348 -0
  111. data/public/codemirror/addon/hint/javascript-hint.js +146 -0
  112. data/public/codemirror/addon/hint/show-hint.css +38 -0
  113. data/public/codemirror/addon/hint/show-hint.js +386 -0
  114. data/public/codemirror/addon/hint/sql-hint.js +254 -0
  115. data/public/codemirror/addon/hint/xml-hint.js +110 -0
  116. data/public/codemirror/addon/lint/coffeescript-lint.js +41 -0
  117. data/public/codemirror/addon/lint/css-lint.js +35 -0
  118. data/public/codemirror/addon/lint/javascript-lint.js +136 -0
  119. data/public/codemirror/addon/lint/json-lint.js +31 -0
  120. data/public/codemirror/addon/lint/lint.css +73 -0
  121. data/public/codemirror/addon/lint/lint.js +207 -0
  122. data/public/codemirror/addon/lint/yaml-lint.js +28 -0
  123. data/public/codemirror/addon/merge/merge.css +112 -0
  124. data/public/codemirror/addon/merge/merge.js +775 -0
  125. data/public/codemirror/addon/mode/loadmode.js +64 -0
  126. data/public/codemirror/addon/mode/multiplex.js +123 -0
  127. data/public/codemirror/addon/mode/multiplex_test.js +33 -0
  128. data/public/codemirror/addon/mode/overlay.js +85 -0
  129. data/public/codemirror/addon/mode/simple.js +213 -0
  130. data/public/codemirror/addon/runmode/colorize.js +40 -0
  131. data/public/codemirror/addon/runmode/runmode-standalone.js +157 -0
  132. data/public/codemirror/addon/runmode/runmode.js +72 -0
  133. data/public/codemirror/addon/runmode/runmode.node.js +178 -0
  134. data/public/codemirror/addon/scroll/annotatescrollbar.js +115 -0
  135. data/public/codemirror/addon/scroll/scrollpastend.js +46 -0
  136. data/public/codemirror/addon/scroll/simplescrollbars.css +66 -0
  137. data/public/codemirror/addon/scroll/simplescrollbars.js +147 -0
  138. data/public/codemirror/addon/search/match-highlighter.js +128 -0
  139. data/public/codemirror/addon/search/matchesonscrollbar.css +8 -0
  140. data/public/codemirror/addon/search/matchesonscrollbar.js +97 -0
  141. data/public/codemirror/addon/search/search.js +202 -0
  142. data/public/codemirror/addon/search/searchcursor.js +189 -0
  143. data/public/codemirror/addon/selection/active-line.js +71 -0
  144. data/public/codemirror/addon/selection/mark-selection.js +118 -0
  145. data/public/codemirror/addon/selection/selection-pointer.js +98 -0
  146. data/public/codemirror/addon/tern/tern.css +87 -0
  147. data/public/codemirror/addon/tern/tern.js +699 -0
  148. data/public/codemirror/addon/tern/worker.js +44 -0
  149. data/public/codemirror/addon/wrap/hardwrap.js +139 -0
  150. data/public/codemirror/bin/authors.sh +6 -0
  151. data/public/codemirror/bin/compress +92 -0
  152. data/public/codemirror/bin/lint +3 -0
  153. data/public/codemirror/bin/release +45 -0
  154. data/public/codemirror/bin/source-highlight +51 -0
  155. data/public/codemirror/bower.json +17 -0
  156. data/public/codemirror/demo/activeline.html +78 -0
  157. data/public/codemirror/demo/anywordhint.html +79 -0
  158. data/public/codemirror/demo/bidi.html +74 -0
  159. data/public/codemirror/demo/btree.html +85 -0
  160. data/public/codemirror/demo/buffers.html +109 -0
  161. data/public/codemirror/demo/changemode.html +58 -0
  162. data/public/codemirror/demo/closebrackets.html +52 -0
  163. data/public/codemirror/demo/closetag.html +41 -0
  164. data/public/codemirror/demo/complete.html +79 -0
  165. data/public/codemirror/demo/emacs.html +75 -0
  166. data/public/codemirror/demo/folding.html +95 -0
  167. data/public/codemirror/demo/fullscreen.html +83 -0
  168. data/public/codemirror/demo/hardwrap.html +72 -0
  169. data/public/codemirror/demo/html5complete.html +56 -0
  170. data/public/codemirror/demo/indentwrap.html +59 -0
  171. data/public/codemirror/demo/lint.html +171 -0
  172. data/public/codemirror/demo/loadmode.html +72 -0
  173. data/public/codemirror/demo/marker.html +52 -0
  174. data/public/codemirror/demo/markselection.html +52 -0
  175. data/public/codemirror/demo/matchhighlighter.html +47 -0
  176. data/public/codemirror/demo/matchtags.html +48 -0
  177. data/public/codemirror/demo/merge.html +122 -0
  178. data/public/codemirror/demo/multiplex.html +75 -0
  179. data/public/codemirror/demo/mustache.html +69 -0
  180. data/public/codemirror/demo/panel.html +136 -0
  181. data/public/codemirror/demo/placeholder.html +45 -0
  182. data/public/codemirror/demo/preview.html +87 -0
  183. data/public/codemirror/demo/requirejs.html +70 -0
  184. data/public/codemirror/demo/resize.html +51 -0
  185. data/public/codemirror/demo/rulers.html +49 -0
  186. data/public/codemirror/demo/runmode.html +62 -0
  187. data/public/codemirror/demo/search.html +95 -0
  188. data/public/codemirror/demo/simplemode.html +186 -0
  189. data/public/codemirror/demo/simplescrollbars.html +82 -0
  190. data/public/codemirror/demo/spanaffectswrapping_shim.html +85 -0
  191. data/public/codemirror/demo/sublime.html +76 -0
  192. data/public/codemirror/demo/tern.html +133 -0
  193. data/public/codemirror/demo/theme.html +152 -0
  194. data/public/codemirror/demo/trailingspace.html +48 -0
  195. data/public/codemirror/demo/variableheight.html +67 -0
  196. data/public/codemirror/demo/vim.html +104 -0
  197. data/public/codemirror/demo/visibletabs.html +62 -0
  198. data/public/codemirror/demo/widget.html +85 -0
  199. data/public/codemirror/demo/xmlcomplete.html +119 -0
  200. data/public/codemirror/doc/activebookmark.js +57 -0
  201. data/public/codemirror/doc/compress.html +329 -0
  202. data/public/codemirror/doc/docs.css +271 -0
  203. data/public/codemirror/doc/internals.html +503 -0
  204. data/public/codemirror/doc/logo.png +0 -0
  205. data/public/codemirror/doc/logo.svg +181 -0
  206. data/public/codemirror/doc/manual.html +3327 -0
  207. data/public/codemirror/doc/realworld.html +174 -0
  208. data/public/codemirror/doc/releases.html +1116 -0
  209. data/public/codemirror/doc/reporting.html +61 -0
  210. data/public/codemirror/doc/upgrade_v2.2.html +96 -0
  211. data/public/codemirror/doc/upgrade_v3.html +230 -0
  212. data/public/codemirror/doc/upgrade_v4.html +144 -0
  213. data/public/codemirror/doc/yinyang.png +0 -0
  214. data/public/codemirror/index.html +199 -0
  215. data/public/codemirror/keymap/emacs.js +412 -0
  216. data/public/codemirror/keymap/sublime.js +555 -0
  217. data/public/codemirror/keymap/vim.js +5060 -0
  218. data/public/codemirror/lib/codemirror.css +332 -0
  219. data/public/codemirror/lib/codemirror.js +8788 -0
  220. data/public/codemirror/mode/apl/apl.js +174 -0
  221. data/public/codemirror/mode/apl/index.html +72 -0
  222. data/public/codemirror/mode/asciiarmor/asciiarmor.js +73 -0
  223. data/public/codemirror/mode/asciiarmor/index.html +46 -0
  224. data/public/codemirror/mode/asn.1/asn.1.js +204 -0
  225. data/public/codemirror/mode/asn.1/index.html +78 -0
  226. data/public/codemirror/mode/asterisk/asterisk.js +196 -0
  227. data/public/codemirror/mode/asterisk/index.html +154 -0
  228. data/public/codemirror/mode/brainfuck/brainfuck.js +85 -0
  229. data/public/codemirror/mode/brainfuck/index.html +85 -0
  230. data/public/codemirror/mode/clike/clike.js +604 -0
  231. data/public/codemirror/mode/clike/index.html +252 -0
  232. data/public/codemirror/mode/clike/scala.html +767 -0
  233. data/public/codemirror/mode/clike/test.js +33 -0
  234. data/public/codemirror/mode/clojure/clojure.js +244 -0
  235. data/public/codemirror/mode/clojure/index.html +88 -0
  236. data/public/codemirror/mode/cmake/cmake.js +97 -0
  237. data/public/codemirror/mode/cmake/index.html +129 -0
  238. data/public/codemirror/mode/cobol/cobol.js +255 -0
  239. data/public/codemirror/mode/cobol/index.html +210 -0
  240. data/public/codemirror/mode/coffeescript/coffeescript.js +369 -0
  241. data/public/codemirror/mode/coffeescript/index.html +740 -0
  242. data/public/codemirror/mode/commonlisp/commonlisp.js +123 -0
  243. data/public/codemirror/mode/commonlisp/index.html +177 -0
  244. data/public/codemirror/mode/css/css.js +756 -0
  245. data/public/codemirror/mode/css/index.html +75 -0
  246. data/public/codemirror/mode/css/less.html +152 -0
  247. data/public/codemirror/mode/css/less_test.js +54 -0
  248. data/public/codemirror/mode/css/scss.html +157 -0
  249. data/public/codemirror/mode/css/scss_test.js +110 -0
  250. data/public/codemirror/mode/css/test.js +188 -0
  251. data/public/codemirror/mode/cypher/cypher.js +146 -0
  252. data/public/codemirror/mode/cypher/index.html +63 -0
  253. data/public/codemirror/mode/d/d.js +218 -0
  254. data/public/codemirror/mode/d/index.html +273 -0
  255. data/public/codemirror/mode/dart/dart.js +50 -0
  256. data/public/codemirror/mode/dart/index.html +71 -0
  257. data/public/codemirror/mode/diff/diff.js +47 -0
  258. data/public/codemirror/mode/diff/index.html +117 -0
  259. data/public/codemirror/mode/django/django.js +350 -0
  260. data/public/codemirror/mode/django/index.html +73 -0
  261. data/public/codemirror/mode/dockerfile/dockerfile.js +76 -0
  262. data/public/codemirror/mode/dockerfile/index.html +73 -0
  263. data/public/codemirror/mode/dtd/dtd.js +142 -0
  264. data/public/codemirror/mode/dtd/index.html +89 -0
  265. data/public/codemirror/mode/dylan/dylan.js +291 -0
  266. data/public/codemirror/mode/dylan/index.html +407 -0
  267. data/public/codemirror/mode/ebnf/ebnf.js +195 -0
  268. data/public/codemirror/mode/ebnf/index.html +102 -0
  269. data/public/codemirror/mode/ecl/ecl.js +206 -0
  270. data/public/codemirror/mode/ecl/index.html +52 -0
  271. data/public/codemirror/mode/eiffel/eiffel.js +160 -0
  272. data/public/codemirror/mode/eiffel/index.html +429 -0
  273. data/public/codemirror/mode/elm/elm.js +205 -0
  274. data/public/codemirror/mode/elm/index.html +61 -0
  275. data/public/codemirror/mode/erlang/erlang.js +618 -0
  276. data/public/codemirror/mode/erlang/index.html +76 -0
  277. data/public/codemirror/mode/factor/factor.js +83 -0
  278. data/public/codemirror/mode/factor/index.html +77 -0
  279. data/public/codemirror/mode/forth/forth.js +180 -0
  280. data/public/codemirror/mode/forth/index.html +75 -0
  281. data/public/codemirror/mode/fortran/fortran.js +188 -0
  282. data/public/codemirror/mode/fortran/index.html +81 -0
  283. data/public/codemirror/mode/gas/gas.js +345 -0
  284. data/public/codemirror/mode/gas/index.html +68 -0
  285. data/public/codemirror/mode/gfm/gfm.js +124 -0
  286. data/public/codemirror/mode/gfm/index.html +93 -0
  287. data/public/codemirror/mode/gfm/test.js +213 -0
  288. data/public/codemirror/mode/gherkin/gherkin.js +178 -0
  289. data/public/codemirror/mode/gherkin/index.html +48 -0
  290. data/public/codemirror/mode/go/go.js +185 -0
  291. data/public/codemirror/mode/go/index.html +85 -0
  292. data/public/codemirror/mode/groovy/groovy.js +230 -0
  293. data/public/codemirror/mode/groovy/index.html +84 -0
  294. data/public/codemirror/mode/haml/haml.js +159 -0
  295. data/public/codemirror/mode/haml/index.html +79 -0
  296. data/public/codemirror/mode/haml/test.js +97 -0
  297. data/public/codemirror/mode/handlebars/handlebars.js +53 -0
  298. data/public/codemirror/mode/handlebars/index.html +83 -0
  299. data/public/codemirror/mode/haskell/haskell.js +267 -0
  300. data/public/codemirror/mode/haskell/index.html +73 -0
  301. data/public/codemirror/mode/haxe/haxe.js +518 -0
  302. data/public/codemirror/mode/haxe/index.html +124 -0
  303. data/public/codemirror/mode/htmlembedded/htmlembedded.js +28 -0
  304. data/public/codemirror/mode/htmlembedded/index.html +59 -0
  305. data/public/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  306. data/public/codemirror/mode/htmlmixed/index.html +89 -0
  307. data/public/codemirror/mode/http/http.js +113 -0
  308. data/public/codemirror/mode/http/index.html +45 -0
  309. data/public/codemirror/mode/idl/idl.js +290 -0
  310. data/public/codemirror/mode/idl/index.html +64 -0
  311. data/public/codemirror/mode/index.html +149 -0
  312. data/public/codemirror/mode/jade/index.html +70 -0
  313. data/public/codemirror/mode/jade/jade.js +590 -0
  314. data/public/codemirror/mode/javascript/index.html +114 -0
  315. data/public/codemirror/mode/javascript/javascript.js +704 -0
  316. data/public/codemirror/mode/javascript/json-ld.html +72 -0
  317. data/public/codemirror/mode/javascript/test.js +205 -0
  318. data/public/codemirror/mode/javascript/typescript.html +61 -0
  319. data/public/codemirror/mode/jinja2/index.html +54 -0
  320. data/public/codemirror/mode/jinja2/jinja2.js +142 -0
  321. data/public/codemirror/mode/julia/index.html +195 -0
  322. data/public/codemirror/mode/julia/julia.js +299 -0
  323. data/public/codemirror/mode/kotlin/index.html +89 -0
  324. data/public/codemirror/mode/kotlin/kotlin.js +284 -0
  325. data/public/codemirror/mode/livescript/index.html +459 -0
  326. data/public/codemirror/mode/livescript/livescript.js +280 -0
  327. data/public/codemirror/mode/lua/index.html +85 -0
  328. data/public/codemirror/mode/lua/lua.js +159 -0
  329. data/public/codemirror/mode/markdown/index.html +359 -0
  330. data/public/codemirror/mode/markdown/markdown.js +781 -0
  331. data/public/codemirror/mode/markdown/test.js +792 -0
  332. data/public/codemirror/mode/mathematica/index.html +72 -0
  333. data/public/codemirror/mode/mathematica/mathematica.js +175 -0
  334. data/public/codemirror/mode/meta.js +190 -0
  335. data/public/codemirror/mode/mirc/index.html +160 -0
  336. data/public/codemirror/mode/mirc/mirc.js +193 -0
  337. data/public/codemirror/mode/mllike/index.html +179 -0
  338. data/public/codemirror/mode/mllike/mllike.js +205 -0
  339. data/public/codemirror/mode/modelica/index.html +67 -0
  340. data/public/codemirror/mode/modelica/modelica.js +245 -0
  341. data/public/codemirror/mode/mumps/index.html +85 -0
  342. data/public/codemirror/mode/mumps/mumps.js +148 -0
  343. data/public/codemirror/mode/nginx/index.html +181 -0
  344. data/public/codemirror/mode/nginx/nginx.js +178 -0
  345. data/public/codemirror/mode/ntriples/index.html +45 -0
  346. data/public/codemirror/mode/ntriples/ntriples.js +186 -0
  347. data/public/codemirror/mode/octave/index.html +83 -0
  348. data/public/codemirror/mode/octave/octave.js +135 -0
  349. data/public/codemirror/mode/pascal/index.html +61 -0
  350. data/public/codemirror/mode/pascal/pascal.js +109 -0
  351. data/public/codemirror/mode/pegjs/index.html +66 -0
  352. data/public/codemirror/mode/pegjs/pegjs.js +114 -0
  353. data/public/codemirror/mode/perl/index.html +75 -0
  354. data/public/codemirror/mode/perl/perl.js +837 -0
  355. data/public/codemirror/mode/php/index.html +64 -0
  356. data/public/codemirror/mode/php/php.js +230 -0
  357. data/public/codemirror/mode/php/test.js +154 -0
  358. data/public/codemirror/mode/pig/index.html +55 -0
  359. data/public/codemirror/mode/pig/pig.js +178 -0
  360. data/public/codemirror/mode/properties/index.html +53 -0
  361. data/public/codemirror/mode/properties/properties.js +78 -0
  362. data/public/codemirror/mode/puppet/index.html +121 -0
  363. data/public/codemirror/mode/puppet/puppet.js +220 -0
  364. data/public/codemirror/mode/python/index.html +198 -0
  365. data/public/codemirror/mode/python/python.js +358 -0
  366. data/public/codemirror/mode/q/index.html +144 -0
  367. data/public/codemirror/mode/q/q.js +139 -0
  368. data/public/codemirror/mode/r/index.html +85 -0
  369. data/public/codemirror/mode/r/r.js +162 -0
  370. data/public/codemirror/mode/rpm/changes/index.html +66 -0
  371. data/public/codemirror/mode/rpm/index.html +149 -0
  372. data/public/codemirror/mode/rpm/rpm.js +101 -0
  373. data/public/codemirror/mode/rst/index.html +535 -0
  374. data/public/codemirror/mode/rst/rst.js +557 -0
  375. data/public/codemirror/mode/ruby/index.html +183 -0
  376. data/public/codemirror/mode/ruby/ruby.js +285 -0
  377. data/public/codemirror/mode/ruby/test.js +14 -0
  378. data/public/codemirror/mode/rust/index.html +60 -0
  379. data/public/codemirror/mode/rust/rust.js +451 -0
  380. data/public/codemirror/mode/sass/index.html +66 -0
  381. data/public/codemirror/mode/sass/sass.js +414 -0
  382. data/public/codemirror/mode/scheme/index.html +77 -0
  383. data/public/codemirror/mode/scheme/scheme.js +249 -0
  384. data/public/codemirror/mode/shell/index.html +66 -0
  385. data/public/codemirror/mode/shell/shell.js +139 -0
  386. data/public/codemirror/mode/shell/test.js +58 -0
  387. data/public/codemirror/mode/sieve/index.html +93 -0
  388. data/public/codemirror/mode/sieve/sieve.js +193 -0
  389. data/public/codemirror/mode/slim/index.html +96 -0
  390. data/public/codemirror/mode/slim/slim.js +575 -0
  391. data/public/codemirror/mode/slim/test.js +96 -0
  392. data/public/codemirror/mode/smalltalk/index.html +68 -0
  393. data/public/codemirror/mode/smalltalk/smalltalk.js +168 -0
  394. data/public/codemirror/mode/smarty/index.html +138 -0
  395. data/public/codemirror/mode/smarty/smarty.js +225 -0
  396. data/public/codemirror/mode/solr/index.html +57 -0
  397. data/public/codemirror/mode/solr/solr.js +104 -0
  398. data/public/codemirror/mode/soy/index.html +68 -0
  399. data/public/codemirror/mode/soy/soy.js +198 -0
  400. data/public/codemirror/mode/sparql/index.html +61 -0
  401. data/public/codemirror/mode/sparql/sparql.js +174 -0
  402. data/public/codemirror/mode/spreadsheet/index.html +42 -0
  403. data/public/codemirror/mode/spreadsheet/spreadsheet.js +109 -0
  404. data/public/codemirror/mode/sql/index.html +84 -0
  405. data/public/codemirror/mode/sql/sql.js +391 -0
  406. data/public/codemirror/mode/stex/index.html +110 -0
  407. data/public/codemirror/mode/stex/stex.js +251 -0
  408. data/public/codemirror/mode/stex/test.js +123 -0
  409. data/public/codemirror/mode/stylus/index.html +106 -0
  410. data/public/codemirror/mode/stylus/stylus.js +768 -0
  411. data/public/codemirror/mode/swift/index.html +88 -0
  412. data/public/codemirror/mode/swift/swift.js +203 -0
  413. data/public/codemirror/mode/tcl/index.html +142 -0
  414. data/public/codemirror/mode/tcl/tcl.js +147 -0
  415. data/public/codemirror/mode/textile/index.html +191 -0
  416. data/public/codemirror/mode/textile/test.js +417 -0
  417. data/public/codemirror/mode/textile/textile.js +469 -0
  418. data/public/codemirror/mode/tiddlywiki/index.html +154 -0
  419. data/public/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  420. data/public/codemirror/mode/tiddlywiki/tiddlywiki.js +358 -0
  421. data/public/codemirror/mode/tiki/index.html +95 -0
  422. data/public/codemirror/mode/tiki/tiki.css +26 -0
  423. data/public/codemirror/mode/tiki/tiki.js +312 -0
  424. data/public/codemirror/mode/toml/index.html +73 -0
  425. data/public/codemirror/mode/toml/toml.js +88 -0
  426. data/public/codemirror/mode/tornado/index.html +63 -0
  427. data/public/codemirror/mode/tornado/tornado.js +68 -0
  428. data/public/codemirror/mode/troff/index.html +146 -0
  429. data/public/codemirror/mode/troff/troff.js +82 -0
  430. data/public/codemirror/mode/ttcn-cfg/index.html +115 -0
  431. data/public/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  432. data/public/codemirror/mode/ttcn/index.html +118 -0
  433. data/public/codemirror/mode/ttcn/ttcn.js +283 -0
  434. data/public/codemirror/mode/turtle/index.html +50 -0
  435. data/public/codemirror/mode/turtle/turtle.js +162 -0
  436. data/public/codemirror/mode/twig/index.html +45 -0
  437. data/public/codemirror/mode/twig/twig.js +132 -0
  438. data/public/codemirror/mode/vb/index.html +102 -0
  439. data/public/codemirror/mode/vb/vb.js +276 -0
  440. data/public/codemirror/mode/vbscript/index.html +55 -0
  441. data/public/codemirror/mode/vbscript/vbscript.js +350 -0
  442. data/public/codemirror/mode/velocity/index.html +118 -0
  443. data/public/codemirror/mode/velocity/velocity.js +201 -0
  444. data/public/codemirror/mode/verilog/index.html +120 -0
  445. data/public/codemirror/mode/verilog/test.js +273 -0
  446. data/public/codemirror/mode/verilog/verilog.js +537 -0
  447. data/public/codemirror/mode/vhdl/index.html +95 -0
  448. data/public/codemirror/mode/vhdl/vhdl.js +189 -0
  449. data/public/codemirror/mode/xml/index.html +57 -0
  450. data/public/codemirror/mode/xml/test.js +51 -0
  451. data/public/codemirror/mode/xml/xml.js +385 -0
  452. data/public/codemirror/mode/xquery/index.html +210 -0
  453. data/public/codemirror/mode/xquery/test.js +67 -0
  454. data/public/codemirror/mode/xquery/xquery.js +437 -0
  455. data/public/codemirror/mode/yaml/index.html +80 -0
  456. data/public/codemirror/mode/yaml/yaml.js +117 -0
  457. data/public/codemirror/mode/z80/index.html +53 -0
  458. data/public/codemirror/mode/z80/z80.js +116 -0
  459. data/public/codemirror/package.json +20 -0
  460. data/public/codemirror/test/comment_test.js +100 -0
  461. data/public/codemirror/test/doc_test.js +371 -0
  462. data/public/codemirror/test/driver.js +138 -0
  463. data/public/codemirror/test/emacs_test.js +147 -0
  464. data/public/codemirror/test/index.html +241 -0
  465. data/public/codemirror/test/lint.js +11 -0
  466. data/public/codemirror/test/mode_test.css +23 -0
  467. data/public/codemirror/test/mode_test.js +192 -0
  468. data/public/codemirror/test/multi_test.js +285 -0
  469. data/public/codemirror/test/phantom_driver.js +31 -0
  470. data/public/codemirror/test/run.js +31 -0
  471. data/public/codemirror/test/scroll_test.js +115 -0
  472. data/public/codemirror/test/search_test.js +62 -0
  473. data/public/codemirror/test/sql-hint-test.js +189 -0
  474. data/public/codemirror/test/sublime_test.js +303 -0
  475. data/public/codemirror/test/test.js +2142 -0
  476. data/public/codemirror/test/vim_test.js +3955 -0
  477. data/public/codemirror/theme/3024-day.css +41 -0
  478. data/public/codemirror/theme/3024-night.css +39 -0
  479. data/public/codemirror/theme/ambiance-mobile.css +5 -0
  480. data/public/codemirror/theme/ambiance.css +76 -0
  481. data/public/codemirror/theme/base16-dark.css +38 -0
  482. data/public/codemirror/theme/base16-light.css +38 -0
  483. data/public/codemirror/theme/blackboard.css +32 -0
  484. data/public/codemirror/theme/cobalt.css +25 -0
  485. data/public/codemirror/theme/colorforth.css +33 -0
  486. data/public/codemirror/theme/dracula.css +87 -0
  487. data/public/codemirror/theme/eclipse.css +23 -0
  488. data/public/codemirror/theme/elegant.css +13 -0
  489. data/public/codemirror/theme/erlang-dark.css +34 -0
  490. data/public/codemirror/theme/icecoder.css +42 -0
  491. data/public/codemirror/theme/lesser-dark.css +47 -0
  492. data/public/codemirror/theme/lines.css +109 -0
  493. data/public/codemirror/theme/liquibyte.css +95 -0
  494. data/public/codemirror/theme/material.css +105 -0
  495. data/public/codemirror/theme/mbo.css +37 -0
  496. data/public/codemirror/theme/mdn-like.css +46 -0
  497. data/public/codemirror/theme/midnight.css +47 -0
  498. data/public/codemirror/theme/monokai.css +35 -0
  499. data/public/codemirror/theme/neat.css +12 -0
  500. data/public/codemirror/theme/neo.css +43 -0
  501. data/public/codemirror/theme/night.css +28 -0
  502. data/public/codemirror/theme/paraiso-dark.css +38 -0
  503. data/public/codemirror/theme/paraiso-light.css +38 -0
  504. data/public/codemirror/theme/pastel-on-dark.css +53 -0
  505. data/public/codemirror/theme/rubyblue.css +25 -0
  506. data/public/codemirror/theme/seti.css +88 -0
  507. data/public/codemirror/theme/solarized.css +165 -0
  508. data/public/codemirror/theme/the-matrix.css +30 -0
  509. data/public/codemirror/theme/tomorrow-night-bright.css +35 -0
  510. data/public/codemirror/theme/tomorrow-night-eighties.css +38 -0
  511. data/public/codemirror/theme/ttcn.css +65 -0
  512. data/public/codemirror/theme/twilight.css +32 -0
  513. data/public/codemirror/theme/vibrant-ink.css +34 -0
  514. data/public/codemirror/theme/xq-dark.css +53 -0
  515. data/public/codemirror/theme/xq-light.css +43 -0
  516. data/public/codemirror/theme/yeti.css +86 -0
  517. data/public/codemirror/theme/zenburn.css +37 -0
  518. data/public/fira-mono/FiraMono-Bold.eot +0 -0
  519. data/public/fira-mono/FiraMono-Bold.otf +0 -0
  520. data/public/fira-mono/FiraMono-Bold.ttf +0 -0
  521. data/public/fira-mono/FiraMono-Bold.woff +0 -0
  522. data/public/fira-mono/FiraMono-Medium.eot +0 -0
  523. data/public/fira-mono/FiraMono-Medium.otf +0 -0
  524. data/public/fira-mono/FiraMono-Medium.ttf +0 -0
  525. data/public/fira-mono/FiraMono-Medium.woff +0 -0
  526. data/public/fira-mono/FiraMono-Regular.eot +0 -0
  527. data/public/fira-mono/FiraMono-Regular.otf +0 -0
  528. data/public/fira-mono/FiraMono-Regular.ttf +0 -0
  529. data/public/fira-mono/FiraMono-Regular.woff +0 -0
  530. data/public/fira-mono/fira-mono.css +32 -0
  531. data/public/heroes/lines_default_01.png +0 -0
  532. data/public/heroes/lines_default_02.png +0 -0
  533. data/public/heroes/lines_default_03.png +0 -0
  534. data/public/iconfont/iconfont.css +48 -0
  535. data/public/iconfont/iconfont.eot +0 -0
  536. data/public/iconfont/iconfont.svg +18 -0
  537. data/public/iconfont/iconfont.ttf +0 -0
  538. data/public/iconfont/iconfont.woff +0 -0
  539. data/spec/dummy/config/environments/test.rb +3 -1
  540. data/spec/dummy/db/migrate/20140505122014_base_migration.rb +84 -0
  541. data/spec/dummy/db/migrate/20140702160602_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +31 -0
  542. data/spec/dummy/db/migrate/20140702160603_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  543. data/spec/dummy/db/migrate/20140702160604_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  544. data/spec/dummy/db/migrate/20141027143656_add_teaser_to_article.rb +5 -0
  545. data/spec/dummy/db/migrate/20150421093311_add_reset_password_fields_to_users.rb +6 -0
  546. data/spec/dummy/db/schema.rb +50 -50
  547. data/spec/dummy/db/seeds.rb +5 -5
  548. data/spec/factories/users.rb +1 -1
  549. data/spec/features/article_spec.rb +4 -4
  550. data/spec/features/password_reset_spec.rb +17 -17
  551. data/spec/features/user_logs_in_spec.rb +6 -8
  552. data/spec/mailers/lines/user_mailer_spec.rb +1 -1
  553. data/spec/models/article_spec.rb +6 -6
  554. data/spec/support/auth_macros.rb +2 -2
  555. metadata +492 -26
  556. metadata.gz.sig +0 -0
  557. data/app/assets/images/ic_gplus.png +0 -0
  558. data/app/assets/images/ic_gplus_hover.png +0 -0
  559. data/app/assets/images/logo.png +0 -0
  560. data/app/assets/images/logo_opoloo.png +0 -0
  561. data/app/assets/images/signet.png +0 -0
  562. data/app/assets/javascripts/lines/admin.js +0 -201
  563. data/app/assets/stylesheets/lines/admin.scss +0 -970
  564. data/app/views/layouts/lines/_messages.html.erb +0 -8
  565. data/app/views/lines/admin/articles/_formatting_guide.html.erb +0 -89
  566. data/public/heroes/001.jpg +0 -0
  567. data/public/heroes/001_dark.jpg +0 -0
  568. data/public/heroes/002.jpg +0 -0
  569. data/public/heroes/002_dark.jpg +0 -0
  570. data/public/heroes/003.jpg +0 -0
  571. data/public/heroes/003_dark.jpg +0 -0
  572. data/spec/dummy/config/lines_config.yml +0 -58
@@ -0,0 +1,174 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Real-world Uses</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="docs.css">
6
+
7
+ <div id=nav>
8
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
9
+
10
+ <ul>
11
+ <li><a href="../index.html">Home</a>
12
+ <li><a href="manual.html">Manual</a>
13
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
14
+ </ul>
15
+ <ul>
16
+ <li><a class=active href="#">Real-world uses</a>
17
+ </ul>
18
+ </div>
19
+
20
+ <article>
21
+
22
+ <h2>CodeMirror real-world uses</h2>
23
+
24
+ <p>Create a <a href="https://github.com/codemirror/codemirror">pull
25
+ request</a> if you'd like your project to be added to this list.</p>
26
+
27
+ <ul>
28
+ <li><a href="http://brackets.io">Adobe Brackets</a> (code editor)</li>
29
+ <li><a href="http://amber-lang.net/">Amber</a> (JavaScript-based Smalltalk system)</li>
30
+ <li><a href="http://apachegui.ca/">Apache GUI</a></li>
31
+ <li><a href="http://apeye.org/">APEye</a> (tool for testing &amp; documenting APIs)</li>
32
+ <li><a href="https://chrome.google.com/webstore/detail/better-text-viewer/lcaidopdffhfemoefoaadecppnjdknkc">Better Text Viewer</a> (plain text reader app for Chrome)</li>
33
+ <li><a href="http://blog.bitbucket.org/2013/05/14/edit-your-code-in-the-cloud-with-bitbucket/">Bitbucket</a> (code hosting)</li>
34
+ <li><a href="http://buzz.blogger.com/2013/04/improvements-to-blogger-template-html.html">Blogger's template editor</a></li>
35
+ <li><a href="http://bluegriffon.org/">BlueGriffon</a> (HTML editor)</li>
36
+ <li><a href="http://cargocollective.com/">Cargo Collective</a> (creative publishing platform)</li>
37
+ <li><a href="https://developers.google.com/chrome-developer-tools/">Chrome DevTools</a></li>
38
+ <li><a href="http://clickhelp.co/">ClickHelp</a> (technical writing tool)</li>
39
+ <li><a href="http://codeworld.info/">CodeWorld</a> (Haskell playground)</li>
40
+ <li><a href="http://complete-ly.appspot.com/playground/code.playground.html">Complete.ly playground</a></li>
41
+ <li><a href="https://codeanywhere.com/">Codeanywhere</a> (multi-platform cloud editor)</li>
42
+ <li><a href="http://drupal.org/project/cpn">Code per Node</a> (Drupal module)</li>
43
+ <li><a href="http://www.codebugapp.com/">Codebug</a> (PHP Xdebug front-end)</li>
44
+ <li><a href="https://github.com/angelozerr/CodeMirror-Eclipse">CodeMirror Eclipse</a> (embed CM in Eclipse)</li>
45
+ <li><a href="http://emmet.io/blog/codemirror-movie/">CodeMirror movie</a> (scripted editing demos)</li>
46
+ <li><a href="http://code.google.com/p/codemirror2-gwt/">CodeMirror2-GWT</a> (Google Web Toolkit wrapper)</li>
47
+ <li><a href="http://www.crunchzilla.com/code-monster">Code Monster</a> & <a href="http://www.crunchzilla.com/code-maven">Code Maven</a> (learning environment)</li>
48
+ <li><a href="http://codepen.io">Codepen</a> (gallery of animations)</li>
49
+ <li><a href="https://coderpad.io/">Coderpad</a> (interviewing tool)</li>
50
+ <li><a href="http://sasstwo.codeschool.com/levels/1/challenges/1">Code School</a> (online tech learning environment)</li>
51
+ <li><a href="http://code-snippets.bungeshea.com/">Code Snippets</a> (WordPress snippet management plugin)</li>
52
+ <li><a href="http://antonmi.github.io/code_together/">Code together</a> (collaborative editing)</li>
53
+ <li><a href="http://codev.it/">Codev</a> (collaborative IDE)</li>
54
+ <li><a href="http://www.codezample.com">CodeZample</a> (code snippet sharing)</li>
55
+ <li><a href="http://codio.com">Codio</a> (Web IDE)</li>
56
+ <li><a href="http://ot.substance.io/demo/">Collaborative CodeMirror demo</a> (CodeMirror + operational transforms)</li>
57
+ <li><a href="http://www.communitycodecamp.com/">Community Code Camp</a> (code snippet sharing)</li>
58
+ <li><a href="http://www.compilejava.net/">compilejava.net</a> (online Java sandbox)</li>
59
+ <li><a href="http://www.ckwnc.com/">CKWNC</a> (UML editor)</li>
60
+ <li><a href="http://www.crossui.com/">CrossUI</a> (cross-platform UI builder)</li>
61
+ <li><a href="http://rsnous.com/cruncher/">Cruncher</a> (notepad with calculation features)</li>
62
+ <li><a href="http://www.crudzilla.com/">Crudzilla</a> (self-hosted web IDE)</li>
63
+ <li><a href="http://cssdeck.com/">CSSDeck</a> (CSS showcase)</li>
64
+ <li><a href="http://ireneros.com/deck/deck.js-codemirror/introduction/#textarea-code">Deck.js integration</a> (slides with editors)</li>
65
+ <li><a href="http://www.dbninja.com">DbNinja</a> (MySQL access interface)</li>
66
+ <li><a href="https://chat.echoplex.us/">Echoplexus</a> (chat and collaborative coding)</li>
67
+ <li><a href="http://www.ecsspert.com/">eCSSpert</a> (CSS demos and experiments)</li>
68
+ <li><a href="http://elm-lang.org/Examples.elm">Elm language examples</a></li>
69
+ <li><a href="http://eloquentjavascript.net/chapter1.html">Eloquent JavaScript</a> (book)</li>
70
+ <li><a href="http://emmet.io">Emmet</a> (fast XML editing)</li>
71
+ <li><a href="https://github.com/espruino/EspruinoWebIDE">Espruino Web IDE</a> (Chrome App for writing code on Espruino devices)</li>
72
+ <li><a href="http://www.fastfig.com/">Fastfig</a> (online computation/math tool)</li>
73
+ <li><a href="https://metacpan.org/module/Farabi">Farabi</a> (modern Perl IDE)</li>
74
+ <li><a href="http://blog.pamelafox.org/2012/02/interactive-html5-slides-with-fathomjs.html">FathomJS integration</a> (slides with editors, again)</li>
75
+ <li><a href="https://phantomus.com/">Phantomus</a> (blogging platform)</li>
76
+ <li><a href="http://fiddlesalad.com/">Fiddle Salad</a> (web development environment)</li>
77
+ <li><a href="https://github.com/simogeo/Filemanager">Filemanager</a></li>
78
+ <li><a href="https://hacks.mozilla.org/2013/11/firefox-developer-tools-episode-27-edit-as-html-codemirror-more/">Firefox Developer Tools</a></li>
79
+ <li><a href="http://www.firepad.io">Firepad</a> (collaborative text editor)</li>
80
+ <li><a href="https://code.google.com/p/gerrit/">Gerrit</a>'s diff view</li>
81
+ <li><a href="https://github.com/maks/git-crx">Git Crx</a> (Chrome App for browsing local git repos)</li>
82
+ <li><a href="http://tour.golang.org">Go language tour</a></li>
83
+ <li><a href="https://github.com/github/android">GitHub's Android app</a></li>
84
+ <li><a href="https://script.google.com/">Google Apps Script</a></li>
85
+ <li><a href="http://web.uvic.ca/~siefkenj/graphit/graphit.html">Graphit</a> (function graphing)</li>
86
+ <li><a href="http://www.handcraft.com/">Handcraft</a> (HTML prototyping)</li>
87
+ <li><a href="http://hawkee.com/">Hawkee</a></li>
88
+ <li><a href="http://try.haxe.org">Haxe</a> (Haxe Playground) </li>
89
+ <li><a href="http://haxpad.com/">HaxPad</a> (editor for Win RT)</li>
90
+ <li><a href="http://megafonweblab.github.com/histone-javascript/">Histone template engine playground</a></li>
91
+ <li><a href="http://www.homegenie.it/docs/automation_getstarted.php">Homegenie</a> (home automation server)</li>
92
+ <li><a href="http://icecoder.net">ICEcoder</a> (web IDE)</li>
93
+ <li><a href="http://ipython.org/">IPython</a> (interactive computing shell)</li>
94
+ <li><a href="http://i-mos.org/imos/">i-MOS</a> (modeling and simulation platform)</li>
95
+ <li><a href="http://www.janvas.com/">Janvas</a> (vector graphics editor)</li>
96
+ <li><a href="http://extensions.joomla.org/extensions/edition/editors/8723">Joomla plugin</a></li>
97
+ <li><a href="http://jqfundamentals.com/">jQuery fundamentals</a> (interactive tutorial)</li>
98
+ <li><a href="http://jsbin.com">jsbin.com</a> (JS playground)</li>
99
+ <li><a href="http://tool.jser.com/preprocessor">JSER preprocessor</a></li>
100
+ <li><a href="https://github.com/kucherenko/jscpd">jscpd</a> (code duplication detector)</li>
101
+ <li><a href="http://jsfiddle.net">JSFiddle</a> (another JS playground)</li>
102
+ <li><a href="http://www.jshint.com/">JSHint</a> (JS linter)</li>
103
+ <li><a href="http://jumpseller.com/">Jumpseller</a> (online store builder)</li>
104
+ <li><a href="http://kl1p.com/cmtest/1">kl1p</a> (paste service)</li>
105
+ <li><a href="http://kodtest.com/">Kodtest</a> (HTML/JS/CSS playground)</li>
106
+ <li><a href="http://try.kotlinlang.org">Kotlin</a> (web-based mini-IDE for Kotlin)</li>
107
+ <li><a href="https://laborate.io/">Laborate</a> (collaborative coding)</li>
108
+ <li><a href="http://lighttable.com/">Light Table</a> (experimental IDE)</li>
109
+ <li><a href="http://liveweave.com/">Liveweave</a> (HTML/CSS/JS scratchpad)</li>
110
+ <li><a href="http://marklighteditor.com/">Marklight editor</a> (lightweight markup editor)</li>
111
+ <li><a href="http://www.mergely.com/">Mergely</a> (interactive diffing)</li>
112
+ <li><a href="http://www.iunbug.com/mihtool">MIHTool</a> (iOS web-app debugging tool)</li>
113
+ <li><a href="http://mongo-mapreduce-webbrowser.opensagres.cloudbees.net/">Mongo MapReduce WebBrowser</a></li>
114
+ <li><a href="http://montagestudio.com/">Montage Studio</a> (web app creator suite)</li>
115
+ <li><a href="http://mvcplayground.apphb.com/">MVC Playground</a></li>
116
+ <li><a href="https://www.my2ndgeneration.com/">My2ndGeneration</a> (social coding)</li>
117
+ <li><a href="http://www.navigatecms.com">Navigate CMS</a></li>
118
+ <li><a href="https://github.com/soliton4/nodeMirror">nodeMirror</a> (IDE project)</li>
119
+ <li><a href="https://notex.ch">NoTex</a> (rST authoring)</li>
120
+ <li><a href="http://oakoutliner.com">Oak</a> (online outliner)</li>
121
+ <li><a href="http://clrhome.org/asm/">ORG</a> (z80 assembly IDE)</li>
122
+ <li><a href="https://github.com/mamacdon/orion-codemirror">Orion-CodeMirror integration</a> (running CodeMirror modes in Orion)</li>
123
+ <li><a href="http://paperjs.org/">Paper.js</a> (graphics scripting)</li>
124
+ <li><a href="http://prinbit.com/">PrinBit</a> (collaborative coding tool)</li>
125
+ <li><a href="http://prose.io/">Prose.io</a> (github content editor)</li>
126
+ <li><a href="https://pypi.python.org/pypi/PubliForge/">PubliForge</a> (online publishing system)</li>
127
+ <li><a href="http://www.puzzlescript.net/">Puzzlescript</a> (puzzle game engine)</li>
128
+ <li><a href="http://ql.io/">ql.io</a> (http API query helper)</li>
129
+ <li><a href="http://qyapp.com">QiYun web app platform</a></li>
130
+ <li><a href="http://ariya.ofilabs.com/2011/09/hybrid-webnative-desktop-codemirror.html">Qt+Webkit integration</a> (building a desktop CodeMirror app)</li>
131
+ <li><a href="http://www.quivive-file-manager.com">Quivive File Manager</a></li>
132
+ <li><a href="http://rascalmicro.com/docs/basic-tutorial-getting-started.html">Rascal</a> (tiny computer)</li>
133
+ <li><a href="https://www.realtime.io/">RealTime.io</a> (Internet-of-Things infrastructure)</li>
134
+ <li><a href="https://cloud.sagemath.com/">SageMathCloud</a> (interactive mathematical software environment)</li>
135
+ <li><a href="https://chrome.google.com/webstore/detail/servephp/mnpikomdchjhkhbhmbboehfdjkobbfpo">ServePHP</a> (PHP code testing in Chrome dev tools)</li>
136
+ <li><a href="https://www.shadertoy.com/">Shadertoy</a> (shader sharing)</li>
137
+ <li><a href="http://www.sketchpatch.net/labs/livecodelabIntro.html">sketchPatch Livecodelab</a></li>
138
+ <li><a href="http://www.skulpt.org/">Skulpt</a> (in-browser Python environment)</li>
139
+ <li><a href="http://snaptomato.appspot.com/editor.html">Snap Tomato</a> (HTML editing/testing page)</li>
140
+ <li><a href="http://snippets.pro/">Snippets.pro</a> (code snippet sharing)</li>
141
+ <li><a href="http://www.solidshops.com/">SolidShops</a> (hosted e-commerce platform)</li>
142
+ <li><a href="http://www.cemetech.net/sc/">SourceCoder 3</a> (online calculator IDE and editor)</li>
143
+ <li><a href="http://sqlfiddle.com">SQLFiddle</a> (SQL playground)</li>
144
+ <li><a href="http://www.subte.org/page/programar-ta-te-ti-online/">SubTe</a> (AI bot programming environment)</li>
145
+ <li><a href="http://xuanji.appspot.com/isicp/">Structure and Interpretation of Computer Programs</a>, Interactive Version</li>
146
+ <li><a href="http://syframework.alwaysdata.net">SyBox</a> (PHP playground)</li>
147
+ <li><a href="http://www.tagspaces.org/">TagSpaces</a> (personal data manager)</li>
148
+ <li><a href="https://thefiletree.com">The File Tree</a> (collab editor)</li>
149
+ <li><a href="http://www.mapbox.com/tilemill/">TileMill</a> (map design tool)</li>
150
+ <li><a href="http://doc.tiki.org/Syntax+Highlighter">Tiki</a> (wiki CMS groupware)</li>
151
+ <li><a href="http://www.toolsverse.com/products/data-explorer/">Toolsverse Data Explorer</a> (database management)</li>
152
+ <li><a href="http://enjalot.com/tributary/2636296/sinwaves.js">Tributary</a> (augmented editing)</li>
153
+ <li><a href="http://blog.englard.net/post/39608000629/codeintumblr">Tumblr code highlighting shim</a></li>
154
+ <li><a href="http://turbopy.com/">TurboPY</a> (web publishing framework)</li>
155
+ <li><a href="http://uicod.com/">uiCod</a> (animation demo gallery and sharing)</li>
156
+ <li><a href="http://cruise.eecs.uottawa.ca/umpleonline/">UmpleOnline</a> (model-oriented programming tool)</li>
157
+ <li><a href="https://upsource.jetbrains.com/#idea/view/923f30395f2603cd9f42a32bcafd13b6c28de0ff/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ReplaceAbstractClassInstanceByMapIntention.java">Upsource</a> (code viewer)</li>
158
+ <li><a href="https://github.com/mgaitan/waliki">Waliki</a> (wiki engine)</li>
159
+ <li><a href="http://wamer.net/">Wamer</a> (web application builder)</li>
160
+ <li><a href="https://github.com/brettz9/webappfind">webappfind</a> (windows file bindings for webapps)</li>
161
+ <li><a href="http://www.webglacademy.com/">WebGL academy</a> (learning WebGL)</li>
162
+ <li><a href="http://webglplayground.net/">WebGL playground</a></li>
163
+ <li><a href="https://www.webkit.org/blog/2518/state-of-web-inspector/#source-code">WebKit Web inspector</a></li>
164
+ <li><a href="http://www.wescheme.org/">WeScheme</a> (learning tool)</li>
165
+ <li><a href="https://github.com/b3log/wide">Wide</a> (golang web IDE)</li>
166
+ <li><a href="http://wordpress.org/extend/plugins/codemirror-for-codeeditor/">WordPress plugin</a></li>
167
+ <li><a href="https://www.writelatex.com">writeLaTeX</a> (Collaborative LaTeX Editor)</li>
168
+ <li><a href="http://www.xosystem.org/home/applications_websites/xosystem_website/xoside_EN.php">XOSide</a> (online editor)</li>
169
+ <li><a href="http://videlibri.sourceforge.net/cgi-bin/xidelcgi">XQuery tester</a></li>
170
+ <li><a href="http://q42jaap.github.io/xsd2codemirror/">xsd2codemirror</a> (convert XSD to CM XML completion info)</li>
171
+ </ul>
172
+
173
+ </article>
174
+
@@ -0,0 +1,1116 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Release History</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="docs.css">
6
+ <script src="activebookmark.js"></script>
7
+
8
+ <div id=nav>
9
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
10
+
11
+ <ul>
12
+ <li><a href="../index.html">Home</a>
13
+ <li><a href="manual.html">Manual</a>
14
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
15
+ </ul>
16
+ <ul>
17
+ <li><a class=active data-default="true" href="#v5">Version 5.x</a>
18
+ <li><a href="#v4">Version 4.x</a>
19
+ <li><a href="#v3">Version 3.x</a>
20
+ <li><a href="#v2">Version 2.x</a>
21
+ <li><a href="#v1">Version 0.x</a>
22
+ </ul>
23
+ </div>
24
+
25
+ <article>
26
+
27
+ <h2>Release notes and version history</h2>
28
+
29
+ <section id=v5 class=first>
30
+
31
+ <h2>Version 5.x</h2>
32
+
33
+ <p class="rel">20-07-2015: <a href="http://codemirror.net/codemirror-5.5.zip">Version 5.5</a>:</p>
34
+
35
+ <ul class="rel-note">
36
+ <li>New option: <a href="manual.html#option_lineSeparator"><code>lineSeparator</code></a> (with corresponding <a href="manual.html#lineSeparator">method</a>)
37
+ <li>New themes: <a href="../demo/theme.html#dracula">dracula</a>, <a href="../demo/theme.html#seti">seti</a>, <a href="../demo/theme.html#yeti">yeti</a>, <a href="../demo/theme.html#material">material</a>, and <a href="../demo/theme.html#icecoder">icecoder</a></li>
38
+ <li>New modes: <a href="../mode/brainfuck/index.html">Brainfuck</a>, <a href="../mode/vhdl/index.html">VHDL</a>, Squirrel (<a href="../mode/clike/index.html">clike</a> dialect)</li>
39
+ <li>Define a <code>findPersistent</code> command in
40
+ the <a href="../demo/search.html">search</a> addon, for a dialog
41
+ that stays open as you cycle through matches</li>
42
+ <li>From this release on, the NPM module doesn't include documentation and demos</li>
43
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/5.4.0...5.5.0">list of patches</a></li>
44
+ </ul>
45
+
46
+ <p class="rel">25-06-2015: <a href="http://codemirror.net/codemirror-5.4.zip">Version 5.4</a>:</p>
47
+
48
+ <ul class="rel-note">
49
+ <li>New modes: <a href="../mode/twig/index.html">Twig</a>, <a href="../mode/elm/index.html">Elm</a>, <a href="../mode/factor/index.html">Factor</a>, <a href="../mode/swift/index.html">Swift</a></li>
50
+ <li>Prefer clipboard API (if available) when pasting</li>
51
+ <li>Refined definition highlighting in <a href="../mode/clike/index.html">clike</a> mode</li>
52
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/5.3.0...5.4.0">list of patches</a></li>
53
+ </ul>
54
+
55
+ <p class="rel">20-05-2015: <a href="http://codemirror.net/codemirror-5.3.zip">Version 5.3</a>:</p>
56
+
57
+ <ul class="rel-note">
58
+ <li>Fix several regressions in the <a href="manual.html#addon_show-hint"><code>show-hint</code></a> addon (<code>completeSingle</code> option, <code>"shown"</code> and <code>"close"</code> events)</li>
59
+ <li>The <a href="../demo/vim.html">vim mode</a> API was <a href="manual.html#vimapi">documented</a></li>
60
+ <li>New modes: <a href="../mode/asn.1/index.html">ASN.1</a>, <a href="../mode/ttcn/index.html">TTCN</a>, and <a href="../mode/ttcn-cfg/index.html">TTCN-CFG</a></li>
61
+ <li>The <a href="../mode/clike/index.html">clike</a> mode can now deep-indent <code>switch</code> statements, and roughly recognizes types and defined identifiers</li>
62
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/5.2.0...5.3.0">list of patches</a></li>
63
+ </ul>
64
+
65
+ <p class="rel">20-04-2015: <a href="http://codemirror.net/codemirror-5.2.zip">Version 5.2</a>:</p>
66
+
67
+ <ul class="rel-note">
68
+ <li>Fix several race conditions
69
+ in <a href="manual.html#addon_show-hint"><code>show-hint</code></a>'s
70
+ asynchronous mode</li>
71
+ <li>Fix backspace binding in <a href="../demo/sublime.html">Sublime bindings</a></li>
72
+ <li>Change the way IME is handled in the <code>"textarea"</code> <a href="manual.html#option_inputStyle">input style</a></li>
73
+
74
+ <li>New modes: <a href="../mode/mumps/index.html">MUMPS</a>, <a href="../mode/handlebars/index.html">Handlebars</a></li>
75
+ <li>Rewritten modes: <a href="../mode/django/index.html">Django</a>, <a href="../mode/z80/index.html">Z80</a></li>
76
+ <li>New theme: <a href="../demo/theme.html#liquibyte">Liquibyte</a></li>
77
+ <li>New option: <a href="manual.html#option_lineWiseCopyCut"><code>lineWiseCopyCut</code></a></li>
78
+ <li>The <a href="../demo/vim.html">Vim mode</a> now supports buffer-local options and the <code>filetype</code> setting</li>
79
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/5.1.0...5.2.0">list of patches</a></li>
80
+ </ul>
81
+
82
+ <p class="rel">23-03-2015: <a href="http://codemirror.net/codemirror-5.1.zip">Version 5.1</a>:</p>
83
+
84
+ <ul class="rel-note">
85
+ <li>New modes: <a href="../mode/asciiarmor/index.html">ASCII armor</a> (PGP data), <a href="../mode/troff/index.html">Troff</a>, and <a href="../mode/cmake/index.html">CMake</a>.</li>
86
+ <li>Remove SmartyMixed mode, rewrite <a href="../mode/smarty/index.html">Smarty</a> mode to supersede it.</li>
87
+ <li>New commands in the <a href="manual.html#addon_merge">merge
88
+ addon</a>: <code>goNextDiff</code> and <code>goPrevDiff</code>.</li>
89
+ <li>The <a href="manual.html#addon_closebrackets">closebrackets addon</a> can now be configured per mode.</li>
90
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/5.0.0...5.1.0">list of patches</a>.</li>
91
+ </ul>
92
+
93
+ <p class="rel">20-02-2015: <a href="http://codemirror.net/codemirror-5.0.zip">Version 5.0</a>:</p>
94
+
95
+ <ul class="rel-note">
96
+ <li>Experimental mobile support (tested on iOS, Android Chrome, stock Android browser)</li>
97
+ <li>New option <a href="manual.html#option_inputStyle"><code>inputStyle</code></a> to switch between hidden textarea and contenteditable input.</li>
98
+ <li>The <a href="manual.html#getInputField"><code>getInputField</code></a>
99
+ method is no longer guaranteed to return a textarea.</li>
100
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.13.0...5.0.0">list of patches</a>.</li>
101
+ </ul>
102
+
103
+ </section>
104
+
105
+ <section id=v4 class=first>
106
+
107
+ <h2>Version 4.x</h2>
108
+
109
+ <p class="rel">20-02-2015: <a href="http://codemirror.net/codemirror-4.13.zip">Version 4.13</a>:</p>
110
+
111
+ <ul class="rel-note">
112
+ <li>Fix the way the <a href="../demo/closetag.html"><code>closetag</code></a> demo handles the slash character.</li>
113
+ <li>New modes: <a href="../mode/forth/index.html">Forth</a>, <a href="../mode/stylus/index.html">Stylus</a>.</li>
114
+ <li>Make the <a href="../mode/css/index.html">CSS mode</a> understand some modern CSS extensions.</li>
115
+ <li>Have the <a href="../mode/clike/index.html">Scala mode</a> handle symbols and triple-quoted strings.</li>
116
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.12.0...4.13.0">list of patches</a>.</li>
117
+ </ul>
118
+
119
+ <p class="rel">22-01-2015: <a href="http://codemirror.net/codemirror-4.12.zip">Version 4.12</a>:</p>
120
+
121
+ <ul class="rel-note">
122
+ <li>The <a href="manual.html#addon_closetag"><code>closetag</code></a>
123
+ addon now defines a <code>"closeTag"</code> command.</li>
124
+ <li>Adds a <code>findModeByFileName</code> to the <a href="manual.html#addon_meta">mode metadata</a>
125
+ addon.</li>
126
+ <li><a href="../demo/simplemode.html">Simple mode</a> rules can
127
+ now contain a <code>sol</code> property to only match at the start
128
+ of a line.</li>
129
+ <li>New
130
+ addon: <a href="manual.html#addon_selection-pointer"><code>selection-pointer</code></a>
131
+ to style the mouse cursor over the selection.</li>
132
+ <li>Improvements to the <a href="../mode/sass/index.html">Sass mode</a>'s indentation.</li>
133
+ <li>The <a href="../demo/vim.html">Vim keymap</a>'s search functionality now
134
+ supports <a href="manual.html#addon_matchesonscrollbar">scrollbar
135
+ annotation</a>.</li>
136
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.11.0...4.12.0">list of patches</a>.</li>
137
+ </ul>
138
+
139
+ <p class="rel">9-01-2015: <a href="http://codemirror.net/codemirror-4.11.zip">Version 4.11</a>:</p>
140
+
141
+ <p class="rel-note">Unfortunately, 4.10 did not take care of the
142
+ Firefox scrolling issue entirely. This release adds two more patches
143
+ to address that.</p>
144
+
145
+ <p class="rel">29-12-2014: <a href="http://codemirror.net/codemirror-4.10.zip">Version 4.10</a>:</p>
146
+
147
+ <p class="rel-note">Emergency single-patch update to 4.9. Fixes
148
+ Firefox-specific problem where the cursor could end up behind the
149
+ horizontal scrollbar.</p>
150
+
151
+ <p class="rel">23-12-2014: <a href="http://codemirror.net/codemirror-4.9.zip">Version 4.9</a>:</p>
152
+
153
+ <ul class="rel-note">
154
+ <li>Overhauled scroll bar handling.
155
+ Add pluggable <a href="../demo/simplescrollbars.html">scrollbar
156
+ implementations</a>.</li>
157
+ <li>Tweaked behavior for
158
+ the <a href="manual.html#addon_show-hint">completion addons</a> to
159
+ not take text after cursor into account.</li>
160
+ <li>Two new optional features in
161
+ the <a href="manual.html#addon_merge">merge addon</a>: aligning
162
+ editors, and folding unchanged text.</li>
163
+ <li>New
164
+ modes: <a href="../mode/dart/index.html">Dart</a>, <a href="../mode/ebnf/index.html">EBNF</a>, <a href="../mode/spreadsheet/index.html">spreadsheet</a>,
165
+ and <a href="../mode/soy/index.html">Soy</a>.</li>
166
+ <li>New <a href="../demo/panel.html">addon</a> to show persistent panels below/above an editor.</li>
167
+ <li>New themes: <a href="../demo/theme.html#zenburn">zenburn</a>
168
+ and <a href="../demo/theme.html#tomorrow-night-bright">tomorrow night
169
+ bright</a>.</li>
170
+ <li>Allow ctrl-click to clear existing cursors.</li>
171
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.8.0...4.9.0">list of patches</a>.</li>
172
+ </ul>
173
+
174
+ <p class="rel">22-11-2014: <a href="http://codemirror.net/codemirror-4.8.zip">Version 4.8</a>:</p>
175
+
176
+ <ul class="rel-note">
177
+ <li>Built-in support for <a href="manual.html#normalizeKeyMap">multi-stroke key bindings</a>.</li>
178
+ <li>New method: <a href="manual.html#getLineTokens"><code>getLineTokens</code></a>.</li>
179
+ <li>New modes: <a href="../mode/dockerfile/index.html">dockerfile</a>, <a href="../mode/idl/index.html">IDL</a>, <a href="../mode/clike/index.html">Objective C</a> (crude).</li>
180
+ <li>Support styling of gutter backgrounds, allow <code>"gutter"</code> styles in <a href="manual.html#addLineClass"><code>addLineClass</code></a>.</li>
181
+ <li>Many improvements to the <a href="../demo/vim.html">Vim mode</a>, rewritten visual mode.</li>
182
+ <li>Improvements to modes: <a href="../mode/gfm/index.html">gfm</a> (strikethrough), <a href="../mode/sparql/index.html">SPARQL</a> (version 1.1 support), and <a href="../mode/stex/index.html">sTeX</a> (no more runaway math mode).
183
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.7.0...4.8.0">list of patches</a>.</li>
184
+ </ul>
185
+
186
+ <p class="rel">20-10-2014: <a href="http://codemirror.net/codemirror-4.7.zip">Version 4.7</a>:</p>
187
+
188
+ <ul class="rel-note">
189
+ <li><strong>Incompatible</strong>:
190
+ The <a href="../demo/lint.html">lint addon</a> now passes the
191
+ editor's value as first argument to asynchronous lint functions,
192
+ for consistency. The editor is still passed, as fourth
193
+ argument.</li>
194
+ <li>Improved handling of unicode identifiers in modes for
195
+ languages that support them.</li>
196
+ <li>More mode
197
+ improvements: <a href="../mode/coffeescript/index.html">CoffeeScript</a>
198
+ (indentation), <a href="../mode/verilog/index.html">Verilog</a>
199
+ (indentation), <a href="../mode/clike/index.html">Scala</a>
200
+ (indentation, triple-quoted strings),
201
+ and <a href="../mode/php/index.html">PHP</a> (interpolated
202
+ variables in heredoc strings).</li>
203
+ <li>New modes: <a href="../mode/textile/index.html">Textile</a> and <a href="../mode/tornado/index.html">Tornado templates</a>.</li>
204
+ <li>Experimental new <a href="../demo/simplemode.html">way to define modes</a>.</li>
205
+ <li>Improvements to the <a href="../demo/vim.html">Vim
206
+ bindings</a>: Arbitrary insert mode key mappings are now possible,
207
+ and text objects are supported in visual mode.</li>
208
+ <li>The mode <a href="../mode/meta.js">meta-information file</a>
209
+ now includes information about file extensions,
210
+ and <a href="manual.html#addon_meta">helper
211
+ functions</a> <code>findModeByMIME</code>
212
+ and <code>findModeByExtension</code>.</li>
213
+ <li>New logo!</li>
214
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.6.0...4.7.0">list of patches</a>.</li>
215
+ </ul>
216
+
217
+ <p class="rel">19-09-2014: <a href="http://codemirror.net/codemirror-4.6.zip">Version 4.6</a>:</p>
218
+
219
+ <ul class="rel-note">
220
+ <li>New mode: <a href="../mode/modelica/index.html">Modelica</a></li>
221
+ <li>New method: <a href="manual.html#findWordAt"><code>findWordAt</code></a></li>
222
+ <li>Make it easier to <a href="../demo/markselection.html">use text background styling</a></li>
223
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.5.0...4.6.0">list of patches</a>.</li>
224
+ </ul>
225
+
226
+ <p class="rel">21-08-2014: <a href="http://codemirror.net/codemirror-4.5.zip">Version 4.5</a>:</p>
227
+
228
+ <ul class="rel-note">
229
+ <li>Fix several serious bugs with horizontal scrolling</li>
230
+ <li>New mode: <a href="../mode/slim/index.html">Slim</a></li>
231
+ <li>New command: <a href="manual.html#command_goLineLeftSmart"><code>goLineLeftSmart</code></a></li>
232
+ <li>More fixes and extensions for the <a href="../demo/vim.html">Vim</a> visual block mode</li>
233
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.4.0...4.5.0">list of patches</a>.</li>
234
+ </ul>
235
+
236
+ <p class="rel">21-07-2014: <a href="http://codemirror.net/codemirror-4.4.zip">Version 4.4</a>:</p>
237
+
238
+ <ul class="rel-note">
239
+ <li><strong>Note:</strong> Some events might now fire in slightly
240
+ different order (<code>"change"</code> is still guaranteed to fire
241
+ before <code>"cursorActivity"</code>)</li>
242
+ <li>Nested operations in multiple editors are now synced (complete
243
+ at same time, reducing DOM reflows)</li>
244
+ <li>Visual block mode for <a href="../demo/vim.html">vim</a> (&lt;C-v>) is nearly complete</li>
245
+ <li>New mode: <a href="../mode/kotlin/index.html">Kotlin</a></li>
246
+ <li>Better multi-selection paste for text copied from multiple CodeMirror selections</li>
247
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.3.0...4.4.0">list of patches</a>.</li>
248
+ </ul>
249
+
250
+ <p class="rel">23-06-2014: <a href="http://codemirror.net/codemirror-4.3.zip">Version 4.3</a>:</p>
251
+
252
+ <ul class="rel-note">
253
+ <li>Several <a href="../demo/vim.html">vim bindings</a>
254
+ improvements: search and exCommand history, global flag
255
+ for <code>:substitute</code>, <code>:global</code> command.
256
+ <li>Allow hiding the cursor by
257
+ setting <a href="manual.html#option_cursorBlinkRate"><code>cursorBlinkRate</code></a>
258
+ to a negative value.</li>
259
+ <li>Make gutter markers themeable, use this in foldgutter.</li>
260
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.2.0...4.3.0">list of patches</a>.</li>
261
+ </ul>
262
+
263
+ <p class="rel">19-05-2014: <a href="http://codemirror.net/codemirror-4.2.zip">Version 4.2</a>:</p>
264
+
265
+ <ul class="rel-note">
266
+ <li>Fix problem where some modes were broken by the fact that empty tokens were forbidden.</li>
267
+ <li>Several fixes to context menu handling.</li>
268
+ <li>On undo, scroll <em>change</em>, not cursor, into view.</li>
269
+ <li>Rewritten <a href="../mode/jade/index.html">Jade</a> mode.</li>
270
+ <li>Various improvements to <a href="../mode/shell/index.html">Shell</a> (support for more syntax) and <a href="../mode/python/index.html">Python</a> (better indentation) modes.</li>
271
+ <li>New mode: <a href="../mode/cypher/index.html">Cypher</a>.</li>
272
+ <li>New theme: <a href="../demo/theme.html#neo">Neo</a>.</li>
273
+ <li>Support direct styling options (color, line style, width) in the <a href="manual.html#addon_rulers">rulers</a> addon.</li>
274
+ <li>Recognize per-editor configuration for the <a href="manual.html#addon_show-hint">show-hint</a> and <a href="manual.html#addon_foldcode">foldcode</a> addons.</li>
275
+ <li>More intelligent scanning for existing close tags in <a href="manual.html#addon_closetag">closetag</a> addon.</li>
276
+ <li>In the <a href="../demo/vim.html">Vim bindings</a>: Fix bracket matching, support case conversion in visual mode, visual paste, append action.</li>
277
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.1.0...4.2.0">list of patches</a>.</li>
278
+ </ul>
279
+
280
+ <p class="rel">22-04-2014: <a href="http://codemirror.net/codemirror-4.1.zip">Version 4.1</a>:</p>
281
+
282
+ <ul class="rel-note">
283
+ <li><em>Slightly incompatible</em>:
284
+ The <a href="manual.html#event_cursorActivity"><code>"cursorActivity"</code></a>
285
+ event now fires after all other events for the operation (and only
286
+ for handlers that were actually registered at the time the
287
+ activity happened).</li>
288
+ <li>New command: <a href="manual.html#command_insertSoftTab"><code>insertSoftTab</code></a>.</li>
289
+ <li>New mode: <a href="../mode/django/index.html">Django</a>.</li>
290
+ <li>Improved modes: <a href="../mode/verilog/index.html">Verilog</a> (rewritten), <a href="../mode/jinja2/index.html">Jinja2</a>, <a href="../mode/haxe/index.html">Haxe</a>, <a href="../mode/php/index.html">PHP</a> (string interpolation highlighted), <a href="../mode/javascript/index.html">JavaScript</a> (indentation of trailing else, template strings), <a href="../mode/livescript/index.html">LiveScript</a> (multi-line strings).</li>
291
+ <li>Many small issues from the 3.x→4.x transition were found and fixed.</li>
292
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/4.0.3...4.1.0">list of patches</a>.</li>
293
+ </ul>
294
+
295
+ <p class="rel">20-03-2014: <a href="http://codemirror.net/codemirror-4.0.zip">Version 4.0</a>:</p>
296
+
297
+ <p class="rel-note">This is a new major version of CodeMirror. There
298
+ are a few <strong>incompatible</strong> changes in the API. Upgrade
299
+ with care, and read the <a href="upgrade_v4.html">upgrading
300
+ guide</a>.</p>
301
+
302
+ <ul class="rel-note">
303
+ <li>Multiple selections (ctrl-click, alt-drag, <a href="manual.html#setSelections">API</a>).</li>
304
+ <li>Sublime Text <a href="../demo/sublime.html">bindings</a>.</li>
305
+ <li><a href="manual.html#modloader">Module loader shims</a> wrapped around all modules.</li>
306
+ <li>Selection <a href="manual.html#command_undoSelection">undo</a>/<a href="manual.html#command_redoSelection">redo</a>.</li>
307
+ <li>Improved character measuring (faster, handles wrapped lines more robustly).</li>
308
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.23.0...4.0.3">list of patches</a>.</li>
309
+ </ul>
310
+
311
+ </section>
312
+
313
+ <section id=v3>
314
+
315
+ <h2>Version 3.x</h2>
316
+
317
+ <p class="rel">22-04-2014: <a href="http://codemirror.net/codemirror-3.24.zip">Version 3.24</a>:</p>
318
+
319
+ <p class="rel-note">Merges the improvements from 4.1 that could
320
+ easily be applied to the 3.x code. Also improves the way the editor
321
+ size is updated when line widgets change.</p>
322
+
323
+ <p class="rel">20-03-2014: <a href="http://codemirror.net/codemirror-3.23.zip">Version 3.23</a>:</p>
324
+
325
+ <ul class="rel-note">
326
+ <li>In the <a href="../mode/xml/index.html">XML mode</a>,
327
+ add <code>brackets</code> style to angle brackets, fix
328
+ case-sensitivity of tags for HTML.</li>
329
+ <li>New mode: <a href="../mode/dylan/index.html">Dylan</a>.</li>
330
+ <li>Many improvements to the <a href="../demo/vim.html">Vim bindings</a>.</li>
331
+ </ul>
332
+
333
+ <p class="rel">21-02-2014: <a href="http://codemirror.net/codemirror-3.22.zip">Version 3.22</a>:</p>
334
+
335
+ <ul class="rel-note">
336
+ <li>Adds the <a href="manual.html#findMarks"><code>findMarks</code></a> method.</li>
337
+ <li>New addons: <a href="manual.html#addon_rulers">rulers</a>, markdown-fold, yaml-lint.</li>
338
+ <li>New theme: <a href="../demo/theme.html#mdn-like">mdn-like</a>.</li>
339
+ <li>New mode: <a href="../mode/solr/index.html">Solr</a>.</li>
340
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.21.0...3.22.0">list of patches</a>.</li>
341
+ </ul>
342
+
343
+ <p class="rel">16-01-2014: <a href="http://codemirror.net/codemirror-3.21.zip">Version 3.21</a>:</p>
344
+
345
+ <ul class="rel-note">
346
+ <li>Auto-indenting a block will no longer add trailing whitespace to blank lines.</a>
347
+ <li>Marking text has a new option <a href="manual.html#markText"><code>clearWhenEmpty</code></a> to control auto-removal.</li>
348
+ <li>Several bugfixes in the handling of bidirectional text.</li>
349
+ <li>The <a href="../mode/xml/index.html">XML</a> and <a href="../mode/css/index.html">CSS</a> modes were largely rewritten. <a href="../mode/css/less.html">LESS</a> support was added to the CSS mode.</li>
350
+ <li>The OCaml mode was moved to an <a href="../mode/mllike/index.html">mllike</a> mode, F# support added.</li>
351
+ <li>Make it possible to fetch multiple applicable helper values with <a href="manual.html#getHelpers"><code>getHelpers</code></a>, and to register helpers matched on predicates with <a href="manual.html#registerGlobalHelper"><code>registerGlobalHelper</code></a>.</li>
352
+ <li>New theme <a href="../demo/theme.html#pastel-on-dark">pastel-on-dark</a>.</li>
353
+ <li>Better ECMAScript 6 support in <a href="../mode/javascript/index.html">JavaScript</a> mode.</li>
354
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.20.0...3.21.0">list of patches</a>.</li>
355
+ </ul>
356
+
357
+ <p class="rel">21-11-2013: <a href="http://codemirror.net/codemirror-3.20.zip">Version 3.20</a>:</p>
358
+
359
+ <ul class="rel-note">
360
+ <li>New modes: <a href="../mode/julia/index.html">Julia</a> and <a href="../mode/pegjs/index.html">PEG.js</a>.</li>
361
+ <li>Support ECMAScript 6 in the <a href="../mode/javascript/index.html">JavaScript mode</a>.</li>
362
+ <li>Improved indentation for the <a href="../mode/coffeescript/index.html">CoffeeScript mode</a>.</li>
363
+ <li>Make non-printable-character representation <a href="manual.html#option_specialChars">configurable</a>.</li>
364
+ <li>Add ‘notification’ functionality to <a href="manual.html#addon_dialog">dialog</a> addon.</li>
365
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.19.0...3.20.0">list of patches</a>.</li>
366
+ </ul>
367
+
368
+ <p class="rel">21-10-2013: <a href="http://codemirror.net/codemirror-3.19.zip">Version 3.19</a>:</p>
369
+
370
+ <ul class="rel-note">
371
+ <li>New modes: <a href="../mode/eiffel/index.html">Eiffel</a>, <a href="../mode/gherkin/index.html">Gherkin</a>, <a href="../mode/sql/?mime=text/x-mssql">MSSQL dialect</a>.</li>
372
+ <li>New addons: <a href="manual.html#addon_hardwrap">hardwrap</a>, <a href="manual.html#addon_sql-hint">sql-hint</a>.</li>
373
+ <li>New theme: <a href="../demo/theme.html#mbo">MBO</a>.</li>
374
+ <li>Add <a href="manual.html#token_style_line">support</a> for line-level styling from mode tokenizers.</li>
375
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.18.0...3.19.0">list of patches</a>.</li>
376
+ </ul>
377
+
378
+ <p class="rel">23-09-2013: <a href="http://codemirror.net/codemirror-3.18.zip">Version 3.18</a>:</p>
379
+
380
+ <p class="rel-note">Emergency release to fix a problem in 3.17
381
+ where <code>.setOption("lineNumbers", false)</code> would raise an
382
+ error.</p>
383
+
384
+ <p class="rel">23-09-2013: <a href="http://codemirror.net/codemirror-3.17.zip">Version 3.17</a>:</p>
385
+
386
+ <ul class="rel-note">
387
+ <li>New modes: <a href="../mode/fortran/index.html">Fortran</a>, <a href="../mode/octave/index.html">Octave</a> (Matlab), <a href="../mode/toml/index.html">TOML</a>, and <a href="../mode/dtd/index.html">DTD</a>.</li>
388
+ <li>New addons: <a href="../addon/lint/css-lint.js"><code>css-lint</code></a>, <a href="manual.html#addon_css-hint"><code>css-hint</code></a>.</li>
389
+ <li>Improve resilience to CSS 'frameworks' that globally mess up <code>box-sizing</code>.</li>
390
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.16.0...3.17.0">list of patches</a>.</li>
391
+ </ul>
392
+
393
+ <p class="rel">21-08-2013: <a href="http://codemirror.net/codemirror-3.16.zip">Version 3.16</a>:</p>
394
+
395
+ <ul class="rel-note">
396
+ <li>The whole codebase is now under a single <a href="../LICENSE">license</a> file.</li>
397
+ <li>The project page was overhauled and redesigned.</li>
398
+ <li>New themes: <a href="../demo/theme.html#paraiso-dark">Paraiso</a> (<a href="../demo/theme.html#paraiso-light">light</a>), <a href="../demo/theme.html#the-matrix">The Matrix</a>.</li>
399
+ <li>Improved interaction between themes and <a href="manual.html#addon_active-line">active-line</a>/<a href="manual.html#addon_matchbrackets">matchbrackets</a> addons.</li>
400
+ <li>New <a href="manual.html#addon_foldcode">folding</a> function <code>CodeMirror.fold.comment</code>.</li>
401
+ <li>Added <a href="manual.html#addon_fullscreen">fullscreen</a> addon.</li>
402
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.15.0...3.16.0">list of patches</a>.</li>
403
+ </ul>
404
+
405
+ <p class="rel">29-07-2013: <a href="http://codemirror.net/codemirror-3.15.zip">Version 3.15</a>:</p>
406
+
407
+ <ul class="rel-note">
408
+ <li>New modes: <a href="../mode/jade/index.html">Jade</a>, <a href="../mode/nginx/index.html">Nginx</a>.</li>
409
+ <li>New addons: <a href="../demo/tern.html">Tern</a>, <a href="manual.html#addon_matchtags">matchtags</a>, and <a href="manual.html#addon_foldgutter">foldgutter</a>.</li>
410
+ <li>Introduced <a href="manual.html#getHelper"><em>helper</em></a> concept (<a href="https://groups.google.com/forum/#!msg/codemirror/cOc0xvUUEUU/nLrX1-qnidgJ">context</a>).</li>
411
+ <li>New method: <a href="manual.html#getModeAt"><code>getModeAt</code></a>.</li>
412
+ <li>New themes: base16 <a href="../demo/theme.html#base16-dark">dark</a>/<a href="../demo/theme.html#base16-light">light</a>, 3024 <a href="../demo/theme.html#3024-night">dark</a>/<a href="../demo/theme.html#3024-day">light</a>, <a href="../demo/theme.html#tomorrow-night-eighties">tomorrow-night</a>.</li>
413
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.14.0...3.15.0">list of patches</a>.</li>
414
+ </ul>
415
+
416
+ <p class="rel">20-06-2013: <a href="http://codemirror.net/codemirror-3.14.zip">Version 3.14</a>:</p>
417
+
418
+ <ul class="rel-note">
419
+ <li>New
420
+ addons: <a href="manual.html#addon_trailingspace">trailing
421
+ space highlight</a>, <a href="manual.html#addon_xml-hint">XML
422
+ completion</a> (rewritten),
423
+ and <a href="manual.html#addon_merge">diff merging</a>.</li>
424
+ <li><a href="manual.html#markText"><code>markText</code></a>
425
+ and <a href="manual.html#addLineWidget"><code>addLineWidget</code></a>
426
+ now take a <code>handleMouseEvents</code> option.</li>
427
+ <li>New methods: <a href="manual.html#lineAtHeight"><code>lineAtHeight</code></a>,
428
+ <a href="manual.html#getTokenTypeAt"><code>getTokenTypeAt</code></a>.</li>
429
+ <li>More precise cleanness-tracking
430
+ using <a href="manual.html#changeGeneration"><code>changeGeneration</code></a>
431
+ and <a href="manual.html#isClean"><code>isClean</code></a>.</li>
432
+ <li>Many extensions to <a href="../demo/emacs.html">Emacs</a> mode
433
+ (prefixes, more navigation units, and more).</li>
434
+ <li>New
435
+ events <a href="manual.html#event_keyHandled"><code>"keyHandled"</code></a>
436
+ and <a href="manual.html#event_inputRead"><code>"inputRead"</code></a>.</li>
437
+ <li>Various improvements to <a href="../mode/ruby/index.html">Ruby</a>,
438
+ <a href="../mode/smarty/index.html">Smarty</a>, <a href="../mode/sql/index.html">SQL</a>,
439
+ and <a href="../demo/vim.html">Vim</a> modes.</li>
440
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/3.13.0...3.14.0">list of patches</a>.</li>
441
+ </ul>
442
+
443
+ <p class="rel">20-05-2013: <a href="http://codemirror.net/codemirror-3.13.zip">Version 3.13</a>:</p>
444
+
445
+ <ul class="rel-note">
446
+ <li>New modes: <a href="../mode/cobol/index.html">COBOL</a> and <a href="../mode/haml/index.html">HAML</a>.</li>
447
+ <li>New options: <a href="manual.html#option_cursorScrollMargin"><code>cursorScrollMargin</code></a> and <a href="manual.html#option_coverGutterNextToScrollbar"><code>coverGutterNextToScrollbar</code></a>.</li>
448
+ <li>New addon: <a href="manual.html#addon_comment">commenting</a>.</li>
449
+ <li>More features added to the <a href="../demo/vim.html">Vim keymap</a>.</li>
450
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.12...3.13.0">list of patches</a>.</li>
451
+ </ul>
452
+
453
+ <p class="rel">19-04-2013: <a href="http://codemirror.net/codemirror-3.12.zip">Version 3.12</a>:</p>
454
+
455
+ <ul class="rel-note">
456
+ <li>New mode: <a href="../mode/gas/index.html">GNU assembler</a>.</li>
457
+ <li>New
458
+ options: <a href="manual.html#option_maxHighlightLength"><code>maxHighlightLength</code></a>
459
+ and <a href="manual.html#option_historyEventDelay"><code>historyEventDelay</code></a>.</li>
460
+ <li>Added <a href="manual.html#mark_addToHistory"><code>addToHistory</code></a>
461
+ option for <code>markText</code>.</li>
462
+ <li>Various fixes to JavaScript tokenization and indentation corner cases.</li>
463
+ <li>Further improvements to the vim mode.</li>
464
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.11...v3.12">list of patches</a>.</li>
465
+ </ul>
466
+
467
+ <p class="rel">20-03-2013: <a href="http://codemirror.net/codemirror-3.11.zip">Version 3.11</a>:</p>
468
+
469
+ <ul class="rel-note">
470
+ <li><strong>Removed code:</strong> <code>collapserange</code>,
471
+ <code>formatting</code>, and <code>simple-hint</code>
472
+ addons. <code>plsql</code> and <code>mysql</code> modes
473
+ (use <a href="../mode/sql/index.html"><code>sql</code></a> mode).</li>
474
+ <li><strong>Moved code:</strong> the range-finding functions for folding now have <a href="../addon/fold/">their own files</a>.</li>
475
+ <li><strong>Changed interface:</strong>
476
+ the <a href="manual.html#addon_continuecomment"><code>continuecomment</code></a>
477
+ addon now exposes an option, rather than a command.</li>
478
+ <li>New
479
+ modes: <a href="../mode/css/scss.html">SCSS</a>, <a href="../mode/tcl/index.html">Tcl</a>, <a href="../mode/livescript/index.html">LiveScript</a>,
480
+ and <a href="../mode/mirc/index.html">mIRC</a>.</li>
481
+ <li>New addons: <a href="../demo/placeholder.html"><code>placeholder</code></a>, <a href="../demo/html5complete.html">HTML completion</a>.</li>
482
+ <li>New
483
+ methods: <a href="manual.html#hasFocus"><code>hasFocus</code></a>, <a href="manual.html#defaultCharWidth"><code>defaultCharWidth</code></a>.</li>
484
+ <li>New events: <a href="manual.html#event_beforeCursorEnter"><code>beforeCursorEnter</code></a>, <a href="manual.html#event_renderLine"><code>renderLine</code></a>.</li>
485
+ <li>Many improvements to the <a href="manual.html#addon_show-hint"><code>show-hint</code></a> completion
486
+ dialog addon.</li>
487
+ <li>Tweak behavior of by-word cursor motion.</li>
488
+ <li>Further improvements to the <a href="../demo/vim.html">vim mode</a>.</li>
489
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.1...v3.11">list of patches</a>.</li>
490
+ </ul>
491
+
492
+ <p class="rel">21-02-2013: <a href="http://codemirror.net/codemirror-3.1.zip">Version 3.1</a>:</p>
493
+
494
+ <ul class="rel-note">
495
+ <li><strong>Incompatible:</strong> key handlers may
496
+ now <em>return</em>, rather
497
+ than <em>throw</em> <code>CodeMirror.Pass</code> to signal they
498
+ didn't handle the key.</li>
499
+ <li>Make documents a <a href="manual.html#api_doc">first-class
500
+ construct</a>, support split views and subviews.</li>
501
+ <li>Add a <a href="manual.html#addon_show-hint">new module</a>
502
+ for showing completion hints.
503
+ Deprecate <code>simple-hint.js</code>.</li>
504
+ <li>Extend <a href="../mode/htmlmixed/index.html">htmlmixed mode</a>
505
+ to allow custom handling of script types.</li>
506
+ <li>Support an <code>insertLeft</code> option
507
+ to <a href="manual.html#setBookmark"><code>setBookmark</code></a>.</li>
508
+ <li>Add an <a href="manual.html#eachLine"><code>eachLine</code></a>
509
+ method to iterate over a document.</li>
510
+ <li>New addon modules: <a href="../demo/markselection.html">selection
511
+ marking</a>, <a href="../demo/lint.html">linting</a>,
512
+ and <a href="../demo/closebrackets.html">automatic bracket
513
+ closing</a>.</li>
514
+ <li>Add <a href="manual.html#event_beforeChange"><code>"beforeChange"</code></a>
515
+ and <a href="manual.html#event_beforeSelectionChange"><code>"beforeSelectionChange"</code></a>
516
+ events.</li>
517
+ <li>Add <a href="manual.html#event_hide"><code>"hide"</code></a>
518
+ and <a href="manual.html#event_unhide"><code>"unhide"</code></a>
519
+ events to marked ranges.</li>
520
+ <li>Fix <a href="manual.html#coordsChar"><code>coordsChar</code></a>'s
521
+ interpretation of its argument to match the documentation.</li>
522
+ <li>New modes: <a href="../mode/turtle/index.html">Turtle</a>
523
+ and <a href="../mode/q/index.html">Q</a>.</li>
524
+ <li>Further improvements to the <a href="../demo/vim.html">vim mode</a>.</li>
525
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.01...v3.1">list of patches</a>.</li>
526
+ </ul>
527
+
528
+
529
+ <p class="rel">25-01-2013: <a href="http://codemirror.net/codemirror-3.02.zip">Version 3.02</a>:</p>
530
+
531
+ <p class="rel-note">Single-bugfix release. Fixes a problem that
532
+ prevents CodeMirror instances from being garbage-collected after
533
+ they become unused.</p>
534
+
535
+ <p class="rel">21-01-2013: <a href="http://codemirror.net/codemirror-3.01.zip">Version 3.01</a>:</p>
536
+
537
+ <ul class="rel-note">
538
+ <li>Move all add-ons into an organized directory structure
539
+ under <a href="../addon/"><code>/addon</code></a>. <strong>You might have to adjust your
540
+ paths.</strong></li>
541
+ <li>New
542
+ modes: <a href="../mode/d/index.html">D</a>, <a href="../mode/sass/index.html">Sass</a>, <a href="../mode/apl/index.html">APL</a>, <a href="../mode/sql/index.html">SQL</a>
543
+ (configurable), and <a href="../mode/asterisk/index.html">Asterisk</a>.</li>
544
+ <li>Several bugfixes in right-to-left text support.</li>
545
+ <li>Add <a href="manual.html#option_rtlMoveVisually"><code>rtlMoveVisually</code></a> option.</li>
546
+ <li>Improvements to vim keymap.</li>
547
+ <li>Add built-in (lightweight) <a href="manual.html#addOverlay">overlay mode</a> support.</li>
548
+ <li>Support <code>showIfHidden</code> option for <a href="manual.html#addLineWidget">line widgets</a>.</li>
549
+ <li>Add simple <a href="manual.html#addon_python-hint">Python hinter</a>.</li>
550
+ <li>Bring back the <a href="manual.html#option_fixedGutter"><code>fixedGutter</code></a> option.</li>
551
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.0...v3.01">list of patches</a>.</li>
552
+ </ul>
553
+
554
+ <p class="rel">10-12-2012: <a href="http://codemirror.net/codemirror-3.0.zip">Version 3.0</a>:</p>
555
+
556
+ <p class="rel-note"><strong>New major version</strong>. Only
557
+ partially backwards-compatible. See
558
+ the <a href="upgrade_v3.html">upgrading guide</a> for more
559
+ information. Changes since release candidate 2:</p>
560
+
561
+ <ul class="rel-note">
562
+ <li>Rewritten VIM mode.</li>
563
+ <li>Fix a few minor scrolling and sizing issues.</li>
564
+ <li>Work around Safari segfault when dragging.</li>
565
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.0rc2...v3.0">list of patches</a>.</li>
566
+ </ul>
567
+
568
+ <p class="rel">20-11-2012: <a href="http://codemirror.net/codemirror-3.0rc2.zip">Version 3.0, release candidate 2</a>:</p>
569
+
570
+ <ul class="rel-note">
571
+ <li>New mode: <a href="../mode/http/index.html">HTTP</a>.</li>
572
+ <li>Improved handling of selection anchor position.</li>
573
+ <li>Improve IE performance on longer lines.</li>
574
+ <li>Reduce gutter glitches during horiz. scrolling.</li>
575
+ <li>Add <a href="manual.html#addKeyMap"><code>addKeyMap</code></a> and <a href="manual.html#removeKeyMap"><code>removeKeyMap</code></a> methods.</li>
576
+ <li>Rewrite <code>formatting</code> and <code>closetag</code> add-ons.</li>
577
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.0rc1...v3.0rc2">list of patches</a>.</li>
578
+ </ul>
579
+
580
+ <p class="rel">20-11-2012: <a href="http://codemirror.net/codemirror-3.0rc1.zip">Version 3.0, release candidate 1</a>:</p>
581
+
582
+ <ul class="rel-note">
583
+ <li>New theme: <a href="../demo/theme.html#solarized%20light">Solarized</a>.</li>
584
+ <li>Introduce <a href="manual.html#addLineClass"><code>addLineClass</code></a>
585
+ and <a href="manual.html#removeLineClass"><code>removeLineClass</code></a>,
586
+ drop <code>setLineClass</code>.</li>
587
+ <li>Add a <em>lot</em> of
588
+ new <a href="manual.html#markText">options for marked text</a>
589
+ (read-only, atomic, collapsed, widget replacement).</li>
590
+ <li>Remove the old code folding interface in favour of these new ranges.</li>
591
+ <li>Add <a href="manual.html#isClean"><code>isClean</code></a>/<a href="manual.html#markClean"><code>markClean</code></a> methods.</li>
592
+ <li>Remove <code>compoundChange</code> method, use better undo-event-combining heuristic.</li>
593
+ <li>Improve scrolling performance smoothness.</li>
594
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.0beta2...v3.0rc1">list of patches</a>.</li>
595
+ </ul>
596
+
597
+ <p class="rel">22-10-2012: <a href="http://codemirror.net/codemirror-3.0beta2.zip">Version 3.0, beta 2</a>:</p>
598
+
599
+ <ul class="rel-note">
600
+ <li>Fix page-based coordinate computation.</li>
601
+ <li>Fix firing of <a href="manual.html#event_gutterClick"><code>gutterClick</code></a> event.</li>
602
+ <li>Add <a href="manual.html#option_cursorHeight"><code>cursorHeight</code></a> option.</li>
603
+ <li>Fix bi-directional text regression.</li>
604
+ <li>Add <a href="manual.html#option_viewportMargin"><code>viewportMargin</code></a> option.</li>
605
+ <li>Directly handle mousewheel events (again, hopefully better).</li>
606
+ <li>Make vertical cursor movement more robust (through widgets, big line gaps).</li>
607
+ <li>Add <a href="manual.html#option_flattenSpans"><code>flattenSpans</code></a> option.</li>
608
+ <li>Many optimizations. Poor responsiveness should be fixed.</li>
609
+ <li>Initialization in hidden state works again.</li>
610
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v3.0beta1...v3.0beta2">list of patches</a>.</li>
611
+ </ul>
612
+
613
+ <p class="rel">19-09-2012: <a href="http://codemirror.net/codemirror-3.0beta1.zip">Version 3.0, beta 1</a>:</p>
614
+
615
+ <ul class="rel-note">
616
+ <li>Bi-directional text support.</li>
617
+ <li>More powerful gutter model.</li>
618
+ <li>Support for arbitrary text/widget height.</li>
619
+ <li>In-line widgets.</li>
620
+ <li>Generalized event handling.</li>
621
+ </ul>
622
+
623
+ </section>
624
+
625
+ <section id=v2>
626
+
627
+ <h2>Version 2.x</h2>
628
+
629
+ <p class="rel">21-01-2013: <a href="http://codemirror.net/codemirror-2.38.zip">Version 2.38</a>:</p>
630
+
631
+ <p class="rel-note">Integrate some bugfixes, enhancements to the vim keymap, and new
632
+ modes
633
+ (<a href="../mode/d/index.html">D</a>, <a href="../mode/sass/index.html">Sass</a>, <a href="../mode/apl/index.html">APL</a>)
634
+ from the v3 branch.</p>
635
+
636
+ <p class="rel">20-12-2012: <a href="http://codemirror.net/codemirror-2.37.zip">Version 2.37</a>:</p>
637
+
638
+ <ul class="rel-note">
639
+ <li>New mode: <a href="../mode/sql/index.html">SQL</a> (will replace <a href="../mode/plsql/index.html">plsql</a> and <a href="../mode/mysql/index.html">mysql</a> modes).</li>
640
+ <li>Further work on the new VIM mode.</li>
641
+ <li>Fix Cmd/Ctrl keys on recent Operas on OS X.</li>
642
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v2.36...v2.37">list of patches</a>.</li>
643
+ </ul>
644
+
645
+ <p class="rel">20-11-2012: <a href="http://codemirror.net/codemirror-2.36.zip">Version 2.36</a>:</p>
646
+
647
+ <ul class="rel-note">
648
+ <li>New mode: <a href="../mode/z80/index.html">Z80 assembly</a>.</li>
649
+ <li>New theme: <a href="../demo/theme.html#twilight">Twilight</a>.</li>
650
+ <li>Add command-line compression helper.</li>
651
+ <li>Make <a href="manual.html#scrollIntoView"><code>scrollIntoView</code></a> public.</li>
652
+ <li>Add <a href="manual.html#defaultTextHeight"><code>defaultTextHeight</code></a> method.</li>
653
+ <li>Various extensions to the vim keymap.</li>
654
+ <li>Make <a href="../mode/php/index.html">PHP mode</a> build on <a href="../mode/htmlmixed/index.html">mixed HTML mode</a>.</li>
655
+ <li>Add <a href="manual.html#addon_continuecomment">comment-continuing</a> add-on.</li>
656
+ <li>Full <a href="../https://github.com/codemirror/CodeMirror/compare/v2.35...v2.36">list of patches</a>.</li>
657
+ </ul>
658
+
659
+ <p class="rel">22-10-2012: <a href="http://codemirror.net/codemirror-2.35.zip">Version 2.35</a>:</p>
660
+
661
+ <ul class="rel-note">
662
+ <li>New (sub) mode: <a href="../mode/javascript/typescript.html">TypeScript</a>.</li>
663
+ <li>Don't overwrite (insert key) when pasting.</li>
664
+ <li>Fix several bugs in <a href="manual.html#markText"><code>markText</code></a>/undo interaction.</li>
665
+ <li>Better indentation of JavaScript code without semicolons.</li>
666
+ <li>Add <a href="manual.html#defineInitHook"><code>defineInitHook</code></a> function.</li>
667
+ <li>Full <a href="https://github.com/codemirror/CodeMirror/compare/v2.34...v2.35">list of patches</a>.</li>
668
+ </ul>
669
+
670
+ <p class="rel">19-09-2012: <a href="http://codemirror.net/codemirror-2.34.zip">Version 2.34</a>:</p>
671
+
672
+ <ul class="rel-note">
673
+ <li>New mode: <a href="../mode/commonlisp/index.html">Common Lisp</a>.</li>
674
+ <li>Fix right-click select-all on most browsers.</li>
675
+ <li>Change the way highlighting happens:<br>&nbsp; Saves memory and CPU cycles.<br>&nbsp; <code>compareStates</code> is no longer needed.<br>&nbsp; <code>onHighlightComplete</code> no longer works.</li>
676
+ <li>Integrate mode (Markdown, XQuery, CSS, sTex) tests in central testsuite.</li>
677
+ <li>Add a <a href="manual.html#version"><code>CodeMirror.version</code></a> property.</li>
678
+ <li>More robust handling of nested modes in <a href="../demo/formatting.html">formatting</a> and <a href="../demo/closetag.html">closetag</a> plug-ins.</li>
679
+ <li>Un/redo now preserves <a href="manual.html#markText">marked text</a> and bookmarks.</li>
680
+ <li><a href="https://github.com/codemirror/CodeMirror/compare/v2.33...v2.34">Full list</a> of patches.</li>
681
+ </ul>
682
+
683
+ <p class="rel">23-08-2012: <a href="http://codemirror.net/codemirror-2.33.zip">Version 2.33</a>:</p>
684
+
685
+ <ul class="rel-note">
686
+ <li>New mode: <a href="../mode/sieve/index.html">Sieve</a>.</li>
687
+ <li>New <a href="manual.html#getViewport"><code>getViewPort</code></a> and <a href="manual.html#option_onViewportChange"><code>onViewportChange</code></a> API.</li>
688
+ <li><a href="manual.html#option_cursorBlinkRate">Configurable</a> cursor blink rate.</li>
689
+ <li>Make binding a key to <code>false</code> disabling handling (again).</li>
690
+ <li>Show non-printing characters as red dots.</li>
691
+ <li>More tweaks to the scrolling model.</li>
692
+ <li>Expanded testsuite. Basic linter added.</li>
693
+ <li>Remove most uses of <code>innerHTML</code>. Remove <code>CodeMirror.htmlEscape</code>.</li>
694
+ <li><a href="https://github.com/codemirror/CodeMirror/compare/v2.32...v2.33">Full list</a> of patches.</li>
695
+ </ul>
696
+
697
+ <p class="rel">23-07-2012: <a href="http://codemirror.net/codemirror-2.32.zip">Version 2.32</a>:</p>
698
+
699
+ <p class="rel-note">Emergency fix for a bug where an editor with
700
+ line wrapping on IE will break when there is <em>no</em>
701
+ scrollbar.</p>
702
+
703
+ <p class="rel">20-07-2012: <a href="http://codemirror.net/codemirror-2.31.zip">Version 2.31</a>:</p>
704
+
705
+ <ul class="rel-note">
706
+ <li>New modes: <a href="../mode/ocaml/index.html">OCaml</a>, <a href="../mode/haxe/index.html">Haxe</a>, and <a href="../mode/vb/index.html">VB.NET</a>.</li>
707
+ <li>Several fixes to the new scrolling model.</li>
708
+ <li>Add a <a href="manual.html#setSize"><code>setSize</code></a> method for programmatic resizing.</li>
709
+ <li>Add <a href="manual.html#getHistory"><code>getHistory</code></a> and <a href="manual.html#setHistory"><code>setHistory</code></a> methods.</li>
710
+ <li>Allow custom line separator string in <a href="manual.html#getValue"><code>getValue</code></a> and <a href="manual.html#getRange"><code>getRange</code></a>.</li>
711
+ <li>Support double- and triple-click drag, double-clicking whitespace.</li>
712
+ <li>And more... <a href="https://github.com/codemirror/CodeMirror/compare/v2.3...v2.31">(all patches)</a></li>
713
+ </ul>
714
+
715
+ <p class="rel">22-06-2012: <a href="http://codemirror.net/codemirror-2.3.zip">Version 2.3</a>:</p>
716
+
717
+ <ul class="rel-note">
718
+ <li><strong>New scrollbar implementation</strong>. Should flicker less. Changes DOM structure of the editor.</li>
719
+ <li>New theme: <a href="../demo/theme.html#vibrant-ink">vibrant-ink</a>.</li>
720
+ <li>Many extensions to the VIM keymap (including text objects).</li>
721
+ <li>Add <a href="../demo/multiplex.html">mode-multiplexing</a> utility script.</li>
722
+ <li>Fix bug where right-click paste works in read-only mode.</li>
723
+ <li>Add a <a href="manual.html#getScrollInfo"><code>getScrollInfo</code></a> method.</li>
724
+ <li>Lots of other <a href="https://github.com/codemirror/CodeMirror/compare/v2.25...v2.3">fixes</a>.</li>
725
+ </ul>
726
+
727
+ <p class="rel">23-05-2012: <a href="http://codemirror.net/codemirror-2.25.zip">Version 2.25</a>:</p>
728
+
729
+ <ul class="rel-note">
730
+ <li>New mode: <a href="../mode/erlang/index.html">Erlang</a>.</li>
731
+ <li><strong>Remove xmlpure mode</strong> (use <a href="../mode/xml/index.html">xml.js</a>).</li>
732
+ <li>Fix line-wrapping in Opera.</li>
733
+ <li>Fix X Windows middle-click paste in Chrome.</li>
734
+ <li>Fix bug that broke pasting of huge documents.</li>
735
+ <li>Fix backspace and tab key repeat in Opera.</li>
736
+ </ul>
737
+
738
+ <p class="rel">23-04-2012: <a href="http://codemirror.net/codemirror-2.24.zip">Version 2.24</a>:</p>
739
+
740
+ <ul class="rel-note">
741
+ <li><strong>Drop support for Internet Explorer 6</strong>.</li>
742
+ <li>New
743
+ modes: <a href="../mode/shell/index.html">Shell</a>, <a href="../mode/tiki/index.html">Tiki
744
+ wiki</a>, <a href="../mode/pig/index.html">Pig Latin</a>.</li>
745
+ <li>New themes: <a href="../demo/theme.html#ambiance">Ambiance</a>, <a href="../demo/theme.html#blackboard">Blackboard</a>.</li>
746
+ <li>More control over drag/drop
747
+ with <a href="manual.html#option_dragDrop"><code>dragDrop</code></a>
748
+ and <a href="manual.html#option_onDragEvent"><code>onDragEvent</code></a>
749
+ options.</li>
750
+ <li>Make HTML mode a bit less pedantic.</li>
751
+ <li>Add <a href="manual.html#compoundChange"><code>compoundChange</code></a> API method.</li>
752
+ <li>Several fixes in undo history and line hiding.</li>
753
+ <li>Remove (broken) support for <code>catchall</code> in key maps,
754
+ add <code>nofallthrough</code> boolean field instead.</li>
755
+ </ul>
756
+
757
+ <p class="rel">26-03-2012: <a href="http://codemirror.net/codemirror-2.23.zip">Version 2.23</a>:</p>
758
+
759
+ <ul class="rel-note">
760
+ <li>Change <strong>default binding for tab</strong> <a href="javascript:void(document.getElementById('tabbinding').style.display='')">[more]</a>
761
+ <div style="display: none" id=tabbinding>
762
+ Starting in 2.23, these bindings are default:
763
+ <ul><li>Tab: Insert tab character</li>
764
+ <li>Shift-tab: Reset line indentation to default</li>
765
+ <li>Ctrl/Cmd-[: Reduce line indentation (old tab behaviour)</li>
766
+ <li>Ctrl/Cmd-]: Increase line indentation (old shift-tab behaviour)</li>
767
+ </ul>
768
+ </div>
769
+ </li>
770
+ <li>New modes: <a href="../mode/xquery/index.html">XQuery</a> and <a href="../mode/vbscript/index.html">VBScript</a>.</li>
771
+ <li>Two new themes: <a href="../mode/less/index.html">lesser-dark</a> and <a href="../mode/xquery/index.html">xq-dark</a>.</li>
772
+ <li>Differentiate between background and text styles in <a href="manual.html#setLineClass"><code>setLineClass</code></a>.</li>
773
+ <li>Fix drag-and-drop in IE9+.</li>
774
+ <li>Extend <a href="manual.html#charCoords"><code>charCoords</code></a>
775
+ and <a href="manual.html#cursorCoords"><code>cursorCoords</code></a> with a <code>mode</code> argument.</li>
776
+ <li>Add <a href="manual.html#option_autofocus"><code>autofocus</code></a> option.</li>
777
+ <li>Add <a href="manual.html#findMarksAt"><code>findMarksAt</code></a> method.</li>
778
+ </ul>
779
+
780
+ <p class="rel">27-02-2012: <a href="http://codemirror.net/codemirror-2.22.zip">Version 2.22</a>:</p>
781
+
782
+ <ul class="rel-note">
783
+ <li>Allow <a href="manual.html#keymaps">key handlers</a> to pass up events, allow binding characters.</li>
784
+ <li>Add <a href="manual.html#option_autoClearEmptyLines"><code>autoClearEmptyLines</code></a> option.</li>
785
+ <li>Properly use tab stops when rendering tabs.</li>
786
+ <li>Make PHP mode more robust.</li>
787
+ <li>Support indentation blocks in <a href="manual.html#addon_foldcode">code folder</a>.</li>
788
+ <li>Add a script for <a href="manual.html#addon_match-highlighter">highlighting instances of the selection</a>.</li>
789
+ <li>New <a href="../mode/properties/index.html">.properties</a> mode.</li>
790
+ <li>Fix many bugs.</li>
791
+ </ul>
792
+
793
+ <p class="rel">27-01-2012: <a href="http://codemirror.net/codemirror-2.21.zip">Version 2.21</a>:</p>
794
+
795
+ <ul class="rel-note">
796
+ <li>Added <a href="../mode/less/index.html">LESS</a>, <a href="../mode/mysql/index.html">MySQL</a>,
797
+ <a href="../mode/go/index.html">Go</a>, and <a href="../mode/verilog/index.html">Verilog</a> modes.</li>
798
+ <li>Add <a href="manual.html#option_smartIndent"><code>smartIndent</code></a>
799
+ option.</li>
800
+ <li>Support a cursor in <a href="manual.html#option_readOnly"><code>readOnly</code></a>-mode.</li>
801
+ <li>Support assigning multiple styles to a token.</li>
802
+ <li>Use a new approach to drawing the selection.</li>
803
+ <li>Add <a href="manual.html#scrollTo"><code>scrollTo</code></a> method.</li>
804
+ <li>Allow undo/redo events to span non-adjacent lines.</li>
805
+ <li>Lots and lots of bugfixes.</li>
806
+ </ul>
807
+
808
+ <p class="rel">20-12-2011: <a href="http://codemirror.net/codemirror-2.2.zip">Version 2.2</a>:</p>
809
+
810
+ <ul class="rel-note">
811
+ <li>Slightly incompatible API changes. Read <a href="upgrade_v2.2.html">this</a>.</li>
812
+ <li>New approach
813
+ to <a href="manual.html#option_extraKeys">binding</a> keys,
814
+ support for <a href="manual.html#option_keyMap">custom
815
+ bindings</a>.</li>
816
+ <li>Support for overwrite (insert).</li>
817
+ <li><a href="manual.html#option_tabSize">Custom-width</a>
818
+ and <a href="../demo/visibletabs.html">stylable</a> tabs.</li>
819
+ <li>Moved more code into <a href="manual.html#addons">add-on scripts</a>.</li>
820
+ <li>Support for sane vertical cursor movement in wrapped lines.</li>
821
+ <li>More reliable handling of
822
+ editing <a href="manual.html#markText">marked text</a>.</li>
823
+ <li>Add minimal <a href="../demo/emacs.html">emacs</a>
824
+ and <a href="../demo/vim.html">vim</a> bindings.</li>
825
+ <li>Rename <code>coordsFromIndex</code>
826
+ to <a href="manual.html#posFromIndex"><code>posFromIndex</code></a>,
827
+ add <a href="manual.html#indexFromPos"><code>indexFromPos</code></a>
828
+ method.</li>
829
+ </ul>
830
+
831
+ <p class="rel">21-11-2011: <a href="http://codemirror.net/codemirror-2.18.zip">Version 2.18</a>:</p>
832
+ <p class="rel-note">Fixes <code>TextMarker.clear</code>, which is broken in 2.17.</p>
833
+
834
+ <p class="rel">21-11-2011: <a href="http://codemirror.net/codemirror-2.17.zip">Version 2.17</a>:</p>
835
+ <ul class="rel-note">
836
+ <li>Add support for <a href="manual.html#option_lineWrapping">line
837
+ wrapping</a> and <a href="manual.html#hideLine">code
838
+ folding</a>.</li>
839
+ <li>Add <a href="../mode/gfm/index.html">Github-style Markdown</a> mode.</li>
840
+ <li>Add <a href="../theme/monokai.css">Monokai</a>
841
+ and <a href="../theme/rubyblue.css">Rubyblue</a> themes.</li>
842
+ <li>Add <a href="manual.html#setBookmark"><code>setBookmark</code></a> method.</li>
843
+ <li>Move some of the demo code into reusable components
844
+ under <a href="../addon/"><code>lib/util</code></a>.</li>
845
+ <li>Make screen-coord-finding code faster and more reliable.</li>
846
+ <li>Fix drag-and-drop in Firefox.</li>
847
+ <li>Improve support for IME.</li>
848
+ <li>Speed up content rendering.</li>
849
+ <li>Fix browser's built-in search in Webkit.</li>
850
+ <li>Make double- and triple-click work in IE.</li>
851
+ <li>Various fixes to modes.</li>
852
+ </ul>
853
+
854
+ <p class="rel">27-10-2011: <a href="http://codemirror.net/codemirror-2.16.zip">Version 2.16</a>:</p>
855
+ <ul class="rel-note">
856
+ <li>Add <a href="../mode/perl/index.html">Perl</a>, <a href="../mode/rust/index.html">Rust</a>, <a href="../mode/tiddlywiki/index.html">TiddlyWiki</a>, and <a href="../mode/groovy/index.html">Groovy</a> modes.</li>
857
+ <li>Dragging text inside the editor now moves, rather than copies.</li>
858
+ <li>Add a <a href="manual.html#coordsFromIndex"><code>coordsFromIndex</code></a> method.</li>
859
+ <li><strong>API change</strong>: <code>setValue</code> now no longer clears history. Use <a href="manual.html#clearHistory"><code>clearHistory</code></a> for that.</li>
860
+ <li><strong>API change</strong>: <a href="manual.html#markText"><code>markText</code></a> now
861
+ returns an object with <code>clear</code> and <code>find</code>
862
+ methods. Marked text is now more robust when edited.</li>
863
+ <li>Fix editing code with tabs in Internet Explorer.</li>
864
+ </ul>
865
+
866
+ <p class="rel">26-09-2011: <a href="http://codemirror.net/codemirror-2.15.zip">Version 2.15</a>:</p>
867
+ <p class="rel-note">Fix bug that snuck into 2.14: Clicking the
868
+ character that currently has the cursor didn't re-focus the
869
+ editor.</p>
870
+
871
+ <p class="rel">26-09-2011: <a href="http://codemirror.net/codemirror-2.14.zip">Version 2.14</a>:</p>
872
+ <ul class="rel-note">
873
+ <li>Add <a href="../mode/clojure/index.html">Clojure</a>, <a href="../mode/pascal/index.html">Pascal</a>, <a href="../mode/ntriples/index.html">NTriples</a>, <a href="../mode/jinja2/index.html">Jinja2</a>, and <a href="../mode/markdown/index.html">Markdown</a> modes.</li>
874
+ <li>Add <a href="../theme/cobalt.css">Cobalt</a> and <a href="../theme/eclipse.css">Eclipse</a> themes.</li>
875
+ <li>Add a <a href="manual.html#option_fixedGutter"><code>fixedGutter</code></a> option.</li>
876
+ <li>Fix bug with <code>setValue</code> breaking cursor movement.</li>
877
+ <li>Make gutter updates much more efficient.</li>
878
+ <li>Allow dragging of text out of the editor (on modern browsers).</li>
879
+ </ul>
880
+
881
+
882
+ <p class="rel">23-08-2011: <a href="http://codemirror.net/codemirror-2.13.zip">Version 2.13</a>:</p>
883
+ <ul class="rel-note">
884
+ <li>Add <a href="../mode/ruby/index.html">Ruby</a>, <a href="../mode/r/index.html">R</a>, <a href="../mode/coffeescript/index.html">CoffeeScript</a>, and <a href="../mode/velocity/index.html">Velocity</a> modes.</li>
885
+ <li>Add <a href="manual.html#getGutterElement"><code>getGutterElement</code></a> to API.</li>
886
+ <li>Several fixes to scrolling and positioning.</li>
887
+ <li>Add <a href="manual.html#option_smartHome"><code>smartHome</code></a> option.</li>
888
+ <li>Add an experimental <a href="../mode/xmlpure/index.html">pure XML</a> mode.</li>
889
+ </ul>
890
+
891
+ <p class="rel">25-07-2011: <a href="http://codemirror.net/codemirror-2.12.zip">Version 2.12</a>:</p>
892
+ <ul class="rel-note">
893
+ <li>Add a <a href="../mode/sparql/index.html">SPARQL</a> mode.</li>
894
+ <li>Fix bug with cursor jumping around in an unfocused editor in IE.</li>
895
+ <li>Allow key and mouse events to bubble out of the editor. Ignore widget clicks.</li>
896
+ <li>Solve cursor flakiness after undo/redo.</li>
897
+ <li>Fix block-reindent ignoring the last few lines.</li>
898
+ <li>Fix parsing of multi-line attrs in XML mode.</li>
899
+ <li>Use <code>innerHTML</code> for HTML-escaping.</li>
900
+ <li>Some fixes to indentation in C-like mode.</li>
901
+ <li>Shrink horiz scrollbars when long lines removed.</li>
902
+ <li>Fix width feedback loop bug that caused the width of an inner DIV to shrink.</li>
903
+ </ul>
904
+
905
+ <p class="rel">04-07-2011: <a href="http://codemirror.net/codemirror-2.11.zip">Version 2.11</a>:</p>
906
+ <ul class="rel-note">
907
+ <li>Add a <a href="../mode/scheme/index.html">Scheme mode</a>.</li>
908
+ <li>Add a <code>replace</code> method to search cursors, for cursor-preserving replacements.</li>
909
+ <li>Make the <a href="../mode/clike/index.html">C-like mode</a> mode more customizable.</li>
910
+ <li>Update XML mode to spot mismatched tags.</li>
911
+ <li>Add <code>getStateAfter</code> API and <code>compareState</code> mode API methods for finer-grained mode magic.</li>
912
+ <li>Add a <code>getScrollerElement</code> API method to manipulate the scrolling DIV.</li>
913
+ <li>Fix drag-and-drop for Firefox.</li>
914
+ <li>Add a C# configuration for the <a href="../mode/clike/index.html">C-like mode</a>.</li>
915
+ <li>Add <a href="../demo/fullscreen.html">full-screen editing</a> and <a href="../demo/changemode.html">mode-changing</a> demos.</li>
916
+ </ul>
917
+
918
+ <p class="rel">07-06-2011: <a href="http://codemirror.net/codemirror-2.1.zip">Version 2.1</a>:</p>
919
+ <p class="rel-note">Add
920
+ a <a href="manual.html#option_theme">theme</a> system
921
+ (<a href="../demo/theme.html">demo</a>). Note that this is not
922
+ backwards-compatible—you'll have to update your styles and
923
+ modes!</p>
924
+
925
+ <p class="rel">07-06-2011: <a href="http://codemirror.net/codemirror-2.02.zip">Version 2.02</a>:</p>
926
+ <ul class="rel-note">
927
+ <li>Add a <a href="../mode/lua/index.html">Lua mode</a>.</li>
928
+ <li>Fix reverse-searching for a regexp.</li>
929
+ <li>Empty lines can no longer break highlighting.</li>
930
+ <li>Rework scrolling model (the outer wrapper no longer does the scrolling).</li>
931
+ <li>Solve horizontal jittering on long lines.</li>
932
+ <li>Add <a href="../demo/runmode.html">runmode.js</a>.</li>
933
+ <li>Immediately re-highlight text when typing.</li>
934
+ <li>Fix problem with 'sticking' horizontal scrollbar.</li>
935
+ </ul>
936
+
937
+ <p class="rel">26-05-2011: <a href="http://codemirror.net/codemirror-2.01.zip">Version 2.01</a>:</p>
938
+ <ul class="rel-note">
939
+ <li>Add a <a href="../mode/smalltalk/index.html">Smalltalk mode</a>.</li>
940
+ <li>Add a <a href="../mode/rst/index.html">reStructuredText mode</a>.</li>
941
+ <li>Add a <a href="../mode/python/index.html">Python mode</a>.</li>
942
+ <li>Add a <a href="../mode/plsql/index.html">PL/SQL mode</a>.</li>
943
+ <li><code>coordsChar</code> now works</li>
944
+ <li>Fix a problem where <code>onCursorActivity</code> interfered with <code>onChange</code>.</li>
945
+ <li>Fix a number of scrolling and mouse-click-position glitches.</li>
946
+ <li>Pass information about the changed lines to <code>onChange</code>.</li>
947
+ <li>Support cmd-up/down on OS X.</li>
948
+ <li>Add triple-click line selection.</li>
949
+ <li>Don't handle shift when changing the selection through the API.</li>
950
+ <li>Support <code>"nocursor"</code> mode for <code>readOnly</code> option.</li>
951
+ <li>Add an <code>onHighlightComplete</code> option.</li>
952
+ <li>Fix the context menu for Firefox.</li>
953
+ </ul>
954
+
955
+ <p class="rel">28-03-2011: <a href="http://codemirror.net/codemirror-2.0.zip">Version 2.0</a>:</p>
956
+ <p class="rel-note">CodeMirror 2 is a complete rewrite that's
957
+ faster, smaller, simpler to use, and less dependent on browser
958
+ quirks. See <a href="internals.html">this</a>
959
+ and <a href="http://groups.google.com/group/codemirror/browse_thread/thread/5a8e894024a9f580">this</a>
960
+ for more information.</p>
961
+
962
+ <p class="rel">22-02-2011: <a href="https://github.com/codemirror/codemirror/tree/beta2">Version 2.0 beta 2</a>:</p>
963
+ <p class="rel-note">Somewhat more mature API, lots of bugs shaken out.</p>
964
+
965
+ <p class="rel">17-02-2011: <a href="http://codemirror.net/codemirror-0.94.zip">Version 0.94</a>:</p>
966
+ <ul class="rel-note">
967
+ <li><code>tabMode: "spaces"</code> was modified slightly (now indents when something is selected).</li>
968
+ <li>Fixes a bug that would cause the selection code to break on some IE versions.</li>
969
+ <li>Disabling spell-check on WebKit browsers now works.</li>
970
+ </ul>
971
+
972
+ <p class="rel">08-02-2011: <a href="http://codemirror.net/">Version 2.0 beta 1</a>:</p>
973
+ <p class="rel-note">CodeMirror 2 is a complete rewrite of
974
+ CodeMirror, no longer depending on an editable frame.</p>
975
+
976
+ <p class="rel">19-01-2011: <a href="http://codemirror.net/codemirror-0.93.zip">Version 0.93</a>:</p>
977
+ <ul class="rel-note">
978
+ <li>Added a <a href="contrib/regex/index.html">Regular Expression</a> parser.</li>
979
+ <li>Fixes to the PHP parser.</li>
980
+ <li>Support for regular expression in search/replace.</li>
981
+ <li>Add <code>save</code> method to instances created with <code>fromTextArea</code>.</li>
982
+ <li>Add support for MS T-SQL in the SQL parser.</li>
983
+ <li>Support use of CSS classes for highlighting brackets.</li>
984
+ <li>Fix yet another hang with line-numbering in hidden editors.</li>
985
+ </ul>
986
+ </section>
987
+
988
+ <section id=v1>
989
+
990
+ <h2>Version 0.x</h2>
991
+
992
+ <p class="rel">28-03-2011: <a href="http://codemirror.net/codemirror-1.0.zip">Version 1.0</a>:</p>
993
+ <ul class="rel-note">
994
+ <li>Fix error when debug history overflows.</li>
995
+ <li>Refine handling of C# verbatim strings.</li>
996
+ <li>Fix some issues with JavaScript indentation.</li>
997
+ </ul>
998
+
999
+ <p class="rel">17-12-2010: <a href="http://codemirror.net/codemirror-0.92.zip">Version 0.92</a>:</p>
1000
+ <ul class="rel-note">
1001
+ <li>Make CodeMirror work in XHTML documents.</li>
1002
+ <li>Fix bug in handling of backslashes in Python strings.</li>
1003
+ <li>The <code>styleNumbers</code> option is now officially
1004
+ supported and documented.</li>
1005
+ <li><code>onLineNumberClick</code> option added.</li>
1006
+ <li>More consistent names <code>onLoad</code> and
1007
+ <code>onCursorActivity</code> callbacks. Old names still work, but
1008
+ are deprecated.</li>
1009
+ <li>Add a <a href="contrib/freemarker/index.html">Freemarker</a> mode.</li>
1010
+ </ul>
1011
+
1012
+ <p class="rel">11-11-2010: <a
1013
+ href="http://codemirror.net/codemirror-0.91.zip">Version 0.91</a>:</p>
1014
+ <ul class="rel-note">
1015
+ <li>Adds support for <a href="contrib/java">Java</a>.</li>
1016
+ <li>Small additions to the <a href="contrib/php">PHP</a> and <a href="contrib/sql">SQL</a> parsers.</li>
1017
+ <li>Work around various <a href="https://bugs.webkit.org/show_bug.cgi?id=47806">Webkit</a> <a href="https://bugs.webkit.org/show_bug.cgi?id=23474">issues</a>.</li>
1018
+ <li>Fix <code>toTextArea</code> to update the code in the textarea.</li>
1019
+ <li>Add a <code>noScriptCaching</code> option (hack to ease development).</li>
1020
+ <li>Make sub-modes of <a href="mixedtest.html">HTML mixed</a> mode configurable.</li>
1021
+ </ul>
1022
+
1023
+ <p class="rel">02-10-2010: <a
1024
+ href="http://codemirror.net/codemirror-0.9.zip">Version 0.9</a>:</p>
1025
+ <ul class="rel-note">
1026
+ <li>Add support for searching backwards.</li>
1027
+ <li>There are now parsers for <a href="contrib/scheme/index.html">Scheme</a>, <a href="contrib/xquery/index.html">XQuery</a>, and <a href="contrib/ometa/index.html">OmetaJS</a>.</li>
1028
+ <li>Makes <code>height: "dynamic"</code> more robust.</li>
1029
+ <li>Fixes bug where paste did not work on OS X.</li>
1030
+ <li>Add a <code>enterMode</code> and <code>electricChars</code> options to make indentation even more customizable.</li>
1031
+ <li>Add <code>firstLineNumber</code> option.</li>
1032
+ <li>Fix bad handling of <code>@media</code> rules by the CSS parser.</li>
1033
+ <li>Take a new, more robust approach to working around the invisible-last-line bug in WebKit.</li>
1034
+ </ul>
1035
+
1036
+ <p class="rel">22-07-2010: <a
1037
+ href="http://codemirror.net/codemirror-0.8.zip">Version 0.8</a>:</p>
1038
+ <ul class="rel-note">
1039
+ <li>Add a <code>cursorCoords</code> method to find the screen
1040
+ coordinates of the cursor.</li>
1041
+ <li>A number of fixes and support for more syntax in the PHP parser.</li>
1042
+ <li>Fix indentation problem with JSON-mode JS parser in Webkit.</li>
1043
+ <li>Add a <a href="compress.html">minification</a> UI.</li>
1044
+ <li>Support a <code>height: dynamic</code> mode, where the editor's
1045
+ height will adjust to the size of its content.</li>
1046
+ <li>Better support for IME input mode.</li>
1047
+ <li>Fix JavaScript parser getting confused when seeing a no-argument
1048
+ function call.</li>
1049
+ <li>Have CSS parser see the difference between selectors and other
1050
+ identifiers.</li>
1051
+ <li>Fix scrolling bug when pasting in a horizontally-scrolled
1052
+ editor.</li>
1053
+ <li>Support <code>toTextArea</code> method in instances created with
1054
+ <code>fromTextArea</code>.</li>
1055
+ <li>Work around new Opera cursor bug that causes the cursor to jump
1056
+ when pressing backspace at the end of a line.</li>
1057
+ </ul>
1058
+
1059
+ <p class="rel">27-04-2010: <a
1060
+ href="http://codemirror.net/codemirror-0.67.zip">Version
1061
+ 0.67</a>:</p>
1062
+ <p class="rel-note">More consistent page-up/page-down behaviour
1063
+ across browsers. Fix some issues with hidden editors looping forever
1064
+ when line-numbers were enabled. Make PHP parser parse
1065
+ <code>"\\"</code> correctly. Have <code>jumpToLine</code> work on
1066
+ line handles, and add <code>cursorLine</code> function to fetch the
1067
+ line handle where the cursor currently is. Add new
1068
+ <code>setStylesheet</code> function to switch style-sheets in a
1069
+ running editor.</p>
1070
+
1071
+ <p class="rel">01-03-2010: <a
1072
+ href="http://codemirror.net/codemirror-0.66.zip">Version
1073
+ 0.66</a>:</p>
1074
+ <p class="rel-note">Adds <code>removeLine</code> method to API.
1075
+ Introduces the <a href="contrib/plsql/index.html">PLSQL parser</a>.
1076
+ Marks XML errors by adding (rather than replacing) a CSS class, so
1077
+ that they can be disabled by modifying their style. Fixes several
1078
+ selection bugs, and a number of small glitches.</p>
1079
+
1080
+ <p class="rel">12-11-2009: <a
1081
+ href="http://codemirror.net/codemirror-0.65.zip">Version
1082
+ 0.65</a>:</p>
1083
+ <p class="rel-note">Add support for having both line-wrapping and
1084
+ line-numbers turned on, make paren-highlighting style customisable
1085
+ (<code>markParen</code> and <code>unmarkParen</code> config
1086
+ options), work around a selection bug that Opera
1087
+ <em>re</em>introduced in version 10.</p>
1088
+
1089
+ <p class="rel">23-10-2009: <a
1090
+ href="http://codemirror.net/codemirror-0.64.zip">Version
1091
+ 0.64</a>:</p>
1092
+ <p class="rel-note">Solves some issues introduced by the
1093
+ paste-handling changes from the previous release. Adds
1094
+ <code>setSpellcheck</code>, <code>setTextWrapping</code>,
1095
+ <code>setIndentUnit</code>, <code>setUndoDepth</code>,
1096
+ <code>setTabMode</code>, and <code>setLineNumbers</code> to
1097
+ customise a running editor. Introduces an <a
1098
+ href="contrib/sql/index.html">SQL</a> parser. Fixes a few small
1099
+ problems in the <a href="contrib/python/index.html">Python</a>
1100
+ parser. And, as usual, add workarounds for various newly discovered
1101
+ browser incompatibilities.</p>
1102
+
1103
+ <p class="rel">31-08-2009: <a href="http://codemirror.net/codemirror-0.63.zip">Version 0.63</a>:</p>
1104
+ <p class="rel-note"> Overhaul of paste-handling (less fragile), fixes for several
1105
+ serious IE8 issues (cursor jumping, end-of-document bugs) and a number
1106
+ of small problems.</p>
1107
+
1108
+ <p class="rel">30-05-2009: <a href="http://codemirror.net/codemirror-0.62.zip">Version 0.62</a>:</p>
1109
+ <p class="rel-note">Introduces <a href="contrib/python/index.html">Python</a>
1110
+ and <a href="contrib/lua/index.html">Lua</a> parsers. Add
1111
+ <code>setParser</code> (on-the-fly mode changing) and
1112
+ <code>clearHistory</code> methods. Make parsing passes time-based
1113
+ instead of lines-based (see the <code>passTime</code> option).</p>
1114
+
1115
+ </section>
1116
+ </article>