ace-rails-ap 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,129 +1,55 @@
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/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) {
32
-
1
+ define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
+ "use strict";
33
3
 
34
4
  var oop = require("../lib/oop");
35
- var TextMode = require("./text").Mode;
36
- var Tokenizer = require("../tokenizer").Tokenizer;
37
- var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
38
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
39
- var Range = require("../range").Range;
40
- var WorkerClient = require("../worker/worker_client").WorkerClient;
41
- var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
42
- var CStyleFoldMode = require("./folding/cstyle").FoldMode;
43
-
44
- var Mode = function() {
45
- this.HighlightRules = JavaScriptHighlightRules;
46
-
47
- this.$outdent = new MatchingBraceOutdent();
48
- this.$behaviour = new CstyleBehaviour();
49
- this.foldingRules = new CStyleFoldMode();
50
- };
51
- oop.inherits(Mode, TextMode);
52
-
53
- (function() {
54
-
55
- this.lineCommentStart = "//";
56
- this.blockComment = {start: "/*", end: "*/"};
57
-
58
- this.getNextLineIndent = function(state, line, tab) {
59
- var indent = this.$getIndent(line);
60
-
61
- var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
62
- var tokens = tokenizedLine.tokens;
63
- var endState = tokenizedLine.state;
64
-
65
- if (tokens.length && tokens[tokens.length-1].type == "comment") {
66
- return indent;
67
- }
5
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
68
6
 
69
- if (state == "start" || state == "no_regex") {
70
- var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);
71
- if (match) {
72
- indent += tab;
73
- }
74
- } else if (state == "doc-start") {
75
- if (endState == "start" || endState == "no_regex") {
76
- return "";
77
- }
78
- var match = line.match(/^\s*(\/?)\*/);
79
- if (match) {
80
- if (match[1]) {
81
- indent += " ";
82
- }
83
- indent += "* ";
84
- }
85
- }
7
+ var DocCommentHighlightRules = function() {
86
8
 
87
- return indent;
9
+ this.$rules = {
10
+ "start" : [ {
11
+ token : "comment.doc.tag",
12
+ regex : "@[\\w\\d_]+" // TODO: fix email addresses
13
+ }, {
14
+ token : "comment.doc.tag",
15
+ regex : "\\bTODO\\b"
16
+ }, {
17
+ defaultToken : "comment.doc"
18
+ }]
88
19
  };
20
+ };
89
21
 
90
- this.checkOutdent = function(state, line, input) {
91
- return this.$outdent.checkOutdent(line, input);
92
- };
22
+ oop.inherits(DocCommentHighlightRules, TextHighlightRules);
93
23
 
94
- this.autoOutdent = function(state, doc, row) {
95
- this.$outdent.autoOutdent(doc, row);
24
+ DocCommentHighlightRules.getStartRule = function(start) {
25
+ return {
26
+ token : "comment.doc", // doc comment
27
+ regex : "\\/\\*(?=\\*)",
28
+ next : start
96
29
  };
30
+ };
97
31
 
98
- this.createWorker = function(session) {
99
- var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
100
- worker.attachToDocument(session.getDocument());
101
-
102
- worker.on("jslint", function(results) {
103
- session.setAnnotations(results.data);
104
- });
105
-
106
- worker.on("terminate", function() {
107
- session.clearAnnotations();
108
- });
109
-
110
- return worker;
32
+ DocCommentHighlightRules.getEndRule = function (start) {
33
+ return {
34
+ token : "comment.doc", // closing comment
35
+ regex : "\\*\\/",
36
+ next : start
111
37
  };
38
+ };
112
39
 
113
- this.$id = "ace/mode/javascript";
114
- }).call(Mode.prototype);
115
40
 
116
- exports.Mode = Mode;
117
- });
41
+ exports.DocCommentHighlightRules = DocCommentHighlightRules;
118
42
 
119
- define('ace/mode/javascript_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
43
+ });
120
44
 
45
+ define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) {
46
+ "use strict";
121
47
 
122
48
  var oop = require("../lib/oop");
123
49
  var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
124
50
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
125
51
 
126
- var JavaScriptHighlightRules = function() {
52
+ var JavaScriptHighlightRules = function(options) {
127
53
  var keywordMapper = this.createKeywordMapper({
128
54
  "variable.language":
129
55
  "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors
@@ -248,19 +174,22 @@ var JavaScriptHighlightRules = function() {
248
174
  }, {
249
175
  token : ["punctuation.operator", "support.constant"],
250
176
  regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
177
+ }, {
178
+ token : ["support.constant"],
179
+ regex : /that\b/
251
180
  }, {
252
181
  token : ["storage.type", "punctuation.operator", "support.function.firebug"],
253
- regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/
182
+ regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
254
183
  }, {
255
184
  token : keywordMapper,
256
185
  regex : identifierRe
257
186
  }, {
258
187
  token : "keyword.operator",
259
- regex : /--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,
188
+ regex : /--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
260
189
  next : "start"
261
190
  }, {
262
191
  token : "punctuation.operator",
263
- regex : /\?|\:|\,|\;|\./,
192
+ regex : /[?:,;.]/,
264
193
  next : "start"
265
194
  }, {
266
195
  token : "paren.lparen",
@@ -269,10 +198,6 @@ var JavaScriptHighlightRules = function() {
269
198
  }, {
270
199
  token : "paren.rparen",
271
200
  regex : /[\])}]/
272
- }, {
273
- token : "keyword.operator",
274
- regex : /\/=?/,
275
- next : "start"
276
201
  }, {
277
202
  token: "comment",
278
203
  regex: /^#!.*$/
@@ -333,7 +258,7 @@ var JavaScriptHighlightRules = function() {
333
258
  ],
334
259
  "regex_character_class": [
335
260
  {
336
- token: "regexp.keyword.operator",
261
+ token: "regexp.charclass.keyword.operator",
337
262
  regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
338
263
  }, {
339
264
  token: "constant.language.escape",
@@ -415,9 +340,49 @@ var JavaScriptHighlightRules = function() {
415
340
  }
416
341
  ]
417
342
  };
418
-
343
+
344
+
345
+ if (!options || !options.noES6) {
346
+ this.$rules.no_regex.unshift({
347
+ regex: "[{}]", onMatch: function(val, state, stack) {
348
+ this.next = val == "{" ? this.nextState : "";
349
+ if (val == "{" && stack.length) {
350
+ stack.unshift("start", state);
351
+ return "paren";
352
+ }
353
+ if (val == "}" && stack.length) {
354
+ stack.shift();
355
+ this.next = stack.shift();
356
+ if (this.next.indexOf("string") != -1)
357
+ return "paren.quasi.end";
358
+ }
359
+ return val == "{" ? "paren.lparen" : "paren.rparen";
360
+ },
361
+ nextState: "start"
362
+ }, {
363
+ token : "string.quasi.start",
364
+ regex : /`/,
365
+ push : [{
366
+ token : "constant.language.escape",
367
+ regex : escapedRe
368
+ }, {
369
+ token : "paren.quasi.start",
370
+ regex : /\${/,
371
+ push : "start"
372
+ }, {
373
+ token : "string.quasi.end",
374
+ regex : /`/,
375
+ next : "pop"
376
+ }, {
377
+ defaultToken: "string.quasi"
378
+ }]
379
+ });
380
+ }
381
+
419
382
  this.embedRules(DocCommentHighlightRules, "doc-",
420
383
  [ DocCommentHighlightRules.getEndRule("no_regex") ]);
384
+
385
+ this.normalizeRules();
421
386
  };
422
387
 
423
388
  oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
@@ -425,52 +390,8 @@ oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
425
390
  exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
426
391
  });
427
392
 
428
- define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
429
-
430
-
431
- var oop = require("../lib/oop");
432
- var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
433
-
434
- var DocCommentHighlightRules = function() {
435
-
436
- this.$rules = {
437
- "start" : [ {
438
- token : "comment.doc.tag",
439
- regex : "@[\\w\\d_]+" // TODO: fix email addresses
440
- }, {
441
- token : "comment.doc.tag",
442
- regex : "\\bTODO\\b"
443
- }, {
444
- defaultToken : "comment.doc"
445
- }]
446
- };
447
- };
448
-
449
- oop.inherits(DocCommentHighlightRules, TextHighlightRules);
450
-
451
- DocCommentHighlightRules.getStartRule = function(start) {
452
- return {
453
- token : "comment.doc", // doc comment
454
- regex : "\\/\\*(?=\\*)",
455
- next : start
456
- };
457
- };
458
-
459
- DocCommentHighlightRules.getEndRule = function (start) {
460
- return {
461
- token : "comment.doc", // closing comment
462
- regex : "\\*\\/",
463
- next : start
464
- };
465
- };
466
-
467
-
468
- exports.DocCommentHighlightRules = DocCommentHighlightRules;
469
-
470
- });
471
-
472
- define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
473
-
393
+ define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
394
+ "use strict";
474
395
 
475
396
  var Range = require("../range").Range;
476
397
 
@@ -509,8 +430,8 @@ var MatchingBraceOutdent = function() {};
509
430
  exports.MatchingBraceOutdent = MatchingBraceOutdent;
510
431
  });
511
432
 
512
- define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/token_iterator', 'ace/lib/lang'], function(require, exports, module) {
513
-
433
+ define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
434
+ "use strict";
514
435
 
515
436
  var oop = require("../../lib/oop");
516
437
  var Behaviour = require("../behaviour").Behaviour;
@@ -522,83 +443,34 @@ var SAFE_INSERT_IN_TOKENS =
522
443
  var SAFE_INSERT_BEFORE_TOKENS =
523
444
  ["text", "paren.rparen", "punctuation.operator", "comment"];
524
445
 
525
-
526
- var autoInsertedBrackets = 0;
527
- var autoInsertedRow = -1;
528
- var autoInsertedLineEnd = "";
529
- var maybeInsertedBrackets = 0;
530
- var maybeInsertedRow = -1;
531
- var maybeInsertedLineStart = "";
532
- var maybeInsertedLineEnd = "";
533
-
534
- var CstyleBehaviour = function () {
535
-
536
- CstyleBehaviour.isSaneInsertion = function(editor, session) {
537
- var cursor = editor.getCursorPosition();
538
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
539
- if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
540
- var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
541
- if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
542
- return false;
543
- }
544
- iterator.stepForward();
545
- return iterator.getCurrentTokenRow() !== cursor.row ||
546
- this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
547
- };
548
-
549
- CstyleBehaviour.$matchTokenType = function(token, types) {
550
- return types.indexOf(token.type || token) > -1;
551
- };
552
-
553
- CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
554
- var cursor = editor.getCursorPosition();
555
- var line = session.doc.getLine(cursor.row);
556
- if (!this.isAutoInsertedClosing(cursor, line, autoInsertedLineEnd[0]))
557
- autoInsertedBrackets = 0;
558
- autoInsertedRow = cursor.row;
559
- autoInsertedLineEnd = bracket + line.substr(cursor.column);
560
- autoInsertedBrackets++;
561
- };
562
-
563
- CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
564
- var cursor = editor.getCursorPosition();
565
- var line = session.doc.getLine(cursor.row);
566
- if (!this.isMaybeInsertedClosing(cursor, line))
567
- maybeInsertedBrackets = 0;
568
- maybeInsertedRow = cursor.row;
569
- maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
570
- maybeInsertedLineEnd = line.substr(cursor.column);
571
- maybeInsertedBrackets++;
572
- };
573
-
574
- CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
575
- return autoInsertedBrackets > 0 &&
576
- cursor.row === autoInsertedRow &&
577
- bracket === autoInsertedLineEnd[0] &&
578
- line.substr(cursor.column) === autoInsertedLineEnd;
579
- };
580
-
581
- CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
582
- return maybeInsertedBrackets > 0 &&
583
- cursor.row === maybeInsertedRow &&
584
- line.substr(cursor.column) === maybeInsertedLineEnd &&
585
- line.substr(0, cursor.column) == maybeInsertedLineStart;
586
- };
587
-
588
- CstyleBehaviour.popAutoInsertedClosing = function() {
589
- autoInsertedLineEnd = autoInsertedLineEnd.substr(1);
590
- autoInsertedBrackets--;
591
- };
592
-
593
- CstyleBehaviour.clearMaybeInsertedClosing = function() {
594
- maybeInsertedBrackets = 0;
595
- maybeInsertedRow = -1;
446
+ var context;
447
+ var contextCache = {}
448
+ var initContext = function(editor) {
449
+ var id = -1;
450
+ if (editor.multiSelect) {
451
+ id = editor.selection.id;
452
+ if (contextCache.rangeCount != editor.multiSelect.rangeCount)
453
+ contextCache = {rangeCount: editor.multiSelect.rangeCount};
454
+ }
455
+ if (contextCache[id])
456
+ return context = contextCache[id];
457
+ context = contextCache[id] = {
458
+ autoInsertedBrackets: 0,
459
+ autoInsertedRow: -1,
460
+ autoInsertedLineEnd: "",
461
+ maybeInsertedBrackets: 0,
462
+ maybeInsertedRow: -1,
463
+ maybeInsertedLineStart: "",
464
+ maybeInsertedLineEnd: ""
596
465
  };
466
+ };
597
467
 
598
- this.add("braces", "insertion", function (state, action, editor, session, text) {
468
+ var CstyleBehaviour = function() {
469
+ this.add("braces", "insertion", function(state, action, editor, session, text) {
599
470
  var cursor = editor.getCursorPosition();
600
471
  var line = session.doc.getLine(cursor.row);
601
472
  if (text == '{') {
473
+ initContext(editor);
602
474
  var selection = editor.getSelectionRange();
603
475
  var selected = session.doc.getTextRange(selection);
604
476
  if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
@@ -622,6 +494,7 @@ var CstyleBehaviour = function () {
622
494
  }
623
495
  }
624
496
  } else if (text == '}') {
497
+ initContext(editor);
625
498
  var rightChar = line.substring(cursor.column, cursor.column + 1);
626
499
  if (rightChar == '}') {
627
500
  var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
@@ -634,9 +507,10 @@ var CstyleBehaviour = function () {
634
507
  }
635
508
  }
636
509
  } else if (text == "\n" || text == "\r\n") {
510
+ initContext(editor);
637
511
  var closing = "";
638
512
  if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
639
- closing = lang.stringRepeat("}", maybeInsertedBrackets);
513
+ closing = lang.stringRepeat("}", context.maybeInsertedBrackets);
640
514
  CstyleBehaviour.clearMaybeInsertedClosing();
641
515
  }
642
516
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -648,6 +522,7 @@ var CstyleBehaviour = function () {
648
522
  } else if (closing) {
649
523
  var next_indent = this.$getIndent(line);
650
524
  } else {
525
+ CstyleBehaviour.clearMaybeInsertedClosing();
651
526
  return;
652
527
  }
653
528
  var indent = next_indent + session.getTabString();
@@ -661,22 +536,24 @@ var CstyleBehaviour = function () {
661
536
  }
662
537
  });
663
538
 
664
- this.add("braces", "deletion", function (state, action, editor, session, range) {
539
+ this.add("braces", "deletion", function(state, action, editor, session, range) {
665
540
  var selected = session.doc.getTextRange(range);
666
541
  if (!range.isMultiLine() && selected == '{') {
542
+ initContext(editor);
667
543
  var line = session.doc.getLine(range.start.row);
668
544
  var rightChar = line.substring(range.end.column, range.end.column + 1);
669
545
  if (rightChar == '}') {
670
546
  range.end.column++;
671
547
  return range;
672
548
  } else {
673
- maybeInsertedBrackets--;
549
+ context.maybeInsertedBrackets--;
674
550
  }
675
551
  }
676
552
  });
677
553
 
678
- this.add("parens", "insertion", function (state, action, editor, session, text) {
554
+ this.add("parens", "insertion", function(state, action, editor, session, text) {
679
555
  if (text == '(') {
556
+ initContext(editor);
680
557
  var selection = editor.getSelectionRange();
681
558
  var selected = session.doc.getTextRange(selection);
682
559
  if (selected !== "" && editor.getWrapBehavioursEnabled()) {
@@ -692,6 +569,7 @@ var CstyleBehaviour = function () {
692
569
  };
693
570
  }
694
571
  } else if (text == ')') {
572
+ initContext(editor);
695
573
  var cursor = editor.getCursorPosition();
696
574
  var line = session.doc.getLine(cursor.row);
697
575
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -708,9 +586,10 @@ var CstyleBehaviour = function () {
708
586
  }
709
587
  });
710
588
 
711
- this.add("parens", "deletion", function (state, action, editor, session, range) {
589
+ this.add("parens", "deletion", function(state, action, editor, session, range) {
712
590
  var selected = session.doc.getTextRange(range);
713
591
  if (!range.isMultiLine() && selected == '(') {
592
+ initContext(editor);
714
593
  var line = session.doc.getLine(range.start.row);
715
594
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
716
595
  if (rightChar == ')') {
@@ -720,8 +599,9 @@ var CstyleBehaviour = function () {
720
599
  }
721
600
  });
722
601
 
723
- this.add("brackets", "insertion", function (state, action, editor, session, text) {
602
+ this.add("brackets", "insertion", function(state, action, editor, session, text) {
724
603
  if (text == '[') {
604
+ initContext(editor);
725
605
  var selection = editor.getSelectionRange();
726
606
  var selected = session.doc.getTextRange(selection);
727
607
  if (selected !== "" && editor.getWrapBehavioursEnabled()) {
@@ -737,6 +617,7 @@ var CstyleBehaviour = function () {
737
617
  };
738
618
  }
739
619
  } else if (text == ']') {
620
+ initContext(editor);
740
621
  var cursor = editor.getCursorPosition();
741
622
  var line = session.doc.getLine(cursor.row);
742
623
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -753,9 +634,10 @@ var CstyleBehaviour = function () {
753
634
  }
754
635
  });
755
636
 
756
- this.add("brackets", "deletion", function (state, action, editor, session, range) {
637
+ this.add("brackets", "deletion", function(state, action, editor, session, range) {
757
638
  var selected = session.doc.getTextRange(range);
758
639
  if (!range.isMultiLine() && selected == '[') {
640
+ initContext(editor);
759
641
  var line = session.doc.getLine(range.start.row);
760
642
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
761
643
  if (rightChar == ']') {
@@ -765,8 +647,9 @@ var CstyleBehaviour = function () {
765
647
  }
766
648
  });
767
649
 
768
- this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
650
+ this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
769
651
  if (text == '"' || text == "'") {
652
+ initContext(editor);
770
653
  var quote = text;
771
654
  var selection = editor.getSelectionRange();
772
655
  var selected = session.doc.getTextRange(selection);
@@ -818,9 +701,10 @@ var CstyleBehaviour = function () {
818
701
  }
819
702
  });
820
703
 
821
- this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
704
+ this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
822
705
  var selected = session.doc.getTextRange(range);
823
706
  if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
707
+ initContext(editor);
824
708
  var line = session.doc.getLine(range.start.row);
825
709
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
826
710
  if (rightChar == selected) {
@@ -832,13 +716,80 @@ var CstyleBehaviour = function () {
832
716
 
833
717
  };
834
718
 
719
+
720
+ CstyleBehaviour.isSaneInsertion = function(editor, session) {
721
+ var cursor = editor.getCursorPosition();
722
+ var iterator = new TokenIterator(session, cursor.row, cursor.column);
723
+ if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
724
+ var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
725
+ if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
726
+ return false;
727
+ }
728
+ iterator.stepForward();
729
+ return iterator.getCurrentTokenRow() !== cursor.row ||
730
+ this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
731
+ };
732
+
733
+ CstyleBehaviour.$matchTokenType = function(token, types) {
734
+ return types.indexOf(token.type || token) > -1;
735
+ };
736
+
737
+ CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
738
+ var cursor = editor.getCursorPosition();
739
+ var line = session.doc.getLine(cursor.row);
740
+ if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))
741
+ context.autoInsertedBrackets = 0;
742
+ context.autoInsertedRow = cursor.row;
743
+ context.autoInsertedLineEnd = bracket + line.substr(cursor.column);
744
+ context.autoInsertedBrackets++;
745
+ };
746
+
747
+ CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
748
+ var cursor = editor.getCursorPosition();
749
+ var line = session.doc.getLine(cursor.row);
750
+ if (!this.isMaybeInsertedClosing(cursor, line))
751
+ context.maybeInsertedBrackets = 0;
752
+ context.maybeInsertedRow = cursor.row;
753
+ context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
754
+ context.maybeInsertedLineEnd = line.substr(cursor.column);
755
+ context.maybeInsertedBrackets++;
756
+ };
757
+
758
+ CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
759
+ return context.autoInsertedBrackets > 0 &&
760
+ cursor.row === context.autoInsertedRow &&
761
+ bracket === context.autoInsertedLineEnd[0] &&
762
+ line.substr(cursor.column) === context.autoInsertedLineEnd;
763
+ };
764
+
765
+ CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
766
+ return context.maybeInsertedBrackets > 0 &&
767
+ cursor.row === context.maybeInsertedRow &&
768
+ line.substr(cursor.column) === context.maybeInsertedLineEnd &&
769
+ line.substr(0, cursor.column) == context.maybeInsertedLineStart;
770
+ };
771
+
772
+ CstyleBehaviour.popAutoInsertedClosing = function() {
773
+ context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);
774
+ context.autoInsertedBrackets--;
775
+ };
776
+
777
+ CstyleBehaviour.clearMaybeInsertedClosing = function() {
778
+ if (context) {
779
+ context.maybeInsertedBrackets = 0;
780
+ context.maybeInsertedRow = -1;
781
+ }
782
+ };
783
+
784
+
785
+
835
786
  oop.inherits(CstyleBehaviour, Behaviour);
836
787
 
837
788
  exports.CstyleBehaviour = CstyleBehaviour;
838
789
  });
839
790
 
840
- define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
841
-
791
+ define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
792
+ "use strict";
842
793
 
843
794
  var oop = require("../../lib/oop");
844
795
  var Range = require("../../range").Range;
@@ -931,3 +882,90 @@ oop.inherits(FoldMode, BaseFoldMode);
931
882
  }).call(FoldMode.prototype);
932
883
 
933
884
  });
885
+
886
+ define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
887
+ "use strict";
888
+
889
+ var oop = require("../lib/oop");
890
+ var TextMode = require("./text").Mode;
891
+ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
892
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
893
+ var Range = require("../range").Range;
894
+ var WorkerClient = require("../worker/worker_client").WorkerClient;
895
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
896
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
897
+
898
+ var Mode = function() {
899
+ this.HighlightRules = JavaScriptHighlightRules;
900
+
901
+ this.$outdent = new MatchingBraceOutdent();
902
+ this.$behaviour = new CstyleBehaviour();
903
+ this.foldingRules = new CStyleFoldMode();
904
+ };
905
+ oop.inherits(Mode, TextMode);
906
+
907
+ (function() {
908
+
909
+ this.lineCommentStart = "//";
910
+ this.blockComment = {start: "/*", end: "*/"};
911
+
912
+ this.getNextLineIndent = function(state, line, tab) {
913
+ var indent = this.$getIndent(line);
914
+
915
+ var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
916
+ var tokens = tokenizedLine.tokens;
917
+ var endState = tokenizedLine.state;
918
+
919
+ if (tokens.length && tokens[tokens.length-1].type == "comment") {
920
+ return indent;
921
+ }
922
+
923
+ if (state == "start" || state == "no_regex") {
924
+ var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);
925
+ if (match) {
926
+ indent += tab;
927
+ }
928
+ } else if (state == "doc-start") {
929
+ if (endState == "start" || endState == "no_regex") {
930
+ return "";
931
+ }
932
+ var match = line.match(/^\s*(\/?)\*/);
933
+ if (match) {
934
+ if (match[1]) {
935
+ indent += " ";
936
+ }
937
+ indent += "* ";
938
+ }
939
+ }
940
+
941
+ return indent;
942
+ };
943
+
944
+ this.checkOutdent = function(state, line, input) {
945
+ return this.$outdent.checkOutdent(line, input);
946
+ };
947
+
948
+ this.autoOutdent = function(state, doc, row) {
949
+ this.$outdent.autoOutdent(doc, row);
950
+ };
951
+
952
+ this.createWorker = function(session) {
953
+ var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
954
+ worker.attachToDocument(session.getDocument());
955
+
956
+ worker.on("jslint", function(results) {
957
+ session.setAnnotations(results.data);
958
+ });
959
+
960
+ worker.on("terminate", function() {
961
+ session.clearAnnotations();
962
+ });
963
+
964
+ return worker;
965
+ };
966
+
967
+ this.$id = "ace/mode/javascript";
968
+ }).call(Mode.prototype);
969
+
970
+ exports.Mode = Mode;
971
+ });