ace-rails-ap 4.1.3 → 4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. checksums.yaml +5 -5
  2. data/.gitmodules +1 -1
  3. data/Gemfile +2 -3
  4. data/ace-rails-ap.gemspec +0 -2
  5. data/lib/ace/rails/version.rb +1 -1
  6. data/update.sh +1 -1
  7. data/vendor/assets/javascripts/ace/ace.js +5192 -3414
  8. data/vendor/assets/javascripts/ace/ext-beautify.js +281 -288
  9. data/vendor/assets/javascripts/ace/ext-code_lens.js +238 -0
  10. data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +6 -3
  11. data/vendor/assets/javascripts/ace/ext-emmet.js +353 -246
  12. data/vendor/assets/javascripts/ace/ext-error_marker.js +6 -3
  13. data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +61 -38
  14. data/vendor/assets/javascripts/ace/ext-language_tools.js +532 -343
  15. data/vendor/assets/javascripts/ace/ext-linking.js +8 -5
  16. data/vendor/assets/javascripts/ace/ext-modelist.js +46 -12
  17. data/vendor/assets/javascripts/ace/ext-options.js +793 -0
  18. data/vendor/assets/javascripts/ace/ext-prompt.js +2783 -0
  19. data/vendor/assets/javascripts/ace/ext-rtl.js +122 -0
  20. data/vendor/assets/javascripts/ace/ext-searchbox.js +45 -40
  21. data/vendor/assets/javascripts/ace/ext-settings_menu.js +520 -369
  22. data/vendor/assets/javascripts/ace/ext-spellcheck.js +6 -4
  23. data/vendor/assets/javascripts/ace/ext-split.js +7 -46
  24. data/vendor/assets/javascripts/ace/ext-static_highlight.js +90 -22
  25. data/vendor/assets/javascripts/ace/ext-statusbar.js +9 -6
  26. data/vendor/assets/javascripts/ace/ext-textarea.js +21 -18
  27. data/vendor/assets/javascripts/ace/ext-themelist.js +10 -6
  28. data/vendor/assets/javascripts/ace/ext-whitespace.js +13 -6
  29. data/vendor/assets/javascripts/ace/keybinding-emacs.js +49 -61
  30. data/vendor/assets/javascripts/ace/keybinding-sublime.js +422 -0
  31. data/vendor/assets/javascripts/ace/keybinding-vim.js +620 -287
  32. data/vendor/assets/javascripts/ace/keybinding-vscode.js +262 -0
  33. data/vendor/assets/javascripts/ace/mode-abap.js +10 -3
  34. data/vendor/assets/javascripts/ace/mode-abc.js +14 -4
  35. data/vendor/assets/javascripts/ace/mode-actionscript.js +13 -5
  36. data/vendor/assets/javascripts/ace/mode-ada.js +54 -4
  37. data/vendor/assets/javascripts/ace/mode-alda.js +311 -0
  38. data/vendor/assets/javascripts/ace/mode-apache_conf.js +12 -5
  39. data/vendor/assets/javascripts/ace/mode-apex.js +457 -0
  40. data/vendor/assets/javascripts/ace/mode-applescript.js +11 -4
  41. data/vendor/assets/javascripts/ace/mode-aql.js +102 -0
  42. data/vendor/assets/javascripts/ace/mode-asciidoc.js +9 -2
  43. data/vendor/assets/javascripts/ace/mode-asl.js +422 -0
  44. data/vendor/assets/javascripts/ace/mode-assembly_x86.js +11 -4
  45. data/vendor/assets/javascripts/ace/mode-autohotkey.js +17 -8
  46. data/vendor/assets/javascripts/ace/mode-batchfile.js +12 -5
  47. data/vendor/assets/javascripts/ace/mode-c9search.js +9 -3
  48. data/vendor/assets/javascripts/ace/mode-c_cpp.js +23 -7
  49. data/vendor/assets/javascripts/ace/mode-cirru.js +11 -4
  50. data/vendor/assets/javascripts/ace/mode-clojure.js +9 -1
  51. data/vendor/assets/javascripts/ace/mode-cobol.js +8 -1
  52. data/vendor/assets/javascripts/ace/mode-coffee.js +12 -4
  53. data/vendor/assets/javascripts/ace/mode-coldfusion.js +163 -134
  54. data/vendor/assets/javascripts/ace/mode-crystal.js +642 -0
  55. data/vendor/assets/javascripts/ace/mode-csharp.js +13 -6
  56. data/vendor/assets/javascripts/ace/mode-csound_document.js +4036 -0
  57. data/vendor/assets/javascripts/ace/mode-csound_orchestra.js +2966 -0
  58. data/vendor/assets/javascripts/ace/mode-csound_score.js +462 -0
  59. data/vendor/assets/javascripts/ace/mode-csp.js +59 -0
  60. data/vendor/assets/javascripts/ace/mode-css.js +48 -27
  61. data/vendor/assets/javascripts/ace/mode-curly.js +162 -133
  62. data/vendor/assets/javascripts/ace/mode-d.js +12 -5
  63. data/vendor/assets/javascripts/ace/mode-dart.js +46 -20
  64. data/vendor/assets/javascripts/ace/mode-diff.js +11 -3
  65. data/vendor/assets/javascripts/ace/mode-django.js +164 -134
  66. data/vendor/assets/javascripts/ace/mode-dockerfile.js +12 -4
  67. data/vendor/assets/javascripts/ace/mode-dot.js +11 -4
  68. data/vendor/assets/javascripts/ace/mode-drools.js +46 -5
  69. data/vendor/assets/javascripts/ace/mode-edifact.js +166 -0
  70. data/vendor/assets/javascripts/ace/mode-eiffel.js +8 -1
  71. data/vendor/assets/javascripts/ace/mode-ejs.js +832 -298
  72. data/vendor/assets/javascripts/ace/mode-elixir.js +11 -4
  73. data/vendor/assets/javascripts/ace/mode-elm.js +10 -3
  74. data/vendor/assets/javascripts/ace/mode-erlang.js +13 -5
  75. data/vendor/assets/javascripts/ace/mode-forth.js +12 -5
  76. data/vendor/assets/javascripts/ace/mode-fortran.js +10 -3
  77. data/vendor/assets/javascripts/ace/mode-fsharp.js +316 -0
  78. data/vendor/assets/javascripts/ace/{mode-mipsassembler.js → mode-fsl.js} +91 -28
  79. data/vendor/assets/javascripts/ace/mode-ftl.js +23 -12
  80. data/vendor/assets/javascripts/ace/mode-gcode.js +8 -1
  81. data/vendor/assets/javascripts/ace/mode-gherkin.js +9 -4
  82. data/vendor/assets/javascripts/ace/mode-gitignore.js +8 -1
  83. data/vendor/assets/javascripts/ace/mode-glsl.js +24 -8
  84. data/vendor/assets/javascripts/ace/mode-gobstones.js +267 -99
  85. data/vendor/assets/javascripts/ace/mode-golang.js +11 -4
  86. data/vendor/assets/javascripts/ace/mode-graphqlschema.js +11 -3
  87. data/vendor/assets/javascripts/ace/mode-groovy.js +14 -5
  88. data/vendor/assets/javascripts/ace/mode-haml.js +442 -116
  89. data/vendor/assets/javascripts/ace/mode-handlebars.js +162 -133
  90. data/vendor/assets/javascripts/ace/mode-haskell.js +14 -6
  91. data/vendor/assets/javascripts/ace/mode-haskell_cabal.js +8 -1
  92. data/vendor/assets/javascripts/ace/mode-haxe.js +11 -4
  93. data/vendor/assets/javascripts/ace/mode-hjson.js +13 -6
  94. data/vendor/assets/javascripts/ace/mode-html.js +162 -133
  95. data/vendor/assets/javascripts/ace/mode-html_elixir.js +165 -136
  96. data/vendor/assets/javascripts/ace/mode-html_ruby.js +832 -298
  97. data/vendor/assets/javascripts/ace/mode-ini.js +8 -1
  98. data/vendor/assets/javascripts/ace/mode-io.js +14 -12
  99. data/vendor/assets/javascripts/ace/mode-jack.js +10 -3
  100. data/vendor/assets/javascripts/ace/mode-jade.js +272 -376
  101. data/vendor/assets/javascripts/ace/mode-java.js +110 -7
  102. data/vendor/assets/javascripts/ace/mode-javascript.js +14 -5
  103. data/vendor/assets/javascripts/ace/mode-json.js +13 -3
  104. data/vendor/assets/javascripts/ace/mode-json5.js +360 -0
  105. data/vendor/assets/javascripts/ace/mode-jsoniq.js +25 -12
  106. data/vendor/assets/javascripts/ace/mode-jsp.js +60 -15
  107. data/vendor/assets/javascripts/ace/mode-jssm.js +325 -0
  108. data/vendor/assets/javascripts/ace/mode-jsx.js +11 -4
  109. data/vendor/assets/javascripts/ace/mode-julia.js +12 -5
  110. data/vendor/assets/javascripts/ace/mode-kotlin.js +18 -7
  111. data/vendor/assets/javascripts/ace/mode-latex.js +87 -15
  112. data/vendor/assets/javascripts/ace/mode-less.js +47 -27
  113. data/vendor/assets/javascripts/ace/mode-liquid.js +2030 -472
  114. data/vendor/assets/javascripts/ace/mode-lisp.js +9 -2
  115. data/vendor/assets/javascripts/ace/mode-livescript.js +10 -2
  116. data/vendor/assets/javascripts/ace/mode-logiql.js +10 -3
  117. data/vendor/assets/javascripts/ace/mode-logtalk.js +352 -0
  118. data/vendor/assets/javascripts/ace/mode-lsl.js +11 -3
  119. data/vendor/assets/javascripts/ace/mode-lua.js +40 -12
  120. data/vendor/assets/javascripts/ace/mode-luapage.js +194 -144
  121. data/vendor/assets/javascripts/ace/mode-lucene.js +106 -22
  122. data/vendor/assets/javascripts/ace/mode-makefile.js +11 -3
  123. data/vendor/assets/javascripts/ace/mode-markdown.js +530 -201
  124. data/vendor/assets/javascripts/ace/mode-mask.js +101 -84
  125. data/vendor/assets/javascripts/ace/mode-matlab.js +8 -1
  126. data/vendor/assets/javascripts/ace/mode-maze.js +11 -3
  127. data/vendor/assets/javascripts/ace/mode-mediawiki.js +592 -0
  128. data/vendor/assets/javascripts/ace/mode-mel.js +11 -4
  129. data/vendor/assets/javascripts/ace/mode-mixal.js +122 -0
  130. data/vendor/assets/javascripts/ace/mode-mushcode.js +9 -2
  131. data/vendor/assets/javascripts/ace/mode-mysql.js +11 -4
  132. data/vendor/assets/javascripts/ace/mode-nginx.js +298 -0
  133. data/vendor/assets/javascripts/ace/mode-nim.js +363 -0
  134. data/vendor/assets/javascripts/ace/mode-nix.js +23 -7
  135. data/vendor/assets/javascripts/ace/mode-nsis.js +15 -8
  136. data/vendor/assets/javascripts/ace/mode-nunjucks.js +2698 -0
  137. data/vendor/assets/javascripts/ace/mode-objectivec.js +23 -8
  138. data/vendor/assets/javascripts/ace/mode-ocaml.js +8 -1
  139. data/vendor/assets/javascripts/ace/mode-pascal.js +92 -67
  140. data/vendor/assets/javascripts/ace/mode-perl.js +11 -3
  141. data/vendor/assets/javascripts/ace/mode-perl6.js +593 -0
  142. data/vendor/assets/javascripts/ace/mode-pgsql.js +314 -71
  143. data/vendor/assets/javascripts/ace/mode-php.js +1042 -995
  144. data/vendor/assets/javascripts/ace/mode-php_laravel_blade.js +13104 -0
  145. data/vendor/assets/javascripts/ace/mode-pig.js +13 -6
  146. data/vendor/assets/javascripts/ace/mode-plain_text.js +8 -1
  147. data/vendor/assets/javascripts/ace/mode-powershell.js +10 -3
  148. data/vendor/assets/javascripts/ace/mode-praat.js +17 -7
  149. data/vendor/assets/javascripts/ace/mode-prisma.js +489 -0
  150. data/vendor/assets/javascripts/ace/mode-prolog.js +12 -5
  151. data/vendor/assets/javascripts/ace/mode-properties.js +8 -1
  152. data/vendor/assets/javascripts/ace/mode-protobuf.js +23 -7
  153. data/vendor/assets/javascripts/ace/mode-puppet.js +368 -0
  154. data/vendor/assets/javascripts/ace/mode-python.js +306 -63
  155. data/vendor/assets/javascripts/ace/mode-qml.js +381 -0
  156. data/vendor/assets/javascripts/ace/mode-r.js +15 -4
  157. data/vendor/assets/javascripts/ace/mode-razor.js +166 -136
  158. data/vendor/assets/javascripts/ace/mode-rdoc.js +41 -3
  159. data/vendor/assets/javascripts/ace/mode-red.js +450 -0
  160. data/vendor/assets/javascripts/ace/mode-redshift.js +360 -0
  161. data/vendor/assets/javascripts/ace/mode-rhtml.js +162 -133
  162. data/vendor/assets/javascripts/ace/mode-rst.js +9 -1
  163. data/vendor/assets/javascripts/ace/mode-ruby.js +678 -166
  164. data/vendor/assets/javascripts/ace/mode-rust.js +16 -7
  165. data/vendor/assets/javascripts/ace/mode-sass.js +211 -116
  166. data/vendor/assets/javascripts/ace/mode-scad.js +11 -4
  167. data/vendor/assets/javascripts/ace/mode-scala.js +14 -5
  168. data/vendor/assets/javascripts/ace/mode-scheme.js +9 -2
  169. data/vendor/assets/javascripts/ace/mode-scss.js +412 -125
  170. data/vendor/assets/javascripts/ace/mode-sh.js +12 -4
  171. data/vendor/assets/javascripts/ace/mode-sjs.js +16 -7
  172. data/vendor/assets/javascripts/ace/mode-slim.js +5240 -0
  173. data/vendor/assets/javascripts/ace/mode-smarty.js +164 -135
  174. data/vendor/assets/javascripts/ace/mode-snippets.js +24 -16
  175. data/vendor/assets/javascripts/ace/mode-soy_template.js +164 -135
  176. data/vendor/assets/javascripts/ace/mode-space.js +8 -1
  177. data/vendor/assets/javascripts/ace/mode-sparql.js +13 -6
  178. data/vendor/assets/javascripts/ace/mode-sql.js +10 -2
  179. data/vendor/assets/javascripts/ace/mode-sqlserver.js +13 -5
  180. data/vendor/assets/javascripts/ace/mode-stylus.js +20 -10
  181. data/vendor/assets/javascripts/ace/mode-svg.js +27 -13
  182. data/vendor/assets/javascripts/ace/mode-swift.js +21 -8
  183. data/vendor/assets/javascripts/ace/mode-tcl.js +14 -3
  184. data/vendor/assets/javascripts/ace/mode-terraform.js +400 -0
  185. data/vendor/assets/javascripts/ace/mode-tex.js +9 -1
  186. data/vendor/assets/javascripts/ace/mode-text.js +8 -0
  187. data/vendor/assets/javascripts/ace/mode-textile.js +9 -1
  188. data/vendor/assets/javascripts/ace/mode-toml.js +9 -2
  189. data/vendor/assets/javascripts/ace/mode-tsx.js +28 -31
  190. data/vendor/assets/javascripts/ace/mode-turtle.js +13 -6
  191. data/vendor/assets/javascripts/ace/mode-twig.js +163 -134
  192. data/vendor/assets/javascripts/ace/mode-typescript.js +28 -31
  193. data/vendor/assets/javascripts/ace/mode-vala.js +14 -6
  194. data/vendor/assets/javascripts/ace/mode-vbscript.js +453 -17
  195. data/vendor/assets/javascripts/ace/mode-velocity.js +163 -133
  196. data/vendor/assets/javascripts/ace/mode-verilog.js +19 -5
  197. data/vendor/assets/javascripts/ace/mode-vhdl.js +13 -7
  198. data/vendor/assets/javascripts/ace/mode-visualforce.js +2640 -0
  199. data/vendor/assets/javascripts/ace/mode-wollok.js +17 -8
  200. data/vendor/assets/javascripts/ace/mode-xml.js +21 -9
  201. data/vendor/assets/javascripts/ace/mode-xquery.js +25 -12
  202. data/vendor/assets/javascripts/ace/mode-yaml.js +59 -18
  203. data/vendor/assets/javascripts/ace/mode-zeek.js +539 -0
  204. data/vendor/assets/javascripts/ace/snippets/abap.js +8 -6
  205. data/vendor/assets/javascripts/ace/snippets/abc.js +8 -1
  206. data/vendor/assets/javascripts/ace/snippets/actionscript.js +8 -1
  207. data/vendor/assets/javascripts/ace/snippets/ada.js +8 -6
  208. data/vendor/assets/javascripts/ace/snippets/alda.js +9 -0
  209. data/vendor/assets/javascripts/ace/snippets/apache_conf.js +8 -6
  210. data/vendor/assets/javascripts/ace/snippets/apex.js +9 -0
  211. data/vendor/assets/javascripts/ace/snippets/applescript.js +8 -6
  212. data/vendor/assets/javascripts/ace/snippets/aql.js +9 -0
  213. data/vendor/assets/javascripts/ace/snippets/asciidoc.js +8 -6
  214. data/vendor/assets/javascripts/ace/snippets/asl.js +9 -0
  215. data/vendor/assets/javascripts/ace/snippets/assembly_x86.js +8 -6
  216. data/vendor/assets/javascripts/ace/snippets/autohotkey.js +8 -6
  217. data/vendor/assets/javascripts/ace/snippets/batchfile.js +8 -6
  218. data/vendor/assets/javascripts/ace/snippets/c9search.js +8 -6
  219. data/vendor/assets/javascripts/ace/snippets/c_cpp.js +8 -1
  220. data/vendor/assets/javascripts/ace/snippets/cirru.js +8 -6
  221. data/vendor/assets/javascripts/ace/snippets/clojure.js +8 -1
  222. data/vendor/assets/javascripts/ace/snippets/cobol.js +8 -6
  223. data/vendor/assets/javascripts/ace/snippets/coffee.js +8 -1
  224. data/vendor/assets/javascripts/ace/snippets/coldfusion.js +8 -6
  225. data/vendor/assets/javascripts/ace/snippets/crystal.js +9 -0
  226. data/vendor/assets/javascripts/ace/snippets/csharp.js +8 -6
  227. data/vendor/assets/javascripts/ace/snippets/csound_document.js +24 -0
  228. data/vendor/assets/javascripts/ace/snippets/csound_orchestra.js +61 -0
  229. data/vendor/assets/javascripts/ace/snippets/csound_score.js +9 -0
  230. data/vendor/assets/javascripts/ace/snippets/csp.js +9 -0
  231. data/vendor/assets/javascripts/ace/snippets/css.js +8 -1
  232. data/vendor/assets/javascripts/ace/snippets/curly.js +8 -6
  233. data/vendor/assets/javascripts/ace/snippets/d.js +8 -6
  234. data/vendor/assets/javascripts/ace/snippets/dart.js +8 -1
  235. data/vendor/assets/javascripts/ace/snippets/diff.js +8 -1
  236. data/vendor/assets/javascripts/ace/snippets/django.js +8 -1
  237. data/vendor/assets/javascripts/ace/snippets/dockerfile.js +8 -6
  238. data/vendor/assets/javascripts/ace/snippets/dot.js +8 -6
  239. data/vendor/assets/javascripts/ace/snippets/drools.js +8 -1
  240. data/vendor/assets/javascripts/ace/snippets/edifact.js +254 -0
  241. data/vendor/assets/javascripts/ace/snippets/eiffel.js +8 -6
  242. data/vendor/assets/javascripts/ace/snippets/ejs.js +8 -6
  243. data/vendor/assets/javascripts/ace/snippets/elixir.js +8 -6
  244. data/vendor/assets/javascripts/ace/snippets/elm.js +8 -6
  245. data/vendor/assets/javascripts/ace/snippets/erlang.js +8 -1
  246. data/vendor/assets/javascripts/ace/snippets/forth.js +8 -6
  247. data/vendor/assets/javascripts/ace/snippets/fortran.js +8 -6
  248. data/vendor/assets/javascripts/ace/snippets/fsharp.js +9 -0
  249. data/vendor/assets/javascripts/ace/snippets/fsl.js +14 -0
  250. data/vendor/assets/javascripts/ace/snippets/ftl.js +8 -6
  251. data/vendor/assets/javascripts/ace/snippets/gcode.js +8 -6
  252. data/vendor/assets/javascripts/ace/snippets/gherkin.js +8 -6
  253. data/vendor/assets/javascripts/ace/snippets/gitignore.js +8 -6
  254. data/vendor/assets/javascripts/ace/snippets/glsl.js +8 -6
  255. data/vendor/assets/javascripts/ace/snippets/gobstones.js +1701 -24
  256. data/vendor/assets/javascripts/ace/snippets/golang.js +8 -6
  257. data/vendor/assets/javascripts/ace/snippets/graphqlschema.js +8 -1
  258. data/vendor/assets/javascripts/ace/snippets/groovy.js +8 -6
  259. data/vendor/assets/javascripts/ace/snippets/haml.js +8 -1
  260. data/vendor/assets/javascripts/ace/snippets/handlebars.js +8 -6
  261. data/vendor/assets/javascripts/ace/snippets/haskell.js +8 -1
  262. data/vendor/assets/javascripts/ace/snippets/haskell_cabal.js +8 -6
  263. data/vendor/assets/javascripts/ace/snippets/haxe.js +8 -6
  264. data/vendor/assets/javascripts/ace/snippets/hjson.js +8 -6
  265. data/vendor/assets/javascripts/ace/snippets/html.js +36 -2
  266. data/vendor/assets/javascripts/ace/snippets/html_elixir.js +8 -6
  267. data/vendor/assets/javascripts/ace/snippets/html_ruby.js +8 -6
  268. data/vendor/assets/javascripts/ace/snippets/ini.js +8 -6
  269. data/vendor/assets/javascripts/ace/snippets/io.js +8 -1
  270. data/vendor/assets/javascripts/ace/snippets/jack.js +8 -6
  271. data/vendor/assets/javascripts/ace/snippets/jade.js +8 -6
  272. data/vendor/assets/javascripts/ace/snippets/java.js +8 -1
  273. data/vendor/assets/javascripts/ace/snippets/javascript.js +8 -1
  274. data/vendor/assets/javascripts/ace/snippets/json.js +8 -6
  275. data/vendor/assets/javascripts/ace/snippets/json5.js +9 -0
  276. data/vendor/assets/javascripts/ace/snippets/jsoniq.js +8 -1
  277. data/vendor/assets/javascripts/ace/snippets/jsp.js +8 -1
  278. data/vendor/assets/javascripts/ace/snippets/jssm.js +9 -0
  279. data/vendor/assets/javascripts/ace/snippets/jsx.js +8 -6
  280. data/vendor/assets/javascripts/ace/snippets/julia.js +8 -6
  281. data/vendor/assets/javascripts/ace/snippets/kotlin.js +8 -6
  282. data/vendor/assets/javascripts/ace/snippets/latex.js +8 -6
  283. data/vendor/assets/javascripts/ace/snippets/less.js +8 -6
  284. data/vendor/assets/javascripts/ace/snippets/liquid.js +890 -2
  285. data/vendor/assets/javascripts/ace/snippets/lisp.js +8 -6
  286. data/vendor/assets/javascripts/ace/snippets/livescript.js +8 -6
  287. data/vendor/assets/javascripts/ace/snippets/logiql.js +8 -6
  288. data/vendor/assets/javascripts/ace/snippets/logtalk.js +9 -0
  289. data/vendor/assets/javascripts/ace/snippets/lsl.js +8 -1
  290. data/vendor/assets/javascripts/ace/snippets/lua.js +8 -1
  291. data/vendor/assets/javascripts/ace/snippets/luapage.js +8 -6
  292. data/vendor/assets/javascripts/ace/snippets/lucene.js +8 -6
  293. data/vendor/assets/javascripts/ace/snippets/makefile.js +8 -1
  294. data/vendor/assets/javascripts/ace/snippets/markdown.js +8 -1
  295. data/vendor/assets/javascripts/ace/snippets/mask.js +8 -6
  296. data/vendor/assets/javascripts/ace/snippets/matlab.js +8 -6
  297. data/vendor/assets/javascripts/ace/snippets/maze.js +8 -1
  298. data/vendor/assets/javascripts/ace/snippets/mediawiki.js +9 -0
  299. data/vendor/assets/javascripts/ace/snippets/mel.js +8 -6
  300. data/vendor/assets/javascripts/ace/snippets/mixal.js +9 -0
  301. data/vendor/assets/javascripts/ace/snippets/mushcode.js +8 -6
  302. data/vendor/assets/javascripts/ace/snippets/mysql.js +8 -6
  303. data/vendor/assets/javascripts/ace/snippets/nginx.js +9 -0
  304. data/vendor/assets/javascripts/ace/snippets/nim.js +9 -0
  305. data/vendor/assets/javascripts/ace/snippets/nix.js +8 -6
  306. data/vendor/assets/javascripts/ace/snippets/nsis.js +8 -6
  307. data/vendor/assets/javascripts/ace/snippets/nunjucks.js +9 -0
  308. data/vendor/assets/javascripts/ace/snippets/objectivec.js +8 -6
  309. data/vendor/assets/javascripts/ace/snippets/ocaml.js +8 -6
  310. data/vendor/assets/javascripts/ace/snippets/pascal.js +8 -6
  311. data/vendor/assets/javascripts/ace/snippets/perl.js +8 -1
  312. data/vendor/assets/javascripts/ace/snippets/perl6.js +9 -0
  313. data/vendor/assets/javascripts/ace/snippets/pgsql.js +8 -6
  314. data/vendor/assets/javascripts/ace/snippets/php.js +49 -36
  315. data/vendor/assets/javascripts/ace/snippets/php_laravel_blade.js +9 -0
  316. data/vendor/assets/javascripts/ace/snippets/pig.js +8 -6
  317. data/vendor/assets/javascripts/ace/snippets/plain_text.js +8 -6
  318. data/vendor/assets/javascripts/ace/snippets/powershell.js +8 -6
  319. data/vendor/assets/javascripts/ace/snippets/praat.js +8 -6
  320. data/vendor/assets/javascripts/ace/snippets/prisma.js +9 -0
  321. data/vendor/assets/javascripts/ace/snippets/prolog.js +8 -6
  322. data/vendor/assets/javascripts/ace/snippets/properties.js +8 -6
  323. data/vendor/assets/javascripts/ace/snippets/protobuf.js +8 -6
  324. data/vendor/assets/javascripts/ace/snippets/puppet.js +9 -0
  325. data/vendor/assets/javascripts/ace/snippets/python.js +8 -1
  326. data/vendor/assets/javascripts/ace/snippets/qml.js +9 -0
  327. data/vendor/assets/javascripts/ace/snippets/r.js +8 -1
  328. data/vendor/assets/javascripts/ace/snippets/razor.js +8 -1
  329. data/vendor/assets/javascripts/ace/snippets/rdoc.js +8 -6
  330. data/vendor/assets/javascripts/ace/snippets/red.js +9 -0
  331. data/vendor/assets/javascripts/ace/snippets/redshift.js +9 -0
  332. data/vendor/assets/javascripts/ace/snippets/rhtml.js +8 -6
  333. data/vendor/assets/javascripts/ace/snippets/rst.js +8 -1
  334. data/vendor/assets/javascripts/ace/snippets/ruby.js +8 -1
  335. data/vendor/assets/javascripts/ace/snippets/rust.js +8 -6
  336. data/vendor/assets/javascripts/ace/snippets/sass.js +8 -6
  337. data/vendor/assets/javascripts/ace/snippets/scad.js +8 -6
  338. data/vendor/assets/javascripts/ace/snippets/scala.js +8 -6
  339. data/vendor/assets/javascripts/ace/snippets/scheme.js +8 -6
  340. data/vendor/assets/javascripts/ace/snippets/scss.js +8 -6
  341. data/vendor/assets/javascripts/ace/snippets/sh.js +8 -1
  342. data/vendor/assets/javascripts/ace/snippets/sjs.js +8 -6
  343. data/vendor/assets/javascripts/ace/snippets/slim.js +9 -0
  344. data/vendor/assets/javascripts/ace/snippets/smarty.js +8 -6
  345. data/vendor/assets/javascripts/ace/snippets/snippets.js +8 -1
  346. data/vendor/assets/javascripts/ace/snippets/soy_template.js +8 -6
  347. data/vendor/assets/javascripts/ace/snippets/space.js +8 -6
  348. data/vendor/assets/javascripts/ace/snippets/sparql.js +8 -6
  349. data/vendor/assets/javascripts/ace/snippets/sql.js +8 -1
  350. data/vendor/assets/javascripts/ace/snippets/sqlserver.js +8 -1
  351. data/vendor/assets/javascripts/ace/snippets/stylus.js +8 -6
  352. data/vendor/assets/javascripts/ace/snippets/svg.js +8 -6
  353. data/vendor/assets/javascripts/ace/snippets/swift.js +8 -6
  354. data/vendor/assets/javascripts/ace/snippets/tcl.js +8 -1
  355. data/vendor/assets/javascripts/ace/snippets/terraform.js +9 -0
  356. data/vendor/assets/javascripts/ace/snippets/tex.js +8 -1
  357. data/vendor/assets/javascripts/ace/snippets/text.js +8 -6
  358. data/vendor/assets/javascripts/ace/snippets/textile.js +8 -1
  359. data/vendor/assets/javascripts/ace/snippets/toml.js +8 -6
  360. data/vendor/assets/javascripts/ace/snippets/tsx.js +8 -6
  361. data/vendor/assets/javascripts/ace/snippets/turtle.js +8 -6
  362. data/vendor/assets/javascripts/ace/snippets/twig.js +8 -6
  363. data/vendor/assets/javascripts/ace/snippets/typescript.js +8 -6
  364. data/vendor/assets/javascripts/ace/snippets/vala.js +8 -1
  365. data/vendor/assets/javascripts/ace/snippets/vbscript.js +8 -6
  366. data/vendor/assets/javascripts/ace/snippets/velocity.js +8 -1
  367. data/vendor/assets/javascripts/ace/snippets/verilog.js +8 -6
  368. data/vendor/assets/javascripts/ace/snippets/vhdl.js +8 -6
  369. data/vendor/assets/javascripts/ace/snippets/visualforce.js +9 -0
  370. data/vendor/assets/javascripts/ace/snippets/wollok.js +8 -1
  371. data/vendor/assets/javascripts/ace/snippets/xml.js +8 -6
  372. data/vendor/assets/javascripts/ace/snippets/xquery.js +8 -1
  373. data/vendor/assets/javascripts/ace/snippets/yaml.js +8 -6
  374. data/vendor/assets/javascripts/ace/snippets/zeek.js +9 -0
  375. data/vendor/assets/javascripts/ace/theme-ambiance.js +11 -8
  376. data/vendor/assets/javascripts/ace/theme-chaos.js +9 -2
  377. data/vendor/assets/javascripts/ace/theme-chrome.js +8 -1
  378. data/vendor/assets/javascripts/ace/theme-clouds.js +8 -1
  379. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +8 -1
  380. data/vendor/assets/javascripts/ace/theme-cobalt.js +8 -1
  381. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +8 -1
  382. data/vendor/assets/javascripts/ace/theme-dawn.js +8 -1
  383. data/vendor/assets/javascripts/ace/theme-dracula.js +135 -0
  384. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +8 -1
  385. data/vendor/assets/javascripts/ace/theme-eclipse.js +8 -1
  386. data/vendor/assets/javascripts/ace/theme-github.js +8 -1
  387. data/vendor/assets/javascripts/ace/theme-gob.js +8 -1
  388. data/vendor/assets/javascripts/ace/theme-gruvbox.js +8 -1
  389. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +8 -1
  390. data/vendor/assets/javascripts/ace/theme-iplastic.js +8 -1
  391. data/vendor/assets/javascripts/ace/theme-katzenmilch.js +8 -1
  392. data/vendor/assets/javascripts/ace/theme-kr_theme.js +8 -1
  393. data/vendor/assets/javascripts/ace/theme-kuroir.js +8 -1
  394. data/vendor/assets/javascripts/ace/theme-merbivore.js +8 -1
  395. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +8 -1
  396. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +8 -1
  397. data/vendor/assets/javascripts/ace/theme-monokai.js +8 -1
  398. data/vendor/assets/javascripts/ace/theme-nord_dark.js +102 -0
  399. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +8 -1
  400. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +8 -1
  401. data/vendor/assets/javascripts/ace/theme-solarized_light.js +9 -2
  402. data/vendor/assets/javascripts/ace/theme-sqlserver.js +8 -1
  403. data/vendor/assets/javascripts/ace/theme-terminal.js +8 -1
  404. data/vendor/assets/javascripts/ace/theme-textmate.js +9 -1
  405. data/vendor/assets/javascripts/ace/theme-tomorrow.js +8 -1
  406. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +8 -1
  407. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +8 -1
  408. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +8 -1
  409. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +8 -1
  410. data/vendor/assets/javascripts/ace/theme-twilight.js +8 -1
  411. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +8 -1
  412. data/vendor/assets/javascripts/ace/theme-xcode.js +8 -1
  413. data/vendor/assets/javascripts/ace/worker-base.js +1421 -0
  414. data/vendor/assets/javascripts/ace/worker-coffee.js +55 -742
  415. data/vendor/assets/javascripts/ace/worker-css.js +66 -739
  416. data/vendor/assets/javascripts/ace/worker-html.js +55 -738
  417. data/vendor/assets/javascripts/ace/worker-javascript.js +6693 -4209
  418. data/vendor/assets/javascripts/ace/worker-json.js +56 -737
  419. data/vendor/assets/javascripts/ace/worker-lua.js +56 -738
  420. data/vendor/assets/javascripts/ace/worker-php.js +897 -1512
  421. data/vendor/assets/javascripts/ace/worker-xml.js +129 -808
  422. data/vendor/assets/javascripts/ace/worker-xquery.js +54 -737
  423. metadata +74 -19
  424. data/vendor/assets/javascripts/ace/ext-chromevox.js +0 -540
  425. data/vendor/assets/javascripts/ace/ext-old_ie.js +0 -502
  426. data/vendor/assets/javascripts/ace/mode-bash.js +0 -247
  427. data/vendor/assets/javascripts/ace/mode-bro.js +0 -327
  428. data/vendor/assets/javascripts/ace/mode-lean.js +0 -281
  429. data/vendor/assets/javascripts/ace/mode-live_script.js +0 -481
  430. data/vendor/assets/javascripts/ace/mode-mips_assembler.js +0 -235
  431. data/vendor/assets/javascripts/ace/mode-swig.js +0 -1099
  432. data/vendor/assets/javascripts/ace/snippets/bro.js +0 -7
  433. data/vendor/assets/javascripts/ace/snippets/lean.js +0 -7
  434. data/vendor/assets/javascripts/ace/snippets/live_script.js +0 -7
  435. data/vendor/assets/javascripts/ace/snippets/mips_assembler.js +0 -7
  436. data/vendor/assets/javascripts/ace/snippets/mipsassembler.js +0 -7
  437. data/vendor/assets/javascripts/ace/snippets/swig.js +0 -7
@@ -0,0 +1,122 @@
1
+ define("ace/ext/rtl",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ var commands = [{
5
+ name: "leftToRight",
6
+ bindKey: { win: "Ctrl-Alt-Shift-L", mac: "Command-Alt-Shift-L" },
7
+ exec: function(editor) {
8
+ editor.session.$bidiHandler.setRtlDirection(editor, false);
9
+ },
10
+ readOnly: true
11
+ }, {
12
+ name: "rightToLeft",
13
+ bindKey: { win: "Ctrl-Alt-Shift-R", mac: "Command-Alt-Shift-R" },
14
+ exec: function(editor) {
15
+ editor.session.$bidiHandler.setRtlDirection(editor, true);
16
+ },
17
+ readOnly: true
18
+ }];
19
+
20
+ var Editor = require("../editor").Editor;
21
+ require("../config").defineOptions(Editor.prototype, "editor", {
22
+ rtlText: {
23
+ set: function(val) {
24
+ if (val) {
25
+ this.on("change", onChange);
26
+ this.on("changeSelection", onChangeSelection);
27
+ this.renderer.on("afterRender", updateLineDirection);
28
+ this.commands.on("exec", onCommandEmitted);
29
+ this.commands.addCommands(commands);
30
+ } else {
31
+ this.off("change", onChange);
32
+ this.off("changeSelection", onChangeSelection);
33
+ this.renderer.off("afterRender", updateLineDirection);
34
+ this.commands.off("exec", onCommandEmitted);
35
+ this.commands.removeCommands(commands);
36
+ clearTextLayer(this.renderer);
37
+ }
38
+ this.renderer.updateFull();
39
+ }
40
+ },
41
+ rtl: {
42
+ set: function(val) {
43
+ this.session.$bidiHandler.$isRtl = val;
44
+ if (val) {
45
+ this.setOption("rtlText", false);
46
+ this.renderer.on("afterRender", updateLineDirection);
47
+ this.session.$bidiHandler.seenBidi = true;
48
+ } else {
49
+ this.renderer.off("afterRender", updateLineDirection);
50
+ clearTextLayer(this.renderer);
51
+ }
52
+ this.renderer.updateFull();
53
+ }
54
+ }
55
+ });
56
+ function onChangeSelection(e, editor) {
57
+ var lead = editor.getSelection().lead;
58
+ if (editor.session.$bidiHandler.isRtlLine(lead.row)) {
59
+ if (lead.column === 0) {
60
+ if (editor.session.$bidiHandler.isMoveLeftOperation && lead.row > 0) {
61
+ editor.getSelection().moveCursorTo(lead.row - 1, editor.session.getLine(lead.row - 1).length);
62
+ } else {
63
+ if (editor.getSelection().isEmpty())
64
+ lead.column += 1;
65
+ else
66
+ lead.setPosition(lead.row, lead.column + 1);
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ function onCommandEmitted(commadEvent) {
73
+ commadEvent.editor.session.$bidiHandler.isMoveLeftOperation = /gotoleft|selectleft|backspace|removewordleft/.test(commadEvent.command.name);
74
+ }
75
+ function onChange(delta, editor) {
76
+ var session = editor.session;
77
+ session.$bidiHandler.currentRow = null;
78
+ if (session.$bidiHandler.isRtlLine(delta.start.row) && delta.action === 'insert' && delta.lines.length > 1) {
79
+ for (var row = delta.start.row; row < delta.end.row; row++) {
80
+ if (session.getLine(row + 1).charAt(0) !== session.$bidiHandler.RLE)
81
+ session.doc.$lines[row + 1] = session.$bidiHandler.RLE + session.getLine(row + 1);
82
+ }
83
+ }
84
+ }
85
+
86
+ function updateLineDirection(e, renderer) {
87
+ var session = renderer.session;
88
+ var $bidiHandler = session.$bidiHandler;
89
+ var cells = renderer.$textLayer.$lines.cells;
90
+ var width = renderer.layerConfig.width - renderer.layerConfig.padding + "px";
91
+ cells.forEach(function(cell) {
92
+ var style = cell.element.style;
93
+ if ($bidiHandler && $bidiHandler.isRtlLine(cell.row)) {
94
+ style.direction = "rtl";
95
+ style.textAlign = "right";
96
+ style.width = width;
97
+ } else {
98
+ style.direction = "";
99
+ style.textAlign = "";
100
+ style.width = "";
101
+ }
102
+ });
103
+ }
104
+
105
+ function clearTextLayer(renderer) {
106
+ var lines = renderer.$textLayer.$lines;
107
+ lines.cells.forEach(clear);
108
+ lines.cellCache.forEach(clear);
109
+ function clear(cell) {
110
+ var style = cell.element.style;
111
+ style.direction = style.textAlign = style.width = "";
112
+ }
113
+ }
114
+
115
+ }); (function() {
116
+ window.require(["ace/ext/rtl"], function(m) {
117
+ if (typeof module == "object" && typeof exports == "object" && module) {
118
+ module.exports = m;
119
+ }
120
+ });
121
+ })();
122
+
@@ -45,7 +45,6 @@ background-color: white;\
45
45
  color: black;\
46
46
  border: 1px solid #cbcbcb;\
47
47
  border-right: 0 none;\
48
- box-sizing: border-box!important;\
49
48
  outline: 0;\
50
49
  padding: 0;\
51
50
  font-size: inherit;\
@@ -54,6 +53,8 @@ line-height: inherit;\
54
53
  padding: 0 6px;\
55
54
  min-width: 17em;\
56
55
  vertical-align: top;\
56
+ min-height: 1.8em;\
57
+ box-sizing: content-box;\
57
58
  }\
58
59
  .ace_searchbtn {\
59
60
  border: 1px solid #cbcbcb;\
@@ -66,7 +67,6 @@ border-left: 1px solid #dcdcdc;\
66
67
  cursor: pointer;\
67
68
  margin: 0;\
68
69
  position: relative;\
69
- box-sizing: content-box!important;\
70
70
  color: #666;\
71
71
  }\
72
72
  .ace_searchbtn:last-child {\
@@ -162,39 +162,38 @@ var MAX_COUNT = 999;
162
162
 
163
163
  dom.importCssString(searchboxCss, "ace_searchbox");
164
164
 
165
- var html = '<div class="ace_search right">\
166
- <span action="hide" class="ace_searchbtn_close"></span>\
167
- <div class="ace_search_form">\
168
- <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>\
169
- <span action="findPrev" class="ace_searchbtn prev"></span>\
170
- <span action="findNext" class="ace_searchbtn next"></span>\
171
- <span action="findAll" class="ace_searchbtn" title="Alt-Enter">All</span>\
172
- </div>\
173
- <div class="ace_replace_form">\
174
- <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>\
175
- <span action="replaceAndFindNext" class="ace_searchbtn">Replace</span>\
176
- <span action="replaceAll" class="ace_searchbtn">All</span>\
177
- </div>\
178
- <div class="ace_search_options">\
179
- <span action="toggleReplace" class="ace_button" title="Toggel Replace mode"\
180
- style="float:left;margin-top:-2px;padding:0 5px;">+</span>\
181
- <span class="ace_search_counter"></span>\
182
- <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>\
183
- <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>\
184
- <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>\
185
- <span action="searchInSelection" class="ace_button" title="Search In Selection">S</span>\
186
- </div>\
187
- </div>'.replace(/> +/g, ">");
188
-
189
165
  var SearchBox = function(editor, range, showReplaceForm) {
190
166
  var div = dom.createElement("div");
191
- div.innerHTML = html;
167
+ dom.buildDom(["div", {class:"ace_search right"},
168
+ ["span", {action: "hide", class: "ace_searchbtn_close"}],
169
+ ["div", {class: "ace_search_form"},
170
+ ["input", {class: "ace_search_field", placeholder: "Search for", spellcheck: "false"}],
171
+ ["span", {action: "findPrev", class: "ace_searchbtn prev"}, "\u200b"],
172
+ ["span", {action: "findNext", class: "ace_searchbtn next"}, "\u200b"],
173
+ ["span", {action: "findAll", class: "ace_searchbtn", title: "Alt-Enter"}, "All"]
174
+ ],
175
+ ["div", {class: "ace_replace_form"},
176
+ ["input", {class: "ace_search_field", placeholder: "Replace with", spellcheck: "false"}],
177
+ ["span", {action: "replaceAndFindNext", class: "ace_searchbtn"}, "Replace"],
178
+ ["span", {action: "replaceAll", class: "ace_searchbtn"}, "All"]
179
+ ],
180
+ ["div", {class: "ace_search_options"},
181
+ ["span", {action: "toggleReplace", class: "ace_button", title: "Toggle Replace mode",
182
+ style: "float:left;margin-top:-2px;padding:0 5px;"}, "+"],
183
+ ["span", {class: "ace_search_counter"}],
184
+ ["span", {action: "toggleRegexpMode", class: "ace_button", title: "RegExp Search"}, ".*"],
185
+ ["span", {action: "toggleCaseSensitive", class: "ace_button", title: "CaseSensitive Search"}, "Aa"],
186
+ ["span", {action: "toggleWholeWords", class: "ace_button", title: "Whole Word Search"}, "\\b"],
187
+ ["span", {action: "searchInSelection", class: "ace_button", title: "Search In Selection"}, "S"]
188
+ ]
189
+ ], div);
192
190
  this.element = div.firstChild;
193
191
 
194
192
  this.setSession = this.setSession.bind(this);
195
193
 
196
194
  this.$init();
197
195
  this.setEditor(editor);
196
+ dom.importCssString(searchboxCss, "ace_searchbox", editor.container);
198
197
  };
199
198
 
200
199
  (function() {
@@ -205,10 +204,9 @@ var SearchBox = function(editor, range, showReplaceForm) {
205
204
  };
206
205
 
207
206
  this.setSession = function(e) {
208
- debugger
209
207
  this.searchRange = null;
210
208
  this.$syncOptions(true);
211
- }
209
+ };
212
210
 
213
211
  this.$initElements = function(sb) {
214
212
  this.searchBox = sb.querySelector(".ace_search_form");
@@ -287,6 +285,8 @@ var SearchBox = function(editor, range, showReplaceForm) {
287
285
  sb.searchInput.focus();
288
286
  },
289
287
  "Ctrl-H|Command-Option-F": function(sb) {
288
+ if (sb.editor.getReadOnly())
289
+ return;
290
290
  sb.replaceOption.checked = true;
291
291
  sb.$syncOptions();
292
292
  sb.replaceInput.focus();
@@ -364,7 +364,7 @@ var SearchBox = function(editor, range, showReplaceForm) {
364
364
  this.editor.session.removeMarker(this.searchRangeMarker);
365
365
  this.searchRangeMarker = null;
366
366
  }
367
- }
367
+ };
368
368
 
369
369
  this.$syncOptions = function(preventScroll) {
370
370
  dom.setCssClass(this.replaceOption, "checked", this.searchRange);
@@ -373,13 +373,15 @@ var SearchBox = function(editor, range, showReplaceForm) {
373
373
  dom.setCssClass(this.regExpOption, "checked", this.regExpOption.checked);
374
374
  dom.setCssClass(this.wholeWordOption, "checked", this.wholeWordOption.checked);
375
375
  dom.setCssClass(this.caseSensitiveOption, "checked", this.caseSensitiveOption.checked);
376
- this.replaceBox.style.display = this.replaceOption.checked ? "" : "none";
376
+ var readOnly = this.editor.getReadOnly();
377
+ this.replaceOption.style.display = readOnly ? "none" : "";
378
+ this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? "" : "none";
377
379
  this.find(false, false, preventScroll);
378
380
  };
379
381
 
380
382
  this.highlight = function(re) {
381
383
  this.editor.session.highlight(re || this.editor.$search.$options.re);
382
- this.editor.renderer.updateBackMarkers()
384
+ this.editor.renderer.updateBackMarkers();
383
385
  };
384
386
  this.find = function(skipCurrent, backwards, preventScroll) {
385
387
  var range = this.editor.find(this.searchInput.value, {
@@ -402,7 +404,7 @@ var SearchBox = function(editor, range, showReplaceForm) {
402
404
  var editor = this.editor;
403
405
  var regex = editor.$search.$options.re;
404
406
  var all = 0;
405
- var before = 0
407
+ var before = 0;
406
408
  if (regex) {
407
409
  var value = this.searchRange
408
410
  ? editor.session.getTextRange(this.searchRange)
@@ -420,7 +422,7 @@ var SearchBox = function(editor, range, showReplaceForm) {
420
422
  if (last <= offset)
421
423
  before++;
422
424
  if (all > MAX_COUNT)
423
- break
425
+ break;
424
426
  if (!m[0]) {
425
427
  regex.lastIndex = last += 1;
426
428
  if (last >= value.length)
@@ -455,7 +457,7 @@ var SearchBox = function(editor, range, showReplaceForm) {
455
457
  this.replaceAndFindNext = function() {
456
458
  if (!this.editor.getReadOnly()) {
457
459
  this.editor.replace(this.replaceInput.value);
458
- this.findNext()
460
+ this.findNext();
459
461
  }
460
462
  };
461
463
  this.replaceAll = function() {
@@ -465,7 +467,7 @@ var SearchBox = function(editor, range, showReplaceForm) {
465
467
 
466
468
  this.hide = function() {
467
469
  this.active = false;
468
- this.setSearchRange(null)
470
+ this.setSearchRange(null);
469
471
  this.editor.off("changeSession", this.setSession);
470
472
 
471
473
  this.element.style.display = "none";
@@ -492,7 +494,7 @@ var SearchBox = function(editor, range, showReplaceForm) {
492
494
  this.isFocused = function() {
493
495
  var el = document.activeElement;
494
496
  return el == this.searchInput || el == this.replaceInput;
495
- }
497
+ };
496
498
  }).call(SearchBox.prototype);
497
499
 
498
500
  exports.SearchBox = SearchBox;
@@ -502,8 +504,11 @@ exports.Search = function(editor, isReplace) {
502
504
  sb.show(editor.session.getTextRange(), isReplace);
503
505
  };
504
506
 
505
- });
506
- (function() {
507
- window.require(["ace/ext/searchbox"], function() {});
507
+ }); (function() {
508
+ window.require(["ace/ext/searchbox"], function(m) {
509
+ if (typeof module == "object" && typeof exports == "object" && module) {
510
+ module.exports = m;
511
+ }
512
+ });
508
513
  })();
509
514
 
@@ -1,55 +1,120 @@
1
- define("ace/ext/menu_tools/element_generator",["require","exports","module"], function(require, exports, module) {
1
+ define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
2
2
  'use strict';
3
- module.exports.createOption = function createOption (obj) {
4
- var attribute;
5
- var el = document.createElement('option');
6
- for(attribute in obj) {
7
- if(obj.hasOwnProperty(attribute)) {
8
- if(attribute === 'selected') {
9
- el.setAttribute(attribute, obj[attribute]);
10
- } else {
11
- el[attribute] = obj[attribute];
12
- }
3
+ var dom = require("../../lib/dom");
4
+ var cssText = "#ace_settingsmenu, #kbshortcutmenu {\
5
+ background-color: #F7F7F7;\
6
+ color: black;\
7
+ box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\
8
+ padding: 1em 0.5em 2em 1em;\
9
+ overflow: auto;\
10
+ position: absolute;\
11
+ margin: 0;\
12
+ bottom: 0;\
13
+ right: 0;\
14
+ top: 0;\
15
+ z-index: 9991;\
16
+ cursor: default;\
17
+ }\
18
+ .ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\
19
+ box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\
20
+ background-color: rgba(255, 255, 255, 0.6);\
21
+ color: black;\
22
+ }\
23
+ .ace_optionsMenuEntry:hover {\
24
+ background-color: rgba(100, 100, 100, 0.1);\
25
+ transition: all 0.3s\
26
+ }\
27
+ .ace_closeButton {\
28
+ background: rgba(245, 146, 146, 0.5);\
29
+ border: 1px solid #F48A8A;\
30
+ border-radius: 50%;\
31
+ padding: 7px;\
32
+ position: absolute;\
33
+ right: -8px;\
34
+ top: -8px;\
35
+ z-index: 100000;\
36
+ }\
37
+ .ace_closeButton{\
38
+ background: rgba(245, 146, 146, 0.9);\
39
+ }\
40
+ .ace_optionsMenuKey {\
41
+ color: darkslateblue;\
42
+ font-weight: bold;\
43
+ }\
44
+ .ace_optionsMenuCommand {\
45
+ color: darkcyan;\
46
+ font-weight: normal;\
47
+ }\
48
+ .ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\
49
+ vertical-align: middle;\
50
+ }\
51
+ .ace_optionsMenuEntry button[ace_selected_button=true] {\
52
+ background: #e7e7e7;\
53
+ box-shadow: 1px 0px 2px 0px #adadad inset;\
54
+ border-color: #adadad;\
55
+ }\
56
+ .ace_optionsMenuEntry button {\
57
+ background: white;\
58
+ border: 1px solid lightgray;\
59
+ margin: 0px;\
60
+ }\
61
+ .ace_optionsMenuEntry button:hover{\
62
+ background: #f0f0f0;\
63
+ }";
64
+ dom.importCssString(cssText);
65
+
66
+ module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
67
+ var closer = document.createElement('div');
68
+ var ignoreFocusOut = false;
69
+
70
+ function documentEscListener(e) {
71
+ if (e.keyCode === 27) {
72
+ close();
13
73
  }
14
74
  }
15
- return el;
16
- };
17
- module.exports.createCheckbox = function createCheckbox (id, checked, clss) {
18
- var el = document.createElement('input');
19
- el.setAttribute('type', 'checkbox');
20
- el.setAttribute('id', id);
21
- el.setAttribute('name', id);
22
- el.setAttribute('value', checked);
23
- el.setAttribute('class', clss);
24
- if(checked) {
25
- el.setAttribute('checked', 'checked');
75
+
76
+ function close() {
77
+ if (!closer) return;
78
+ document.removeEventListener('keydown', documentEscListener);
79
+ closer.parentNode.removeChild(closer);
80
+ if (editor) {
81
+ editor.focus();
82
+ }
83
+ closer = null;
84
+ callback && callback();
26
85
  }
27
- return el;
28
- };
29
- module.exports.createInput = function createInput (id, value, clss) {
30
- var el = document.createElement('input');
31
- el.setAttribute('type', 'text');
32
- el.setAttribute('id', id);
33
- el.setAttribute('name', id);
34
- el.setAttribute('value', value);
35
- el.setAttribute('class', clss);
36
- return el;
37
- };
38
- module.exports.createLabel = function createLabel (text, labelFor) {
39
- var el = document.createElement('label');
40
- el.setAttribute('for', labelFor);
41
- el.textContent = text;
42
- return el;
43
- };
44
- module.exports.createSelection = function createSelection (id, values, clss) {
45
- var el = document.createElement('select');
46
- el.setAttribute('id', id);
47
- el.setAttribute('name', id);
48
- el.setAttribute('class', clss);
49
- values.forEach(function(item) {
50
- el.appendChild(module.exports.createOption(item));
86
+ function setIgnoreFocusOut(ignore) {
87
+ ignoreFocusOut = ignore;
88
+ if (ignore) {
89
+ closer.style.pointerEvents = "none";
90
+ contentElement.style.pointerEvents = "auto";
91
+ }
92
+ }
93
+
94
+ closer.style.cssText = 'margin: 0; padding: 0; ' +
95
+ 'position: fixed; top:0; bottom:0; left:0; right:0;' +
96
+ 'z-index: 9990; ' +
97
+ (editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
98
+ closer.addEventListener('click', function(e) {
99
+ if (!ignoreFocusOut) {
100
+ close();
101
+ }
102
+ });
103
+ document.addEventListener('keydown', documentEscListener);
104
+
105
+ contentElement.addEventListener('click', function (e) {
106
+ e.stopPropagation();
51
107
  });
52
- return el;
108
+
109
+ closer.appendChild(contentElement);
110
+ document.body.appendChild(closer);
111
+ if (editor) {
112
+ editor.blur();
113
+ }
114
+ return {
115
+ close: close,
116
+ setIgnoreFocusOut: setIgnoreFocusOut
117
+ };
53
118
  };
54
119
 
55
120
  });
@@ -95,12 +160,15 @@ var supportedModes = {
95
160
  ABC: ["abc"],
96
161
  ActionScript:["as"],
97
162
  ADA: ["ada|adb"],
163
+ Alda: ["alda"],
98
164
  Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
165
+ Apex: ["apex|cls|trigger|tgr"],
166
+ AQL: ["aql"],
99
167
  AsciiDoc: ["asciidoc|adoc"],
168
+ ASL: ["dsl|asl"],
100
169
  Assembly_x86:["asm|a"],
101
170
  AutoHotKey: ["ahk"],
102
171
  BatchFile: ["bat|cmd"],
103
- Bro: ["bro"],
104
172
  C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
105
173
  C9Search: ["c9search_results"],
106
174
  Cirru: ["cirru|cr"],
@@ -108,7 +176,11 @@ var supportedModes = {
108
176
  Cobol: ["CBL|COB"],
109
177
  coffee: ["coffee|cf|cson|^Cakefile"],
110
178
  ColdFusion: ["cfm"],
179
+ Crystal: ["cr"],
111
180
  CSharp: ["cs"],
181
+ Csound_Document: ["csd"],
182
+ Csound_Orchestra: ["orc"],
183
+ Csound_Score: ["sco"],
112
184
  CSS: ["css"],
113
185
  Curly: ["curly"],
114
186
  D: ["d|di"],
@@ -117,8 +189,7 @@ var supportedModes = {
117
189
  Dockerfile: ["^Dockerfile"],
118
190
  Dot: ["dot"],
119
191
  Drools: ["drl"],
120
- Dummy: ["dummy"],
121
- DummySyntax: ["dummy"],
192
+ Edifact: ["edi"],
122
193
  Eiffel: ["e|ge"],
123
194
  EJS: ["ejs"],
124
195
  Elixir: ["ex|exs"],
@@ -126,6 +197,8 @@ var supportedModes = {
126
197
  Erlang: ["erl|hrl"],
127
198
  Forth: ["frt|fs|ldr|fth|4th"],
128
199
  Fortran: ["f|f90"],
200
+ FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
201
+ FSL: ["fsl"],
129
202
  FTL: ["ftl"],
130
203
  Gcode: ["gcode"],
131
204
  Gherkin: ["feature"],
@@ -138,10 +211,10 @@ var supportedModes = {
138
211
  HAML: ["haml"],
139
212
  Handlebars: ["hbs|handlebars|tpl|mustache"],
140
213
  Haskell: ["hs"],
141
- Haskell_Cabal: ["cabal"],
214
+ Haskell_Cabal: ["cabal"],
142
215
  haXe: ["hx"],
143
216
  Hjson: ["hjson"],
144
- HTML: ["html|htm|xhtml"],
217
+ HTML: ["html|htm|xhtml|vue|we|wpy"],
145
218
  HTML_Elixir: ["eex|html.eex"],
146
219
  HTML_Ruby: ["erb|rhtml|html.erb"],
147
220
  INI: ["ini|conf|cfg|prefs"],
@@ -151,8 +224,10 @@ var supportedModes = {
151
224
  Java: ["java"],
152
225
  JavaScript: ["js|jsm|jsx"],
153
226
  JSON: ["json"],
227
+ JSON5: ["json5"],
154
228
  JSONiq: ["jq"],
155
229
  JSP: ["jsp"],
230
+ JSSM: ["jssm|jssm_state"],
156
231
  JSX: ["jsx"],
157
232
  Julia: ["jl"],
158
233
  Kotlin: ["kt|kts"],
@@ -171,38 +246,50 @@ var supportedModes = {
171
246
  Mask: ["mask"],
172
247
  MATLAB: ["matlab"],
173
248
  Maze: ["mz"],
249
+ MediaWiki: ["wiki|mediawiki"],
174
250
  MEL: ["mel"],
251
+ MIXAL: ["mixal"],
175
252
  MUSHCode: ["mc|mush"],
176
253
  MySQL: ["mysql"],
254
+ Nginx: ["nginx|conf"],
255
+ Nim: ["nim"],
177
256
  Nix: ["nix"],
178
257
  NSIS: ["nsi|nsh"],
258
+ Nunjucks: ["nunjucks|nunjs|nj|njk"],
179
259
  ObjectiveC: ["m|mm"],
180
260
  OCaml: ["ml|mli"],
181
261
  Pascal: ["pas|p"],
182
262
  Perl: ["pl|pm"],
263
+ Perl6: ["p6|pl6|pm6"],
183
264
  pgSQL: ["pgsql"],
184
- PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
265
+ PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
266
+ PHP_Laravel_blade: ["blade.php"],
185
267
  Pig: ["pig"],
186
268
  Powershell: ["ps1"],
187
269
  Praat: ["praat|praatscript|psc|proc"],
270
+ Prisma: ["prisma"],
188
271
  Prolog: ["plg|prolog"],
189
272
  Properties: ["properties"],
190
273
  Protobuf: ["proto"],
274
+ Puppet: ["epp|pp"],
191
275
  Python: ["py"],
276
+ QML: ["qml"],
192
277
  R: ["r"],
193
278
  Razor: ["cshtml|asp"],
194
279
  RDoc: ["Rd"],
280
+ Red: ["red|reds"],
195
281
  RHTML: ["Rhtml"],
196
282
  RST: ["rst"],
197
283
  Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
198
284
  Rust: ["rs"],
199
285
  SASS: ["sass"],
200
286
  SCAD: ["scad"],
201
- Scala: ["scala"],
287
+ Scala: ["scala|sbt"],
202
288
  Scheme: ["scm|sm|rkt|oak|scheme"],
203
289
  SCSS: ["scss"],
204
290
  SH: ["sh|bash|^.bashrc"],
205
291
  SJS: ["sjs"],
292
+ Slim: ["slim|skim"],
206
293
  Smarty: ["smarty|tpl"],
207
294
  snippets: ["snippets"],
208
295
  Soy_Template:["soy"],
@@ -213,22 +300,25 @@ var supportedModes = {
213
300
  SVG: ["svg"],
214
301
  Swift: ["swift"],
215
302
  Tcl: ["tcl"],
303
+ Terraform: ["tf", "tfvars", "terragrunt"],
216
304
  Tex: ["tex"],
217
305
  Text: ["txt"],
218
306
  Textile: ["textile"],
219
307
  Toml: ["toml"],
220
308
  TSX: ["tsx"],
221
- Twig: ["twig|swig"],
309
+ Twig: ["latte|twig|swig"],
222
310
  Typescript: ["ts|typescript|str"],
223
311
  Vala: ["vala"],
224
312
  VBScript: ["vbs|vb"],
225
313
  Velocity: ["vm"],
226
314
  Verilog: ["v|vh|sv|svh"],
227
315
  VHDL: ["vhd|vhdl"],
316
+ Visualforce: ["vfp|component|page"],
228
317
  Wollok: ["wlk|wpgm|wtest"],
229
318
  XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
230
319
  XQuery: ["xq"],
231
320
  YAML: ["yaml|yml"],
321
+ Zeek: ["zeek|bro"],
232
322
  Django: ["html"]
233
323
  };
234
324
 
@@ -237,10 +327,16 @@ var nameOverrides = {
237
327
  CSharp: "C#",
238
328
  golang: "Go",
239
329
  C_Cpp: "C and C++",
330
+ Csound_Document: "Csound Document",
331
+ Csound_Orchestra: "Csound",
332
+ Csound_Score: "Csound Score",
240
333
  coffee: "CoffeeScript",
241
334
  HTML_Ruby: "HTML (Ruby)",
242
335
  HTML_Elixir: "HTML (Elixir)",
243
- FTL: "FreeMarker"
336
+ FTL: "FreeMarker",
337
+ PHP_Laravel_blade: "PHP (Blade Template)",
338
+ Perl6: "Perl 6",
339
+ AutoHotKey: "AutoHotkey / AutoIt"
244
340
  };
245
341
  var modesByName = {};
246
342
  for (var name in supportedModes) {
@@ -260,9 +356,8 @@ module.exports = {
260
356
 
261
357
  });
262
358
 
263
- define("ace/ext/themelist",["require","exports","module","ace/lib/fixoldbrowsers"], function(require, exports, module) {
359
+ define("ace/ext/themelist",["require","exports","module"], function(require, exports, module) {
264
360
  "use strict";
265
- require("ace/lib/fixoldbrowsers");
266
361
 
267
362
  var themeData = [
268
363
  ["Chrome" ],
@@ -276,13 +371,14 @@ var themeData = [
276
371
  ["Solarized Light"],
277
372
  ["TextMate" ],
278
373
  ["Tomorrow" ],
279
- ["XCode" ],
374
+ ["Xcode" ],
280
375
  ["Kuroir"],
281
376
  ["KatzenMilch"],
282
377
  ["SQL Server" ,"sqlserver" , "light"],
283
378
  ["Ambiance" ,"ambiance" , "dark"],
284
379
  ["Chaos" ,"chaos" , "dark"],
285
380
  ["Clouds Midnight" ,"clouds_midnight" , "dark"],
381
+ ["Dracula" ,"" , "dark"],
286
382
  ["Cobalt" ,"cobalt" , "dark"],
287
383
  ["Gruvbox" ,"gruvbox" , "dark"],
288
384
  ["Green on Black" ,"gob" , "dark"],
@@ -292,6 +388,7 @@ var themeData = [
292
388
  ["Merbivore Soft" ,"merbivore_soft" , "dark"],
293
389
  ["Mono Industrial" ,"mono_industrial" , "dark"],
294
390
  ["Monokai" ,"monokai" , "dark"],
391
+ ["Nord Dark" ,"nord_dark" , "dark"],
295
392
  ["Pastel on dark" ,"pastel_on_dark" , "dark"],
296
393
  ["Solarized Dark" ,"solarized_dark" , "dark"],
297
394
  ["Terminal" ,"terminal" , "dark"],
@@ -319,345 +416,399 @@ exports.themes = themeData.map(function(data) {
319
416
 
320
417
  });
321
418
 
322
- define("ace/ext/menu_tools/add_editor_menu_options",["require","exports","module","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module) {
323
- 'use strict';
324
- module.exports.addEditorMenuOptions = function addEditorMenuOptions (editor) {
325
- var modelist = require('../modelist');
326
- var themelist = require('../themelist');
327
- editor.menuOptions = {
328
- setNewLineMode: [{
329
- textContent: "unix",
330
- value: "unix"
331
- }, {
332
- textContent: "windows",
333
- value: "windows"
334
- }, {
335
- textContent: "auto",
336
- value: "auto"
337
- }],
338
- setTheme: [],
339
- setMode: [],
340
- setKeyboardHandler: [{
341
- textContent: "ace",
342
- value: ""
343
- }, {
344
- textContent: "vim",
345
- value: "ace/keyboard/vim"
346
- }, {
347
- textContent: "emacs",
348
- value: "ace/keyboard/emacs"
349
- }, {
350
- textContent: "textarea",
351
- value: "ace/keyboard/textarea"
352
- }, {
353
- textContent: "sublime",
354
- value: "ace/keyboard/sublime"
355
- }]
356
- };
419
+ define("ace/ext/options",["require","exports","module","ace/ext/menu_tools/overlay_page","ace/lib/dom","ace/lib/oop","ace/config","ace/lib/event_emitter","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module) {
420
+ "use strict";
357
421
 
358
- editor.menuOptions.setTheme = themelist.themes.map(function(theme) {
359
- return {
360
- textContent: theme.caption,
361
- value: theme.theme
362
- };
363
- });
422
+ require("./menu_tools/overlay_page");
364
423
 
365
- editor.menuOptions.setMode = modelist.modes.map(function(mode) {
366
- return {
367
- textContent: mode.name,
368
- value: mode.mode
369
- };
370
- });
371
- };
424
+ var dom = require("../lib/dom");
425
+ var oop = require("../lib/oop");
426
+ var config = require("../config");
427
+ var EventEmitter = require("../lib/event_emitter").EventEmitter;
428
+ var buildDom = dom.buildDom;
372
429
 
430
+ var modelist = require("./modelist");
431
+ var themelist = require("./themelist");
373
432
 
433
+ var themes = { Bright: [], Dark: [] };
434
+ themelist.themes.forEach(function(x) {
435
+ themes[x.isDark ? "Dark" : "Bright"].push({ caption: x.caption, value: x.theme });
374
436
  });
375
437
 
376
- define("ace/ext/menu_tools/get_set_functions",["require","exports","module"], function(require, exports, module) {
377
- 'use strict';
378
- module.exports.getSetFunctions = function getSetFunctions (editor) {
379
- var out = [];
380
- var my = {
381
- 'editor' : editor,
382
- 'session' : editor.session,
383
- 'renderer' : editor.renderer
384
- };
385
- var opts = [];
386
- var skip = [
387
- 'setOption',
388
- 'setUndoManager',
389
- 'setDocument',
390
- 'setValue',
391
- 'setBreakpoints',
392
- 'setScrollTop',
393
- 'setScrollLeft',
394
- 'setSelectionStyle',
395
- 'setWrapLimitRange'
396
- ];
397
- ['renderer', 'session', 'editor'].forEach(function(esra) {
398
- var esr = my[esra];
399
- var clss = esra;
400
- for(var fn in esr) {
401
- if(skip.indexOf(fn) === -1) {
402
- if(/^set/.test(fn) && opts.indexOf(fn) === -1) {
403
- opts.push(fn);
404
- out.push({
405
- 'functionName' : fn,
406
- 'parentObj' : esr,
407
- 'parentName' : clss
408
- });
409
- }
410
- }
411
- }
412
- });
413
- return out;
414
- };
415
-
438
+ var modes = modelist.modes.map(function(x){
439
+ return { caption: x.caption, value: x.mode };
416
440
  });
417
441
 
418
- define("ace/ext/menu_tools/generate_settings_menu",["require","exports","module","ace/ext/menu_tools/element_generator","ace/ext/menu_tools/add_editor_menu_options","ace/ext/menu_tools/get_set_functions","ace/ace"], function(require, exports, module) {
419
- 'use strict';
420
- var egen = require('./element_generator');
421
- var addEditorMenuOptions = require('./add_editor_menu_options').addEditorMenuOptions;
422
- var getSetFunctions = require('./get_set_functions').getSetFunctions;
423
- module.exports.generateSettingsMenu = function generateSettingsMenu (editor) {
424
- var elements = [];
425
- function cleanupElementsList() {
426
- elements.sort(function(a, b) {
427
- var x = a.getAttribute('contains');
428
- var y = b.getAttribute('contains');
429
- return x.localeCompare(y);
430
- });
431
- }
432
- function wrapElements() {
433
- var topmenu = document.createElement('div');
434
- topmenu.setAttribute('id', 'ace_settingsmenu');
435
- elements.forEach(function(element) {
436
- topmenu.appendChild(element);
437
- });
438
-
439
- var el = topmenu.appendChild(document.createElement('div'));
440
- var version = require("../../ace").version;
441
- el.style.padding = "1em";
442
- el.textContent = "Ace version " + version;
443
-
444
- return topmenu;
445
- }
446
- function createNewEntry(obj, clss, item, val) {
447
- var el;
448
- var div = document.createElement('div');
449
- div.setAttribute('contains', item);
450
- div.setAttribute('class', 'ace_optionsMenuEntry');
451
- div.setAttribute('style', 'clear: both;');
452
-
453
- div.appendChild(egen.createLabel(
454
- item.replace(/^set/, '').replace(/([A-Z])/g, ' $1').trim(),
455
- item
456
- ));
457
-
458
- if (Array.isArray(val)) {
459
- el = egen.createSelection(item, val, clss);
460
- el.addEventListener('change', function(e) {
461
- try{
462
- editor.menuOptions[e.target.id].forEach(function(x) {
463
- if(x.textContent !== e.target.textContent) {
464
- delete x.selected;
465
- }
466
- });
467
- obj[e.target.id](e.target.value);
468
- } catch (err) {
469
- throw new Error(err);
470
- }
471
- });
472
- } else if(typeof val === 'boolean') {
473
- el = egen.createCheckbox(item, val, clss);
474
- el.addEventListener('change', function(e) {
475
- try{
476
- obj[e.target.id](!!e.target.checked);
477
- } catch (err) {
478
- throw new Error(err);
479
- }
480
- });
481
- } else {
482
- el = egen.createInput(item, val, clss);
483
- el.addEventListener('change', function(e) {
484
- try{
485
- if(e.target.value === 'true') {
486
- obj[e.target.id](true);
487
- } else if(e.target.value === 'false') {
488
- obj[e.target.id](false);
489
- } else {
490
- obj[e.target.id](e.target.value);
491
- }
492
- } catch (err) {
493
- throw new Error(err);
494
- }
495
- });
442
+
443
+ var optionGroups = {
444
+ Main: {
445
+ Mode: {
446
+ path: "mode",
447
+ type: "select",
448
+ items: modes
449
+ },
450
+ Theme: {
451
+ path: "theme",
452
+ type: "select",
453
+ items: themes
454
+ },
455
+ "Keybinding": {
456
+ type: "buttonBar",
457
+ path: "keyboardHandler",
458
+ items: [
459
+ { caption : "Ace", value : null },
460
+ { caption : "Vim", value : "ace/keyboard/vim" },
461
+ { caption : "Emacs", value : "ace/keyboard/emacs" },
462
+ { caption : "Sublime", value : "ace/keyboard/sublime" },
463
+ { caption : "VSCode", value : "ace/keyboard/vscode" }
464
+ ]
465
+ },
466
+ "Font Size": {
467
+ path: "fontSize",
468
+ type: "number",
469
+ defaultValue: 12,
470
+ defaults: [
471
+ {caption: "12px", value: 12},
472
+ {caption: "24px", value: 24}
473
+ ]
474
+ },
475
+ "Soft Wrap": {
476
+ type: "buttonBar",
477
+ path: "wrap",
478
+ items: [
479
+ { caption : "Off", value : "off" },
480
+ { caption : "View", value : "free" },
481
+ { caption : "margin", value : "printMargin" },
482
+ { caption : "40", value : "40" }
483
+ ]
484
+ },
485
+ "Cursor Style": {
486
+ path: "cursorStyle",
487
+ items: [
488
+ { caption : "Ace", value : "ace" },
489
+ { caption : "Slim", value : "slim" },
490
+ { caption : "Smooth", value : "smooth" },
491
+ { caption : "Smooth And Slim", value : "smooth slim" },
492
+ { caption : "Wide", value : "wide" }
493
+ ]
494
+ },
495
+ "Folding": {
496
+ path: "foldStyle",
497
+ items: [
498
+ { caption : "Manual", value : "manual" },
499
+ { caption : "Mark begin", value : "markbegin" },
500
+ { caption : "Mark begin and end", value : "markbeginend" }
501
+ ]
502
+ },
503
+ "Soft Tabs": [{
504
+ path: "useSoftTabs"
505
+ }, {
506
+ ariaLabel: "Tab Size",
507
+ path: "tabSize",
508
+ type: "number",
509
+ values: [2, 3, 4, 8, 16]
510
+ }],
511
+ "Overscroll": {
512
+ type: "buttonBar",
513
+ path: "scrollPastEnd",
514
+ items: [
515
+ { caption : "None", value : 0 },
516
+ { caption : "Half", value : 0.5 },
517
+ { caption : "Full", value : 1 }
518
+ ]
496
519
  }
497
- el.style.cssText = 'float:right;';
498
- div.appendChild(el);
499
- return div;
500
- }
501
- function makeDropdown(item, esr, clss, fn) {
502
- var val = editor.menuOptions[item];
503
- var currentVal = esr[fn]();
504
- if (typeof currentVal == 'object')
505
- currentVal = currentVal.$id;
506
- val.forEach(function(valuex) {
507
- if (valuex.value === currentVal)
508
- valuex.selected = 'selected';
509
- });
510
- return createNewEntry(esr, clss, item, val);
511
- }
512
- function handleSet(setObj) {
513
- var item = setObj.functionName;
514
- var esr = setObj.parentObj;
515
- var clss = setObj.parentName;
516
- var val;
517
- var fn = item.replace(/^set/, 'get');
518
- if(editor.menuOptions[item] !== undefined) {
519
- elements.push(makeDropdown(item, esr, clss, fn));
520
- } else if(typeof esr[fn] === 'function') {
521
- try {
522
- val = esr[fn]();
523
- if(typeof val === 'object') {
524
- val = val.$id;
525
- }
526
- elements.push(
527
- createNewEntry(esr, clss, item, val)
528
- );
529
- } catch (e) {
530
- }
520
+ },
521
+ More: {
522
+ "Atomic soft tabs": {
523
+ path: "navigateWithinSoftTabs"
524
+ },
525
+ "Enable Behaviours": {
526
+ path: "behavioursEnabled"
527
+ },
528
+ "Wrap with quotes": {
529
+ path: "wrapBehavioursEnabled"
530
+ },
531
+ "Enable Auto Indent": {
532
+ path: "enableAutoIndent"
533
+ },
534
+ "Full Line Selection": {
535
+ type: "checkbox",
536
+ values: "text|line",
537
+ path: "selectionStyle"
538
+ },
539
+ "Highlight Active Line": {
540
+ path: "highlightActiveLine"
541
+ },
542
+ "Show Invisibles": {
543
+ path: "showInvisibles"
544
+ },
545
+ "Show Indent Guides": {
546
+ path: "displayIndentGuides"
547
+ },
548
+ "Persistent HScrollbar": {
549
+ path: "hScrollBarAlwaysVisible"
550
+ },
551
+ "Persistent VScrollbar": {
552
+ path: "vScrollBarAlwaysVisible"
553
+ },
554
+ "Animate scrolling": {
555
+ path: "animatedScroll"
556
+ },
557
+ "Show Gutter": {
558
+ path: "showGutter"
559
+ },
560
+ "Show Line Numbers": {
561
+ path: "showLineNumbers"
562
+ },
563
+ "Relative Line Numbers": {
564
+ path: "relativeLineNumbers"
565
+ },
566
+ "Fixed Gutter Width": {
567
+ path: "fixedWidthGutter"
568
+ },
569
+ "Show Print Margin": [{
570
+ path: "showPrintMargin"
571
+ }, {
572
+ ariaLabel: "Print Margin",
573
+ type: "number",
574
+ path: "printMarginColumn"
575
+ }],
576
+ "Indented Soft Wrap": {
577
+ path: "indentedSoftWrap"
578
+ },
579
+ "Highlight selected word": {
580
+ path: "highlightSelectedWord"
581
+ },
582
+ "Fade Fold Widgets": {
583
+ path: "fadeFoldWidgets"
584
+ },
585
+ "Use textarea for IME": {
586
+ path: "useTextareaForIME"
587
+ },
588
+ "Merge Undo Deltas": {
589
+ path: "mergeUndoDeltas",
590
+ items: [
591
+ { caption : "Always", value : "always" },
592
+ { caption : "Never", value : "false" },
593
+ { caption : "Timed", value : "true" }
594
+ ]
595
+ },
596
+ "Elastic Tabstops": {
597
+ path: "useElasticTabstops"
598
+ },
599
+ "Incremental Search": {
600
+ path: "useIncrementalSearch"
601
+ },
602
+ "Read-only": {
603
+ path: "readOnly"
604
+ },
605
+ "Copy without selection": {
606
+ path: "copyWithEmptySelection"
607
+ },
608
+ "Live Autocompletion": {
609
+ path: "enableLiveAutocompletion"
531
610
  }
532
611
  }
533
- addEditorMenuOptions(editor);
534
- getSetFunctions(editor).forEach(function(setObj) {
535
- handleSet(setObj);
536
- });
537
- cleanupElementsList();
538
- return wrapElements();
539
612
  };
540
613
 
541
- });
542
614
 
543
- define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
544
- 'use strict';
545
- var dom = require("../../lib/dom");
546
- var cssText = "#ace_settingsmenu, #kbshortcutmenu {\
547
- background-color: #F7F7F7;\
548
- color: black;\
549
- box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\
550
- padding: 1em 0.5em 2em 1em;\
551
- overflow: auto;\
552
- position: absolute;\
553
- margin: 0;\
554
- bottom: 0;\
555
- right: 0;\
556
- top: 0;\
557
- z-index: 9991;\
558
- cursor: default;\
559
- }\
560
- .ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\
561
- box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\
562
- background-color: rgba(255, 255, 255, 0.6);\
563
- color: black;\
564
- }\
565
- .ace_optionsMenuEntry:hover {\
566
- background-color: rgba(100, 100, 100, 0.1);\
567
- -webkit-transition: all 0.5s;\
568
- transition: all 0.3s\
569
- }\
570
- .ace_closeButton {\
571
- background: rgba(245, 146, 146, 0.5);\
572
- border: 1px solid #F48A8A;\
573
- border-radius: 50%;\
574
- padding: 7px;\
575
- position: absolute;\
576
- right: -8px;\
577
- top: -8px;\
578
- z-index: 1000;\
579
- }\
580
- .ace_closeButton{\
581
- background: rgba(245, 146, 146, 0.9);\
582
- }\
583
- .ace_optionsMenuKey {\
584
- color: darkslateblue;\
585
- font-weight: bold;\
586
- }\
587
- .ace_optionsMenuCommand {\
588
- color: darkcyan;\
589
- font-weight: normal;\
590
- }";
591
- dom.importCssString(cssText);
592
- module.exports.overlayPage = function overlayPage(editor, contentElement, top, right, bottom, left) {
593
- top = top ? 'top: ' + top + ';' : '';
594
- bottom = bottom ? 'bottom: ' + bottom + ';' : '';
595
- right = right ? 'right: ' + right + ';' : '';
596
- left = left ? 'left: ' + left + ';' : '';
597
-
598
- var closer = document.createElement('div');
599
- var contentContainer = document.createElement('div');
615
+ var OptionPanel = function(editor, element) {
616
+ this.editor = editor;
617
+ this.container = element || document.createElement("div");
618
+ this.groups = [];
619
+ this.options = {};
620
+ };
600
621
 
601
- function documentEscListener(e) {
602
- if (e.keyCode === 27) {
603
- closer.click();
622
+ (function() {
623
+
624
+ oop.implement(this, EventEmitter);
625
+
626
+ this.add = function(config) {
627
+ if (config.Main)
628
+ oop.mixin(optionGroups.Main, config.Main);
629
+ if (config.More)
630
+ oop.mixin(optionGroups.More, config.More);
631
+ };
632
+
633
+ this.render = function() {
634
+ this.container.innerHTML = "";
635
+ buildDom(["table", {role: "presentation", id: "controls"},
636
+ this.renderOptionGroup(optionGroups.Main),
637
+ ["tr", null, ["td", {colspan: 2},
638
+ ["table", {role: "presentation", id: "more-controls"},
639
+ this.renderOptionGroup(optionGroups.More)
640
+ ]
641
+ ]],
642
+ ["tr", null, ["td", {colspan: 2}, "version " + config.version]]
643
+ ], this.container);
644
+ };
645
+
646
+ this.renderOptionGroup = function(group) {
647
+ return Object.keys(group).map(function(key, i) {
648
+ var item = group[key];
649
+ if (!item.position)
650
+ item.position = i / 10000;
651
+ if (!item.label)
652
+ item.label = key;
653
+ return item;
654
+ }).sort(function(a, b) {
655
+ return a.position - b.position;
656
+ }).map(function(item) {
657
+ return this.renderOption(item.label, item);
658
+ }, this);
659
+ };
660
+
661
+ this.renderOptionControl = function(key, option) {
662
+ var self = this;
663
+ if (Array.isArray(option)) {
664
+ return option.map(function(x) {
665
+ return self.renderOptionControl(key, x);
666
+ });
604
667
  }
605
- }
606
-
607
- closer.style.cssText = 'margin: 0; padding: 0; ' +
608
- 'position: fixed; top:0; bottom:0; left:0; right:0;' +
609
- 'z-index: 9990; ' +
610
- 'background-color: rgba(0, 0, 0, 0.3);';
611
- closer.addEventListener('click', function() {
612
- document.removeEventListener('keydown', documentEscListener);
613
- closer.parentNode.removeChild(closer);
614
- editor.focus();
615
- closer = null;
616
- });
617
- document.addEventListener('keydown', documentEscListener);
618
-
619
- contentContainer.style.cssText = top + right + bottom + left;
620
- contentContainer.addEventListener('click', function(e) {
621
- e.stopPropagation();
622
- });
623
-
624
- var wrapper = dom.createElement("div");
625
- wrapper.style.position = "relative";
668
+ var control;
669
+
670
+ var value = self.getOption(option);
671
+
672
+ if (option.values && option.type != "checkbox") {
673
+ if (typeof option.values == "string")
674
+ option.values = option.values.split("|");
675
+ option.items = option.values.map(function(v) {
676
+ return { value: v, name: v };
677
+ });
678
+ }
679
+
680
+ if (option.type == "buttonBar") {
681
+ control = ["div", {role: "group", "aria-labelledby": option.path + "-label"}, option.items.map(function(item) {
682
+ return ["button", {
683
+ value: item.value,
684
+ ace_selected_button: value == item.value,
685
+ 'aria-pressed': value == item.value,
686
+ onclick: function() {
687
+ self.setOption(option, item.value);
688
+ var nodes = this.parentNode.querySelectorAll("[ace_selected_button]");
689
+ for (var i = 0; i < nodes.length; i++) {
690
+ nodes[i].removeAttribute("ace_selected_button");
691
+ nodes[i].setAttribute("aria-pressed", false);
692
+ }
693
+ this.setAttribute("ace_selected_button", true);
694
+ this.setAttribute("aria-pressed", true);
695
+ }
696
+ }, item.desc || item.caption || item.name];
697
+ })];
698
+ } else if (option.type == "number") {
699
+ control = ["input", {type: "number", value: value || option.defaultValue, style:"width:3em", oninput: function() {
700
+ self.setOption(option, parseInt(this.value));
701
+ }}];
702
+ if (option.ariaLabel) {
703
+ control[1]["aria-label"] = option.ariaLabel;
704
+ } else {
705
+ control[1].id = key;
706
+ }
707
+ if (option.defaults) {
708
+ control = [control, option.defaults.map(function(item) {
709
+ return ["button", {onclick: function() {
710
+ var input = this.parentNode.firstChild;
711
+ input.value = item.value;
712
+ input.oninput();
713
+ }}, item.caption];
714
+ })];
715
+ }
716
+ } else if (option.items) {
717
+ var buildItems = function(items) {
718
+ return items.map(function(item) {
719
+ return ["option", { value: item.value || item.name }, item.desc || item.caption || item.name];
720
+ });
721
+ };
722
+
723
+ var items = Array.isArray(option.items)
724
+ ? buildItems(option.items)
725
+ : Object.keys(option.items).map(function(key) {
726
+ return ["optgroup", {"label": key}, buildItems(option.items[key])];
727
+ });
728
+ control = ["select", { id: key, value: value, onchange: function() {
729
+ self.setOption(option, this.value);
730
+ } }, items];
731
+ } else {
732
+ if (typeof option.values == "string")
733
+ option.values = option.values.split("|");
734
+ if (option.values) value = value == option.values[1];
735
+ control = ["input", { type: "checkbox", id: key, checked: value || null, onchange: function() {
736
+ var value = this.checked;
737
+ if (option.values) value = option.values[value ? 1 : 0];
738
+ self.setOption(option, value);
739
+ }}];
740
+ if (option.type == "checkedNumber") {
741
+ control = [control, []];
742
+ }
743
+ }
744
+ return control;
745
+ };
626
746
 
627
- var closeButton = dom.createElement("div");
628
- closeButton.className = "ace_closeButton";
629
- closeButton.addEventListener('click', function() {
630
- closer.click();
631
- });
747
+ this.renderOption = function(key, option) {
748
+ if (option.path && !option.onchange && !this.editor.$options[option.path])
749
+ return;
750
+ var path = Array.isArray(option) ? option[0].path : option.path;
751
+ this.options[path] = option;
752
+ var safeKey = "-" + path;
753
+ var safeId = path + "-label";
754
+ var control = this.renderOptionControl(safeKey, option);
755
+ return ["tr", {class: "ace_optionsMenuEntry"}, ["td",
756
+ ["label", {for: safeKey, id: safeId}, key]
757
+ ], ["td", control]];
758
+ };
632
759
 
633
- wrapper.appendChild(closeButton);
634
- contentContainer.appendChild(wrapper);
760
+ this.setOption = function(option, value) {
761
+ if (typeof option == "string")
762
+ option = this.options[option];
763
+ if (value == "false") value = false;
764
+ if (value == "true") value = true;
765
+ if (value == "null") value = null;
766
+ if (value == "undefined") value = undefined;
767
+ if (typeof value == "string" && parseFloat(value).toString() == value)
768
+ value = parseFloat(value);
769
+ if (option.onchange)
770
+ option.onchange(value);
771
+ else if (option.path)
772
+ this.editor.setOption(option.path, value);
773
+ this._signal("setOption", {name: option.path, value: value});
774
+ };
635
775
 
636
- contentContainer.appendChild(contentElement);
637
- closer.appendChild(contentContainer);
638
- document.body.appendChild(closer);
639
- editor.blur();
640
- };
776
+ this.getOption = function(option) {
777
+ if (option.getValue)
778
+ return option.getValue();
779
+ return this.editor.getOption(option.path);
780
+ };
781
+
782
+ }).call(OptionPanel.prototype);
783
+
784
+ exports.OptionPanel = OptionPanel;
641
785
 
642
786
  });
643
787
 
644
- define("ace/ext/settings_menu",["require","exports","module","ace/ext/menu_tools/generate_settings_menu","ace/ext/menu_tools/overlay_page","ace/editor"], function(require, exports, module) {
788
+ define("ace/ext/settings_menu",["require","exports","module","ace/ext/options","ace/ext/menu_tools/overlay_page","ace/editor"], function(require, exports, module) {
645
789
  "use strict";
646
- var generateSettingsMenu = require('./menu_tools/generate_settings_menu').generateSettingsMenu;
790
+ var OptionPanel = require("./options").OptionPanel;
647
791
  var overlayPage = require('./menu_tools/overlay_page').overlayPage;
648
792
  function showSettingsMenu(editor) {
649
- var sm = document.getElementById('ace_settingsmenu');
650
- if (!sm)
651
- overlayPage(editor, generateSettingsMenu(editor), '0', '0', '0');
793
+ if (!document.getElementById('ace_settingsmenu')) {
794
+ var options = new OptionPanel(editor);
795
+ options.render();
796
+ options.container.id = "ace_settingsmenu";
797
+ overlayPage(editor, options.container);
798
+ options.container.querySelector("select,input,button,checkbox").focus();
799
+ }
652
800
  }
653
- module.exports.init = function(editor) {
654
- var Editor = require("ace/editor").Editor;
801
+ module.exports.init = function() {
802
+ var Editor = require("../editor").Editor;
655
803
  Editor.prototype.showSettingsMenu = function() {
656
804
  showSettingsMenu(this);
657
805
  };
658
806
  };
659
- });
660
- (function() {
661
- window.require(["ace/ext/settings_menu"], function() {});
807
+ }); (function() {
808
+ window.require(["ace/ext/settings_menu"], function(m) {
809
+ if (typeof module == "object" && typeof exports == "object" && module) {
810
+ module.exports = m;
811
+ }
812
+ });
662
813
  })();
663
814