inc_gollum 4.1.2c

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