pollypost 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1132) hide show
  1. data/.gitignore +15 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +674 -0
  4. data/README.md +165 -0
  5. data/Rakefile +9 -0
  6. data/assets/fonts/font-awesome-custom/fontawesome-custom.eot +0 -0
  7. data/assets/fonts/font-awesome-custom/fontawesome-custom.svg +15 -0
  8. data/assets/fonts/font-awesome-custom/fontawesome-custom.ttf +0 -0
  9. data/assets/fonts/font-awesome-custom/fontawesome-custom.woff +0 -0
  10. data/assets/javascripts/app.js +35 -0
  11. data/assets/javascripts/application.js +8 -0
  12. data/assets/javascripts/dom-tweaking.js +36 -0
  13. data/assets/javascripts/main.js +36 -0
  14. data/assets/javascripts/models/page_content.js +39 -0
  15. data/assets/javascripts/templates/bar_edit_mode.html +14 -0
  16. data/assets/javascripts/templates/bar_view_mode.html +13 -0
  17. data/assets/javascripts/templates/duplicate_page.html +20 -0
  18. data/assets/javascripts/templates/html_editor.html +18 -0
  19. data/assets/javascripts/templates/loading.html +9 -0
  20. data/assets/javascripts/templates/new_page.html +23 -0
  21. data/assets/javascripts/templates/settings.html +15 -0
  22. data/assets/javascripts/views/bar_edit_mode.js +117 -0
  23. data/assets/javascripts/views/bar_view_mode.js +40 -0
  24. data/assets/javascripts/views/duplicate_page.js +76 -0
  25. data/assets/javascripts/views/editier_bar.js +171 -0
  26. data/assets/javascripts/views/html_editor.js +116 -0
  27. data/assets/javascripts/views/loading.js +31 -0
  28. data/assets/javascripts/views/new_page.js +77 -0
  29. data/assets/javascripts/views/page_content.js +26 -0
  30. data/assets/javascripts/views/settings.js +89 -0
  31. data/assets/stylesheets/_bootstrap-custom.scss +50 -0
  32. data/assets/stylesheets/_editor.scss +303 -0
  33. data/assets/stylesheets/_font-awesome-custom.scss +17 -0
  34. data/assets/stylesheets/_variable-overrides.scss +13 -0
  35. data/assets/stylesheets/application.scss +41 -0
  36. data/assets/stylesheets/bootstrap/_normalize.scss +427 -0
  37. data/assets/stylesheets/bootstrap/_scaffolding.scss +150 -0
  38. data/assets/stylesheets/font-awesome/_core.scss +12 -0
  39. data/assets/stylesheets/font-awesome/_mixins.scss +26 -0
  40. data/assets/stylesheets/font-awesome/_path.scss +14 -0
  41. data/lib/pollypost.rb +13 -0
  42. data/lib/pollypost/rake.rb +55 -0
  43. data/lib/pollypost/version.rb +11 -0
  44. data/pollypost.gemspec +27 -0
  45. data/test/README.md +55 -0
  46. data/test/basic.html +19 -0
  47. data/test/page_content_test.js +69 -0
  48. data/test/qunit-1.17.1.css +280 -0
  49. data/test/qunit-1.17.1.js +2875 -0
  50. data/test/sinon-1.14.1.js +5931 -0
  51. data/test/sinon-qunit-1.0.0.js +62 -0
  52. data/test/test.html +16 -0
  53. data/test/testmain.js +28 -0
  54. data/test/tests.js +58 -0
  55. data/vendor/assets/ace-1.1.8/ace.js +129 -0
  56. data/vendor/assets/ace-1.1.8/anchor.js +245 -0
  57. data/vendor/assets/ace-1.1.8/anchor_test.js +223 -0
  58. data/vendor/assets/ace-1.1.8/autocomplete.js +485 -0
  59. data/vendor/assets/ace-1.1.8/autocomplete/popup.js +338 -0
  60. data/vendor/assets/ace-1.1.8/autocomplete/text_completer.js +78 -0
  61. data/vendor/assets/ace-1.1.8/autocomplete/util.js +74 -0
  62. data/vendor/assets/ace-1.1.8/background_tokenizer.js +250 -0
  63. data/vendor/assets/ace-1.1.8/background_tokenizer_test.js +85 -0
  64. data/vendor/assets/ace-1.1.8/commands/command_manager.js +118 -0
  65. data/vendor/assets/ace-1.1.8/commands/command_manager_test.js +199 -0
  66. data/vendor/assets/ace-1.1.8/commands/default_commands.js +708 -0
  67. data/vendor/assets/ace-1.1.8/commands/incremental_search_commands.js +232 -0
  68. data/vendor/assets/ace-1.1.8/commands/multi_select_commands.js +102 -0
  69. data/vendor/assets/ace-1.1.8/commands/occur_commands.js +110 -0
  70. data/vendor/assets/ace-1.1.8/config.js +301 -0
  71. data/vendor/assets/ace-1.1.8/config_test.js +128 -0
  72. data/vendor/assets/ace-1.1.8/css/codefolding-fold-button-states.png +0 -0
  73. data/vendor/assets/ace-1.1.8/css/editor.css +422 -0
  74. data/vendor/assets/ace-1.1.8/css/expand-marker.png +0 -0
  75. data/vendor/assets/ace-1.1.8/document.js +645 -0
  76. data/vendor/assets/ace-1.1.8/document_test.js +306 -0
  77. data/vendor/assets/ace-1.1.8/edit_session.js +2554 -0
  78. data/vendor/assets/ace-1.1.8/edit_session/bracket_match.js +221 -0
  79. data/vendor/assets/ace-1.1.8/edit_session/fold.js +140 -0
  80. data/vendor/assets/ace-1.1.8/edit_session/fold_line.js +269 -0
  81. data/vendor/assets/ace-1.1.8/edit_session/folding.js +851 -0
  82. data/vendor/assets/ace-1.1.8/edit_session_test.js +1075 -0
  83. data/vendor/assets/ace-1.1.8/editor.js +2658 -0
  84. data/vendor/assets/ace-1.1.8/editor_change_document_test.js +188 -0
  85. data/vendor/assets/ace-1.1.8/editor_highlight_selected_word_test.js +223 -0
  86. data/vendor/assets/ace-1.1.8/editor_navigation_test.js +164 -0
  87. data/vendor/assets/ace-1.1.8/editor_text_edit_test.js +557 -0
  88. data/vendor/assets/ace-1.1.8/ext/beautify.js +57 -0
  89. data/vendor/assets/ace-1.1.8/ext/beautify/php_rules.js +366 -0
  90. data/vendor/assets/ace-1.1.8/ext/chromevox.js +980 -0
  91. data/vendor/assets/ace-1.1.8/ext/elastic_tabstops_lite.js +319 -0
  92. data/vendor/assets/ace-1.1.8/ext/emmet.js +434 -0
  93. data/vendor/assets/ace-1.1.8/ext/error_marker.js +214 -0
  94. data/vendor/assets/ace-1.1.8/ext/keybinding_menu.js +86 -0
  95. data/vendor/assets/ace-1.1.8/ext/language_tools.js +229 -0
  96. data/vendor/assets/ace-1.1.8/ext/linking.js +78 -0
  97. data/vendor/assets/ace-1.1.8/ext/menu_tools/add_editor_menu_options.js +109 -0
  98. data/vendor/assets/ace-1.1.8/ext/menu_tools/element_generator.js +148 -0
  99. data/vendor/assets/ace-1.1.8/ext/menu_tools/generate_settings_menu.js +264 -0
  100. data/vendor/assets/ace-1.1.8/ext/menu_tools/get_editor_keyboard_shortcuts.js +91 -0
  101. data/vendor/assets/ace-1.1.8/ext/menu_tools/get_set_functions.js +141 -0
  102. data/vendor/assets/ace-1.1.8/ext/menu_tools/overlay_page.js +116 -0
  103. data/vendor/assets/ace-1.1.8/ext/menu_tools/settings_menu.css +48 -0
  104. data/vendor/assets/ace-1.1.8/ext/modelist.js +191 -0
  105. data/vendor/assets/ace-1.1.8/ext/old_ie.js +114 -0
  106. data/vendor/assets/ace-1.1.8/ext/old_ie_test.js +77 -0
  107. data/vendor/assets/ace-1.1.8/ext/searchbox.css +153 -0
  108. data/vendor/assets/ace-1.1.8/ext/searchbox.js +308 -0
  109. data/vendor/assets/ace-1.1.8/ext/settings_menu.js +76 -0
  110. data/vendor/assets/ace-1.1.8/ext/spellcheck.js +69 -0
  111. data/vendor/assets/ace-1.1.8/ext/split.js +40 -0
  112. data/vendor/assets/ace-1.1.8/ext/static.css +31 -0
  113. data/vendor/assets/ace-1.1.8/ext/static_highlight.js +190 -0
  114. data/vendor/assets/ace-1.1.8/ext/static_highlight_test.js +96 -0
  115. data/vendor/assets/ace-1.1.8/ext/statusbar.js +48 -0
  116. data/vendor/assets/ace-1.1.8/ext/textarea.js +521 -0
  117. data/vendor/assets/ace-1.1.8/ext/themelist.js +100 -0
  118. data/vendor/assets/ace-1.1.8/ext/whitespace.js +213 -0
  119. data/vendor/assets/ace-1.1.8/ext/whitespace_test.js +116 -0
  120. data/vendor/assets/ace-1.1.8/incremental_search.js +317 -0
  121. data/vendor/assets/ace-1.1.8/incremental_search_test.js +213 -0
  122. data/vendor/assets/ace-1.1.8/keyboard/emacs.js +652 -0
  123. data/vendor/assets/ace-1.1.8/keyboard/emacs_test.js +151 -0
  124. data/vendor/assets/ace-1.1.8/keyboard/hash_handler.js +231 -0
  125. data/vendor/assets/ace-1.1.8/keyboard/keybinding.js +145 -0
  126. data/vendor/assets/ace-1.1.8/keyboard/keybinding_test.js +69 -0
  127. data/vendor/assets/ace-1.1.8/keyboard/state_handler.js +249 -0
  128. data/vendor/assets/ace-1.1.8/keyboard/textarea.js +82 -0
  129. data/vendor/assets/ace-1.1.8/keyboard/textinput.js +495 -0
  130. data/vendor/assets/ace-1.1.8/keyboard/vim.js +199 -0
  131. data/vendor/assets/ace-1.1.8/keyboard/vim/commands.js +618 -0
  132. data/vendor/assets/ace-1.1.8/keyboard/vim/maps/aliases.js +94 -0
  133. data/vendor/assets/ace-1.1.8/keyboard/vim/maps/motions.js +681 -0
  134. data/vendor/assets/ace-1.1.8/keyboard/vim/maps/operators.js +201 -0
  135. data/vendor/assets/ace-1.1.8/keyboard/vim/maps/util.js +132 -0
  136. data/vendor/assets/ace-1.1.8/keyboard/vim/registers.js +42 -0
  137. data/vendor/assets/ace-1.1.8/keyboard/vim_test.js +528 -0
  138. data/vendor/assets/ace-1.1.8/layer/cursor.js +234 -0
  139. data/vendor/assets/ace-1.1.8/layer/font_metrics.js +176 -0
  140. data/vendor/assets/ace-1.1.8/layer/gutter.js +287 -0
  141. data/vendor/assets/ace-1.1.8/layer/marker.js +218 -0
  142. data/vendor/assets/ace-1.1.8/layer/text.js +575 -0
  143. data/vendor/assets/ace-1.1.8/layer/text_test.js +126 -0
  144. data/vendor/assets/ace-1.1.8/lib/dom.js +283 -0
  145. data/vendor/assets/ace-1.1.8/lib/es5-shim.js +1062 -0
  146. data/vendor/assets/ace-1.1.8/lib/event.js +381 -0
  147. data/vendor/assets/ace-1.1.8/lib/event_emitter.js +155 -0
  148. data/vendor/assets/ace-1.1.8/lib/event_emitter_test.js +65 -0
  149. data/vendor/assets/ace-1.1.8/lib/fixoldbrowsers.js +19 -0
  150. data/vendor/assets/ace-1.1.8/lib/keys.js +163 -0
  151. data/vendor/assets/ace-1.1.8/lib/lang.js +221 -0
  152. data/vendor/assets/ace-1.1.8/lib/net.js +51 -0
  153. data/vendor/assets/ace-1.1.8/lib/oop.js +57 -0
  154. data/vendor/assets/ace-1.1.8/lib/regexp.js +113 -0
  155. data/vendor/assets/ace-1.1.8/lib/useragent.js +106 -0
  156. data/vendor/assets/ace-1.1.8/line_widgets.js +297 -0
  157. data/vendor/assets/ace-1.1.8/mode/_test/Readme.md +9 -0
  158. data/vendor/assets/ace-1.1.8/mode/_test/highlight_rules_test.js +210 -0
  159. data/vendor/assets/ace-1.1.8/mode/_test/package.json +8 -0
  160. data/vendor/assets/ace-1.1.8/mode/_test/text_asciidoc.txt +111 -0
  161. data/vendor/assets/ace-1.1.8/mode/_test/text_coffee.txt +57 -0
  162. data/vendor/assets/ace-1.1.8/mode/_test/text_curly.txt +9 -0
  163. data/vendor/assets/ace-1.1.8/mode/_test/text_html.txt +10 -0
  164. data/vendor/assets/ace-1.1.8/mode/_test/text_javascript.txt +86 -0
  165. data/vendor/assets/ace-1.1.8/mode/_test/text_livescript.txt +1 -0
  166. data/vendor/assets/ace-1.1.8/mode/_test/text_lucene.txt +16 -0
  167. data/vendor/assets/ace-1.1.8/mode/_test/text_markdown.txt +22 -0
  168. data/vendor/assets/ace-1.1.8/mode/_test/text_php.txt +24 -0
  169. data/vendor/assets/ace-1.1.8/mode/_test/text_ruby.txt +34 -0
  170. data/vendor/assets/ace-1.1.8/mode/_test/text_xml.txt +7 -0
  171. data/vendor/assets/ace-1.1.8/mode/_test/tokens_abap.json +189 -0
  172. data/vendor/assets/ace-1.1.8/mode/_test/tokens_actionscript.json +263 -0
  173. data/vendor/assets/ace-1.1.8/mode/_test/tokens_ada.json +39 -0
  174. data/vendor/assets/ace-1.1.8/mode/_test/tokens_asciidoc.json +422 -0
  175. data/vendor/assets/ace-1.1.8/mode/_test/tokens_assembly_x86.json +114 -0
  176. data/vendor/assets/ace-1.1.8/mode/_test/tokens_autohotkey.json +261 -0
  177. data/vendor/assets/ace-1.1.8/mode/_test/tokens_batchfile.json +70 -0
  178. data/vendor/assets/ace-1.1.8/mode/_test/tokens_c9search.json +131 -0
  179. data/vendor/assets/ace-1.1.8/mode/_test/tokens_c_cpp.json +185 -0
  180. data/vendor/assets/ace-1.1.8/mode/_test/tokens_cirru.json +267 -0
  181. data/vendor/assets/ace-1.1.8/mode/_test/tokens_clojure.json +162 -0
  182. data/vendor/assets/ace-1.1.8/mode/_test/tokens_cobol.json +4 -0
  183. data/vendor/assets/ace-1.1.8/mode/_test/tokens_coffee.json +545 -0
  184. data/vendor/assets/ace-1.1.8/mode/_test/tokens_coldfusion.json +26 -0
  185. data/vendor/assets/ace-1.1.8/mode/_test/tokens_csharp.json +31 -0
  186. data/vendor/assets/ace-1.1.8/mode/_test/tokens_css.json +148 -0
  187. data/vendor/assets/ace-1.1.8/mode/_test/tokens_curly.json +56 -0
  188. data/vendor/assets/ace-1.1.8/mode/_test/tokens_d.json +111 -0
  189. data/vendor/assets/ace-1.1.8/mode/_test/tokens_dart.json +368 -0
  190. data/vendor/assets/ace-1.1.8/mode/_test/tokens_diff.json +262 -0
  191. data/vendor/assets/ace-1.1.8/mode/_test/tokens_dot.json +2254 -0
  192. data/vendor/assets/ace-1.1.8/mode/_test/tokens_eiffel.json +141 -0
  193. data/vendor/assets/ace-1.1.8/mode/_test/tokens_ejs.json +296 -0
  194. data/vendor/assets/ace-1.1.8/mode/_test/tokens_elixir.json +196 -0
  195. data/vendor/assets/ace-1.1.8/mode/_test/tokens_elm.json +198 -0
  196. data/vendor/assets/ace-1.1.8/mode/_test/tokens_erlang.json +166 -0
  197. data/vendor/assets/ace-1.1.8/mode/_test/tokens_forth.json +219 -0
  198. data/vendor/assets/ace-1.1.8/mode/_test/tokens_ftl.json +341 -0
  199. data/vendor/assets/ace-1.1.8/mode/_test/tokens_gcode.json +296 -0
  200. data/vendor/assets/ace-1.1.8/mode/_test/tokens_gherkin.json +142 -0
  201. data/vendor/assets/ace-1.1.8/mode/_test/tokens_gitignore.json +33 -0
  202. data/vendor/assets/ace-1.1.8/mode/_test/tokens_glsl.json +127 -0
  203. data/vendor/assets/ace-1.1.8/mode/_test/tokens_golang.json +256 -0
  204. data/vendor/assets/ace-1.1.8/mode/_test/tokens_groovy.json +410 -0
  205. data/vendor/assets/ace-1.1.8/mode/_test/tokens_haml.json +174 -0
  206. data/vendor/assets/ace-1.1.8/mode/_test/tokens_handlebars.json +81 -0
  207. data/vendor/assets/ace-1.1.8/mode/_test/tokens_haskell.json +156 -0
  208. data/vendor/assets/ace-1.1.8/mode/_test/tokens_haxe.json +143 -0
  209. data/vendor/assets/ace-1.1.8/mode/_test/tokens_html.json +63 -0
  210. data/vendor/assets/ace-1.1.8/mode/_test/tokens_html_ruby.json +257 -0
  211. data/vendor/assets/ace-1.1.8/mode/_test/tokens_ini.json +23 -0
  212. data/vendor/assets/ace-1.1.8/mode/_test/tokens_io.json +49 -0
  213. data/vendor/assets/ace-1.1.8/mode/_test/tokens_jack.json +1786 -0
  214. data/vendor/assets/ace-1.1.8/mode/_test/tokens_jade.json +188 -0
  215. data/vendor/assets/ace-1.1.8/mode/_test/tokens_java.json +95 -0
  216. data/vendor/assets/ace-1.1.8/mode/_test/tokens_javascript.json +593 -0
  217. data/vendor/assets/ace-1.1.8/mode/_test/tokens_json.json +412 -0
  218. data/vendor/assets/ace-1.1.8/mode/_test/tokens_jsoniq.json +4 -0
  219. data/vendor/assets/ace-1.1.8/mode/_test/tokens_jsp.json +435 -0
  220. data/vendor/assets/ace-1.1.8/mode/_test/tokens_jsx.json +51 -0
  221. data/vendor/assets/ace-1.1.8/mode/_test/tokens_julia.json +111 -0
  222. data/vendor/assets/ace-1.1.8/mode/_test/tokens_latex.json +127 -0
  223. data/vendor/assets/ace-1.1.8/mode/_test/tokens_less.json +204 -0
  224. data/vendor/assets/ace-1.1.8/mode/_test/tokens_liquid.json +551 -0
  225. data/vendor/assets/ace-1.1.8/mode/_test/tokens_lisp.json +248 -0
  226. data/vendor/assets/ace-1.1.8/mode/_test/tokens_livescript.json +6 -0
  227. data/vendor/assets/ace-1.1.8/mode/_test/tokens_logiql.json +190 -0
  228. data/vendor/assets/ace-1.1.8/mode/_test/tokens_lsl.json +503 -0
  229. data/vendor/assets/ace-1.1.8/mode/_test/tokens_lua.json +348 -0
  230. data/vendor/assets/ace-1.1.8/mode/_test/tokens_luapage.json +633 -0
  231. data/vendor/assets/ace-1.1.8/mode/_test/tokens_lucene.json +92 -0
  232. data/vendor/assets/ace-1.1.8/mode/_test/tokens_markdown.json +114 -0
  233. data/vendor/assets/ace-1.1.8/mode/_test/tokens_matlab.json +90 -0
  234. data/vendor/assets/ace-1.1.8/mode/_test/tokens_mel.json +257 -0
  235. data/vendor/assets/ace-1.1.8/mode/_test/tokens_mushcode.json +790 -0
  236. data/vendor/assets/ace-1.1.8/mode/_test/tokens_mysql.json +4 -0
  237. data/vendor/assets/ace-1.1.8/mode/_test/tokens_nix.json +360 -0
  238. data/vendor/assets/ace-1.1.8/mode/_test/tokens_objectivec.json +792 -0
  239. data/vendor/assets/ace-1.1.8/mode/_test/tokens_ocaml.json +200 -0
  240. data/vendor/assets/ace-1.1.8/mode/_test/tokens_pascal.json +297 -0
  241. data/vendor/assets/ace-1.1.8/mode/_test/tokens_perl.json +227 -0
  242. data/vendor/assets/ace-1.1.8/mode/_test/tokens_pgsql.json +889 -0
  243. data/vendor/assets/ace-1.1.8/mode/_test/tokens_php.json +171 -0
  244. data/vendor/assets/ace-1.1.8/mode/_test/tokens_powershell.json +184 -0
  245. data/vendor/assets/ace-1.1.8/mode/_test/tokens_prolog.json +245 -0
  246. data/vendor/assets/ace-1.1.8/mode/_test/tokens_properties.json +68 -0
  247. data/vendor/assets/ace-1.1.8/mode/_test/tokens_protobuf.json +136 -0
  248. data/vendor/assets/ace-1.1.8/mode/_test/tokens_python.json +152 -0
  249. data/vendor/assets/ace-1.1.8/mode/_test/tokens_r.json +235 -0
  250. data/vendor/assets/ace-1.1.8/mode/_test/tokens_rdoc.json +441 -0
  251. data/vendor/assets/ace-1.1.8/mode/_test/tokens_rhtml.json +106 -0
  252. data/vendor/assets/ace-1.1.8/mode/_test/tokens_ruby.json +234 -0
  253. data/vendor/assets/ace-1.1.8/mode/_test/tokens_rust.json +136 -0
  254. data/vendor/assets/ace-1.1.8/mode/_test/tokens_sass.json +229 -0
  255. data/vendor/assets/ace-1.1.8/mode/_test/tokens_scad.json +194 -0
  256. data/vendor/assets/ace-1.1.8/mode/_test/tokens_scala.json +542 -0
  257. data/vendor/assets/ace-1.1.8/mode/_test/tokens_scheme.json +216 -0
  258. data/vendor/assets/ace-1.1.8/mode/_test/tokens_scss.json +123 -0
  259. data/vendor/assets/ace-1.1.8/mode/_test/tokens_sh.json +334 -0
  260. data/vendor/assets/ace-1.1.8/mode/_test/tokens_sjs.json +276 -0
  261. data/vendor/assets/ace-1.1.8/mode/_test/tokens_smarty.json +98 -0
  262. data/vendor/assets/ace-1.1.8/mode/_test/tokens_snippets.json +159 -0
  263. data/vendor/assets/ace-1.1.8/mode/_test/tokens_soy_template.json +286 -0
  264. data/vendor/assets/ace-1.1.8/mode/_test/tokens_space.json +322 -0
  265. data/vendor/assets/ace-1.1.8/mode/_test/tokens_sql.json +54 -0
  266. data/vendor/assets/ace-1.1.8/mode/_test/tokens_stylus.json +271 -0
  267. data/vendor/assets/ace-1.1.8/mode/_test/tokens_svg.json +684 -0
  268. data/vendor/assets/ace-1.1.8/mode/_test/tokens_tcl.json +385 -0
  269. data/vendor/assets/ace-1.1.8/mode/_test/tokens_tex.json +130 -0
  270. data/vendor/assets/ace-1.1.8/mode/_test/tokens_text.json +29 -0
  271. data/vendor/assets/ace-1.1.8/mode/_test/tokens_textile.json +113 -0
  272. data/vendor/assets/ace-1.1.8/mode/_test/tokens_toml.json +131 -0
  273. data/vendor/assets/ace-1.1.8/mode/_test/tokens_twig.json +288 -0
  274. data/vendor/assets/ace-1.1.8/mode/_test/tokens_typescript.json +559 -0
  275. data/vendor/assets/ace-1.1.8/mode/_test/tokens_vala.json +158 -0
  276. data/vendor/assets/ace-1.1.8/mode/_test/tokens_vbscript.json +205 -0
  277. data/vendor/assets/ace-1.1.8/mode/_test/tokens_velocity.json +285 -0
  278. data/vendor/assets/ace-1.1.8/mode/_test/tokens_verilog.json +113 -0
  279. data/vendor/assets/ace-1.1.8/mode/_test/tokens_vhdl.json +271 -0
  280. data/vendor/assets/ace-1.1.8/mode/_test/tokens_xml.json +43 -0
  281. data/vendor/assets/ace-1.1.8/mode/_test/tokens_xquery.json +44 -0
  282. data/vendor/assets/ace-1.1.8/mode/_test/tokens_yaml.json +150 -0
  283. data/vendor/assets/ace-1.1.8/mode/abap.js +77 -0
  284. data/vendor/assets/ace-1.1.8/mode/abap_highlight_rules.js +134 -0
  285. data/vendor/assets/ace-1.1.8/mode/actionscript.js +58 -0
  286. data/vendor/assets/ace-1.1.8/mode/actionscript_highlight_rules.js +141 -0
  287. data/vendor/assets/ace-1.1.8/mode/ada.js +54 -0
  288. data/vendor/assets/ace-1.1.8/mode/ada_highlight_rules.js +93 -0
  289. data/vendor/assets/ace-1.1.8/mode/apache_conf.js +62 -0
  290. data/vendor/assets/ace-1.1.8/mode/apache_conf_highlight_rules.js +231 -0
  291. data/vendor/assets/ace-1.1.8/mode/applescript.js +55 -0
  292. data/vendor/assets/ace-1.1.8/mode/applescript_highlight_rules.js +139 -0
  293. data/vendor/assets/ace-1.1.8/mode/asciidoc.js +64 -0
  294. data/vendor/assets/ace-1.1.8/mode/asciidoc_highlight_rules.js +234 -0
  295. data/vendor/assets/ace-1.1.8/mode/assembly_x86.js +56 -0
  296. data/vendor/assets/ace-1.1.8/mode/assembly_x86_highlight_rules.js +114 -0
  297. data/vendor/assets/ace-1.1.8/mode/autohotkey.js +57 -0
  298. data/vendor/assets/ace-1.1.8/mode/autohotkey_highlight_rules.js +107 -0
  299. data/vendor/assets/ace-1.1.8/mode/batchfile.js +61 -0
  300. data/vendor/assets/ace-1.1.8/mode/batchfile_highlight_rules.js +97 -0
  301. data/vendor/assets/ace-1.1.8/mode/behaviour.js +90 -0
  302. data/vendor/assets/ace-1.1.8/mode/behaviour/behaviour_test.js +133 -0
  303. data/vendor/assets/ace-1.1.8/mode/behaviour/css.js +108 -0
  304. data/vendor/assets/ace-1.1.8/mode/behaviour/cstyle.js +400 -0
  305. data/vendor/assets/ace-1.1.8/mode/behaviour/html.js +46 -0
  306. data/vendor/assets/ace-1.1.8/mode/behaviour/xml.js +202 -0
  307. data/vendor/assets/ace-1.1.8/mode/behaviour/xquery.js +92 -0
  308. data/vendor/assets/ace-1.1.8/mode/c9search.js +67 -0
  309. data/vendor/assets/ace-1.1.8/mode/c9search_highlight_rules.js +182 -0
  310. data/vendor/assets/ace-1.1.8/mode/c_cpp.js +101 -0
  311. data/vendor/assets/ace-1.1.8/mode/c_cpp_highlight_rules.js +196 -0
  312. data/vendor/assets/ace-1.1.8/mode/cirru.js +51 -0
  313. data/vendor/assets/ace-1.1.8/mode/cirru_highlight_rules.js +125 -0
  314. data/vendor/assets/ace-1.1.8/mode/clojure.js +128 -0
  315. data/vendor/assets/ace-1.1.8/mode/clojure_highlight_rules.js +200 -0
  316. data/vendor/assets/ace-1.1.8/mode/cobol.js +53 -0
  317. data/vendor/assets/ace-1.1.8/mode/cobol_highlight_rules.js +100 -0
  318. data/vendor/assets/ace-1.1.8/mode/coffee.js +135 -0
  319. data/vendor/assets/ace-1.1.8/mode/coffee/coffee-script.js +62 -0
  320. data/vendor/assets/ace-1.1.8/mode/coffee/helpers.js +271 -0
  321. data/vendor/assets/ace-1.1.8/mode/coffee/lexer.js +935 -0
  322. data/vendor/assets/ace-1.1.8/mode/coffee/nodes.js +3106 -0
  323. data/vendor/assets/ace-1.1.8/mode/coffee/parser.js +724 -0
  324. data/vendor/assets/ace-1.1.8/mode/coffee/parser_test.js +88 -0
  325. data/vendor/assets/ace-1.1.8/mode/coffee/rewriter.js +516 -0
  326. data/vendor/assets/ace-1.1.8/mode/coffee/scope.js +174 -0
  327. data/vendor/assets/ace-1.1.8/mode/coffee_highlight_rules.js +233 -0
  328. data/vendor/assets/ace-1.1.8/mode/coffee_worker.js +74 -0
  329. data/vendor/assets/ace-1.1.8/mode/coldfusion.js +61 -0
  330. data/vendor/assets/ace-1.1.8/mode/coldfusion_highlight_rules.js +49 -0
  331. data/vendor/assets/ace-1.1.8/mode/coldfusion_test.js +67 -0
  332. data/vendor/assets/ace-1.1.8/mode/csharp.js +61 -0
  333. data/vendor/assets/ace-1.1.8/mode/csharp_highlight_rules.js +93 -0
  334. data/vendor/assets/ace-1.1.8/mode/css.js +100 -0
  335. data/vendor/assets/ace-1.1.8/mode/css/csslint.js +9628 -0
  336. data/vendor/assets/ace-1.1.8/mode/css_highlight_rules.js +179 -0
  337. data/vendor/assets/ace-1.1.8/mode/css_test.js +78 -0
  338. data/vendor/assets/ace-1.1.8/mode/css_worker.js +100 -0
  339. data/vendor/assets/ace-1.1.8/mode/css_worker_test.js +68 -0
  340. data/vendor/assets/ace-1.1.8/mode/curly.js +63 -0
  341. data/vendor/assets/ace-1.1.8/mode/curly_highlight_rules.js +66 -0
  342. data/vendor/assets/ace-1.1.8/mode/d.js +56 -0
  343. data/vendor/assets/ace-1.1.8/mode/d_highlight_rules.js +334 -0
  344. data/vendor/assets/ace-1.1.8/mode/dart.js +62 -0
  345. data/vendor/assets/ace-1.1.8/mode/dart_highlight_rules.js +186 -0
  346. data/vendor/assets/ace-1.1.8/mode/diff.js +52 -0
  347. data/vendor/assets/ace-1.1.8/mode/diff_highlight_rules.js +108 -0
  348. data/vendor/assets/ace-1.1.8/mode/django.js +119 -0
  349. data/vendor/assets/ace-1.1.8/mode/doc_comment_highlight_rules.js +79 -0
  350. data/vendor/assets/ace-1.1.8/mode/dockerfile.js +52 -0
  351. data/vendor/assets/ace-1.1.8/mode/dockerfile_highlight_rules.js +57 -0
  352. data/vendor/assets/ace-1.1.8/mode/dot.js +55 -0
  353. data/vendor/assets/ace-1.1.8/mode/dot_highlight_rules.js +126 -0
  354. data/vendor/assets/ace-1.1.8/mode/eiffel.js +52 -0
  355. data/vendor/assets/ace-1.1.8/mode/eiffel_highlight_rules.js +143 -0
  356. data/vendor/assets/ace-1.1.8/mode/ejs.js +109 -0
  357. data/vendor/assets/ace-1.1.8/mode/elixir.js +58 -0
  358. data/vendor/assets/ace-1.1.8/mode/elixir_highlight_rules.js +433 -0
  359. data/vendor/assets/ace-1.1.8/mode/elm.js +58 -0
  360. data/vendor/assets/ace-1.1.8/mode/elm_highlight_rules.js +162 -0
  361. data/vendor/assets/ace-1.1.8/mode/erlang.js +57 -0
  362. data/vendor/assets/ace-1.1.8/mode/erlang_highlight_rules.js +876 -0
  363. data/vendor/assets/ace-1.1.8/mode/folding/asciidoc.js +142 -0
  364. data/vendor/assets/ace-1.1.8/mode/folding/c9search.js +83 -0
  365. data/vendor/assets/ace-1.1.8/mode/folding/coffee.js +120 -0
  366. data/vendor/assets/ace-1.1.8/mode/folding/coffee_test.js +101 -0
  367. data/vendor/assets/ace-1.1.8/mode/folding/csharp.js +138 -0
  368. data/vendor/assets/ace-1.1.8/mode/folding/cstyle.js +124 -0
  369. data/vendor/assets/ace-1.1.8/mode/folding/cstyle_test.js +109 -0
  370. data/vendor/assets/ace-1.1.8/mode/folding/diff.js +69 -0
  371. data/vendor/assets/ace-1.1.8/mode/folding/fold_mode.js +120 -0
  372. data/vendor/assets/ace-1.1.8/mode/folding/html.js +48 -0
  373. data/vendor/assets/ace-1.1.8/mode/folding/html_test.js +162 -0
  374. data/vendor/assets/ace-1.1.8/mode/folding/ini.js +80 -0
  375. data/vendor/assets/ace-1.1.8/mode/folding/latex.js +162 -0
  376. data/vendor/assets/ace-1.1.8/mode/folding/lua.js +163 -0
  377. data/vendor/assets/ace-1.1.8/mode/folding/markdown.js +125 -0
  378. data/vendor/assets/ace-1.1.8/mode/folding/mixed.js +83 -0
  379. data/vendor/assets/ace-1.1.8/mode/folding/pythonic.js +58 -0
  380. data/vendor/assets/ace-1.1.8/mode/folding/pythonic_test.js +98 -0
  381. data/vendor/assets/ace-1.1.8/mode/folding/velocity.js +120 -0
  382. data/vendor/assets/ace-1.1.8/mode/folding/xml.js +277 -0
  383. data/vendor/assets/ace-1.1.8/mode/folding/xml_test.js +110 -0
  384. data/vendor/assets/ace-1.1.8/mode/forth.js +58 -0
  385. data/vendor/assets/ace-1.1.8/mode/forth_highlight_rules.js +164 -0
  386. data/vendor/assets/ace-1.1.8/mode/ftl.js +49 -0
  387. data/vendor/assets/ace-1.1.8/mode/ftl_highlight_rules.js +195 -0
  388. data/vendor/assets/ace-1.1.8/mode/gcode.js +51 -0
  389. data/vendor/assets/ace-1.1.8/mode/gcode_highlight_rules.js +94 -0
  390. data/vendor/assets/ace-1.1.8/mode/gherkin.js +80 -0
  391. data/vendor/assets/ace-1.1.8/mode/gherkin_highlight_rules.js +113 -0
  392. data/vendor/assets/ace-1.1.8/mode/gitignore.js +20 -0
  393. data/vendor/assets/ace-1.1.8/mode/gitignore_highlight_rules.js +31 -0
  394. data/vendor/assets/ace-1.1.8/mode/glsl.js +56 -0
  395. data/vendor/assets/ace-1.1.8/mode/glsl_highlight_rules.js +81 -0
  396. data/vendor/assets/ace-1.1.8/mode/golang.js +55 -0
  397. data/vendor/assets/ace-1.1.8/mode/golang_highlight_rules.js +108 -0
  398. data/vendor/assets/ace-1.1.8/mode/groovy.js +24 -0
  399. data/vendor/assets/ace-1.1.8/mode/groovy_highlight_rules.js +173 -0
  400. data/vendor/assets/ace-1.1.8/mode/haml.js +61 -0
  401. data/vendor/assets/ace-1.1.8/mode/haml_highlight_rules.js +132 -0
  402. data/vendor/assets/ace-1.1.8/mode/handlebars.js +29 -0
  403. data/vendor/assets/ace-1.1.8/mode/handlebars_highlight_rules.js +72 -0
  404. data/vendor/assets/ace-1.1.8/mode/haskell.js +62 -0
  405. data/vendor/assets/ace-1.1.8/mode/haskell_highlight_rules.js +246 -0
  406. data/vendor/assets/ace-1.1.8/mode/haxe.js +56 -0
  407. data/vendor/assets/ace-1.1.8/mode/haxe_highlight_rules.js +98 -0
  408. data/vendor/assets/ace-1.1.8/mode/html.js +106 -0
  409. data/vendor/assets/ace-1.1.8/mode/html/saxparser.js +10430 -0
  410. data/vendor/assets/ace-1.1.8/mode/html_completions.js +305 -0
  411. data/vendor/assets/ace-1.1.8/mode/html_highlight_rules.js +111 -0
  412. data/vendor/assets/ace-1.1.8/mode/html_ruby.js +59 -0
  413. data/vendor/assets/ace-1.1.8/mode/html_ruby_highlight_rules.js +84 -0
  414. data/vendor/assets/ace-1.1.8/mode/html_test.js +67 -0
  415. data/vendor/assets/ace-1.1.8/mode/html_worker.js +92 -0
  416. data/vendor/assets/ace-1.1.8/mode/ini.js +53 -0
  417. data/vendor/assets/ace-1.1.8/mode/ini_highlight_rules.js +112 -0
  418. data/vendor/assets/ace-1.1.8/mode/io.js +58 -0
  419. data/vendor/assets/ace-1.1.8/mode/io_highlight_rules.js +120 -0
  420. data/vendor/assets/ace-1.1.8/mode/jack.js +79 -0
  421. data/vendor/assets/ace-1.1.8/mode/jack_highlight_rules.js +142 -0
  422. data/vendor/assets/ace-1.1.8/mode/jade.js +57 -0
  423. data/vendor/assets/ace-1.1.8/mode/jade_highlight_rules.js +341 -0
  424. data/vendor/assets/ace-1.1.8/mode/java.js +24 -0
  425. data/vendor/assets/ace-1.1.8/mode/java_highlight_rules.js +128 -0
  426. data/vendor/assets/ace-1.1.8/mode/javascript.js +116 -0
  427. data/vendor/assets/ace-1.1.8/mode/javascript/jshint.js +9459 -0
  428. data/vendor/assets/ace-1.1.8/mode/javascript_highlight_rules.js +405 -0
  429. data/vendor/assets/ace-1.1.8/mode/javascript_test.js +213 -0
  430. data/vendor/assets/ace-1.1.8/mode/javascript_worker.js +187 -0
  431. data/vendor/assets/ace-1.1.8/mode/javascript_worker_test.js +106 -0
  432. data/vendor/assets/ace-1.1.8/mode/js_regex_highlight_rules.js +94 -0
  433. data/vendor/assets/ace-1.1.8/mode/json.js +93 -0
  434. data/vendor/assets/ace-1.1.8/mode/json/json_parse.js +346 -0
  435. data/vendor/assets/ace-1.1.8/mode/json_highlight_rules.js +100 -0
  436. data/vendor/assets/ace-1.1.8/mode/json_worker.js +68 -0
  437. data/vendor/assets/ace-1.1.8/mode/json_worker_test.js +101 -0
  438. data/vendor/assets/ace-1.1.8/mode/jsoniq.js +203 -0
  439. data/vendor/assets/ace-1.1.8/mode/jsp.js +55 -0
  440. data/vendor/assets/ace-1.1.8/mode/jsp_highlight_rules.js +91 -0
  441. data/vendor/assets/ace-1.1.8/mode/jsx.js +56 -0
  442. data/vendor/assets/ace-1.1.8/mode/jsx_highlight_rules.js +120 -0
  443. data/vendor/assets/ace-1.1.8/mode/julia.js +62 -0
  444. data/vendor/assets/ace-1.1.8/mode/julia_highlight_rules.js +170 -0
  445. data/vendor/assets/ace-1.1.8/mode/latex.js +26 -0
  446. data/vendor/assets/ace-1.1.8/mode/latex_highlight_rules.js +73 -0
  447. data/vendor/assets/ace-1.1.8/mode/less.js +84 -0
  448. data/vendor/assets/ace-1.1.8/mode/less_highlight_rules.js +271 -0
  449. data/vendor/assets/ace-1.1.8/mode/liquid.js +82 -0
  450. data/vendor/assets/ace-1.1.8/mode/liquid_highlight_rules.js +131 -0
  451. data/vendor/assets/ace-1.1.8/mode/lisp.js +56 -0
  452. data/vendor/assets/ace-1.1.8/mode/lisp_highlight_rules.js +124 -0
  453. data/vendor/assets/ace-1.1.8/mode/livescript.js +249 -0
  454. data/vendor/assets/ace-1.1.8/mode/logiql.js +139 -0
  455. data/vendor/assets/ace-1.1.8/mode/logiql_highlight_rules.js +119 -0
  456. data/vendor/assets/ace-1.1.8/mode/logiql_test.js +98 -0
  457. data/vendor/assets/ace-1.1.8/mode/lsl.js +92 -0
  458. data/vendor/assets/ace-1.1.8/mode/lsl_highlight_rules.js +123 -0
  459. data/vendor/assets/ace-1.1.8/mode/lua.js +168 -0
  460. data/vendor/assets/ace-1.1.8/mode/lua/luaparse.js +1989 -0
  461. data/vendor/assets/ace-1.1.8/mode/lua_highlight_rules.js +193 -0
  462. data/vendor/assets/ace-1.1.8/mode/lua_worker.js +71 -0
  463. data/vendor/assets/ace-1.1.8/mode/luapage.js +24 -0
  464. data/vendor/assets/ace-1.1.8/mode/luapage_highlight_rules.js +49 -0
  465. data/vendor/assets/ace-1.1.8/mode/lucene.js +19 -0
  466. data/vendor/assets/ace-1.1.8/mode/lucene_highlight_rules.js +49 -0
  467. data/vendor/assets/ace-1.1.8/mode/makefile.js +58 -0
  468. data/vendor/assets/ace-1.1.8/mode/makefile_highlight_rules.js +75 -0
  469. data/vendor/assets/ace-1.1.8/mode/markdown.js +76 -0
  470. data/vendor/assets/ace-1.1.8/mode/markdown_highlight_rules.js +228 -0
  471. data/vendor/assets/ace-1.1.8/mode/matching_brace_outdent.js +69 -0
  472. data/vendor/assets/ace-1.1.8/mode/matching_parens_outdent.js +74 -0
  473. data/vendor/assets/ace-1.1.8/mode/matlab.js +55 -0
  474. data/vendor/assets/ace-1.1.8/mode/matlab_highlight_rules.js +262 -0
  475. data/vendor/assets/ace-1.1.8/mode/mel.js +56 -0
  476. data/vendor/assets/ace-1.1.8/mode/mel_highlight_rules.js +133 -0
  477. data/vendor/assets/ace-1.1.8/mode/mushcode.js +116 -0
  478. data/vendor/assets/ace-1.1.8/mode/mushcode_highlight_rules.js +569 -0
  479. data/vendor/assets/ace-1.1.8/mode/mysql.js +51 -0
  480. data/vendor/assets/ace-1.1.8/mode/mysql_highlight_rules.js +122 -0
  481. data/vendor/assets/ace-1.1.8/mode/nix.js +62 -0
  482. data/vendor/assets/ace-1.1.8/mode/nix_highlight_rules.js +119 -0
  483. data/vendor/assets/ace-1.1.8/mode/objectivec.js +61 -0
  484. data/vendor/assets/ace-1.1.8/mode/objectivec_highlight_rules.js +331 -0
  485. data/vendor/assets/ace-1.1.8/mode/ocaml.js +97 -0
  486. data/vendor/assets/ace-1.1.8/mode/ocaml_highlight_rules.js +337 -0
  487. data/vendor/assets/ace-1.1.8/mode/pascal.js +67 -0
  488. data/vendor/assets/ace-1.1.8/mode/pascal_highlight_rules.js +127 -0
  489. data/vendor/assets/ace-1.1.8/mode/perl.js +90 -0
  490. data/vendor/assets/ace-1.1.8/mode/perl_highlight_rules.js +165 -0
  491. data/vendor/assets/ace-1.1.8/mode/pgsql.js +59 -0
  492. data/vendor/assets/ace-1.1.8/mode/pgsql_highlight_rules.js +619 -0
  493. data/vendor/assets/ace-1.1.8/mode/php.js +158 -0
  494. data/vendor/assets/ace-1.1.8/mode/php/php.js +5031 -0
  495. data/vendor/assets/ace-1.1.8/mode/php_highlight_rules.js +1085 -0
  496. data/vendor/assets/ace-1.1.8/mode/php_test.js +65 -0
  497. data/vendor/assets/ace-1.1.8/mode/php_worker.js +81 -0
  498. data/vendor/assets/ace-1.1.8/mode/plain_text.js +55 -0
  499. data/vendor/assets/ace-1.1.8/mode/plain_text_test.js +56 -0
  500. data/vendor/assets/ace-1.1.8/mode/powershell.js +61 -0
  501. data/vendor/assets/ace-1.1.8/mode/powershell_highlight_rules.js +145 -0
  502. data/vendor/assets/ace-1.1.8/mode/praat.js +84 -0
  503. data/vendor/assets/ace-1.1.8/mode/praat_highlight_rules.js +262 -0
  504. data/vendor/assets/ace-1.1.8/mode/prolog.js +62 -0
  505. data/vendor/assets/ace-1.1.8/mode/prolog_highlight_rules.js +238 -0
  506. data/vendor/assets/ace-1.1.8/mode/properties.js +48 -0
  507. data/vendor/assets/ace-1.1.8/mode/properties_highlight_rules.js +86 -0
  508. data/vendor/assets/ace-1.1.8/mode/protobuf.js +63 -0
  509. data/vendor/assets/ace-1.1.8/mode/protobuf_highlight_rules.js +66 -0
  510. data/vendor/assets/ace-1.1.8/mode/python.js +113 -0
  511. data/vendor/assets/ace-1.1.8/mode/python_highlight_rules.js +191 -0
  512. data/vendor/assets/ace-1.1.8/mode/python_test.js +79 -0
  513. data/vendor/assets/ace-1.1.8/mode/r.js +154 -0
  514. data/vendor/assets/ace-1.1.8/mode/r_highlight_rules.js +208 -0
  515. data/vendor/assets/ace-1.1.8/mode/rdoc.js +61 -0
  516. data/vendor/assets/ace-1.1.8/mode/rdoc_highlight_rules.js +119 -0
  517. data/vendor/assets/ace-1.1.8/mode/rhtml.js +87 -0
  518. data/vendor/assets/ace-1.1.8/mode/rhtml_highlight_rules.js +66 -0
  519. data/vendor/assets/ace-1.1.8/mode/ruby.js +100 -0
  520. data/vendor/assets/ace-1.1.8/mode/ruby_highlight_rules.js +323 -0
  521. data/vendor/assets/ace-1.1.8/mode/ruby_test.js +77 -0
  522. data/vendor/assets/ace-1.1.8/mode/rust.js +58 -0
  523. data/vendor/assets/ace-1.1.8/mode/rust_highlight_rules.js +158 -0
  524. data/vendor/assets/ace-1.1.8/mode/sass.js +52 -0
  525. data/vendor/assets/ace-1.1.8/mode/sass_highlight_rules.js +79 -0
  526. data/vendor/assets/ace-1.1.8/mode/scad.js +99 -0
  527. data/vendor/assets/ace-1.1.8/mode/scad_highlight_rules.js +142 -0
  528. data/vendor/assets/ace-1.1.8/mode/scala.js +25 -0
  529. data/vendor/assets/ace-1.1.8/mode/scala_highlight_rules.js +160 -0
  530. data/vendor/assets/ace-1.1.8/mode/scheme.js +56 -0
  531. data/vendor/assets/ace-1.1.8/mode/scheme_highlight_rules.js +123 -0
  532. data/vendor/assets/ace-1.1.8/mode/scss.js +84 -0
  533. data/vendor/assets/ace-1.1.8/mode/scss_highlight_rules.js +296 -0
  534. data/vendor/assets/ace-1.1.8/mode/sh.js +116 -0
  535. data/vendor/assets/ace-1.1.8/mode/sh_highlight_rules.js +203 -0
  536. data/vendor/assets/ace-1.1.8/mode/sjs.js +56 -0
  537. data/vendor/assets/ace-1.1.8/mode/sjs_highlight_rules.js +233 -0
  538. data/vendor/assets/ace-1.1.8/mode/smarty.js +51 -0
  539. data/vendor/assets/ace-1.1.8/mode/smarty_highlight_rules.js +139 -0
  540. data/vendor/assets/ace-1.1.8/mode/snippets.js +113 -0
  541. data/vendor/assets/ace-1.1.8/mode/soy_template.js +60 -0
  542. data/vendor/assets/ace-1.1.8/mode/soy_template_highlight_rules.js +356 -0
  543. data/vendor/assets/ace-1.1.8/mode/space.js +21 -0
  544. data/vendor/assets/ace-1.1.8/mode/space_highlight_rules.js +56 -0
  545. data/vendor/assets/ace-1.1.8/mode/sql.js +53 -0
  546. data/vendor/assets/ace-1.1.8/mode/sql_highlight_rules.js +99 -0
  547. data/vendor/assets/ace-1.1.8/mode/stylus.js +62 -0
  548. data/vendor/assets/ace-1.1.8/mode/stylus_highlight_rules.js +165 -0
  549. data/vendor/assets/ace-1.1.8/mode/svg.js +69 -0
  550. data/vendor/assets/ace-1.1.8/mode/svg_highlight_rules.js +49 -0
  551. data/vendor/assets/ace-1.1.8/mode/tcl.js +84 -0
  552. data/vendor/assets/ace-1.1.8/mode/tcl_highlight_rules.js +172 -0
  553. data/vendor/assets/ace-1.1.8/mode/tex.js +68 -0
  554. data/vendor/assets/ace-1.1.8/mode/tex_highlight_rules.js +127 -0
  555. data/vendor/assets/ace-1.1.8/mode/text.js +386 -0
  556. data/vendor/assets/ace-1.1.8/mode/text_highlight_rules.js +234 -0
  557. data/vendor/assets/ace-1.1.8/mode/text_test.js +64 -0
  558. data/vendor/assets/ace-1.1.8/mode/textile.js +67 -0
  559. data/vendor/assets/ace-1.1.8/mode/textile_highlight_rules.js +93 -0
  560. data/vendor/assets/ace-1.1.8/mode/toml.js +56 -0
  561. data/vendor/assets/ace-1.1.8/mode/toml_highlight_rules.js +103 -0
  562. data/vendor/assets/ace-1.1.8/mode/twig.js +81 -0
  563. data/vendor/assets/ace-1.1.8/mode/twig_highlight_rules.js +166 -0
  564. data/vendor/assets/ace-1.1.8/mode/typescript.js +62 -0
  565. data/vendor/assets/ace-1.1.8/mode/typescript_highlight_rules.js +98 -0
  566. data/vendor/assets/ace-1.1.8/mode/vala.js +105 -0
  567. data/vendor/assets/ace-1.1.8/mode/vala_highlight_rules.js +457 -0
  568. data/vendor/assets/ace-1.1.8/mode/vbscript.js +60 -0
  569. data/vendor/assets/ace-1.1.8/mode/vbscript_highlight_rules.js +246 -0
  570. data/vendor/assets/ace-1.1.8/mode/velocity.js +58 -0
  571. data/vendor/assets/ace-1.1.8/mode/velocity_highlight_rules.js +177 -0
  572. data/vendor/assets/ace-1.1.8/mode/verilog.js +54 -0
  573. data/vendor/assets/ace-1.1.8/mode/verilog_highlight_rules.js +101 -0
  574. data/vendor/assets/ace-1.1.8/mode/vhdl.js +52 -0
  575. data/vendor/assets/ace-1.1.8/mode/vhdl_highlight_rules.js +115 -0
  576. data/vendor/assets/ace-1.1.8/mode/xml.js +59 -0
  577. data/vendor/assets/ace-1.1.8/mode/xml_highlight_rules.js +242 -0
  578. data/vendor/assets/ace-1.1.8/mode/xml_test.js +75 -0
  579. data/vendor/assets/ace-1.1.8/mode/xquery.js +216 -0
  580. data/vendor/assets/ace-1.1.8/mode/xquery/Readme.md +1 -0
  581. data/vendor/assets/ace-1.1.8/mode/xquery/jsoniq_lexer.js +4453 -0
  582. data/vendor/assets/ace-1.1.8/mode/xquery/modules.js +4 -0
  583. data/vendor/assets/ace-1.1.8/mode/xquery/xqlint.js +78912 -0
  584. data/vendor/assets/ace-1.1.8/mode/xquery/xquery_lexer.js +4422 -0
  585. data/vendor/assets/ace-1.1.8/mode/xquery_worker.js +115 -0
  586. data/vendor/assets/ace-1.1.8/mode/yaml.js +78 -0
  587. data/vendor/assets/ace-1.1.8/mode/yaml_highlight_rules.js +113 -0
  588. data/vendor/assets/ace-1.1.8/model/editor.js +62 -0
  589. data/vendor/assets/ace-1.1.8/mouse/default_gutter_handler.js +181 -0
  590. data/vendor/assets/ace-1.1.8/mouse/default_handlers.js +278 -0
  591. data/vendor/assets/ace-1.1.8/mouse/dragdrop_handler.js +428 -0
  592. data/vendor/assets/ace-1.1.8/mouse/fold_handler.js +93 -0
  593. data/vendor/assets/ace-1.1.8/mouse/mouse_event.js +129 -0
  594. data/vendor/assets/ace-1.1.8/mouse/mouse_handler.js +203 -0
  595. data/vendor/assets/ace-1.1.8/mouse/mouse_handler_test.js +77 -0
  596. data/vendor/assets/ace-1.1.8/mouse/multi_select_handler.js +208 -0
  597. data/vendor/assets/ace-1.1.8/multi_select.js +996 -0
  598. data/vendor/assets/ace-1.1.8/multi_select_test.js +199 -0
  599. data/vendor/assets/ace-1.1.8/occur.js +193 -0
  600. data/vendor/assets/ace-1.1.8/occur_test.js +154 -0
  601. data/vendor/assets/ace-1.1.8/placeholder.js +274 -0
  602. data/vendor/assets/ace-1.1.8/placeholder_test.js +156 -0
  603. data/vendor/assets/ace-1.1.8/range.js +549 -0
  604. data/vendor/assets/ace-1.1.8/range_list.js +240 -0
  605. data/vendor/assets/ace-1.1.8/range_list_test.js +182 -0
  606. data/vendor/assets/ace-1.1.8/range_test.js +191 -0
  607. data/vendor/assets/ace-1.1.8/renderloop.js +75 -0
  608. data/vendor/assets/ace-1.1.8/requirejs/text.js +52 -0
  609. data/vendor/assets/ace-1.1.8/requirejs/text_build.js +60 -0
  610. data/vendor/assets/ace-1.1.8/scrollbar.js +270 -0
  611. data/vendor/assets/ace-1.1.8/search.js +396 -0
  612. data/vendor/assets/ace-1.1.8/search_highlight.js +82 -0
  613. data/vendor/assets/ace-1.1.8/search_test.js +461 -0
  614. data/vendor/assets/ace-1.1.8/selection.js +955 -0
  615. data/vendor/assets/ace-1.1.8/selection_test.js +480 -0
  616. data/vendor/assets/ace-1.1.8/snippets.js +949 -0
  617. data/vendor/assets/ace-1.1.8/snippets/_.snippets +240 -0
  618. data/vendor/assets/ace-1.1.8/snippets/_all_modes.js +7 -0
  619. data/vendor/assets/ace-1.1.8/snippets/_all_modes.snippets +0 -0
  620. data/vendor/assets/ace-1.1.8/snippets/abap.js +7 -0
  621. data/vendor/assets/ace-1.1.8/snippets/abap.snippets +0 -0
  622. data/vendor/assets/ace-1.1.8/snippets/actionscript.js +7 -0
  623. data/vendor/assets/ace-1.1.8/snippets/actionscript.snippets +157 -0
  624. data/vendor/assets/ace-1.1.8/snippets/ada.js +7 -0
  625. data/vendor/assets/ace-1.1.8/snippets/ada.snippets +0 -0
  626. data/vendor/assets/ace-1.1.8/snippets/all_modes.js +7 -0
  627. data/vendor/assets/ace-1.1.8/snippets/all_modes.snippets +0 -0
  628. data/vendor/assets/ace-1.1.8/snippets/apache.snippets +35 -0
  629. data/vendor/assets/ace-1.1.8/snippets/apache_conf.js +7 -0
  630. data/vendor/assets/ace-1.1.8/snippets/apache_conf.snippets +0 -0
  631. data/vendor/assets/ace-1.1.8/snippets/applescript.js +7 -0
  632. data/vendor/assets/ace-1.1.8/snippets/applescript.snippets +0 -0
  633. data/vendor/assets/ace-1.1.8/snippets/asciidoc.js +7 -0
  634. data/vendor/assets/ace-1.1.8/snippets/asciidoc.snippets +0 -0
  635. data/vendor/assets/ace-1.1.8/snippets/assembly_x86.js +7 -0
  636. data/vendor/assets/ace-1.1.8/snippets/assembly_x86.snippets +0 -0
  637. data/vendor/assets/ace-1.1.8/snippets/autohotkey.js +7 -0
  638. data/vendor/assets/ace-1.1.8/snippets/autohotkey.snippets +0 -0
  639. data/vendor/assets/ace-1.1.8/snippets/autoit.snippets +66 -0
  640. data/vendor/assets/ace-1.1.8/snippets/batchfile.js +7 -0
  641. data/vendor/assets/ace-1.1.8/snippets/batchfile.snippets +0 -0
  642. data/vendor/assets/ace-1.1.8/snippets/c.snippets +235 -0
  643. data/vendor/assets/ace-1.1.8/snippets/c9search.js +7 -0
  644. data/vendor/assets/ace-1.1.8/snippets/c9search.snippets +0 -0
  645. data/vendor/assets/ace-1.1.8/snippets/c_cpp.js +7 -0
  646. data/vendor/assets/ace-1.1.8/snippets/c_cpp.snippets +131 -0
  647. data/vendor/assets/ace-1.1.8/snippets/chef.snippets +204 -0
  648. data/vendor/assets/ace-1.1.8/snippets/cirru.js +7 -0
  649. data/vendor/assets/ace-1.1.8/snippets/cirru.snippets +0 -0
  650. data/vendor/assets/ace-1.1.8/snippets/clojure.js +7 -0
  651. data/vendor/assets/ace-1.1.8/snippets/clojure.snippets +90 -0
  652. data/vendor/assets/ace-1.1.8/snippets/cmake.snippets +58 -0
  653. data/vendor/assets/ace-1.1.8/snippets/cobol.js +7 -0
  654. data/vendor/assets/ace-1.1.8/snippets/cobol.snippets +0 -0
  655. data/vendor/assets/ace-1.1.8/snippets/coffee.js +7 -0
  656. data/vendor/assets/ace-1.1.8/snippets/coffee.snippets +95 -0
  657. data/vendor/assets/ace-1.1.8/snippets/coldfusion.js +7 -0
  658. data/vendor/assets/ace-1.1.8/snippets/coldfusion.snippets +0 -0
  659. data/vendor/assets/ace-1.1.8/snippets/cs.snippets +374 -0
  660. data/vendor/assets/ace-1.1.8/snippets/csharp.js +7 -0
  661. data/vendor/assets/ace-1.1.8/snippets/csharp.snippets +0 -0
  662. data/vendor/assets/ace-1.1.8/snippets/css.js +7 -0
  663. data/vendor/assets/ace-1.1.8/snippets/css.snippets +967 -0
  664. data/vendor/assets/ace-1.1.8/snippets/curly.js +7 -0
  665. data/vendor/assets/ace-1.1.8/snippets/curly.snippets +0 -0
  666. data/vendor/assets/ace-1.1.8/snippets/d.js +7 -0
  667. data/vendor/assets/ace-1.1.8/snippets/d.snippets +0 -0
  668. data/vendor/assets/ace-1.1.8/snippets/dart.js +7 -0
  669. data/vendor/assets/ace-1.1.8/snippets/dart.snippets +83 -0
  670. data/vendor/assets/ace-1.1.8/snippets/diff.js +7 -0
  671. data/vendor/assets/ace-1.1.8/snippets/diff.snippets +11 -0
  672. data/vendor/assets/ace-1.1.8/snippets/django.js +7 -0
  673. data/vendor/assets/ace-1.1.8/snippets/django.snippets +108 -0
  674. data/vendor/assets/ace-1.1.8/snippets/dockerfile.js +7 -0
  675. data/vendor/assets/ace-1.1.8/snippets/dockerfile.snippets +0 -0
  676. data/vendor/assets/ace-1.1.8/snippets/dot.js +7 -0
  677. data/vendor/assets/ace-1.1.8/snippets/dot.snippets +0 -0
  678. data/vendor/assets/ace-1.1.8/snippets/dummy.js +7 -0
  679. data/vendor/assets/ace-1.1.8/snippets/dummy_syntax.js +7 -0
  680. data/vendor/assets/ace-1.1.8/snippets/eiffel.js +7 -0
  681. data/vendor/assets/ace-1.1.8/snippets/eiffel.snippets +0 -0
  682. data/vendor/assets/ace-1.1.8/snippets/ejs.js +7 -0
  683. data/vendor/assets/ace-1.1.8/snippets/ejs.snippets +0 -0
  684. data/vendor/assets/ace-1.1.8/snippets/elixir.js +7 -0
  685. data/vendor/assets/ace-1.1.8/snippets/elixir.snippets +0 -0
  686. data/vendor/assets/ace-1.1.8/snippets/elm.js +7 -0
  687. data/vendor/assets/ace-1.1.8/snippets/elm.snippets +0 -0
  688. data/vendor/assets/ace-1.1.8/snippets/erlang.js +7 -0
  689. data/vendor/assets/ace-1.1.8/snippets/erlang.snippets +160 -0
  690. data/vendor/assets/ace-1.1.8/snippets/eruby.snippets +113 -0
  691. data/vendor/assets/ace-1.1.8/snippets/falcon.snippets +71 -0
  692. data/vendor/assets/ace-1.1.8/snippets/forth.js +7 -0
  693. data/vendor/assets/ace-1.1.8/snippets/forth.snippets +0 -0
  694. data/vendor/assets/ace-1.1.8/snippets/ftl.js +7 -0
  695. data/vendor/assets/ace-1.1.8/snippets/ftl.snippets +0 -0
  696. data/vendor/assets/ace-1.1.8/snippets/gcode.js +7 -0
  697. data/vendor/assets/ace-1.1.8/snippets/gcode.snippets +0 -0
  698. data/vendor/assets/ace-1.1.8/snippets/gherkin.js +7 -0
  699. data/vendor/assets/ace-1.1.8/snippets/gherkin.snippets +0 -0
  700. data/vendor/assets/ace-1.1.8/snippets/gitignore.js +7 -0
  701. data/vendor/assets/ace-1.1.8/snippets/gitignore.snippets +0 -0
  702. data/vendor/assets/ace-1.1.8/snippets/glsl.js +7 -0
  703. data/vendor/assets/ace-1.1.8/snippets/glsl.snippets +0 -0
  704. data/vendor/assets/ace-1.1.8/snippets/go.snippets +201 -0
  705. data/vendor/assets/ace-1.1.8/snippets/golang.js +7 -0
  706. data/vendor/assets/ace-1.1.8/snippets/golang.snippets +0 -0
  707. data/vendor/assets/ace-1.1.8/snippets/groovy.js +7 -0
  708. data/vendor/assets/ace-1.1.8/snippets/groovy.snippets +0 -0
  709. data/vendor/assets/ace-1.1.8/snippets/haml.js +7 -0
  710. data/vendor/assets/ace-1.1.8/snippets/haml.snippets +20 -0
  711. data/vendor/assets/ace-1.1.8/snippets/handlebars.js +7 -0
  712. data/vendor/assets/ace-1.1.8/snippets/handlebars.snippets +0 -0
  713. data/vendor/assets/ace-1.1.8/snippets/haskell.js +7 -0
  714. data/vendor/assets/ace-1.1.8/snippets/haskell.snippets +82 -0
  715. data/vendor/assets/ace-1.1.8/snippets/haxe.js +7 -0
  716. data/vendor/assets/ace-1.1.8/snippets/haxe.snippets +0 -0
  717. data/vendor/assets/ace-1.1.8/snippets/html.js +7 -0
  718. data/vendor/assets/ace-1.1.8/snippets/html.snippets +828 -0
  719. data/vendor/assets/ace-1.1.8/snippets/html_ruby.js +7 -0
  720. data/vendor/assets/ace-1.1.8/snippets/html_ruby.snippets +0 -0
  721. data/vendor/assets/ace-1.1.8/snippets/htmldjango.snippets +136 -0
  722. data/vendor/assets/ace-1.1.8/snippets/htmltornado.snippets +55 -0
  723. data/vendor/assets/ace-1.1.8/snippets/ini.js +7 -0
  724. data/vendor/assets/ace-1.1.8/snippets/ini.snippets +0 -0
  725. data/vendor/assets/ace-1.1.8/snippets/io.js +69 -0
  726. data/vendor/assets/ace-1.1.8/snippets/io.snippets +0 -0
  727. data/vendor/assets/ace-1.1.8/snippets/jack.js +7 -0
  728. data/vendor/assets/ace-1.1.8/snippets/jack.snippets +0 -0
  729. data/vendor/assets/ace-1.1.8/snippets/jade.js +7 -0
  730. data/vendor/assets/ace-1.1.8/snippets/jade.snippets +0 -0
  731. data/vendor/assets/ace-1.1.8/snippets/java.js +7 -0
  732. data/vendor/assets/ace-1.1.8/snippets/java.snippets +240 -0
  733. data/vendor/assets/ace-1.1.8/snippets/javascript-jquery.snippets +589 -0
  734. data/vendor/assets/ace-1.1.8/snippets/javascript.js +7 -0
  735. data/vendor/assets/ace-1.1.8/snippets/javascript.snippets +195 -0
  736. data/vendor/assets/ace-1.1.8/snippets/json.js +7 -0
  737. data/vendor/assets/ace-1.1.8/snippets/json.snippets +0 -0
  738. data/vendor/assets/ace-1.1.8/snippets/jsoniq.js +7 -0
  739. data/vendor/assets/ace-1.1.8/snippets/jsoniq.snippets +61 -0
  740. data/vendor/assets/ace-1.1.8/snippets/jsp.js +7 -0
  741. data/vendor/assets/ace-1.1.8/snippets/jsp.snippets +99 -0
  742. data/vendor/assets/ace-1.1.8/snippets/jsx.js +7 -0
  743. data/vendor/assets/ace-1.1.8/snippets/jsx.snippets +0 -0
  744. data/vendor/assets/ace-1.1.8/snippets/julia.js +7 -0
  745. data/vendor/assets/ace-1.1.8/snippets/julia.snippets +0 -0
  746. data/vendor/assets/ace-1.1.8/snippets/latex.js +7 -0
  747. data/vendor/assets/ace-1.1.8/snippets/latex.snippets +0 -0
  748. data/vendor/assets/ace-1.1.8/snippets/ledger.snippets +5 -0
  749. data/vendor/assets/ace-1.1.8/snippets/less.js +7 -0
  750. data/vendor/assets/ace-1.1.8/snippets/less.snippets +0 -0
  751. data/vendor/assets/ace-1.1.8/snippets/liquid.js +7 -0
  752. data/vendor/assets/ace-1.1.8/snippets/liquid.snippets +0 -0
  753. data/vendor/assets/ace-1.1.8/snippets/lisp.js +7 -0
  754. data/vendor/assets/ace-1.1.8/snippets/lisp.snippets +0 -0
  755. data/vendor/assets/ace-1.1.8/snippets/livescript.js +7 -0
  756. data/vendor/assets/ace-1.1.8/snippets/livescript.snippets +0 -0
  757. data/vendor/assets/ace-1.1.8/snippets/logiql.js +7 -0
  758. data/vendor/assets/ace-1.1.8/snippets/logiql.snippets +0 -0
  759. data/vendor/assets/ace-1.1.8/snippets/lsl.js +7 -0
  760. data/vendor/assets/ace-1.1.8/snippets/lsl.snippets +1066 -0
  761. data/vendor/assets/ace-1.1.8/snippets/lua.js +7 -0
  762. data/vendor/assets/ace-1.1.8/snippets/lua.snippets +21 -0
  763. data/vendor/assets/ace-1.1.8/snippets/luapage.js +7 -0
  764. data/vendor/assets/ace-1.1.8/snippets/luapage.snippets +0 -0
  765. data/vendor/assets/ace-1.1.8/snippets/lucene.js +7 -0
  766. data/vendor/assets/ace-1.1.8/snippets/lucene.snippets +0 -0
  767. data/vendor/assets/ace-1.1.8/snippets/makefile.js +7 -0
  768. data/vendor/assets/ace-1.1.8/snippets/makefile.snippets +4 -0
  769. data/vendor/assets/ace-1.1.8/snippets/mako.snippets +54 -0
  770. data/vendor/assets/ace-1.1.8/snippets/markdown.js +7 -0
  771. data/vendor/assets/ace-1.1.8/snippets/markdown.snippets +88 -0
  772. data/vendor/assets/ace-1.1.8/snippets/matlab.js +7 -0
  773. data/vendor/assets/ace-1.1.8/snippets/matlab.snippets +0 -0
  774. data/vendor/assets/ace-1.1.8/snippets/mel.js +7 -0
  775. data/vendor/assets/ace-1.1.8/snippets/mel.snippets +0 -0
  776. data/vendor/assets/ace-1.1.8/snippets/mushcode.js +7 -0
  777. data/vendor/assets/ace-1.1.8/snippets/mushcode.snippets +0 -0
  778. data/vendor/assets/ace-1.1.8/snippets/mushcode_high_rules.js +7 -0
  779. data/vendor/assets/ace-1.1.8/snippets/mushcode_high_rules.snippets +0 -0
  780. data/vendor/assets/ace-1.1.8/snippets/mysql.js +7 -0
  781. data/vendor/assets/ace-1.1.8/snippets/mysql.snippets +0 -0
  782. data/vendor/assets/ace-1.1.8/snippets/nix.js +7 -0
  783. data/vendor/assets/ace-1.1.8/snippets/nix.snippets +0 -0
  784. data/vendor/assets/ace-1.1.8/snippets/objc.snippets +247 -0
  785. data/vendor/assets/ace-1.1.8/snippets/objectivec.js +7 -0
  786. data/vendor/assets/ace-1.1.8/snippets/objectivec.snippets +0 -0
  787. data/vendor/assets/ace-1.1.8/snippets/ocaml.js +7 -0
  788. data/vendor/assets/ace-1.1.8/snippets/ocaml.snippets +0 -0
  789. data/vendor/assets/ace-1.1.8/snippets/pascal.js +7 -0
  790. data/vendor/assets/ace-1.1.8/snippets/pascal.snippets +0 -0
  791. data/vendor/assets/ace-1.1.8/snippets/perl.js +7 -0
  792. data/vendor/assets/ace-1.1.8/snippets/perl.snippets +347 -0
  793. data/vendor/assets/ace-1.1.8/snippets/pgsql.js +7 -0
  794. data/vendor/assets/ace-1.1.8/snippets/pgsql.snippets +0 -0
  795. data/vendor/assets/ace-1.1.8/snippets/php.js +7 -0
  796. data/vendor/assets/ace-1.1.8/snippets/php.snippets +377 -0
  797. data/vendor/assets/ace-1.1.8/snippets/plain_text.js +7 -0
  798. data/vendor/assets/ace-1.1.8/snippets/plain_text.snippets +0 -0
  799. data/vendor/assets/ace-1.1.8/snippets/powershell.js +7 -0
  800. data/vendor/assets/ace-1.1.8/snippets/powershell.snippets +0 -0
  801. data/vendor/assets/ace-1.1.8/snippets/praat.js +7 -0
  802. data/vendor/assets/ace-1.1.8/snippets/praat.snippets +0 -0
  803. data/vendor/assets/ace-1.1.8/snippets/prolog.js +7 -0
  804. data/vendor/assets/ace-1.1.8/snippets/prolog.snippets +0 -0
  805. data/vendor/assets/ace-1.1.8/snippets/properties.js +7 -0
  806. data/vendor/assets/ace-1.1.8/snippets/properties.snippets +0 -0
  807. data/vendor/assets/ace-1.1.8/snippets/protobuf.js +7 -0
  808. data/vendor/assets/ace-1.1.8/snippets/protobuf.snippets +0 -0
  809. data/vendor/assets/ace-1.1.8/snippets/python.js +7 -0
  810. data/vendor/assets/ace-1.1.8/snippets/python.snippets +158 -0
  811. data/vendor/assets/ace-1.1.8/snippets/r.js +7 -0
  812. data/vendor/assets/ace-1.1.8/snippets/r.snippets +121 -0
  813. data/vendor/assets/ace-1.1.8/snippets/rdoc.js +7 -0
  814. data/vendor/assets/ace-1.1.8/snippets/rdoc.snippets +0 -0
  815. data/vendor/assets/ace-1.1.8/snippets/rhtml.js +7 -0
  816. data/vendor/assets/ace-1.1.8/snippets/rhtml.snippets +0 -0
  817. data/vendor/assets/ace-1.1.8/snippets/rst.snippets +22 -0
  818. data/vendor/assets/ace-1.1.8/snippets/ruby.js +7 -0
  819. data/vendor/assets/ace-1.1.8/snippets/ruby.snippets +928 -0
  820. data/vendor/assets/ace-1.1.8/snippets/rust.js +7 -0
  821. data/vendor/assets/ace-1.1.8/snippets/rust.snippets +0 -0
  822. data/vendor/assets/ace-1.1.8/snippets/sass.js +7 -0
  823. data/vendor/assets/ace-1.1.8/snippets/sass.snippets +0 -0
  824. data/vendor/assets/ace-1.1.8/snippets/scad.js +7 -0
  825. data/vendor/assets/ace-1.1.8/snippets/scad.snippets +0 -0
  826. data/vendor/assets/ace-1.1.8/snippets/scala.js +7 -0
  827. data/vendor/assets/ace-1.1.8/snippets/scala.snippets +0 -0
  828. data/vendor/assets/ace-1.1.8/snippets/scheme.js +7 -0
  829. data/vendor/assets/ace-1.1.8/snippets/scheme.snippets +0 -0
  830. data/vendor/assets/ace-1.1.8/snippets/scss.js +7 -0
  831. data/vendor/assets/ace-1.1.8/snippets/scss.snippets +0 -0
  832. data/vendor/assets/ace-1.1.8/snippets/sh.js +7 -0
  833. data/vendor/assets/ace-1.1.8/snippets/sh.snippets +83 -0
  834. data/vendor/assets/ace-1.1.8/snippets/sjs.js +7 -0
  835. data/vendor/assets/ace-1.1.8/snippets/sjs.snippets +0 -0
  836. data/vendor/assets/ace-1.1.8/snippets/smarty.js +7 -0
  837. data/vendor/assets/ace-1.1.8/snippets/smarty.snippets +0 -0
  838. data/vendor/assets/ace-1.1.8/snippets/snippets.js +7 -0
  839. data/vendor/assets/ace-1.1.8/snippets/snippets.snippets +9 -0
  840. data/vendor/assets/ace-1.1.8/snippets/soy_template.js +7 -0
  841. data/vendor/assets/ace-1.1.8/snippets/soy_template.snippets +0 -0
  842. data/vendor/assets/ace-1.1.8/snippets/space.js +7 -0
  843. data/vendor/assets/ace-1.1.8/snippets/space.snippets +0 -0
  844. data/vendor/assets/ace-1.1.8/snippets/sql.js +7 -0
  845. data/vendor/assets/ace-1.1.8/snippets/sql.snippets +26 -0
  846. data/vendor/assets/ace-1.1.8/snippets/stylus.js +7 -0
  847. data/vendor/assets/ace-1.1.8/snippets/stylus.snippets +0 -0
  848. data/vendor/assets/ace-1.1.8/snippets/svg.js +7 -0
  849. data/vendor/assets/ace-1.1.8/snippets/svg.snippets +0 -0
  850. data/vendor/assets/ace-1.1.8/snippets/tcl.js +7 -0
  851. data/vendor/assets/ace-1.1.8/snippets/tcl.snippets +92 -0
  852. data/vendor/assets/ace-1.1.8/snippets/tex.js +7 -0
  853. data/vendor/assets/ace-1.1.8/snippets/tex.snippets +191 -0
  854. data/vendor/assets/ace-1.1.8/snippets/text.js +7 -0
  855. data/vendor/assets/ace-1.1.8/snippets/text.snippets +0 -0
  856. data/vendor/assets/ace-1.1.8/snippets/textile.js +7 -0
  857. data/vendor/assets/ace-1.1.8/snippets/textile.snippets +30 -0
  858. data/vendor/assets/ace-1.1.8/snippets/tmsnippet.snippets +0 -0
  859. data/vendor/assets/ace-1.1.8/snippets/toml.js +7 -0
  860. data/vendor/assets/ace-1.1.8/snippets/toml.snippets +0 -0
  861. data/vendor/assets/ace-1.1.8/snippets/twig.js +7 -0
  862. data/vendor/assets/ace-1.1.8/snippets/twig.snippets +0 -0
  863. data/vendor/assets/ace-1.1.8/snippets/typescript.js +7 -0
  864. data/vendor/assets/ace-1.1.8/snippets/typescript.snippets +0 -0
  865. data/vendor/assets/ace-1.1.8/snippets/vala.js +195 -0
  866. data/vendor/assets/ace-1.1.8/snippets/vala.snippets +0 -0
  867. data/vendor/assets/ace-1.1.8/snippets/vbscript.js +7 -0
  868. data/vendor/assets/ace-1.1.8/snippets/vbscript.snippets +0 -0
  869. data/vendor/assets/ace-1.1.8/snippets/velocity.js +8 -0
  870. data/vendor/assets/ace-1.1.8/snippets/velocity.snippets +28 -0
  871. data/vendor/assets/ace-1.1.8/snippets/verilog.js +7 -0
  872. data/vendor/assets/ace-1.1.8/snippets/verilog.snippets +0 -0
  873. data/vendor/assets/ace-1.1.8/snippets/vhdl.js +7 -0
  874. data/vendor/assets/ace-1.1.8/snippets/vhdl.snippets +0 -0
  875. data/vendor/assets/ace-1.1.8/snippets/xml.js +7 -0
  876. data/vendor/assets/ace-1.1.8/snippets/xml.snippets +0 -0
  877. data/vendor/assets/ace-1.1.8/snippets/xquery.js +7 -0
  878. data/vendor/assets/ace-1.1.8/snippets/xquery.snippets +61 -0
  879. data/vendor/assets/ace-1.1.8/snippets/xslt.snippets +97 -0
  880. data/vendor/assets/ace-1.1.8/snippets/yaml.js +7 -0
  881. data/vendor/assets/ace-1.1.8/snippets/yaml.snippets +0 -0
  882. data/vendor/assets/ace-1.1.8/snippets_test.js +131 -0
  883. data/vendor/assets/ace-1.1.8/split.js +373 -0
  884. data/vendor/assets/ace-1.1.8/test/all.js +35 -0
  885. data/vendor/assets/ace-1.1.8/test/all_browser.js +141 -0
  886. data/vendor/assets/ace-1.1.8/test/assertions.js +56 -0
  887. data/vendor/assets/ace-1.1.8/test/asyncjs/assert.js +313 -0
  888. data/vendor/assets/ace-1.1.8/test/asyncjs/async.js +529 -0
  889. data/vendor/assets/ace-1.1.8/test/asyncjs/index.js +13 -0
  890. data/vendor/assets/ace-1.1.8/test/asyncjs/test.js +195 -0
  891. data/vendor/assets/ace-1.1.8/test/asyncjs/utils.js +65 -0
  892. data/vendor/assets/ace-1.1.8/test/benchmark.js +78 -0
  893. data/vendor/assets/ace-1.1.8/test/mockdom.js +10 -0
  894. data/vendor/assets/ace-1.1.8/test/mockrenderer.js +208 -0
  895. data/vendor/assets/ace-1.1.8/test/tests.html +46 -0
  896. data/vendor/assets/ace-1.1.8/theme/ambiance.css +221 -0
  897. data/vendor/assets/ace-1.1.8/theme/ambiance.js +33 -0
  898. data/vendor/assets/ace-1.1.8/theme/chaos.css +154 -0
  899. data/vendor/assets/ace-1.1.8/theme/chaos.js +33 -0
  900. data/vendor/assets/ace-1.1.8/theme/chrome.css +154 -0
  901. data/vendor/assets/ace-1.1.8/theme/chrome.js +39 -0
  902. data/vendor/assets/ace-1.1.8/theme/clouds.css +112 -0
  903. data/vendor/assets/ace-1.1.8/theme/clouds.js +39 -0
  904. data/vendor/assets/ace-1.1.8/theme/clouds_midnight.css +113 -0
  905. data/vendor/assets/ace-1.1.8/theme/clouds_midnight.js +39 -0
  906. data/vendor/assets/ace-1.1.8/theme/cobalt.css +134 -0
  907. data/vendor/assets/ace-1.1.8/theme/cobalt.js +39 -0
  908. data/vendor/assets/ace-1.1.8/theme/crimson_editor.css +143 -0
  909. data/vendor/assets/ace-1.1.8/theme/crimson_editor.js +39 -0
  910. data/vendor/assets/ace-1.1.8/theme/dawn.css +127 -0
  911. data/vendor/assets/ace-1.1.8/theme/dawn.js +39 -0
  912. data/vendor/assets/ace-1.1.8/theme/dreamweaver.css +176 -0
  913. data/vendor/assets/ace-1.1.8/theme/dreamweaver.js +38 -0
  914. data/vendor/assets/ace-1.1.8/theme/eclipse.css +113 -0
  915. data/vendor/assets/ace-1.1.8/theme/eclipse.js +41 -0
  916. data/vendor/assets/ace-1.1.8/theme/github.css +119 -0
  917. data/vendor/assets/ace-1.1.8/theme/github.js +39 -0
  918. data/vendor/assets/ace-1.1.8/theme/idle_fingers.css +113 -0
  919. data/vendor/assets/ace-1.1.8/theme/idle_fingers.js +39 -0
  920. data/vendor/assets/ace-1.1.8/theme/katzenmilch.css +140 -0
  921. data/vendor/assets/ace-1.1.8/theme/katzenmilch.js +39 -0
  922. data/vendor/assets/ace-1.1.8/theme/kr_theme.css +124 -0
  923. data/vendor/assets/ace-1.1.8/theme/kr_theme.js +39 -0
  924. data/vendor/assets/ace-1.1.8/theme/kuroir.css +67 -0
  925. data/vendor/assets/ace-1.1.8/theme/kuroir.js +39 -0
  926. data/vendor/assets/ace-1.1.8/theme/merbivore.css +110 -0
  927. data/vendor/assets/ace-1.1.8/theme/merbivore.js +39 -0
  928. data/vendor/assets/ace-1.1.8/theme/merbivore_soft.css +111 -0
  929. data/vendor/assets/ace-1.1.8/theme/merbivore_soft.js +39 -0
  930. data/vendor/assets/ace-1.1.8/theme/mono_industrial.css +126 -0
  931. data/vendor/assets/ace-1.1.8/theme/mono_industrial.js +39 -0
  932. data/vendor/assets/ace-1.1.8/theme/monokai.css +122 -0
  933. data/vendor/assets/ace-1.1.8/theme/monokai.js +39 -0
  934. data/vendor/assets/ace-1.1.8/theme/pastel_on_dark.css +129 -0
  935. data/vendor/assets/ace-1.1.8/theme/pastel_on_dark.js +39 -0
  936. data/vendor/assets/ace-1.1.8/theme/solarized_dark.css +101 -0
  937. data/vendor/assets/ace-1.1.8/theme/solarized_dark.js +39 -0
  938. data/vendor/assets/ace-1.1.8/theme/solarized_light.css +106 -0
  939. data/vendor/assets/ace-1.1.8/theme/solarized_light.js +39 -0
  940. data/vendor/assets/ace-1.1.8/theme/terminal.css +132 -0
  941. data/vendor/assets/ace-1.1.8/theme/terminal.js +39 -0
  942. data/vendor/assets/ace-1.1.8/theme/textmate.css +155 -0
  943. data/vendor/assets/ace-1.1.8/theme/textmate.js +40 -0
  944. data/vendor/assets/ace-1.1.8/theme/tomorrow.css +125 -0
  945. data/vendor/assets/ace-1.1.8/theme/tomorrow.js +39 -0
  946. data/vendor/assets/ace-1.1.8/theme/tomorrow_night.css +125 -0
  947. data/vendor/assets/ace-1.1.8/theme/tomorrow_night.js +39 -0
  948. data/vendor/assets/ace-1.1.8/theme/tomorrow_night_blue.css +122 -0
  949. data/vendor/assets/ace-1.1.8/theme/tomorrow_night_blue.js +39 -0
  950. data/vendor/assets/ace-1.1.8/theme/tomorrow_night_bright.css +141 -0
  951. data/vendor/assets/ace-1.1.8/theme/tomorrow_night_bright.js +39 -0
  952. data/vendor/assets/ace-1.1.8/theme/tomorrow_night_eighties.css +125 -0
  953. data/vendor/assets/ace-1.1.8/theme/tomorrow_night_eighties.js +39 -0
  954. data/vendor/assets/ace-1.1.8/theme/twilight.css +128 -0
  955. data/vendor/assets/ace-1.1.8/theme/twilight.js +39 -0
  956. data/vendor/assets/ace-1.1.8/theme/vibrant_ink.css +110 -0
  957. data/vendor/assets/ace-1.1.8/theme/vibrant_ink.js +39 -0
  958. data/vendor/assets/ace-1.1.8/theme/xcode.css +103 -0
  959. data/vendor/assets/ace-1.1.8/theme/xcode.js +39 -0
  960. data/vendor/assets/ace-1.1.8/token_iterator.js +150 -0
  961. data/vendor/assets/ace-1.1.8/token_iterator_test.js +212 -0
  962. data/vendor/assets/ace-1.1.8/tokenizer.js +366 -0
  963. data/vendor/assets/ace-1.1.8/tokenizer_dev.js +183 -0
  964. data/vendor/assets/ace-1.1.8/tokenizer_test.js +97 -0
  965. data/vendor/assets/ace-1.1.8/tooltip.js +138 -0
  966. data/vendor/assets/ace-1.1.8/undomanager.js +168 -0
  967. data/vendor/assets/ace-1.1.8/unicode.js +107 -0
  968. data/vendor/assets/ace-1.1.8/virtual_renderer.js +1759 -0
  969. data/vendor/assets/ace-1.1.8/virtual_renderer_test.js +86 -0
  970. data/vendor/assets/ace-1.1.8/worker/mirror.js +49 -0
  971. data/vendor/assets/ace-1.1.8/worker/worker.js +193 -0
  972. data/vendor/assets/ace-1.1.8/worker/worker_client.js +255 -0
  973. data/vendor/assets/ace-1.1.8/worker/worker_test.js +125 -0
  974. data/vendor/assets/ckeditor-4.4.7/CHANGES.md +720 -0
  975. data/vendor/assets/ckeditor-4.4.7/LICENSE.md +1264 -0
  976. data/vendor/assets/ckeditor-4.4.7/README.md +39 -0
  977. data/vendor/assets/ckeditor-4.4.7/adapters/jquery.js +10 -0
  978. data/vendor/assets/ckeditor-4.4.7/build-config.js +83 -0
  979. data/vendor/assets/ckeditor-4.4.7/ckeditor.js +829 -0
  980. data/vendor/assets/ckeditor-4.4.7/config.js +34 -0
  981. data/vendor/assets/ckeditor-4.4.7/contents.css +134 -0
  982. data/vendor/assets/ckeditor-4.4.7/lang/en.js +5 -0
  983. data/vendor/assets/ckeditor-4.4.7/plugins/clipboard/dialogs/paste.js +11 -0
  984. data/vendor/assets/ckeditor-4.4.7/plugins/dialog/dialogDefinition.js +4 -0
  985. data/vendor/assets/ckeditor-4.4.7/plugins/icons.png +0 -0
  986. data/vendor/assets/ckeditor-4.4.7/plugins/icons_hidpi.png +0 -0
  987. data/vendor/assets/ckeditor-4.4.7/plugins/image/dialogs/image.js +43 -0
  988. data/vendor/assets/ckeditor-4.4.7/plugins/image/images/noimage.png +0 -0
  989. data/vendor/assets/ckeditor-4.4.7/plugins/link/dialogs/anchor.js +7 -0
  990. data/vendor/assets/ckeditor-4.4.7/plugins/link/dialogs/link.js +26 -0
  991. data/vendor/assets/ckeditor-4.4.7/plugins/link/images/anchor.png +0 -0
  992. data/vendor/assets/ckeditor-4.4.7/plugins/link/images/hidpi/anchor.png +0 -0
  993. data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
  994. data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/hidpi/icon.png +0 -0
  995. data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/icon-rtl.png +0 -0
  996. data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/icon.png +0 -0
  997. data/vendor/assets/ckeditor-4.4.7/plugins/pastefromword/filter/default.js +31 -0
  998. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_address.png +0 -0
  999. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_blockquote.png +0 -0
  1000. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_div.png +0 -0
  1001. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h1.png +0 -0
  1002. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h2.png +0 -0
  1003. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h3.png +0 -0
  1004. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h4.png +0 -0
  1005. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h5.png +0 -0
  1006. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h6.png +0 -0
  1007. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_p.png +0 -0
  1008. data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_pre.png +0 -0
  1009. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  1010. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/af.js +13 -0
  1011. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ar.js +13 -0
  1012. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/bg.js +13 -0
  1013. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ca.js +14 -0
  1014. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/cs.js +13 -0
  1015. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/cy.js +14 -0
  1016. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/da.js +13 -0
  1017. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/de.js +13 -0
  1018. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/el.js +13 -0
  1019. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/en-gb.js +13 -0
  1020. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/en.js +13 -0
  1021. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/eo.js +12 -0
  1022. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/es.js +13 -0
  1023. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/et.js +13 -0
  1024. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fa.js +12 -0
  1025. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fi.js +13 -0
  1026. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
  1027. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fr.js +11 -0
  1028. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/gl.js +13 -0
  1029. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/he.js +12 -0
  1030. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/hr.js +13 -0
  1031. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/hu.js +12 -0
  1032. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/id.js +13 -0
  1033. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/it.js +14 -0
  1034. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ja.js +9 -0
  1035. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/km.js +13 -0
  1036. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ku.js +13 -0
  1037. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/lt.js +13 -0
  1038. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/lv.js +13 -0
  1039. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/nb.js +11 -0
  1040. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/nl.js +13 -0
  1041. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/no.js +11 -0
  1042. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/pl.js +12 -0
  1043. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  1044. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/pt.js +13 -0
  1045. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ru.js +13 -0
  1046. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/si.js +13 -0
  1047. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sk.js +13 -0
  1048. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sl.js +12 -0
  1049. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sq.js +13 -0
  1050. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sv.js +11 -0
  1051. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/th.js +13 -0
  1052. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/tr.js +12 -0
  1053. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/tt.js +13 -0
  1054. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ug.js +13 -0
  1055. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/uk.js +12 -0
  1056. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/vi.js +14 -0
  1057. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  1058. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/zh.js +12 -0
  1059. data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/specialchar.js +14 -0
  1060. data/vendor/assets/ckeditor-4.4.7/plugins/table/dialogs/table.js +21 -0
  1061. data/vendor/assets/ckeditor-4.4.7/plugins/templates/dialogs/templates.css +84 -0
  1062. data/vendor/assets/ckeditor-4.4.7/plugins/templates/dialogs/templates.js +10 -0
  1063. data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/default.js +6 -0
  1064. data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/images/template1.gif +0 -0
  1065. data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/images/template2.gif +0 -0
  1066. data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/images/template3.gif +0 -0
  1067. data/vendor/assets/ckeditor-4.4.7/plugins/uploadcare/README.md +64 -0
  1068. data/vendor/assets/ckeditor-4.4.7/plugins/uploadcare/icons/hidpi/uploadcare.png +0 -0
  1069. data/vendor/assets/ckeditor-4.4.7/plugins/uploadcare/icons/uploadcare.png +0 -0
  1070. data/vendor/assets/ckeditor-4.4.7/samples/ajax.html +82 -0
  1071. data/vendor/assets/ckeditor-4.4.7/samples/api.html +207 -0
  1072. data/vendor/assets/ckeditor-4.4.7/samples/appendto.html +56 -0
  1073. data/vendor/assets/ckeditor-4.4.7/samples/assets/inlineall/logo.png +0 -0
  1074. data/vendor/assets/ckeditor-4.4.7/samples/assets/outputxhtml/outputxhtml.css +204 -0
  1075. data/vendor/assets/ckeditor-4.4.7/samples/assets/posteddata.php +59 -0
  1076. data/vendor/assets/ckeditor-4.4.7/samples/assets/sample.jpg +0 -0
  1077. data/vendor/assets/ckeditor-4.4.7/samples/assets/uilanguages/languages.js +7 -0
  1078. data/vendor/assets/ckeditor-4.4.7/samples/datafiltering.html +401 -0
  1079. data/vendor/assets/ckeditor-4.4.7/samples/divreplace.html +141 -0
  1080. data/vendor/assets/ckeditor-4.4.7/samples/index.html +119 -0
  1081. data/vendor/assets/ckeditor-4.4.7/samples/inlineall.html +311 -0
  1082. data/vendor/assets/ckeditor-4.4.7/samples/inlinebycode.html +121 -0
  1083. data/vendor/assets/ckeditor-4.4.7/samples/inlinetextarea.html +110 -0
  1084. data/vendor/assets/ckeditor-4.4.7/samples/jquery.html +100 -0
  1085. data/vendor/assets/ckeditor-4.4.7/samples/plugins/dialog/assets/my_dialog.js +48 -0
  1086. data/vendor/assets/ckeditor-4.4.7/samples/plugins/dialog/dialog.html +187 -0
  1087. data/vendor/assets/ckeditor-4.4.7/samples/plugins/enterkey/enterkey.html +103 -0
  1088. data/vendor/assets/ckeditor-4.4.7/samples/plugins/magicline/magicline.html +206 -0
  1089. data/vendor/assets/ckeditor-4.4.7/samples/plugins/toolbar/toolbar.html +232 -0
  1090. data/vendor/assets/ckeditor-4.4.7/samples/readonly.html +73 -0
  1091. data/vendor/assets/ckeditor-4.4.7/samples/replacebyclass.html +57 -0
  1092. data/vendor/assets/ckeditor-4.4.7/samples/replacebycode.html +56 -0
  1093. data/vendor/assets/ckeditor-4.4.7/samples/sample.css +365 -0
  1094. data/vendor/assets/ckeditor-4.4.7/samples/sample.js +50 -0
  1095. data/vendor/assets/ckeditor-4.4.7/samples/sample_posteddata.php +16 -0
  1096. data/vendor/assets/ckeditor-4.4.7/samples/tabindex.html +75 -0
  1097. data/vendor/assets/ckeditor-4.4.7/samples/uicolor.html +69 -0
  1098. data/vendor/assets/ckeditor-4.4.7/samples/uilanguages.html +119 -0
  1099. data/vendor/assets/ckeditor-4.4.7/samples/xhtmlstyle.html +231 -0
  1100. data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog.css +5 -0
  1101. data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_ie.css +5 -0
  1102. data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_ie7.css +5 -0
  1103. data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_ie8.css +5 -0
  1104. data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_iequirks.css +5 -0
  1105. data/vendor/assets/ckeditor-4.4.7/skins/flat/editor.css +5 -0
  1106. data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_gecko.css +5 -0
  1107. data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_ie.css +5 -0
  1108. data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_ie7.css +5 -0
  1109. data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_ie8.css +5 -0
  1110. data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_iequirks.css +5 -0
  1111. data/vendor/assets/ckeditor-4.4.7/skins/flat/icons.png +0 -0
  1112. data/vendor/assets/ckeditor-4.4.7/skins/flat/icons_hidpi.png +0 -0
  1113. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/arrow.png +0 -0
  1114. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/close.png +0 -0
  1115. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/close.png +0 -0
  1116. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/lock-open.png +0 -0
  1117. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/lock.png +0 -0
  1118. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/refresh.png +0 -0
  1119. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/lock-open.png +0 -0
  1120. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/lock.png +0 -0
  1121. data/vendor/assets/ckeditor-4.4.7/skins/flat/images/refresh.png +0 -0
  1122. data/vendor/assets/ckeditor-4.4.7/skins/flat/readme.md +8 -0
  1123. data/vendor/assets/ckeditor-4.4.7/styles.js +111 -0
  1124. data/vendor/assets/javascripts/backbone.js +1608 -0
  1125. data/vendor/assets/javascripts/backbone.memento.js +159 -0
  1126. data/vendor/assets/javascripts/jquery-ui.js +14987 -0
  1127. data/vendor/assets/javascripts/jquery.js +10346 -0
  1128. data/vendor/assets/javascripts/jquery.noty.js +1436 -0
  1129. data/vendor/assets/javascripts/require.js +36 -0
  1130. data/vendor/assets/javascripts/text.js +391 -0
  1131. data/vendor/assets/javascripts/underscore.js +1536 -0
  1132. metadata +1287 -0
@@ -0,0 +1,107 @@
1
+ define(function(require, exports, module) {
2
+ "use strict";
3
+
4
+ /*
5
+ XRegExp Unicode plugin pack: Categories 1.0
6
+ (c) 2010 Steven Levithan
7
+ MIT License
8
+ <http://xregexp.com>
9
+ Uses the Unicode 5.2 character database
10
+
11
+ This package for the XRegExp Unicode plugin enables the following Unicode categories (aka properties):
12
+
13
+ L - Letter (the top-level Letter category is included in the Unicode plugin base script)
14
+ Ll - Lowercase letter
15
+ Lu - Uppercase letter
16
+ Lt - Titlecase letter
17
+ Lm - Modifier letter
18
+ Lo - Letter without case
19
+ M - Mark
20
+ Mn - Non-spacing mark
21
+ Mc - Spacing combining mark
22
+ Me - Enclosing mark
23
+ N - Number
24
+ Nd - Decimal digit
25
+ Nl - Letter number
26
+ No - Other number
27
+ P - Punctuation
28
+ Pd - Dash punctuation
29
+ Ps - Open punctuation
30
+ Pe - Close punctuation
31
+ Pi - Initial punctuation
32
+ Pf - Final punctuation
33
+ Pc - Connector punctuation
34
+ Po - Other punctuation
35
+ S - Symbol
36
+ Sm - Math symbol
37
+ Sc - Currency symbol
38
+ Sk - Modifier symbol
39
+ So - Other symbol
40
+ Z - Separator
41
+ Zs - Space separator
42
+ Zl - Line separator
43
+ Zp - Paragraph separator
44
+ C - Other
45
+ Cc - Control
46
+ Cf - Format
47
+ Co - Private use
48
+ Cs - Surrogate
49
+ Cn - Unassigned
50
+
51
+ Example usage:
52
+
53
+ \p{N}
54
+ \p{Cn}
55
+ */
56
+
57
+
58
+ // will be populated by addUnicodePackage
59
+ exports.packages = {};
60
+
61
+ addUnicodePackage({
62
+ L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
63
+ Ll: "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",
64
+ Lu: "0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",
65
+ Lt: "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",
66
+ Lm: "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",
67
+ Lo: "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
68
+ M: "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",
69
+ Mn: "0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",
70
+ Mc: "0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",
71
+ Me: "0488048906DE20DD-20E020E2-20E4A670-A672",
72
+ N: "0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
73
+ Nd: "0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
74
+ Nl: "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",
75
+ No: "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",
76
+ P: "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",
77
+ Pd: "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",
78
+ Ps: "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",
79
+ Pe: "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",
80
+ Pi: "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",
81
+ Pf: "00BB2019201D203A2E032E052E0A2E0D2E1D2E21",
82
+ Pc: "005F203F20402054FE33FE34FE4D-FE4FFF3F",
83
+ Po: "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",
84
+ S: "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",
85
+ Sm: "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",
86
+ Sc: "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",
87
+ Sk: "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",
88
+ So: "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",
89
+ Z: "002000A01680180E2000-200A20282029202F205F3000",
90
+ Zs: "002000A01680180E2000-200A202F205F3000",
91
+ Zl: "2028",
92
+ Zp: "2029",
93
+ C: "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",
94
+ Cc: "0000-001F007F-009F",
95
+ Cf: "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",
96
+ Co: "E000-F8FF",
97
+ Cs: "D800-DFFF",
98
+ Cn: "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"
99
+ });
100
+
101
+ function addUnicodePackage (pack) {
102
+ var codePoint = /\w{4}/g;
103
+ for (var name in pack)
104
+ exports.packages[name] = pack[name].replace(codePoint, "\\u$&");
105
+ };
106
+
107
+ });
@@ -0,0 +1,1759 @@
1
+ /* ***** BEGIN LICENSE BLOCK *****
2
+ * Distributed under the BSD license:
3
+ *
4
+ * Copyright (c) 2010, Ajax.org B.V.
5
+ * All rights reserved.
6
+ *
7
+ * Redistribution and use in source and binary forms, with or without
8
+ * modification, are permitted provided that the following conditions are met:
9
+ * * Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ * * Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ * * Neither the name of Ajax.org B.V. nor the
15
+ * names of its contributors may be used to endorse or promote products
16
+ * derived from this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ *
29
+ * ***** END LICENSE BLOCK ***** */
30
+
31
+ define(function(require, exports, module) {
32
+ "use strict";
33
+
34
+ var oop = require("./lib/oop");
35
+ var dom = require("./lib/dom");
36
+ var config = require("./config");
37
+ var useragent = require("./lib/useragent");
38
+ var GutterLayer = require("./layer/gutter").Gutter;
39
+ var MarkerLayer = require("./layer/marker").Marker;
40
+ var TextLayer = require("./layer/text").Text;
41
+ var CursorLayer = require("./layer/cursor").Cursor;
42
+ var HScrollBar = require("./scrollbar").HScrollBar;
43
+ var VScrollBar = require("./scrollbar").VScrollBar;
44
+ var RenderLoop = require("./renderloop").RenderLoop;
45
+ var FontMetrics = require("./layer/font_metrics").FontMetrics;
46
+ var EventEmitter = require("./lib/event_emitter").EventEmitter;
47
+ var editorCss = require("./requirejs/text!./css/editor.css");
48
+
49
+ dom.importCssString(editorCss, "ace_editor");
50
+
51
+ /**
52
+ * The class that is responsible for drawing everything you see on the screen!
53
+ * @related editor.renderer
54
+ * @class VirtualRenderer
55
+ **/
56
+
57
+ /**
58
+ * Constructs a new `VirtualRenderer` within the `container` specified, applying the given `theme`.
59
+ * @param {DOMElement} container The root element of the editor
60
+ * @param {String} theme The starting theme
61
+ *
62
+ * @constructor
63
+ **/
64
+
65
+ var VirtualRenderer = function(container, theme) {
66
+ var _self = this;
67
+
68
+ this.container = container || dom.createElement("div");
69
+
70
+ // TODO: this breaks rendering in Cloud9 with multiple ace instances
71
+ // // Imports CSS once per DOM document ('ace_editor' serves as an identifier).
72
+ // dom.importCssString(editorCss, "ace_editor", container.ownerDocument);
73
+
74
+ // in IE <= 9 the native cursor always shines through
75
+ this.$keepTextAreaAtCursor = !useragent.isOldIE;
76
+
77
+ dom.addCssClass(this.container, "ace_editor");
78
+
79
+ this.setTheme(theme);
80
+
81
+ this.$gutter = dom.createElement("div");
82
+ this.$gutter.className = "ace_gutter";
83
+ this.container.appendChild(this.$gutter);
84
+
85
+ this.scroller = dom.createElement("div");
86
+ this.scroller.className = "ace_scroller";
87
+ this.container.appendChild(this.scroller);
88
+
89
+ this.content = dom.createElement("div");
90
+ this.content.className = "ace_content";
91
+ this.scroller.appendChild(this.content);
92
+
93
+ this.$gutterLayer = new GutterLayer(this.$gutter);
94
+ this.$gutterLayer.on("changeGutterWidth", this.onGutterResize.bind(this));
95
+
96
+ this.$markerBack = new MarkerLayer(this.content);
97
+
98
+ var textLayer = this.$textLayer = new TextLayer(this.content);
99
+ this.canvas = textLayer.element;
100
+
101
+ this.$markerFront = new MarkerLayer(this.content);
102
+
103
+ this.$cursorLayer = new CursorLayer(this.content);
104
+
105
+ // Indicates whether the horizontal scrollbar is visible
106
+ this.$horizScroll = false;
107
+ this.$vScroll = false;
108
+
109
+ this.scrollBar =
110
+ this.scrollBarV = new VScrollBar(this.container, this);
111
+ this.scrollBarH = new HScrollBar(this.container, this);
112
+ this.scrollBarV.addEventListener("scroll", function(e) {
113
+ if (!_self.$scrollAnimation)
114
+ _self.session.setScrollTop(e.data - _self.scrollMargin.top);
115
+ });
116
+ this.scrollBarH.addEventListener("scroll", function(e) {
117
+ if (!_self.$scrollAnimation)
118
+ _self.session.setScrollLeft(e.data - _self.scrollMargin.left);
119
+ });
120
+
121
+ this.scrollTop = 0;
122
+ this.scrollLeft = 0;
123
+
124
+ this.cursorPos = {
125
+ row : 0,
126
+ column : 0
127
+ };
128
+
129
+ this.$fontMetrics = new FontMetrics(this.container, 500);
130
+ this.$textLayer.$setFontMetrics(this.$fontMetrics);
131
+ this.$textLayer.addEventListener("changeCharacterSize", function(e) {
132
+ _self.updateCharacterSize();
133
+ _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);
134
+ _self._signal("changeCharacterSize", e);
135
+ });
136
+
137
+ this.$size = {
138
+ width: 0,
139
+ height: 0,
140
+ scrollerHeight: 0,
141
+ scrollerWidth: 0,
142
+ $dirty: true
143
+ };
144
+
145
+ this.layerConfig = {
146
+ width : 1,
147
+ padding : 0,
148
+ firstRow : 0,
149
+ firstRowScreen: 0,
150
+ lastRow : 0,
151
+ lineHeight : 0,
152
+ characterWidth : 0,
153
+ minHeight : 1,
154
+ maxHeight : 1,
155
+ offset : 0,
156
+ height : 1,
157
+ gutterOffset: 1
158
+ };
159
+
160
+ this.scrollMargin = {
161
+ left: 0,
162
+ right: 0,
163
+ top: 0,
164
+ bottom: 0,
165
+ v: 0,
166
+ h: 0
167
+ };
168
+
169
+ this.$loop = new RenderLoop(
170
+ this.$renderChanges.bind(this),
171
+ this.container.ownerDocument.defaultView
172
+ );
173
+ this.$loop.schedule(this.CHANGE_FULL);
174
+
175
+ this.updateCharacterSize();
176
+ this.setPadding(4);
177
+ config.resetOptions(this);
178
+ config._emit("renderer", this);
179
+ };
180
+
181
+ (function() {
182
+
183
+ this.CHANGE_CURSOR = 1;
184
+ this.CHANGE_MARKER = 2;
185
+ this.CHANGE_GUTTER = 4;
186
+ this.CHANGE_SCROLL = 8;
187
+ this.CHANGE_LINES = 16;
188
+ this.CHANGE_TEXT = 32;
189
+ this.CHANGE_SIZE = 64;
190
+ this.CHANGE_MARKER_BACK = 128;
191
+ this.CHANGE_MARKER_FRONT = 256;
192
+ this.CHANGE_FULL = 512;
193
+ this.CHANGE_H_SCROLL = 1024;
194
+
195
+ // this.$logChanges = function(changes) {
196
+ // var a = ""
197
+ // if (changes & this.CHANGE_CURSOR) a += " cursor";
198
+ // if (changes & this.CHANGE_MARKER) a += " marker";
199
+ // if (changes & this.CHANGE_GUTTER) a += " gutter";
200
+ // if (changes & this.CHANGE_SCROLL) a += " scroll";
201
+ // if (changes & this.CHANGE_LINES) a += " lines";
202
+ // if (changes & this.CHANGE_TEXT) a += " text";
203
+ // if (changes & this.CHANGE_SIZE) a += " size";
204
+ // if (changes & this.CHANGE_MARKER_BACK) a += " marker_back";
205
+ // if (changes & this.CHANGE_MARKER_FRONT) a += " marker_front";
206
+ // if (changes & this.CHANGE_FULL) a += " full";
207
+ // if (changes & this.CHANGE_H_SCROLL) a += " h_scroll";
208
+ // console.log(a.trim())
209
+ // };
210
+
211
+ oop.implement(this, EventEmitter);
212
+
213
+ this.updateCharacterSize = function() {
214
+ if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {
215
+ this.$allowBoldFonts = this.$textLayer.allowBoldFonts;
216
+ this.setStyle("ace_nobold", !this.$allowBoldFonts);
217
+ }
218
+
219
+ this.layerConfig.characterWidth =
220
+ this.characterWidth = this.$textLayer.getCharacterWidth();
221
+ this.layerConfig.lineHeight =
222
+ this.lineHeight = this.$textLayer.getLineHeight();
223
+ this.$updatePrintMargin();
224
+ };
225
+
226
+ /**
227
+ *
228
+ * Associates the renderer with an [[EditSession `EditSession`]].
229
+ **/
230
+ this.setSession = function(session) {
231
+ if (this.session)
232
+ this.session.doc.off("changeNewLineMode", this.onChangeNewLineMode);
233
+
234
+ this.session = session;
235
+ if (session && this.scrollMargin.top && session.getScrollTop() <= 0)
236
+ session.setScrollTop(-this.scrollMargin.top);
237
+
238
+ this.$cursorLayer.setSession(session);
239
+ this.$markerBack.setSession(session);
240
+ this.$markerFront.setSession(session);
241
+ this.$gutterLayer.setSession(session);
242
+ this.$textLayer.setSession(session);
243
+ if (!session)
244
+ return;
245
+
246
+ this.$loop.schedule(this.CHANGE_FULL);
247
+ this.session.$setFontMetrics(this.$fontMetrics);
248
+
249
+ this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);
250
+ this.onChangeNewLineMode()
251
+ this.session.doc.on("changeNewLineMode", this.onChangeNewLineMode);
252
+ };
253
+
254
+ /**
255
+ * Triggers a partial update of the text, from the range given by the two parameters.
256
+ * @param {Number} firstRow The first row to update
257
+ * @param {Number} lastRow The last row to update
258
+ *
259
+ *
260
+ **/
261
+ this.updateLines = function(firstRow, lastRow, force) {
262
+ if (lastRow === undefined)
263
+ lastRow = Infinity;
264
+
265
+ if (!this.$changedLines) {
266
+ this.$changedLines = {
267
+ firstRow: firstRow,
268
+ lastRow: lastRow
269
+ };
270
+ }
271
+ else {
272
+ if (this.$changedLines.firstRow > firstRow)
273
+ this.$changedLines.firstRow = firstRow;
274
+
275
+ if (this.$changedLines.lastRow < lastRow)
276
+ this.$changedLines.lastRow = lastRow;
277
+ }
278
+
279
+ // If the change happened offscreen above us then it's possible
280
+ // that a new line wrap will affect the position of the lines on our
281
+ // screen so they need redrawn.
282
+ // TODO: better solution is to not change scroll position when text is changed outside of visible area
283
+ if (this.$changedLines.lastRow < this.layerConfig.firstRow) {
284
+ if (force)
285
+ this.$changedLines.lastRow = this.layerConfig.lastRow;
286
+ else
287
+ return;
288
+ }
289
+ if (this.$changedLines.firstRow > this.layerConfig.lastRow)
290
+ return;
291
+ this.$loop.schedule(this.CHANGE_LINES);
292
+ };
293
+
294
+ this.onChangeNewLineMode = function() {
295
+ this.$loop.schedule(this.CHANGE_TEXT);
296
+ this.$textLayer.$updateEolChar();
297
+ };
298
+
299
+ this.onChangeTabSize = function() {
300
+ this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);
301
+ this.$textLayer.onChangeTabSize();
302
+ };
303
+
304
+ /**
305
+ * Triggers a full update of the text, for all the rows.
306
+ **/
307
+ this.updateText = function() {
308
+ this.$loop.schedule(this.CHANGE_TEXT);
309
+ };
310
+
311
+ /**
312
+ * Triggers a full update of all the layers, for all the rows.
313
+ * @param {Boolean} force If `true`, forces the changes through
314
+ *
315
+ *
316
+ **/
317
+ this.updateFull = function(force) {
318
+ if (force)
319
+ this.$renderChanges(this.CHANGE_FULL, true);
320
+ else
321
+ this.$loop.schedule(this.CHANGE_FULL);
322
+ };
323
+
324
+ /**
325
+ *
326
+ * Updates the font size.
327
+ **/
328
+ this.updateFontSize = function() {
329
+ this.$textLayer.checkForSizeChanges();
330
+ };
331
+
332
+ this.$changes = 0;
333
+ this.$updateSizeAsync = function() {
334
+ if (this.$loop.pending)
335
+ this.$size.$dirty = true;
336
+ else
337
+ this.onResize();
338
+ };
339
+ /**
340
+ * [Triggers a resize of the editor.]{: #VirtualRenderer.onResize}
341
+ * @param {Boolean} force If `true`, recomputes the size, even if the height and width haven't changed
342
+ * @param {Number} gutterWidth The width of the gutter in pixels
343
+ * @param {Number} width The width of the editor in pixels
344
+ * @param {Number} height The hiehgt of the editor, in pixels
345
+ *
346
+ *
347
+ **/
348
+ this.onResize = function(force, gutterWidth, width, height) {
349
+ if (this.resizing > 2)
350
+ return;
351
+ else if (this.resizing > 0)
352
+ this.resizing++;
353
+ else
354
+ this.resizing = force ? 1 : 0;
355
+ // `|| el.scrollHeight` is required for outosizing editors on ie
356
+ // where elements with clientHeight = 0 alsoe have clientWidth = 0
357
+ var el = this.container;
358
+ if (!height)
359
+ height = el.clientHeight || el.scrollHeight;
360
+ if (!width)
361
+ width = el.clientWidth || el.scrollWidth;
362
+ var changes = this.$updateCachedSize(force, gutterWidth, width, height);
363
+
364
+
365
+ if (!this.$size.scrollerHeight || (!width && !height))
366
+ return this.resizing = 0;
367
+
368
+ if (force)
369
+ this.$gutterLayer.$padding = null;
370
+
371
+ if (force)
372
+ this.$renderChanges(changes | this.$changes, true);
373
+ else
374
+ this.$loop.schedule(changes | this.$changes);
375
+
376
+ if (this.resizing)
377
+ this.resizing = 0;
378
+ };
379
+
380
+ this.$updateCachedSize = function(force, gutterWidth, width, height) {
381
+ height -= (this.$extraHeight || 0);
382
+ var changes = 0;
383
+ var size = this.$size;
384
+ var oldSize = {
385
+ width: size.width,
386
+ height: size.height,
387
+ scrollerHeight: size.scrollerHeight,
388
+ scrollerWidth: size.scrollerWidth
389
+ };
390
+ if (height && (force || size.height != height)) {
391
+ size.height = height;
392
+ changes |= this.CHANGE_SIZE;
393
+
394
+ size.scrollerHeight = size.height;
395
+ if (this.$horizScroll)
396
+ size.scrollerHeight -= this.scrollBarH.getHeight();
397
+
398
+ // this.scrollBarV.setHeight(size.scrollerHeight);
399
+ this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + "px";
400
+
401
+ changes = changes | this.CHANGE_SCROLL;
402
+ }
403
+
404
+ if (width && (force || size.width != width)) {
405
+ changes |= this.CHANGE_SIZE;
406
+ size.width = width;
407
+
408
+ if (gutterWidth == null)
409
+ gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;
410
+
411
+ this.gutterWidth = gutterWidth;
412
+
413
+ this.scrollBarH.element.style.left =
414
+ this.scroller.style.left = gutterWidth + "px";
415
+ size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth());
416
+
417
+ this.scrollBarH.element.style.right =
418
+ this.scroller.style.right = this.scrollBarV.getWidth() + "px";
419
+ this.scroller.style.bottom = this.scrollBarH.getHeight() + "px";
420
+
421
+ // this.scrollBarH.element.style.setWidth(size.scrollerWidth);
422
+
423
+ if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)
424
+ changes |= this.CHANGE_FULL;
425
+ }
426
+
427
+ size.$dirty = !width || !height;
428
+
429
+ if (changes)
430
+ this._signal("resize", oldSize);
431
+
432
+ return changes;
433
+ };
434
+
435
+ this.onGutterResize = function() {
436
+ var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;
437
+ if (gutterWidth != this.gutterWidth)
438
+ this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);
439
+
440
+ if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {
441
+ this.$loop.schedule(this.CHANGE_FULL);
442
+ } else if (this.$size.$dirty) {
443
+ this.$loop.schedule(this.CHANGE_FULL);
444
+ } else {
445
+ this.$computeLayerConfig();
446
+ this.$loop.schedule(this.CHANGE_MARKER);
447
+ }
448
+ };
449
+
450
+ /**
451
+ * Adjusts the wrap limit, which is the number of characters that can fit within the width of the edit area on screen.
452
+ **/
453
+ this.adjustWrapLimit = function() {
454
+ var availableWidth = this.$size.scrollerWidth - this.$padding * 2;
455
+ var limit = Math.floor(availableWidth / this.characterWidth);
456
+ return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);
457
+ };
458
+
459
+ /**
460
+ * Identifies whether you want to have an animated scroll or not.
461
+ * @param {Boolean} shouldAnimate Set to `true` to show animated scrolls
462
+ *
463
+ **/
464
+ this.setAnimatedScroll = function(shouldAnimate){
465
+ this.setOption("animatedScroll", shouldAnimate);
466
+ };
467
+
468
+ /**
469
+ * Returns whether an animated scroll happens or not.
470
+ * @returns {Boolean}
471
+ **/
472
+ this.getAnimatedScroll = function() {
473
+ return this.$animatedScroll;
474
+ };
475
+
476
+ /**
477
+ * Identifies whether you want to show invisible characters or not.
478
+ * @param {Boolean} showInvisibles Set to `true` to show invisibles
479
+ *
480
+ **/
481
+ this.setShowInvisibles = function(showInvisibles) {
482
+ this.setOption("showInvisibles", showInvisibles);
483
+ };
484
+
485
+ /**
486
+ * Returns whether invisible characters are being shown or not.
487
+ * @returns {Boolean}
488
+ **/
489
+ this.getShowInvisibles = function() {
490
+ return this.getOption("showInvisibles");
491
+ };
492
+ this.getDisplayIndentGuides = function() {
493
+ return this.getOption("displayIndentGuides");
494
+ };
495
+
496
+ this.setDisplayIndentGuides = function(display) {
497
+ this.setOption("displayIndentGuides", display);
498
+ };
499
+
500
+ /**
501
+ * Identifies whether you want to show the print margin or not.
502
+ * @param {Boolean} showPrintMargin Set to `true` to show the print margin
503
+ *
504
+ **/
505
+ this.setShowPrintMargin = function(showPrintMargin) {
506
+ this.setOption("showPrintMargin", showPrintMargin);
507
+ };
508
+
509
+ /**
510
+ * Returns whether the print margin is being shown or not.
511
+ * @returns {Boolean}
512
+ **/
513
+ this.getShowPrintMargin = function() {
514
+ return this.getOption("showPrintMargin");
515
+ };
516
+ /**
517
+ * Identifies whether you want to show the print margin column or not.
518
+ * @param {Boolean} showPrintMargin Set to `true` to show the print margin column
519
+ *
520
+ **/
521
+ this.setPrintMarginColumn = function(showPrintMargin) {
522
+ this.setOption("printMarginColumn", showPrintMargin);
523
+ };
524
+
525
+ /**
526
+ * Returns whether the print margin column is being shown or not.
527
+ * @returns {Boolean}
528
+ **/
529
+ this.getPrintMarginColumn = function() {
530
+ return this.getOption("printMarginColumn");
531
+ };
532
+
533
+ /**
534
+ * Returns `true` if the gutter is being shown.
535
+ * @returns {Boolean}
536
+ **/
537
+ this.getShowGutter = function(){
538
+ return this.getOption("showGutter");
539
+ };
540
+
541
+ /**
542
+ * Identifies whether you want to show the gutter or not.
543
+ * @param {Boolean} show Set to `true` to show the gutter
544
+ *
545
+ **/
546
+ this.setShowGutter = function(show){
547
+ return this.setOption("showGutter", show);
548
+ };
549
+
550
+ this.getFadeFoldWidgets = function(){
551
+ return this.getOption("fadeFoldWidgets")
552
+ };
553
+
554
+ this.setFadeFoldWidgets = function(show) {
555
+ this.setOption("fadeFoldWidgets", show);
556
+ };
557
+
558
+ this.setHighlightGutterLine = function(shouldHighlight) {
559
+ this.setOption("highlightGutterLine", shouldHighlight);
560
+ };
561
+
562
+ this.getHighlightGutterLine = function() {
563
+ return this.getOption("highlightGutterLine");
564
+ };
565
+
566
+ this.$updateGutterLineHighlight = function() {
567
+ var pos = this.$cursorLayer.$pixelPos;
568
+ var height = this.layerConfig.lineHeight;
569
+ if (this.session.getUseWrapMode()) {
570
+ var cursor = this.session.selection.getCursor();
571
+ cursor.column = 0;
572
+ pos = this.$cursorLayer.getPixelPosition(cursor, true);
573
+ height *= this.session.getRowLength(cursor.row);
574
+ }
575
+ this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + "px";
576
+ this.$gutterLineHighlight.style.height = height + "px";
577
+ };
578
+
579
+ this.$updatePrintMargin = function() {
580
+ if (!this.$showPrintMargin && !this.$printMarginEl)
581
+ return;
582
+
583
+ if (!this.$printMarginEl) {
584
+ var containerEl = dom.createElement("div");
585
+ containerEl.className = "ace_layer ace_print-margin-layer";
586
+ this.$printMarginEl = dom.createElement("div");
587
+ this.$printMarginEl.className = "ace_print-margin";
588
+ containerEl.appendChild(this.$printMarginEl);
589
+ this.content.insertBefore(containerEl, this.content.firstChild);
590
+ }
591
+
592
+ var style = this.$printMarginEl.style;
593
+ style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + "px";
594
+ style.visibility = this.$showPrintMargin ? "visible" : "hidden";
595
+
596
+ if (this.session && this.session.$wrap == -1)
597
+ this.adjustWrapLimit();
598
+ };
599
+
600
+ /**
601
+ *
602
+ * Returns the root element containing this renderer.
603
+ * @returns {DOMElement}
604
+ **/
605
+ this.getContainerElement = function() {
606
+ return this.container;
607
+ };
608
+
609
+ /**
610
+ *
611
+ * Returns the element that the mouse events are attached to
612
+ * @returns {DOMElement}
613
+ **/
614
+ this.getMouseEventTarget = function() {
615
+ return this.content;
616
+ };
617
+
618
+ /**
619
+ *
620
+ * Returns the element to which the hidden text area is added.
621
+ * @returns {DOMElement}
622
+ **/
623
+ this.getTextAreaContainer = function() {
624
+ return this.container;
625
+ };
626
+
627
+ // move text input over the cursor
628
+ // this is required for iOS and IME
629
+ this.$moveTextAreaToCursor = function() {
630
+ if (!this.$keepTextAreaAtCursor)
631
+ return;
632
+ var config = this.layerConfig;
633
+ var posTop = this.$cursorLayer.$pixelPos.top;
634
+ var posLeft = this.$cursorLayer.$pixelPos.left;
635
+ posTop -= config.offset;
636
+
637
+ var h = this.lineHeight;
638
+ if (posTop < 0 || posTop > config.height - h)
639
+ return;
640
+
641
+ var w = this.characterWidth;
642
+ if (this.$composition) {
643
+ var val = this.textarea.value.replace(/^\x01+/, "");
644
+ w *= (this.session.$getStringScreenWidth(val)[0]+2);
645
+ h += 2;
646
+ }
647
+ posLeft -= this.scrollLeft;
648
+ if (posLeft > this.$size.scrollerWidth - w)
649
+ posLeft = this.$size.scrollerWidth - w;
650
+
651
+ posLeft += this.gutterWidth;
652
+
653
+ this.textarea.style.height = h + "px";
654
+ this.textarea.style.width = w + "px";
655
+ this.textarea.style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + "px";
656
+ this.textarea.style.top = Math.min(posTop, this.$size.height - h) + "px";
657
+ };
658
+
659
+ /**
660
+ *
661
+ * [Returns the index of the first visible row.]{: #VirtualRenderer.getFirstVisibleRow}
662
+ * @returns {Number}
663
+ **/
664
+ this.getFirstVisibleRow = function() {
665
+ return this.layerConfig.firstRow;
666
+ };
667
+
668
+ /**
669
+ *
670
+ * Returns the index of the first fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
671
+ * @returns {Number}
672
+ **/
673
+ this.getFirstFullyVisibleRow = function() {
674
+ return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);
675
+ };
676
+
677
+ /**
678
+ *
679
+ * Returns the index of the last fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
680
+ * @returns {Number}
681
+ **/
682
+ this.getLastFullyVisibleRow = function() {
683
+ var flint = Math.floor((this.layerConfig.height + this.layerConfig.offset) / this.layerConfig.lineHeight);
684
+ return this.layerConfig.firstRow - 1 + flint;
685
+ };
686
+
687
+ /**
688
+ *
689
+ * [Returns the index of the last visible row.]{: #VirtualRenderer.getLastVisibleRow}
690
+ * @returns {Number}
691
+ **/
692
+ this.getLastVisibleRow = function() {
693
+ return this.layerConfig.lastRow;
694
+ };
695
+
696
+ this.$padding = null;
697
+
698
+ /**
699
+ * Sets the padding for all the layers.
700
+ * @param {Number} padding A new padding value (in pixels)
701
+ *
702
+ *
703
+ *
704
+ **/
705
+ this.setPadding = function(padding) {
706
+ this.$padding = padding;
707
+ this.$textLayer.setPadding(padding);
708
+ this.$cursorLayer.setPadding(padding);
709
+ this.$markerFront.setPadding(padding);
710
+ this.$markerBack.setPadding(padding);
711
+ this.$loop.schedule(this.CHANGE_FULL);
712
+ this.$updatePrintMargin();
713
+ };
714
+
715
+ this.setScrollMargin = function(top, bottom, left, right) {
716
+ var sm = this.scrollMargin;
717
+ sm.top = top|0;
718
+ sm.bottom = bottom|0;
719
+ sm.right = right|0;
720
+ sm.left = left|0;
721
+ sm.v = sm.top + sm.bottom;
722
+ sm.h = sm.left + sm.right;
723
+ if (sm.top && this.scrollTop <= 0 && this.session)
724
+ this.session.setScrollTop(-sm.top);
725
+ this.updateFull();
726
+ };
727
+
728
+ /**
729
+ * Returns whether the horizontal scrollbar is set to be always visible.
730
+ * @returns {Boolean}
731
+ **/
732
+ this.getHScrollBarAlwaysVisible = function() {
733
+ return this.$hScrollBarAlwaysVisible;
734
+ };
735
+
736
+ /**
737
+ * Identifies whether you want to show the horizontal scrollbar or not.
738
+ * @param {Boolean} alwaysVisible Set to `true` to make the horizontal scroll bar visible
739
+ **/
740
+ this.setHScrollBarAlwaysVisible = function(alwaysVisible) {
741
+ this.setOption("hScrollBarAlwaysVisible", alwaysVisible);
742
+ };
743
+ /**
744
+ * Returns whether the horizontal scrollbar is set to be always visible.
745
+ * @returns {Boolean}
746
+ **/
747
+ this.getVScrollBarAlwaysVisible = function() {
748
+ return this.$hScrollBarAlwaysVisible;
749
+ };
750
+
751
+ /**
752
+ * Identifies whether you want to show the horizontal scrollbar or not.
753
+ * @param {Boolean} alwaysVisible Set to `true` to make the horizontal scroll bar visible
754
+ **/
755
+ this.setVScrollBarAlwaysVisible = function(alwaysVisible) {
756
+ this.setOption("vScrollBarAlwaysVisible", alwaysVisible);
757
+ };
758
+
759
+ this.$updateScrollBarV = function() {
760
+ var scrollHeight = this.layerConfig.maxHeight;
761
+ var scrollerHeight = this.$size.scrollerHeight;
762
+ if (!this.$maxLines && this.$scrollPastEnd) {
763
+ scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;
764
+ if (this.scrollTop > scrollHeight - scrollerHeight) {
765
+ scrollHeight = this.scrollTop + scrollerHeight;
766
+ this.scrollBarV.scrollTop = null;
767
+ }
768
+ }
769
+ this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);
770
+ this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);
771
+ };
772
+ this.$updateScrollBarH = function() {
773
+ this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);
774
+ this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);
775
+ };
776
+
777
+ this.$frozen = false;
778
+ this.freeze = function() {
779
+ this.$frozen = true;
780
+ };
781
+
782
+ this.unfreeze = function() {
783
+ this.$frozen = false;
784
+ };
785
+
786
+ this.$renderChanges = function(changes, force) {
787
+ if (this.$changes) {
788
+ changes |= this.$changes;
789
+ this.$changes = 0;
790
+ }
791
+ if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {
792
+ this.$changes |= changes;
793
+ return;
794
+ }
795
+ if (this.$size.$dirty) {
796
+ this.$changes |= changes;
797
+ return this.onResize(true);
798
+ }
799
+ if (!this.lineHeight) {
800
+ this.$textLayer.checkForSizeChanges();
801
+ }
802
+ // this.$logChanges(changes);
803
+
804
+ this._signal("beforeRender");
805
+ var config = this.layerConfig;
806
+ // text, scrolling and resize changes can cause the view port size to change
807
+ if (changes & this.CHANGE_FULL ||
808
+ changes & this.CHANGE_SIZE ||
809
+ changes & this.CHANGE_TEXT ||
810
+ changes & this.CHANGE_LINES ||
811
+ changes & this.CHANGE_SCROLL ||
812
+ changes & this.CHANGE_H_SCROLL
813
+ ) {
814
+ changes |= this.$computeLayerConfig();
815
+ // If a change is made offscreen and wrapMode is on, then the onscreen
816
+ // lines may have been pushed down. If so, the first screen row will not
817
+ // have changed, but the first actual row will. In that case, adjust
818
+ // scrollTop so that the cursor and onscreen content stays in the same place.
819
+ // TODO: find a better way to handle this, that works non wrapped case and doesn't compute layerConfig twice
820
+ if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {
821
+ var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;
822
+ if (st > 0) {
823
+ // this check is needed as a workaround for the documentToScreenRow returning -1 if document.length == 0
824
+ this.scrollTop = st;
825
+ changes = changes | this.CHANGE_SCROLL;
826
+ changes |= this.$computeLayerConfig();
827
+ }
828
+ }
829
+ config = this.layerConfig;
830
+ // update scrollbar first to not lose scroll position when gutter calls resize
831
+ this.$updateScrollBarV();
832
+ if (changes & this.CHANGE_H_SCROLL)
833
+ this.$updateScrollBarH();
834
+ this.$gutterLayer.element.style.marginTop = (-config.offset) + "px";
835
+ this.content.style.marginTop = (-config.offset) + "px";
836
+ this.content.style.width = config.width + 2 * this.$padding + "px";
837
+ this.content.style.height = config.minHeight + "px";
838
+ }
839
+
840
+ // horizontal scrolling
841
+ if (changes & this.CHANGE_H_SCROLL) {
842
+ this.content.style.marginLeft = -this.scrollLeft + "px";
843
+ this.scroller.className = this.scrollLeft <= 0 ? "ace_scroller" : "ace_scroller ace_scroll-left";
844
+ }
845
+
846
+ // full
847
+ if (changes & this.CHANGE_FULL) {
848
+ this.$textLayer.update(config);
849
+ if (this.$showGutter)
850
+ this.$gutterLayer.update(config);
851
+ this.$markerBack.update(config);
852
+ this.$markerFront.update(config);
853
+ this.$cursorLayer.update(config);
854
+ this.$moveTextAreaToCursor();
855
+ this.$highlightGutterLine && this.$updateGutterLineHighlight();
856
+ this._signal("afterRender");
857
+ return;
858
+ }
859
+
860
+ // scrolling
861
+ if (changes & this.CHANGE_SCROLL) {
862
+ if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)
863
+ this.$textLayer.update(config);
864
+ else
865
+ this.$textLayer.scrollLines(config);
866
+
867
+ if (this.$showGutter)
868
+ this.$gutterLayer.update(config);
869
+ this.$markerBack.update(config);
870
+ this.$markerFront.update(config);
871
+ this.$cursorLayer.update(config);
872
+ this.$highlightGutterLine && this.$updateGutterLineHighlight();
873
+ this.$moveTextAreaToCursor();
874
+ this._signal("afterRender");
875
+ return;
876
+ }
877
+
878
+ if (changes & this.CHANGE_TEXT) {
879
+ this.$textLayer.update(config);
880
+ if (this.$showGutter)
881
+ this.$gutterLayer.update(config);
882
+ }
883
+ else if (changes & this.CHANGE_LINES) {
884
+ if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)
885
+ this.$gutterLayer.update(config);
886
+ }
887
+ else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {
888
+ if (this.$showGutter)
889
+ this.$gutterLayer.update(config);
890
+ }
891
+
892
+ if (changes & this.CHANGE_CURSOR) {
893
+ this.$cursorLayer.update(config);
894
+ this.$moveTextAreaToCursor();
895
+ this.$highlightGutterLine && this.$updateGutterLineHighlight();
896
+ }
897
+
898
+ if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {
899
+ this.$markerFront.update(config);
900
+ }
901
+
902
+ if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {
903
+ this.$markerBack.update(config);
904
+ }
905
+
906
+ this._signal("afterRender");
907
+ };
908
+
909
+
910
+ this.$autosize = function() {
911
+ var height = this.session.getScreenLength() * this.lineHeight;
912
+ var maxHeight = this.$maxLines * this.lineHeight;
913
+ var desiredHeight = Math.max(
914
+ (this.$minLines||1) * this.lineHeight,
915
+ Math.min(maxHeight, height)
916
+ ) + this.scrollMargin.v + (this.$extraHeight || 0);
917
+ var vScroll = height > maxHeight;
918
+
919
+ if (desiredHeight != this.desiredHeight ||
920
+ this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {
921
+ if (vScroll != this.$vScroll) {
922
+ this.$vScroll = vScroll;
923
+ this.scrollBarV.setVisible(vScroll);
924
+ }
925
+
926
+ var w = this.container.clientWidth;
927
+ this.container.style.height = desiredHeight + "px";
928
+ this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);
929
+ // this.$loop.changes = 0;
930
+ this.desiredHeight = desiredHeight;
931
+
932
+ this._signal("autosize");
933
+ }
934
+ };
935
+
936
+ this.$computeLayerConfig = function() {
937
+ if (this.$maxLines && this.lineHeight > 1)
938
+ this.$autosize();
939
+
940
+ var session = this.session;
941
+ var size = this.$size;
942
+
943
+ var hideScrollbars = size.height <= 2 * this.lineHeight;
944
+ var screenLines = this.session.getScreenLength();
945
+ var maxHeight = screenLines * this.lineHeight;
946
+
947
+ var offset = this.scrollTop % this.lineHeight;
948
+ var minHeight = size.scrollerHeight + this.lineHeight;
949
+
950
+ var longestLine = this.$getLongestLine();
951
+
952
+ var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||
953
+ size.scrollerWidth - longestLine - 2 * this.$padding < 0);
954
+
955
+ var hScrollChanged = this.$horizScroll !== horizScroll;
956
+ if (hScrollChanged) {
957
+ this.$horizScroll = horizScroll;
958
+ this.scrollBarH.setVisible(horizScroll);
959
+ }
960
+
961
+ var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd
962
+ ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd
963
+ : 0;
964
+ maxHeight += scrollPastEnd;
965
+
966
+ this.session.setScrollTop(Math.max(-this.scrollMargin.top,
967
+ Math.min(this.scrollTop, maxHeight - size.scrollerHeight + this.scrollMargin.bottom)));
968
+
969
+ this.session.setScrollLeft(Math.max(-this.scrollMargin.left, Math.min(this.scrollLeft,
970
+ longestLine + 2 * this.$padding - size.scrollerWidth + this.scrollMargin.right)));
971
+
972
+ var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||
973
+ size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop);
974
+ var vScrollChanged = this.$vScroll !== vScroll;
975
+ if (vScrollChanged) {
976
+ this.$vScroll = vScroll;
977
+ this.scrollBarV.setVisible(vScroll);
978
+ }
979
+
980
+ var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;
981
+ var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));
982
+ var lastRow = firstRow + lineCount;
983
+
984
+ // Map lines on the screen to lines in the document.
985
+ var firstRowScreen, firstRowHeight;
986
+ var lineHeight = this.lineHeight;
987
+ firstRow = session.screenToDocumentRow(firstRow, 0);
988
+
989
+ // Check if firstRow is inside of a foldLine. If true, then use the first
990
+ // row of the foldLine.
991
+ var foldLine = session.getFoldLine(firstRow);
992
+ if (foldLine) {
993
+ firstRow = foldLine.start.row;
994
+ }
995
+
996
+ firstRowScreen = session.documentToScreenRow(firstRow, 0);
997
+ firstRowHeight = session.getRowLength(firstRow) * lineHeight;
998
+
999
+ lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);
1000
+ minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +
1001
+ firstRowHeight;
1002
+
1003
+ offset = this.scrollTop - firstRowScreen * lineHeight;
1004
+
1005
+ var changes = 0;
1006
+ if (this.layerConfig.width != longestLine)
1007
+ changes = this.CHANGE_H_SCROLL;
1008
+ // Horizontal scrollbar visibility may have changed, which changes
1009
+ // the client height of the scroller
1010
+ if (hScrollChanged || vScrollChanged) {
1011
+ changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);
1012
+ this._signal("scrollbarVisibilityChanged");
1013
+ if (vScrollChanged)
1014
+ longestLine = this.$getLongestLine();
1015
+ }
1016
+
1017
+ this.layerConfig = {
1018
+ width : longestLine,
1019
+ padding : this.$padding,
1020
+ firstRow : firstRow,
1021
+ firstRowScreen: firstRowScreen,
1022
+ lastRow : lastRow,
1023
+ lineHeight : lineHeight,
1024
+ characterWidth : this.characterWidth,
1025
+ minHeight : minHeight,
1026
+ maxHeight : maxHeight,
1027
+ offset : offset,
1028
+ gutterOffset : Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)),
1029
+ height : this.$size.scrollerHeight
1030
+ };
1031
+
1032
+ // For debugging.
1033
+ // console.log(JSON.stringify(this.layerConfig));
1034
+
1035
+ return changes;
1036
+ };
1037
+
1038
+ this.$updateLines = function() {
1039
+ var firstRow = this.$changedLines.firstRow;
1040
+ var lastRow = this.$changedLines.lastRow;
1041
+ this.$changedLines = null;
1042
+
1043
+ var layerConfig = this.layerConfig;
1044
+
1045
+ if (firstRow > layerConfig.lastRow + 1) { return; }
1046
+ if (lastRow < layerConfig.firstRow) { return; }
1047
+
1048
+ // if the last row is unknown -> redraw everything
1049
+ if (lastRow === Infinity) {
1050
+ if (this.$showGutter)
1051
+ this.$gutterLayer.update(layerConfig);
1052
+ this.$textLayer.update(layerConfig);
1053
+ return;
1054
+ }
1055
+
1056
+ // else update only the changed rows
1057
+ this.$textLayer.updateLines(layerConfig, firstRow, lastRow);
1058
+ return true;
1059
+ };
1060
+
1061
+ this.$getLongestLine = function() {
1062
+ var charCount = this.session.getScreenWidth();
1063
+ if (this.showInvisibles && !this.session.$useWrapMode)
1064
+ charCount += 1;
1065
+
1066
+ return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));
1067
+ };
1068
+
1069
+ /**
1070
+ *
1071
+ * Schedules an update to all the front markers in the document.
1072
+ **/
1073
+ this.updateFrontMarkers = function() {
1074
+ this.$markerFront.setMarkers(this.session.getMarkers(true));
1075
+ this.$loop.schedule(this.CHANGE_MARKER_FRONT);
1076
+ };
1077
+
1078
+ /**
1079
+ *
1080
+ * Schedules an update to all the back markers in the document.
1081
+ **/
1082
+ this.updateBackMarkers = function() {
1083
+ this.$markerBack.setMarkers(this.session.getMarkers());
1084
+ this.$loop.schedule(this.CHANGE_MARKER_BACK);
1085
+ };
1086
+
1087
+ /**
1088
+ *
1089
+ * Deprecated; (moved to [[EditSession]])
1090
+ * @deprecated
1091
+ **/
1092
+ this.addGutterDecoration = function(row, className){
1093
+ this.$gutterLayer.addGutterDecoration(row, className);
1094
+ };
1095
+
1096
+ /**
1097
+ * Deprecated; (moved to [[EditSession]])
1098
+ * @deprecated
1099
+ **/
1100
+ this.removeGutterDecoration = function(row, className){
1101
+ this.$gutterLayer.removeGutterDecoration(row, className);
1102
+ };
1103
+
1104
+ /**
1105
+ *
1106
+ * Redraw breakpoints.
1107
+ **/
1108
+ this.updateBreakpoints = function(rows) {
1109
+ this.$loop.schedule(this.CHANGE_GUTTER);
1110
+ };
1111
+
1112
+ /**
1113
+ *
1114
+ * Sets annotations for the gutter.
1115
+ * @param {Array} annotations An array containing annotations
1116
+ *
1117
+ *
1118
+ **/
1119
+ this.setAnnotations = function(annotations) {
1120
+ this.$gutterLayer.setAnnotations(annotations);
1121
+ this.$loop.schedule(this.CHANGE_GUTTER);
1122
+ };
1123
+
1124
+ /**
1125
+ *
1126
+ * Updates the cursor icon.
1127
+ **/
1128
+ this.updateCursor = function() {
1129
+ this.$loop.schedule(this.CHANGE_CURSOR);
1130
+ };
1131
+
1132
+ /**
1133
+ *
1134
+ * Hides the cursor icon.
1135
+ **/
1136
+ this.hideCursor = function() {
1137
+ this.$cursorLayer.hideCursor();
1138
+ };
1139
+
1140
+ /**
1141
+ *
1142
+ * Shows the cursor icon.
1143
+ **/
1144
+ this.showCursor = function() {
1145
+ this.$cursorLayer.showCursor();
1146
+ };
1147
+
1148
+ this.scrollSelectionIntoView = function(anchor, lead, offset) {
1149
+ // first scroll anchor into view then scroll lead into view
1150
+ this.scrollCursorIntoView(anchor, offset);
1151
+ this.scrollCursorIntoView(lead, offset);
1152
+ };
1153
+
1154
+ /**
1155
+ *
1156
+ * Scrolls the cursor into the first visibile area of the editor
1157
+ **/
1158
+ this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {
1159
+ // the editor is not visible
1160
+ if (this.$size.scrollerHeight === 0)
1161
+ return;
1162
+
1163
+ var pos = this.$cursorLayer.getPixelPosition(cursor);
1164
+
1165
+ var left = pos.left;
1166
+ var top = pos.top;
1167
+
1168
+ var topMargin = $viewMargin && $viewMargin.top || 0;
1169
+ var bottomMargin = $viewMargin && $viewMargin.bottom || 0;
1170
+
1171
+ var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;
1172
+
1173
+ if (scrollTop + topMargin > top) {
1174
+ if (offset)
1175
+ top -= offset * this.$size.scrollerHeight;
1176
+ if (top === 0)
1177
+ top = -this.scrollMargin.top;
1178
+ this.session.setScrollTop(top);
1179
+ } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {
1180
+ if (offset)
1181
+ top += offset * this.$size.scrollerHeight;
1182
+ this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);
1183
+ }
1184
+
1185
+ var scrollLeft = this.scrollLeft;
1186
+
1187
+ if (scrollLeft > left) {
1188
+ if (left < this.$padding + 2 * this.layerConfig.characterWidth)
1189
+ left = -this.scrollMargin.left;
1190
+ this.session.setScrollLeft(left);
1191
+ } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {
1192
+ this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));
1193
+ } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {
1194
+ this.session.setScrollLeft(0);
1195
+ }
1196
+ };
1197
+
1198
+ /**
1199
+ * {:EditSession.getScrollTop}
1200
+ * @related EditSession.getScrollTop
1201
+ * @returns {Number}
1202
+ **/
1203
+ this.getScrollTop = function() {
1204
+ return this.session.getScrollTop();
1205
+ };
1206
+
1207
+ /**
1208
+ * {:EditSession.getScrollLeft}
1209
+ * @related EditSession.getScrollLeft
1210
+ * @returns {Number}
1211
+ **/
1212
+ this.getScrollLeft = function() {
1213
+ return this.session.getScrollLeft();
1214
+ };
1215
+
1216
+ /**
1217
+ *
1218
+ * Returns the first visible row, regardless of whether it's fully visible or not.
1219
+ * @returns {Number}
1220
+ **/
1221
+ this.getScrollTopRow = function() {
1222
+ return this.scrollTop / this.lineHeight;
1223
+ };
1224
+
1225
+ /**
1226
+ *
1227
+ * Returns the last visible row, regardless of whether it's fully visible or not.
1228
+ * @returns {Number}
1229
+ **/
1230
+ this.getScrollBottomRow = function() {
1231
+ return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);
1232
+ };
1233
+
1234
+ /**
1235
+ * Gracefully scrolls from the top of the editor to the row indicated.
1236
+ * @param {Number} row A row id
1237
+ *
1238
+ *
1239
+ * @related EditSession.setScrollTop
1240
+ **/
1241
+ this.scrollToRow = function(row) {
1242
+ this.session.setScrollTop(row * this.lineHeight);
1243
+ };
1244
+
1245
+ this.alignCursor = function(cursor, alignment) {
1246
+ if (typeof cursor == "number")
1247
+ cursor = {row: cursor, column: 0};
1248
+
1249
+ var pos = this.$cursorLayer.getPixelPosition(cursor);
1250
+ var h = this.$size.scrollerHeight - this.lineHeight;
1251
+ var offset = pos.top - h * (alignment || 0);
1252
+
1253
+ this.session.setScrollTop(offset);
1254
+ return offset;
1255
+ };
1256
+
1257
+ this.STEPS = 8;
1258
+ this.$calcSteps = function(fromValue, toValue){
1259
+ var i = 0;
1260
+ var l = this.STEPS;
1261
+ var steps = [];
1262
+
1263
+ var func = function(t, x_min, dx) {
1264
+ return dx * (Math.pow(t - 1, 3) + 1) + x_min;
1265
+ };
1266
+
1267
+ for (i = 0; i < l; ++i)
1268
+ steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));
1269
+
1270
+ return steps;
1271
+ };
1272
+
1273
+ /**
1274
+ * Gracefully scrolls the editor to the row indicated.
1275
+ * @param {Number} line A line number
1276
+ * @param {Boolean} center If `true`, centers the editor the to indicated line
1277
+ * @param {Boolean} animate If `true` animates scrolling
1278
+ * @param {Function} callback Function to be called after the animation has finished
1279
+ *
1280
+ *
1281
+ **/
1282
+ this.scrollToLine = function(line, center, animate, callback) {
1283
+ var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});
1284
+ var offset = pos.top;
1285
+ if (center)
1286
+ offset -= this.$size.scrollerHeight / 2;
1287
+
1288
+ var initialScroll = this.scrollTop;
1289
+ this.session.setScrollTop(offset);
1290
+ if (animate !== false)
1291
+ this.animateScrolling(initialScroll, callback);
1292
+ };
1293
+
1294
+ this.animateScrolling = function(fromValue, callback) {
1295
+ var toValue = this.scrollTop;
1296
+ if (!this.$animatedScroll)
1297
+ return;
1298
+ var _self = this;
1299
+
1300
+ if (fromValue == toValue)
1301
+ return;
1302
+
1303
+ if (this.$scrollAnimation) {
1304
+ var oldSteps = this.$scrollAnimation.steps;
1305
+ if (oldSteps.length) {
1306
+ fromValue = oldSteps[0];
1307
+ if (fromValue == toValue)
1308
+ return;
1309
+ }
1310
+ }
1311
+
1312
+ var steps = _self.$calcSteps(fromValue, toValue);
1313
+ this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};
1314
+
1315
+ clearInterval(this.$timer);
1316
+
1317
+ _self.session.setScrollTop(steps.shift());
1318
+ // trick session to think it's already scrolled to not loose toValue
1319
+ _self.session.$scrollTop = toValue;
1320
+ this.$timer = setInterval(function() {
1321
+ if (steps.length) {
1322
+ _self.session.setScrollTop(steps.shift());
1323
+ _self.session.$scrollTop = toValue;
1324
+ } else if (toValue != null) {
1325
+ _self.session.$scrollTop = -1;
1326
+ _self.session.setScrollTop(toValue);
1327
+ toValue = null;
1328
+ } else {
1329
+ // do this on separate step to not get spurious scroll event from scrollbar
1330
+ _self.$timer = clearInterval(_self.$timer);
1331
+ _self.$scrollAnimation = null;
1332
+ callback && callback();
1333
+ }
1334
+ }, 10);
1335
+ };
1336
+
1337
+ /**
1338
+ * Scrolls the editor to the y pixel indicated.
1339
+ * @param {Number} scrollTop The position to scroll to
1340
+ *
1341
+ *
1342
+ * @returns {Number}
1343
+ **/
1344
+ this.scrollToY = function(scrollTop) {
1345
+ // after calling scrollBar.setScrollTop
1346
+ // scrollbar sends us event with same scrollTop. ignore it
1347
+ if (this.scrollTop !== scrollTop) {
1348
+ this.$loop.schedule(this.CHANGE_SCROLL);
1349
+ this.scrollTop = scrollTop;
1350
+ }
1351
+ };
1352
+
1353
+ /**
1354
+ * Scrolls the editor across the x-axis to the pixel indicated.
1355
+ * @param {Number} scrollLeft The position to scroll to
1356
+ *
1357
+ *
1358
+ * @returns {Number}
1359
+ **/
1360
+ this.scrollToX = function(scrollLeft) {
1361
+ if (this.scrollLeft !== scrollLeft)
1362
+ this.scrollLeft = scrollLeft;
1363
+ this.$loop.schedule(this.CHANGE_H_SCROLL);
1364
+ };
1365
+
1366
+ /**
1367
+ * Scrolls the editor across both x- and y-axes.
1368
+ * @param {Number} x The x value to scroll to
1369
+ * @param {Number} y The y value to scroll to
1370
+ **/
1371
+ this.scrollTo = function(x, y) {
1372
+ this.session.setScrollTop(y);
1373
+ this.session.setScrollLeft(y);
1374
+ };
1375
+
1376
+ /**
1377
+ * Scrolls the editor across both x- and y-axes.
1378
+ * @param {Number} deltaX The x value to scroll by
1379
+ * @param {Number} deltaY The y value to scroll by
1380
+ **/
1381
+ this.scrollBy = function(deltaX, deltaY) {
1382
+ deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);
1383
+ deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);
1384
+ };
1385
+
1386
+ /**
1387
+ * Returns `true` if you can still scroll by either parameter; in other words, you haven't reached the end of the file or line.
1388
+ * @param {Number} deltaX The x value to scroll by
1389
+ * @param {Number} deltaY The y value to scroll by
1390
+ *
1391
+ *
1392
+ * @returns {Boolean}
1393
+ **/
1394
+ this.isScrollableBy = function(deltaX, deltaY) {
1395
+ if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)
1396
+ return true;
1397
+ if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight
1398
+ - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)
1399
+ return true;
1400
+ if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)
1401
+ return true;
1402
+ if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth
1403
+ - this.layerConfig.width < -1 + this.scrollMargin.right)
1404
+ return true;
1405
+ };
1406
+
1407
+ this.pixelToScreenCoordinates = function(x, y) {
1408
+ var canvasPos = this.scroller.getBoundingClientRect();
1409
+
1410
+ var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth;
1411
+ var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);
1412
+ var col = Math.round(offset);
1413
+
1414
+ return {row: row, column: col, side: offset - col > 0 ? 1 : -1};
1415
+ };
1416
+
1417
+ this.screenToTextCoordinates = function(x, y) {
1418
+ var canvasPos = this.scroller.getBoundingClientRect();
1419
+
1420
+ var col = Math.round(
1421
+ (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth
1422
+ );
1423
+
1424
+ var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;
1425
+
1426
+ return this.session.screenToDocumentPosition(row, Math.max(col, 0));
1427
+ };
1428
+
1429
+ /**
1430
+ * Returns an object containing the `pageX` and `pageY` coordinates of the document position.
1431
+ * @param {Number} row The document row position
1432
+ * @param {Number} column The document column position
1433
+ *
1434
+ *
1435
+ *
1436
+ * @returns {Object}
1437
+ **/
1438
+ this.textToScreenCoordinates = function(row, column) {
1439
+ var canvasPos = this.scroller.getBoundingClientRect();
1440
+ var pos = this.session.documentToScreenPosition(row, column);
1441
+
1442
+ var x = this.$padding + Math.round(pos.column * this.characterWidth);
1443
+ var y = pos.row * this.lineHeight;
1444
+
1445
+ return {
1446
+ pageX: canvasPos.left + x - this.scrollLeft,
1447
+ pageY: canvasPos.top + y - this.scrollTop
1448
+ };
1449
+ };
1450
+
1451
+ /**
1452
+ *
1453
+ * Focuses the current container.
1454
+ **/
1455
+ this.visualizeFocus = function() {
1456
+ dom.addCssClass(this.container, "ace_focus");
1457
+ };
1458
+
1459
+ /**
1460
+ *
1461
+ * Blurs the current container.
1462
+ **/
1463
+ this.visualizeBlur = function() {
1464
+ dom.removeCssClass(this.container, "ace_focus");
1465
+ };
1466
+
1467
+ /**
1468
+ * @param {Number} position
1469
+ *
1470
+ * @private
1471
+ **/
1472
+ this.showComposition = function(position) {
1473
+ if (!this.$composition)
1474
+ this.$composition = {
1475
+ keepTextAreaAtCursor: this.$keepTextAreaAtCursor,
1476
+ cssText: this.textarea.style.cssText
1477
+ };
1478
+
1479
+ this.$keepTextAreaAtCursor = true;
1480
+ dom.addCssClass(this.textarea, "ace_composition");
1481
+ this.textarea.style.cssText = "";
1482
+ this.$moveTextAreaToCursor();
1483
+ };
1484
+
1485
+ /**
1486
+ * @param {String} text A string of text to use
1487
+ *
1488
+ * Sets the inner text of the current composition to `text`.
1489
+ **/
1490
+ this.setCompositionText = function(text) {
1491
+ this.$moveTextAreaToCursor();
1492
+ };
1493
+
1494
+ /**
1495
+ *
1496
+ * Hides the current composition.
1497
+ **/
1498
+ this.hideComposition = function() {
1499
+ if (!this.$composition)
1500
+ return;
1501
+
1502
+ dom.removeCssClass(this.textarea, "ace_composition");
1503
+ this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;
1504
+ this.textarea.style.cssText = this.$composition.cssText;
1505
+ this.$composition = null;
1506
+ };
1507
+
1508
+ /**
1509
+ * [Sets a new theme for the editor. `theme` should exist, and be a directory path, like `ace/theme/textmate`.]{: #VirtualRenderer.setTheme}
1510
+ * @param {String} theme The path to a theme
1511
+ * @param {Function} cb optional callback
1512
+ *
1513
+ **/
1514
+ this.setTheme = function(theme, cb) {
1515
+ var _self = this;
1516
+ this.$themeId = theme;
1517
+ _self._dispatchEvent('themeChange',{theme:theme});
1518
+
1519
+ if (!theme || typeof theme == "string") {
1520
+ var moduleName = theme || this.$options.theme.initialValue;
1521
+ config.loadModule(["theme", moduleName], afterLoad);
1522
+ } else {
1523
+ afterLoad(theme);
1524
+ }
1525
+
1526
+ function afterLoad(module) {
1527
+ if (_self.$themeId != theme)
1528
+ return cb && cb();
1529
+ if (!module.cssClass)
1530
+ return;
1531
+ dom.importCssString(
1532
+ module.cssText,
1533
+ module.cssClass,
1534
+ _self.container.ownerDocument
1535
+ );
1536
+
1537
+ if (_self.theme)
1538
+ dom.removeCssClass(_self.container, _self.theme.cssClass);
1539
+
1540
+ var padding = "padding" in module ? module.padding
1541
+ : "padding" in (_self.theme || {}) ? 4 : _self.$padding;
1542
+ if (_self.$padding && padding != _self.$padding)
1543
+ _self.setPadding(padding);
1544
+
1545
+ // this is kept only for backwards compatibility
1546
+ _self.$theme = module.cssClass;
1547
+
1548
+ _self.theme = module;
1549
+ dom.addCssClass(_self.container, module.cssClass);
1550
+ dom.setCssClass(_self.container, "ace_dark", module.isDark);
1551
+
1552
+ // force re-measure of the gutter width
1553
+ if (_self.$size) {
1554
+ _self.$size.width = 0;
1555
+ _self.$updateSizeAsync();
1556
+ }
1557
+
1558
+ _self._dispatchEvent('themeLoaded', {theme:module});
1559
+ cb && cb();
1560
+ }
1561
+ };
1562
+
1563
+ /**
1564
+ * [Returns the path of the current theme.]{: #VirtualRenderer.getTheme}
1565
+ * @returns {String}
1566
+ **/
1567
+ this.getTheme = function() {
1568
+ return this.$themeId;
1569
+ };
1570
+
1571
+ // Methods allows to add / remove CSS classnames to the editor element.
1572
+ // This feature can be used by plug-ins to provide a visual indication of
1573
+ // a certain mode that editor is in.
1574
+
1575
+ /**
1576
+ * [Adds a new class, `style`, to the editor.]{: #VirtualRenderer.setStyle}
1577
+ * @param {String} style A class name
1578
+ *
1579
+ **/
1580
+ this.setStyle = function(style, include) {
1581
+ dom.setCssClass(this.container, style, include !== false);
1582
+ };
1583
+
1584
+ /**
1585
+ * [Removes the class `style` from the editor.]{: #VirtualRenderer.unsetStyle}
1586
+ * @param {String} style A class name
1587
+ *
1588
+ **/
1589
+ this.unsetStyle = function(style) {
1590
+ dom.removeCssClass(this.container, style);
1591
+ };
1592
+
1593
+ this.setCursorStyle = function(style) {
1594
+ if (this.scroller.style.cursor != style)
1595
+ this.scroller.style.cursor = style;
1596
+ };
1597
+
1598
+ /**
1599
+ * @param {String} cursorStyle A css cursor style
1600
+ *
1601
+ **/
1602
+ this.setMouseCursor = function(cursorStyle) {
1603
+ this.scroller.style.cursor = cursorStyle;
1604
+ };
1605
+
1606
+ /**
1607
+ * Destroys the text and cursor layers for this renderer.
1608
+ **/
1609
+ this.destroy = function() {
1610
+ this.$textLayer.destroy();
1611
+ this.$cursorLayer.destroy();
1612
+ };
1613
+
1614
+ }).call(VirtualRenderer.prototype);
1615
+
1616
+
1617
+ config.defineOptions(VirtualRenderer.prototype, "renderer", {
1618
+ animatedScroll: {initialValue: false},
1619
+ showInvisibles: {
1620
+ set: function(value) {
1621
+ if (this.$textLayer.setShowInvisibles(value))
1622
+ this.$loop.schedule(this.CHANGE_TEXT);
1623
+ },
1624
+ initialValue: false
1625
+ },
1626
+ showPrintMargin: {
1627
+ set: function() { this.$updatePrintMargin(); },
1628
+ initialValue: true
1629
+ },
1630
+ printMarginColumn: {
1631
+ set: function() { this.$updatePrintMargin(); },
1632
+ initialValue: 80
1633
+ },
1634
+ printMargin: {
1635
+ set: function(val) {
1636
+ if (typeof val == "number")
1637
+ this.$printMarginColumn = val;
1638
+ this.$showPrintMargin = !!val;
1639
+ this.$updatePrintMargin();
1640
+ },
1641
+ get: function() {
1642
+ return this.$showPrintMargin && this.$printMarginColumn;
1643
+ }
1644
+ },
1645
+ showGutter: {
1646
+ set: function(show){
1647
+ this.$gutter.style.display = show ? "block" : "none";
1648
+ this.$loop.schedule(this.CHANGE_FULL);
1649
+ this.onGutterResize();
1650
+ },
1651
+ initialValue: true
1652
+ },
1653
+ fadeFoldWidgets: {
1654
+ set: function(show) {
1655
+ dom.setCssClass(this.$gutter, "ace_fade-fold-widgets", show);
1656
+ },
1657
+ initialValue: false
1658
+ },
1659
+ showFoldWidgets: {
1660
+ set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)},
1661
+ initialValue: true
1662
+ },
1663
+ showLineNumbers: {
1664
+ set: function(show) {
1665
+ this.$gutterLayer.setShowLineNumbers(show);
1666
+ this.$loop.schedule(this.CHANGE_GUTTER);
1667
+ },
1668
+ initialValue: true
1669
+ },
1670
+ displayIndentGuides: {
1671
+ set: function(show) {
1672
+ if (this.$textLayer.setDisplayIndentGuides(show))
1673
+ this.$loop.schedule(this.CHANGE_TEXT);
1674
+ },
1675
+ initialValue: true
1676
+ },
1677
+ highlightGutterLine: {
1678
+ set: function(shouldHighlight) {
1679
+ if (!this.$gutterLineHighlight) {
1680
+ this.$gutterLineHighlight = dom.createElement("div");
1681
+ this.$gutterLineHighlight.className = "ace_gutter-active-line";
1682
+ this.$gutter.appendChild(this.$gutterLineHighlight);
1683
+ return;
1684
+ }
1685
+
1686
+ this.$gutterLineHighlight.style.display = shouldHighlight ? "" : "none";
1687
+ // if cursorlayer have never been updated there's nothing on screen to update
1688
+ if (this.$cursorLayer.$pixelPos)
1689
+ this.$updateGutterLineHighlight();
1690
+ },
1691
+ initialValue: false,
1692
+ value: true
1693
+ },
1694
+ hScrollBarAlwaysVisible: {
1695
+ set: function(val) {
1696
+ if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)
1697
+ this.$loop.schedule(this.CHANGE_SCROLL);
1698
+ },
1699
+ initialValue: false
1700
+ },
1701
+ vScrollBarAlwaysVisible: {
1702
+ set: function(val) {
1703
+ if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)
1704
+ this.$loop.schedule(this.CHANGE_SCROLL);
1705
+ },
1706
+ initialValue: false
1707
+ },
1708
+ fontSize: {
1709
+ set: function(size) {
1710
+ if (typeof size == "number")
1711
+ size = size + "px";
1712
+ this.container.style.fontSize = size;
1713
+ this.updateFontSize();
1714
+ },
1715
+ initialValue: 12
1716
+ },
1717
+ fontFamily: {
1718
+ set: function(name) {
1719
+ this.container.style.fontFamily = name;
1720
+ this.updateFontSize();
1721
+ }
1722
+ },
1723
+ maxLines: {
1724
+ set: function(val) {
1725
+ this.updateFull();
1726
+ }
1727
+ },
1728
+ minLines: {
1729
+ set: function(val) {
1730
+ this.updateFull();
1731
+ }
1732
+ },
1733
+ scrollPastEnd: {
1734
+ set: function(val) {
1735
+ val = +val || 0;
1736
+ if (this.$scrollPastEnd == val)
1737
+ return;
1738
+ this.$scrollPastEnd = val;
1739
+ this.$loop.schedule(this.CHANGE_SCROLL);
1740
+ },
1741
+ initialValue: 0,
1742
+ handlesSet: true
1743
+ },
1744
+ fixedWidthGutter: {
1745
+ set: function(val) {
1746
+ this.$gutterLayer.$fixedWidth = !!val;
1747
+ this.$loop.schedule(this.CHANGE_GUTTER);
1748
+ }
1749
+ },
1750
+ theme: {
1751
+ set: function(val) { this.setTheme(val) },
1752
+ get: function() { return this.$themeId || this.theme; },
1753
+ initialValue: "./theme/textmate",
1754
+ handlesSet: true
1755
+ }
1756
+ });
1757
+
1758
+ exports.VirtualRenderer = VirtualRenderer;
1759
+ });