ace-rails-ap 2.0.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -4
  3. data/lib/ace/rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/ace/ace.js +14194 -13349
  5. data/vendor/assets/javascripts/ace/ext-beautify.js +335 -0
  6. data/vendor/assets/javascripts/ace/ext-chromevox.js +6 -1
  7. data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +8 -33
  8. data/vendor/assets/javascripts/ace/ext-emmet.js +487 -424
  9. data/vendor/assets/javascripts/ace/ext-error_marker.js +6 -0
  10. data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +45 -72
  11. data/vendor/assets/javascripts/ace/ext-language_tools.js +734 -578
  12. data/vendor/assets/javascripts/ace/ext-linking.js +53 -0
  13. data/vendor/assets/javascripts/ace/ext-modelist.js +25 -10
  14. data/vendor/assets/javascripts/ace/ext-old_ie.js +93 -120
  15. data/vendor/assets/javascripts/ace/ext-searchbox.js +8 -41
  16. data/vendor/assets/javascripts/ace/ext-settings_menu.js +229 -234
  17. data/vendor/assets/javascripts/ace/ext-spellcheck.js +7 -3
  18. data/vendor/assets/javascripts/ace/ext-split.js +13 -37
  19. data/vendor/assets/javascripts/ace/ext-static_highlight.js +16 -39
  20. data/vendor/assets/javascripts/ace/ext-statusbar.js +8 -2
  21. data/vendor/assets/javascripts/ace/ext-textarea.js +254 -99
  22. data/vendor/assets/javascripts/ace/ext-themelist.js +13 -40
  23. data/vendor/assets/javascripts/ace/ext-whitespace.js +17 -41
  24. data/vendor/assets/javascripts/ace/keybinding-emacs.js +803 -788
  25. data/vendor/assets/javascripts/ace/keybinding-vim.js +1559 -1560
  26. data/vendor/assets/javascripts/ace/mode-abap.js +52 -83
  27. data/vendor/assets/javascripts/ace/mode-actionscript.js +27 -63
  28. data/vendor/assets/javascripts/ace/mode-ada.js +27 -58
  29. data/vendor/assets/javascripts/ace/mode-apache_conf.js +310 -0
  30. data/vendor/assets/javascripts/ace/mode-applescript.js +226 -0
  31. data/vendor/assets/javascripts/ace/mode-asciidoc.js +39 -70
  32. data/vendor/assets/javascripts/ace/mode-assembly_x86.js +26 -58
  33. data/vendor/assets/javascripts/ace/mode-autohotkey.js +27 -63
  34. data/vendor/assets/javascripts/ace/mode-batchfile.js +27 -63
  35. data/vendor/assets/javascripts/ace/mode-c9search.js +92 -112
  36. data/vendor/assets/javascripts/ace/mode-c_cpp.js +224 -223
  37. data/vendor/assets/javascripts/ace/mode-cirru.js +202 -0
  38. data/vendor/assets/javascripts/ace/mode-clojure.js +98 -92
  39. data/vendor/assets/javascripts/ace/mode-cobol.js +27 -58
  40. data/vendor/assets/javascripts/ace/mode-coffee.js +90 -122
  41. data/vendor/assets/javascripts/ace/mode-coldfusion.js +1908 -1464
  42. data/vendor/assets/javascripts/ace/mode-csharp.js +291 -264
  43. data/vendor/assets/javascripts/ace/mode-css.js +266 -267
  44. data/vendor/assets/javascripts/ace/mode-curly.js +796 -815
  45. data/vendor/assets/javascripts/ace/mode-d.js +64 -95
  46. data/vendor/assets/javascripts/ace/mode-dart.js +254 -256
  47. data/vendor/assets/javascripts/ace/mode-diff.js +27 -58
  48. data/vendor/assets/javascripts/ace/mode-django.js +856 -866
  49. data/vendor/assets/javascripts/ace/mode-dockerfile.js +759 -0
  50. data/vendor/assets/javascripts/ace/mode-dot.js +106 -106
  51. data/vendor/assets/javascripts/ace/mode-eiffel.js +135 -0
  52. data/vendor/assets/javascripts/ace/mode-ejs.js +931 -938
  53. data/vendor/assets/javascripts/ace/mode-erlang.js +27 -58
  54. data/vendor/assets/javascripts/ace/mode-forth.js +27 -63
  55. data/vendor/assets/javascripts/ace/mode-ftl.js +457 -508
  56. data/vendor/assets/javascripts/ace/mode-gcode.js +85 -0
  57. data/vendor/assets/javascripts/ace/mode-gherkin.js +129 -0
  58. data/vendor/assets/javascripts/ace/mode-gitignore.js +50 -0
  59. data/vendor/assets/javascripts/ace/mode-glsl.js +252 -248
  60. data/vendor/assets/javascripts/ace/mode-golang.js +206 -179
  61. data/vendor/assets/javascripts/ace/mode-groovy.js +310 -242
  62. data/vendor/assets/javascripts/ace/mode-haml.js +156 -190
  63. data/vendor/assets/javascripts/ace/mode-handlebars.js +815 -784
  64. data/vendor/assets/javascripts/ace/mode-haskell.js +27 -63
  65. data/vendor/assets/javascripts/ace/mode-haxe.js +206 -176
  66. data/vendor/assets/javascripts/ace/mode-html.js +779 -792
  67. data/vendor/assets/javascripts/ace/mode-html_ruby.js +916 -923
  68. data/vendor/assets/javascripts/ace/mode-ini.js +27 -58
  69. data/vendor/assets/javascripts/ace/mode-io.js +201 -0
  70. data/vendor/assets/javascripts/ace/mode-jack.js +169 -170
  71. data/vendor/assets/javascripts/ace/mode-jade.js +722 -774
  72. data/vendor/assets/javascripts/ace/mode-java.js +310 -245
  73. data/vendor/assets/javascripts/ace/mode-javascript.js +285 -247
  74. data/vendor/assets/javascripts/ace/mode-json.js +183 -184
  75. data/vendor/assets/javascripts/ace/mode-jsoniq.js +3211 -1274
  76. data/vendor/assets/javascripts/ace/mode-jsp.js +481 -504
  77. data/vendor/assets/javascripts/ace/mode-jsx.js +206 -176
  78. data/vendor/assets/javascripts/ace/mode-julia.js +33 -69
  79. data/vendor/assets/javascripts/ace/mode-latex.js +74 -41
  80. data/vendor/assets/javascripts/ace/mode-less.js +250 -251
  81. data/vendor/assets/javascripts/ace/mode-liquid.js +424 -475
  82. data/vendor/assets/javascripts/ace/mode-lisp.js +24 -57
  83. data/vendor/assets/javascripts/ace/mode-livescript.js +42 -41
  84. data/vendor/assets/javascripts/ace/mode-logiql.js +229 -230
  85. data/vendor/assets/javascripts/ace/mode-lsl.js +200 -441
  86. data/vendor/assets/javascripts/ace/mode-lua.js +136 -167
  87. data/vendor/assets/javascripts/ace/mode-luapage.js +904 -884
  88. data/vendor/assets/javascripts/ace/mode-lucene.js +22 -17
  89. data/vendor/assets/javascripts/ace/mode-makefile.js +162 -137
  90. data/vendor/assets/javascripts/ace/mode-markdown.js +846 -854
  91. data/vendor/assets/javascripts/ace/mode-matlab.js +98 -72
  92. data/vendor/assets/javascripts/ace/mode-mel.js +569 -0
  93. data/vendor/assets/javascripts/ace/mode-mushcode.js +84 -115
  94. data/vendor/assets/javascripts/ace/mode-mysql.js +49 -80
  95. data/vendor/assets/javascripts/ace/mode-nix.js +252 -256
  96. data/vendor/assets/javascripts/ace/mode-objectivec.js +242 -274
  97. data/vendor/assets/javascripts/ace/mode-ocaml.js +71 -102
  98. data/vendor/assets/javascripts/ace/mode-pascal.js +32 -68
  99. data/vendor/assets/javascripts/ace/mode-perl.js +67 -98
  100. data/vendor/assets/javascripts/ace/mode-pgsql.js +990 -982
  101. data/vendor/assets/javascripts/ace/mode-php.js +1878 -1900
  102. data/vendor/assets/javascripts/ace/mode-plain_text.js +3 -34
  103. data/vendor/assets/javascripts/ace/mode-powershell.js +181 -151
  104. data/vendor/assets/javascripts/ace/mode-praat.js +418 -0
  105. data/vendor/assets/javascripts/ace/mode-prolog.js +27 -63
  106. data/vendor/assets/javascripts/ace/mode-properties.js +20 -48
  107. data/vendor/assets/javascripts/ace/mode-protobuf.js +252 -259
  108. data/vendor/assets/javascripts/ace/mode-python.js +84 -115
  109. data/vendor/assets/javascripts/ace/mode-r.js +105 -140
  110. data/vendor/assets/javascripts/ace/mode-rdoc.js +84 -89
  111. data/vendor/assets/javascripts/ace/mode-rhtml.js +892 -908
  112. data/vendor/assets/javascripts/ace/mode-ruby.js +434 -98
  113. data/vendor/assets/javascripts/ace/mode-rust.js +27 -63
  114. data/vendor/assets/javascripts/ace/mode-sass.js +75 -106
  115. data/vendor/assets/javascripts/ace/mode-scad.js +219 -220
  116. data/vendor/assets/javascripts/ace/mode-scala.js +311 -243
  117. data/vendor/assets/javascripts/ace/mode-scheme.js +24 -60
  118. data/vendor/assets/javascripts/ace/mode-scss.js +250 -251
  119. data/vendor/assets/javascripts/ace/mode-sh.js +506 -118
  120. data/vendor/assets/javascripts/ace/mode-sjs.js +314 -280
  121. data/vendor/assets/javascripts/ace/mode-smarty.js +2474 -0
  122. data/vendor/assets/javascripts/ace/mode-snippets.js +89 -89
  123. data/vendor/assets/javascripts/ace/mode-soy_template.js +792 -811
  124. data/vendor/assets/javascripts/ace/mode-space.js +22 -23
  125. data/vendor/assets/javascripts/ace/mode-sql.js +31 -58
  126. data/vendor/assets/javascripts/ace/mode-stylus.js +161 -197
  127. data/vendor/assets/javascripts/ace/mode-svg.js +906 -836
  128. data/vendor/assets/javascripts/ace/mode-tcl.js +61 -92
  129. data/vendor/assets/javascripts/ace/mode-tex.js +36 -73
  130. data/vendor/assets/javascripts/ace/mode-text.js +1 -0
  131. data/vendor/assets/javascripts/ace/mode-textile.js +41 -72
  132. data/vendor/assets/javascripts/ace/mode-toml.js +26 -62
  133. data/vendor/assets/javascripts/ace/mode-twig.js +1196 -892
  134. data/vendor/assets/javascripts/ace/mode-typescript.js +313 -277
  135. data/vendor/assets/javascripts/ace/mode-vala.js +982 -0
  136. data/vendor/assets/javascripts/ace/mode-vbscript.js +25 -62
  137. data/vendor/assets/javascripts/ace/mode-velocity.js +2251 -1242
  138. data/vendor/assets/javascripts/ace/mode-verilog.js +27 -59
  139. data/vendor/assets/javascripts/ace/mode-vhdl.js +26 -55
  140. data/vendor/assets/javascripts/ace/mode-xml.js +319 -644
  141. data/vendor/assets/javascripts/ace/mode-xquery.js +2503 -588
  142. data/vendor/assets/javascripts/ace/mode-yaml.js +56 -90
  143. data/vendor/assets/javascripts/ace/snippets/abap.js +7 -0
  144. data/vendor/assets/javascripts/ace/snippets/actionscript.js +159 -0
  145. data/vendor/assets/javascripts/ace/snippets/ada.js +7 -0
  146. data/vendor/assets/javascripts/ace/snippets/apache_conf.js +7 -0
  147. data/vendor/assets/javascripts/ace/snippets/applescript.js +7 -0
  148. data/vendor/assets/javascripts/ace/snippets/asciidoc.js +7 -0
  149. data/vendor/assets/javascripts/ace/snippets/assembly_x86.js +7 -0
  150. data/vendor/assets/javascripts/ace/snippets/autohotkey.js +7 -0
  151. data/vendor/assets/javascripts/ace/snippets/batchfile.js +7 -0
  152. data/vendor/assets/javascripts/ace/snippets/c9search.js +7 -0
  153. data/vendor/assets/javascripts/ace/snippets/c_cpp.js +138 -0
  154. data/vendor/assets/javascripts/ace/snippets/cirru.js +7 -0
  155. data/vendor/assets/javascripts/ace/snippets/clojure.js +97 -0
  156. data/vendor/assets/javascripts/ace/snippets/cobol.js +7 -0
  157. data/vendor/assets/javascripts/ace/snippets/coffee.js +102 -0
  158. data/vendor/assets/javascripts/ace/snippets/coldfusion.js +7 -0
  159. data/vendor/assets/javascripts/ace/snippets/csharp.js +7 -0
  160. data/vendor/assets/javascripts/ace/snippets/css.js +974 -0
  161. data/vendor/assets/javascripts/ace/snippets/curly.js +7 -0
  162. data/vendor/assets/javascripts/ace/snippets/d.js +7 -0
  163. data/vendor/assets/javascripts/ace/snippets/dart.js +90 -0
  164. data/vendor/assets/javascripts/ace/snippets/diff.js +18 -0
  165. data/vendor/assets/javascripts/ace/snippets/django.js +115 -0
  166. data/vendor/assets/javascripts/ace/snippets/dockerfile.js +7 -0
  167. data/vendor/assets/javascripts/ace/snippets/dot.js +7 -0
  168. data/vendor/assets/javascripts/ace/snippets/eiffel.js +7 -0
  169. data/vendor/assets/javascripts/ace/snippets/ejs.js +7 -0
  170. data/vendor/assets/javascripts/ace/snippets/erlang.js +167 -0
  171. data/vendor/assets/javascripts/ace/snippets/forth.js +7 -0
  172. data/vendor/assets/javascripts/ace/snippets/ftl.js +7 -0
  173. data/vendor/assets/javascripts/ace/snippets/gcode.js +7 -0
  174. data/vendor/assets/javascripts/ace/snippets/gherkin.js +7 -0
  175. data/vendor/assets/javascripts/ace/snippets/gitignore.js +7 -0
  176. data/vendor/assets/javascripts/ace/snippets/glsl.js +7 -0
  177. data/vendor/assets/javascripts/ace/snippets/golang.js +7 -0
  178. data/vendor/assets/javascripts/ace/snippets/groovy.js +7 -0
  179. data/vendor/assets/javascripts/ace/snippets/haml.js +27 -0
  180. data/vendor/assets/javascripts/ace/snippets/handlebars.js +7 -0
  181. data/vendor/assets/javascripts/ace/snippets/haskell.js +89 -0
  182. data/vendor/assets/javascripts/ace/snippets/haxe.js +7 -0
  183. data/vendor/assets/javascripts/ace/snippets/html.js +835 -0
  184. data/vendor/assets/javascripts/ace/snippets/html_ruby.js +7 -0
  185. data/vendor/assets/javascripts/ace/snippets/ini.js +7 -0
  186. data/vendor/assets/javascripts/ace/snippets/io.js +69 -0
  187. data/vendor/assets/javascripts/ace/snippets/jack.js +7 -0
  188. data/vendor/assets/javascripts/ace/snippets/jade.js +7 -0
  189. data/vendor/assets/javascripts/ace/snippets/java.js +241 -0
  190. data/vendor/assets/javascripts/ace/snippets/javascript.js +189 -0
  191. data/vendor/assets/javascripts/ace/snippets/json.js +7 -0
  192. data/vendor/assets/javascripts/ace/snippets/jsoniq.js +68 -0
  193. data/vendor/assets/javascripts/ace/snippets/jsp.js +106 -0
  194. data/vendor/assets/javascripts/ace/snippets/jsx.js +7 -0
  195. data/vendor/assets/javascripts/ace/snippets/julia.js +7 -0
  196. data/vendor/assets/javascripts/ace/snippets/latex.js +7 -0
  197. data/vendor/assets/javascripts/ace/snippets/less.js +7 -0
  198. data/vendor/assets/javascripts/ace/snippets/liquid.js +7 -0
  199. data/vendor/assets/javascripts/ace/snippets/lisp.js +7 -0
  200. data/vendor/assets/javascripts/ace/snippets/livescript.js +7 -0
  201. data/vendor/assets/javascripts/ace/snippets/logiql.js +7 -0
  202. data/vendor/assets/javascripts/ace/snippets/lsl.js +1073 -0
  203. data/vendor/assets/javascripts/ace/snippets/lua.js +28 -0
  204. data/vendor/assets/javascripts/ace/snippets/luapage.js +7 -0
  205. data/vendor/assets/javascripts/ace/snippets/lucene.js +7 -0
  206. data/vendor/assets/javascripts/ace/snippets/makefile.js +11 -0
  207. data/vendor/assets/javascripts/ace/snippets/markdown.js +95 -0
  208. data/vendor/assets/javascripts/ace/snippets/matlab.js +7 -0
  209. data/vendor/assets/javascripts/ace/snippets/mel.js +7 -0
  210. data/vendor/assets/javascripts/ace/snippets/mushcode.js +7 -0
  211. data/vendor/assets/javascripts/ace/snippets/mysql.js +7 -0
  212. data/vendor/assets/javascripts/ace/snippets/nix.js +7 -0
  213. data/vendor/assets/javascripts/ace/snippets/objectivec.js +7 -0
  214. data/vendor/assets/javascripts/ace/snippets/ocaml.js +7 -0
  215. data/vendor/assets/javascripts/ace/snippets/pascal.js +7 -0
  216. data/vendor/assets/javascripts/ace/snippets/perl.js +354 -0
  217. data/vendor/assets/javascripts/ace/snippets/pgsql.js +7 -0
  218. data/vendor/assets/javascripts/ace/snippets/php.js +283 -0
  219. data/vendor/assets/javascripts/ace/snippets/plain_text.js +7 -0
  220. data/vendor/assets/javascripts/ace/snippets/powershell.js +7 -0
  221. data/vendor/assets/javascripts/ace/snippets/praat.js +7 -0
  222. data/vendor/assets/javascripts/ace/snippets/prolog.js +7 -0
  223. data/vendor/assets/javascripts/ace/snippets/properties.js +7 -0
  224. data/vendor/assets/javascripts/ace/snippets/protobuf.js +7 -0
  225. data/vendor/assets/javascripts/ace/snippets/python.js +165 -0
  226. data/vendor/assets/javascripts/ace/snippets/r.js +128 -0
  227. data/vendor/assets/javascripts/ace/snippets/rdoc.js +7 -0
  228. data/vendor/assets/javascripts/ace/snippets/rhtml.js +7 -0
  229. data/vendor/assets/javascripts/ace/snippets/ruby.js +935 -0
  230. data/vendor/assets/javascripts/ace/snippets/rust.js +7 -0
  231. data/vendor/assets/javascripts/ace/snippets/sass.js +7 -0
  232. data/vendor/assets/javascripts/ace/snippets/scad.js +7 -0
  233. data/vendor/assets/javascripts/ace/snippets/scala.js +7 -0
  234. data/vendor/assets/javascripts/ace/snippets/scheme.js +7 -0
  235. data/vendor/assets/javascripts/ace/snippets/scss.js +7 -0
  236. data/vendor/assets/javascripts/ace/snippets/sh.js +90 -0
  237. data/vendor/assets/javascripts/ace/snippets/sjs.js +7 -0
  238. data/vendor/assets/javascripts/ace/snippets/smarty.js +7 -0
  239. data/vendor/assets/javascripts/ace/snippets/snippets.js +16 -0
  240. data/vendor/assets/javascripts/ace/snippets/soy_template.js +7 -0
  241. data/vendor/assets/javascripts/ace/snippets/space.js +7 -0
  242. data/vendor/assets/javascripts/ace/snippets/sql.js +33 -0
  243. data/vendor/assets/javascripts/ace/snippets/stylus.js +7 -0
  244. data/vendor/assets/javascripts/ace/snippets/svg.js +7 -0
  245. data/vendor/assets/javascripts/ace/snippets/tcl.js +99 -0
  246. data/vendor/assets/javascripts/ace/snippets/tex.js +197 -0
  247. data/vendor/assets/javascripts/ace/snippets/text.js +7 -0
  248. data/vendor/assets/javascripts/ace/snippets/textile.js +37 -0
  249. data/vendor/assets/javascripts/ace/snippets/toml.js +7 -0
  250. data/vendor/assets/javascripts/ace/snippets/twig.js +7 -0
  251. data/vendor/assets/javascripts/ace/snippets/typescript.js +7 -0
  252. data/vendor/assets/javascripts/ace/snippets/vala.js +193 -0
  253. data/vendor/assets/javascripts/ace/snippets/vbscript.js +7 -0
  254. data/vendor/assets/javascripts/ace/snippets/velocity.js +36 -0
  255. data/vendor/assets/javascripts/ace/snippets/verilog.js +7 -0
  256. data/vendor/assets/javascripts/ace/snippets/vhdl.js +7 -0
  257. data/vendor/assets/javascripts/ace/snippets/xml.js +7 -0
  258. data/vendor/assets/javascripts/ace/snippets/xquery.js +68 -0
  259. data/vendor/assets/javascripts/ace/snippets/yaml.js +7 -0
  260. data/vendor/assets/javascripts/ace/theme-ambiance.js +4 -24
  261. data/vendor/assets/javascripts/ace/theme-chaos.js +2 -25
  262. data/vendor/assets/javascripts/ace/theme-chrome.js +2 -31
  263. data/vendor/assets/javascripts/ace/theme-clouds.js +1 -31
  264. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +1 -31
  265. data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -31
  266. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +1 -31
  267. data/vendor/assets/javascripts/ace/theme-dawn.js +1 -31
  268. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +5 -31
  269. data/vendor/assets/javascripts/ace/theme-eclipse.js +7 -33
  270. data/vendor/assets/javascripts/ace/theme-github.js +2 -35
  271. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -31
  272. data/vendor/assets/javascripts/ace/theme-katzenmilch.js +119 -0
  273. data/vendor/assets/javascripts/ace/theme-kr.js +1 -31
  274. data/vendor/assets/javascripts/ace/theme-kr_theme.js +57 -141
  275. data/vendor/assets/javascripts/ace/theme-kuroir.js +59 -0
  276. data/vendor/assets/javascripts/ace/theme-merbivore.js +1 -31
  277. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +1 -31
  278. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +1 -31
  279. data/vendor/assets/javascripts/ace/theme-monokai.js +1 -31
  280. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +1 -31
  281. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +1 -31
  282. data/vendor/assets/javascripts/ace/theme-solarized_light.js +1 -31
  283. data/vendor/assets/javascripts/ace/theme-terminal.js +1 -31
  284. data/vendor/assets/javascripts/ace/theme-textmate.js +3 -32
  285. data/vendor/assets/javascripts/ace/theme-tomorrow.js +1 -31
  286. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +1 -31
  287. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -31
  288. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -31
  289. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -31
  290. data/vendor/assets/javascripts/ace/theme-twilight.js +1 -31
  291. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +1 -31
  292. data/vendor/assets/javascripts/ace/theme-xcode.js +2 -33
  293. data/vendor/assets/javascripts/ace/worker-coffee.js +5026 -5008
  294. data/vendor/assets/javascripts/ace/worker-css.js +5489 -5134
  295. data/vendor/assets/javascripts/ace/worker-html.js +11517 -0
  296. data/vendor/assets/javascripts/ace/worker-javascript.js +9810 -9501
  297. data/vendor/assets/javascripts/ace/worker-json.js +1583 -1564
  298. data/vendor/assets/javascripts/ace/worker-lua.js +2631 -2612
  299. data/vendor/assets/javascripts/ace/worker-php.js +2385 -2341
  300. data/vendor/assets/javascripts/ace/worker-xquery.js +31643 -3993
  301. metadata +147 -11
@@ -1,59 +1,5 @@
1
- /* ***** BEGIN LICENSE BLOCK *****
2
- * Distributed under the BSD license:
3
- *
4
- * Copyright (c) 2012, Ajax.org B.V.
5
- * All rights reserved.
6
- *
7
- * Redistribution and use in source and binary forms, with or without
8
- * modification, are permitted provided that the following conditions are met:
9
- * * Redistributions of source code must retain the above copyright
10
- * notice, this list of conditions and the following disclaimer.
11
- * * Redistributions in binary form must reproduce the above copyright
12
- * notice, this list of conditions and the following disclaimer in the
13
- * documentation and/or other materials provided with the distribution.
14
- * * Neither the name of Ajax.org B.V. nor the
15
- * names of its contributors may be used to endorse or promote products
16
- * derived from this software without specific prior written permission.
17
- *
18
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
22
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
- *
29
- * ***** END LICENSE BLOCK ***** */
30
-
31
- define('ace/mode/ini', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/ini_highlight_rules', 'ace/mode/folding/ini'], function(require, exports, module) {
32
-
33
-
34
- var oop = require("../lib/oop");
35
- var TextMode = require("./text").Mode;
36
- var Tokenizer = require("../tokenizer").Tokenizer;
37
- var IniHighlightRules = require("./ini_highlight_rules").IniHighlightRules;
38
- var FoldMode = require("./folding/ini").FoldMode;
39
-
40
- var Mode = function() {
41
- this.HighlightRules = IniHighlightRules;
42
- this.foldingRules = new FoldMode();
43
- };
44
- oop.inherits(Mode, TextMode);
45
-
46
- (function() {
47
- this.lineCommentStart = ";";
48
- this.blockComment = {start: "/*", end: "*/"};
49
- this.$id = "ace/mode/ini";
50
- }).call(Mode.prototype);
51
-
52
- exports.Mode = Mode;
53
- });
54
-
55
- define('ace/mode/ini_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
56
-
1
+ define("ace/mode/ini_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
+ "use strict";
57
3
 
58
4
  var oop = require("../lib/oop");
59
5
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
@@ -133,8 +79,8 @@ oop.inherits(IniHighlightRules, TextHighlightRules);
133
79
  exports.IniHighlightRules = IniHighlightRules;
134
80
  });
135
81
 
136
- define('ace/mode/folding/ini', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
137
-
82
+ define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
83
+ "use strict";
138
84
 
139
85
  var oop = require("../../lib/oop");
140
86
  var Range = require("../../range").Range;
@@ -183,3 +129,26 @@ oop.inherits(FoldMode, BaseFoldMode);
183
129
  }).call(FoldMode.prototype);
184
130
 
185
131
  });
132
+
133
+ define("ace/mode/ini",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ini_highlight_rules","ace/mode/folding/ini"], function(require, exports, module) {
134
+ "use strict";
135
+
136
+ var oop = require("../lib/oop");
137
+ var TextMode = require("./text").Mode;
138
+ var IniHighlightRules = require("./ini_highlight_rules").IniHighlightRules;
139
+ var FoldMode = require("./folding/ini").FoldMode;
140
+
141
+ var Mode = function() {
142
+ this.HighlightRules = IniHighlightRules;
143
+ this.foldingRules = new FoldMode();
144
+ };
145
+ oop.inherits(Mode, TextMode);
146
+
147
+ (function() {
148
+ this.lineCommentStart = ";";
149
+ this.blockComment = {start: "/*", end: "*/"};
150
+ this.$id = "ace/mode/ini";
151
+ }).call(Mode.prototype);
152
+
153
+ exports.Mode = Mode;
154
+ });
@@ -0,0 +1,201 @@
1
+ define("ace/mode/io_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ var oop = require("../lib/oop");
5
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6
+
7
+ var IoHighlightRules = function() {
8
+
9
+ this.$rules = { start:
10
+ [ { token: [ 'text', 'meta.empty-parenthesis.io' ],
11
+ regex: '(\\()(\\))',
12
+ comment: 'we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob' },
13
+ { token: [ 'text', 'meta.comma-parenthesis.io' ],
14
+ regex: '(\\,)(\\))',
15
+ comment: 'We want to do the same for ,) -- Seckar; same as above -- Rob' },
16
+ { token: 'keyword.control.io',
17
+ regex: '\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\b' },
18
+ { token: 'punctuation.definition.comment.io',
19
+ regex: '/\\*',
20
+ push:
21
+ [ { token: 'punctuation.definition.comment.io',
22
+ regex: '\\*/',
23
+ next: 'pop' },
24
+ { defaultToken: 'comment.block.io' } ] },
25
+ { token: 'punctuation.definition.comment.io',
26
+ regex: '//',
27
+ push:
28
+ [ { token: 'comment.line.double-slash.io',
29
+ regex: '$',
30
+ next: 'pop' },
31
+ { defaultToken: 'comment.line.double-slash.io' } ] },
32
+ { token: 'punctuation.definition.comment.io',
33
+ regex: '#',
34
+ push:
35
+ [ { token: 'comment.line.number-sign.io', regex: '$', next: 'pop' },
36
+ { defaultToken: 'comment.line.number-sign.io' } ] },
37
+ { token: 'variable.language.io',
38
+ regex: '\\b(?:self|sender|target|proto|protos|parent)\\b',
39
+ comment: 'I wonder if some of this isn\'t variable.other.language? --Allan; scoping this as variable.language to match Objective-C\'s handling of \'self\', which is inconsistent with C++\'s handling of \'this\' but perhaps intentionally so -- Rob' },
40
+ { token: 'keyword.operator.io',
41
+ regex: '<=|>=|=|:=|\\*|\\||\\|\\||\\+|-|/|&|&&|>|<|\\?|@|@@|\\b(?:and|or)\\b' },
42
+ { token: 'constant.other.io', regex: '\\bGL[\\w_]+\\b' },
43
+ { token: 'support.class.io', regex: '\\b[A-Z](?:\\w+)?\\b' },
44
+ { token: 'support.function.io',
45
+ regex: '\\b(?:clone|call|init|method|list|vector|block|\\w+(?=\\s*\\())\\b' },
46
+ { token: 'support.function.open-gl.io',
47
+ regex: '\\bgl(?:u|ut)?[A-Z]\\w+\\b' },
48
+ { token: 'punctuation.definition.string.begin.io',
49
+ regex: '"""',
50
+ push:
51
+ [ { token: 'punctuation.definition.string.end.io',
52
+ regex: '"""',
53
+ next: 'pop' },
54
+ { token: 'constant.character.escape.io', regex: '\\\\.' },
55
+ { defaultToken: 'string.quoted.triple.io' } ] },
56
+ { token: 'punctuation.definition.string.begin.io',
57
+ regex: '"',
58
+ push:
59
+ [ { token: 'punctuation.definition.string.end.io',
60
+ regex: '"',
61
+ next: 'pop' },
62
+ { token: 'constant.character.escape.io', regex: '\\\\.' },
63
+ { defaultToken: 'string.quoted.double.io' } ] },
64
+ { token: 'constant.numeric.io',
65
+ regex: '\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b' },
66
+ { token: 'variable.other.global.io', regex: 'Lobby\\b' },
67
+ { token: 'constant.language.io',
68
+ regex: '\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\b' } ] }
69
+
70
+ this.normalizeRules();
71
+ };
72
+
73
+ IoHighlightRules.metaData = { fileTypes: [ 'io' ],
74
+ keyEquivalent: '^~I',
75
+ name: 'Io',
76
+ scopeName: 'source.io' }
77
+
78
+
79
+ oop.inherits(IoHighlightRules, TextHighlightRules);
80
+
81
+ exports.IoHighlightRules = IoHighlightRules;
82
+ });
83
+
84
+ define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
85
+ "use strict";
86
+
87
+ var oop = require("../../lib/oop");
88
+ var Range = require("../../range").Range;
89
+ var BaseFoldMode = require("./fold_mode").FoldMode;
90
+
91
+ var FoldMode = exports.FoldMode = function(commentRegex) {
92
+ if (commentRegex) {
93
+ this.foldingStartMarker = new RegExp(
94
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
95
+ );
96
+ this.foldingStopMarker = new RegExp(
97
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
98
+ );
99
+ }
100
+ };
101
+ oop.inherits(FoldMode, BaseFoldMode);
102
+
103
+ (function() {
104
+
105
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
106
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
107
+
108
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
109
+ var line = session.getLine(row);
110
+ var match = line.match(this.foldingStartMarker);
111
+ if (match) {
112
+ var i = match.index;
113
+
114
+ if (match[1])
115
+ return this.openingBracketBlock(session, match[1], row, i);
116
+
117
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
118
+
119
+ if (range && !range.isMultiLine()) {
120
+ if (forceMultiline) {
121
+ range = this.getSectionRange(session, row);
122
+ } else if (foldStyle != "all")
123
+ range = null;
124
+ }
125
+
126
+ return range;
127
+ }
128
+
129
+ if (foldStyle === "markbegin")
130
+ return;
131
+
132
+ var match = line.match(this.foldingStopMarker);
133
+ if (match) {
134
+ var i = match.index + match[0].length;
135
+
136
+ if (match[1])
137
+ return this.closingBracketBlock(session, match[1], row, i);
138
+
139
+ return session.getCommentFoldRange(row, i, -1);
140
+ }
141
+ };
142
+
143
+ this.getSectionRange = function(session, row) {
144
+ var line = session.getLine(row);
145
+ var startIndent = line.search(/\S/);
146
+ var startRow = row;
147
+ var startColumn = line.length;
148
+ row = row + 1;
149
+ var endRow = row;
150
+ var maxRow = session.getLength();
151
+ while (++row < maxRow) {
152
+ line = session.getLine(row);
153
+ var indent = line.search(/\S/);
154
+ if (indent === -1)
155
+ continue;
156
+ if (startIndent > indent)
157
+ break;
158
+ var subRange = this.getFoldWidgetRange(session, "all", row);
159
+
160
+ if (subRange) {
161
+ if (subRange.start.row <= startRow) {
162
+ break;
163
+ } else if (subRange.isMultiLine()) {
164
+ row = subRange.end.row;
165
+ } else if (startIndent == indent) {
166
+ break;
167
+ }
168
+ }
169
+ endRow = row;
170
+ }
171
+
172
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
173
+ };
174
+
175
+ }).call(FoldMode.prototype);
176
+
177
+ });
178
+
179
+ define("ace/mode/io",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/io_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
180
+ "use strict";
181
+
182
+ var oop = require("../lib/oop");
183
+ var TextMode = require("./text").Mode;
184
+ var Tokenizer = require("../tokenizer").Tokenizer;
185
+ var IoHighlightRules = require("./io_highlight_rules").IoHighlightRules;
186
+ var FoldMode = require("./folding/cstyle").FoldMode;
187
+
188
+ var Mode = function() {
189
+ this.HighlightRules = IoHighlightRules;
190
+ this.foldingRules = new FoldMode();
191
+ };
192
+ oop.inherits(Mode, TextMode);
193
+
194
+ (function() {
195
+ this.lineCommentStart = "//";
196
+ this.blockComment = {start: "/*", end: "*/"};
197
+ this.$id = "ace/mode/io"
198
+ }).call(Mode.prototype);
199
+
200
+ exports.Mode = Mode;
201
+ });
@@ -1,86 +1,5 @@
1
- /* ***** BEGIN LICENSE BLOCK *****
2
- * Distributed under the BSD license:
3
- *
4
- * Copyright (c) 2010, Ajax.org B.V.
5
- * All rights reserved.
6
- *
7
- * Redistribution and use in source and binary forms, with or without
8
- * modification, are permitted provided that the following conditions are met:
9
- * * Redistributions of source code must retain the above copyright
10
- * notice, this list of conditions and the following disclaimer.
11
- * * Redistributions in binary form must reproduce the above copyright
12
- * notice, this list of conditions and the following disclaimer in the
13
- * documentation and/or other materials provided with the distribution.
14
- * * Neither the name of Ajax.org B.V. nor the
15
- * names of its contributors may be used to endorse or promote products
16
- * derived from this software without specific prior written permission.
17
- *
18
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
22
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
- *
29
- * ***** END LICENSE BLOCK ***** */
30
-
31
- define('ace/mode/jack', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/jack_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) {
32
-
33
-
34
- var oop = require("../lib/oop");
35
- var TextMode = require("./text").Mode;
36
- var Tokenizer = require("../tokenizer").Tokenizer;
37
- var HighlightRules = require("./jack_highlight_rules").JackHighlightRules;
38
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
39
- var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
40
- var CStyleFoldMode = require("./folding/cstyle").FoldMode;
41
-
42
- var Mode = function() {
43
- this.HighlightRules = HighlightRules;
44
- this.$outdent = new MatchingBraceOutdent();
45
- this.$behaviour = new CstyleBehaviour();
46
- this.foldingRules = new CStyleFoldMode();
47
- };
48
- oop.inherits(Mode, TextMode);
49
-
50
- (function() {
51
-
52
- this.lineCommentStart = "--";
53
-
54
- this.getNextLineIndent = function(state, line, tab) {
55
- var indent = this.$getIndent(line);
56
-
57
- if (state == "start") {
58
- var match = line.match(/^.*[\{\(\[]\s*$/);
59
- if (match) {
60
- indent += tab;
61
- }
62
- }
63
-
64
- return indent;
65
- };
66
-
67
- this.checkOutdent = function(state, line, input) {
68
- return this.$outdent.checkOutdent(line, input);
69
- };
70
-
71
- this.autoOutdent = function(state, doc, row) {
72
- this.$outdent.autoOutdent(doc, row);
73
- };
74
-
75
-
76
- this.$id = "ace/mode/jack";
77
- }).call(Mode.prototype);
78
-
79
- exports.Mode = Mode;
80
- });
81
-
82
- define('ace/mode/jack_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
83
-
1
+ define("ace/mode/jack_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
+ "use strict";
84
3
 
85
4
  var oop = require("../lib/oop");
86
5
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
@@ -189,8 +108,8 @@ oop.inherits(JackHighlightRules, TextHighlightRules);
189
108
  exports.JackHighlightRules = JackHighlightRules;
190
109
  });
191
110
 
192
- define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
193
-
111
+ define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
112
+ "use strict";
194
113
 
195
114
  var Range = require("../range").Range;
196
115
 
@@ -229,8 +148,8 @@ var MatchingBraceOutdent = function() {};
229
148
  exports.MatchingBraceOutdent = MatchingBraceOutdent;
230
149
  });
231
150
 
232
- define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/token_iterator', 'ace/lib/lang'], function(require, exports, module) {
233
-
151
+ define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
152
+ "use strict";
234
153
 
235
154
  var oop = require("../../lib/oop");
236
155
  var Behaviour = require("../behaviour").Behaviour;
@@ -242,83 +161,34 @@ var SAFE_INSERT_IN_TOKENS =
242
161
  var SAFE_INSERT_BEFORE_TOKENS =
243
162
  ["text", "paren.rparen", "punctuation.operator", "comment"];
244
163
 
245
-
246
- var autoInsertedBrackets = 0;
247
- var autoInsertedRow = -1;
248
- var autoInsertedLineEnd = "";
249
- var maybeInsertedBrackets = 0;
250
- var maybeInsertedRow = -1;
251
- var maybeInsertedLineStart = "";
252
- var maybeInsertedLineEnd = "";
253
-
254
- var CstyleBehaviour = function () {
255
-
256
- CstyleBehaviour.isSaneInsertion = function(editor, session) {
257
- var cursor = editor.getCursorPosition();
258
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
259
- if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
260
- var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
261
- if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
262
- return false;
263
- }
264
- iterator.stepForward();
265
- return iterator.getCurrentTokenRow() !== cursor.row ||
266
- this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
267
- };
268
-
269
- CstyleBehaviour.$matchTokenType = function(token, types) {
270
- return types.indexOf(token.type || token) > -1;
271
- };
272
-
273
- CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
274
- var cursor = editor.getCursorPosition();
275
- var line = session.doc.getLine(cursor.row);
276
- if (!this.isAutoInsertedClosing(cursor, line, autoInsertedLineEnd[0]))
277
- autoInsertedBrackets = 0;
278
- autoInsertedRow = cursor.row;
279
- autoInsertedLineEnd = bracket + line.substr(cursor.column);
280
- autoInsertedBrackets++;
281
- };
282
-
283
- CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
284
- var cursor = editor.getCursorPosition();
285
- var line = session.doc.getLine(cursor.row);
286
- if (!this.isMaybeInsertedClosing(cursor, line))
287
- maybeInsertedBrackets = 0;
288
- maybeInsertedRow = cursor.row;
289
- maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
290
- maybeInsertedLineEnd = line.substr(cursor.column);
291
- maybeInsertedBrackets++;
292
- };
293
-
294
- CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
295
- return autoInsertedBrackets > 0 &&
296
- cursor.row === autoInsertedRow &&
297
- bracket === autoInsertedLineEnd[0] &&
298
- line.substr(cursor.column) === autoInsertedLineEnd;
299
- };
300
-
301
- CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
302
- return maybeInsertedBrackets > 0 &&
303
- cursor.row === maybeInsertedRow &&
304
- line.substr(cursor.column) === maybeInsertedLineEnd &&
305
- line.substr(0, cursor.column) == maybeInsertedLineStart;
306
- };
307
-
308
- CstyleBehaviour.popAutoInsertedClosing = function() {
309
- autoInsertedLineEnd = autoInsertedLineEnd.substr(1);
310
- autoInsertedBrackets--;
311
- };
312
-
313
- CstyleBehaviour.clearMaybeInsertedClosing = function() {
314
- maybeInsertedBrackets = 0;
315
- maybeInsertedRow = -1;
164
+ var context;
165
+ var contextCache = {}
166
+ var initContext = function(editor) {
167
+ var id = -1;
168
+ if (editor.multiSelect) {
169
+ id = editor.selection.id;
170
+ if (contextCache.rangeCount != editor.multiSelect.rangeCount)
171
+ contextCache = {rangeCount: editor.multiSelect.rangeCount};
172
+ }
173
+ if (contextCache[id])
174
+ return context = contextCache[id];
175
+ context = contextCache[id] = {
176
+ autoInsertedBrackets: 0,
177
+ autoInsertedRow: -1,
178
+ autoInsertedLineEnd: "",
179
+ maybeInsertedBrackets: 0,
180
+ maybeInsertedRow: -1,
181
+ maybeInsertedLineStart: "",
182
+ maybeInsertedLineEnd: ""
316
183
  };
184
+ };
317
185
 
318
- this.add("braces", "insertion", function (state, action, editor, session, text) {
186
+ var CstyleBehaviour = function() {
187
+ this.add("braces", "insertion", function(state, action, editor, session, text) {
319
188
  var cursor = editor.getCursorPosition();
320
189
  var line = session.doc.getLine(cursor.row);
321
190
  if (text == '{') {
191
+ initContext(editor);
322
192
  var selection = editor.getSelectionRange();
323
193
  var selected = session.doc.getTextRange(selection);
324
194
  if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
@@ -342,6 +212,7 @@ var CstyleBehaviour = function () {
342
212
  }
343
213
  }
344
214
  } else if (text == '}') {
215
+ initContext(editor);
345
216
  var rightChar = line.substring(cursor.column, cursor.column + 1);
346
217
  if (rightChar == '}') {
347
218
  var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
@@ -354,9 +225,10 @@ var CstyleBehaviour = function () {
354
225
  }
355
226
  }
356
227
  } else if (text == "\n" || text == "\r\n") {
228
+ initContext(editor);
357
229
  var closing = "";
358
230
  if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
359
- closing = lang.stringRepeat("}", maybeInsertedBrackets);
231
+ closing = lang.stringRepeat("}", context.maybeInsertedBrackets);
360
232
  CstyleBehaviour.clearMaybeInsertedClosing();
361
233
  }
362
234
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -368,6 +240,7 @@ var CstyleBehaviour = function () {
368
240
  } else if (closing) {
369
241
  var next_indent = this.$getIndent(line);
370
242
  } else {
243
+ CstyleBehaviour.clearMaybeInsertedClosing();
371
244
  return;
372
245
  }
373
246
  var indent = next_indent + session.getTabString();
@@ -381,22 +254,24 @@ var CstyleBehaviour = function () {
381
254
  }
382
255
  });
383
256
 
384
- this.add("braces", "deletion", function (state, action, editor, session, range) {
257
+ this.add("braces", "deletion", function(state, action, editor, session, range) {
385
258
  var selected = session.doc.getTextRange(range);
386
259
  if (!range.isMultiLine() && selected == '{') {
260
+ initContext(editor);
387
261
  var line = session.doc.getLine(range.start.row);
388
262
  var rightChar = line.substring(range.end.column, range.end.column + 1);
389
263
  if (rightChar == '}') {
390
264
  range.end.column++;
391
265
  return range;
392
266
  } else {
393
- maybeInsertedBrackets--;
267
+ context.maybeInsertedBrackets--;
394
268
  }
395
269
  }
396
270
  });
397
271
 
398
- this.add("parens", "insertion", function (state, action, editor, session, text) {
272
+ this.add("parens", "insertion", function(state, action, editor, session, text) {
399
273
  if (text == '(') {
274
+ initContext(editor);
400
275
  var selection = editor.getSelectionRange();
401
276
  var selected = session.doc.getTextRange(selection);
402
277
  if (selected !== "" && editor.getWrapBehavioursEnabled()) {
@@ -412,6 +287,7 @@ var CstyleBehaviour = function () {
412
287
  };
413
288
  }
414
289
  } else if (text == ')') {
290
+ initContext(editor);
415
291
  var cursor = editor.getCursorPosition();
416
292
  var line = session.doc.getLine(cursor.row);
417
293
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -428,9 +304,10 @@ var CstyleBehaviour = function () {
428
304
  }
429
305
  });
430
306
 
431
- this.add("parens", "deletion", function (state, action, editor, session, range) {
307
+ this.add("parens", "deletion", function(state, action, editor, session, range) {
432
308
  var selected = session.doc.getTextRange(range);
433
309
  if (!range.isMultiLine() && selected == '(') {
310
+ initContext(editor);
434
311
  var line = session.doc.getLine(range.start.row);
435
312
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
436
313
  if (rightChar == ')') {
@@ -440,8 +317,9 @@ var CstyleBehaviour = function () {
440
317
  }
441
318
  });
442
319
 
443
- this.add("brackets", "insertion", function (state, action, editor, session, text) {
320
+ this.add("brackets", "insertion", function(state, action, editor, session, text) {
444
321
  if (text == '[') {
322
+ initContext(editor);
445
323
  var selection = editor.getSelectionRange();
446
324
  var selected = session.doc.getTextRange(selection);
447
325
  if (selected !== "" && editor.getWrapBehavioursEnabled()) {
@@ -457,6 +335,7 @@ var CstyleBehaviour = function () {
457
335
  };
458
336
  }
459
337
  } else if (text == ']') {
338
+ initContext(editor);
460
339
  var cursor = editor.getCursorPosition();
461
340
  var line = session.doc.getLine(cursor.row);
462
341
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -473,9 +352,10 @@ var CstyleBehaviour = function () {
473
352
  }
474
353
  });
475
354
 
476
- this.add("brackets", "deletion", function (state, action, editor, session, range) {
355
+ this.add("brackets", "deletion", function(state, action, editor, session, range) {
477
356
  var selected = session.doc.getTextRange(range);
478
357
  if (!range.isMultiLine() && selected == '[') {
358
+ initContext(editor);
479
359
  var line = session.doc.getLine(range.start.row);
480
360
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
481
361
  if (rightChar == ']') {
@@ -485,8 +365,9 @@ var CstyleBehaviour = function () {
485
365
  }
486
366
  });
487
367
 
488
- this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
368
+ this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
489
369
  if (text == '"' || text == "'") {
370
+ initContext(editor);
490
371
  var quote = text;
491
372
  var selection = editor.getSelectionRange();
492
373
  var selected = session.doc.getTextRange(selection);
@@ -538,9 +419,10 @@ var CstyleBehaviour = function () {
538
419
  }
539
420
  });
540
421
 
541
- this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
422
+ this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
542
423
  var selected = session.doc.getTextRange(range);
543
424
  if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
425
+ initContext(editor);
544
426
  var line = session.doc.getLine(range.start.row);
545
427
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
546
428
  if (rightChar == selected) {
@@ -552,13 +434,80 @@ var CstyleBehaviour = function () {
552
434
 
553
435
  };
554
436
 
437
+
438
+ CstyleBehaviour.isSaneInsertion = function(editor, session) {
439
+ var cursor = editor.getCursorPosition();
440
+ var iterator = new TokenIterator(session, cursor.row, cursor.column);
441
+ if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
442
+ var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
443
+ if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
444
+ return false;
445
+ }
446
+ iterator.stepForward();
447
+ return iterator.getCurrentTokenRow() !== cursor.row ||
448
+ this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
449
+ };
450
+
451
+ CstyleBehaviour.$matchTokenType = function(token, types) {
452
+ return types.indexOf(token.type || token) > -1;
453
+ };
454
+
455
+ CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
456
+ var cursor = editor.getCursorPosition();
457
+ var line = session.doc.getLine(cursor.row);
458
+ if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))
459
+ context.autoInsertedBrackets = 0;
460
+ context.autoInsertedRow = cursor.row;
461
+ context.autoInsertedLineEnd = bracket + line.substr(cursor.column);
462
+ context.autoInsertedBrackets++;
463
+ };
464
+
465
+ CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
466
+ var cursor = editor.getCursorPosition();
467
+ var line = session.doc.getLine(cursor.row);
468
+ if (!this.isMaybeInsertedClosing(cursor, line))
469
+ context.maybeInsertedBrackets = 0;
470
+ context.maybeInsertedRow = cursor.row;
471
+ context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
472
+ context.maybeInsertedLineEnd = line.substr(cursor.column);
473
+ context.maybeInsertedBrackets++;
474
+ };
475
+
476
+ CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
477
+ return context.autoInsertedBrackets > 0 &&
478
+ cursor.row === context.autoInsertedRow &&
479
+ bracket === context.autoInsertedLineEnd[0] &&
480
+ line.substr(cursor.column) === context.autoInsertedLineEnd;
481
+ };
482
+
483
+ CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
484
+ return context.maybeInsertedBrackets > 0 &&
485
+ cursor.row === context.maybeInsertedRow &&
486
+ line.substr(cursor.column) === context.maybeInsertedLineEnd &&
487
+ line.substr(0, cursor.column) == context.maybeInsertedLineStart;
488
+ };
489
+
490
+ CstyleBehaviour.popAutoInsertedClosing = function() {
491
+ context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);
492
+ context.autoInsertedBrackets--;
493
+ };
494
+
495
+ CstyleBehaviour.clearMaybeInsertedClosing = function() {
496
+ if (context) {
497
+ context.maybeInsertedBrackets = 0;
498
+ context.maybeInsertedRow = -1;
499
+ }
500
+ };
501
+
502
+
503
+
555
504
  oop.inherits(CstyleBehaviour, Behaviour);
556
505
 
557
506
  exports.CstyleBehaviour = CstyleBehaviour;
558
507
  });
559
508
 
560
- define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
561
-
509
+ define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
510
+ "use strict";
562
511
 
563
512
  var oop = require("../../lib/oop");
564
513
  var Range = require("../../range").Range;
@@ -651,3 +600,53 @@ oop.inherits(FoldMode, BaseFoldMode);
651
600
  }).call(FoldMode.prototype);
652
601
 
653
602
  });
603
+
604
+ define("ace/mode/jack",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jack_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
605
+ "use strict";
606
+
607
+ var oop = require("../lib/oop");
608
+ var TextMode = require("./text").Mode;
609
+ var HighlightRules = require("./jack_highlight_rules").JackHighlightRules;
610
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
611
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
612
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
613
+
614
+ var Mode = function() {
615
+ this.HighlightRules = HighlightRules;
616
+ this.$outdent = new MatchingBraceOutdent();
617
+ this.$behaviour = new CstyleBehaviour();
618
+ this.foldingRules = new CStyleFoldMode();
619
+ };
620
+ oop.inherits(Mode, TextMode);
621
+
622
+ (function() {
623
+
624
+ this.lineCommentStart = "--";
625
+
626
+ this.getNextLineIndent = function(state, line, tab) {
627
+ var indent = this.$getIndent(line);
628
+
629
+ if (state == "start") {
630
+ var match = line.match(/^.*[\{\(\[]\s*$/);
631
+ if (match) {
632
+ indent += tab;
633
+ }
634
+ }
635
+
636
+ return indent;
637
+ };
638
+
639
+ this.checkOutdent = function(state, line, input) {
640
+ return this.$outdent.checkOutdent(line, input);
641
+ };
642
+
643
+ this.autoOutdent = function(state, doc, row) {
644
+ this.$outdent.autoOutdent(doc, row);
645
+ };
646
+
647
+
648
+ this.$id = "ace/mode/jack";
649
+ }).call(Mode.prototype);
650
+
651
+ exports.Mode = Mode;
652
+ });