ace-rails-ap 4.1.1 → 4.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (352) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ace/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/ace/ace.js +529 -133
  4. data/vendor/assets/javascripts/ace/ext-beautify.js +0 -0
  5. data/vendor/assets/javascripts/ace/ext-chromevox.js +0 -0
  6. data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +0 -0
  7. data/vendor/assets/javascripts/ace/ext-emmet.js +17 -12
  8. data/vendor/assets/javascripts/ace/ext-error_marker.js +0 -0
  9. data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +0 -0
  10. data/vendor/assets/javascripts/ace/ext-language_tools.js +12 -4
  11. data/vendor/assets/javascripts/ace/ext-linking.js +0 -0
  12. data/vendor/assets/javascripts/ace/ext-modelist.js +11 -5
  13. data/vendor/assets/javascripts/ace/ext-old_ie.js +1 -0
  14. data/vendor/assets/javascripts/ace/ext-searchbox.js +1 -0
  15. data/vendor/assets/javascripts/ace/ext-settings_menu.js +12 -5
  16. data/vendor/assets/javascripts/ace/ext-spellcheck.js +0 -0
  17. data/vendor/assets/javascripts/ace/ext-split.js +0 -0
  18. data/vendor/assets/javascripts/ace/ext-static_highlight.js +0 -0
  19. data/vendor/assets/javascripts/ace/ext-statusbar.js +0 -0
  20. data/vendor/assets/javascripts/ace/ext-textarea.js +0 -0
  21. data/vendor/assets/javascripts/ace/ext-themelist.js +1 -0
  22. data/vendor/assets/javascripts/ace/ext-whitespace.js +0 -0
  23. data/vendor/assets/javascripts/ace/keybinding-emacs.js +0 -0
  24. data/vendor/assets/javascripts/ace/keybinding-vim.js +28 -18
  25. data/vendor/assets/javascripts/ace/mode-abap.js +4 -4
  26. data/vendor/assets/javascripts/ace/mode-abc.js +1 -0
  27. data/vendor/assets/javascripts/ace/mode-actionscript.js +1 -0
  28. data/vendor/assets/javascripts/ace/mode-ada.js +2 -2
  29. data/vendor/assets/javascripts/ace/mode-apache_conf.js +1 -0
  30. data/vendor/assets/javascripts/ace/mode-applescript.js +2 -2
  31. data/vendor/assets/javascripts/ace/mode-asciidoc.js +1 -1
  32. data/vendor/assets/javascripts/ace/mode-assembly_x86.js +1 -0
  33. data/vendor/assets/javascripts/ace/mode-autohotkey.js +1 -0
  34. data/vendor/assets/javascripts/ace/mode-batchfile.js +1 -0
  35. data/vendor/assets/javascripts/ace/mode-bro.js +327 -0
  36. data/vendor/assets/javascripts/ace/mode-c9search.js +31 -14
  37. data/vendor/assets/javascripts/ace/mode-c_cpp.js +4 -361
  38. data/vendor/assets/javascripts/ace/mode-cirru.js +7 -6
  39. data/vendor/assets/javascripts/ace/mode-clojure.js +4 -3
  40. data/vendor/assets/javascripts/ace/mode-cobol.js +2 -2
  41. data/vendor/assets/javascripts/ace/mode-coffee.js +2 -3
  42. data/vendor/assets/javascripts/ace/mode-coldfusion.js +16 -370
  43. data/vendor/assets/javascripts/ace/mode-csharp.js +0 -357
  44. data/vendor/assets/javascripts/ace/mode-css.js +0 -357
  45. data/vendor/assets/javascripts/ace/mode-curly.js +16 -371
  46. data/vendor/assets/javascripts/ace/mode-d.js +2 -1
  47. data/vendor/assets/javascripts/ace/mode-dart.js +4 -361
  48. data/vendor/assets/javascripts/ace/mode-diff.js +0 -0
  49. data/vendor/assets/javascripts/ace/mode-django.js +15 -369
  50. data/vendor/assets/javascripts/ace/mode-dockerfile.js +3 -360
  51. data/vendor/assets/javascripts/ace/mode-dot.js +2 -1
  52. data/vendor/assets/javascripts/ace/mode-drools.js +459 -0
  53. data/vendor/assets/javascripts/ace/mode-eiffel.js +2 -2
  54. data/vendor/assets/javascripts/ace/mode-ejs.js +19 -373
  55. data/vendor/assets/javascripts/ace/mode-elixir.js +1 -0
  56. data/vendor/assets/javascripts/ace/mode-elm.js +5 -2
  57. data/vendor/assets/javascripts/ace/mode-erlang.js +4 -3
  58. data/vendor/assets/javascripts/ace/mode-forth.js +14 -13
  59. data/vendor/assets/javascripts/ace/mode-fortran.js +423 -0
  60. data/vendor/assets/javascripts/ace/mode-ftl.js +7 -6
  61. data/vendor/assets/javascripts/ace/mode-gcode.js +1 -0
  62. data/vendor/assets/javascripts/ace/mode-gherkin.js +2 -1
  63. data/vendor/assets/javascripts/ace/mode-gitignore.js +1 -0
  64. data/vendor/assets/javascripts/ace/mode-glsl.js +4 -361
  65. data/vendor/assets/javascripts/ace/mode-gobstones.js +8 -365
  66. data/vendor/assets/javascripts/ace/mode-golang.js +0 -357
  67. data/vendor/assets/javascripts/ace/mode-groovy.js +7 -365
  68. data/vendor/assets/javascripts/ace/mode-haml.js +12 -11
  69. data/vendor/assets/javascripts/ace/mode-handlebars.js +15 -371
  70. data/vendor/assets/javascripts/ace/mode-haskell.js +29 -28
  71. data/vendor/assets/javascripts/ace/mode-haskell_cabal.js +134 -0
  72. data/vendor/assets/javascripts/ace/mode-haxe.js +0 -357
  73. data/vendor/assets/javascripts/ace/mode-hjson.js +346 -0
  74. data/vendor/assets/javascripts/ace/mode-html.js +15 -369
  75. data/vendor/assets/javascripts/ace/mode-html_elixir.js +16 -369
  76. data/vendor/assets/javascripts/ace/mode-html_ruby.js +18 -372
  77. data/vendor/assets/javascripts/ace/mode-ini.js +1 -0
  78. data/vendor/assets/javascripts/ace/mode-io.js +3 -3
  79. data/vendor/assets/javascripts/ace/mode-jack.js +0 -357
  80. data/vendor/assets/javascripts/ace/mode-jade.js +11 -12
  81. data/vendor/assets/javascripts/ace/mode-java.js +7 -365
  82. data/vendor/assets/javascripts/ace/mode-javascript.js +7 -365
  83. data/vendor/assets/javascripts/ace/mode-json.js +0 -357
  84. data/vendor/assets/javascripts/ace/mode-jsoniq.js +5 -358
  85. data/vendor/assets/javascripts/ace/mode-jsp.js +6 -363
  86. data/vendor/assets/javascripts/ace/mode-jsx.js +0 -357
  87. data/vendor/assets/javascripts/ace/mode-julia.js +1 -0
  88. data/vendor/assets/javascripts/ace/mode-kotlin.js +786 -0
  89. data/vendor/assets/javascripts/ace/mode-latex.js +2 -2
  90. data/vendor/assets/javascripts/ace/mode-lean.js +0 -0
  91. data/vendor/assets/javascripts/ace/mode-less.js +0 -357
  92. data/vendor/assets/javascripts/ace/mode-liquid.js +9 -9
  93. data/vendor/assets/javascripts/ace/mode-lisp.js +1 -0
  94. data/vendor/assets/javascripts/ace/mode-live_script.js +0 -0
  95. data/vendor/assets/javascripts/ace/mode-livescript.js +0 -0
  96. data/vendor/assets/javascripts/ace/mode-logiql.js +0 -357
  97. data/vendor/assets/javascripts/ace/mode-lsl.js +0 -357
  98. data/vendor/assets/javascripts/ace/mode-lua.js +1 -0
  99. data/vendor/assets/javascripts/ace/mode-luapage.js +16 -369
  100. data/vendor/assets/javascripts/ace/mode-lucene.js +1 -0
  101. data/vendor/assets/javascripts/ace/mode-makefile.js +3 -2
  102. data/vendor/assets/javascripts/ace/mode-markdown.js +17 -370
  103. data/vendor/assets/javascripts/ace/mode-mask.js +10 -367
  104. data/vendor/assets/javascripts/ace/mode-matlab.js +21 -21
  105. data/vendor/assets/javascripts/ace/mode-maze.js +1 -0
  106. data/vendor/assets/javascripts/ace/mode-mel.js +0 -357
  107. data/vendor/assets/javascripts/ace/mode-mips_assembler.js +0 -0
  108. data/vendor/assets/javascripts/ace/mode-mipsassembler.js +0 -0
  109. data/vendor/assets/javascripts/ace/mode-mushcode.js +2 -1
  110. data/vendor/assets/javascripts/ace/mode-mysql.js +2 -2
  111. data/vendor/assets/javascripts/ace/mode-nix.js +5 -361
  112. data/vendor/assets/javascripts/ace/mode-nsis.js +11 -10
  113. data/vendor/assets/javascripts/ace/mode-objectivec.js +9 -8
  114. data/vendor/assets/javascripts/ace/mode-ocaml.js +1 -0
  115. data/vendor/assets/javascripts/ace/mode-pascal.js +1 -0
  116. data/vendor/assets/javascripts/ace/mode-perl.js +3 -3
  117. data/vendor/assets/javascripts/ace/mode-pgsql.js +8 -8
  118. data/vendor/assets/javascripts/ace/mode-php.js +197 -723
  119. data/vendor/assets/javascripts/ace/mode-plain_text.js +0 -0
  120. data/vendor/assets/javascripts/ace/mode-powershell.js +0 -357
  121. data/vendor/assets/javascripts/ace/mode-praat.js +4 -4
  122. data/vendor/assets/javascripts/ace/mode-prolog.js +1 -0
  123. data/vendor/assets/javascripts/ace/mode-properties.js +1 -0
  124. data/vendor/assets/javascripts/ace/mode-protobuf.js +4 -361
  125. data/vendor/assets/javascripts/ace/mode-python.js +2 -1
  126. data/vendor/assets/javascripts/ace/mode-r.js +5 -6
  127. data/vendor/assets/javascripts/ace/mode-razor.js +26 -370
  128. data/vendor/assets/javascripts/ace/mode-rdoc.js +4 -4
  129. data/vendor/assets/javascripts/ace/mode-rhtml.js +17 -371
  130. data/vendor/assets/javascripts/ace/mode-rst.js +3 -3
  131. data/vendor/assets/javascripts/ace/mode-ruby.js +3 -360
  132. data/vendor/assets/javascripts/ace/mode-rust.js +5 -4
  133. data/vendor/assets/javascripts/ace/mode-sass.js +1 -0
  134. data/vendor/assets/javascripts/ace/mode-scad.js +1 -359
  135. data/vendor/assets/javascripts/ace/mode-scala.js +9 -369
  136. data/vendor/assets/javascripts/ace/mode-scheme.js +1 -0
  137. data/vendor/assets/javascripts/ace/mode-scss.js +0 -357
  138. data/vendor/assets/javascripts/ace/mode-sh.js +3 -360
  139. data/vendor/assets/javascripts/ace/mode-sjs.js +7 -365
  140. data/vendor/assets/javascripts/ace/mode-smarty.js +15 -369
  141. data/vendor/assets/javascripts/ace/mode-snippets.js +1 -0
  142. data/vendor/assets/javascripts/ace/mode-soy_template.js +15 -369
  143. data/vendor/assets/javascripts/ace/mode-space.js +1 -0
  144. data/vendor/assets/javascripts/ace/mode-sql.js +2 -2
  145. data/vendor/assets/javascripts/ace/mode-sqlserver.js +2 -2
  146. data/vendor/assets/javascripts/ace/mode-stylus.js +1 -0
  147. data/vendor/assets/javascripts/ace/mode-svg.js +12 -366
  148. data/vendor/assets/javascripts/ace/mode-swift.js +2 -358
  149. data/vendor/assets/javascripts/ace/mode-swig.js +0 -0
  150. data/vendor/assets/javascripts/ace/mode-tcl.js +2 -1
  151. data/vendor/assets/javascripts/ace/mode-tex.js +3 -2
  152. data/vendor/assets/javascripts/ace/mode-text.js +0 -0
  153. data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
  154. data/vendor/assets/javascripts/ace/mode-toml.js +1 -0
  155. data/vendor/assets/javascripts/ace/mode-tsx.js +884 -0
  156. data/vendor/assets/javascripts/ace/mode-twig.js +16 -370
  157. data/vendor/assets/javascripts/ace/mode-typescript.js +8 -366
  158. data/vendor/assets/javascripts/ace/mode-vala.js +1 -358
  159. data/vendor/assets/javascripts/ace/mode-vbscript.js +44 -71
  160. data/vendor/assets/javascripts/ace/mode-velocity.js +15 -369
  161. data/vendor/assets/javascripts/ace/mode-verilog.js +2 -1
  162. data/vendor/assets/javascripts/ace/mode-vhdl.js +2 -2
  163. data/vendor/assets/javascripts/ace/mode-wollok.js +7 -365
  164. data/vendor/assets/javascripts/ace/mode-xml.js +5 -1
  165. data/vendor/assets/javascripts/ace/mode-xquery.js +32 -369
  166. data/vendor/assets/javascripts/ace/mode-yaml.js +4 -3
  167. data/vendor/assets/javascripts/ace/snippets/abap.js +0 -0
  168. data/vendor/assets/javascripts/ace/snippets/abc.js +0 -0
  169. data/vendor/assets/javascripts/ace/snippets/actionscript.js +0 -0
  170. data/vendor/assets/javascripts/ace/snippets/ada.js +0 -0
  171. data/vendor/assets/javascripts/ace/snippets/apache_conf.js +0 -0
  172. data/vendor/assets/javascripts/ace/snippets/applescript.js +0 -0
  173. data/vendor/assets/javascripts/ace/snippets/asciidoc.js +0 -0
  174. data/vendor/assets/javascripts/ace/snippets/assembly_x86.js +0 -0
  175. data/vendor/assets/javascripts/ace/snippets/autohotkey.js +0 -0
  176. data/vendor/assets/javascripts/ace/snippets/batchfile.js +0 -0
  177. data/vendor/assets/javascripts/ace/snippets/bro.js +7 -0
  178. data/vendor/assets/javascripts/ace/snippets/c9search.js +0 -0
  179. data/vendor/assets/javascripts/ace/snippets/c_cpp.js +0 -0
  180. data/vendor/assets/javascripts/ace/snippets/cirru.js +0 -0
  181. data/vendor/assets/javascripts/ace/snippets/clojure.js +0 -0
  182. data/vendor/assets/javascripts/ace/snippets/cobol.js +0 -0
  183. data/vendor/assets/javascripts/ace/snippets/coffee.js +0 -0
  184. data/vendor/assets/javascripts/ace/snippets/coldfusion.js +0 -0
  185. data/vendor/assets/javascripts/ace/snippets/csharp.js +0 -0
  186. data/vendor/assets/javascripts/ace/snippets/css.js +0 -0
  187. data/vendor/assets/javascripts/ace/snippets/curly.js +0 -0
  188. data/vendor/assets/javascripts/ace/snippets/d.js +0 -0
  189. data/vendor/assets/javascripts/ace/snippets/dart.js +0 -0
  190. data/vendor/assets/javascripts/ace/snippets/diff.js +0 -0
  191. data/vendor/assets/javascripts/ace/snippets/django.js +0 -0
  192. data/vendor/assets/javascripts/ace/snippets/dockerfile.js +0 -0
  193. data/vendor/assets/javascripts/ace/snippets/dot.js +0 -0
  194. data/vendor/assets/javascripts/ace/snippets/drools.js +26 -0
  195. data/vendor/assets/javascripts/ace/snippets/eiffel.js +0 -0
  196. data/vendor/assets/javascripts/ace/snippets/ejs.js +0 -0
  197. data/vendor/assets/javascripts/ace/snippets/elixir.js +0 -0
  198. data/vendor/assets/javascripts/ace/snippets/elm.js +0 -0
  199. data/vendor/assets/javascripts/ace/snippets/erlang.js +0 -0
  200. data/vendor/assets/javascripts/ace/snippets/forth.js +0 -0
  201. data/vendor/assets/javascripts/ace/snippets/fortran.js +7 -0
  202. data/vendor/assets/javascripts/ace/snippets/ftl.js +0 -0
  203. data/vendor/assets/javascripts/ace/snippets/gcode.js +0 -0
  204. data/vendor/assets/javascripts/ace/snippets/gherkin.js +0 -0
  205. data/vendor/assets/javascripts/ace/snippets/gitignore.js +0 -0
  206. data/vendor/assets/javascripts/ace/snippets/glsl.js +0 -0
  207. data/vendor/assets/javascripts/ace/snippets/gobstones.js +41 -0
  208. data/vendor/assets/javascripts/ace/snippets/golang.js +0 -0
  209. data/vendor/assets/javascripts/ace/snippets/groovy.js +0 -0
  210. data/vendor/assets/javascripts/ace/snippets/haml.js +0 -0
  211. data/vendor/assets/javascripts/ace/snippets/handlebars.js +0 -0
  212. data/vendor/assets/javascripts/ace/snippets/haskell.js +0 -0
  213. data/vendor/assets/javascripts/ace/snippets/haskell_cabal.js +7 -0
  214. data/vendor/assets/javascripts/ace/snippets/haxe.js +0 -0
  215. data/vendor/assets/javascripts/ace/snippets/hjson.js +7 -0
  216. data/vendor/assets/javascripts/ace/snippets/html.js +0 -0
  217. data/vendor/assets/javascripts/ace/snippets/html_elixir.js +0 -0
  218. data/vendor/assets/javascripts/ace/snippets/html_ruby.js +0 -0
  219. data/vendor/assets/javascripts/ace/snippets/ini.js +0 -0
  220. data/vendor/assets/javascripts/ace/snippets/io.js +0 -0
  221. data/vendor/assets/javascripts/ace/snippets/jack.js +0 -0
  222. data/vendor/assets/javascripts/ace/snippets/jade.js +0 -0
  223. data/vendor/assets/javascripts/ace/snippets/java.js +0 -0
  224. data/vendor/assets/javascripts/ace/snippets/javascript.js +0 -0
  225. data/vendor/assets/javascripts/ace/snippets/json.js +0 -0
  226. data/vendor/assets/javascripts/ace/snippets/jsoniq.js +0 -0
  227. data/vendor/assets/javascripts/ace/snippets/jsp.js +0 -0
  228. data/vendor/assets/javascripts/ace/snippets/jsx.js +0 -0
  229. data/vendor/assets/javascripts/ace/snippets/julia.js +0 -0
  230. data/vendor/assets/javascripts/ace/snippets/kotlin.js +7 -0
  231. data/vendor/assets/javascripts/ace/snippets/latex.js +0 -0
  232. data/vendor/assets/javascripts/ace/snippets/lean.js +0 -0
  233. data/vendor/assets/javascripts/ace/snippets/less.js +0 -0
  234. data/vendor/assets/javascripts/ace/snippets/liquid.js +0 -0
  235. data/vendor/assets/javascripts/ace/snippets/lisp.js +0 -0
  236. data/vendor/assets/javascripts/ace/snippets/live_script.js +0 -0
  237. data/vendor/assets/javascripts/ace/snippets/livescript.js +0 -0
  238. data/vendor/assets/javascripts/ace/snippets/logiql.js +0 -0
  239. data/vendor/assets/javascripts/ace/snippets/lsl.js +0 -0
  240. data/vendor/assets/javascripts/ace/snippets/lua.js +0 -0
  241. data/vendor/assets/javascripts/ace/snippets/luapage.js +0 -0
  242. data/vendor/assets/javascripts/ace/snippets/lucene.js +0 -0
  243. data/vendor/assets/javascripts/ace/snippets/makefile.js +0 -0
  244. data/vendor/assets/javascripts/ace/snippets/markdown.js +0 -0
  245. data/vendor/assets/javascripts/ace/snippets/mask.js +0 -0
  246. data/vendor/assets/javascripts/ace/snippets/matlab.js +0 -0
  247. data/vendor/assets/javascripts/ace/snippets/maze.js +0 -0
  248. data/vendor/assets/javascripts/ace/snippets/mel.js +0 -0
  249. data/vendor/assets/javascripts/ace/snippets/mips_assembler.js +0 -0
  250. data/vendor/assets/javascripts/ace/snippets/mipsassembler.js +0 -0
  251. data/vendor/assets/javascripts/ace/snippets/mushcode.js +0 -0
  252. data/vendor/assets/javascripts/ace/snippets/mysql.js +0 -0
  253. data/vendor/assets/javascripts/ace/snippets/nix.js +0 -0
  254. data/vendor/assets/javascripts/ace/snippets/nsis.js +7 -0
  255. data/vendor/assets/javascripts/ace/snippets/objectivec.js +0 -0
  256. data/vendor/assets/javascripts/ace/snippets/ocaml.js +0 -0
  257. data/vendor/assets/javascripts/ace/snippets/pascal.js +0 -0
  258. data/vendor/assets/javascripts/ace/snippets/perl.js +0 -0
  259. data/vendor/assets/javascripts/ace/snippets/pgsql.js +0 -0
  260. data/vendor/assets/javascripts/ace/snippets/php.js +0 -0
  261. data/vendor/assets/javascripts/ace/snippets/plain_text.js +0 -0
  262. data/vendor/assets/javascripts/ace/snippets/powershell.js +0 -0
  263. data/vendor/assets/javascripts/ace/snippets/praat.js +0 -0
  264. data/vendor/assets/javascripts/ace/snippets/prolog.js +0 -0
  265. data/vendor/assets/javascripts/ace/snippets/properties.js +0 -0
  266. data/vendor/assets/javascripts/ace/snippets/protobuf.js +0 -0
  267. data/vendor/assets/javascripts/ace/snippets/python.js +0 -0
  268. data/vendor/assets/javascripts/ace/snippets/r.js +0 -0
  269. data/vendor/assets/javascripts/ace/snippets/razor.js +10 -0
  270. data/vendor/assets/javascripts/ace/snippets/rdoc.js +0 -0
  271. data/vendor/assets/javascripts/ace/snippets/rhtml.js +0 -0
  272. data/vendor/assets/javascripts/ace/snippets/rst.js +29 -0
  273. data/vendor/assets/javascripts/ace/snippets/ruby.js +0 -0
  274. data/vendor/assets/javascripts/ace/snippets/rust.js +0 -0
  275. data/vendor/assets/javascripts/ace/snippets/sass.js +0 -0
  276. data/vendor/assets/javascripts/ace/snippets/scad.js +0 -0
  277. data/vendor/assets/javascripts/ace/snippets/scala.js +0 -0
  278. data/vendor/assets/javascripts/ace/snippets/scheme.js +0 -0
  279. data/vendor/assets/javascripts/ace/snippets/scss.js +0 -0
  280. data/vendor/assets/javascripts/ace/snippets/sh.js +0 -0
  281. data/vendor/assets/javascripts/ace/snippets/sjs.js +0 -0
  282. data/vendor/assets/javascripts/ace/snippets/smarty.js +0 -0
  283. data/vendor/assets/javascripts/ace/snippets/snippets.js +0 -0
  284. data/vendor/assets/javascripts/ace/snippets/soy_template.js +0 -0
  285. data/vendor/assets/javascripts/ace/snippets/space.js +0 -0
  286. data/vendor/assets/javascripts/ace/snippets/sql.js +0 -0
  287. data/vendor/assets/javascripts/ace/snippets/sqlserver.js +0 -0
  288. data/vendor/assets/javascripts/ace/snippets/stylus.js +0 -0
  289. data/vendor/assets/javascripts/ace/snippets/svg.js +0 -0
  290. data/vendor/assets/javascripts/ace/snippets/swift.js +0 -0
  291. data/vendor/assets/javascripts/ace/snippets/swig.js +0 -0
  292. data/vendor/assets/javascripts/ace/snippets/tcl.js +0 -0
  293. data/vendor/assets/javascripts/ace/snippets/tex.js +0 -0
  294. data/vendor/assets/javascripts/ace/snippets/text.js +0 -0
  295. data/vendor/assets/javascripts/ace/snippets/textile.js +0 -0
  296. data/vendor/assets/javascripts/ace/snippets/toml.js +0 -0
  297. data/vendor/assets/javascripts/ace/snippets/tsx.js +7 -0
  298. data/vendor/assets/javascripts/ace/snippets/twig.js +0 -0
  299. data/vendor/assets/javascripts/ace/snippets/typescript.js +0 -0
  300. data/vendor/assets/javascripts/ace/snippets/vala.js +0 -0
  301. data/vendor/assets/javascripts/ace/snippets/vbscript.js +0 -0
  302. data/vendor/assets/javascripts/ace/snippets/velocity.js +0 -0
  303. data/vendor/assets/javascripts/ace/snippets/verilog.js +0 -0
  304. data/vendor/assets/javascripts/ace/snippets/vhdl.js +0 -0
  305. data/vendor/assets/javascripts/ace/snippets/wollok.js +91 -0
  306. data/vendor/assets/javascripts/ace/snippets/xml.js +0 -0
  307. data/vendor/assets/javascripts/ace/snippets/xquery.js +0 -0
  308. data/vendor/assets/javascripts/ace/snippets/yaml.js +0 -0
  309. data/vendor/assets/javascripts/ace/theme-ambiance.js +0 -0
  310. data/vendor/assets/javascripts/ace/theme-chaos.js +0 -0
  311. data/vendor/assets/javascripts/ace/theme-chrome.js +0 -0
  312. data/vendor/assets/javascripts/ace/theme-clouds.js +0 -0
  313. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +0 -0
  314. data/vendor/assets/javascripts/ace/theme-cobalt.js +0 -0
  315. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +0 -0
  316. data/vendor/assets/javascripts/ace/theme-dawn.js +0 -0
  317. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +0 -0
  318. data/vendor/assets/javascripts/ace/theme-eclipse.js +0 -0
  319. data/vendor/assets/javascripts/ace/theme-github.js +0 -0
  320. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +0 -0
  321. data/vendor/assets/javascripts/ace/theme-iplastic.js +0 -0
  322. data/vendor/assets/javascripts/ace/theme-katzenmilch.js +0 -0
  323. data/vendor/assets/javascripts/ace/theme-kr_theme.js +0 -0
  324. data/vendor/assets/javascripts/ace/theme-kuroir.js +0 -0
  325. data/vendor/assets/javascripts/ace/theme-merbivore.js +0 -0
  326. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +0 -0
  327. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +0 -0
  328. data/vendor/assets/javascripts/ace/theme-monokai.js +0 -0
  329. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +0 -0
  330. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +0 -0
  331. data/vendor/assets/javascripts/ace/theme-solarized_light.js +0 -0
  332. data/vendor/assets/javascripts/ace/theme-sqlserver.js +0 -0
  333. data/vendor/assets/javascripts/ace/theme-terminal.js +0 -0
  334. data/vendor/assets/javascripts/ace/theme-textmate.js +0 -0
  335. data/vendor/assets/javascripts/ace/theme-tomorrow.js +0 -0
  336. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +0 -0
  337. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +0 -0
  338. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +0 -0
  339. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +0 -0
  340. data/vendor/assets/javascripts/ace/theme-twilight.js +0 -0
  341. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +0 -0
  342. data/vendor/assets/javascripts/ace/theme-xcode.js +0 -0
  343. data/vendor/assets/javascripts/ace/worker-coffee.js +5 -7
  344. data/vendor/assets/javascripts/ace/worker-css.js +20 -22
  345. data/vendor/assets/javascripts/ace/worker-html.js +5 -7
  346. data/vendor/assets/javascripts/ace/worker-javascript.js +6 -8
  347. data/vendor/assets/javascripts/ace/worker-json.js +5 -7
  348. data/vendor/assets/javascripts/ace/worker-lua.js +5 -7
  349. data/vendor/assets/javascripts/ace/worker-php.js +1399 -4118
  350. data/vendor/assets/javascripts/ace/worker-xml.js +5 -7
  351. data/vendor/assets/javascripts/ace/worker-xquery.js +17575 -8836
  352. metadata +21 -2
@@ -271,6 +271,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
271
271
  var Mode = function() {
272
272
  this.HighlightRules = MazeHighlightRules;
273
273
  this.foldingRules = new FoldMode();
274
+ this.$behaviour = this.$defaultBehaviour;
274
275
  };
275
276
  oop.inherits(Mode, TextMode);
276
277
 
@@ -88,363 +88,6 @@ oop.inherits(MELHighlightRules, TextHighlightRules);
88
88
  exports.MELHighlightRules = MELHighlightRules;
89
89
  });
90
90
 
91
- define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
92
- "use strict";
93
-
94
- var oop = require("../../lib/oop");
95
- var Behaviour = require("../behaviour").Behaviour;
96
- var TokenIterator = require("../../token_iterator").TokenIterator;
97
- var lang = require("../../lib/lang");
98
-
99
- var SAFE_INSERT_IN_TOKENS =
100
- ["text", "paren.rparen", "punctuation.operator"];
101
- var SAFE_INSERT_BEFORE_TOKENS =
102
- ["text", "paren.rparen", "punctuation.operator", "comment"];
103
-
104
- var context;
105
- var contextCache = {};
106
- var initContext = function(editor) {
107
- var id = -1;
108
- if (editor.multiSelect) {
109
- id = editor.selection.index;
110
- if (contextCache.rangeCount != editor.multiSelect.rangeCount)
111
- contextCache = {rangeCount: editor.multiSelect.rangeCount};
112
- }
113
- if (contextCache[id])
114
- return context = contextCache[id];
115
- context = contextCache[id] = {
116
- autoInsertedBrackets: 0,
117
- autoInsertedRow: -1,
118
- autoInsertedLineEnd: "",
119
- maybeInsertedBrackets: 0,
120
- maybeInsertedRow: -1,
121
- maybeInsertedLineStart: "",
122
- maybeInsertedLineEnd: ""
123
- };
124
- };
125
-
126
- var getWrapped = function(selection, selected, opening, closing) {
127
- var rowDiff = selection.end.row - selection.start.row;
128
- return {
129
- text: opening + selected + closing,
130
- selection: [
131
- 0,
132
- selection.start.column + 1,
133
- rowDiff,
134
- selection.end.column + (rowDiff ? 0 : 1)
135
- ]
136
- };
137
- };
138
-
139
- var CstyleBehaviour = function() {
140
- this.add("braces", "insertion", function(state, action, editor, session, text) {
141
- var cursor = editor.getCursorPosition();
142
- var line = session.doc.getLine(cursor.row);
143
- if (text == '{') {
144
- initContext(editor);
145
- var selection = editor.getSelectionRange();
146
- var selected = session.doc.getTextRange(selection);
147
- if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
148
- return getWrapped(selection, selected, '{', '}');
149
- } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
150
- if (/[\]\}\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {
151
- CstyleBehaviour.recordAutoInsert(editor, session, "}");
152
- return {
153
- text: '{}',
154
- selection: [1, 1]
155
- };
156
- } else {
157
- CstyleBehaviour.recordMaybeInsert(editor, session, "{");
158
- return {
159
- text: '{',
160
- selection: [1, 1]
161
- };
162
- }
163
- }
164
- } else if (text == '}') {
165
- initContext(editor);
166
- var rightChar = line.substring(cursor.column, cursor.column + 1);
167
- if (rightChar == '}') {
168
- var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
169
- if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
170
- CstyleBehaviour.popAutoInsertedClosing();
171
- return {
172
- text: '',
173
- selection: [1, 1]
174
- };
175
- }
176
- }
177
- } else if (text == "\n" || text == "\r\n") {
178
- initContext(editor);
179
- var closing = "";
180
- if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
181
- closing = lang.stringRepeat("}", context.maybeInsertedBrackets);
182
- CstyleBehaviour.clearMaybeInsertedClosing();
183
- }
184
- var rightChar = line.substring(cursor.column, cursor.column + 1);
185
- if (rightChar === '}') {
186
- var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');
187
- if (!openBracePos)
188
- return null;
189
- var next_indent = this.$getIndent(session.getLine(openBracePos.row));
190
- } else if (closing) {
191
- var next_indent = this.$getIndent(line);
192
- } else {
193
- CstyleBehaviour.clearMaybeInsertedClosing();
194
- return;
195
- }
196
- var indent = next_indent + session.getTabString();
197
-
198
- return {
199
- text: '\n' + indent + '\n' + next_indent + closing,
200
- selection: [1, indent.length, 1, indent.length]
201
- };
202
- } else {
203
- CstyleBehaviour.clearMaybeInsertedClosing();
204
- }
205
- });
206
-
207
- this.add("braces", "deletion", function(state, action, editor, session, range) {
208
- var selected = session.doc.getTextRange(range);
209
- if (!range.isMultiLine() && selected == '{') {
210
- initContext(editor);
211
- var line = session.doc.getLine(range.start.row);
212
- var rightChar = line.substring(range.end.column, range.end.column + 1);
213
- if (rightChar == '}') {
214
- range.end.column++;
215
- return range;
216
- } else {
217
- context.maybeInsertedBrackets--;
218
- }
219
- }
220
- });
221
-
222
- this.add("parens", "insertion", function(state, action, editor, session, text) {
223
- if (text == '(') {
224
- initContext(editor);
225
- var selection = editor.getSelectionRange();
226
- var selected = session.doc.getTextRange(selection);
227
- if (selected !== "" && editor.getWrapBehavioursEnabled()) {
228
- return getWrapped(selection, selected, '(', ')');
229
- } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
230
- CstyleBehaviour.recordAutoInsert(editor, session, ")");
231
- return {
232
- text: '()',
233
- selection: [1, 1]
234
- };
235
- }
236
- } else if (text == ')') {
237
- initContext(editor);
238
- var cursor = editor.getCursorPosition();
239
- var line = session.doc.getLine(cursor.row);
240
- var rightChar = line.substring(cursor.column, cursor.column + 1);
241
- if (rightChar == ')') {
242
- var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});
243
- if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
244
- CstyleBehaviour.popAutoInsertedClosing();
245
- return {
246
- text: '',
247
- selection: [1, 1]
248
- };
249
- }
250
- }
251
- }
252
- });
253
-
254
- this.add("parens", "deletion", function(state, action, editor, session, range) {
255
- var selected = session.doc.getTextRange(range);
256
- if (!range.isMultiLine() && selected == '(') {
257
- initContext(editor);
258
- var line = session.doc.getLine(range.start.row);
259
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
260
- if (rightChar == ')') {
261
- range.end.column++;
262
- return range;
263
- }
264
- }
265
- });
266
-
267
- this.add("brackets", "insertion", function(state, action, editor, session, text) {
268
- if (text == '[') {
269
- initContext(editor);
270
- var selection = editor.getSelectionRange();
271
- var selected = session.doc.getTextRange(selection);
272
- if (selected !== "" && editor.getWrapBehavioursEnabled()) {
273
- return getWrapped(selection, selected, '[', ']');
274
- } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
275
- CstyleBehaviour.recordAutoInsert(editor, session, "]");
276
- return {
277
- text: '[]',
278
- selection: [1, 1]
279
- };
280
- }
281
- } else if (text == ']') {
282
- initContext(editor);
283
- var cursor = editor.getCursorPosition();
284
- var line = session.doc.getLine(cursor.row);
285
- var rightChar = line.substring(cursor.column, cursor.column + 1);
286
- if (rightChar == ']') {
287
- var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});
288
- if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
289
- CstyleBehaviour.popAutoInsertedClosing();
290
- return {
291
- text: '',
292
- selection: [1, 1]
293
- };
294
- }
295
- }
296
- }
297
- });
298
-
299
- this.add("brackets", "deletion", function(state, action, editor, session, range) {
300
- var selected = session.doc.getTextRange(range);
301
- if (!range.isMultiLine() && selected == '[') {
302
- initContext(editor);
303
- var line = session.doc.getLine(range.start.row);
304
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
305
- if (rightChar == ']') {
306
- range.end.column++;
307
- return range;
308
- }
309
- }
310
- });
311
-
312
- this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
313
- if (text == '"' || text == "'") {
314
- initContext(editor);
315
- var quote = text;
316
- var selection = editor.getSelectionRange();
317
- var selected = session.doc.getTextRange(selection);
318
- if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
319
- return getWrapped(selection, selected, quote, quote);
320
- } else if (!selected) {
321
- var cursor = editor.getCursorPosition();
322
- var line = session.doc.getLine(cursor.row);
323
- var leftChar = line.substring(cursor.column-1, cursor.column);
324
- var rightChar = line.substring(cursor.column, cursor.column + 1);
325
-
326
- var token = session.getTokenAt(cursor.row, cursor.column);
327
- var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);
328
- if (leftChar == "\\" && token && /escape/.test(token.type))
329
- return null;
330
-
331
- var stringBefore = token && /string|escape/.test(token.type);
332
- var stringAfter = !rightToken || /string|escape/.test(rightToken.type);
333
-
334
- var pair;
335
- if (rightChar == quote) {
336
- pair = stringBefore !== stringAfter;
337
- } else {
338
- if (stringBefore && !stringAfter)
339
- return null; // wrap string with different quote
340
- if (stringBefore && stringAfter)
341
- return null; // do not pair quotes inside strings
342
- var wordRe = session.$mode.tokenRe;
343
- wordRe.lastIndex = 0;
344
- var isWordBefore = wordRe.test(leftChar);
345
- wordRe.lastIndex = 0;
346
- var isWordAfter = wordRe.test(leftChar);
347
- if (isWordBefore || isWordAfter)
348
- return null; // before or after alphanumeric
349
- if (rightChar && !/[\s;,.})\]\\]/.test(rightChar))
350
- return null; // there is rightChar and it isn't closing
351
- pair = true;
352
- }
353
- return {
354
- text: pair ? quote + quote : "",
355
- selection: [1,1]
356
- };
357
- }
358
- }
359
- });
360
-
361
- this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
362
- var selected = session.doc.getTextRange(range);
363
- if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
364
- initContext(editor);
365
- var line = session.doc.getLine(range.start.row);
366
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
367
- if (rightChar == selected) {
368
- range.end.column++;
369
- return range;
370
- }
371
- }
372
- });
373
-
374
- };
375
-
376
-
377
- CstyleBehaviour.isSaneInsertion = function(editor, session) {
378
- var cursor = editor.getCursorPosition();
379
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
380
- if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
381
- var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
382
- if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
383
- return false;
384
- }
385
- iterator.stepForward();
386
- return iterator.getCurrentTokenRow() !== cursor.row ||
387
- this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
388
- };
389
-
390
- CstyleBehaviour.$matchTokenType = function(token, types) {
391
- return types.indexOf(token.type || token) > -1;
392
- };
393
-
394
- CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
395
- var cursor = editor.getCursorPosition();
396
- var line = session.doc.getLine(cursor.row);
397
- if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))
398
- context.autoInsertedBrackets = 0;
399
- context.autoInsertedRow = cursor.row;
400
- context.autoInsertedLineEnd = bracket + line.substr(cursor.column);
401
- context.autoInsertedBrackets++;
402
- };
403
-
404
- CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
405
- var cursor = editor.getCursorPosition();
406
- var line = session.doc.getLine(cursor.row);
407
- if (!this.isMaybeInsertedClosing(cursor, line))
408
- context.maybeInsertedBrackets = 0;
409
- context.maybeInsertedRow = cursor.row;
410
- context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
411
- context.maybeInsertedLineEnd = line.substr(cursor.column);
412
- context.maybeInsertedBrackets++;
413
- };
414
-
415
- CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
416
- return context.autoInsertedBrackets > 0 &&
417
- cursor.row === context.autoInsertedRow &&
418
- bracket === context.autoInsertedLineEnd[0] &&
419
- line.substr(cursor.column) === context.autoInsertedLineEnd;
420
- };
421
-
422
- CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
423
- return context.maybeInsertedBrackets > 0 &&
424
- cursor.row === context.maybeInsertedRow &&
425
- line.substr(cursor.column) === context.maybeInsertedLineEnd &&
426
- line.substr(0, cursor.column) == context.maybeInsertedLineStart;
427
- };
428
-
429
- CstyleBehaviour.popAutoInsertedClosing = function() {
430
- context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);
431
- context.autoInsertedBrackets--;
432
- };
433
-
434
- CstyleBehaviour.clearMaybeInsertedClosing = function() {
435
- if (context) {
436
- context.maybeInsertedBrackets = 0;
437
- context.maybeInsertedRow = -1;
438
- }
439
- };
440
-
441
-
442
-
443
- oop.inherits(CstyleBehaviour, Behaviour);
444
-
445
- exports.CstyleBehaviour = CstyleBehaviour;
446
- });
447
-
448
91
  define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
449
92
  "use strict";
450
93
 
@@ -605,6 +605,7 @@ var Range = require("../range").Range;
605
605
  var Mode = function() {
606
606
  this.HighlightRules = MushCodeRules;
607
607
  this.foldingRules = new PythonFoldMode("\\:");
608
+ this.$behaviour = this.$defaultBehaviour;
608
609
  };
609
610
  oop.inherits(Mode, TextMode);
610
611
 
@@ -622,7 +623,7 @@ oop.inherits(Mode, TextMode);
622
623
  }
623
624
 
624
625
  if (state == "start") {
625
- var match = line.match(/^.*[\{\(\[\:]\s*$/);
626
+ var match = line.match(/^.*[\{\(\[:]\s*$/);
626
627
  if (match) {
627
628
  indent += tab;
628
629
  }
@@ -137,15 +137,15 @@ oop.inherits(MysqlHighlightRules, TextHighlightRules);
137
137
  exports.MysqlHighlightRules = MysqlHighlightRules;
138
138
  });
139
139
 
140
- define("ace/mode/mysql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules","ace/range"], function(require, exports, module) {
140
+ define("ace/mode/mysql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules"], function(require, exports, module) {
141
141
 
142
142
  var oop = require("../lib/oop");
143
143
  var TextMode = require("../mode/text").Mode;
144
144
  var MysqlHighlightRules = require("./mysql_highlight_rules").MysqlHighlightRules;
145
- var Range = require("../range").Range;
146
145
 
147
146
  var Mode = function() {
148
147
  this.HighlightRules = MysqlHighlightRules;
148
+ this.$behaviour = this.$defaultBehaviour;
149
149
  };
150
150
  oop.inherits(Mode, TextMode);
151
151
 
@@ -93,7 +93,7 @@ var c_cppHighlightRules = function() {
93
93
  "constant.language": builtinConstants
94
94
  }, "identifier");
95
95
 
96
- var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\d\\$_\u00a1-\uffff]*\\b";
96
+ var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b";
97
97
  var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source;
98
98
 
99
99
  this.$rules = {
@@ -114,7 +114,7 @@ var c_cppHighlightRules = function() {
114
114
  next : "comment"
115
115
  }, {
116
116
  token : "string", // character
117
- regex : "'(?:" + escapeRe + "|.)'"
117
+ regex : "'(?:" + escapeRe + "|.)?'"
118
118
  }, {
119
119
  token : "string.start",
120
120
  regex : '"',
@@ -152,10 +152,10 @@ var c_cppHighlightRules = function() {
152
152
  regex : cFunctions
153
153
  }, {
154
154
  token : keywordMapper,
155
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
155
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*"
156
156
  }, {
157
157
  token : "keyword.operator",
158
- regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"
158
+ regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/
159
159
  }, {
160
160
  token : "punctuation.operator",
161
161
  regex : "\\?|\\:|\\,|\\;|\\."
@@ -275,363 +275,6 @@ var MatchingBraceOutdent = function() {};
275
275
  exports.MatchingBraceOutdent = MatchingBraceOutdent;
276
276
  });
277
277
 
278
- define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
279
- "use strict";
280
-
281
- var oop = require("../../lib/oop");
282
- var Behaviour = require("../behaviour").Behaviour;
283
- var TokenIterator = require("../../token_iterator").TokenIterator;
284
- var lang = require("../../lib/lang");
285
-
286
- var SAFE_INSERT_IN_TOKENS =
287
- ["text", "paren.rparen", "punctuation.operator"];
288
- var SAFE_INSERT_BEFORE_TOKENS =
289
- ["text", "paren.rparen", "punctuation.operator", "comment"];
290
-
291
- var context;
292
- var contextCache = {};
293
- var initContext = function(editor) {
294
- var id = -1;
295
- if (editor.multiSelect) {
296
- id = editor.selection.index;
297
- if (contextCache.rangeCount != editor.multiSelect.rangeCount)
298
- contextCache = {rangeCount: editor.multiSelect.rangeCount};
299
- }
300
- if (contextCache[id])
301
- return context = contextCache[id];
302
- context = contextCache[id] = {
303
- autoInsertedBrackets: 0,
304
- autoInsertedRow: -1,
305
- autoInsertedLineEnd: "",
306
- maybeInsertedBrackets: 0,
307
- maybeInsertedRow: -1,
308
- maybeInsertedLineStart: "",
309
- maybeInsertedLineEnd: ""
310
- };
311
- };
312
-
313
- var getWrapped = function(selection, selected, opening, closing) {
314
- var rowDiff = selection.end.row - selection.start.row;
315
- return {
316
- text: opening + selected + closing,
317
- selection: [
318
- 0,
319
- selection.start.column + 1,
320
- rowDiff,
321
- selection.end.column + (rowDiff ? 0 : 1)
322
- ]
323
- };
324
- };
325
-
326
- var CstyleBehaviour = function() {
327
- this.add("braces", "insertion", function(state, action, editor, session, text) {
328
- var cursor = editor.getCursorPosition();
329
- var line = session.doc.getLine(cursor.row);
330
- if (text == '{') {
331
- initContext(editor);
332
- var selection = editor.getSelectionRange();
333
- var selected = session.doc.getTextRange(selection);
334
- if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
335
- return getWrapped(selection, selected, '{', '}');
336
- } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
337
- if (/[\]\}\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {
338
- CstyleBehaviour.recordAutoInsert(editor, session, "}");
339
- return {
340
- text: '{}',
341
- selection: [1, 1]
342
- };
343
- } else {
344
- CstyleBehaviour.recordMaybeInsert(editor, session, "{");
345
- return {
346
- text: '{',
347
- selection: [1, 1]
348
- };
349
- }
350
- }
351
- } else if (text == '}') {
352
- initContext(editor);
353
- var rightChar = line.substring(cursor.column, cursor.column + 1);
354
- if (rightChar == '}') {
355
- var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
356
- if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
357
- CstyleBehaviour.popAutoInsertedClosing();
358
- return {
359
- text: '',
360
- selection: [1, 1]
361
- };
362
- }
363
- }
364
- } else if (text == "\n" || text == "\r\n") {
365
- initContext(editor);
366
- var closing = "";
367
- if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
368
- closing = lang.stringRepeat("}", context.maybeInsertedBrackets);
369
- CstyleBehaviour.clearMaybeInsertedClosing();
370
- }
371
- var rightChar = line.substring(cursor.column, cursor.column + 1);
372
- if (rightChar === '}') {
373
- var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');
374
- if (!openBracePos)
375
- return null;
376
- var next_indent = this.$getIndent(session.getLine(openBracePos.row));
377
- } else if (closing) {
378
- var next_indent = this.$getIndent(line);
379
- } else {
380
- CstyleBehaviour.clearMaybeInsertedClosing();
381
- return;
382
- }
383
- var indent = next_indent + session.getTabString();
384
-
385
- return {
386
- text: '\n' + indent + '\n' + next_indent + closing,
387
- selection: [1, indent.length, 1, indent.length]
388
- };
389
- } else {
390
- CstyleBehaviour.clearMaybeInsertedClosing();
391
- }
392
- });
393
-
394
- this.add("braces", "deletion", function(state, action, editor, session, range) {
395
- var selected = session.doc.getTextRange(range);
396
- if (!range.isMultiLine() && selected == '{') {
397
- initContext(editor);
398
- var line = session.doc.getLine(range.start.row);
399
- var rightChar = line.substring(range.end.column, range.end.column + 1);
400
- if (rightChar == '}') {
401
- range.end.column++;
402
- return range;
403
- } else {
404
- context.maybeInsertedBrackets--;
405
- }
406
- }
407
- });
408
-
409
- this.add("parens", "insertion", function(state, action, editor, session, text) {
410
- if (text == '(') {
411
- initContext(editor);
412
- var selection = editor.getSelectionRange();
413
- var selected = session.doc.getTextRange(selection);
414
- if (selected !== "" && editor.getWrapBehavioursEnabled()) {
415
- return getWrapped(selection, selected, '(', ')');
416
- } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
417
- CstyleBehaviour.recordAutoInsert(editor, session, ")");
418
- return {
419
- text: '()',
420
- selection: [1, 1]
421
- };
422
- }
423
- } else if (text == ')') {
424
- initContext(editor);
425
- var cursor = editor.getCursorPosition();
426
- var line = session.doc.getLine(cursor.row);
427
- var rightChar = line.substring(cursor.column, cursor.column + 1);
428
- if (rightChar == ')') {
429
- var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});
430
- if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
431
- CstyleBehaviour.popAutoInsertedClosing();
432
- return {
433
- text: '',
434
- selection: [1, 1]
435
- };
436
- }
437
- }
438
- }
439
- });
440
-
441
- this.add("parens", "deletion", function(state, action, editor, session, range) {
442
- var selected = session.doc.getTextRange(range);
443
- if (!range.isMultiLine() && selected == '(') {
444
- initContext(editor);
445
- var line = session.doc.getLine(range.start.row);
446
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
447
- if (rightChar == ')') {
448
- range.end.column++;
449
- return range;
450
- }
451
- }
452
- });
453
-
454
- this.add("brackets", "insertion", function(state, action, editor, session, text) {
455
- if (text == '[') {
456
- initContext(editor);
457
- var selection = editor.getSelectionRange();
458
- var selected = session.doc.getTextRange(selection);
459
- if (selected !== "" && editor.getWrapBehavioursEnabled()) {
460
- return getWrapped(selection, selected, '[', ']');
461
- } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
462
- CstyleBehaviour.recordAutoInsert(editor, session, "]");
463
- return {
464
- text: '[]',
465
- selection: [1, 1]
466
- };
467
- }
468
- } else if (text == ']') {
469
- initContext(editor);
470
- var cursor = editor.getCursorPosition();
471
- var line = session.doc.getLine(cursor.row);
472
- var rightChar = line.substring(cursor.column, cursor.column + 1);
473
- if (rightChar == ']') {
474
- var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});
475
- if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
476
- CstyleBehaviour.popAutoInsertedClosing();
477
- return {
478
- text: '',
479
- selection: [1, 1]
480
- };
481
- }
482
- }
483
- }
484
- });
485
-
486
- this.add("brackets", "deletion", function(state, action, editor, session, range) {
487
- var selected = session.doc.getTextRange(range);
488
- if (!range.isMultiLine() && selected == '[') {
489
- initContext(editor);
490
- var line = session.doc.getLine(range.start.row);
491
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
492
- if (rightChar == ']') {
493
- range.end.column++;
494
- return range;
495
- }
496
- }
497
- });
498
-
499
- this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
500
- if (text == '"' || text == "'") {
501
- initContext(editor);
502
- var quote = text;
503
- var selection = editor.getSelectionRange();
504
- var selected = session.doc.getTextRange(selection);
505
- if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
506
- return getWrapped(selection, selected, quote, quote);
507
- } else if (!selected) {
508
- var cursor = editor.getCursorPosition();
509
- var line = session.doc.getLine(cursor.row);
510
- var leftChar = line.substring(cursor.column-1, cursor.column);
511
- var rightChar = line.substring(cursor.column, cursor.column + 1);
512
-
513
- var token = session.getTokenAt(cursor.row, cursor.column);
514
- var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);
515
- if (leftChar == "\\" && token && /escape/.test(token.type))
516
- return null;
517
-
518
- var stringBefore = token && /string|escape/.test(token.type);
519
- var stringAfter = !rightToken || /string|escape/.test(rightToken.type);
520
-
521
- var pair;
522
- if (rightChar == quote) {
523
- pair = stringBefore !== stringAfter;
524
- } else {
525
- if (stringBefore && !stringAfter)
526
- return null; // wrap string with different quote
527
- if (stringBefore && stringAfter)
528
- return null; // do not pair quotes inside strings
529
- var wordRe = session.$mode.tokenRe;
530
- wordRe.lastIndex = 0;
531
- var isWordBefore = wordRe.test(leftChar);
532
- wordRe.lastIndex = 0;
533
- var isWordAfter = wordRe.test(leftChar);
534
- if (isWordBefore || isWordAfter)
535
- return null; // before or after alphanumeric
536
- if (rightChar && !/[\s;,.})\]\\]/.test(rightChar))
537
- return null; // there is rightChar and it isn't closing
538
- pair = true;
539
- }
540
- return {
541
- text: pair ? quote + quote : "",
542
- selection: [1,1]
543
- };
544
- }
545
- }
546
- });
547
-
548
- this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
549
- var selected = session.doc.getTextRange(range);
550
- if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
551
- initContext(editor);
552
- var line = session.doc.getLine(range.start.row);
553
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
554
- if (rightChar == selected) {
555
- range.end.column++;
556
- return range;
557
- }
558
- }
559
- });
560
-
561
- };
562
-
563
-
564
- CstyleBehaviour.isSaneInsertion = function(editor, session) {
565
- var cursor = editor.getCursorPosition();
566
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
567
- if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
568
- var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
569
- if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
570
- return false;
571
- }
572
- iterator.stepForward();
573
- return iterator.getCurrentTokenRow() !== cursor.row ||
574
- this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
575
- };
576
-
577
- CstyleBehaviour.$matchTokenType = function(token, types) {
578
- return types.indexOf(token.type || token) > -1;
579
- };
580
-
581
- CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
582
- var cursor = editor.getCursorPosition();
583
- var line = session.doc.getLine(cursor.row);
584
- if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))
585
- context.autoInsertedBrackets = 0;
586
- context.autoInsertedRow = cursor.row;
587
- context.autoInsertedLineEnd = bracket + line.substr(cursor.column);
588
- context.autoInsertedBrackets++;
589
- };
590
-
591
- CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
592
- var cursor = editor.getCursorPosition();
593
- var line = session.doc.getLine(cursor.row);
594
- if (!this.isMaybeInsertedClosing(cursor, line))
595
- context.maybeInsertedBrackets = 0;
596
- context.maybeInsertedRow = cursor.row;
597
- context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
598
- context.maybeInsertedLineEnd = line.substr(cursor.column);
599
- context.maybeInsertedBrackets++;
600
- };
601
-
602
- CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
603
- return context.autoInsertedBrackets > 0 &&
604
- cursor.row === context.autoInsertedRow &&
605
- bracket === context.autoInsertedLineEnd[0] &&
606
- line.substr(cursor.column) === context.autoInsertedLineEnd;
607
- };
608
-
609
- CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
610
- return context.maybeInsertedBrackets > 0 &&
611
- cursor.row === context.maybeInsertedRow &&
612
- line.substr(cursor.column) === context.maybeInsertedLineEnd &&
613
- line.substr(0, cursor.column) == context.maybeInsertedLineStart;
614
- };
615
-
616
- CstyleBehaviour.popAutoInsertedClosing = function() {
617
- context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);
618
- context.autoInsertedBrackets--;
619
- };
620
-
621
- CstyleBehaviour.clearMaybeInsertedClosing = function() {
622
- if (context) {
623
- context.maybeInsertedBrackets = 0;
624
- context.maybeInsertedRow = -1;
625
- }
626
- };
627
-
628
-
629
-
630
- oop.inherits(CstyleBehaviour, Behaviour);
631
-
632
- exports.CstyleBehaviour = CstyleBehaviour;
633
- });
634
-
635
278
  define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
636
279
  "use strict";
637
280
 
@@ -976,6 +619,7 @@ var Mode = function() {
976
619
  CMode.call(this);
977
620
  this.HighlightRules = NixHighlightRules;
978
621
  this.foldingRules = new CStyleFoldMode();
622
+ this.$behaviour = this.$defaultBehaviour;
979
623
  };
980
624
  oop.inherits(Mode, CMode);
981
625