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.
- data/.gitignore +15 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +674 -0
- data/README.md +165 -0
- data/Rakefile +9 -0
- data/assets/fonts/font-awesome-custom/fontawesome-custom.eot +0 -0
- data/assets/fonts/font-awesome-custom/fontawesome-custom.svg +15 -0
- data/assets/fonts/font-awesome-custom/fontawesome-custom.ttf +0 -0
- data/assets/fonts/font-awesome-custom/fontawesome-custom.woff +0 -0
- data/assets/javascripts/app.js +35 -0
- data/assets/javascripts/application.js +8 -0
- data/assets/javascripts/dom-tweaking.js +36 -0
- data/assets/javascripts/main.js +36 -0
- data/assets/javascripts/models/page_content.js +39 -0
- data/assets/javascripts/templates/bar_edit_mode.html +14 -0
- data/assets/javascripts/templates/bar_view_mode.html +13 -0
- data/assets/javascripts/templates/duplicate_page.html +20 -0
- data/assets/javascripts/templates/html_editor.html +18 -0
- data/assets/javascripts/templates/loading.html +9 -0
- data/assets/javascripts/templates/new_page.html +23 -0
- data/assets/javascripts/templates/settings.html +15 -0
- data/assets/javascripts/views/bar_edit_mode.js +117 -0
- data/assets/javascripts/views/bar_view_mode.js +40 -0
- data/assets/javascripts/views/duplicate_page.js +76 -0
- data/assets/javascripts/views/editier_bar.js +171 -0
- data/assets/javascripts/views/html_editor.js +116 -0
- data/assets/javascripts/views/loading.js +31 -0
- data/assets/javascripts/views/new_page.js +77 -0
- data/assets/javascripts/views/page_content.js +26 -0
- data/assets/javascripts/views/settings.js +89 -0
- data/assets/stylesheets/_bootstrap-custom.scss +50 -0
- data/assets/stylesheets/_editor.scss +303 -0
- data/assets/stylesheets/_font-awesome-custom.scss +17 -0
- data/assets/stylesheets/_variable-overrides.scss +13 -0
- data/assets/stylesheets/application.scss +41 -0
- data/assets/stylesheets/bootstrap/_normalize.scss +427 -0
- data/assets/stylesheets/bootstrap/_scaffolding.scss +150 -0
- data/assets/stylesheets/font-awesome/_core.scss +12 -0
- data/assets/stylesheets/font-awesome/_mixins.scss +26 -0
- data/assets/stylesheets/font-awesome/_path.scss +14 -0
- data/lib/pollypost.rb +13 -0
- data/lib/pollypost/rake.rb +55 -0
- data/lib/pollypost/version.rb +11 -0
- data/pollypost.gemspec +27 -0
- data/test/README.md +55 -0
- data/test/basic.html +19 -0
- data/test/page_content_test.js +69 -0
- data/test/qunit-1.17.1.css +280 -0
- data/test/qunit-1.17.1.js +2875 -0
- data/test/sinon-1.14.1.js +5931 -0
- data/test/sinon-qunit-1.0.0.js +62 -0
- data/test/test.html +16 -0
- data/test/testmain.js +28 -0
- data/test/tests.js +58 -0
- data/vendor/assets/ace-1.1.8/ace.js +129 -0
- data/vendor/assets/ace-1.1.8/anchor.js +245 -0
- data/vendor/assets/ace-1.1.8/anchor_test.js +223 -0
- data/vendor/assets/ace-1.1.8/autocomplete.js +485 -0
- data/vendor/assets/ace-1.1.8/autocomplete/popup.js +338 -0
- data/vendor/assets/ace-1.1.8/autocomplete/text_completer.js +78 -0
- data/vendor/assets/ace-1.1.8/autocomplete/util.js +74 -0
- data/vendor/assets/ace-1.1.8/background_tokenizer.js +250 -0
- data/vendor/assets/ace-1.1.8/background_tokenizer_test.js +85 -0
- data/vendor/assets/ace-1.1.8/commands/command_manager.js +118 -0
- data/vendor/assets/ace-1.1.8/commands/command_manager_test.js +199 -0
- data/vendor/assets/ace-1.1.8/commands/default_commands.js +708 -0
- data/vendor/assets/ace-1.1.8/commands/incremental_search_commands.js +232 -0
- data/vendor/assets/ace-1.1.8/commands/multi_select_commands.js +102 -0
- data/vendor/assets/ace-1.1.8/commands/occur_commands.js +110 -0
- data/vendor/assets/ace-1.1.8/config.js +301 -0
- data/vendor/assets/ace-1.1.8/config_test.js +128 -0
- data/vendor/assets/ace-1.1.8/css/codefolding-fold-button-states.png +0 -0
- data/vendor/assets/ace-1.1.8/css/editor.css +422 -0
- data/vendor/assets/ace-1.1.8/css/expand-marker.png +0 -0
- data/vendor/assets/ace-1.1.8/document.js +645 -0
- data/vendor/assets/ace-1.1.8/document_test.js +306 -0
- data/vendor/assets/ace-1.1.8/edit_session.js +2554 -0
- data/vendor/assets/ace-1.1.8/edit_session/bracket_match.js +221 -0
- data/vendor/assets/ace-1.1.8/edit_session/fold.js +140 -0
- data/vendor/assets/ace-1.1.8/edit_session/fold_line.js +269 -0
- data/vendor/assets/ace-1.1.8/edit_session/folding.js +851 -0
- data/vendor/assets/ace-1.1.8/edit_session_test.js +1075 -0
- data/vendor/assets/ace-1.1.8/editor.js +2658 -0
- data/vendor/assets/ace-1.1.8/editor_change_document_test.js +188 -0
- data/vendor/assets/ace-1.1.8/editor_highlight_selected_word_test.js +223 -0
- data/vendor/assets/ace-1.1.8/editor_navigation_test.js +164 -0
- data/vendor/assets/ace-1.1.8/editor_text_edit_test.js +557 -0
- data/vendor/assets/ace-1.1.8/ext/beautify.js +57 -0
- data/vendor/assets/ace-1.1.8/ext/beautify/php_rules.js +366 -0
- data/vendor/assets/ace-1.1.8/ext/chromevox.js +980 -0
- data/vendor/assets/ace-1.1.8/ext/elastic_tabstops_lite.js +319 -0
- data/vendor/assets/ace-1.1.8/ext/emmet.js +434 -0
- data/vendor/assets/ace-1.1.8/ext/error_marker.js +214 -0
- data/vendor/assets/ace-1.1.8/ext/keybinding_menu.js +86 -0
- data/vendor/assets/ace-1.1.8/ext/language_tools.js +229 -0
- data/vendor/assets/ace-1.1.8/ext/linking.js +78 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/add_editor_menu_options.js +109 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/element_generator.js +148 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/generate_settings_menu.js +264 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/get_editor_keyboard_shortcuts.js +91 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/get_set_functions.js +141 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/overlay_page.js +116 -0
- data/vendor/assets/ace-1.1.8/ext/menu_tools/settings_menu.css +48 -0
- data/vendor/assets/ace-1.1.8/ext/modelist.js +191 -0
- data/vendor/assets/ace-1.1.8/ext/old_ie.js +114 -0
- data/vendor/assets/ace-1.1.8/ext/old_ie_test.js +77 -0
- data/vendor/assets/ace-1.1.8/ext/searchbox.css +153 -0
- data/vendor/assets/ace-1.1.8/ext/searchbox.js +308 -0
- data/vendor/assets/ace-1.1.8/ext/settings_menu.js +76 -0
- data/vendor/assets/ace-1.1.8/ext/spellcheck.js +69 -0
- data/vendor/assets/ace-1.1.8/ext/split.js +40 -0
- data/vendor/assets/ace-1.1.8/ext/static.css +31 -0
- data/vendor/assets/ace-1.1.8/ext/static_highlight.js +190 -0
- data/vendor/assets/ace-1.1.8/ext/static_highlight_test.js +96 -0
- data/vendor/assets/ace-1.1.8/ext/statusbar.js +48 -0
- data/vendor/assets/ace-1.1.8/ext/textarea.js +521 -0
- data/vendor/assets/ace-1.1.8/ext/themelist.js +100 -0
- data/vendor/assets/ace-1.1.8/ext/whitespace.js +213 -0
- data/vendor/assets/ace-1.1.8/ext/whitespace_test.js +116 -0
- data/vendor/assets/ace-1.1.8/incremental_search.js +317 -0
- data/vendor/assets/ace-1.1.8/incremental_search_test.js +213 -0
- data/vendor/assets/ace-1.1.8/keyboard/emacs.js +652 -0
- data/vendor/assets/ace-1.1.8/keyboard/emacs_test.js +151 -0
- data/vendor/assets/ace-1.1.8/keyboard/hash_handler.js +231 -0
- data/vendor/assets/ace-1.1.8/keyboard/keybinding.js +145 -0
- data/vendor/assets/ace-1.1.8/keyboard/keybinding_test.js +69 -0
- data/vendor/assets/ace-1.1.8/keyboard/state_handler.js +249 -0
- data/vendor/assets/ace-1.1.8/keyboard/textarea.js +82 -0
- data/vendor/assets/ace-1.1.8/keyboard/textinput.js +495 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim.js +199 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim/commands.js +618 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim/maps/aliases.js +94 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim/maps/motions.js +681 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim/maps/operators.js +201 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim/maps/util.js +132 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim/registers.js +42 -0
- data/vendor/assets/ace-1.1.8/keyboard/vim_test.js +528 -0
- data/vendor/assets/ace-1.1.8/layer/cursor.js +234 -0
- data/vendor/assets/ace-1.1.8/layer/font_metrics.js +176 -0
- data/vendor/assets/ace-1.1.8/layer/gutter.js +287 -0
- data/vendor/assets/ace-1.1.8/layer/marker.js +218 -0
- data/vendor/assets/ace-1.1.8/layer/text.js +575 -0
- data/vendor/assets/ace-1.1.8/layer/text_test.js +126 -0
- data/vendor/assets/ace-1.1.8/lib/dom.js +283 -0
- data/vendor/assets/ace-1.1.8/lib/es5-shim.js +1062 -0
- data/vendor/assets/ace-1.1.8/lib/event.js +381 -0
- data/vendor/assets/ace-1.1.8/lib/event_emitter.js +155 -0
- data/vendor/assets/ace-1.1.8/lib/event_emitter_test.js +65 -0
- data/vendor/assets/ace-1.1.8/lib/fixoldbrowsers.js +19 -0
- data/vendor/assets/ace-1.1.8/lib/keys.js +163 -0
- data/vendor/assets/ace-1.1.8/lib/lang.js +221 -0
- data/vendor/assets/ace-1.1.8/lib/net.js +51 -0
- data/vendor/assets/ace-1.1.8/lib/oop.js +57 -0
- data/vendor/assets/ace-1.1.8/lib/regexp.js +113 -0
- data/vendor/assets/ace-1.1.8/lib/useragent.js +106 -0
- data/vendor/assets/ace-1.1.8/line_widgets.js +297 -0
- data/vendor/assets/ace-1.1.8/mode/_test/Readme.md +9 -0
- data/vendor/assets/ace-1.1.8/mode/_test/highlight_rules_test.js +210 -0
- data/vendor/assets/ace-1.1.8/mode/_test/package.json +8 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_asciidoc.txt +111 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_coffee.txt +57 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_curly.txt +9 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_html.txt +10 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_javascript.txt +86 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_livescript.txt +1 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_lucene.txt +16 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_markdown.txt +22 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_php.txt +24 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_ruby.txt +34 -0
- data/vendor/assets/ace-1.1.8/mode/_test/text_xml.txt +7 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_abap.json +189 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_actionscript.json +263 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_ada.json +39 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_asciidoc.json +422 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_assembly_x86.json +114 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_autohotkey.json +261 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_batchfile.json +70 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_c9search.json +131 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_c_cpp.json +185 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_cirru.json +267 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_clojure.json +162 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_cobol.json +4 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_coffee.json +545 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_coldfusion.json +26 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_csharp.json +31 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_css.json +148 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_curly.json +56 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_d.json +111 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_dart.json +368 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_diff.json +262 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_dot.json +2254 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_eiffel.json +141 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_ejs.json +296 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_elixir.json +196 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_elm.json +198 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_erlang.json +166 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_forth.json +219 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_ftl.json +341 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_gcode.json +296 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_gherkin.json +142 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_gitignore.json +33 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_glsl.json +127 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_golang.json +256 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_groovy.json +410 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_haml.json +174 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_handlebars.json +81 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_haskell.json +156 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_haxe.json +143 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_html.json +63 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_html_ruby.json +257 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_ini.json +23 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_io.json +49 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_jack.json +1786 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_jade.json +188 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_java.json +95 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_javascript.json +593 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_json.json +412 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_jsoniq.json +4 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_jsp.json +435 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_jsx.json +51 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_julia.json +111 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_latex.json +127 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_less.json +204 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_liquid.json +551 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_lisp.json +248 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_livescript.json +6 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_logiql.json +190 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_lsl.json +503 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_lua.json +348 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_luapage.json +633 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_lucene.json +92 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_markdown.json +114 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_matlab.json +90 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_mel.json +257 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_mushcode.json +790 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_mysql.json +4 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_nix.json +360 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_objectivec.json +792 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_ocaml.json +200 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_pascal.json +297 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_perl.json +227 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_pgsql.json +889 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_php.json +171 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_powershell.json +184 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_prolog.json +245 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_properties.json +68 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_protobuf.json +136 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_python.json +152 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_r.json +235 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_rdoc.json +441 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_rhtml.json +106 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_ruby.json +234 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_rust.json +136 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_sass.json +229 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_scad.json +194 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_scala.json +542 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_scheme.json +216 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_scss.json +123 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_sh.json +334 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_sjs.json +276 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_smarty.json +98 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_snippets.json +159 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_soy_template.json +286 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_space.json +322 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_sql.json +54 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_stylus.json +271 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_svg.json +684 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_tcl.json +385 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_tex.json +130 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_text.json +29 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_textile.json +113 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_toml.json +131 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_twig.json +288 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_typescript.json +559 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_vala.json +158 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_vbscript.json +205 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_velocity.json +285 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_verilog.json +113 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_vhdl.json +271 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_xml.json +43 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_xquery.json +44 -0
- data/vendor/assets/ace-1.1.8/mode/_test/tokens_yaml.json +150 -0
- data/vendor/assets/ace-1.1.8/mode/abap.js +77 -0
- data/vendor/assets/ace-1.1.8/mode/abap_highlight_rules.js +134 -0
- data/vendor/assets/ace-1.1.8/mode/actionscript.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/actionscript_highlight_rules.js +141 -0
- data/vendor/assets/ace-1.1.8/mode/ada.js +54 -0
- data/vendor/assets/ace-1.1.8/mode/ada_highlight_rules.js +93 -0
- data/vendor/assets/ace-1.1.8/mode/apache_conf.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/apache_conf_highlight_rules.js +231 -0
- data/vendor/assets/ace-1.1.8/mode/applescript.js +55 -0
- data/vendor/assets/ace-1.1.8/mode/applescript_highlight_rules.js +139 -0
- data/vendor/assets/ace-1.1.8/mode/asciidoc.js +64 -0
- data/vendor/assets/ace-1.1.8/mode/asciidoc_highlight_rules.js +234 -0
- data/vendor/assets/ace-1.1.8/mode/assembly_x86.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/assembly_x86_highlight_rules.js +114 -0
- data/vendor/assets/ace-1.1.8/mode/autohotkey.js +57 -0
- data/vendor/assets/ace-1.1.8/mode/autohotkey_highlight_rules.js +107 -0
- data/vendor/assets/ace-1.1.8/mode/batchfile.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/batchfile_highlight_rules.js +97 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour.js +90 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour/behaviour_test.js +133 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour/css.js +108 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour/cstyle.js +400 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour/html.js +46 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour/xml.js +202 -0
- data/vendor/assets/ace-1.1.8/mode/behaviour/xquery.js +92 -0
- data/vendor/assets/ace-1.1.8/mode/c9search.js +67 -0
- data/vendor/assets/ace-1.1.8/mode/c9search_highlight_rules.js +182 -0
- data/vendor/assets/ace-1.1.8/mode/c_cpp.js +101 -0
- data/vendor/assets/ace-1.1.8/mode/c_cpp_highlight_rules.js +196 -0
- data/vendor/assets/ace-1.1.8/mode/cirru.js +51 -0
- data/vendor/assets/ace-1.1.8/mode/cirru_highlight_rules.js +125 -0
- data/vendor/assets/ace-1.1.8/mode/clojure.js +128 -0
- data/vendor/assets/ace-1.1.8/mode/clojure_highlight_rules.js +200 -0
- data/vendor/assets/ace-1.1.8/mode/cobol.js +53 -0
- data/vendor/assets/ace-1.1.8/mode/cobol_highlight_rules.js +100 -0
- data/vendor/assets/ace-1.1.8/mode/coffee.js +135 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/coffee-script.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/helpers.js +271 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/lexer.js +935 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/nodes.js +3106 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/parser.js +724 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/parser_test.js +88 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/rewriter.js +516 -0
- data/vendor/assets/ace-1.1.8/mode/coffee/scope.js +174 -0
- data/vendor/assets/ace-1.1.8/mode/coffee_highlight_rules.js +233 -0
- data/vendor/assets/ace-1.1.8/mode/coffee_worker.js +74 -0
- data/vendor/assets/ace-1.1.8/mode/coldfusion.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/coldfusion_highlight_rules.js +49 -0
- data/vendor/assets/ace-1.1.8/mode/coldfusion_test.js +67 -0
- data/vendor/assets/ace-1.1.8/mode/csharp.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/csharp_highlight_rules.js +93 -0
- data/vendor/assets/ace-1.1.8/mode/css.js +100 -0
- data/vendor/assets/ace-1.1.8/mode/css/csslint.js +9628 -0
- data/vendor/assets/ace-1.1.8/mode/css_highlight_rules.js +179 -0
- data/vendor/assets/ace-1.1.8/mode/css_test.js +78 -0
- data/vendor/assets/ace-1.1.8/mode/css_worker.js +100 -0
- data/vendor/assets/ace-1.1.8/mode/css_worker_test.js +68 -0
- data/vendor/assets/ace-1.1.8/mode/curly.js +63 -0
- data/vendor/assets/ace-1.1.8/mode/curly_highlight_rules.js +66 -0
- data/vendor/assets/ace-1.1.8/mode/d.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/d_highlight_rules.js +334 -0
- data/vendor/assets/ace-1.1.8/mode/dart.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/dart_highlight_rules.js +186 -0
- data/vendor/assets/ace-1.1.8/mode/diff.js +52 -0
- data/vendor/assets/ace-1.1.8/mode/diff_highlight_rules.js +108 -0
- data/vendor/assets/ace-1.1.8/mode/django.js +119 -0
- data/vendor/assets/ace-1.1.8/mode/doc_comment_highlight_rules.js +79 -0
- data/vendor/assets/ace-1.1.8/mode/dockerfile.js +52 -0
- data/vendor/assets/ace-1.1.8/mode/dockerfile_highlight_rules.js +57 -0
- data/vendor/assets/ace-1.1.8/mode/dot.js +55 -0
- data/vendor/assets/ace-1.1.8/mode/dot_highlight_rules.js +126 -0
- data/vendor/assets/ace-1.1.8/mode/eiffel.js +52 -0
- data/vendor/assets/ace-1.1.8/mode/eiffel_highlight_rules.js +143 -0
- data/vendor/assets/ace-1.1.8/mode/ejs.js +109 -0
- data/vendor/assets/ace-1.1.8/mode/elixir.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/elixir_highlight_rules.js +433 -0
- data/vendor/assets/ace-1.1.8/mode/elm.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/elm_highlight_rules.js +162 -0
- data/vendor/assets/ace-1.1.8/mode/erlang.js +57 -0
- data/vendor/assets/ace-1.1.8/mode/erlang_highlight_rules.js +876 -0
- data/vendor/assets/ace-1.1.8/mode/folding/asciidoc.js +142 -0
- data/vendor/assets/ace-1.1.8/mode/folding/c9search.js +83 -0
- data/vendor/assets/ace-1.1.8/mode/folding/coffee.js +120 -0
- data/vendor/assets/ace-1.1.8/mode/folding/coffee_test.js +101 -0
- data/vendor/assets/ace-1.1.8/mode/folding/csharp.js +138 -0
- data/vendor/assets/ace-1.1.8/mode/folding/cstyle.js +124 -0
- data/vendor/assets/ace-1.1.8/mode/folding/cstyle_test.js +109 -0
- data/vendor/assets/ace-1.1.8/mode/folding/diff.js +69 -0
- data/vendor/assets/ace-1.1.8/mode/folding/fold_mode.js +120 -0
- data/vendor/assets/ace-1.1.8/mode/folding/html.js +48 -0
- data/vendor/assets/ace-1.1.8/mode/folding/html_test.js +162 -0
- data/vendor/assets/ace-1.1.8/mode/folding/ini.js +80 -0
- data/vendor/assets/ace-1.1.8/mode/folding/latex.js +162 -0
- data/vendor/assets/ace-1.1.8/mode/folding/lua.js +163 -0
- data/vendor/assets/ace-1.1.8/mode/folding/markdown.js +125 -0
- data/vendor/assets/ace-1.1.8/mode/folding/mixed.js +83 -0
- data/vendor/assets/ace-1.1.8/mode/folding/pythonic.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/folding/pythonic_test.js +98 -0
- data/vendor/assets/ace-1.1.8/mode/folding/velocity.js +120 -0
- data/vendor/assets/ace-1.1.8/mode/folding/xml.js +277 -0
- data/vendor/assets/ace-1.1.8/mode/folding/xml_test.js +110 -0
- data/vendor/assets/ace-1.1.8/mode/forth.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/forth_highlight_rules.js +164 -0
- data/vendor/assets/ace-1.1.8/mode/ftl.js +49 -0
- data/vendor/assets/ace-1.1.8/mode/ftl_highlight_rules.js +195 -0
- data/vendor/assets/ace-1.1.8/mode/gcode.js +51 -0
- data/vendor/assets/ace-1.1.8/mode/gcode_highlight_rules.js +94 -0
- data/vendor/assets/ace-1.1.8/mode/gherkin.js +80 -0
- data/vendor/assets/ace-1.1.8/mode/gherkin_highlight_rules.js +113 -0
- data/vendor/assets/ace-1.1.8/mode/gitignore.js +20 -0
- data/vendor/assets/ace-1.1.8/mode/gitignore_highlight_rules.js +31 -0
- data/vendor/assets/ace-1.1.8/mode/glsl.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/glsl_highlight_rules.js +81 -0
- data/vendor/assets/ace-1.1.8/mode/golang.js +55 -0
- data/vendor/assets/ace-1.1.8/mode/golang_highlight_rules.js +108 -0
- data/vendor/assets/ace-1.1.8/mode/groovy.js +24 -0
- data/vendor/assets/ace-1.1.8/mode/groovy_highlight_rules.js +173 -0
- data/vendor/assets/ace-1.1.8/mode/haml.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/haml_highlight_rules.js +132 -0
- data/vendor/assets/ace-1.1.8/mode/handlebars.js +29 -0
- data/vendor/assets/ace-1.1.8/mode/handlebars_highlight_rules.js +72 -0
- data/vendor/assets/ace-1.1.8/mode/haskell.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/haskell_highlight_rules.js +246 -0
- data/vendor/assets/ace-1.1.8/mode/haxe.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/haxe_highlight_rules.js +98 -0
- data/vendor/assets/ace-1.1.8/mode/html.js +106 -0
- data/vendor/assets/ace-1.1.8/mode/html/saxparser.js +10430 -0
- data/vendor/assets/ace-1.1.8/mode/html_completions.js +305 -0
- data/vendor/assets/ace-1.1.8/mode/html_highlight_rules.js +111 -0
- data/vendor/assets/ace-1.1.8/mode/html_ruby.js +59 -0
- data/vendor/assets/ace-1.1.8/mode/html_ruby_highlight_rules.js +84 -0
- data/vendor/assets/ace-1.1.8/mode/html_test.js +67 -0
- data/vendor/assets/ace-1.1.8/mode/html_worker.js +92 -0
- data/vendor/assets/ace-1.1.8/mode/ini.js +53 -0
- data/vendor/assets/ace-1.1.8/mode/ini_highlight_rules.js +112 -0
- data/vendor/assets/ace-1.1.8/mode/io.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/io_highlight_rules.js +120 -0
- data/vendor/assets/ace-1.1.8/mode/jack.js +79 -0
- data/vendor/assets/ace-1.1.8/mode/jack_highlight_rules.js +142 -0
- data/vendor/assets/ace-1.1.8/mode/jade.js +57 -0
- data/vendor/assets/ace-1.1.8/mode/jade_highlight_rules.js +341 -0
- data/vendor/assets/ace-1.1.8/mode/java.js +24 -0
- data/vendor/assets/ace-1.1.8/mode/java_highlight_rules.js +128 -0
- data/vendor/assets/ace-1.1.8/mode/javascript.js +116 -0
- data/vendor/assets/ace-1.1.8/mode/javascript/jshint.js +9459 -0
- data/vendor/assets/ace-1.1.8/mode/javascript_highlight_rules.js +405 -0
- data/vendor/assets/ace-1.1.8/mode/javascript_test.js +213 -0
- data/vendor/assets/ace-1.1.8/mode/javascript_worker.js +187 -0
- data/vendor/assets/ace-1.1.8/mode/javascript_worker_test.js +106 -0
- data/vendor/assets/ace-1.1.8/mode/js_regex_highlight_rules.js +94 -0
- data/vendor/assets/ace-1.1.8/mode/json.js +93 -0
- data/vendor/assets/ace-1.1.8/mode/json/json_parse.js +346 -0
- data/vendor/assets/ace-1.1.8/mode/json_highlight_rules.js +100 -0
- data/vendor/assets/ace-1.1.8/mode/json_worker.js +68 -0
- data/vendor/assets/ace-1.1.8/mode/json_worker_test.js +101 -0
- data/vendor/assets/ace-1.1.8/mode/jsoniq.js +203 -0
- data/vendor/assets/ace-1.1.8/mode/jsp.js +55 -0
- data/vendor/assets/ace-1.1.8/mode/jsp_highlight_rules.js +91 -0
- data/vendor/assets/ace-1.1.8/mode/jsx.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/jsx_highlight_rules.js +120 -0
- data/vendor/assets/ace-1.1.8/mode/julia.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/julia_highlight_rules.js +170 -0
- data/vendor/assets/ace-1.1.8/mode/latex.js +26 -0
- data/vendor/assets/ace-1.1.8/mode/latex_highlight_rules.js +73 -0
- data/vendor/assets/ace-1.1.8/mode/less.js +84 -0
- data/vendor/assets/ace-1.1.8/mode/less_highlight_rules.js +271 -0
- data/vendor/assets/ace-1.1.8/mode/liquid.js +82 -0
- data/vendor/assets/ace-1.1.8/mode/liquid_highlight_rules.js +131 -0
- data/vendor/assets/ace-1.1.8/mode/lisp.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/lisp_highlight_rules.js +124 -0
- data/vendor/assets/ace-1.1.8/mode/livescript.js +249 -0
- data/vendor/assets/ace-1.1.8/mode/logiql.js +139 -0
- data/vendor/assets/ace-1.1.8/mode/logiql_highlight_rules.js +119 -0
- data/vendor/assets/ace-1.1.8/mode/logiql_test.js +98 -0
- data/vendor/assets/ace-1.1.8/mode/lsl.js +92 -0
- data/vendor/assets/ace-1.1.8/mode/lsl_highlight_rules.js +123 -0
- data/vendor/assets/ace-1.1.8/mode/lua.js +168 -0
- data/vendor/assets/ace-1.1.8/mode/lua/luaparse.js +1989 -0
- data/vendor/assets/ace-1.1.8/mode/lua_highlight_rules.js +193 -0
- data/vendor/assets/ace-1.1.8/mode/lua_worker.js +71 -0
- data/vendor/assets/ace-1.1.8/mode/luapage.js +24 -0
- data/vendor/assets/ace-1.1.8/mode/luapage_highlight_rules.js +49 -0
- data/vendor/assets/ace-1.1.8/mode/lucene.js +19 -0
- data/vendor/assets/ace-1.1.8/mode/lucene_highlight_rules.js +49 -0
- data/vendor/assets/ace-1.1.8/mode/makefile.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/makefile_highlight_rules.js +75 -0
- data/vendor/assets/ace-1.1.8/mode/markdown.js +76 -0
- data/vendor/assets/ace-1.1.8/mode/markdown_highlight_rules.js +228 -0
- data/vendor/assets/ace-1.1.8/mode/matching_brace_outdent.js +69 -0
- data/vendor/assets/ace-1.1.8/mode/matching_parens_outdent.js +74 -0
- data/vendor/assets/ace-1.1.8/mode/matlab.js +55 -0
- data/vendor/assets/ace-1.1.8/mode/matlab_highlight_rules.js +262 -0
- data/vendor/assets/ace-1.1.8/mode/mel.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/mel_highlight_rules.js +133 -0
- data/vendor/assets/ace-1.1.8/mode/mushcode.js +116 -0
- data/vendor/assets/ace-1.1.8/mode/mushcode_highlight_rules.js +569 -0
- data/vendor/assets/ace-1.1.8/mode/mysql.js +51 -0
- data/vendor/assets/ace-1.1.8/mode/mysql_highlight_rules.js +122 -0
- data/vendor/assets/ace-1.1.8/mode/nix.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/nix_highlight_rules.js +119 -0
- data/vendor/assets/ace-1.1.8/mode/objectivec.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/objectivec_highlight_rules.js +331 -0
- data/vendor/assets/ace-1.1.8/mode/ocaml.js +97 -0
- data/vendor/assets/ace-1.1.8/mode/ocaml_highlight_rules.js +337 -0
- data/vendor/assets/ace-1.1.8/mode/pascal.js +67 -0
- data/vendor/assets/ace-1.1.8/mode/pascal_highlight_rules.js +127 -0
- data/vendor/assets/ace-1.1.8/mode/perl.js +90 -0
- data/vendor/assets/ace-1.1.8/mode/perl_highlight_rules.js +165 -0
- data/vendor/assets/ace-1.1.8/mode/pgsql.js +59 -0
- data/vendor/assets/ace-1.1.8/mode/pgsql_highlight_rules.js +619 -0
- data/vendor/assets/ace-1.1.8/mode/php.js +158 -0
- data/vendor/assets/ace-1.1.8/mode/php/php.js +5031 -0
- data/vendor/assets/ace-1.1.8/mode/php_highlight_rules.js +1085 -0
- data/vendor/assets/ace-1.1.8/mode/php_test.js +65 -0
- data/vendor/assets/ace-1.1.8/mode/php_worker.js +81 -0
- data/vendor/assets/ace-1.1.8/mode/plain_text.js +55 -0
- data/vendor/assets/ace-1.1.8/mode/plain_text_test.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/powershell.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/powershell_highlight_rules.js +145 -0
- data/vendor/assets/ace-1.1.8/mode/praat.js +84 -0
- data/vendor/assets/ace-1.1.8/mode/praat_highlight_rules.js +262 -0
- data/vendor/assets/ace-1.1.8/mode/prolog.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/prolog_highlight_rules.js +238 -0
- data/vendor/assets/ace-1.1.8/mode/properties.js +48 -0
- data/vendor/assets/ace-1.1.8/mode/properties_highlight_rules.js +86 -0
- data/vendor/assets/ace-1.1.8/mode/protobuf.js +63 -0
- data/vendor/assets/ace-1.1.8/mode/protobuf_highlight_rules.js +66 -0
- data/vendor/assets/ace-1.1.8/mode/python.js +113 -0
- data/vendor/assets/ace-1.1.8/mode/python_highlight_rules.js +191 -0
- data/vendor/assets/ace-1.1.8/mode/python_test.js +79 -0
- data/vendor/assets/ace-1.1.8/mode/r.js +154 -0
- data/vendor/assets/ace-1.1.8/mode/r_highlight_rules.js +208 -0
- data/vendor/assets/ace-1.1.8/mode/rdoc.js +61 -0
- data/vendor/assets/ace-1.1.8/mode/rdoc_highlight_rules.js +119 -0
- data/vendor/assets/ace-1.1.8/mode/rhtml.js +87 -0
- data/vendor/assets/ace-1.1.8/mode/rhtml_highlight_rules.js +66 -0
- data/vendor/assets/ace-1.1.8/mode/ruby.js +100 -0
- data/vendor/assets/ace-1.1.8/mode/ruby_highlight_rules.js +323 -0
- data/vendor/assets/ace-1.1.8/mode/ruby_test.js +77 -0
- data/vendor/assets/ace-1.1.8/mode/rust.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/rust_highlight_rules.js +158 -0
- data/vendor/assets/ace-1.1.8/mode/sass.js +52 -0
- data/vendor/assets/ace-1.1.8/mode/sass_highlight_rules.js +79 -0
- data/vendor/assets/ace-1.1.8/mode/scad.js +99 -0
- data/vendor/assets/ace-1.1.8/mode/scad_highlight_rules.js +142 -0
- data/vendor/assets/ace-1.1.8/mode/scala.js +25 -0
- data/vendor/assets/ace-1.1.8/mode/scala_highlight_rules.js +160 -0
- data/vendor/assets/ace-1.1.8/mode/scheme.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/scheme_highlight_rules.js +123 -0
- data/vendor/assets/ace-1.1.8/mode/scss.js +84 -0
- data/vendor/assets/ace-1.1.8/mode/scss_highlight_rules.js +296 -0
- data/vendor/assets/ace-1.1.8/mode/sh.js +116 -0
- data/vendor/assets/ace-1.1.8/mode/sh_highlight_rules.js +203 -0
- data/vendor/assets/ace-1.1.8/mode/sjs.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/sjs_highlight_rules.js +233 -0
- data/vendor/assets/ace-1.1.8/mode/smarty.js +51 -0
- data/vendor/assets/ace-1.1.8/mode/smarty_highlight_rules.js +139 -0
- data/vendor/assets/ace-1.1.8/mode/snippets.js +113 -0
- data/vendor/assets/ace-1.1.8/mode/soy_template.js +60 -0
- data/vendor/assets/ace-1.1.8/mode/soy_template_highlight_rules.js +356 -0
- data/vendor/assets/ace-1.1.8/mode/space.js +21 -0
- data/vendor/assets/ace-1.1.8/mode/space_highlight_rules.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/sql.js +53 -0
- data/vendor/assets/ace-1.1.8/mode/sql_highlight_rules.js +99 -0
- data/vendor/assets/ace-1.1.8/mode/stylus.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/stylus_highlight_rules.js +165 -0
- data/vendor/assets/ace-1.1.8/mode/svg.js +69 -0
- data/vendor/assets/ace-1.1.8/mode/svg_highlight_rules.js +49 -0
- data/vendor/assets/ace-1.1.8/mode/tcl.js +84 -0
- data/vendor/assets/ace-1.1.8/mode/tcl_highlight_rules.js +172 -0
- data/vendor/assets/ace-1.1.8/mode/tex.js +68 -0
- data/vendor/assets/ace-1.1.8/mode/tex_highlight_rules.js +127 -0
- data/vendor/assets/ace-1.1.8/mode/text.js +386 -0
- data/vendor/assets/ace-1.1.8/mode/text_highlight_rules.js +234 -0
- data/vendor/assets/ace-1.1.8/mode/text_test.js +64 -0
- data/vendor/assets/ace-1.1.8/mode/textile.js +67 -0
- data/vendor/assets/ace-1.1.8/mode/textile_highlight_rules.js +93 -0
- data/vendor/assets/ace-1.1.8/mode/toml.js +56 -0
- data/vendor/assets/ace-1.1.8/mode/toml_highlight_rules.js +103 -0
- data/vendor/assets/ace-1.1.8/mode/twig.js +81 -0
- data/vendor/assets/ace-1.1.8/mode/twig_highlight_rules.js +166 -0
- data/vendor/assets/ace-1.1.8/mode/typescript.js +62 -0
- data/vendor/assets/ace-1.1.8/mode/typescript_highlight_rules.js +98 -0
- data/vendor/assets/ace-1.1.8/mode/vala.js +105 -0
- data/vendor/assets/ace-1.1.8/mode/vala_highlight_rules.js +457 -0
- data/vendor/assets/ace-1.1.8/mode/vbscript.js +60 -0
- data/vendor/assets/ace-1.1.8/mode/vbscript_highlight_rules.js +246 -0
- data/vendor/assets/ace-1.1.8/mode/velocity.js +58 -0
- data/vendor/assets/ace-1.1.8/mode/velocity_highlight_rules.js +177 -0
- data/vendor/assets/ace-1.1.8/mode/verilog.js +54 -0
- data/vendor/assets/ace-1.1.8/mode/verilog_highlight_rules.js +101 -0
- data/vendor/assets/ace-1.1.8/mode/vhdl.js +52 -0
- data/vendor/assets/ace-1.1.8/mode/vhdl_highlight_rules.js +115 -0
- data/vendor/assets/ace-1.1.8/mode/xml.js +59 -0
- data/vendor/assets/ace-1.1.8/mode/xml_highlight_rules.js +242 -0
- data/vendor/assets/ace-1.1.8/mode/xml_test.js +75 -0
- data/vendor/assets/ace-1.1.8/mode/xquery.js +216 -0
- data/vendor/assets/ace-1.1.8/mode/xquery/Readme.md +1 -0
- data/vendor/assets/ace-1.1.8/mode/xquery/jsoniq_lexer.js +4453 -0
- data/vendor/assets/ace-1.1.8/mode/xquery/modules.js +4 -0
- data/vendor/assets/ace-1.1.8/mode/xquery/xqlint.js +78912 -0
- data/vendor/assets/ace-1.1.8/mode/xquery/xquery_lexer.js +4422 -0
- data/vendor/assets/ace-1.1.8/mode/xquery_worker.js +115 -0
- data/vendor/assets/ace-1.1.8/mode/yaml.js +78 -0
- data/vendor/assets/ace-1.1.8/mode/yaml_highlight_rules.js +113 -0
- data/vendor/assets/ace-1.1.8/model/editor.js +62 -0
- data/vendor/assets/ace-1.1.8/mouse/default_gutter_handler.js +181 -0
- data/vendor/assets/ace-1.1.8/mouse/default_handlers.js +278 -0
- data/vendor/assets/ace-1.1.8/mouse/dragdrop_handler.js +428 -0
- data/vendor/assets/ace-1.1.8/mouse/fold_handler.js +93 -0
- data/vendor/assets/ace-1.1.8/mouse/mouse_event.js +129 -0
- data/vendor/assets/ace-1.1.8/mouse/mouse_handler.js +203 -0
- data/vendor/assets/ace-1.1.8/mouse/mouse_handler_test.js +77 -0
- data/vendor/assets/ace-1.1.8/mouse/multi_select_handler.js +208 -0
- data/vendor/assets/ace-1.1.8/multi_select.js +996 -0
- data/vendor/assets/ace-1.1.8/multi_select_test.js +199 -0
- data/vendor/assets/ace-1.1.8/occur.js +193 -0
- data/vendor/assets/ace-1.1.8/occur_test.js +154 -0
- data/vendor/assets/ace-1.1.8/placeholder.js +274 -0
- data/vendor/assets/ace-1.1.8/placeholder_test.js +156 -0
- data/vendor/assets/ace-1.1.8/range.js +549 -0
- data/vendor/assets/ace-1.1.8/range_list.js +240 -0
- data/vendor/assets/ace-1.1.8/range_list_test.js +182 -0
- data/vendor/assets/ace-1.1.8/range_test.js +191 -0
- data/vendor/assets/ace-1.1.8/renderloop.js +75 -0
- data/vendor/assets/ace-1.1.8/requirejs/text.js +52 -0
- data/vendor/assets/ace-1.1.8/requirejs/text_build.js +60 -0
- data/vendor/assets/ace-1.1.8/scrollbar.js +270 -0
- data/vendor/assets/ace-1.1.8/search.js +396 -0
- data/vendor/assets/ace-1.1.8/search_highlight.js +82 -0
- data/vendor/assets/ace-1.1.8/search_test.js +461 -0
- data/vendor/assets/ace-1.1.8/selection.js +955 -0
- data/vendor/assets/ace-1.1.8/selection_test.js +480 -0
- data/vendor/assets/ace-1.1.8/snippets.js +949 -0
- data/vendor/assets/ace-1.1.8/snippets/_.snippets +240 -0
- data/vendor/assets/ace-1.1.8/snippets/_all_modes.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/_all_modes.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/abap.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/abap.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/actionscript.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/actionscript.snippets +157 -0
- data/vendor/assets/ace-1.1.8/snippets/ada.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/ada.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/all_modes.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/all_modes.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/apache.snippets +35 -0
- data/vendor/assets/ace-1.1.8/snippets/apache_conf.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/apache_conf.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/applescript.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/applescript.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/asciidoc.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/asciidoc.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/assembly_x86.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/assembly_x86.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/autohotkey.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/autohotkey.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/autoit.snippets +66 -0
- data/vendor/assets/ace-1.1.8/snippets/batchfile.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/batchfile.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/c.snippets +235 -0
- data/vendor/assets/ace-1.1.8/snippets/c9search.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/c9search.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/c_cpp.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/c_cpp.snippets +131 -0
- data/vendor/assets/ace-1.1.8/snippets/chef.snippets +204 -0
- data/vendor/assets/ace-1.1.8/snippets/cirru.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/cirru.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/clojure.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/clojure.snippets +90 -0
- data/vendor/assets/ace-1.1.8/snippets/cmake.snippets +58 -0
- data/vendor/assets/ace-1.1.8/snippets/cobol.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/cobol.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/coffee.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/coffee.snippets +95 -0
- data/vendor/assets/ace-1.1.8/snippets/coldfusion.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/coldfusion.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/cs.snippets +374 -0
- data/vendor/assets/ace-1.1.8/snippets/csharp.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/csharp.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/css.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/css.snippets +967 -0
- data/vendor/assets/ace-1.1.8/snippets/curly.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/curly.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/d.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/d.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/dart.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/dart.snippets +83 -0
- data/vendor/assets/ace-1.1.8/snippets/diff.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/diff.snippets +11 -0
- data/vendor/assets/ace-1.1.8/snippets/django.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/django.snippets +108 -0
- data/vendor/assets/ace-1.1.8/snippets/dockerfile.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/dockerfile.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/dot.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/dot.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/dummy.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/dummy_syntax.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/eiffel.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/eiffel.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/ejs.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/ejs.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/elixir.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/elixir.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/elm.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/elm.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/erlang.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/erlang.snippets +160 -0
- data/vendor/assets/ace-1.1.8/snippets/eruby.snippets +113 -0
- data/vendor/assets/ace-1.1.8/snippets/falcon.snippets +71 -0
- data/vendor/assets/ace-1.1.8/snippets/forth.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/forth.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/ftl.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/ftl.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/gcode.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/gcode.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/gherkin.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/gherkin.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/gitignore.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/gitignore.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/glsl.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/glsl.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/go.snippets +201 -0
- data/vendor/assets/ace-1.1.8/snippets/golang.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/golang.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/groovy.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/groovy.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/haml.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/haml.snippets +20 -0
- data/vendor/assets/ace-1.1.8/snippets/handlebars.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/handlebars.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/haskell.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/haskell.snippets +82 -0
- data/vendor/assets/ace-1.1.8/snippets/haxe.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/haxe.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/html.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/html.snippets +828 -0
- data/vendor/assets/ace-1.1.8/snippets/html_ruby.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/html_ruby.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/htmldjango.snippets +136 -0
- data/vendor/assets/ace-1.1.8/snippets/htmltornado.snippets +55 -0
- data/vendor/assets/ace-1.1.8/snippets/ini.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/ini.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/io.js +69 -0
- data/vendor/assets/ace-1.1.8/snippets/io.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/jack.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/jack.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/jade.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/jade.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/java.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/java.snippets +240 -0
- data/vendor/assets/ace-1.1.8/snippets/javascript-jquery.snippets +589 -0
- data/vendor/assets/ace-1.1.8/snippets/javascript.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/javascript.snippets +195 -0
- data/vendor/assets/ace-1.1.8/snippets/json.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/json.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/jsoniq.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/jsoniq.snippets +61 -0
- data/vendor/assets/ace-1.1.8/snippets/jsp.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/jsp.snippets +99 -0
- data/vendor/assets/ace-1.1.8/snippets/jsx.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/jsx.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/julia.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/julia.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/latex.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/latex.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/ledger.snippets +5 -0
- data/vendor/assets/ace-1.1.8/snippets/less.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/less.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/liquid.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/liquid.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/lisp.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/lisp.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/livescript.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/livescript.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/logiql.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/logiql.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/lsl.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/lsl.snippets +1066 -0
- data/vendor/assets/ace-1.1.8/snippets/lua.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/lua.snippets +21 -0
- data/vendor/assets/ace-1.1.8/snippets/luapage.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/luapage.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/lucene.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/lucene.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/makefile.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/makefile.snippets +4 -0
- data/vendor/assets/ace-1.1.8/snippets/mako.snippets +54 -0
- data/vendor/assets/ace-1.1.8/snippets/markdown.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/markdown.snippets +88 -0
- data/vendor/assets/ace-1.1.8/snippets/matlab.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/matlab.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/mel.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/mel.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/mushcode.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/mushcode.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/mushcode_high_rules.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/mushcode_high_rules.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/mysql.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/mysql.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/nix.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/nix.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/objc.snippets +247 -0
- data/vendor/assets/ace-1.1.8/snippets/objectivec.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/objectivec.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/ocaml.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/ocaml.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/pascal.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/pascal.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/perl.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/perl.snippets +347 -0
- data/vendor/assets/ace-1.1.8/snippets/pgsql.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/pgsql.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/php.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/php.snippets +377 -0
- data/vendor/assets/ace-1.1.8/snippets/plain_text.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/plain_text.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/powershell.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/powershell.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/praat.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/praat.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/prolog.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/prolog.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/properties.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/properties.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/protobuf.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/protobuf.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/python.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/python.snippets +158 -0
- data/vendor/assets/ace-1.1.8/snippets/r.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/r.snippets +121 -0
- data/vendor/assets/ace-1.1.8/snippets/rdoc.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/rdoc.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/rhtml.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/rhtml.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/rst.snippets +22 -0
- data/vendor/assets/ace-1.1.8/snippets/ruby.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/ruby.snippets +928 -0
- data/vendor/assets/ace-1.1.8/snippets/rust.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/rust.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/sass.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/sass.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/scad.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/scad.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/scala.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/scala.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/scheme.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/scheme.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/scss.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/scss.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/sh.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/sh.snippets +83 -0
- data/vendor/assets/ace-1.1.8/snippets/sjs.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/sjs.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/smarty.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/smarty.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/snippets.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/snippets.snippets +9 -0
- data/vendor/assets/ace-1.1.8/snippets/soy_template.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/soy_template.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/space.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/space.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/sql.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/sql.snippets +26 -0
- data/vendor/assets/ace-1.1.8/snippets/stylus.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/stylus.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/svg.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/svg.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/tcl.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/tcl.snippets +92 -0
- data/vendor/assets/ace-1.1.8/snippets/tex.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/tex.snippets +191 -0
- data/vendor/assets/ace-1.1.8/snippets/text.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/text.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/textile.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/textile.snippets +30 -0
- data/vendor/assets/ace-1.1.8/snippets/tmsnippet.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/toml.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/toml.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/twig.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/twig.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/typescript.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/typescript.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/vala.js +195 -0
- data/vendor/assets/ace-1.1.8/snippets/vala.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/vbscript.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/vbscript.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/velocity.js +8 -0
- data/vendor/assets/ace-1.1.8/snippets/velocity.snippets +28 -0
- data/vendor/assets/ace-1.1.8/snippets/verilog.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/verilog.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/vhdl.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/vhdl.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/xml.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/xml.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets/xquery.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/xquery.snippets +61 -0
- data/vendor/assets/ace-1.1.8/snippets/xslt.snippets +97 -0
- data/vendor/assets/ace-1.1.8/snippets/yaml.js +7 -0
- data/vendor/assets/ace-1.1.8/snippets/yaml.snippets +0 -0
- data/vendor/assets/ace-1.1.8/snippets_test.js +131 -0
- data/vendor/assets/ace-1.1.8/split.js +373 -0
- data/vendor/assets/ace-1.1.8/test/all.js +35 -0
- data/vendor/assets/ace-1.1.8/test/all_browser.js +141 -0
- data/vendor/assets/ace-1.1.8/test/assertions.js +56 -0
- data/vendor/assets/ace-1.1.8/test/asyncjs/assert.js +313 -0
- data/vendor/assets/ace-1.1.8/test/asyncjs/async.js +529 -0
- data/vendor/assets/ace-1.1.8/test/asyncjs/index.js +13 -0
- data/vendor/assets/ace-1.1.8/test/asyncjs/test.js +195 -0
- data/vendor/assets/ace-1.1.8/test/asyncjs/utils.js +65 -0
- data/vendor/assets/ace-1.1.8/test/benchmark.js +78 -0
- data/vendor/assets/ace-1.1.8/test/mockdom.js +10 -0
- data/vendor/assets/ace-1.1.8/test/mockrenderer.js +208 -0
- data/vendor/assets/ace-1.1.8/test/tests.html +46 -0
- data/vendor/assets/ace-1.1.8/theme/ambiance.css +221 -0
- data/vendor/assets/ace-1.1.8/theme/ambiance.js +33 -0
- data/vendor/assets/ace-1.1.8/theme/chaos.css +154 -0
- data/vendor/assets/ace-1.1.8/theme/chaos.js +33 -0
- data/vendor/assets/ace-1.1.8/theme/chrome.css +154 -0
- data/vendor/assets/ace-1.1.8/theme/chrome.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/clouds.css +112 -0
- data/vendor/assets/ace-1.1.8/theme/clouds.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/clouds_midnight.css +113 -0
- data/vendor/assets/ace-1.1.8/theme/clouds_midnight.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/cobalt.css +134 -0
- data/vendor/assets/ace-1.1.8/theme/cobalt.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/crimson_editor.css +143 -0
- data/vendor/assets/ace-1.1.8/theme/crimson_editor.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/dawn.css +127 -0
- data/vendor/assets/ace-1.1.8/theme/dawn.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/dreamweaver.css +176 -0
- data/vendor/assets/ace-1.1.8/theme/dreamweaver.js +38 -0
- data/vendor/assets/ace-1.1.8/theme/eclipse.css +113 -0
- data/vendor/assets/ace-1.1.8/theme/eclipse.js +41 -0
- data/vendor/assets/ace-1.1.8/theme/github.css +119 -0
- data/vendor/assets/ace-1.1.8/theme/github.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/idle_fingers.css +113 -0
- data/vendor/assets/ace-1.1.8/theme/idle_fingers.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/katzenmilch.css +140 -0
- data/vendor/assets/ace-1.1.8/theme/katzenmilch.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/kr_theme.css +124 -0
- data/vendor/assets/ace-1.1.8/theme/kr_theme.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/kuroir.css +67 -0
- data/vendor/assets/ace-1.1.8/theme/kuroir.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/merbivore.css +110 -0
- data/vendor/assets/ace-1.1.8/theme/merbivore.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/merbivore_soft.css +111 -0
- data/vendor/assets/ace-1.1.8/theme/merbivore_soft.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/mono_industrial.css +126 -0
- data/vendor/assets/ace-1.1.8/theme/mono_industrial.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/monokai.css +122 -0
- data/vendor/assets/ace-1.1.8/theme/monokai.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/pastel_on_dark.css +129 -0
- data/vendor/assets/ace-1.1.8/theme/pastel_on_dark.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/solarized_dark.css +101 -0
- data/vendor/assets/ace-1.1.8/theme/solarized_dark.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/solarized_light.css +106 -0
- data/vendor/assets/ace-1.1.8/theme/solarized_light.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/terminal.css +132 -0
- data/vendor/assets/ace-1.1.8/theme/terminal.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/textmate.css +155 -0
- data/vendor/assets/ace-1.1.8/theme/textmate.js +40 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow.css +125 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night.css +125 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night_blue.css +122 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night_blue.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night_bright.css +141 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night_bright.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night_eighties.css +125 -0
- data/vendor/assets/ace-1.1.8/theme/tomorrow_night_eighties.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/twilight.css +128 -0
- data/vendor/assets/ace-1.1.8/theme/twilight.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/vibrant_ink.css +110 -0
- data/vendor/assets/ace-1.1.8/theme/vibrant_ink.js +39 -0
- data/vendor/assets/ace-1.1.8/theme/xcode.css +103 -0
- data/vendor/assets/ace-1.1.8/theme/xcode.js +39 -0
- data/vendor/assets/ace-1.1.8/token_iterator.js +150 -0
- data/vendor/assets/ace-1.1.8/token_iterator_test.js +212 -0
- data/vendor/assets/ace-1.1.8/tokenizer.js +366 -0
- data/vendor/assets/ace-1.1.8/tokenizer_dev.js +183 -0
- data/vendor/assets/ace-1.1.8/tokenizer_test.js +97 -0
- data/vendor/assets/ace-1.1.8/tooltip.js +138 -0
- data/vendor/assets/ace-1.1.8/undomanager.js +168 -0
- data/vendor/assets/ace-1.1.8/unicode.js +107 -0
- data/vendor/assets/ace-1.1.8/virtual_renderer.js +1759 -0
- data/vendor/assets/ace-1.1.8/virtual_renderer_test.js +86 -0
- data/vendor/assets/ace-1.1.8/worker/mirror.js +49 -0
- data/vendor/assets/ace-1.1.8/worker/worker.js +193 -0
- data/vendor/assets/ace-1.1.8/worker/worker_client.js +255 -0
- data/vendor/assets/ace-1.1.8/worker/worker_test.js +125 -0
- data/vendor/assets/ckeditor-4.4.7/CHANGES.md +720 -0
- data/vendor/assets/ckeditor-4.4.7/LICENSE.md +1264 -0
- data/vendor/assets/ckeditor-4.4.7/README.md +39 -0
- data/vendor/assets/ckeditor-4.4.7/adapters/jquery.js +10 -0
- data/vendor/assets/ckeditor-4.4.7/build-config.js +83 -0
- data/vendor/assets/ckeditor-4.4.7/ckeditor.js +829 -0
- data/vendor/assets/ckeditor-4.4.7/config.js +34 -0
- data/vendor/assets/ckeditor-4.4.7/contents.css +134 -0
- data/vendor/assets/ckeditor-4.4.7/lang/en.js +5 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/clipboard/dialogs/paste.js +11 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/dialog/dialogDefinition.js +4 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/icons.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/icons_hidpi.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/image/dialogs/image.js +43 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/image/images/noimage.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/link/dialogs/anchor.js +7 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/link/dialogs/link.js +26 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/link/images/anchor.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/link/images/hidpi/anchor.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/hidpi/icon.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/icon-rtl.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/magicline/images/icon.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/pastefromword/filter/default.js +31 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_address.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_blockquote.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_div.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h1.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h2.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h3.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h4.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h5.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_h6.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_p.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/showblocks/images/block_pre.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/af.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ar.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/bg.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ca.js +14 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/cs.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/cy.js +14 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/da.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/de.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/el.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/en-gb.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/en.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/eo.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/es.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/et.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fa.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fi.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/fr.js +11 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/gl.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/he.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/hr.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/hu.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/id.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/it.js +14 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ja.js +9 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/km.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ku.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/lt.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/lv.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/nb.js +11 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/nl.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/no.js +11 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/pl.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/pt.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ru.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/si.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sk.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sl.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sq.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/sv.js +11 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/th.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/tr.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/tt.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/ug.js +13 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/uk.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/vi.js +14 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/lang/zh.js +12 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/specialchar/dialogs/specialchar.js +14 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/table/dialogs/table.js +21 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/templates/dialogs/templates.css +84 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/templates/dialogs/templates.js +10 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/default.js +6 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/images/template1.gif +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/images/template2.gif +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/templates/templates/images/template3.gif +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/uploadcare/README.md +64 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/uploadcare/icons/hidpi/uploadcare.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/plugins/uploadcare/icons/uploadcare.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/samples/ajax.html +82 -0
- data/vendor/assets/ckeditor-4.4.7/samples/api.html +207 -0
- data/vendor/assets/ckeditor-4.4.7/samples/appendto.html +56 -0
- data/vendor/assets/ckeditor-4.4.7/samples/assets/inlineall/logo.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/samples/assets/outputxhtml/outputxhtml.css +204 -0
- data/vendor/assets/ckeditor-4.4.7/samples/assets/posteddata.php +59 -0
- data/vendor/assets/ckeditor-4.4.7/samples/assets/sample.jpg +0 -0
- data/vendor/assets/ckeditor-4.4.7/samples/assets/uilanguages/languages.js +7 -0
- data/vendor/assets/ckeditor-4.4.7/samples/datafiltering.html +401 -0
- data/vendor/assets/ckeditor-4.4.7/samples/divreplace.html +141 -0
- data/vendor/assets/ckeditor-4.4.7/samples/index.html +119 -0
- data/vendor/assets/ckeditor-4.4.7/samples/inlineall.html +311 -0
- data/vendor/assets/ckeditor-4.4.7/samples/inlinebycode.html +121 -0
- data/vendor/assets/ckeditor-4.4.7/samples/inlinetextarea.html +110 -0
- data/vendor/assets/ckeditor-4.4.7/samples/jquery.html +100 -0
- data/vendor/assets/ckeditor-4.4.7/samples/plugins/dialog/assets/my_dialog.js +48 -0
- data/vendor/assets/ckeditor-4.4.7/samples/plugins/dialog/dialog.html +187 -0
- data/vendor/assets/ckeditor-4.4.7/samples/plugins/enterkey/enterkey.html +103 -0
- data/vendor/assets/ckeditor-4.4.7/samples/plugins/magicline/magicline.html +206 -0
- data/vendor/assets/ckeditor-4.4.7/samples/plugins/toolbar/toolbar.html +232 -0
- data/vendor/assets/ckeditor-4.4.7/samples/readonly.html +73 -0
- data/vendor/assets/ckeditor-4.4.7/samples/replacebyclass.html +57 -0
- data/vendor/assets/ckeditor-4.4.7/samples/replacebycode.html +56 -0
- data/vendor/assets/ckeditor-4.4.7/samples/sample.css +365 -0
- data/vendor/assets/ckeditor-4.4.7/samples/sample.js +50 -0
- data/vendor/assets/ckeditor-4.4.7/samples/sample_posteddata.php +16 -0
- data/vendor/assets/ckeditor-4.4.7/samples/tabindex.html +75 -0
- data/vendor/assets/ckeditor-4.4.7/samples/uicolor.html +69 -0
- data/vendor/assets/ckeditor-4.4.7/samples/uilanguages.html +119 -0
- data/vendor/assets/ckeditor-4.4.7/samples/xhtmlstyle.html +231 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_ie.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_ie7.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_ie8.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/dialog_iequirks.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/editor.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_gecko.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_ie.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_ie7.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_ie8.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/editor_iequirks.css +5 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/icons.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/icons_hidpi.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/arrow.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/close.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/close.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/lock-open.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/lock.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/hidpi/refresh.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/lock-open.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/lock.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/images/refresh.png +0 -0
- data/vendor/assets/ckeditor-4.4.7/skins/flat/readme.md +8 -0
- data/vendor/assets/ckeditor-4.4.7/styles.js +111 -0
- data/vendor/assets/javascripts/backbone.js +1608 -0
- data/vendor/assets/javascripts/backbone.memento.js +159 -0
- data/vendor/assets/javascripts/jquery-ui.js +14987 -0
- data/vendor/assets/javascripts/jquery.js +10346 -0
- data/vendor/assets/javascripts/jquery.noty.js +1436 -0
- data/vendor/assets/javascripts/require.js +36 -0
- data/vendor/assets/javascripts/text.js +391 -0
- data/vendor/assets/javascripts/underscore.js +1536 -0
- 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
|
+
});
|