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,64 +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
- *
30
- * Contributor(s):
31
- *
32
- *
33
- *
34
- * ***** END LICENSE BLOCK ***** */
35
-
36
- define('ace/mode/batchfile', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/batchfile_highlight_rules', 'ace/mode/folding/cstyle'], function(require, exports, module) {
37
-
38
-
39
- var oop = require("../lib/oop");
40
- var TextMode = require("./text").Mode;
41
- var Tokenizer = require("../tokenizer").Tokenizer;
42
- var BatchFileHighlightRules = require("./batchfile_highlight_rules").BatchFileHighlightRules;
43
- var FoldMode = require("./folding/cstyle").FoldMode;
44
-
45
- var Mode = function() {
46
- this.HighlightRules = BatchFileHighlightRules;
47
- this.foldingRules = new FoldMode();
48
- };
49
- oop.inherits(Mode, TextMode);
50
-
51
- (function() {
52
- this.lineCommentStart = "::";
53
- this.blockComment = "";
54
- this.$id = "ace/mode/batchfile";
55
- }).call(Mode.prototype);
56
-
57
- exports.Mode = Mode;
58
- });
59
-
60
- define('ace/mode/batchfile_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
61
-
1
+ define("ace/mode/batchfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
+ "use strict";
62
3
 
63
4
  var oop = require("../lib/oop");
64
5
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
@@ -117,8 +58,8 @@ oop.inherits(BatchFileHighlightRules, TextHighlightRules);
117
58
  exports.BatchFileHighlightRules = BatchFileHighlightRules;
118
59
  });
119
60
 
120
- define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
121
-
61
+ define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
62
+ "use strict";
122
63
 
123
64
  var oop = require("../../lib/oop");
124
65
  var Range = require("../../range").Range;
@@ -211,3 +152,26 @@ oop.inherits(FoldMode, BaseFoldMode);
211
152
  }).call(FoldMode.prototype);
212
153
 
213
154
  });
155
+
156
+ define("ace/mode/batchfile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/batchfile_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
157
+ "use strict";
158
+
159
+ var oop = require("../lib/oop");
160
+ var TextMode = require("./text").Mode;
161
+ var BatchFileHighlightRules = require("./batchfile_highlight_rules").BatchFileHighlightRules;
162
+ var FoldMode = require("./folding/cstyle").FoldMode;
163
+
164
+ var Mode = function() {
165
+ this.HighlightRules = BatchFileHighlightRules;
166
+ this.foldingRules = new FoldMode();
167
+ };
168
+ oop.inherits(Mode, TextMode);
169
+
170
+ (function() {
171
+ this.lineCommentStart = "::";
172
+ this.blockComment = "";
173
+ this.$id = "ace/mode/batchfile";
174
+ }).call(Mode.prototype);
175
+
176
+ exports.Mode = Mode;
177
+ });
@@ -1,74 +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/c9search', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/c9search_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/folding/c9search'], 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 C9SearchHighlightRules = require("./c9search_highlight_rules").C9SearchHighlightRules;
38
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
39
- var C9StyleFoldMode = require("./folding/c9search").FoldMode;
40
-
41
- var Mode = function() {
42
- this.HighlightRules = C9SearchHighlightRules;
43
- this.$outdent = new MatchingBraceOutdent();
44
- this.foldingRules = new C9StyleFoldMode();
45
- };
46
- oop.inherits(Mode, TextMode);
47
-
48
- (function() {
49
-
50
- this.getNextLineIndent = function(state, line, tab) {
51
- var indent = this.$getIndent(line);
52
- return indent;
53
- };
54
-
55
- this.checkOutdent = function(state, line, input) {
56
- return this.$outdent.checkOutdent(line, input);
57
- };
58
-
59
- this.autoOutdent = function(state, doc, row) {
60
- this.$outdent.autoOutdent(doc, row);
61
- };
62
-
63
- this.$id = "ace/mode/c9search";
64
- }).call(Mode.prototype);
65
-
66
- exports.Mode = Mode;
67
-
68
- });
69
-
70
- define('ace/mode/c9search_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
71
-
1
+ define("ace/mode/c9search_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
+ "use strict";
72
3
 
73
4
  var oop = require("../lib/oop");
74
5
  var lang = require("../lib/lang");
@@ -102,7 +33,7 @@ var C9SearchHighlightRules = function() {
102
33
 
103
34
  var m;
104
35
  var last = 0;
105
- if (regex) {
36
+ if (regex && regex.exec) {
106
37
  regex.lastIndex = 0;
107
38
  while (m = regex.exec(str)) {
108
39
  var skipped = str.substring(last, m.index);
@@ -128,40 +59,24 @@ var C9SearchHighlightRules = function() {
128
59
  regex : "Searching for .*$",
129
60
  onMatch: function(val, state, stack) {
130
61
  var parts = val.split("\x01");
131
- var search = parts[1];
132
62
  if (parts.length < 3)
133
63
  return "text";
134
- var options = parts[2] == " in" ? parts[5] : parts[6];
135
64
 
136
- if (!/regex/.test(options))
137
- search = lang.escapeRegExp(search);
138
- if (/whole/.test(options))
139
- search = "\\b" + search + "\\b";
140
- var regex = search && safeCreateRegexp(
141
- "(" + search + ")",
142
- / sensitive/.test(options) ? "g" : "ig"
143
- );
144
- if (regex) {
145
- stack[0] = state;
146
- stack[1] = regex;
147
- }
65
+ var options, search, replace;
148
66
 
149
67
  var i = 0;
150
- var tokens = [
151
- {
152
- value: parts[i++] + "'",
153
- type: "text"
154
- },
155
- {
156
- value: parts[i++],
157
- type: "text" // "c9searchresults.keyword"
158
- },
159
- {
160
- value: "'" + parts[i++],
161
- type: "text"
162
- }
163
- ];
68
+ var tokens = [{
69
+ value: parts[i++] + "'",
70
+ type: "text"
71
+ }, {
72
+ value: search = parts[i++],
73
+ type: "text" // "c9searchresults.keyword"
74
+ }, {
75
+ value: "'" + parts[i++],
76
+ type: "text"
77
+ }];
164
78
  if (parts[2] !== " in") {
79
+ replace = parts[i];
165
80
  tokens.push({
166
81
  value: "'" + parts[i++] + "'",
167
82
  type: "text"
@@ -175,6 +90,7 @@ var C9SearchHighlightRules = function() {
175
90
  type: "text"
176
91
  });
177
92
  if (parts[i+1]) {
93
+ options = parts[i+1];
178
94
  tokens.push({
179
95
  value: "(" + parts[i+1] + ")",
180
96
  type: "text"
@@ -183,11 +99,33 @@ var C9SearchHighlightRules = function() {
183
99
  } else {
184
100
  i -= 1;
185
101
  }
186
- while (i++ < parts.length)
102
+ while (i++ < parts.length) {
187
103
  parts[i] && tokens.push({
188
104
  value: parts[i],
189
105
  type: "text"
190
106
  });
107
+ }
108
+
109
+ if (replace) {
110
+ search = replace;
111
+ options = "";
112
+ }
113
+
114
+ if (search) {
115
+ if (!/regex/.test(options))
116
+ search = lang.escapeRegExp(search);
117
+ if (/whole/.test(options))
118
+ search = "\\b" + search + "\\b";
119
+ }
120
+
121
+ var regex = search && safeCreateRegexp(
122
+ "(" + search + ")",
123
+ / sensitive/.test(options) ? "g" : "ig"
124
+ );
125
+ if (regex) {
126
+ stack[0] = state;
127
+ stack[1] = regex;
128
+ }
191
129
 
192
130
  return tokens;
193
131
  }
@@ -206,8 +144,8 @@ exports.C9SearchHighlightRules = C9SearchHighlightRules;
206
144
 
207
145
  });
208
146
 
209
- define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
210
-
147
+ define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
148
+ "use strict";
211
149
 
212
150
  var Range = require("../range").Range;
213
151
 
@@ -246,9 +184,8 @@ var MatchingBraceOutdent = function() {};
246
184
  exports.MatchingBraceOutdent = MatchingBraceOutdent;
247
185
  });
248
186
 
249
-
250
- define('ace/mode/folding/c9search', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
251
-
187
+ define("ace/mode/folding/c9search",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
188
+ "use strict";
252
189
 
253
190
  var oop = require("../../lib/oop");
254
191
  var Range = require("../../range").Range;
@@ -268,24 +205,30 @@ oop.inherits(FoldMode, BaseFoldMode);
268
205
  var level1 = /^(Found.*|Searching for.*)$/;
269
206
  var level2 = /^(\S.*\:|\s*)$/;
270
207
  var re = level1.test(line) ? level1 : level2;
208
+
209
+ var startRow = row;
210
+ var endRow = row;
271
211
 
272
212
  if (this.foldingStartMarker.test(line)) {
273
213
  for (var i = row + 1, l = session.getLength(); i < l; i++) {
274
214
  if (re.test(lines[i]))
275
215
  break;
276
216
  }
277
-
278
- return new Range(row, line.length, i, 0);
217
+ endRow = i;
279
218
  }
280
-
281
- if (this.foldingStopMarker.test(line)) {
219
+ else if (this.foldingStopMarker.test(line)) {
282
220
  for (var i = row - 1; i >= 0; i--) {
283
221
  line = lines[i];
284
222
  if (re.test(line))
285
223
  break;
286
224
  }
287
-
288
- return new Range(i, line.length, row, 0);
225
+ startRow = i;
226
+ }
227
+ if (startRow != endRow) {
228
+ var col = line.length;
229
+ if (re === level1)
230
+ col = line.search(/\(Found[^)]+\)$|$/);
231
+ return new Range(startRow, col, endRow, 0);
289
232
  }
290
233
  };
291
234
 
@@ -293,3 +236,40 @@ oop.inherits(FoldMode, BaseFoldMode);
293
236
 
294
237
  });
295
238
 
239
+ define("ace/mode/c9search",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c9search_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/c9search"], function(require, exports, module) {
240
+ "use strict";
241
+
242
+ var oop = require("../lib/oop");
243
+ var TextMode = require("./text").Mode;
244
+ var C9SearchHighlightRules = require("./c9search_highlight_rules").C9SearchHighlightRules;
245
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
246
+ var C9StyleFoldMode = require("./folding/c9search").FoldMode;
247
+
248
+ var Mode = function() {
249
+ this.HighlightRules = C9SearchHighlightRules;
250
+ this.$outdent = new MatchingBraceOutdent();
251
+ this.foldingRules = new C9StyleFoldMode();
252
+ };
253
+ oop.inherits(Mode, TextMode);
254
+
255
+ (function() {
256
+
257
+ this.getNextLineIndent = function(state, line, tab) {
258
+ var indent = this.$getIndent(line);
259
+ return indent;
260
+ };
261
+
262
+ this.checkOutdent = function(state, line, input) {
263
+ return this.$outdent.checkOutdent(line, input);
264
+ };
265
+
266
+ this.autoOutdent = function(state, doc, row) {
267
+ this.$outdent.autoOutdent(doc, row);
268
+ };
269
+
270
+ this.$id = "ace/mode/c9search";
271
+ }).call(Mode.prototype);
272
+
273
+ exports.Mode = Mode;
274
+
275
+ });
@@ -1,112 +1,54 @@
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/c_cpp', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/c_cpp_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', '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 c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules;
38
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
39
- var Range = require("../range").Range;
40
- var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
41
- var CStyleFoldMode = require("./folding/cstyle").FoldMode;
42
-
43
- var Mode = function() {
44
- this.HighlightRules = c_cppHighlightRules;
5
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
45
6
 
46
- this.$outdent = new MatchingBraceOutdent();
47
- this.$behaviour = new CstyleBehaviour();
7
+ var DocCommentHighlightRules = function() {
48
8
 
49
- this.foldingRules = new CStyleFoldMode();
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
+ }]
19
+ };
50
20
  };
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
21
 
65
- if (tokens.length && tokens[tokens.length-1].type == "comment") {
66
- return indent;
67
- }
68
-
69
- if (state == "start") {
70
- var match = line.match(/^.*[\{\(\[]\s*$/);
71
- if (match) {
72
- indent += tab;
73
- }
74
- } else if (state == "doc-start") {
75
- if (endState == "start") {
76
- return "";
77
- }
78
- var match = line.match(/^\s*(\/?)\*/);
79
- if (match) {
80
- if (match[1]) {
81
- indent += " ";
82
- }
83
- indent += "* ";
84
- }
85
- }
22
+ oop.inherits(DocCommentHighlightRules, TextHighlightRules);
86
23
 
87
- return indent;
24
+ DocCommentHighlightRules.getStartRule = function(start) {
25
+ return {
26
+ token : "comment.doc", // doc comment
27
+ regex : "\\/\\*(?=\\*)",
28
+ next : start
88
29
  };
30
+ };
89
31
 
90
- this.checkOutdent = function(state, line, input) {
91
- return this.$outdent.checkOutdent(line, input);
32
+ DocCommentHighlightRules.getEndRule = function (start) {
33
+ return {
34
+ token : "comment.doc", // closing comment
35
+ regex : "\\*\\/",
36
+ next : start
92
37
  };
38
+ };
93
39
 
94
- this.autoOutdent = function(state, doc, row) {
95
- this.$outdent.autoOutdent(doc, row);
96
- };
97
40
 
98
- this.$id = "ace/mode/c_cpp";
99
- }).call(Mode.prototype);
41
+ exports.DocCommentHighlightRules = DocCommentHighlightRules;
100
42
 
101
- exports.Mode = Mode;
102
43
  });
103
- define('ace/mode/c_cpp_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
104
44
 
45
+ define("ace/mode/c_cpp_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";
105
47
 
106
48
  var oop = require("../lib/oop");
107
49
  var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
108
50
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
109
- var cFunctions = exports.cFunctions = "\\s*\\bhypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len)))\\b"
51
+ var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b"
110
52
 
111
53
  var c_cppHighlightRules = function() {
112
54
 
@@ -122,8 +64,9 @@ var c_cppHighlightRules = function() {
122
64
  );
123
65
 
124
66
  var storageModifiers = (
125
- "const|extern|register|restrict|static|volatile|inline|private:|" +
126
- "protected:|public:|friend|explicit|virtual|export|mutable|typename"
67
+ "const|extern|register|restrict|static|volatile|inline|private|" +
68
+ "protected|public|friend|explicit|virtual|export|mutable|typename|" +
69
+ "constexpr|new|delete"
127
70
  );
128
71
 
129
72
  var keywordOperators = (
@@ -278,52 +221,8 @@ oop.inherits(c_cppHighlightRules, TextHighlightRules);
278
221
  exports.c_cppHighlightRules = c_cppHighlightRules;
279
222
  });
280
223
 
281
- define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
282
-
283
-
284
- var oop = require("../lib/oop");
285
- var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
286
-
287
- var DocCommentHighlightRules = function() {
288
-
289
- this.$rules = {
290
- "start" : [ {
291
- token : "comment.doc.tag",
292
- regex : "@[\\w\\d_]+" // TODO: fix email addresses
293
- }, {
294
- token : "comment.doc.tag",
295
- regex : "\\bTODO\\b"
296
- }, {
297
- defaultToken : "comment.doc"
298
- }]
299
- };
300
- };
301
-
302
- oop.inherits(DocCommentHighlightRules, TextHighlightRules);
303
-
304
- DocCommentHighlightRules.getStartRule = function(start) {
305
- return {
306
- token : "comment.doc", // doc comment
307
- regex : "\\/\\*(?=\\*)",
308
- next : start
309
- };
310
- };
311
-
312
- DocCommentHighlightRules.getEndRule = function (start) {
313
- return {
314
- token : "comment.doc", // closing comment
315
- regex : "\\*\\/",
316
- next : start
317
- };
318
- };
319
-
320
-
321
- exports.DocCommentHighlightRules = DocCommentHighlightRules;
322
-
323
- });
324
-
325
- define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
326
-
224
+ define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
225
+ "use strict";
327
226
 
328
227
  var Range = require("../range").Range;
329
228
 
@@ -362,8 +261,8 @@ var MatchingBraceOutdent = function() {};
362
261
  exports.MatchingBraceOutdent = MatchingBraceOutdent;
363
262
  });
364
263
 
365
- define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/token_iterator', 'ace/lib/lang'], function(require, exports, module) {
366
-
264
+ define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
265
+ "use strict";
367
266
 
368
267
  var oop = require("../../lib/oop");
369
268
  var Behaviour = require("../behaviour").Behaviour;
@@ -375,83 +274,34 @@ var SAFE_INSERT_IN_TOKENS =
375
274
  var SAFE_INSERT_BEFORE_TOKENS =
376
275
  ["text", "paren.rparen", "punctuation.operator", "comment"];
377
276
 
378
-
379
- var autoInsertedBrackets = 0;
380
- var autoInsertedRow = -1;
381
- var autoInsertedLineEnd = "";
382
- var maybeInsertedBrackets = 0;
383
- var maybeInsertedRow = -1;
384
- var maybeInsertedLineStart = "";
385
- var maybeInsertedLineEnd = "";
386
-
387
- var CstyleBehaviour = function () {
388
-
389
- CstyleBehaviour.isSaneInsertion = function(editor, session) {
390
- var cursor = editor.getCursorPosition();
391
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
392
- if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
393
- var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
394
- if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
395
- return false;
396
- }
397
- iterator.stepForward();
398
- return iterator.getCurrentTokenRow() !== cursor.row ||
399
- this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
400
- };
401
-
402
- CstyleBehaviour.$matchTokenType = function(token, types) {
403
- return types.indexOf(token.type || token) > -1;
404
- };
405
-
406
- CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
407
- var cursor = editor.getCursorPosition();
408
- var line = session.doc.getLine(cursor.row);
409
- if (!this.isAutoInsertedClosing(cursor, line, autoInsertedLineEnd[0]))
410
- autoInsertedBrackets = 0;
411
- autoInsertedRow = cursor.row;
412
- autoInsertedLineEnd = bracket + line.substr(cursor.column);
413
- autoInsertedBrackets++;
414
- };
415
-
416
- CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
417
- var cursor = editor.getCursorPosition();
418
- var line = session.doc.getLine(cursor.row);
419
- if (!this.isMaybeInsertedClosing(cursor, line))
420
- maybeInsertedBrackets = 0;
421
- maybeInsertedRow = cursor.row;
422
- maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
423
- maybeInsertedLineEnd = line.substr(cursor.column);
424
- maybeInsertedBrackets++;
425
- };
426
-
427
- CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
428
- return autoInsertedBrackets > 0 &&
429
- cursor.row === autoInsertedRow &&
430
- bracket === autoInsertedLineEnd[0] &&
431
- line.substr(cursor.column) === autoInsertedLineEnd;
432
- };
433
-
434
- CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
435
- return maybeInsertedBrackets > 0 &&
436
- cursor.row === maybeInsertedRow &&
437
- line.substr(cursor.column) === maybeInsertedLineEnd &&
438
- line.substr(0, cursor.column) == maybeInsertedLineStart;
439
- };
440
-
441
- CstyleBehaviour.popAutoInsertedClosing = function() {
442
- autoInsertedLineEnd = autoInsertedLineEnd.substr(1);
443
- autoInsertedBrackets--;
444
- };
445
-
446
- CstyleBehaviour.clearMaybeInsertedClosing = function() {
447
- maybeInsertedBrackets = 0;
448
- maybeInsertedRow = -1;
277
+ var context;
278
+ var contextCache = {}
279
+ var initContext = function(editor) {
280
+ var id = -1;
281
+ if (editor.multiSelect) {
282
+ id = editor.selection.id;
283
+ if (contextCache.rangeCount != editor.multiSelect.rangeCount)
284
+ contextCache = {rangeCount: editor.multiSelect.rangeCount};
285
+ }
286
+ if (contextCache[id])
287
+ return context = contextCache[id];
288
+ context = contextCache[id] = {
289
+ autoInsertedBrackets: 0,
290
+ autoInsertedRow: -1,
291
+ autoInsertedLineEnd: "",
292
+ maybeInsertedBrackets: 0,
293
+ maybeInsertedRow: -1,
294
+ maybeInsertedLineStart: "",
295
+ maybeInsertedLineEnd: ""
449
296
  };
297
+ };
450
298
 
451
- this.add("braces", "insertion", function (state, action, editor, session, text) {
299
+ var CstyleBehaviour = function() {
300
+ this.add("braces", "insertion", function(state, action, editor, session, text) {
452
301
  var cursor = editor.getCursorPosition();
453
302
  var line = session.doc.getLine(cursor.row);
454
303
  if (text == '{') {
304
+ initContext(editor);
455
305
  var selection = editor.getSelectionRange();
456
306
  var selected = session.doc.getTextRange(selection);
457
307
  if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
@@ -475,6 +325,7 @@ var CstyleBehaviour = function () {
475
325
  }
476
326
  }
477
327
  } else if (text == '}') {
328
+ initContext(editor);
478
329
  var rightChar = line.substring(cursor.column, cursor.column + 1);
479
330
  if (rightChar == '}') {
480
331
  var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
@@ -487,9 +338,10 @@ var CstyleBehaviour = function () {
487
338
  }
488
339
  }
489
340
  } else if (text == "\n" || text == "\r\n") {
341
+ initContext(editor);
490
342
  var closing = "";
491
343
  if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
492
- closing = lang.stringRepeat("}", maybeInsertedBrackets);
344
+ closing = lang.stringRepeat("}", context.maybeInsertedBrackets);
493
345
  CstyleBehaviour.clearMaybeInsertedClosing();
494
346
  }
495
347
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -501,6 +353,7 @@ var CstyleBehaviour = function () {
501
353
  } else if (closing) {
502
354
  var next_indent = this.$getIndent(line);
503
355
  } else {
356
+ CstyleBehaviour.clearMaybeInsertedClosing();
504
357
  return;
505
358
  }
506
359
  var indent = next_indent + session.getTabString();
@@ -514,22 +367,24 @@ var CstyleBehaviour = function () {
514
367
  }
515
368
  });
516
369
 
517
- this.add("braces", "deletion", function (state, action, editor, session, range) {
370
+ this.add("braces", "deletion", function(state, action, editor, session, range) {
518
371
  var selected = session.doc.getTextRange(range);
519
372
  if (!range.isMultiLine() && selected == '{') {
373
+ initContext(editor);
520
374
  var line = session.doc.getLine(range.start.row);
521
375
  var rightChar = line.substring(range.end.column, range.end.column + 1);
522
376
  if (rightChar == '}') {
523
377
  range.end.column++;
524
378
  return range;
525
379
  } else {
526
- maybeInsertedBrackets--;
380
+ context.maybeInsertedBrackets--;
527
381
  }
528
382
  }
529
383
  });
530
384
 
531
- this.add("parens", "insertion", function (state, action, editor, session, text) {
385
+ this.add("parens", "insertion", function(state, action, editor, session, text) {
532
386
  if (text == '(') {
387
+ initContext(editor);
533
388
  var selection = editor.getSelectionRange();
534
389
  var selected = session.doc.getTextRange(selection);
535
390
  if (selected !== "" && editor.getWrapBehavioursEnabled()) {
@@ -545,6 +400,7 @@ var CstyleBehaviour = function () {
545
400
  };
546
401
  }
547
402
  } else if (text == ')') {
403
+ initContext(editor);
548
404
  var cursor = editor.getCursorPosition();
549
405
  var line = session.doc.getLine(cursor.row);
550
406
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -561,9 +417,10 @@ var CstyleBehaviour = function () {
561
417
  }
562
418
  });
563
419
 
564
- this.add("parens", "deletion", function (state, action, editor, session, range) {
420
+ this.add("parens", "deletion", function(state, action, editor, session, range) {
565
421
  var selected = session.doc.getTextRange(range);
566
422
  if (!range.isMultiLine() && selected == '(') {
423
+ initContext(editor);
567
424
  var line = session.doc.getLine(range.start.row);
568
425
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
569
426
  if (rightChar == ')') {
@@ -573,8 +430,9 @@ var CstyleBehaviour = function () {
573
430
  }
574
431
  });
575
432
 
576
- this.add("brackets", "insertion", function (state, action, editor, session, text) {
433
+ this.add("brackets", "insertion", function(state, action, editor, session, text) {
577
434
  if (text == '[') {
435
+ initContext(editor);
578
436
  var selection = editor.getSelectionRange();
579
437
  var selected = session.doc.getTextRange(selection);
580
438
  if (selected !== "" && editor.getWrapBehavioursEnabled()) {
@@ -590,6 +448,7 @@ var CstyleBehaviour = function () {
590
448
  };
591
449
  }
592
450
  } else if (text == ']') {
451
+ initContext(editor);
593
452
  var cursor = editor.getCursorPosition();
594
453
  var line = session.doc.getLine(cursor.row);
595
454
  var rightChar = line.substring(cursor.column, cursor.column + 1);
@@ -606,9 +465,10 @@ var CstyleBehaviour = function () {
606
465
  }
607
466
  });
608
467
 
609
- this.add("brackets", "deletion", function (state, action, editor, session, range) {
468
+ this.add("brackets", "deletion", function(state, action, editor, session, range) {
610
469
  var selected = session.doc.getTextRange(range);
611
470
  if (!range.isMultiLine() && selected == '[') {
471
+ initContext(editor);
612
472
  var line = session.doc.getLine(range.start.row);
613
473
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
614
474
  if (rightChar == ']') {
@@ -618,8 +478,9 @@ var CstyleBehaviour = function () {
618
478
  }
619
479
  });
620
480
 
621
- this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
481
+ this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
622
482
  if (text == '"' || text == "'") {
483
+ initContext(editor);
623
484
  var quote = text;
624
485
  var selection = editor.getSelectionRange();
625
486
  var selected = session.doc.getTextRange(selection);
@@ -671,9 +532,10 @@ var CstyleBehaviour = function () {
671
532
  }
672
533
  });
673
534
 
674
- this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
535
+ this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
675
536
  var selected = session.doc.getTextRange(range);
676
537
  if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
538
+ initContext(editor);
677
539
  var line = session.doc.getLine(range.start.row);
678
540
  var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
679
541
  if (rightChar == selected) {
@@ -685,13 +547,80 @@ var CstyleBehaviour = function () {
685
547
 
686
548
  };
687
549
 
550
+
551
+ CstyleBehaviour.isSaneInsertion = function(editor, session) {
552
+ var cursor = editor.getCursorPosition();
553
+ var iterator = new TokenIterator(session, cursor.row, cursor.column);
554
+ if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
555
+ var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
556
+ if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
557
+ return false;
558
+ }
559
+ iterator.stepForward();
560
+ return iterator.getCurrentTokenRow() !== cursor.row ||
561
+ this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
562
+ };
563
+
564
+ CstyleBehaviour.$matchTokenType = function(token, types) {
565
+ return types.indexOf(token.type || token) > -1;
566
+ };
567
+
568
+ CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
569
+ var cursor = editor.getCursorPosition();
570
+ var line = session.doc.getLine(cursor.row);
571
+ if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))
572
+ context.autoInsertedBrackets = 0;
573
+ context.autoInsertedRow = cursor.row;
574
+ context.autoInsertedLineEnd = bracket + line.substr(cursor.column);
575
+ context.autoInsertedBrackets++;
576
+ };
577
+
578
+ CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
579
+ var cursor = editor.getCursorPosition();
580
+ var line = session.doc.getLine(cursor.row);
581
+ if (!this.isMaybeInsertedClosing(cursor, line))
582
+ context.maybeInsertedBrackets = 0;
583
+ context.maybeInsertedRow = cursor.row;
584
+ context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
585
+ context.maybeInsertedLineEnd = line.substr(cursor.column);
586
+ context.maybeInsertedBrackets++;
587
+ };
588
+
589
+ CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
590
+ return context.autoInsertedBrackets > 0 &&
591
+ cursor.row === context.autoInsertedRow &&
592
+ bracket === context.autoInsertedLineEnd[0] &&
593
+ line.substr(cursor.column) === context.autoInsertedLineEnd;
594
+ };
595
+
596
+ CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
597
+ return context.maybeInsertedBrackets > 0 &&
598
+ cursor.row === context.maybeInsertedRow &&
599
+ line.substr(cursor.column) === context.maybeInsertedLineEnd &&
600
+ line.substr(0, cursor.column) == context.maybeInsertedLineStart;
601
+ };
602
+
603
+ CstyleBehaviour.popAutoInsertedClosing = function() {
604
+ context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);
605
+ context.autoInsertedBrackets--;
606
+ };
607
+
608
+ CstyleBehaviour.clearMaybeInsertedClosing = function() {
609
+ if (context) {
610
+ context.maybeInsertedBrackets = 0;
611
+ context.maybeInsertedRow = -1;
612
+ }
613
+ };
614
+
615
+
616
+
688
617
  oop.inherits(CstyleBehaviour, Behaviour);
689
618
 
690
619
  exports.CstyleBehaviour = CstyleBehaviour;
691
620
  });
692
621
 
693
- define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
694
-
622
+ define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
623
+ "use strict";
695
624
 
696
625
  var oop = require("../../lib/oop");
697
626
  var Range = require("../../range").Range;
@@ -784,3 +713,75 @@ oop.inherits(FoldMode, BaseFoldMode);
784
713
  }).call(FoldMode.prototype);
785
714
 
786
715
  });
716
+
717
+ define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
718
+ "use strict";
719
+
720
+ var oop = require("../lib/oop");
721
+ var TextMode = require("./text").Mode;
722
+ var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules;
723
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
724
+ var Range = require("../range").Range;
725
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
726
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
727
+
728
+ var Mode = function() {
729
+ this.HighlightRules = c_cppHighlightRules;
730
+
731
+ this.$outdent = new MatchingBraceOutdent();
732
+ this.$behaviour = new CstyleBehaviour();
733
+
734
+ this.foldingRules = new CStyleFoldMode();
735
+ };
736
+ oop.inherits(Mode, TextMode);
737
+
738
+ (function() {
739
+
740
+ this.lineCommentStart = "//";
741
+ this.blockComment = {start: "/*", end: "*/"};
742
+
743
+ this.getNextLineIndent = function(state, line, tab) {
744
+ var indent = this.$getIndent(line);
745
+
746
+ var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
747
+ var tokens = tokenizedLine.tokens;
748
+ var endState = tokenizedLine.state;
749
+
750
+ if (tokens.length && tokens[tokens.length-1].type == "comment") {
751
+ return indent;
752
+ }
753
+
754
+ if (state == "start") {
755
+ var match = line.match(/^.*[\{\(\[]\s*$/);
756
+ if (match) {
757
+ indent += tab;
758
+ }
759
+ } else if (state == "doc-start") {
760
+ if (endState == "start") {
761
+ return "";
762
+ }
763
+ var match = line.match(/^\s*(\/?)\*/);
764
+ if (match) {
765
+ if (match[1]) {
766
+ indent += " ";
767
+ }
768
+ indent += "* ";
769
+ }
770
+ }
771
+
772
+ return indent;
773
+ };
774
+
775
+ this.checkOutdent = function(state, line, input) {
776
+ return this.$outdent.checkOutdent(line, input);
777
+ };
778
+
779
+ this.autoOutdent = function(state, doc, row) {
780
+ this.$outdent.autoOutdent(doc, row);
781
+ };
782
+
783
+ this.$id = "ace/mode/c_cpp";
784
+ }).call(Mode.prototype);
785
+
786
+ exports.Mode = Mode;
787
+ });