pollypost 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,57 @@
1
+ /* ***** BEGIN LICENSE BLOCK *****
2
+ * Distributed under the BSD license:
3
+ *
4
+ * Copyright (c) 2012, 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
+ // [WIP]
32
+
33
+ define(function(require, exports, module) {
34
+ "use strict";
35
+ var TokenIterator = require("ace/token_iterator").TokenIterator;
36
+
37
+ var phpTransform = require("./beautify/php_rules").transform;
38
+
39
+ exports.beautify = function(session) {
40
+ var iterator = new TokenIterator(session, 0, 0);
41
+ var token = iterator.getCurrentToken();
42
+
43
+ var context = session.$modeId.split("/").pop();
44
+
45
+ var code = phpTransform(iterator, context);
46
+ session.doc.setValue(code);
47
+ };
48
+
49
+ exports.commands = [{
50
+ name: "beautify",
51
+ exec: function(editor) {
52
+ exports.beautify(editor.session);
53
+ },
54
+ bindKey: "Ctrl-Shift-B"
55
+ }]
56
+
57
+ });
@@ -0,0 +1,366 @@
1
+ /* ***** BEGIN LICENSE BLOCK *****
2
+ * Distributed under the BSD license:
3
+ *
4
+ * Copyright (c) 2012, 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
+ var TokenIterator = require("ace/token_iterator").TokenIterator;
34
+ exports.newLines = [{
35
+ type: 'support.php_tag',
36
+ value: '<?php'
37
+ }, {
38
+ type: 'support.php_tag',
39
+ value: '<?'
40
+ }, {
41
+ type: 'support.php_tag',
42
+ value: '?>'
43
+ }, {
44
+ type: 'paren.lparen',
45
+ value: '{',
46
+ indent: true
47
+ }, {
48
+ type: 'paren.rparen',
49
+ breakBefore: true,
50
+ value: '}',
51
+ indent: false
52
+ }, {
53
+ type: 'paren.rparen',
54
+ breakBefore: true,
55
+ value: '})',
56
+ indent: false,
57
+ dontBreak: true
58
+ }, {
59
+ type: 'comment'
60
+ }, {
61
+ type: 'text',
62
+ value: ';'
63
+ }, {
64
+ type: 'text',
65
+ value: ':',
66
+ context: 'php'
67
+ }, {
68
+ type: 'keyword',
69
+ value: 'case',
70
+ indent: true,
71
+ dontBreak: true
72
+ }, {
73
+ type: 'keyword',
74
+ value: 'default',
75
+ indent: true,
76
+ dontBreak: true
77
+ }, {
78
+ type: 'keyword',
79
+ value: 'break',
80
+ indent: false,
81
+ dontBreak: true
82
+ }, {
83
+ type: 'punctuation.doctype.end',
84
+ value: '>'
85
+ }, {
86
+ type: 'meta.tag.punctuation.end',
87
+ value: '>'
88
+ }, {
89
+ type: 'meta.tag.punctuation.begin',
90
+ value: '<',
91
+ blockTag: true,
92
+ indent: true,
93
+ dontBreak: true
94
+ }, {
95
+ type: 'meta.tag.punctuation.begin',
96
+ value: '</',
97
+ indent: false,
98
+ breakBefore: true,
99
+ dontBreak: true
100
+ }, {
101
+ type: 'punctuation.operator',
102
+ value: ';'
103
+ }];
104
+
105
+ exports.spaces = [{
106
+ type: 'xml-pe',
107
+ prepend: true
108
+ },{
109
+ type: 'entity.other.attribute-name',
110
+ prepend: true
111
+ }, {
112
+ type: 'storage.type',
113
+ value: 'var',
114
+ append: true
115
+ }, {
116
+ type: 'storage.type',
117
+ value: 'function',
118
+ append: true
119
+ }, {
120
+ type: 'keyword.operator',
121
+ value: '='
122
+ }, {
123
+ type: 'keyword',
124
+ value: 'as',
125
+ prepend: true,
126
+ append: true
127
+ }, {
128
+ type: 'keyword',
129
+ value: 'function',
130
+ append: true
131
+ }, {
132
+ type: 'support.function',
133
+ next: /[^\(]/,
134
+ append: true
135
+ }, {
136
+ type: 'keyword',
137
+ value: 'or',
138
+ append: true,
139
+ prepend: true
140
+ }, {
141
+ type: 'keyword',
142
+ value: 'and',
143
+ append: true,
144
+ prepend: true
145
+ }, {
146
+ type: 'keyword',
147
+ value: 'case',
148
+ append: true
149
+ }, {
150
+ type: 'keyword.operator',
151
+ value: '||',
152
+ append: true,
153
+ prepend: true
154
+ }, {
155
+ type: 'keyword.operator',
156
+ value: '&&',
157
+ append: true,
158
+ prepend: true
159
+ }];
160
+ exports.singleTags = ['!doctype','area','base','br','hr','input','img','link','meta'];
161
+
162
+ exports.transform = function(iterator, maxPos, context) {
163
+ var token = iterator.getCurrentToken();
164
+
165
+ var newLines = exports.newLines;
166
+ var spaces = exports.spaces;
167
+ var singleTags = exports.singleTags;
168
+
169
+ var code = '';
170
+
171
+ var indentation = 0;
172
+ var dontBreak = false;
173
+ var tag;
174
+ var lastTag;
175
+ var lastToken = {};
176
+ var nextTag;
177
+ var nextToken = {};
178
+ var breakAdded = false;
179
+ var value = '';
180
+
181
+ while (token!==null) {
182
+ console.log(token);
183
+
184
+ if( !token ){
185
+ token = iterator.stepForward();
186
+ continue;
187
+ }
188
+
189
+ //change syntax
190
+ //php
191
+ if( token.type == 'support.php_tag' && token.value != '?>' ){
192
+ context = 'php';
193
+ }
194
+ else if( token.type == 'support.php_tag' && token.value == '?>' ){
195
+ context = 'html';
196
+ }
197
+ //css
198
+ else if( token.type == 'meta.tag.name.style' && context != 'css' ){
199
+ context = 'css';
200
+ }
201
+ else if( token.type == 'meta.tag.name.style' && context == 'css' ){
202
+ context = 'html';
203
+ }
204
+ //js
205
+ else if( token.type == 'meta.tag.name.script' && context != 'js' ){
206
+ context = 'js';
207
+ }
208
+ else if( token.type == 'meta.tag.name.script' && context == 'js' ){
209
+ context = 'html';
210
+ }
211
+
212
+ nextToken = iterator.stepForward();
213
+
214
+ //tag name
215
+ if (nextToken && nextToken.type.indexOf('meta.tag.name') == 0) {
216
+ nextTag = nextToken.value;
217
+ }
218
+
219
+ //don't linebreak
220
+ if ( lastToken.type == 'support.php_tag' && lastToken.value == '<?=') {
221
+ dontBreak = true;
222
+ }
223
+
224
+ //lowercase
225
+ if (token.type == 'meta.tag.name') {
226
+ token.value = token.value.toLowerCase();
227
+ }
228
+
229
+ //trim spaces
230
+ if (token.type == 'text') {
231
+ token.value = token.value.trim();
232
+ }
233
+
234
+ //skip empty tokens
235
+ if (!token.value) {
236
+ token = nextToken;
237
+ continue;
238
+ }
239
+
240
+ //put spaces back in
241
+ value = token.value;
242
+ for (var i in spaces) {
243
+ if (
244
+ token.type == spaces[i].type &&
245
+ (!spaces[i].value || token.value == spaces[i].value) &&
246
+ (
247
+ nextToken &&
248
+ (!spaces[i].next || spaces[i].next.test(nextToken.value))
249
+ )
250
+ ) {
251
+ if (spaces[i].prepend) {
252
+ value = ' ' + token.value;
253
+ }
254
+
255
+ if (spaces[i].append) {
256
+ value += ' ';
257
+ }
258
+ }
259
+ }
260
+
261
+ //tag name
262
+ if (token.type.indexOf('meta.tag.name') == 0) {
263
+ tag = token.value;
264
+ //console.log(tag);
265
+ }
266
+
267
+ //new line before
268
+ breakAdded = false;
269
+
270
+ //outdent
271
+ for (i in newLines) {
272
+ if (
273
+ token.type == newLines[i].type &&
274
+ (
275
+ !newLines[i].value ||
276
+ token.value == newLines[i].value
277
+ ) &&
278
+ (
279
+ !newLines[i].blockTag ||
280
+ singleTags.indexOf(nextTag) === -1
281
+ ) &&
282
+ (
283
+ !newLines[i].context ||
284
+ newLines[i].context === context
285
+ )
286
+ ) {
287
+ if (newLines[i].indent === false) {
288
+ indentation--;
289
+ }
290
+
291
+ if (
292
+ newLines[i].breakBefore &&
293
+ ( !newLines[i].prev || newLines[i].prev.test(lastToken.value) )
294
+ ) {
295
+ code += "\n";
296
+ breakAdded = true;
297
+
298
+ //indent
299
+ for (i = 0; i < indentation; i++) {
300
+ code += "\t";
301
+ }
302
+ }
303
+
304
+ break;
305
+ }
306
+ }
307
+
308
+ if (dontBreak===false) {
309
+ for (i in newLines) {
310
+ if (
311
+ lastToken.type == newLines[i].type &&
312
+ (
313
+ !newLines[i].value || lastToken.value == newLines[i].value
314
+ ) &&
315
+ (
316
+ !newLines[i].blockTag ||
317
+ singleTags.indexOf(tag) === -1
318
+ ) &&
319
+ (
320
+ !newLines[i].context ||
321
+ newLines[i].context === context
322
+ )
323
+ ) {
324
+ if (newLines[i].indent === true) {
325
+ indentation++;
326
+ }
327
+
328
+ if (!newLines[i].dontBreak && !breakAdded) {
329
+ code += "\n";
330
+
331
+ //indent
332
+ for (i = 0; i < indentation; i++) {
333
+ code += "\t";
334
+ }
335
+ }
336
+
337
+ break;
338
+ }
339
+ }
340
+ }
341
+
342
+ code += value;
343
+
344
+ //linebreaks back on after end short php tag
345
+ if ( lastToken.type == 'support.php_tag' && lastToken.value == '?>' ) {
346
+ dontBreak = false;
347
+ }
348
+
349
+ //next token
350
+ lastTag = tag;
351
+
352
+ lastToken = token;
353
+
354
+ token = nextToken;
355
+
356
+ if (token===null) {
357
+ break;
358
+ }
359
+ }
360
+
361
+ return code;
362
+ };
363
+
364
+
365
+
366
+ });
@@ -0,0 +1,980 @@
1
+ define(function(require, exports, module) {
2
+
3
+ /* ChromeVox Ace namespace. */
4
+ var cvoxAce = {};
5
+
6
+ /* Typedefs for Closure compiler. */
7
+ /**
8
+ * @typedef {{
9
+ rate: number,
10
+ pitch: number,
11
+ volume: number,
12
+ relativePitch: number,
13
+ punctuationEcho: string
14
+ }}
15
+ */
16
+ /* TODO(peterxiao): Export this typedef through cvox.Api. */
17
+ cvoxAce.SpeechProperty;
18
+
19
+ /**
20
+ * @typedef {{
21
+ * row: number,
22
+ * column: number
23
+ * }}
24
+ */
25
+ cvoxAce.Cursor;
26
+
27
+ /**
28
+ * @typedef {{
29
+ type: string,
30
+ value: string
31
+ }}
32
+ }
33
+ */
34
+ cvoxAce.Token;
35
+
36
+ /**
37
+ * These are errors and information that Ace will display in the gutter.
38
+ * @typedef {{
39
+ row: number,
40
+ column: number,
41
+ value: string
42
+ }}
43
+ }
44
+ */
45
+ cvoxAce.Annotation;
46
+
47
+ /* Speech Properties. */
48
+ /**
49
+ * Speech property for speaking constant tokens.
50
+ * @type {cvoxAce.SpeechProperty}
51
+ */
52
+ var CONSTANT_PROP = {
53
+ 'rate': 0.8,
54
+ 'pitch': 0.4,
55
+ 'volume': 0.9
56
+ };
57
+
58
+ /**
59
+ * Default speech property for speaking tokens.
60
+ * @type {cvoxAce.SpeechProperty}
61
+ */
62
+ var DEFAULT_PROP = {
63
+ 'rate': 1,
64
+ 'pitch': 0.5,
65
+ 'volume': 0.9
66
+ };
67
+
68
+ /**
69
+ * Speech property for speaking entity tokens.
70
+ * @type {cvoxAce.SpeechProperty}
71
+ */
72
+ var ENTITY_PROP = {
73
+ 'rate': 0.8,
74
+ 'pitch': 0.8,
75
+ 'volume': 0.9
76
+ };
77
+
78
+ /**
79
+ * Speech property for speaking keywords.
80
+ * @type {cvoxAce.SpeechProperty}
81
+ */
82
+ var KEYWORD_PROP = {
83
+ 'rate': 0.8,
84
+ 'pitch': 0.3,
85
+ 'volume': 0.9
86
+ };
87
+
88
+ /**
89
+ * Speech property for speaking storage tokens.
90
+ * @type {cvoxAce.SpeechProperty}
91
+ */
92
+ var STORAGE_PROP = {
93
+ 'rate': 0.8,
94
+ 'pitch': 0.7,
95
+ 'volume': 0.9
96
+ };
97
+
98
+ /**
99
+ * Speech property for speaking variable tokens.
100
+ * @type {cvoxAce.SpeechProperty}
101
+ */
102
+ var VARIABLE_PROP = {
103
+ 'rate': 0.8,
104
+ 'pitch': 0.8,
105
+ 'volume': 0.9
106
+ };
107
+
108
+ /**
109
+ * Speech property for speaking deleted text.
110
+ * @type {cvoxAce.SpeechProperty}
111
+ */
112
+ var DELETED_PROP = {
113
+ 'punctuationEcho': 'none',
114
+ 'relativePitch': -0.6
115
+ };
116
+
117
+ /* Constants for Earcons. */
118
+ var ERROR_EARCON = 'ALERT_NONMODAL';
119
+ var MODE_SWITCH_EARCON = 'ALERT_MODAL';
120
+ var NO_MATCH_EARCON = 'INVALID_KEYPRESS';
121
+
122
+ /* Constants for vim state. */
123
+ var INSERT_MODE_STATE = 'insertMode';
124
+ var COMMAND_MODE_STATE = 'start';
125
+
126
+ var REPLACE_LIST = [
127
+ {
128
+ substr: ';',
129
+ newSubstr: ' semicolon '
130
+ },
131
+ {
132
+ substr: ':',
133
+ newSubstr: ' colon '
134
+ }
135
+ ];
136
+
137
+ /**
138
+ * Context menu commands.
139
+ */
140
+ var Command = {
141
+ SPEAK_ANNOT: 'annots',
142
+ SPEAK_ALL_ANNOTS: 'all_annots',
143
+ TOGGLE_LOCATION: 'toggle_location',
144
+ SPEAK_MODE: 'mode',
145
+ SPEAK_ROW_COL: 'row_col',
146
+ TOGGLE_DISPLACEMENT: 'toggle_displacement',
147
+ FOCUS_TEXT: 'focus_text'
148
+ };
149
+
150
+ /**
151
+ * Key prefix for each shortcut.
152
+ */
153
+ var KEY_PREFIX = 'CONTROL + SHIFT ';
154
+
155
+ /* Globals. */
156
+ cvoxAce.editor = null;
157
+ /**
158
+ * Last cursor position.
159
+ * @type {cvoxAce.Cursor}
160
+ */
161
+ var lastCursor = null;
162
+
163
+ /**
164
+ * Table of annotations.
165
+ * @typedef {!Object.<number, Object<number, cvoxAce.Annotation>>}
166
+ */
167
+ var annotTable = {};
168
+
169
+ /**
170
+ * Whether to speak character, word, and then line. This allows blind users
171
+ * to know the location of the cursor when they change lines.
172
+ * @typedef {boolean}
173
+ */
174
+ var shouldSpeakRowLocation = false;
175
+
176
+ /**
177
+ * Whether to speak displacement.
178
+ * @typedef {boolean}
179
+ */
180
+ var shouldSpeakDisplacement = false;
181
+
182
+ /**
183
+ * Whether text was changed to cause a cursor change event.
184
+ * @typedef {boolean}
185
+ */
186
+ var changed = false;
187
+
188
+ /**
189
+ * Current state vim is in.
190
+ */
191
+ var vimState = null;
192
+
193
+ /**
194
+ * Mapping from key code to shortcut.
195
+ */
196
+ var keyCodeToShortcutMap = {};
197
+
198
+ /**
199
+ * Mapping from command to shortcut.
200
+ */
201
+ var cmdToShortcutMap = {};
202
+
203
+ /**
204
+ * Get shortcut string from keyCode.
205
+ * @param {number} keyCode Key code of shortcut.
206
+ * @return {string} String representation of shortcut.
207
+ */
208
+ var getKeyShortcutString = function(keyCode) {
209
+ return KEY_PREFIX + String.fromCharCode(keyCode);
210
+ };
211
+
212
+ /**
213
+ * Return if in vim mode.
214
+ * @return {boolean} True if in Vim mode.
215
+ */
216
+ var isVimMode = function() {
217
+ var keyboardHandler = cvoxAce.editor.keyBinding.getKeyboardHandler();
218
+ return keyboardHandler.$id === 'ace/keyboard/vim';
219
+ };
220
+
221
+ /**
222
+ * Gets the current token.
223
+ * @param {!cvoxAce.Cursor} cursor Current position of the cursor.
224
+ * @return {!cvoxAce.Token} Token at the current position.
225
+ */
226
+ var getCurrentToken = function(cursor) {
227
+ return cvoxAce.editor.getSession().getTokenAt(cursor.row, cursor.column + 1);
228
+ };
229
+
230
+ /**
231
+ * Gets the current line the cursor is under.
232
+ * @param {!cvoxAce.Cursor} cursor Current cursor position.
233
+ */
234
+ var getCurrentLine = function(cursor) {
235
+ return cvoxAce.editor.getSession().getLine(cursor.row);
236
+ };
237
+
238
+ /**
239
+ * Event handler for row changes. When the user changes rows we want to speak
240
+ * the line so the user can work on this line. If shouldSpeakRowLocation is on
241
+ * then we speak the character, then the row, then the line so the user knows
242
+ * where the cursor is.
243
+ * @param {!cvoxAce.Cursor} currCursor Current cursor position.
244
+ */
245
+ var onRowChange = function(currCursor) {
246
+ /* Notify that this line has an annotation. */
247
+ if (annotTable[currCursor.row]) {
248
+ cvox.Api.playEarcon(ERROR_EARCON);
249
+ }
250
+ if (shouldSpeakRowLocation) {
251
+ cvox.Api.stop();
252
+ speakChar(currCursor);
253
+ speakTokenQueue(getCurrentToken(currCursor));
254
+ speakLine(currCursor.row, 1);
255
+ } else {
256
+ speakLine(currCursor.row, 0);
257
+ }
258
+ };
259
+
260
+ /**
261
+ * Returns whether the cursor is at the beginning of a word. A word is
262
+ * a grouping of alphanumeric characters including underscores.
263
+ * @param {!cvoxAce.Cursor} cursor Current cursor position.
264
+ * @return {boolean} Whether there is word.
265
+ */
266
+ var isWord = function(cursor) {
267
+ var line = getCurrentLine(cursor);
268
+ var lineSuffix = line.substr(cursor.column - 1);
269
+ if (cursor.column === 0) {
270
+ lineSuffix = ' ' + line;
271
+ }
272
+ /* Use regex to tell if the suffix is at the start of a new word. */
273
+ var firstWordRegExp = /^\W(\w+)/;
274
+ var words = firstWordRegExp.exec(lineSuffix);
275
+ return words !== null;
276
+ };
277
+
278
+ /**
279
+ * A mapping of syntax type to speech properties / expanding rules.
280
+ */
281
+ var rules = {
282
+ 'constant': {
283
+ prop: CONSTANT_PROP
284
+ },
285
+ 'entity': {
286
+ prop: ENTITY_PROP
287
+ },
288
+ 'keyword': {
289
+ prop: KEYWORD_PROP
290
+ },
291
+ 'storage': {
292
+ prop: STORAGE_PROP
293
+ },
294
+ 'variable': {
295
+ prop: VARIABLE_PROP
296
+ },
297
+ 'meta': {
298
+ prop: DEFAULT_PROP,
299
+ replace: [
300
+ {
301
+ substr: '</',
302
+ newSubstr: ' closing tag '
303
+ },
304
+ {
305
+ substr: '/>',
306
+ newSubstr: ' close tag '
307
+ },
308
+ {
309
+ substr: '<',
310
+ newSubstr: ' tag start '
311
+ },
312
+ {
313
+ substr: '>',
314
+ newSubstr: ' tag end '
315
+ }
316
+ ]
317
+ }
318
+ };
319
+
320
+ /**
321
+ * Default rule to be used.
322
+ */
323
+ var DEFAULT_RULE = {
324
+ prop: DEFAULT_RULE
325
+ };
326
+
327
+ /**
328
+ * Expands substrings to how they are read based on the given rules.
329
+ * @param {string} value Text to be expanded.
330
+ * @param {Array.<Object>} replaceRules Rules to determine expansion.
331
+ * @return {string} New expanded value.
332
+ */
333
+ var expand = function(value, replaceRules) {
334
+ var newValue = value;
335
+ for (var i = 0; i < replaceRules.length; i++) {
336
+ var replaceRule = replaceRules[i];
337
+ var regexp = new RegExp(replaceRule.substr, 'g');
338
+ newValue = newValue.replace(regexp, replaceRule.newSubstr);
339
+ }
340
+ return newValue;
341
+ };
342
+
343
+ /**
344
+ * Merges tokens from start inclusive to end exclusive.
345
+ * @param {Array.<cvoxAce.Token>} Tokens to be merged.
346
+ * @param {number} start Start index inclusive.
347
+ * @param {number} end End index exclusive.
348
+ * @return {cvoxAce.Token} Merged token.
349
+ */
350
+ var mergeTokens = function(tokens, start, end) {
351
+ /* Different type of token found! Merge all previous like tokens. */
352
+ var newToken = {};
353
+ newToken.value = '';
354
+ newToken.type = tokens[start].type;
355
+ for (var j = start; j < end; j++) {
356
+ newToken.value += tokens[j].value;
357
+ }
358
+ return newToken;
359
+ };
360
+
361
+ /**
362
+ * Merges tokens that use the same speech properties.
363
+ * @param {Array.<cvoxAce.Token>} tokens Tokens to be merged.
364
+ * @return {Array.<cvoxAce.Token>} Merged tokens.
365
+ */
366
+ var mergeLikeTokens = function(tokens) {
367
+ if (tokens.length <= 1) {
368
+ return tokens;
369
+ }
370
+ var newTokens = [];
371
+ var lastLikeIndex = 0;
372
+ for (var i = 1; i < tokens.length; i++) {
373
+ var lastLikeToken = tokens[lastLikeIndex];
374
+ var currToken = tokens[i];
375
+ if (getTokenRule(lastLikeToken) !== getTokenRule(currToken)) {
376
+ newTokens.push(mergeTokens(tokens, lastLikeIndex, i));
377
+ lastLikeIndex = i;
378
+ }
379
+ }
380
+ newTokens.push(mergeTokens(tokens, lastLikeIndex, tokens.length));
381
+ return newTokens;
382
+ };
383
+
384
+ /**
385
+ * Returns if given row is a whitespace row.
386
+ * @param {number} row Row.
387
+ * @return {boolean} True if row is whitespaces.
388
+ */
389
+ var isRowWhiteSpace = function(row) {
390
+ var line = cvoxAce.editor.getSession().getLine(row);
391
+ var whiteSpaceRegexp = /^\s*$/;
392
+ return whiteSpaceRegexp.exec(line) !== null;
393
+ };
394
+
395
+ /**
396
+ * Speak the line with syntax properties.
397
+ * @param {number} row Row to speak.
398
+ * @param {number} queue Queue mode to speak.
399
+ */
400
+ var speakLine = function(row, queue) {
401
+ var tokens = cvoxAce.editor.getSession().getTokens(row);
402
+ if (tokens.length === 0 || isRowWhiteSpace(row)) {
403
+ cvox.Api.playEarcon('EDITABLE_TEXT');
404
+ return;
405
+ }
406
+ tokens = mergeLikeTokens(tokens);
407
+ var firstToken = tokens[0];
408
+ /* Filter out first token. */
409
+ tokens = tokens.filter(function(token) {
410
+ return token !== firstToken;
411
+ });
412
+ /* Speak first token separately to flush if queue. */
413
+ speakToken_(firstToken, queue);
414
+ /* Speak rest of tokens. */
415
+ tokens.forEach(speakTokenQueue);
416
+ };
417
+
418
+ /**
419
+ * Speak the token based on the syntax of the token, flushing.
420
+ * @param {!cvoxAce.Token} token Token to speak.
421
+ * @param {number} queue Queue mode.
422
+ */
423
+ var speakTokenFlush = function(token) {
424
+ speakToken_(token, 0);
425
+ };
426
+
427
+ /**
428
+ * Speak the token based on the syntax of the token, queueing.
429
+ * @param {!cvoxAce.Token} token Token to speak.
430
+ * @param {number} queue Queue mode.
431
+ */
432
+ var speakTokenQueue = function(token) {
433
+ speakToken_(token, 1);
434
+ };
435
+
436
+ /**
437
+ * @param {!cvoxAce.Token} token Token to speak.
438
+ * Get the token speech property.
439
+ */
440
+ var getTokenRule = function(token) {
441
+ /* Types are period delimited. In this case, we only syntax speak the outer
442
+ * most type of token. */
443
+ if (!token || !token.type) {
444
+ return;
445
+ }
446
+ var split = token.type.split('.');
447
+ if (split.length === 0) {
448
+ return;
449
+ }
450
+ var type = split[0];
451
+ var rule = rules[type];
452
+ if (!rule) {
453
+ return DEFAULT_RULE;
454
+ }
455
+ return rule;
456
+ };
457
+
458
+ /**
459
+ * Speak the token based on the syntax of the token.
460
+ * @private
461
+ * @param {!cvoxAce.Token} token Token to speak.
462
+ * @param {number} queue Queue mode.
463
+ */
464
+ var speakToken_ = function(token, queue) {
465
+ var rule = getTokenRule(token);
466
+ var value = expand(token.value, REPLACE_LIST);
467
+ if (rule.replace) {
468
+ value = expand(value, rule.replace);
469
+ }
470
+ cvox.Api.speak(value, queue, rule.prop);
471
+ };
472
+
473
+ /**
474
+ * Speaks the character under the cursor. This is queued.
475
+ * @param {!cvoxAce.Cursor} cursor Current cursor position.
476
+ * @return {string} Character.
477
+ */
478
+ var speakChar = function(cursor) {
479
+ var line = getCurrentLine(cursor);
480
+ cvox.Api.speak(line[cursor.column], 1);
481
+ };
482
+
483
+ /**
484
+ * Speaks the jump from lastCursor to currCursor. This function assumes the
485
+ * jump takes place on the current line.
486
+ * @param {!cvoxAce.Cursor} lastCursor Previous cursor position.
487
+ * @param {!cvoxAce.Cursor} currCursor Current cursor position.
488
+ */
489
+ var speakDisplacement = function(lastCursor, currCursor) {
490
+ var line = getCurrentLine(currCursor);
491
+
492
+ /* Get the text that we jumped past. */
493
+ var displace = line.substring(lastCursor.column, currCursor.column);
494
+
495
+ /* Speak out loud spaces. */
496
+ displace = displace.replace(/ /g, ' space ');
497
+ cvox.Api.speak(displace);
498
+ };
499
+
500
+ /**
501
+ * Speaks the word if the cursor jumped to a new word or to the beginning
502
+ * of the line. Otherwise speak the charactor.
503
+ * @param {!cvoxAce.Cursor} lastCursor Previous cursor position.
504
+ * @param {!cvoxAce.Cursor} currCursor Current cursor position.
505
+ */
506
+ var speakCharOrWordOrLine = function(lastCursor, currCursor) {
507
+ /* Say word only if jump. */
508
+ if (Math.abs(lastCursor.column - currCursor.column) !== 1) {
509
+ var currLineLength = getCurrentLine(currCursor).length;
510
+ /* Speak line if jumping to beginning or end of line. */
511
+ if (currCursor.column === 0 || currCursor.column === currLineLength) {
512
+ speakLine(currCursor.row, 0);
513
+ return;
514
+ }
515
+ if (isWord(currCursor)) {
516
+ cvox.Api.stop();
517
+ speakTokenQueue(getCurrentToken(currCursor));
518
+ return;
519
+ }
520
+ }
521
+ speakChar(currCursor);
522
+ };
523
+
524
+ /**
525
+ * Event handler for column changes. If shouldSpeakDisplacement is on, then
526
+ * we just speak displacements in row changes. Otherwise, we either speak
527
+ * the character for single character movements, the word when jumping to the
528
+ * next word, or the entire line if jumping to beginning or end of the line.
529
+ * @param {!cvoxAce.Cursor} lastCursor Previous cursor position.
530
+ * @param {!cvoxAce.Cursor} currCursor Current cursor position.
531
+ */
532
+ var onColumnChange = function(lastCursor, currCursor) {
533
+ if (!cvoxAce.editor.selection.isEmpty()) {
534
+ speakDisplacement(lastCursor, currCursor);
535
+ cvox.Api.speak('selected', 1);
536
+ }
537
+ else if (shouldSpeakDisplacement) {
538
+ speakDisplacement(lastCursor, currCursor);
539
+ } else {
540
+ speakCharOrWordOrLine(lastCursor, currCursor);
541
+ }
542
+ };
543
+
544
+ /**
545
+ * Event handler for cursor changes. Classify cursor changes as either row or
546
+ * column changes, then delegate accordingly.
547
+ * @param {!Event} evt The event.
548
+ */
549
+ var onCursorChange = function(evt) {
550
+ /* Do not speak if cursor change was a result of text insertion. We want to
551
+ * speak the text that was inserted and not where the cursor lands. */
552
+ if (changed) {
553
+ changed = false;
554
+ return;
555
+ }
556
+ var currCursor = cvoxAce.editor.selection.getCursor();
557
+ if (currCursor.row !== lastCursor.row) {
558
+ onRowChange(currCursor);
559
+ } else {
560
+ onColumnChange(lastCursor, currCursor);
561
+ }
562
+ lastCursor = currCursor;
563
+ };
564
+
565
+ /**
566
+ * Event handler for selection changes.
567
+ * @param {!Event} evt The event.
568
+ */
569
+ var onSelectionChange = function(evt) {
570
+ /* Assumes that when selection changes to empty, the user has unselected. */
571
+ if (cvoxAce.editor.selection.isEmpty()) {
572
+ cvox.Api.speak('unselected');
573
+ }
574
+ };
575
+
576
+ /**
577
+ * Event handler for source changes. We want auditory feedback for inserting
578
+ * and deleting text.
579
+ * @param {!Event} evt The event.
580
+ */
581
+ var onChange = function(evt) {
582
+ var data = evt.data;
583
+ switch (data.action) {
584
+ case 'removeText':
585
+ cvox.Api.speak(data.text, 0, DELETED_PROP);
586
+ /* Let the future cursor change event know it's from text change. */
587
+ changed = true;
588
+ break;
589
+ case 'insertText':
590
+ cvox.Api.speak(data.text, 0);
591
+ /* Let the future cursor change event know it's from text change. */
592
+ changed = true;
593
+ break;
594
+ }
595
+ };
596
+
597
+ /**
598
+ * Returns whether or not the annotation is new.
599
+ * @param {!cvoxAce.Annotation} annot Annotation in question.
600
+ * @return {boolean} Whether annot is new.
601
+ */
602
+ var isNewAnnotation = function(annot) {
603
+ var row = annot.row;
604
+ var col = annot.column;
605
+ return !annotTable[row] || !annotTable[row][col];
606
+ };
607
+
608
+ /**
609
+ * Populates the annotation table.
610
+ * @param {!Array.<cvoxAce.Annotation>} annotations Array of annotations.
611
+ */
612
+ var populateAnnotations = function(annotations) {
613
+ annotTable = {};
614
+ for (var i = 0; i < annotations.length; i++) {
615
+ var annotation = annotations[i];
616
+ var row = annotation.row;
617
+ var col = annotation.column;
618
+ if (!annotTable[row]) {
619
+ annotTable[row] = {};
620
+ }
621
+ annotTable[row][col] = annotation;
622
+ }
623
+ };
624
+
625
+ /**
626
+ * Event handler for annotation changes. We want to notify the user when an
627
+ * a new annotation appears.
628
+ * @param {!Event} evt Event.
629
+ */
630
+ var onAnnotationChange = function(evt) {
631
+ var annotations = cvoxAce.editor.getSession().getAnnotations();
632
+ var newAnnotations = annotations.filter(isNewAnnotation);
633
+ if (newAnnotations.length > 0) {
634
+ cvox.Api.playEarcon(ERROR_EARCON);
635
+ }
636
+ populateAnnotations(annotations);
637
+ };
638
+
639
+ /**
640
+ * Speak annotation.
641
+ * @param {!cvoxAce.Annotation} annot Annotation to speak.
642
+ */
643
+ var speakAnnot = function(annot) {
644
+ var annotText = annot.type + ' ' + annot.text + ' on ' +
645
+ rowColToString(annot.row, annot.column);
646
+ annotText = annotText.replace(';', 'semicolon');
647
+ cvox.Api.speak(annotText, 1);
648
+ };
649
+
650
+ /**
651
+ * Speak annotations in a row.
652
+ * @param {number} row Row of annotations to speak.
653
+ */
654
+ var speakAnnotsByRow = function(row) {
655
+ var annots = annotTable[row];
656
+ for (var col in annots) {
657
+ speakAnnot(annots[col]);
658
+ }
659
+ };
660
+
661
+ /**
662
+ * Get a string representation of a row and column.
663
+ * @param {boolean} row Zero indexed row.
664
+ * @param {boolean} col Zero indexed column.
665
+ * @return {string} Row and column to be spoken.
666
+ */
667
+ var rowColToString = function(row, col) {
668
+ return 'row ' + (row + 1) + ' column ' + (col + 1);
669
+ };
670
+
671
+ /**
672
+ * Speaks the row and column.
673
+ */
674
+ var speakCurrRowAndCol = function() {
675
+ cvox.Api.speak(rowColToString(lastCursor.row, lastCursor.column));
676
+ };
677
+
678
+ /**
679
+ * Speaks all annotations.
680
+ */
681
+ var speakAllAnnots = function() {
682
+ for (var row in annotTable) {
683
+ speakAnnotsByRow(row);
684
+ }
685
+ };
686
+
687
+ /**
688
+ * Speak the vim mode. If no vim mode, this function does nothing.
689
+ */
690
+ var speakMode = function() {
691
+ if (!isVimMode()) {
692
+ return;
693
+ }
694
+ switch (cvoxAce.editor.keyBinding.$data.state) {
695
+ case INSERT_MODE_STATE:
696
+ cvox.Api.speak('Insert mode');
697
+ break;
698
+ case COMMAND_MODE_STATE:
699
+ cvox.Api.speak('Command mode');
700
+ break;
701
+ }
702
+ };
703
+
704
+ /**
705
+ * Toggle speak location.
706
+ */
707
+ var toggleSpeakRowLocation = function() {
708
+ shouldSpeakRowLocation = !shouldSpeakRowLocation;
709
+ /* Auditory feedback of the change. */
710
+ if (shouldSpeakRowLocation) {
711
+ cvox.Api.speak('Speak location on row change enabled.');
712
+ } else {
713
+ cvox.Api.speak('Speak location on row change disabled.');
714
+ }
715
+ };
716
+
717
+ /**
718
+ * Toggle speak displacement.
719
+ */
720
+ var toggleSpeakDisplacement = function() {
721
+ shouldSpeakDisplacement = !shouldSpeakDisplacement;
722
+ /* Auditory feedback of the change. */
723
+ if (shouldSpeakDisplacement) {
724
+ cvox.Api.speak('Speak displacement on column changes.');
725
+ } else {
726
+ cvox.Api.speak('Speak current character or word on column changes.');
727
+ }
728
+ };
729
+
730
+ /**
731
+ * Event handler for key down events. Gets the right shortcut from the map,
732
+ * and calls the associated function.
733
+ * @param {!Event} evt Keyboard event.
734
+ */
735
+ var onKeyDown = function(evt) {
736
+ if (evt.ctrlKey && evt.shiftKey) {
737
+ var shortcut = keyCodeToShortcutMap[evt.keyCode];
738
+ if (shortcut) {
739
+ shortcut.func();
740
+ }
741
+ }
742
+ };
743
+
744
+ /**
745
+ * Event handler for status change events. Auditory feedback of changing
746
+ * between vim states.
747
+ * @param {!Event} evt Change status event.
748
+ * @param {!Object} editor Editor state.
749
+ */
750
+ var onChangeStatus = function(evt, editor) {
751
+ if (!isVimMode()) {
752
+ return;
753
+ }
754
+ var state = editor.keyBinding.$data.state;
755
+ if (state === vimState) {
756
+ /* State hasn't changed, do nothing. */
757
+ return;
758
+ }
759
+ switch (state) {
760
+ case INSERT_MODE_STATE:
761
+ cvox.Api.playEarcon(MODE_SWITCH_EARCON);
762
+ /* When in insert mode, we want to speak out keys as feedback. */
763
+ cvox.Api.setKeyEcho(true);
764
+ break;
765
+ case COMMAND_MODE_STATE:
766
+ cvox.Api.playEarcon(MODE_SWITCH_EARCON);
767
+ /* When in command mode, we want don't speak out keys because those keys
768
+ * are not being inserted in the document. */
769
+ cvox.Api.setKeyEcho(false);
770
+ break;
771
+ }
772
+ vimState = state;
773
+ };
774
+
775
+ /**
776
+ * Handles context menu events. This is a ChromeVox feature where hitting
777
+ * the shortcut ChromeVox + comma will open up a search bar where you can
778
+ * type in various commands. All keyboard shortcuts are also commands that
779
+ * can be invoked. This handles the event that ChromeVox sends to the page.
780
+ * @param {Event} evt Event received.
781
+ */
782
+ var contextMenuHandler = function(evt) {
783
+ var cmd = evt.detail['customCommand'];
784
+ var shortcut = cmdToShortcutMap[cmd];
785
+ if (shortcut) {
786
+ shortcut.func();
787
+ /* ChromeVox will bring focus to an element near the cursor instead of the
788
+ * text input. */
789
+ cvoxAce.editor.focus();
790
+ }
791
+ };
792
+
793
+ /**
794
+ * Initialize the ChromeVox context menu.
795
+ */
796
+ var initContextMenu = function() {
797
+ var ACTIONS = SHORTCUTS.map(function(shortcut) {
798
+ return {
799
+ desc: shortcut.desc + getKeyShortcutString(shortcut.keyCode),
800
+ cmd: shortcut.cmd
801
+ };
802
+ });
803
+
804
+ /* Attach ContextMenuActions. */
805
+ var body = document.querySelector('body');
806
+ body.setAttribute('contextMenuActions', JSON.stringify(ACTIONS));
807
+
808
+ /* Listen for ContextMenu events. */
809
+ body.addEventListener('ATCustomEvent', contextMenuHandler, true);
810
+ };
811
+
812
+ /**
813
+ * Event handler for find events. When there is a match, we want to speak the
814
+ * line we are now at. Otherwise, we want to notify the user there was no
815
+ * match
816
+ * @param {!Event} evt The event.
817
+ */
818
+ var onFindSearchbox = function(evt) {
819
+ if (evt.match) {
820
+ /* There is still a match! Speak the line. */
821
+ speakLine(lastCursor.row, 0);
822
+ } else {
823
+ /* No match, give auditory feedback! */
824
+ cvox.Api.playEarcon(NO_MATCH_EARCON);
825
+ }
826
+ };
827
+
828
+ /**
829
+ * Focus to text input.
830
+ */
831
+ var focus = function() {
832
+ cvoxAce.editor.focus();
833
+ };
834
+
835
+ /**
836
+ * Shortcut definitions.
837
+ */
838
+ var SHORTCUTS = [
839
+ {
840
+ /* 1 key. */
841
+ keyCode: 49,
842
+ func: function() {
843
+ speakAnnotsByRow(lastCursor.row);
844
+ },
845
+ cmd: Command.SPEAK_ANNOT,
846
+ desc: 'Speak annotations on line'
847
+ },
848
+ {
849
+ /* 2 key. */
850
+ keyCode: 50,
851
+ func: speakAllAnnots,
852
+ cmd: Command.SPEAK_ALL_ANNOTS,
853
+ desc: 'Speak all annotations'
854
+ },
855
+ {
856
+ /* 3 key. */
857
+ keyCode: 51,
858
+ func: speakMode,
859
+ cmd: Command.SPEAK_MODE,
860
+ desc: 'Speak Vim mode'
861
+ },
862
+ {
863
+ /* 4 key. */
864
+ keyCode: 52,
865
+ func: toggleSpeakRowLocation,
866
+ cmd: Command.TOGGLE_LOCATION,
867
+ desc: 'Toggle speak row location'
868
+ },
869
+ {
870
+ /* 5 key. */
871
+ keyCode: 53,
872
+ func: speakCurrRowAndCol,
873
+ cmd: Command.SPEAK_ROW_COL,
874
+ desc: 'Speak row and column'
875
+ },
876
+ {
877
+ /* 6 key. */
878
+ keyCode: 54,
879
+ func: toggleSpeakDisplacement,
880
+ cmd: Command.TOGGLE_DISPLACEMENT,
881
+ desc: 'Toggle speak displacement'
882
+ },
883
+ {
884
+ /* 7 key. */
885
+ keyCode: 55,
886
+ func: focus,
887
+ cmd: Command.FOCUS_TEXT,
888
+ desc: 'Focus text'
889
+ }
890
+ ];
891
+
892
+ /**
893
+ * Event handler for focus events.
894
+ */
895
+ var onFocus = function() {
896
+ cvoxAce.editor = editor;
897
+
898
+ /* Set up listeners. */
899
+ editor.getSession().selection.on('changeCursor', onCursorChange);
900
+ editor.getSession().selection.on('changeSelection', onSelectionChange);
901
+ editor.getSession().on('change', onChange);
902
+ editor.getSession().on('changeAnnotation', onAnnotationChange);
903
+ editor.on('changeStatus', onChangeStatus);
904
+ editor.on('findSearchBox', onFindSearchbox);
905
+ editor.container.addEventListener('keydown', onKeyDown);
906
+
907
+ lastCursor = editor.selection.getCursor();
908
+ };
909
+
910
+ /**
911
+ * Initialize the theme.
912
+ * @param {Object} editor Editor to use.
913
+ */
914
+ var init = function(editor) {
915
+ onFocus();
916
+
917
+ /* Construct maps. */
918
+ SHORTCUTS.forEach(function(shortcut) {
919
+ keyCodeToShortcutMap[shortcut.keyCode] = shortcut;
920
+ cmdToShortcutMap[shortcut.cmd] = shortcut;
921
+ });
922
+
923
+ editor.on('focus', onFocus);
924
+
925
+ /* Assume we start in command mode if vim. */
926
+ if (isVimMode()) {
927
+ cvox.Api.setKeyEcho(false);
928
+ }
929
+ initContextMenu();
930
+ };
931
+
932
+ /**
933
+ * Returns if cvox exists, and the api exists.
934
+ * @return {boolean} Whether not Cvox Api exists.
935
+ */
936
+ function cvoxApiExists() {
937
+ return (typeof(cvox) !== 'undefined') && cvox && cvox.Api;
938
+ }
939
+
940
+ /**
941
+ * Number of tries for Cvox loading.
942
+ * @type {number}
943
+ */
944
+ var tries = 0;
945
+
946
+ /**
947
+ * Max number of tries to watch for Cvox loading.
948
+ * @type {number}
949
+ */
950
+ var MAX_TRIES = 15;
951
+
952
+ /**
953
+ * Check for ChromeVox load.
954
+ * @param {Object} editor Editor to use.
955
+ */
956
+ function watchForCvoxLoad(editor) {
957
+ if (cvoxApiExists()) {
958
+ init(editor);
959
+ } else {
960
+ tries++;
961
+ if (tries >= MAX_TRIES) {
962
+ return;
963
+ }
964
+ window.setTimeout(watchForCvoxLoad, 500, editor);
965
+ }
966
+ }
967
+
968
+ var Editor = require('../editor').Editor;
969
+ require('../config').defineOptions(Editor.prototype, 'editor', {
970
+ enableChromevoxEnhancements: {
971
+ set: function(val) {
972
+ if (val) {
973
+ watchForCvoxLoad(this);
974
+ }
975
+ },
976
+ value: true // turn it on by default or check for window.cvox
977
+ }
978
+ });
979
+
980
+ });