aced_rails 0.0.1

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 (255) hide show
  1. data/.gitignore +17 -0
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +49 -0
  6. data/Rakefile +2 -0
  7. data/aced_rails.gemspec +19 -0
  8. data/lib/aced_rails.rb +7 -0
  9. data/lib/aced_rails/engine.rb +4 -0
  10. data/lib/aced_rails/version.rb +3 -0
  11. data/vendor/assets/javascripts/ace/ace-compat-noconflict.js +1 -0
  12. data/vendor/assets/javascripts/ace/ace-compat-uncompressed-noconflict.js +480 -0
  13. data/vendor/assets/javascripts/ace/ace-compat-uncompressed.js +480 -0
  14. data/vendor/assets/javascripts/ace/ace-compat.js +1 -0
  15. data/vendor/assets/javascripts/ace/ace-noconflict.js +10 -0
  16. data/vendor/assets/javascripts/ace/ace-uncompressed-noconflict.js +14649 -0
  17. data/vendor/assets/javascripts/ace/ace-uncompressed.js +14649 -0
  18. data/vendor/assets/javascripts/ace/ace.js +10 -0
  19. data/vendor/assets/javascripts/ace/keybinding-emacs-noconflict.js +1 -0
  20. data/vendor/assets/javascripts/ace/keybinding-emacs-uncompressed-noconflict.js +405 -0
  21. data/vendor/assets/javascripts/ace/keybinding-emacs-uncompressed.js +405 -0
  22. data/vendor/assets/javascripts/ace/keybinding-emacs.js +1 -0
  23. data/vendor/assets/javascripts/ace/keybinding-vim-noconflict.js +1 -0
  24. data/vendor/assets/javascripts/ace/keybinding-vim-uncompressed-noconflict.js +393 -0
  25. data/vendor/assets/javascripts/ace/keybinding-vim-uncompressed.js +393 -0
  26. data/vendor/assets/javascripts/ace/keybinding-vim.js +1 -0
  27. data/vendor/assets/javascripts/ace/mode-c_cpp-noconflict.js +1 -0
  28. data/vendor/assets/javascripts/ace/mode-c_cpp-uncompressed-noconflict.js +918 -0
  29. data/vendor/assets/javascripts/ace/mode-c_cpp-uncompressed.js +918 -0
  30. data/vendor/assets/javascripts/ace/mode-c_cpp.js +1 -0
  31. data/vendor/assets/javascripts/ace/mode-clojure-noconflict.js +1 -0
  32. data/vendor/assets/javascripts/ace/mode-clojure-uncompressed-noconflict.js +422 -0
  33. data/vendor/assets/javascripts/ace/mode-clojure-uncompressed.js +422 -0
  34. data/vendor/assets/javascripts/ace/mode-clojure.js +1 -0
  35. data/vendor/assets/javascripts/ace/mode-coffee-noconflict.js +1 -0
  36. data/vendor/assets/javascripts/ace/mode-coffee-uncompressed-noconflict.js +605 -0
  37. data/vendor/assets/javascripts/ace/mode-coffee-uncompressed.js +605 -0
  38. data/vendor/assets/javascripts/ace/mode-coffee.js +1 -0
  39. data/vendor/assets/javascripts/ace/mode-coldfusion-noconflict.js +1 -0
  40. data/vendor/assets/javascripts/ace/mode-coldfusion-uncompressed-noconflict.js +2361 -0
  41. data/vendor/assets/javascripts/ace/mode-coldfusion-uncompressed.js +2361 -0
  42. data/vendor/assets/javascripts/ace/mode-coldfusion.js +1 -0
  43. data/vendor/assets/javascripts/ace/mode-csharp-noconflict.js +1 -0
  44. data/vendor/assets/javascripts/ace/mode-csharp-uncompressed-noconflict.js +768 -0
  45. data/vendor/assets/javascripts/ace/mode-csharp-uncompressed.js +768 -0
  46. data/vendor/assets/javascripts/ace/mode-csharp.js +1 -0
  47. data/vendor/assets/javascripts/ace/mode-css-noconflict.js +1 -0
  48. data/vendor/assets/javascripts/ace/mode-css-uncompressed-noconflict.js +664 -0
  49. data/vendor/assets/javascripts/ace/mode-css-uncompressed.js +664 -0
  50. data/vendor/assets/javascripts/ace/mode-css.js +1 -0
  51. data/vendor/assets/javascripts/ace/mode-groovy-noconflict.js +1 -0
  52. data/vendor/assets/javascripts/ace/mode-groovy-uncompressed-noconflict.js +1280 -0
  53. data/vendor/assets/javascripts/ace/mode-groovy-uncompressed.js +1280 -0
  54. data/vendor/assets/javascripts/ace/mode-groovy.js +1 -0
  55. data/vendor/assets/javascripts/ace/mode-haxe-noconflict.js +1 -0
  56. data/vendor/assets/javascripts/ace/mode-haxe-uncompressed-noconflict.js +768 -0
  57. data/vendor/assets/javascripts/ace/mode-haxe-uncompressed.js +768 -0
  58. data/vendor/assets/javascripts/ace/mode-haxe.js +1 -0
  59. data/vendor/assets/javascripts/ace/mode-html-noconflict.js +1 -0
  60. data/vendor/assets/javascripts/ace/mode-html-uncompressed-noconflict.js +2377 -0
  61. data/vendor/assets/javascripts/ace/mode-html-uncompressed.js +2377 -0
  62. data/vendor/assets/javascripts/ace/mode-html.js +1 -0
  63. data/vendor/assets/javascripts/ace/mode-java-noconflict.js +1 -0
  64. data/vendor/assets/javascripts/ace/mode-java-uncompressed-noconflict.js +1282 -0
  65. data/vendor/assets/javascripts/ace/mode-java-uncompressed.js +1282 -0
  66. data/vendor/assets/javascripts/ace/mode-java.js +1 -0
  67. data/vendor/assets/javascripts/ace/mode-javascript-noconflict.js +1 -0
  68. data/vendor/assets/javascripts/ace/mode-javascript-uncompressed-noconflict.js +1113 -0
  69. data/vendor/assets/javascripts/ace/mode-javascript-uncompressed.js +1113 -0
  70. data/vendor/assets/javascripts/ace/mode-javascript.js +1 -0
  71. data/vendor/assets/javascripts/ace/mode-json-noconflict.js +1 -0
  72. data/vendor/assets/javascripts/ace/mode-json-uncompressed-noconflict.js +696 -0
  73. data/vendor/assets/javascripts/ace/mode-json-uncompressed.js +696 -0
  74. data/vendor/assets/javascripts/ace/mode-json.js +1 -0
  75. data/vendor/assets/javascripts/ace/mode-latex-noconflict.js +1 -0
  76. data/vendor/assets/javascripts/ace/mode-latex-uncompressed-noconflict.js +95 -0
  77. data/vendor/assets/javascripts/ace/mode-latex-uncompressed.js +95 -0
  78. data/vendor/assets/javascripts/ace/mode-latex.js +1 -0
  79. data/vendor/assets/javascripts/ace/mode-lua-noconflict.js +1 -0
  80. data/vendor/assets/javascripts/ace/mode-lua-uncompressed-noconflict.js +523 -0
  81. data/vendor/assets/javascripts/ace/mode-lua-uncompressed.js +523 -0
  82. data/vendor/assets/javascripts/ace/mode-lua.js +1 -0
  83. data/vendor/assets/javascripts/ace/mode-markdown-noconflict.js +1 -0
  84. data/vendor/assets/javascripts/ace/mode-markdown-uncompressed-noconflict.js +2819 -0
  85. data/vendor/assets/javascripts/ace/mode-markdown-uncompressed.js +2819 -0
  86. data/vendor/assets/javascripts/ace/mode-markdown.js +1 -0
  87. data/vendor/assets/javascripts/ace/mode-ocaml-noconflict.js +1 -0
  88. data/vendor/assets/javascripts/ace/mode-ocaml-uncompressed-noconflict.js +539 -0
  89. data/vendor/assets/javascripts/ace/mode-ocaml-uncompressed.js +539 -0
  90. data/vendor/assets/javascripts/ace/mode-ocaml.js +1 -0
  91. data/vendor/assets/javascripts/ace/mode-perl-noconflict.js +1 -0
  92. data/vendor/assets/javascripts/ace/mode-perl-uncompressed-noconflict.js +573 -0
  93. data/vendor/assets/javascripts/ace/mode-perl-uncompressed.js +573 -0
  94. data/vendor/assets/javascripts/ace/mode-perl.js +1 -0
  95. data/vendor/assets/javascripts/ace/mode-pgsql-noconflict.js +1 -0
  96. data/vendor/assets/javascripts/ace/mode-pgsql-uncompressed-noconflict.js +1107 -0
  97. data/vendor/assets/javascripts/ace/mode-pgsql-uncompressed.js +1107 -0
  98. data/vendor/assets/javascripts/ace/mode-pgsql.js +1 -0
  99. data/vendor/assets/javascripts/ace/mode-php-noconflict.js +1 -0
  100. data/vendor/assets/javascripts/ace/mode-php-uncompressed-noconflict.js +1884 -0
  101. data/vendor/assets/javascripts/ace/mode-php-uncompressed.js +1884 -0
  102. data/vendor/assets/javascripts/ace/mode-php.js +1 -0
  103. data/vendor/assets/javascripts/ace/mode-powershell-noconflict.js +1 -0
  104. data/vendor/assets/javascripts/ace/mode-powershell-uncompressed-noconflict.js +706 -0
  105. data/vendor/assets/javascripts/ace/mode-powershell-uncompressed.js +706 -0
  106. data/vendor/assets/javascripts/ace/mode-powershell.js +1 -0
  107. data/vendor/assets/javascripts/ace/mode-python-noconflict.js +1 -0
  108. data/vendor/assets/javascripts/ace/mode-python-uncompressed-noconflict.js +506 -0
  109. data/vendor/assets/javascripts/ace/mode-python-uncompressed.js +506 -0
  110. data/vendor/assets/javascripts/ace/mode-python.js +1 -0
  111. data/vendor/assets/javascripts/ace/mode-ruby-noconflict.js +1 -0
  112. data/vendor/assets/javascripts/ace/mode-ruby-uncompressed-noconflict.js +391 -0
  113. data/vendor/assets/javascripts/ace/mode-ruby-uncompressed.js +391 -0
  114. data/vendor/assets/javascripts/ace/mode-ruby.js +1 -0
  115. data/vendor/assets/javascripts/ace/mode-scad-noconflict.js +1 -0
  116. data/vendor/assets/javascripts/ace/mode-scad-uncompressed-noconflict.js +906 -0
  117. data/vendor/assets/javascripts/ace/mode-scad-uncompressed.js +906 -0
  118. data/vendor/assets/javascripts/ace/mode-scad.js +1 -0
  119. data/vendor/assets/javascripts/ace/mode-scala-noconflict.js +1 -0
  120. data/vendor/assets/javascripts/ace/mode-scala-uncompressed-noconflict.js +1282 -0
  121. data/vendor/assets/javascripts/ace/mode-scala-uncompressed.js +1282 -0
  122. data/vendor/assets/javascripts/ace/mode-scala.js +1 -0
  123. data/vendor/assets/javascripts/ace/mode-scss-noconflict.js +1 -0
  124. data/vendor/assets/javascripts/ace/mode-scss-uncompressed-noconflict.js +678 -0
  125. data/vendor/assets/javascripts/ace/mode-scss-uncompressed.js +678 -0
  126. data/vendor/assets/javascripts/ace/mode-scss.js +1 -0
  127. data/vendor/assets/javascripts/ace/mode-sh-noconflict.js +1 -0
  128. data/vendor/assets/javascripts/ace/mode-sh-uncompressed-noconflict.js +268 -0
  129. data/vendor/assets/javascripts/ace/mode-sh-uncompressed.js +268 -0
  130. data/vendor/assets/javascripts/ace/mode-sh.js +1 -0
  131. data/vendor/assets/javascripts/ace/mode-sql-noconflict.js +1 -0
  132. data/vendor/assets/javascripts/ace/mode-sql-uncompressed-noconflict.js +159 -0
  133. data/vendor/assets/javascripts/ace/mode-sql-uncompressed.js +159 -0
  134. data/vendor/assets/javascripts/ace/mode-sql.js +1 -0
  135. data/vendor/assets/javascripts/ace/mode-svg-noconflict.js +1 -0
  136. data/vendor/assets/javascripts/ace/mode-svg-uncompressed-noconflict.js +2016 -0
  137. data/vendor/assets/javascripts/ace/mode-svg-uncompressed.js +2016 -0
  138. data/vendor/assets/javascripts/ace/mode-svg.js +1 -0
  139. data/vendor/assets/javascripts/ace/mode-text-noconflict.js +0 -0
  140. data/vendor/assets/javascripts/ace/mode-text-uncompressed-noconflict.js +0 -0
  141. data/vendor/assets/javascripts/ace/mode-text-uncompressed.js +0 -0
  142. data/vendor/assets/javascripts/ace/mode-text.js +0 -0
  143. data/vendor/assets/javascripts/ace/mode-textile-noconflict.js +1 -0
  144. data/vendor/assets/javascripts/ace/mode-textile-uncompressed-noconflict.js +254 -0
  145. data/vendor/assets/javascripts/ace/mode-textile-uncompressed.js +254 -0
  146. data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
  147. data/vendor/assets/javascripts/ace/mode-xml-noconflict.js +1 -0
  148. data/vendor/assets/javascripts/ace/mode-xml-uncompressed-noconflict.js +1001 -0
  149. data/vendor/assets/javascripts/ace/mode-xml-uncompressed.js +1001 -0
  150. data/vendor/assets/javascripts/ace/mode-xml.js +1 -0
  151. data/vendor/assets/javascripts/ace/theme-chrome-noconflict.js +1 -0
  152. data/vendor/assets/javascripts/ace/theme-chrome-uncompressed-noconflict.js +212 -0
  153. data/vendor/assets/javascripts/ace/theme-chrome-uncompressed.js +212 -0
  154. data/vendor/assets/javascripts/ace/theme-chrome.js +1 -0
  155. data/vendor/assets/javascripts/ace/theme-clouds-noconflict.js +1 -0
  156. data/vendor/assets/javascripts/ace/theme-clouds-uncompressed-noconflict.js +155 -0
  157. data/vendor/assets/javascripts/ace/theme-clouds-uncompressed.js +155 -0
  158. data/vendor/assets/javascripts/ace/theme-clouds.js +1 -0
  159. data/vendor/assets/javascripts/ace/theme-clouds_midnight-noconflict.js +1 -0
  160. data/vendor/assets/javascripts/ace/theme-clouds_midnight-uncompressed-noconflict.js +156 -0
  161. data/vendor/assets/javascripts/ace/theme-clouds_midnight-uncompressed.js +156 -0
  162. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +1 -0
  163. data/vendor/assets/javascripts/ace/theme-cobalt-noconflict.js +1 -0
  164. data/vendor/assets/javascripts/ace/theme-cobalt-uncompressed-noconflict.js +170 -0
  165. data/vendor/assets/javascripts/ace/theme-cobalt-uncompressed.js +170 -0
  166. data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -0
  167. data/vendor/assets/javascripts/ace/theme-crimson_editor-noconflict.js +1 -0
  168. data/vendor/assets/javascripts/ace/theme-crimson_editor-uncompressed-noconflict.js +198 -0
  169. data/vendor/assets/javascripts/ace/theme-crimson_editor-uncompressed.js +198 -0
  170. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +1 -0
  171. data/vendor/assets/javascripts/ace/theme-dawn-noconflict.js +1 -0
  172. data/vendor/assets/javascripts/ace/theme-dawn-uncompressed-noconflict.js +174 -0
  173. data/vendor/assets/javascripts/ace/theme-dawn-uncompressed.js +174 -0
  174. data/vendor/assets/javascripts/ace/theme-dawn.js +1 -0
  175. data/vendor/assets/javascripts/ace/theme-dreamweaver-noconflict.js +1 -0
  176. data/vendor/assets/javascripts/ace/theme-dreamweaver-uncompressed-noconflict.js +227 -0
  177. data/vendor/assets/javascripts/ace/theme-dreamweaver-uncompressed.js +227 -0
  178. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +1 -0
  179. data/vendor/assets/javascripts/ace/theme-eclipse-noconflict.js +1 -0
  180. data/vendor/assets/javascripts/ace/theme-eclipse-uncompressed-noconflict.js +147 -0
  181. data/vendor/assets/javascripts/ace/theme-eclipse-uncompressed.js +147 -0
  182. data/vendor/assets/javascripts/ace/theme-eclipse.js +1 -0
  183. data/vendor/assets/javascripts/ace/theme-idle_fingers-noconflict.js +1 -0
  184. data/vendor/assets/javascripts/ace/theme-idle_fingers-uncompressed-noconflict.js +162 -0
  185. data/vendor/assets/javascripts/ace/theme-idle_fingers-uncompressed.js +162 -0
  186. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -0
  187. data/vendor/assets/javascripts/ace/theme-kr_theme-noconflict.js +1 -0
  188. data/vendor/assets/javascripts/ace/theme-kr_theme-uncompressed-noconflict.js +165 -0
  189. data/vendor/assets/javascripts/ace/theme-kr_theme-uncompressed.js +165 -0
  190. data/vendor/assets/javascripts/ace/theme-kr_theme.js +1 -0
  191. data/vendor/assets/javascripts/ace/theme-merbivore-noconflict.js +1 -0
  192. data/vendor/assets/javascripts/ace/theme-merbivore-uncompressed-noconflict.js +165 -0
  193. data/vendor/assets/javascripts/ace/theme-merbivore-uncompressed.js +165 -0
  194. data/vendor/assets/javascripts/ace/theme-merbivore.js +1 -0
  195. data/vendor/assets/javascripts/ace/theme-merbivore_soft-noconflict.js +1 -0
  196. data/vendor/assets/javascripts/ace/theme-merbivore_soft-uncompressed-noconflict.js +171 -0
  197. data/vendor/assets/javascripts/ace/theme-merbivore_soft-uncompressed.js +171 -0
  198. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +1 -0
  199. data/vendor/assets/javascripts/ace/theme-mono_industrial-noconflict.js +1 -0
  200. data/vendor/assets/javascripts/ace/theme-mono_industrial-uncompressed-noconflict.js +169 -0
  201. data/vendor/assets/javascripts/ace/theme-mono_industrial-uncompressed.js +169 -0
  202. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +1 -0
  203. data/vendor/assets/javascripts/ace/theme-monokai-noconflict.js +1 -0
  204. data/vendor/assets/javascripts/ace/theme-monokai-uncompressed-noconflict.js +171 -0
  205. data/vendor/assets/javascripts/ace/theme-monokai-uncompressed.js +171 -0
  206. data/vendor/assets/javascripts/ace/theme-monokai.js +1 -0
  207. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-noconflict.js +1 -0
  208. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-uncompressed-noconflict.js +179 -0
  209. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-uncompressed.js +179 -0
  210. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +1 -0
  211. data/vendor/assets/javascripts/ace/theme-solarized_dark-noconflict.js +1 -0
  212. data/vendor/assets/javascripts/ace/theme-solarized_dark-uncompressed-noconflict.js +160 -0
  213. data/vendor/assets/javascripts/ace/theme-solarized_dark-uncompressed.js +160 -0
  214. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +1 -0
  215. data/vendor/assets/javascripts/ace/theme-solarized_light-noconflict.js +1 -0
  216. data/vendor/assets/javascripts/ace/theme-solarized_light-uncompressed-noconflict.js +159 -0
  217. data/vendor/assets/javascripts/ace/theme-solarized_light-uncompressed.js +159 -0
  218. data/vendor/assets/javascripts/ace/theme-solarized_light.js +1 -0
  219. data/vendor/assets/javascripts/ace/theme-textmate-noconflict.js +0 -0
  220. data/vendor/assets/javascripts/ace/theme-textmate-uncompressed-noconflict.js +0 -0
  221. data/vendor/assets/javascripts/ace/theme-textmate-uncompressed.js +0 -0
  222. data/vendor/assets/javascripts/ace/theme-textmate.js +0 -0
  223. data/vendor/assets/javascripts/ace/theme-tomorrow-noconflict.js +1 -0
  224. data/vendor/assets/javascripts/ace/theme-tomorrow-uncompressed-noconflict.js +189 -0
  225. data/vendor/assets/javascripts/ace/theme-tomorrow-uncompressed.js +189 -0
  226. data/vendor/assets/javascripts/ace/theme-tomorrow.js +1 -0
  227. data/vendor/assets/javascripts/ace/theme-tomorrow_night-noconflict.js +1 -0
  228. data/vendor/assets/javascripts/ace/theme-tomorrow_night-uncompressed-noconflict.js +189 -0
  229. data/vendor/assets/javascripts/ace/theme-tomorrow_night-uncompressed.js +189 -0
  230. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
  231. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-noconflict.js +1 -0
  232. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-uncompressed-noconflict.js +189 -0
  233. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-uncompressed.js +189 -0
  234. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -0
  235. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-noconflict.js +1 -0
  236. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-uncompressed-noconflict.js +189 -0
  237. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-uncompressed.js +189 -0
  238. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -0
  239. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-noconflict.js +1 -0
  240. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-uncompressed-noconflict.js +185 -0
  241. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-uncompressed.js +185 -0
  242. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -0
  243. data/vendor/assets/javascripts/ace/theme-twilight-noconflict.js +1 -0
  244. data/vendor/assets/javascripts/ace/theme-twilight-uncompressed-noconflict.js +183 -0
  245. data/vendor/assets/javascripts/ace/theme-twilight-uncompressed.js +183 -0
  246. data/vendor/assets/javascripts/ace/theme-twilight.js +1 -0
  247. data/vendor/assets/javascripts/ace/theme-vibrant_ink-noconflict.js +1 -0
  248. data/vendor/assets/javascripts/ace/theme-vibrant_ink-uncompressed-noconflict.js +166 -0
  249. data/vendor/assets/javascripts/ace/theme-vibrant_ink-uncompressed.js +166 -0
  250. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +1 -0
  251. data/vendor/assets/javascripts/ace/worker-coffee.js +7456 -0
  252. data/vendor/assets/javascripts/ace/worker-css.js +11693 -0
  253. data/vendor/assets/javascripts/ace/worker-javascript.js +10305 -0
  254. data/vendor/assets/javascripts/ace/worker-json.js +3062 -0
  255. metadata +310 -0
@@ -0,0 +1,696 @@
1
+ /* ***** BEGIN LICENSE BLOCK *****
2
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3
+ *
4
+ * The contents of this file are subject to the Mozilla Public License Version
5
+ * 1.1 (the "License"); you may not use this file except in compliance with
6
+ * the License. You may obtain a copy of the License at
7
+ * http://www.mozilla.org/MPL/
8
+ *
9
+ * Software distributed under the License is distributed on an "AS IS" basis,
10
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
+ * for the specific language governing rights and limitations under the
12
+ * License.
13
+ *
14
+ * The Original Code is Ajax.org Code Editor (ACE).
15
+ *
16
+ * The Initial Developer of the Original Code is
17
+ * Ajax.org B.V.
18
+ * Portions created by the Initial Developer are Copyright (C) 2010
19
+ * the Initial Developer. All Rights Reserved.
20
+ *
21
+ * Contributor(s):
22
+ * Fabian Jakobs <fabian AT ajax DOT org>
23
+ *
24
+ * Alternatively, the contents of this file may be used under the terms of
25
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
26
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
+ * in which case the provisions of the GPL or the LGPL are applicable instead
28
+ * of those above. If you wish to allow use of your version of this file only
29
+ * under the terms of either the GPL or the LGPL, and not to allow others to
30
+ * use your version of this file under the terms of the MPL, indicate your
31
+ * decision by deleting the provisions above and replace them with the notice
32
+ * and other provisions required by the GPL or the LGPL. If you do not delete
33
+ * the provisions above, a recipient may use your version of this file under
34
+ * the terms of any one of the MPL, the GPL or the LGPL.
35
+ *
36
+ * ***** END LICENSE BLOCK ***** */
37
+
38
+ define('ace/mode/json', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/json_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle', 'ace/worker/worker_client'], function(require, exports, module) {
39
+ "use strict";
40
+
41
+ var oop = require("../lib/oop");
42
+ var TextMode = require("./text").Mode;
43
+ var Tokenizer = require("../tokenizer").Tokenizer;
44
+ var HighlightRules = require("./json_highlight_rules").JsonHighlightRules;
45
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
46
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
47
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
48
+ var WorkerClient = require("../worker/worker_client").WorkerClient;
49
+
50
+ var Mode = function() {
51
+ this.$tokenizer = new Tokenizer(new HighlightRules().getRules());
52
+ this.$outdent = new MatchingBraceOutdent();
53
+ this.$behaviour = new CstyleBehaviour();
54
+ this.foldingRules = new CStyleFoldMode();
55
+ };
56
+ oop.inherits(Mode, TextMode);
57
+
58
+ (function() {
59
+
60
+ this.getNextLineIndent = function(state, line, tab) {
61
+ var indent = this.$getIndent(line);
62
+
63
+ if (state == "start") {
64
+ var match = line.match(/^.*[\{\(\[]\s*$/);
65
+ if (match) {
66
+ indent += tab;
67
+ }
68
+ }
69
+
70
+ return indent;
71
+ };
72
+
73
+ this.checkOutdent = function(state, line, input) {
74
+ return this.$outdent.checkOutdent(line, input);
75
+ };
76
+
77
+ this.autoOutdent = function(state, doc, row) {
78
+ this.$outdent.autoOutdent(doc, row);
79
+ };
80
+
81
+ this.createWorker = function(session) {
82
+ var worker = new WorkerClient(["ace"], "worker-json.js", "ace/mode/json_worker", "JsonWorker");
83
+ worker.attachToDocument(session.getDocument());
84
+
85
+ worker.on("error", function(e) {
86
+ session.setAnnotations([e.data]);
87
+ });
88
+
89
+ worker.on("ok", function() {
90
+ session.clearAnnotations();
91
+ });
92
+
93
+ return worker;
94
+ };
95
+
96
+
97
+ }).call(Mode.prototype);
98
+
99
+ exports.Mode = Mode;
100
+ });/* ***** BEGIN LICENSE BLOCK *****
101
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
102
+ *
103
+ * The contents of this file are subject to the Mozilla Public License Version
104
+ * 1.1 (the "License"); you may not use this file except in compliance with
105
+ * the License. You may obtain a copy of the License at
106
+ * http://www.mozilla.org/MPL/
107
+ *
108
+ * Software distributed under the License is distributed on an "AS IS" basis,
109
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
110
+ * for the specific language governing rights and limitations under the
111
+ * License.
112
+ *
113
+ * The Original Code is Ajax.org Code Editor (ACE).
114
+ *
115
+ * The Initial Developer of the Original Code is
116
+ * Ajax.org B.V.
117
+ * Portions created by the Initial Developer are Copyright (C) 2010
118
+ * the Initial Developer. All Rights Reserved.
119
+ *
120
+ * Contributor(s):
121
+ * Fabian Jakobs <fabian AT ajax DOT org>
122
+ * Mihai Sucan <mihai DOT sucan AT gmail DOT com>
123
+ *
124
+ * Alternatively, the contents of this file may be used under the terms of
125
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
126
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
127
+ * in which case the provisions of the GPL or the LGPL are applicable instead
128
+ * of those above. If you wish to allow use of your version of this file only
129
+ * under the terms of either the GPL or the LGPL, and not to allow others to
130
+ * use your version of this file under the terms of the MPL, indicate your
131
+ * decision by deleting the provisions above and replace them with the notice
132
+ * and other provisions required by the GPL or the LGPL. If you do not delete
133
+ * the provisions above, a recipient may use your version of this file under
134
+ * the terms of any one of the MPL, the GPL or the LGPL.
135
+ *
136
+ * ***** END LICENSE BLOCK ***** */
137
+
138
+ define('ace/mode/json_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
139
+ "use strict";
140
+
141
+ var oop = require("../lib/oop");
142
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
143
+
144
+ var JsonHighlightRules = function() {
145
+
146
+ // regexp must not have capturing parentheses. Use (?:) instead.
147
+ // regexps are ordered -> the first match is used
148
+ this.$rules = {
149
+ "start" : [
150
+ {
151
+ token : "string", // single line
152
+ regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
153
+ }, {
154
+ token : "constant.numeric", // hex
155
+ regex : "0[xX][0-9a-fA-F]+\\b"
156
+ }, {
157
+ token : "constant.numeric", // float
158
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
159
+ }, {
160
+ token : "constant.language.boolean",
161
+ regex : "(?:true|false)\\b"
162
+ }, {
163
+ token : "invalid.illegal", // single quoted strings are not allowed
164
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
165
+ }, {
166
+ token : "invalid.illegal", // comments are not allowed
167
+ regex : "\\/\\/.*$"
168
+ }, {
169
+ token : "paren.lparen",
170
+ regex : "[[({]"
171
+ }, {
172
+ token : "paren.rparen",
173
+ regex : "[\\])}]"
174
+ }, {
175
+ token : "text",
176
+ regex : "\\s+"
177
+ }
178
+ ]
179
+ };
180
+
181
+ };
182
+
183
+ oop.inherits(JsonHighlightRules, TextHighlightRules);
184
+
185
+ exports.JsonHighlightRules = JsonHighlightRules;
186
+ });
187
+ /* ***** BEGIN LICENSE BLOCK *****
188
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
189
+ *
190
+ * The contents of this file are subject to the Mozilla Public License Version
191
+ * 1.1 (the "License"); you may not use this file except in compliance with
192
+ * the License. You may obtain a copy of the License at
193
+ * http://www.mozilla.org/MPL/
194
+ *
195
+ * Software distributed under the License is distributed on an "AS IS" basis,
196
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
197
+ * for the specific language governing rights and limitations under the
198
+ * License.
199
+ *
200
+ * The Original Code is Ajax.org Code Editor (ACE).
201
+ *
202
+ * The Initial Developer of the Original Code is
203
+ * Ajax.org B.V.
204
+ * Portions created by the Initial Developer are Copyright (C) 2010
205
+ * the Initial Developer. All Rights Reserved.
206
+ *
207
+ * Contributor(s):
208
+ * Fabian Jakobs <fabian AT ajax DOT org>
209
+ *
210
+ * Alternatively, the contents of this file may be used under the terms of
211
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
212
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
213
+ * in which case the provisions of the GPL or the LGPL are applicable instead
214
+ * of those above. If you wish to allow use of your version of this file only
215
+ * under the terms of either the GPL or the LGPL, and not to allow others to
216
+ * use your version of this file under the terms of the MPL, indicate your
217
+ * decision by deleting the provisions above and replace them with the notice
218
+ * and other provisions required by the GPL or the LGPL. If you do not delete
219
+ * the provisions above, a recipient may use your version of this file under
220
+ * the terms of any one of the MPL, the GPL or the LGPL.
221
+ *
222
+ * ***** END LICENSE BLOCK ***** */
223
+
224
+ define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
225
+ "use strict";
226
+
227
+ var Range = require("../range").Range;
228
+
229
+ var MatchingBraceOutdent = function() {};
230
+
231
+ (function() {
232
+
233
+ this.checkOutdent = function(line, input) {
234
+ if (! /^\s+$/.test(line))
235
+ return false;
236
+
237
+ return /^\s*\}/.test(input);
238
+ };
239
+
240
+ this.autoOutdent = function(doc, row) {
241
+ var line = doc.getLine(row);
242
+ var match = line.match(/^(\s*\})/);
243
+
244
+ if (!match) return 0;
245
+
246
+ var column = match[1].length;
247
+ var openBracePos = doc.findMatchingBracket({row: row, column: column});
248
+
249
+ if (!openBracePos || openBracePos.row == row) return 0;
250
+
251
+ var indent = this.$getIndent(doc.getLine(openBracePos.row));
252
+ doc.replace(new Range(row, 0, row, column-1), indent);
253
+ };
254
+
255
+ this.$getIndent = function(line) {
256
+ var match = line.match(/^(\s+)/);
257
+ if (match) {
258
+ return match[1];
259
+ }
260
+
261
+ return "";
262
+ };
263
+
264
+ }).call(MatchingBraceOutdent.prototype);
265
+
266
+ exports.MatchingBraceOutdent = MatchingBraceOutdent;
267
+ });
268
+ /* vim:ts=4:sts=4:sw=4:
269
+ * ***** BEGIN LICENSE BLOCK *****
270
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
271
+ *
272
+ * The contents of this file are subject to the Mozilla Public License Version
273
+ * 1.1 (the "License"); you may not use this file except in compliance with
274
+ * the License. You may obtain a copy of the License at
275
+ * http://www.mozilla.org/MPL/
276
+ *
277
+ * Software distributed under the License is distributed on an "AS IS" basis,
278
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
279
+ * for the specific language governing rights and limitations under the
280
+ * License.
281
+ *
282
+ * The Original Code is Ajax.org Code Editor (ACE).
283
+ *
284
+ * The Initial Developer of the Original Code is
285
+ * Ajax.org B.V.
286
+ * Portions created by the Initial Developer are Copyright (C) 2010
287
+ * the Initial Developer. All Rights Reserved.
288
+ *
289
+ * Contributor(s):
290
+ * Chris Spencer <chris.ag.spencer AT googlemail DOT com>
291
+ *
292
+ * Alternatively, the contents of this file may be used under the terms of
293
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
294
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
295
+ * in which case the provisions of the GPL or the LGPL are applicable instead
296
+ * of those above. If you wish to allow use of your version of this file only
297
+ * under the terms of either the GPL or the LGPL, and not to allow others to
298
+ * use your version of this file under the terms of the MPL, indicate your
299
+ * decision by deleting the provisions above and replace them with the notice
300
+ * and other provisions required by the GPL or the LGPL. If you do not delete
301
+ * the provisions above, a recipient may use your version of this file under
302
+ * the terms of any one of the MPL, the GPL or the LGPL.
303
+ *
304
+ * ***** END LICENSE BLOCK ***** */
305
+
306
+ define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) {
307
+ "use strict";
308
+
309
+ var oop = require("../../lib/oop");
310
+ var Behaviour = require('../behaviour').Behaviour;
311
+
312
+ var CstyleBehaviour = function () {
313
+
314
+ this.add("braces", "insertion", function (state, action, editor, session, text) {
315
+ if (text == '{') {
316
+ var selection = editor.getSelectionRange();
317
+ var selected = session.doc.getTextRange(selection);
318
+ if (selected !== "") {
319
+ return {
320
+ text: '{' + selected + '}',
321
+ selection: false
322
+ }
323
+ } else {
324
+ return {
325
+ text: '{}',
326
+ selection: [1, 1]
327
+ }
328
+ }
329
+ } else if (text == '}') {
330
+ var cursor = editor.getCursorPosition();
331
+ var line = session.doc.getLine(cursor.row);
332
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
333
+ if (rightChar == '}') {
334
+ var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
335
+ if (matching !== null) {
336
+ return {
337
+ text: '',
338
+ selection: [1, 1]
339
+ }
340
+ }
341
+ }
342
+ } else if (text == "\n") {
343
+ var cursor = editor.getCursorPosition();
344
+ var line = session.doc.getLine(cursor.row);
345
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
346
+ if (rightChar == '}') {
347
+ var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1});
348
+ if (!openBracePos)
349
+ return null;
350
+
351
+ var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString());
352
+ var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row));
353
+
354
+ return {
355
+ text: '\n' + indent + '\n' + next_indent,
356
+ selection: [1, indent.length, 1, indent.length]
357
+ }
358
+ }
359
+ }
360
+ });
361
+
362
+ this.add("braces", "deletion", function (state, action, editor, session, range) {
363
+ var selected = session.doc.getTextRange(range);
364
+ if (!range.isMultiLine() && selected == '{') {
365
+ var line = session.doc.getLine(range.start.row);
366
+ var rightChar = line.substring(range.end.column, range.end.column + 1);
367
+ if (rightChar == '}') {
368
+ range.end.column++;
369
+ return range;
370
+ }
371
+ }
372
+ });
373
+
374
+ this.add("parens", "insertion", function (state, action, editor, session, text) {
375
+ if (text == '(') {
376
+ var selection = editor.getSelectionRange();
377
+ var selected = session.doc.getTextRange(selection);
378
+ if (selected !== "") {
379
+ return {
380
+ text: '(' + selected + ')',
381
+ selection: false
382
+ }
383
+ } else {
384
+ return {
385
+ text: '()',
386
+ selection: [1, 1]
387
+ }
388
+ }
389
+ } else if (text == ')') {
390
+ var cursor = editor.getCursorPosition();
391
+ var line = session.doc.getLine(cursor.row);
392
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
393
+ if (rightChar == ')') {
394
+ var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});
395
+ if (matching !== null) {
396
+ return {
397
+ text: '',
398
+ selection: [1, 1]
399
+ }
400
+ }
401
+ }
402
+ }
403
+ });
404
+
405
+ this.add("parens", "deletion", function (state, action, editor, session, range) {
406
+ var selected = session.doc.getTextRange(range);
407
+ if (!range.isMultiLine() && selected == '(') {
408
+ var line = session.doc.getLine(range.start.row);
409
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
410
+ if (rightChar == ')') {
411
+ range.end.column++;
412
+ return range;
413
+ }
414
+ }
415
+ });
416
+
417
+ this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
418
+ if (text == '"') {
419
+ var selection = editor.getSelectionRange();
420
+ var selected = session.doc.getTextRange(selection);
421
+ if (selected !== "") {
422
+ return {
423
+ text: '"' + selected + '"',
424
+ selection: false
425
+ }
426
+ } else {
427
+ var cursor = editor.getCursorPosition();
428
+ var line = session.doc.getLine(cursor.row);
429
+ var leftChar = line.substring(cursor.column-1, cursor.column);
430
+
431
+ // We're escaped.
432
+ if (leftChar == '\\') {
433
+ return null;
434
+ }
435
+
436
+ // Find what token we're inside.
437
+ var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens;
438
+ var col = 0, token;
439
+ var quotepos = -1; // Track whether we're inside an open quote.
440
+
441
+ for (var x = 0; x < tokens.length; x++) {
442
+ token = tokens[x];
443
+ if (token.type == "string") {
444
+ quotepos = -1;
445
+ } else if (quotepos < 0) {
446
+ quotepos = token.value.indexOf('"');
447
+ }
448
+ if ((token.value.length + col) > selection.start.column) {
449
+ break;
450
+ }
451
+ col += tokens[x].value.length;
452
+ }
453
+
454
+ // Try and be smart about when we auto insert.
455
+ if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) {
456
+ return {
457
+ text: '""',
458
+ selection: [1,1]
459
+ }
460
+ } else if (token && token.type === "string") {
461
+ // Ignore input and move right one if we're typing over the closing quote.
462
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
463
+ if (rightChar == '"') {
464
+ return {
465
+ text: '',
466
+ selection: [1, 1]
467
+ }
468
+ }
469
+ }
470
+ }
471
+ }
472
+ });
473
+
474
+ this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
475
+ var selected = session.doc.getTextRange(range);
476
+ if (!range.isMultiLine() && selected == '"') {
477
+ var line = session.doc.getLine(range.start.row);
478
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
479
+ if (rightChar == '"') {
480
+ range.end.column++;
481
+ return range;
482
+ }
483
+ }
484
+ });
485
+
486
+ }
487
+ oop.inherits(CstyleBehaviour, Behaviour);
488
+
489
+ exports.CstyleBehaviour = CstyleBehaviour;
490
+ });/* ***** BEGIN LICENSE BLOCK *****
491
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
492
+ *
493
+ * The contents of this file are subject to the Mozilla Public License Version
494
+ * 1.1 (the "License"); you may not use this file except in compliance with
495
+ * the License. You may obtain a copy of the License at
496
+ * http://www.mozilla.org/MPL/
497
+ *
498
+ * Software distributed under the License is distributed on an "AS IS" basis,
499
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
500
+ * for the specific language governing rights and limitations under the
501
+ * License.
502
+ *
503
+ * The Original Code is Ajax.org Code Editor (ACE).
504
+ *
505
+ * The Initial Developer of the Original Code is
506
+ * Ajax.org B.V.
507
+ * Portions created by the Initial Developer are Copyright (C) 2010
508
+ * the Initial Developer. All Rights Reserved.
509
+ *
510
+ * Contributor(s):
511
+ * Fabian Jakobs <fabian AT ajax DOT org>
512
+ *
513
+ * Alternatively, the contents of this file may be used under the terms of
514
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
515
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
516
+ * in which case the provisions of the GPL or the LGPL are applicable instead
517
+ * of those above. If you wish to allow use of your version of this file only
518
+ * under the terms of either the GPL or the LGPL, and not to allow others to
519
+ * use your version of this file under the terms of the MPL, indicate your
520
+ * decision by deleting the provisions above and replace them with the notice
521
+ * and other provisions required by the GPL or the LGPL. If you do not delete
522
+ * the provisions above, a recipient may use your version of this file under
523
+ * the terms of any one of the MPL, the GPL or the LGPL.
524
+ *
525
+ * ***** END LICENSE BLOCK ***** */
526
+
527
+ define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
528
+ "use strict";
529
+
530
+ var oop = require("../../lib/oop");
531
+ var Range = require("../../range").Range;
532
+ var BaseFoldMode = require("./fold_mode").FoldMode;
533
+
534
+ var FoldMode = exports.FoldMode = function() {};
535
+ oop.inherits(FoldMode, BaseFoldMode);
536
+
537
+ (function() {
538
+
539
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
540
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
541
+
542
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
543
+ var line = session.getLine(row);
544
+ var match = line.match(this.foldingStartMarker);
545
+ if (match) {
546
+ var i = match.index;
547
+
548
+ if (match[1])
549
+ return this.openingBracketBlock(session, match[1], row, i);
550
+
551
+ var range = session.getCommentFoldRange(row, i + match[0].length);
552
+ range.end.column -= 2;
553
+ return range;
554
+ }
555
+
556
+ if (foldStyle !== "markbeginend")
557
+ return;
558
+
559
+ var match = line.match(this.foldingStopMarker);
560
+ if (match) {
561
+ var i = match.index + match[0].length;
562
+
563
+ if (match[2]) {
564
+ var range = session.getCommentFoldRange(row, i);
565
+ range.end.column -= 2;
566
+ return range;
567
+ }
568
+
569
+ var end = {row: row, column: i};
570
+ var start = session.$findOpeningBracket(match[1], end);
571
+
572
+ if (!start)
573
+ return;
574
+
575
+ start.column++;
576
+ end.column--;
577
+
578
+ return Range.fromPoints(start, end);
579
+ }
580
+ };
581
+
582
+ }).call(FoldMode.prototype);
583
+
584
+ });/* ***** BEGIN LICENSE BLOCK *****
585
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
586
+ *
587
+ * The contents of this file are subject to the Mozilla Public License Version
588
+ * 1.1 (the "License"); you may not use this file except in compliance with
589
+ * the License. You may obtain a copy of the License at
590
+ * http://www.mozilla.org/MPL/
591
+ *
592
+ * Software distributed under the License is distributed on an "AS IS" basis,
593
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
594
+ * for the specific language governing rights and limitations under the
595
+ * License.
596
+ *
597
+ * The Original Code is Ajax.org Code Editor (ACE).
598
+ *
599
+ * The Initial Developer of the Original Code is
600
+ * Ajax.org B.V.
601
+ * Portions created by the Initial Developer are Copyright (C) 2010
602
+ * the Initial Developer. All Rights Reserved.
603
+ *
604
+ * Contributor(s):
605
+ * Fabian Jakobs <fabian AT ajax DOT org>
606
+ *
607
+ * Alternatively, the contents of this file may be used under the terms of
608
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
609
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
610
+ * in which case the provisions of the GPL or the LGPL are applicable instead
611
+ * of those above. If you wish to allow use of your version of this file only
612
+ * under the terms of either the GPL or the LGPL, and not to allow others to
613
+ * use your version of this file under the terms of the MPL, indicate your
614
+ * decision by deleting the provisions above and replace them with the notice
615
+ * and other provisions required by the GPL or the LGPL. If you do not delete
616
+ * the provisions above, a recipient may use your version of this file under
617
+ * the terms of any one of the MPL, the GPL or the LGPL.
618
+ *
619
+ * ***** END LICENSE BLOCK ***** */
620
+
621
+ define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
622
+ "use strict";
623
+
624
+ var Range = require("../../range").Range;
625
+
626
+ var FoldMode = exports.FoldMode = function() {};
627
+
628
+ (function() {
629
+
630
+ this.foldingStartMarker = null;
631
+ this.foldingStopMarker = null;
632
+
633
+ // must return "" if there's no fold, to enable caching
634
+ this.getFoldWidget = function(session, foldStyle, row) {
635
+ var line = session.getLine(row);
636
+ if (this.foldingStartMarker.test(line))
637
+ return "start";
638
+ if (foldStyle == "markbeginend"
639
+ && this.foldingStopMarker
640
+ && this.foldingStopMarker.test(line))
641
+ return "end";
642
+ return "";
643
+ };
644
+
645
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
646
+ return null;
647
+ };
648
+
649
+ this.indentationBlock = function(session, row, column) {
650
+ var re = /^\s*/;
651
+ var startRow = row;
652
+ var endRow = row;
653
+ var line = session.getLine(row);
654
+ var startColumn = column || line.length;
655
+ var startLevel = line.match(re)[0].length;
656
+ var maxRow = session.getLength()
657
+
658
+ while (++row < maxRow) {
659
+ line = session.getLine(row);
660
+ var level = line.match(re)[0].length;
661
+
662
+ if (level == line.length)
663
+ continue;
664
+
665
+ if (level <= startLevel)
666
+ break;
667
+
668
+ endRow = row;
669
+ }
670
+
671
+ if (endRow > startRow) {
672
+ var endColumn = session.getLine(endRow).length;
673
+ return new Range(startRow, startColumn, endRow, endColumn);
674
+ }
675
+ };
676
+
677
+ this.openingBracketBlock = function(session, bracket, row, column) {
678
+ var start = {row: row, column: column + 1};
679
+ var end = session.$findClosingBracket(bracket, start);
680
+ if (!end)
681
+ return;
682
+
683
+ var fw = session.foldWidgets[end.row];
684
+ if (fw == null)
685
+ fw = this.getFoldWidget(session, end.row);
686
+
687
+ if (fw == "start") {
688
+ end.row --;
689
+ end.column = session.getLine(end.row).length;
690
+ }
691
+ return Range.fromPoints(start, end);
692
+ };
693
+
694
+ }).call(FoldMode.prototype);
695
+
696
+ });