lines-engine 0.6.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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>