glebtv-ckeditor 4.0.1 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. data/Rakefile +63 -62
  2. data/app/assets/stylesheets/ckcontent.css +0 -0
  3. data/lib/ckeditor.rb +4 -3
  4. data/lib/ckeditor/engine.rb +1 -1
  5. data/lib/ckeditor/version.rb +2 -2
  6. data/vendor/assets/javascripts/ckeditor/CHANGES.md +27 -1
  7. data/vendor/assets/javascripts/ckeditor/README.md +1 -1
  8. data/vendor/assets/javascripts/ckeditor/build-config.js +10 -89
  9. data/vendor/assets/javascripts/ckeditor/ckeditor.js +286 -329
  10. data/vendor/assets/javascripts/ckeditor/config.js.erb +3 -8
  11. data/vendor/assets/javascripts/ckeditor/lang/en.js +1 -1
  12. data/vendor/assets/javascripts/ckeditor/lang/ru.js +1 -1
  13. data/vendor/assets/javascripts/ckeditor/plugins/CKCss/ckcss.png +0 -0
  14. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +2 -2
  15. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +1 -1
  16. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +1 -1
  17. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +9 -0
  18. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +6 -6
  19. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +2 -2
  20. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +6 -5
  21. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +1 -1
  22. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +2 -2
  23. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +9 -0
  24. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +2 -2
  25. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/codemirror.ckeditor.css +74 -0
  26. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/codemirror.css +16 -10
  27. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/codemirror.min.css +1 -0
  28. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/icons/AutoFormat.png +0 -0
  29. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/icons/CommentSelectedRange.png +0 -0
  30. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/icons/UncommentSelectedRange.png +0 -0
  31. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/dialog}/dialog.js +76 -75
  32. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/addon/edit/closebrackets.js +29 -0
  33. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/edit}/closetag.js +86 -85
  34. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/edit}/continuelist.js +28 -28
  35. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/edit}/matchbrackets.js +74 -63
  36. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/foldcode}/foldcode.js +183 -182
  37. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/addon/format/autoFormatAll.js +43 -0
  38. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/format}/formatting.js +114 -108
  39. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/addon/search/match-highlighter.js +60 -0
  40. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/search}/search.js +131 -119
  41. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/{util → addon/search}/searchcursor.js +131 -119
  42. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.min.js +1 -0
  43. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.js +5384 -4553
  44. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.min.js +1 -0
  45. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.modes.min.js +1 -0
  46. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.search-addons.min.js +1 -0
  47. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/css.js +465 -465
  48. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/htmlmixed.js +104 -84
  49. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/javascript.js +426 -411
  50. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/xml.js +324 -324
  51. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/af.js +4 -1
  52. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ar.js +4 -1
  53. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/bg.js +4 -1
  54. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/bn.js +4 -1
  55. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/bs.js +4 -1
  56. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ca.js +4 -1
  57. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/cs.js +4 -1
  58. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/cy.js +4 -1
  59. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/da.js +4 -1
  60. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/de.js +4 -1
  61. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/el.js +4 -1
  62. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/en-au.js +4 -1
  63. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/en-ca.js +4 -1
  64. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/en-gb.js +4 -1
  65. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/en.js +4 -1
  66. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/eo.js +4 -1
  67. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/es.js +4 -1
  68. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/et.js +4 -1
  69. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/eu.js +4 -1
  70. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/fa.js +4 -1
  71. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/fi.js +4 -1
  72. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/fo.js +4 -1
  73. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/fr-ca.js +4 -1
  74. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/fr.js +4 -1
  75. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/gl.js +4 -1
  76. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/gu.js +4 -1
  77. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/he.js +4 -1
  78. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/hi.js +4 -1
  79. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/hr.js +4 -1
  80. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/hu.js +4 -1
  81. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/is.js +4 -1
  82. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/it.js +4 -1
  83. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ja.js +4 -1
  84. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ka.js +4 -1
  85. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/km.js +4 -1
  86. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ko.js +4 -1
  87. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ku.js +4 -1
  88. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/lt.js +4 -1
  89. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/lv.js +4 -1
  90. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/mk.js +4 -1
  91. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/mn.js +4 -1
  92. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ms.js +4 -1
  93. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/nb.js +4 -1
  94. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/nl.js +4 -1
  95. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/no.js +4 -1
  96. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/pl.js +4 -1
  97. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/pt-br.js +4 -1
  98. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/pt.js +4 -1
  99. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ro.js +4 -1
  100. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ru.js +4 -1
  101. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/sk.js +4 -1
  102. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/sl.js +4 -1
  103. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/sr-latn.js +4 -1
  104. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/sr.js +4 -1
  105. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/sv.js +4 -1
  106. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/th.js +4 -1
  107. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/tr.js +4 -1
  108. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/ug.js +4 -1
  109. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/uk.js +4 -1
  110. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/vi.js +4 -1
  111. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/zh-cn.js +4 -1
  112. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/lang/zh.js +4 -1
  113. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/plugin.js +249 -103
  114. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/ambiance-mobile.css +6 -6
  115. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/ambiance.css +76 -76
  116. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/blackboard.css +25 -25
  117. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/cobalt.css +18 -18
  118. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/eclipse.css +25 -25
  119. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/elegant.css +10 -10
  120. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/erlang-dark.css +21 -21
  121. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/lesser-dark.css +44 -44
  122. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/monokai.css +28 -28
  123. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/neat.css +9 -9
  124. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/night.css +21 -21
  125. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/rubyblue.css +21 -21
  126. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/solarized.css +207 -207
  127. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/twilight.css +26 -25
  128. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/vibrant-ink.css +27 -27
  129. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/theme/xq-dark.css +46 -46
  130. data/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
  131. data/vendor/assets/javascripts/ckeditor/plugins/iframedialog/plugin.js +173 -173
  132. data/vendor/assets/javascripts/ckeditor/plugins/{MediaEmbed → mediaembed}/images/icon.png +0 -0
  133. data/vendor/assets/javascripts/ckeditor/plugins/{MediaEmbed → mediaembed}/plugin.js +16 -13
  134. data/vendor/assets/javascripts/ckeditor/plugins/oembed/images/icon.png +0 -0
  135. data/vendor/assets/javascripts/ckeditor/plugins/oembed/lang/de.js +5 -2
  136. data/vendor/assets/javascripts/ckeditor/plugins/oembed/lang/en.js +4 -1
  137. data/vendor/assets/javascripts/ckeditor/plugins/oembed/lang/fr.js +9 -6
  138. data/vendor/assets/javascripts/ckeditor/plugins/oembed/lang/nl.js +4 -1
  139. data/vendor/assets/javascripts/ckeditor/plugins/oembed/lang/ru.js +11 -8
  140. data/vendor/assets/javascripts/ckeditor/plugins/oembed/libs/jquery.oembed.js +161 -30
  141. data/vendor/assets/javascripts/ckeditor/plugins/oembed/libs/jquery.oembed.min.js +1 -4
  142. data/vendor/assets/javascripts/ckeditor/plugins/oembed/plugin.js +55 -59
  143. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +11 -10
  144. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fa.js +8 -9
  145. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fr.js +1 -1
  146. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ku.js +9 -10
  147. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
  148. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
  149. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog.css +1 -1
  150. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie.css +1 -1
  151. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie7.css +1 -1
  152. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie8.css +1 -1
  153. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_iequirks.css +5 -3
  154. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_opera.css +1 -1
  155. data/vendor/assets/javascripts/ckeditor/skins/moono/editor.css +1 -1
  156. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_gecko.css +1 -1
  157. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie.css +1 -1
  158. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie7.css +1 -1
  159. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie8.css +1 -1
  160. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_iequirks.css +52 -196
  161. data/vendor/assets/javascripts/ckeditor/skins/moono/icons.png +0 -0
  162. metadata +29 -203
  163. data/vendor/assets/javascripts/ckeditor/contents.css +0 -99
  164. data/vendor/assets/javascripts/ckeditor/lang/af.js +0 -5
  165. data/vendor/assets/javascripts/ckeditor/lang/ar.js +0 -5
  166. data/vendor/assets/javascripts/ckeditor/lang/bg.js +0 -5
  167. data/vendor/assets/javascripts/ckeditor/lang/bn.js +0 -5
  168. data/vendor/assets/javascripts/ckeditor/lang/bs.js +0 -5
  169. data/vendor/assets/javascripts/ckeditor/lang/ca.js +0 -5
  170. data/vendor/assets/javascripts/ckeditor/lang/cs.js +0 -5
  171. data/vendor/assets/javascripts/ckeditor/lang/cy.js +0 -5
  172. data/vendor/assets/javascripts/ckeditor/lang/da.js +0 -5
  173. data/vendor/assets/javascripts/ckeditor/lang/de.js +0 -5
  174. data/vendor/assets/javascripts/ckeditor/lang/el.js +0 -5
  175. data/vendor/assets/javascripts/ckeditor/lang/en-au.js +0 -5
  176. data/vendor/assets/javascripts/ckeditor/lang/en-ca.js +0 -5
  177. data/vendor/assets/javascripts/ckeditor/lang/en-gb.js +0 -5
  178. data/vendor/assets/javascripts/ckeditor/lang/eo.js +0 -5
  179. data/vendor/assets/javascripts/ckeditor/lang/es.js +0 -5
  180. data/vendor/assets/javascripts/ckeditor/lang/et.js +0 -5
  181. data/vendor/assets/javascripts/ckeditor/lang/eu.js +0 -5
  182. data/vendor/assets/javascripts/ckeditor/lang/fa.js +0 -5
  183. data/vendor/assets/javascripts/ckeditor/lang/fi.js +0 -5
  184. data/vendor/assets/javascripts/ckeditor/lang/fo.js +0 -5
  185. data/vendor/assets/javascripts/ckeditor/lang/fr-ca.js +0 -5
  186. data/vendor/assets/javascripts/ckeditor/lang/fr.js +0 -5
  187. data/vendor/assets/javascripts/ckeditor/lang/gl.js +0 -5
  188. data/vendor/assets/javascripts/ckeditor/lang/gu.js +0 -5
  189. data/vendor/assets/javascripts/ckeditor/lang/he.js +0 -5
  190. data/vendor/assets/javascripts/ckeditor/lang/hi.js +0 -5
  191. data/vendor/assets/javascripts/ckeditor/lang/hr.js +0 -5
  192. data/vendor/assets/javascripts/ckeditor/lang/hu.js +0 -5
  193. data/vendor/assets/javascripts/ckeditor/lang/is.js +0 -5
  194. data/vendor/assets/javascripts/ckeditor/lang/it.js +0 -5
  195. data/vendor/assets/javascripts/ckeditor/lang/ja.js +0 -5
  196. data/vendor/assets/javascripts/ckeditor/lang/ka.js +0 -5
  197. data/vendor/assets/javascripts/ckeditor/lang/km.js +0 -5
  198. data/vendor/assets/javascripts/ckeditor/lang/ko.js +0 -5
  199. data/vendor/assets/javascripts/ckeditor/lang/ku.js +0 -5
  200. data/vendor/assets/javascripts/ckeditor/lang/lt.js +0 -5
  201. data/vendor/assets/javascripts/ckeditor/lang/lv.js +0 -5
  202. data/vendor/assets/javascripts/ckeditor/lang/mk.js +0 -5
  203. data/vendor/assets/javascripts/ckeditor/lang/mn.js +0 -5
  204. data/vendor/assets/javascripts/ckeditor/lang/ms.js +0 -5
  205. data/vendor/assets/javascripts/ckeditor/lang/nb.js +0 -5
  206. data/vendor/assets/javascripts/ckeditor/lang/nl.js +0 -5
  207. data/vendor/assets/javascripts/ckeditor/lang/no.js +0 -5
  208. data/vendor/assets/javascripts/ckeditor/lang/pl.js +0 -5
  209. data/vendor/assets/javascripts/ckeditor/lang/pt-br.js +0 -5
  210. data/vendor/assets/javascripts/ckeditor/lang/pt.js +0 -5
  211. data/vendor/assets/javascripts/ckeditor/lang/ro.js +0 -5
  212. data/vendor/assets/javascripts/ckeditor/lang/sk.js +0 -5
  213. data/vendor/assets/javascripts/ckeditor/lang/sl.js +0 -5
  214. data/vendor/assets/javascripts/ckeditor/lang/sr-latn.js +0 -5
  215. data/vendor/assets/javascripts/ckeditor/lang/sr.js +0 -5
  216. data/vendor/assets/javascripts/ckeditor/lang/sv.js +0 -5
  217. data/vendor/assets/javascripts/ckeditor/lang/th.js +0 -5
  218. data/vendor/assets/javascripts/ckeditor/lang/tr.js +0 -5
  219. data/vendor/assets/javascripts/ckeditor/lang/ug.js +0 -5
  220. data/vendor/assets/javascripts/ckeditor/lang/uk.js +0 -5
  221. data/vendor/assets/javascripts/ckeditor/lang/vi.js +0 -5
  222. data/vendor/assets/javascripts/ckeditor/lang/zh-cn.js +0 -5
  223. data/vendor/assets/javascripts/ckeditor/lang/zh.js +0 -5
  224. data/vendor/assets/javascripts/ckeditor/plugins/CKCss/CKCss.xml +0 -26
  225. data/vendor/assets/javascripts/ckeditor/plugins/CKCss/ckcss1.png +0 -0
  226. data/vendor/assets/javascripts/ckeditor/plugins/MediaEmbed/icons/mediaembed.png +0 -0
  227. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +0 -6
  228. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  229. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/sourcecodepro-regular.eot +0 -0
  230. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/sourcecodepro-regular.otf +0 -0
  231. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/sourcecodepro-regular.svg +0 -242
  232. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/sourcecodepro-regular.ttf +0 -0
  233. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/css/sourcecodepro-regular.woff +0 -0
  234. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/colorize.js +0 -29
  235. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/continuecomment.js +0 -36
  236. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/dialog.css +0 -32
  237. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/javascript-hint.js +0 -137
  238. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/loadmode.js +0 -51
  239. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/match-highlighter.js +0 -46
  240. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/multiplex.js +0 -95
  241. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/overlay.js +0 -59
  242. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/pig-hint.js +0 -117
  243. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/runmode-standalone.js +0 -90
  244. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/runmode.js +0 -52
  245. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/simple-hint.css +0 -16
  246. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/simple-hint.js +0 -102
  247. data/vendor/assets/javascripts/ckeditor/plugins/codemirror/js/util/xml-hint.js +0 -131
  248. data/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +0 -13
  249. data/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +0 -9
  250. data/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +0 -24
  251. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/button.js +0 -8
  252. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +0 -8
  253. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/form.js +0 -8
  254. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +0 -8
  255. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/radio.js +0 -8
  256. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/select.js +0 -20
  257. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +0 -8
  258. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +0 -10
  259. data/vendor/assets/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  260. data/vendor/assets/javascripts/ckeditor/plugins/htmlbuttons/docs/install.html +0 -93
  261. data/vendor/assets/javascripts/ckeditor/plugins/htmlbuttons/docs/styles.css +0 -59
  262. data/vendor/assets/javascripts/ckeditor/plugins/htmlbuttons/icon1.png +0 -0
  263. data/vendor/assets/javascripts/ckeditor/plugins/htmlbuttons/icon2.png +0 -0
  264. data/vendor/assets/javascripts/ckeditor/plugins/htmlbuttons/icon3.png +0 -0
  265. data/vendor/assets/javascripts/ckeditor/plugins/htmlbuttons/plugin.js +0 -71
  266. data/vendor/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +0 -10
  267. data/vendor/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  268. data/vendor/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +0 -10
  269. data/vendor/assets/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  270. data/vendor/assets/javascripts/ckeditor/plugins/preview/preview.html +0 -10
  271. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  272. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  273. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  274. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  275. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  276. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  277. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  278. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  279. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  280. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  281. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  282. data/vendor/assets/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +0 -10
  283. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  284. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  285. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  286. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  287. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  288. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  289. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  290. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/embarrassed_smile.gif +0 -0
  291. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  292. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  293. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  294. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  295. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  296. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  297. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  298. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  299. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  300. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  301. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  302. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/tongue_smile.gif +0 -0
  303. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  304. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  305. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  306. data/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.css +0 -84
  307. data/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +0 -10
  308. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/default.js +0 -6
  309. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  310. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  311. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  312. data/vendor/assets/javascripts/ckeditor/plugins/wordcount/lang/en.js +0 -9
  313. data/vendor/assets/javascripts/ckeditor/plugins/wordcount/lang/ru.js +0 -9
  314. data/vendor/assets/javascripts/ckeditor/plugins/wordcount/plugin.js +0 -95
  315. data/vendor/assets/javascripts/ckeditor/samples/ajax.html +0 -82
  316. data/vendor/assets/javascripts/ckeditor/samples/api.html +0 -207
  317. data/vendor/assets/javascripts/ckeditor/samples/appendto.html +0 -57
  318. data/vendor/assets/javascripts/ckeditor/samples/assets/inlineall/logo.png +0 -0
  319. data/vendor/assets/javascripts/ckeditor/samples/assets/outputxhtml/outputxhtml.css +0 -204
  320. data/vendor/assets/javascripts/ckeditor/samples/assets/posteddata.php +0 -59
  321. data/vendor/assets/javascripts/ckeditor/samples/assets/sample.css +0 -3
  322. data/vendor/assets/javascripts/ckeditor/samples/assets/sample.jpg +0 -0
  323. data/vendor/assets/javascripts/ckeditor/samples/assets/uilanguages/languages.js +0 -7
  324. data/vendor/assets/javascripts/ckeditor/samples/divreplace.html +0 -141
  325. data/vendor/assets/javascripts/ckeditor/samples/index.html +0 -119
  326. data/vendor/assets/javascripts/ckeditor/samples/inlineall.html +0 -311
  327. data/vendor/assets/javascripts/ckeditor/samples/inlinebycode.html +0 -122
  328. data/vendor/assets/javascripts/ckeditor/samples/plugins/dialog/assets/my_dialog.js +0 -48
  329. data/vendor/assets/javascripts/ckeditor/samples/plugins/dialog/dialog.html +0 -187
  330. data/vendor/assets/javascripts/ckeditor/samples/plugins/enterkey/enterkey.html +0 -103
  331. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla +0 -0
  332. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf +0 -0
  333. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +0 -18
  334. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/outputforflash.html +0 -280
  335. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/outputhtml.html +0 -237
  336. data/vendor/assets/javascripts/ckeditor/samples/plugins/magicline/magicline.html +0 -203
  337. data/vendor/assets/javascripts/ckeditor/samples/plugins/toolbar/toolbar.html +0 -200
  338. data/vendor/assets/javascripts/ckeditor/samples/plugins/wysiwygarea/fullpage.html +0 -71
  339. data/vendor/assets/javascripts/ckeditor/samples/readonly.html +0 -73
  340. data/vendor/assets/javascripts/ckeditor/samples/replacebyclass.html +0 -57
  341. data/vendor/assets/javascripts/ckeditor/samples/replacebycode.html +0 -56
  342. data/vendor/assets/javascripts/ckeditor/samples/sample.css +0 -333
  343. data/vendor/assets/javascripts/ckeditor/samples/sample.js +0 -5
  344. data/vendor/assets/javascripts/ckeditor/samples/sample_posteddata.php +0 -16
  345. data/vendor/assets/javascripts/ckeditor/samples/tabindex.html +0 -75
  346. data/vendor/assets/javascripts/ckeditor/samples/uicolor.html +0 -69
  347. data/vendor/assets/javascripts/ckeditor/samples/uilanguages.html +0 -119
  348. data/vendor/assets/javascripts/ckeditor/samples/xhtmlstyle.html +0 -219
@@ -0,0 +1,43 @@
1
+ (function() {
2
+
3
+ // Applies automatic formatting to the specified range
4
+ CodeMirror.defineExtension("autoFormatAll", function (from, to) {
5
+ var cm = this;
6
+ var outer = cm.getMode(), text = cm.getRange(from, to).split("\n");
7
+ var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);
8
+ var tabSize = cm.getOption("tabSize");
9
+
10
+ var out = "", lines = 0, atSol = from.ch == 0;
11
+ function newline() {
12
+ out += "\n";
13
+ atSol = true;
14
+ ++lines;
15
+ }
16
+
17
+ for (var i = 0; i < text.length; ++i) {
18
+ var stream = new CodeMirror.StringStream(text[i], tabSize);
19
+ while (!stream.eol()) {
20
+ var inner = CodeMirror.innerMode(outer, state);
21
+ var style = outer.token(stream, state), cur = stream.current();
22
+ stream.start = stream.pos;
23
+ if (!atSol || /\S/.test(cur)) {
24
+ out += cur;
25
+ atSol = false;
26
+ }
27
+ if (!atSol && inner.mode.newlineAfterToken &&
28
+ inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || "", inner.state))
29
+ newline();
30
+ }
31
+ if (!stream.pos && outer.blankLine) outer.blankLine(state);
32
+ if (!atSol && i < text.length - 1) newline();
33
+ }
34
+
35
+ cm.operation(function () {
36
+ cm.replaceRange(out, from, to);
37
+ for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)
38
+ cm.indentLine(cur, "smart");
39
+
40
+ cm.setCursor({ line:0, ch:0 });
41
+ });
42
+ });
43
+ })();
@@ -1,108 +1,114 @@
1
- (function() {
2
-
3
- CodeMirror.extendMode("css", {
4
- commentStart: "/*",
5
- commentEnd: "*/",
6
- newlineAfterToken: function(_type, content) {
7
- return /^[;{}]$/.test(content);
8
- }
9
- });
10
-
11
- CodeMirror.extendMode("javascript", {
12
- commentStart: "/*",
13
- commentEnd: "*/",
14
- // FIXME semicolons inside of for
15
- newlineAfterToken: function(_type, content, textAfter, state) {
16
- if (this.jsonMode) {
17
- return /^[\[,{]$/.test(content) || /^}/.test(textAfter);
18
- } else {
19
- if (content == ";" && state.lexical && state.lexical.type == ")") return false;
20
- return /^[;{}]$/.test(content) && !/^;/.test(textAfter);
21
- }
22
- }
23
- });
24
-
25
- CodeMirror.extendMode("xml", {
26
- commentStart: "<!--",
27
- commentEnd: "-->",
28
- newlineAfterToken: function(type, content, textAfter) {
29
- return type == "tag" && />$/.test(content) || /^</.test(textAfter);
30
- }
31
- });
32
-
33
- // Comment/uncomment the specified range
34
- CodeMirror.defineExtension("commentRange", function (isComment, from, to) {
35
- var cm = this, curMode = CodeMirror.innerMode(cm.getMode(), cm.getTokenAt(from).state).mode;
36
- cm.operation(function() {
37
- if (isComment) { // Comment range
38
- cm.replaceRange(curMode.commentEnd, to);
39
- cm.replaceRange(curMode.commentStart, from);
40
- if (from.line == to.line && from.ch == to.ch) // An empty comment inserted - put cursor inside
41
- cm.setCursor(from.line, from.ch + curMode.commentStart.length);
42
- } else { // Uncomment range
43
- var selText = cm.getRange(from, to);
44
- var startIndex = selText.indexOf(curMode.commentStart);
45
- var endIndex = selText.lastIndexOf(curMode.commentEnd);
46
- if (startIndex > -1 && endIndex > -1 && endIndex > startIndex) {
47
- // Take string till comment start
48
- selText = selText.substr(0, startIndex)
49
- // From comment start till comment end
50
- + selText.substring(startIndex + curMode.commentStart.length, endIndex)
51
- // From comment end till string end
52
- + selText.substr(endIndex + curMode.commentEnd.length);
53
- }
54
- cm.replaceRange(selText, from, to);
55
- }
56
- });
57
- });
58
-
59
- // Applies automatic mode-aware indentation to the specified range
60
- CodeMirror.defineExtension("autoIndentRange", function (from, to) {
61
- var cmInstance = this;
62
- this.operation(function () {
63
- for (var i = from.line; i <= to.line; i++) {
64
- cmInstance.indentLine(i, "smart");
65
- }
66
- });
67
- });
68
-
69
- // Applies automatic formatting to the specified range
70
- CodeMirror.defineExtension("autoFormatRange", function (from, to) {
71
- var cm = this;
72
- var outer = cm.getMode(), text = cm.getRange(from, to).split("\n");
73
- var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);
74
- var tabSize = cm.getOption("tabSize");
75
-
76
- var out = "", lines = 0, atSol = from.ch == 0;
77
- function newline() {
78
- out += "\n";
79
- atSol = true;
80
- ++lines;
81
- }
82
-
83
- for (var i = 0; i < text.length; ++i) {
84
- var stream = new CodeMirror.StringStream(text[i], tabSize);
85
- while (!stream.eol()) {
86
- var inner = CodeMirror.innerMode(outer, state);
87
- var style = outer.token(stream, state), cur = stream.current();
88
- stream.start = stream.pos;
89
- if (!atSol || /\S/.test(cur)) {
90
- out += cur;
91
- atSol = false;
92
- }
93
- if (!atSol && inner.mode.newlineAfterToken &&
94
- inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || "", inner.state))
95
- newline();
96
- }
97
- if (!stream.pos && outer.blankLine) outer.blankLine(state);
98
- if (!atSol) newline();
99
- }
100
-
101
- cm.operation(function () {
102
- cm.replaceRange(out, from, to);
103
- for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)
104
- cm.indentLine(cur, "smart");
105
- cm.setSelection(from, cm.getCursor(false));
106
- });
107
- });
108
- })();
1
+ (function() {
2
+
3
+ CodeMirror.extendMode("css", {
4
+ commentStart: "/*",
5
+ commentEnd: "*/",
6
+ newlineAfterToken: function(_type, content) {
7
+ return /^[;{}]$/.test(content);
8
+ }
9
+ });
10
+
11
+ CodeMirror.extendMode("javascript", {
12
+ commentStart: "/*",
13
+ commentEnd: "*/",
14
+ // FIXME semicolons inside of for
15
+ newlineAfterToken: function(_type, content, textAfter, state) {
16
+ if (this.jsonMode) {
17
+ return /^[\[,{]$/.test(content) || /^}/.test(textAfter);
18
+ } else {
19
+ if (content == ";" && state.lexical && state.lexical.type == ")") return false;
20
+ return /^[;{}]$/.test(content) && !/^;/.test(textAfter);
21
+ }
22
+ }
23
+ });
24
+
25
+ var inlineElements = /^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;
26
+
27
+ CodeMirror.extendMode("xml", {
28
+ commentStart: "<!--",
29
+ commentEnd: "-->",
30
+ newlineAfterToken: function(type, content, textAfter, state) {
31
+ var inline = false;
32
+ if (this.configuration == "html")
33
+ inline = state.context ? inlineElements.test(state.context.tagName) : false;
34
+ return !inline && ((type == "tag" && />$/.test(content) && state.context) ||
35
+ /^</.test(textAfter));
36
+ }
37
+ });
38
+
39
+ // Comment/uncomment the specified range
40
+ CodeMirror.defineExtension("commentRange", function (isComment, from, to) {
41
+ var cm = this, curMode = CodeMirror.innerMode(cm.getMode(), cm.getTokenAt(from).state).mode;
42
+ cm.operation(function() {
43
+ if (isComment) { // Comment range
44
+ cm.replaceRange(curMode.commentEnd, to);
45
+ cm.replaceRange(curMode.commentStart, from);
46
+ if (from.line == to.line && from.ch == to.ch) // An empty comment inserted - put cursor inside
47
+ cm.setCursor(from.line, from.ch + curMode.commentStart.length);
48
+ } else { // Uncomment range
49
+ var selText = cm.getRange(from, to);
50
+ var startIndex = selText.indexOf(curMode.commentStart);
51
+ var endIndex = selText.lastIndexOf(curMode.commentEnd);
52
+ if (startIndex > -1 && endIndex > -1 && endIndex > startIndex) {
53
+ // Take string till comment start
54
+ selText = selText.substr(0, startIndex)
55
+ // From comment start till comment end
56
+ + selText.substring(startIndex + curMode.commentStart.length, endIndex)
57
+ // From comment end till string end
58
+ + selText.substr(endIndex + curMode.commentEnd.length);
59
+ }
60
+ cm.replaceRange(selText, from, to);
61
+ }
62
+ });
63
+ });
64
+
65
+ // Applies automatic mode-aware indentation to the specified range
66
+ CodeMirror.defineExtension("autoIndentRange", function (from, to) {
67
+ var cmInstance = this;
68
+ this.operation(function () {
69
+ for (var i = from.line; i <= to.line; i++) {
70
+ cmInstance.indentLine(i, "smart");
71
+ }
72
+ });
73
+ });
74
+
75
+ // Applies automatic formatting to the specified range
76
+ CodeMirror.defineExtension("autoFormatRange", function (from, to) {
77
+ var cm = this;
78
+ var outer = cm.getMode(), text = cm.getRange(from, to).split("\n");
79
+ var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);
80
+ var tabSize = cm.getOption("tabSize");
81
+
82
+ var out = "", lines = 0, atSol = from.ch == 0;
83
+ function newline() {
84
+ out += "\n";
85
+ atSol = true;
86
+ ++lines;
87
+ }
88
+
89
+ for (var i = 0; i < text.length; ++i) {
90
+ var stream = new CodeMirror.StringStream(text[i], tabSize);
91
+ while (!stream.eol()) {
92
+ var inner = CodeMirror.innerMode(outer, state);
93
+ var style = outer.token(stream, state), cur = stream.current();
94
+ stream.start = stream.pos;
95
+ if (!atSol || /\S/.test(cur)) {
96
+ out += cur;
97
+ atSol = false;
98
+ }
99
+ if (!atSol && inner.mode.newlineAfterToken &&
100
+ inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || "", inner.state))
101
+ newline();
102
+ }
103
+ if (!stream.pos && outer.blankLine) outer.blankLine(state);
104
+ if (!atSol && i < text.length - 1) newline();
105
+ }
106
+
107
+ cm.operation(function () {
108
+ cm.replaceRange(out, from, to);
109
+ for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)
110
+ cm.indentLine(cur, "smart");
111
+ cm.setSelection(from, cm.getCursor(false));
112
+ });
113
+ });
114
+ })();
@@ -0,0 +1,60 @@
1
+ // Highlighting text that matches the selection
2
+ //
3
+ // Defines an option highlightSelectionMatches, which, when enabled,
4
+ // will style strings that match the selection throughout the
5
+ // document.
6
+ //
7
+ // The option can be set to true to simply enable it, or to a
8
+ // {minChars, style} object to explicitly configure it. minChars is
9
+ // the minimum amount of characters that should be selected for the
10
+ // behavior to occur, and style is the token style to apply to the
11
+ // matches. This will be prefixed by "cm-" to create an actual CSS
12
+ // class name.
13
+
14
+ (function() {
15
+ var DEFAULT_MIN_CHARS = 2;
16
+ var DEFAULT_TOKEN_STYLE = "matchhighlight";
17
+
18
+ function State(options) {
19
+ this.minChars = typeof options == "object" && options.minChars || DEFAULT_MIN_CHARS;
20
+ this.style = typeof options == "object" && options.style || DEFAULT_TOKEN_STYLE;
21
+ this.overlay = null;
22
+ }
23
+
24
+ CodeMirror.defineOption("highlightSelectionMatches", false, function(cm, val, old) {
25
+ var prev = old && old != CodeMirror.Init;
26
+ if (val && !prev) {
27
+ cm._matchHighlightState = new State(val);
28
+ cm.on("cursorActivity", highlightMatches);
29
+ } else if (!val && prev) {
30
+ var over = cm._matchHighlightState.overlay;
31
+ if (over) cm.removeOverlay(over);
32
+ cm._matchHighlightState = null;
33
+ cm.off("cursorActivity", highlightMatches);
34
+ }
35
+ });
36
+
37
+ function highlightMatches(cm) {
38
+ cm.operation(function() {
39
+ var state = cm._matchHighlightState;
40
+ if (state.overlay) {
41
+ cm.removeOverlay(state.overlay);
42
+ state.overlay = null;
43
+ }
44
+
45
+ if (!cm.somethingSelected()) return;
46
+ var selection = cm.getSelection().replace(/^\s+|\s+$/g, "");
47
+ if (selection.length < state.minChars) return;
48
+
49
+ cm.addOverlay(state.overlay = makeOverlay(selection, state.style));
50
+ });
51
+ }
52
+
53
+ function makeOverlay(query, style) {
54
+ return {token: function(stream) {
55
+ if (stream.match(query)) return style;
56
+ stream.next();
57
+ stream.skipTo(query.charAt(0)) || stream.skipToEnd();
58
+ }};
59
+ }
60
+ })();
@@ -1,119 +1,131 @@
1
- // Define search commands. Depends on dialog.js or another
2
- // implementation of the openDialog method.
3
-
4
- // Replace works a little oddly -- it will do the replace on the next
5
- // Ctrl-G (or whatever is bound to findNext) press. You prevent a
6
- // replace by making sure the match is no longer selected when hitting
7
- // Ctrl-G.
8
-
9
- (function() {
10
- function SearchState() {
11
- this.posFrom = this.posTo = this.query = null;
12
- this.marked = [];
13
- }
14
- function getSearchState(cm) {
15
- return cm._searchState || (cm._searchState = new SearchState());
16
- }
17
- function getSearchCursor(cm, query, pos) {
18
- // Heuristic: if the query string is all lowercase, do a case insensitive search.
19
- return cm.getSearchCursor(query, pos, typeof query == "string" && query == query.toLowerCase());
20
- }
21
- function dialog(cm, text, shortText, f) {
22
- if (cm.openDialog) cm.openDialog(text, f);
23
- else f(prompt(shortText, ""));
24
- }
25
- function confirmDialog(cm, text, shortText, fs) {
26
- if (cm.openConfirm) cm.openConfirm(text, fs);
27
- else if (confirm(shortText)) fs[0]();
28
- }
29
- function parseQuery(query) {
30
- var isRE = query.match(/^\/(.*)\/([a-z]*)$/);
31
- return isRE ? new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i") : query;
32
- }
33
- var queryDialog =
34
- 'Search: <input type="text" style="width: 10em"/> <span style="color: #888">(Use /re/ syntax for regexp search)</span>';
35
- function doSearch(cm, rev) {
36
- var state = getSearchState(cm);
37
- if (state.query) return findNext(cm, rev);
38
- dialog(cm, queryDialog, "Search for:", function(query) {
39
- cm.operation(function() {
40
- if (!query || state.query) return;
41
- state.query = parseQuery(query);
42
- if (cm.lineCount() < 2000) { // This is too expensive on big documents.
43
- for (var cursor = getSearchCursor(cm, state.query); cursor.findNext();)
44
- state.marked.push(cm.markText(cursor.from(), cursor.to(),
45
- {className: "CodeMirror-searching"}));
46
- }
47
- state.posFrom = state.posTo = cm.getCursor();
48
- findNext(cm, rev);
49
- });
50
- });
51
- }
52
- function findNext(cm, rev) {cm.operation(function() {
53
- var state = getSearchState(cm);
54
- var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);
55
- if (!cursor.find(rev)) {
56
- cursor = getSearchCursor(cm, state.query, rev ? {line: cm.lineCount() - 1} : {line: 0, ch: 0});
57
- if (!cursor.find(rev)) return;
58
- }
59
- cm.setSelection(cursor.from(), cursor.to());
60
- state.posFrom = cursor.from(); state.posTo = cursor.to();
61
- });}
62
- function clearSearch(cm) {cm.operation(function() {
63
- var state = getSearchState(cm);
64
- if (!state.query) return;
65
- state.query = null;
66
- for (var i = 0; i < state.marked.length; ++i) state.marked[i].clear();
67
- state.marked.length = 0;
68
- });}
69
-
70
- var replaceQueryDialog =
71
- 'Replace: <input type="text" style="width: 10em"/> <span style="color: #888">(Use /re/ syntax for regexp search)</span>';
72
- var replacementQueryDialog = 'With: <input type="text" style="width: 10em"/>';
73
- var doReplaceConfirm = "Replace? <button>Yes</button> <button>No</button> <button>Stop</button>";
74
- function replace(cm, all) {
75
- dialog(cm, replaceQueryDialog, "Replace:", function(query) {
76
- if (!query) return;
77
- query = parseQuery(query);
78
- dialog(cm, replacementQueryDialog, "Replace with:", function(text) {
79
- if (all) {
80
- cm.operation(function() {
81
- for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {
82
- if (typeof query != "string") {
83
- var match = cm.getRange(cursor.from(), cursor.to()).match(query);
84
- cursor.replace(text.replace(/\$(\d)/, function(_, i) {return match[i];}));
85
- } else cursor.replace(text);
86
- }
87
- });
88
- } else {
89
- clearSearch(cm);
90
- var cursor = getSearchCursor(cm, query, cm.getCursor());
91
- function advance() {
92
- var start = cursor.from(), match;
93
- if (!(match = cursor.findNext())) {
94
- cursor = getSearchCursor(cm, query);
95
- if (!(match = cursor.findNext()) ||
96
- (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;
97
- }
98
- cm.setSelection(cursor.from(), cursor.to());
99
- confirmDialog(cm, doReplaceConfirm, "Replace?",
100
- [function() {doReplace(match);}, advance]);
101
- }
102
- function doReplace(match) {
103
- cursor.replace(typeof query == "string" ? text :
104
- text.replace(/\$(\d)/, function(_, i) {return match[i];}));
105
- advance();
106
- }
107
- advance();
108
- }
109
- });
110
- });
111
- }
112
-
113
- CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};
114
- CodeMirror.commands.findNext = doSearch;
115
- CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};
116
- CodeMirror.commands.clearSearch = clearSearch;
117
- CodeMirror.commands.replace = replace;
118
- CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};
119
- })();
1
+ // Define search commands. Depends on dialog.js or another
2
+ // implementation of the openDialog method.
3
+
4
+ // Replace works a little oddly -- it will do the replace on the next
5
+ // Ctrl-G (or whatever is bound to findNext) press. You prevent a
6
+ // replace by making sure the match is no longer selected when hitting
7
+ // Ctrl-G.
8
+
9
+ (function() {
10
+ function searchOverlay(query) {
11
+ if (typeof query == "string") return {token: function(stream) {
12
+ if (stream.match(query)) return "searching";
13
+ stream.next();
14
+ stream.skipTo(query.charAt(0)) || stream.skipToEnd();
15
+ }};
16
+ return {token: function(stream) {
17
+ if (stream.match(query)) return "searching";
18
+ while (!stream.eol()) {
19
+ stream.next();
20
+ if (stream.match(query, false)) break;
21
+ }
22
+ }};
23
+ }
24
+
25
+ function SearchState() {
26
+ this.posFrom = this.posTo = this.query = null;
27
+ this.overlay = null;
28
+ }
29
+ function getSearchState(cm) {
30
+ return cm._searchState || (cm._searchState = new SearchState());
31
+ }
32
+ function getSearchCursor(cm, query, pos) {
33
+ // Heuristic: if the query string is all lowercase, do a case insensitive search.
34
+ return cm.getSearchCursor(query, pos, typeof query == "string" && query == query.toLowerCase());
35
+ }
36
+ function dialog(cm, text, shortText, f) {
37
+ if (cm.openDialog) cm.openDialog(text, f);
38
+ else f(prompt(shortText, ""));
39
+ }
40
+ function confirmDialog(cm, text, shortText, fs) {
41
+ if (cm.openConfirm) cm.openConfirm(text, fs);
42
+ else if (confirm(shortText)) fs[0]();
43
+ }
44
+ function parseQuery(query) {
45
+ var isRE = query.match(/^\/(.*)\/([a-z]*)$/);
46
+ return isRE ? new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i") : query;
47
+ }
48
+ var queryDialog =
49
+ 'Search: <input type="text" style="width: 10em"/> <span style="color: #888">(Use /re/ syntax for regexp search)</span>';
50
+ function doSearch(cm, rev) {
51
+ var state = getSearchState(cm);
52
+ if (state.query) return findNext(cm, rev);
53
+ dialog(cm, queryDialog, "Search for:", function(query) {
54
+ cm.operation(function() {
55
+ if (!query || state.query) return;
56
+ state.query = parseQuery(query);
57
+ cm.removeOverlay(state.overlay);
58
+ state.overlay = searchOverlay(query);
59
+ cm.addOverlay(state.overlay);
60
+ state.posFrom = state.posTo = cm.getCursor();
61
+ findNext(cm, rev);
62
+ });
63
+ });
64
+ }
65
+ function findNext(cm, rev) {cm.operation(function() {
66
+ var state = getSearchState(cm);
67
+ var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);
68
+ if (!cursor.find(rev)) {
69
+ cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));
70
+ if (!cursor.find(rev)) return;
71
+ }
72
+ cm.setSelection(cursor.from(), cursor.to());
73
+ state.posFrom = cursor.from(); state.posTo = cursor.to();
74
+ });}
75
+ function clearSearch(cm) {cm.operation(function() {
76
+ var state = getSearchState(cm);
77
+ if (!state.query) return;
78
+ state.query = null;
79
+ cm.removeOverlay(state.overlay);
80
+ });}
81
+
82
+ var replaceQueryDialog =
83
+ 'Replace: <input type="text" style="width: 10em"/> <span style="color: #888">(Use /re/ syntax for regexp search)</span>';
84
+ var replacementQueryDialog = 'With: <input type="text" style="width: 10em"/>';
85
+ var doReplaceConfirm = "Replace? <button>Yes</button> <button>No</button> <button>Stop</button>";
86
+ function replace(cm, all) {
87
+ dialog(cm, replaceQueryDialog, "Replace:", function(query) {
88
+ if (!query) return;
89
+ query = parseQuery(query);
90
+ dialog(cm, replacementQueryDialog, "Replace with:", function(text) {
91
+ if (all) {
92
+ cm.operation(function() {
93
+ for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {
94
+ if (typeof query != "string") {
95
+ var match = cm.getRange(cursor.from(), cursor.to()).match(query);
96
+ cursor.replace(text.replace(/\$(\d)/, function(_, i) {return match[i];}));
97
+ } else cursor.replace(text);
98
+ }
99
+ });
100
+ } else {
101
+ clearSearch(cm);
102
+ var cursor = getSearchCursor(cm, query, cm.getCursor());
103
+ var advance = function() {
104
+ var start = cursor.from(), match;
105
+ if (!(match = cursor.findNext())) {
106
+ cursor = getSearchCursor(cm, query);
107
+ if (!(match = cursor.findNext()) ||
108
+ (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;
109
+ }
110
+ cm.setSelection(cursor.from(), cursor.to());
111
+ confirmDialog(cm, doReplaceConfirm, "Replace?",
112
+ [function() {doReplace(match);}, advance]);
113
+ };
114
+ var doReplace = function(match) {
115
+ cursor.replace(typeof query == "string" ? text :
116
+ text.replace(/\$(\d)/, function(_, i) {return match[i];}));
117
+ advance();
118
+ };
119
+ advance();
120
+ }
121
+ });
122
+ });
123
+ }
124
+
125
+ CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};
126
+ CodeMirror.commands.findNext = doSearch;
127
+ CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};
128
+ CodeMirror.commands.clearSearch = clearSearch;
129
+ CodeMirror.commands.replace = replace;
130
+ CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};
131
+ })();