jquery-ace-rails 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. data/README.md +36 -0
  2. data/lib/jquery-ace-rails.rb +5 -0
  3. data/lib/jquery-ace-rails/engine.rb +4 -0
  4. data/lib/jquery-ace-rails/version.rb +3 -0
  5. data/vendor/assets/javascripts/jquery-ace/jquery-ace.coffee +126 -0
  6. data/vendor/assets/javascripts/jquery-ace/jquery-ace.js +195 -0
  7. data/vendor/assets/javascripts/jquery-ace/jquery-ace.min.js +1 -0
  8. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/ace.js +11 -0
  9. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/ext-static_highlight.js +1 -0
  10. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/ext-textarea.js +1 -0
  11. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/keybinding-emacs.js +1 -0
  12. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/keybinding-vim.js +1 -0
  13. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-abap.js +1 -0
  14. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-asciidoc.js +1 -0
  15. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-c9search.js +1 -0
  16. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-c_cpp.js +1 -0
  17. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-clojure.js +1 -0
  18. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-coffee.js +1 -0
  19. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-coldfusion.js +1 -0
  20. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-csharp.js +1 -0
  21. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-css.js +1 -0
  22. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-dart.js +1 -0
  23. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-diff.js +1 -0
  24. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-dot.js +1 -0
  25. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-glsl.js +1 -0
  26. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-golang.js +1 -0
  27. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-groovy.js +1 -0
  28. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-haml.js +1 -0
  29. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-haxe.js +1 -0
  30. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-html.js +1 -0
  31. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-jade.js +1 -0
  32. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-java.js +1 -0
  33. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-javascript.js +1 -0
  34. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-json.js +1 -0
  35. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-jsp.js +1 -0
  36. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-jsx.js +1 -0
  37. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-latex.js +1 -0
  38. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-less.js +1 -0
  39. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-liquid.js +1 -0
  40. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-lisp.js +1 -0
  41. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-lua.js +1 -0
  42. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-luapage.js +1 -0
  43. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-lucene.js +1 -0
  44. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-makefile.js +1 -0
  45. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-markdown.js +1 -0
  46. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-objectivec.js +1 -0
  47. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-ocaml.js +1 -0
  48. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-perl.js +1 -0
  49. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-pgsql.js +1 -0
  50. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-php.js +1 -0
  51. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-powershell.js +1 -0
  52. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-python.js +1 -0
  53. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-r.js +1 -0
  54. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-rdoc.js +1 -0
  55. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-rhtml.js +1 -0
  56. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-ruby.js +1 -0
  57. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-scad.js +1 -0
  58. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-scala.js +1 -0
  59. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-scss.js +1 -0
  60. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-sh.js +1 -0
  61. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-sql.js +1 -0
  62. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-stylus.js +1 -0
  63. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-svg.js +1 -0
  64. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-tcl.js +1 -0
  65. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-tex.js +1 -0
  66. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-text.js +0 -0
  67. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-textile.js +1 -0
  68. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-typescript.js +1 -0
  69. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-xml.js +1 -0
  70. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-xquery.js +1 -0
  71. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/mode-yaml.js +1 -0
  72. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-ambiance.js +1 -0
  73. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-chaos.js +1 -0
  74. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-chrome.js +1 -0
  75. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-clouds.js +1 -0
  76. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-clouds_midnight.js +1 -0
  77. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-cobalt.js +1 -0
  78. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-crimson_editor.js +1 -0
  79. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-dawn.js +1 -0
  80. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-dreamweaver.js +1 -0
  81. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-eclipse.js +1 -0
  82. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-github.js +1 -0
  83. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-idle_fingers.js +1 -0
  84. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-kr.js +1 -0
  85. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-merbivore.js +1 -0
  86. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-merbivore_soft.js +1 -0
  87. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-mono_industrial.js +1 -0
  88. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-monokai.js +1 -0
  89. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-pastel_on_dark.js +1 -0
  90. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-solarized_dark.js +1 -0
  91. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-solarized_light.js +1 -0
  92. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-textmate.js +1 -0
  93. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-tomorrow.js +1 -0
  94. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-tomorrow_night.js +1 -0
  95. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-tomorrow_night_blue.js +1 -0
  96. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-tomorrow_night_bright.js +1 -0
  97. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-tomorrow_night_eighties.js +1 -0
  98. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-twilight.js +1 -0
  99. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-vibrant_ink.js +1 -0
  100. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/theme-xcode.js +1 -0
  101. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/worker-coffee.js +1 -0
  102. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/worker-css.js +1 -0
  103. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/worker-javascript.js +1 -0
  104. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/worker-json.js +1 -0
  105. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src-min-noconflict/worker-xquery.js +1 -0
  106. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/ace.js +14262 -0
  107. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/ext-static_highlight.js +96 -0
  108. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/ext-textarea.js +591 -0
  109. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/keybinding-emacs.js +364 -0
  110. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/keybinding-vim.js +1646 -0
  111. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-abap.js +259 -0
  112. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-asciidoc.js +372 -0
  113. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-c9search.js +187 -0
  114. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-c_cpp.js +765 -0
  115. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-clojure.js +325 -0
  116. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-coffee.js +520 -0
  117. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-coldfusion.js +1725 -0
  118. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-csharp.js +605 -0
  119. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-css.js +680 -0
  120. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-dart.js +279 -0
  121. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-diff.js +163 -0
  122. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-dot.js +348 -0
  123. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-glsl.js +838 -0
  124. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-golang.js +660 -0
  125. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-groovy.js +1082 -0
  126. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-haml.js +440 -0
  127. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-haxe.js +610 -0
  128. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-html.js +1850 -0
  129. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-jade.js +2035 -0
  130. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-java.js +1041 -0
  131. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-javascript.js +921 -0
  132. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-json.js +574 -0
  133. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-jsp.js +1371 -0
  134. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-jsx.js +635 -0
  135. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-latex.js +217 -0
  136. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-less.js +394 -0
  137. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-liquid.js +921 -0
  138. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-lisp.js +142 -0
  139. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-lua.js +609 -0
  140. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-luapage.js +2463 -0
  141. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-lucene.js +64 -0
  142. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-makefile.js +314 -0
  143. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-markdown.js +2228 -0
  144. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-objectivec.js +655 -0
  145. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-ocaml.js +448 -0
  146. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-perl.js +319 -0
  147. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-pgsql.js +928 -0
  148. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-php.js +2299 -0
  149. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-powershell.js +611 -0
  150. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-python.js +290 -0
  151. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-r.js +410 -0
  152. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-rdoc.js +189 -0
  153. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-rhtml.js +2138 -0
  154. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-ruby.js +410 -0
  155. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-scad.js +698 -0
  156. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-scala.js +1070 -0
  157. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-scss.js +416 -0
  158. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-sh.js +232 -0
  159. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-sql.js +145 -0
  160. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-stylus.js +474 -0
  161. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-svg.js +1490 -0
  162. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-tcl.js +342 -0
  163. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-tex.js +171 -0
  164. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-text.js +0 -0
  165. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-textile.js +175 -0
  166. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-typescript.js +1011 -0
  167. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-xml.js +792 -0
  168. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-xquery.js +676 -0
  169. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/mode-yaml.js +298 -0
  170. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-ambiance.js +202 -0
  171. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-chaos.js +167 -0
  172. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-chrome.js +161 -0
  173. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-clouds.js +135 -0
  174. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-clouds_midnight.js +136 -0
  175. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-cobalt.js +150 -0
  176. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-crimson_editor.js +154 -0
  177. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-dawn.js +146 -0
  178. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-dreamweaver.js +173 -0
  179. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-eclipse.js +122 -0
  180. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-github.js +136 -0
  181. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-idle_fingers.js +136 -0
  182. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-kr.js +143 -0
  183. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-merbivore.js +135 -0
  184. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-merbivore_soft.js +136 -0
  185. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-mono_industrial.js +148 -0
  186. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-monokai.js +140 -0
  187. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-pastel_on_dark.js +148 -0
  188. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-solarized_dark.js +128 -0
  189. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-solarized_light.js +131 -0
  190. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-textmate.js +163 -0
  191. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-tomorrow.js +147 -0
  192. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-tomorrow_night.js +147 -0
  193. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-tomorrow_night_blue.js +145 -0
  194. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-tomorrow_night_bright.js +147 -0
  195. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-tomorrow_night_eighties.js +144 -0
  196. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-twilight.js +147 -0
  197. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-vibrant_ink.js +131 -0
  198. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/theme-xcode.js +125 -0
  199. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/worker-coffee.js +6985 -0
  200. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/worker-css.js +7741 -0
  201. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/worker-javascript.js +6387 -0
  202. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/worker-json.js +2228 -0
  203. data/vendor/assets/javascripts/jquery-ace/vendor/ace-build/src/worker-xquery.js +21719 -0
  204. data/vendor/assets/javascripts/jquery-ace/vendor/jquery-1.8.3.min.js +2 -0
  205. metadata +249 -0
@@ -0,0 +1,2463 @@
1
+ define('ace/mode/luapage', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/html', 'ace/mode/lua', 'ace/tokenizer', 'ace/mode/luapage_highlight_rules'], function(require, exports, module) {
2
+
3
+
4
+ var oop = require("../lib/oop");
5
+ var HtmlMode = require("./html").Mode;
6
+ var LuaMode = require("./lua").Mode;
7
+ var Tokenizer = require("../tokenizer").Tokenizer;
8
+ var LuaPageHighlightRules = require("./luapage_highlight_rules").LuaPageHighlightRules;
9
+
10
+ var Mode = function() {
11
+ var highlighter = new LuaPageHighlightRules();
12
+
13
+ this.$tokenizer = new Tokenizer(new LuaPageHighlightRules().getRules());
14
+ this.$embeds = highlighter.getEmbeds();
15
+ this.createModeDelegates({
16
+ "lua-": LuaMode
17
+ });
18
+ };
19
+ oop.inherits(Mode, HtmlMode);
20
+
21
+ exports.Mode = Mode;
22
+ });
23
+
24
+ define('ace/mode/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/mode/javascript', 'ace/mode/css', 'ace/tokenizer', 'ace/mode/html_highlight_rules', 'ace/mode/behaviour/html', 'ace/mode/folding/html'], function(require, exports, module) {
25
+
26
+
27
+ var oop = require("../lib/oop");
28
+ var TextMode = require("./text").Mode;
29
+ var JavaScriptMode = require("./javascript").Mode;
30
+ var CssMode = require("./css").Mode;
31
+ var Tokenizer = require("../tokenizer").Tokenizer;
32
+ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
33
+ var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour;
34
+ var HtmlFoldMode = require("./folding/html").FoldMode;
35
+
36
+ var Mode = function() {
37
+ var highlighter = new HtmlHighlightRules();
38
+ this.$tokenizer = new Tokenizer(highlighter.getRules());
39
+ this.$behaviour = new HtmlBehaviour();
40
+
41
+ this.$embeds = highlighter.getEmbeds();
42
+ this.createModeDelegates({
43
+ "js-": JavaScriptMode,
44
+ "css-": CssMode
45
+ });
46
+
47
+ this.foldingRules = new HtmlFoldMode();
48
+ };
49
+ oop.inherits(Mode, TextMode);
50
+
51
+ (function() {
52
+
53
+
54
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
55
+ return 0;
56
+ };
57
+
58
+ this.getNextLineIndent = function(state, line, tab) {
59
+ return this.$getIndent(line);
60
+ };
61
+
62
+ this.checkOutdent = function(state, line, input) {
63
+ return false;
64
+ };
65
+
66
+ }).call(Mode.prototype);
67
+
68
+ exports.Mode = Mode;
69
+ });
70
+
71
+ define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) {
72
+
73
+
74
+ var oop = require("../lib/oop");
75
+ var TextMode = require("./text").Mode;
76
+ var Tokenizer = require("../tokenizer").Tokenizer;
77
+ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
78
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
79
+ var Range = require("../range").Range;
80
+ var WorkerClient = require("../worker/worker_client").WorkerClient;
81
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
82
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
83
+
84
+ var Mode = function() {
85
+ this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules());
86
+ this.$outdent = new MatchingBraceOutdent();
87
+ this.$behaviour = new CstyleBehaviour();
88
+ this.foldingRules = new CStyleFoldMode();
89
+ };
90
+ oop.inherits(Mode, TextMode);
91
+
92
+ (function() {
93
+
94
+
95
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
96
+ var outdent = true;
97
+ var re = /^(\s*)\/\//;
98
+
99
+ for (var i=startRow; i<= endRow; i++) {
100
+ if (!re.test(doc.getLine(i))) {
101
+ outdent = false;
102
+ break;
103
+ }
104
+ }
105
+
106
+ if (outdent) {
107
+ var deleteRange = new Range(0, 0, 0, 0);
108
+ for (var i=startRow; i<= endRow; i++)
109
+ {
110
+ var line = doc.getLine(i);
111
+ var m = line.match(re);
112
+ deleteRange.start.row = i;
113
+ deleteRange.end.row = i;
114
+ deleteRange.end.column = m[0].length;
115
+ doc.replace(deleteRange, m[1]);
116
+ }
117
+ }
118
+ else {
119
+ doc.indentRows(startRow, endRow, "//");
120
+ }
121
+ };
122
+
123
+ this.getNextLineIndent = function(state, line, tab) {
124
+ var indent = this.$getIndent(line);
125
+
126
+ var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
127
+ var tokens = tokenizedLine.tokens;
128
+ var endState = tokenizedLine.state;
129
+
130
+ if (tokens.length && tokens[tokens.length-1].type == "comment") {
131
+ return indent;
132
+ }
133
+
134
+ if (state == "start" || state == "regex_allowed") {
135
+ var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);
136
+ if (match) {
137
+ indent += tab;
138
+ }
139
+ } else if (state == "doc-start") {
140
+ if (endState == "start" || state == "regex_allowed") {
141
+ return "";
142
+ }
143
+ var match = line.match(/^\s*(\/?)\*/);
144
+ if (match) {
145
+ if (match[1]) {
146
+ indent += " ";
147
+ }
148
+ indent += "* ";
149
+ }
150
+ }
151
+
152
+ return indent;
153
+ };
154
+
155
+ this.checkOutdent = function(state, line, input) {
156
+ return this.$outdent.checkOutdent(line, input);
157
+ };
158
+
159
+ this.autoOutdent = function(state, doc, row) {
160
+ this.$outdent.autoOutdent(doc, row);
161
+ };
162
+
163
+ this.createWorker = function(session) {
164
+ var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
165
+ worker.attachToDocument(session.getDocument());
166
+
167
+ worker.on("jslint", function(results) {
168
+ session.setAnnotations(results.data);
169
+ });
170
+
171
+ worker.on("terminate", function() {
172
+ session.clearAnnotations();
173
+ });
174
+
175
+ return worker;
176
+ };
177
+
178
+ }).call(Mode.prototype);
179
+
180
+ exports.Mode = Mode;
181
+ });
182
+
183
+ define('ace/mode/javascript_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
184
+
185
+
186
+ var oop = require("../lib/oop");
187
+ var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
188
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
189
+
190
+ var JavaScriptHighlightRules = function() {
191
+ var keywordMapper = this.createKeywordMapper({
192
+ "variable.language":
193
+ "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors
194
+ "Namespace|QName|XML|XMLList|" + // E4X
195
+ "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
196
+ "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
197
+ "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors
198
+ "SyntaxError|TypeError|URIError|" +
199
+ "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions
200
+ "isNaN|parseFloat|parseInt|" +
201
+ "JSON|Math|" + // Other
202
+ "this|arguments|prototype|window|document" , // Pseudo
203
+ "keyword":
204
+ "const|yield|import|get|set|" +
205
+ "break|case|catch|continue|default|delete|do|else|finally|for|function|" +
206
+ "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
207
+ "__parent__|__count__|escape|unescape|with|__proto__|" +
208
+ "class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
209
+ "storage.type":
210
+ "const|let|var|function",
211
+ "constant.language":
212
+ "null|Infinity|NaN|undefined",
213
+ "support.function":
214
+ "alert"
215
+ }, "identifier");
216
+ var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";
217
+ var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b";
218
+
219
+ var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
220
+ "u[0-9a-fA-F]{4}|" + // unicode
221
+ "[0-2][0-7]{0,2}|" + // oct
222
+ "3[0-6][0-7]?|" + // oct
223
+ "37[0-7]?|" + // oct
224
+ "[4-7][0-7]?|" + //oct
225
+ ".)";
226
+
227
+ this.$rules = {
228
+ "start" : [
229
+ {
230
+ token : "comment",
231
+ regex : /\/\/.*$/
232
+ },
233
+ DocCommentHighlightRules.getStartRule("doc-start"),
234
+ {
235
+ token : "comment", // multi line comment
236
+ regex : /\/\*/,
237
+ next : "comment"
238
+ }, {
239
+ token : "string",
240
+ regex : "'(?=.)",
241
+ next : "qstring"
242
+ }, {
243
+ token : "string",
244
+ regex : '"(?=.)',
245
+ next : "qqstring"
246
+ }, {
247
+ token : "constant.numeric", // hex
248
+ regex : /0[xX][0-9a-fA-F]+\b/
249
+ }, {
250
+ token : "constant.numeric", // float
251
+ regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
252
+ }, {
253
+ token : [
254
+ "storage.type", "punctuation.operator", "support.function",
255
+ "punctuation.operator", "entity.name.function", "text","keyword.operator"
256
+ ],
257
+ regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)",
258
+ next: "function_arguments"
259
+ }, {
260
+ token : [
261
+ "storage.type", "punctuation.operator", "entity.name.function", "text",
262
+ "keyword.operator", "text", "storage.type", "text", "paren.lparen"
263
+ ],
264
+ regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
265
+ next: "function_arguments"
266
+ }, {
267
+ token : [
268
+ "entity.name.function", "text", "keyword.operator", "text", "storage.type",
269
+ "text", "paren.lparen"
270
+ ],
271
+ regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
272
+ next: "function_arguments"
273
+ }, {
274
+ token : [
275
+ "storage.type", "punctuation.operator", "entity.name.function", "text",
276
+ "keyword.operator", "text",
277
+ "storage.type", "text", "entity.name.function", "text", "paren.lparen"
278
+ ],
279
+ regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",
280
+ next: "function_arguments"
281
+ }, {
282
+ token : [
283
+ "storage.type", "text", "entity.name.function", "text", "paren.lparen"
284
+ ],
285
+ regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
286
+ next: "function_arguments"
287
+ }, {
288
+ token : [
289
+ "entity.name.function", "text", "punctuation.operator",
290
+ "text", "storage.type", "text", "paren.lparen"
291
+ ],
292
+ regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",
293
+ next: "function_arguments"
294
+ }, {
295
+ token : [
296
+ "text", "text", "storage.type", "text", "paren.lparen"
297
+ ],
298
+ regex : "(:)(\\s*)(function)(\\s*)(\\()",
299
+ next: "function_arguments"
300
+ }, {
301
+ token : "constant.language.boolean",
302
+ regex : /(?:true|false)\b/
303
+ }, {
304
+ token : "keyword",
305
+ regex : "(?:" + kwBeforeRe + ")\\b",
306
+ next : "regex_allowed"
307
+ }, {
308
+ token : ["punctuation.operator", "support.function"],
309
+ regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/
310
+ }, {
311
+ token : ["punctuation.operator", "support.function.dom"],
312
+ regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/
313
+ }, {
314
+ token : ["punctuation.operator", "support.constant"],
315
+ regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
316
+ }, {
317
+ token : ["storage.type", "punctuation.operator", "support.function.firebug"],
318
+ regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/
319
+ }, {
320
+ token : keywordMapper,
321
+ regex : identifierRe
322
+ }, {
323
+ token : "keyword.operator",
324
+ regex : /--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,
325
+ next : "regex_allowed"
326
+ }, {
327
+ token : "punctuation.operator",
328
+ regex : /\?|\:|\,|\;|\./,
329
+ next : "regex_allowed"
330
+ }, {
331
+ token : "paren.lparen",
332
+ regex : /[\[({]/,
333
+ next : "regex_allowed"
334
+ }, {
335
+ token : "paren.rparen",
336
+ regex : /[\])}]/
337
+ }, {
338
+ token : "keyword.operator",
339
+ regex : /\/=?/,
340
+ next : "regex_allowed"
341
+ }, {
342
+ token: "comment",
343
+ regex: /^#!.*$/
344
+ }, {
345
+ token : "text",
346
+ regex : /\s+/
347
+ }
348
+ ],
349
+ "regex_allowed": [
350
+ DocCommentHighlightRules.getStartRule("doc-start"),
351
+ {
352
+ token : "comment", // multi line comment
353
+ regex : "\\/\\*",
354
+ next : "comment_regex_allowed"
355
+ }, {
356
+ token : "comment",
357
+ regex : "\\/\\/.*$"
358
+ }, {
359
+ token: "string.regexp",
360
+ regex: "\\/",
361
+ next: "regex",
362
+ }, {
363
+ token : "text",
364
+ regex : "\\s+"
365
+ }, {
366
+ token: "empty",
367
+ regex: "",
368
+ next: "start"
369
+ }
370
+ ],
371
+ "regex": [
372
+ {
373
+ token: "regexp.keyword.operator",
374
+ regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
375
+ }, {
376
+ token: "string.regexp",
377
+ regex: "/\\w*",
378
+ next: "start",
379
+ }, {
380
+ token : "invalid",
381
+ regex: /\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
382
+ }, {
383
+ token : "constant.language.escape",
384
+ regex: /\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/
385
+ }, {
386
+ token: "string.regexp",
387
+ regex: /{|[^{\[\/\\(|)$^+*?]+/,
388
+ }, {
389
+ token: "constant.language.escape",
390
+ regex: /\[\^?/,
391
+ next: "regex_character_class",
392
+ }, {
393
+ token: "empty",
394
+ regex: "",
395
+ next: "start"
396
+ }
397
+ ],
398
+ "regex_character_class": [
399
+ {
400
+ token: "regexp.keyword.operator",
401
+ regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
402
+ }, {
403
+ token: "constant.language.escape",
404
+ regex: "]",
405
+ next: "regex",
406
+ }, {
407
+ token: "constant.language.escape",
408
+ regex: "-"
409
+ }, {
410
+ token: "string.regexp.charachterclass",
411
+ regex: /[^\]\-\\]+/,
412
+ }, {
413
+ token: "empty",
414
+ regex: "",
415
+ next: "start"
416
+ }
417
+ ],
418
+ "function_arguments": [
419
+ {
420
+ token: "variable.parameter",
421
+ regex: identifierRe
422
+ }, {
423
+ token: "punctuation.operator",
424
+ regex: "[, ]+",
425
+ }, {
426
+ token: "punctuation.operator",
427
+ regex: "$",
428
+ }, {
429
+ token: "empty",
430
+ regex: "",
431
+ next: "start"
432
+ }
433
+ ],
434
+ "comment_regex_allowed" : [
435
+ {
436
+ token : "comment", // closing comment
437
+ regex : ".*?\\*\\/",
438
+ next : "regex_allowed"
439
+ }, {
440
+ token : "comment", // comment spanning whole line
441
+ regex : ".+"
442
+ }
443
+ ],
444
+ "comment" : [
445
+ {
446
+ token : "comment", // closing comment
447
+ regex : ".*?\\*\\/",
448
+ next : "start"
449
+ }, {
450
+ token : "comment", // comment spanning whole line
451
+ regex : ".+"
452
+ }
453
+ ],
454
+ "qqstring" : [
455
+ {
456
+ token : "constant.language.escape",
457
+ regex : escapedRe
458
+ }, {
459
+ token : "string",
460
+ regex : "\\\\$",
461
+ next : "qqstring",
462
+ }, {
463
+ token : "string",
464
+ regex : '"|$',
465
+ next : "start",
466
+ }, {
467
+ token : "string",
468
+ regex : '.|\\w+|\\s+',
469
+ }
470
+ ],
471
+ "qstring" : [
472
+ {
473
+ token : "constant.language.escape",
474
+ regex : escapedRe
475
+ }, {
476
+ token : "string",
477
+ regex : "\\\\$",
478
+ next : "qstring",
479
+ }, {
480
+ token : "string",
481
+ regex : "'|$",
482
+ next : "start",
483
+ }, {
484
+ token : "string",
485
+ regex : '.|\\w+|\\s+',
486
+ }
487
+ ]
488
+ };
489
+
490
+ this.embedRules(DocCommentHighlightRules, "doc-",
491
+ [ DocCommentHighlightRules.getEndRule("start") ]);
492
+ };
493
+
494
+ oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
495
+
496
+ exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
497
+ });
498
+
499
+ define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
500
+
501
+
502
+ var oop = require("../lib/oop");
503
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
504
+
505
+ var DocCommentHighlightRules = function() {
506
+
507
+ this.$rules = {
508
+ "start" : [ {
509
+ token : "comment.doc.tag",
510
+ regex : "@[\\w\\d_]+" // TODO: fix email addresses
511
+ }, {
512
+ token : "comment.doc",
513
+ regex : "\\s+"
514
+ }, {
515
+ token : "comment.doc",
516
+ regex : "TODO"
517
+ }, {
518
+ token : "comment.doc",
519
+ regex : "[^@\\*]+"
520
+ }, {
521
+ token : "comment.doc",
522
+ regex : "."
523
+ }]
524
+ };
525
+ };
526
+
527
+ oop.inherits(DocCommentHighlightRules, TextHighlightRules);
528
+
529
+ DocCommentHighlightRules.getStartRule = function(start) {
530
+ return {
531
+ token : "comment.doc", // doc comment
532
+ regex : "\\/\\*(?=\\*)",
533
+ next : start
534
+ };
535
+ };
536
+
537
+ DocCommentHighlightRules.getEndRule = function (start) {
538
+ return {
539
+ token : "comment.doc", // closing comment
540
+ regex : "\\*\\/",
541
+ next : start
542
+ };
543
+ };
544
+
545
+
546
+ exports.DocCommentHighlightRules = DocCommentHighlightRules;
547
+
548
+ });
549
+
550
+ define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
551
+
552
+
553
+ var Range = require("../range").Range;
554
+
555
+ var MatchingBraceOutdent = function() {};
556
+
557
+ (function() {
558
+
559
+ this.checkOutdent = function(line, input) {
560
+ if (! /^\s+$/.test(line))
561
+ return false;
562
+
563
+ return /^\s*\}/.test(input);
564
+ };
565
+
566
+ this.autoOutdent = function(doc, row) {
567
+ var line = doc.getLine(row);
568
+ var match = line.match(/^(\s*\})/);
569
+
570
+ if (!match) return 0;
571
+
572
+ var column = match[1].length;
573
+ var openBracePos = doc.findMatchingBracket({row: row, column: column});
574
+
575
+ if (!openBracePos || openBracePos.row == row) return 0;
576
+
577
+ var indent = this.$getIndent(doc.getLine(openBracePos.row));
578
+ doc.replace(new Range(row, 0, row, column-1), indent);
579
+ };
580
+
581
+ this.$getIndent = function(line) {
582
+ var match = line.match(/^(\s+)/);
583
+ if (match) {
584
+ return match[1];
585
+ }
586
+
587
+ return "";
588
+ };
589
+
590
+ }).call(MatchingBraceOutdent.prototype);
591
+
592
+ exports.MatchingBraceOutdent = MatchingBraceOutdent;
593
+ });
594
+
595
+ define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/token_iterator', 'ace/lib/lang'], function(require, exports, module) {
596
+
597
+
598
+ var oop = require("../../lib/oop");
599
+ var Behaviour = require("../behaviour").Behaviour;
600
+ var TokenIterator = require("../../token_iterator").TokenIterator;
601
+ var lang = require("../../lib/lang");
602
+
603
+ var SAFE_INSERT_IN_TOKENS =
604
+ ["text", "paren.rparen", "punctuation.operator"];
605
+ var SAFE_INSERT_BEFORE_TOKENS =
606
+ ["text", "paren.rparen", "punctuation.operator", "comment"];
607
+
608
+
609
+ var autoInsertedBrackets = 0;
610
+ var autoInsertedRow = -1;
611
+ var autoInsertedLineEnd = "";
612
+ var maybeInsertedBrackets = 0;
613
+ var maybeInsertedRow = -1;
614
+ var maybeInsertedLineStart = "";
615
+ var maybeInsertedLineEnd = "";
616
+
617
+ var CstyleBehaviour = function () {
618
+
619
+ CstyleBehaviour.isSaneInsertion = function(editor, session) {
620
+ var cursor = editor.getCursorPosition();
621
+ var iterator = new TokenIterator(session, cursor.row, cursor.column);
622
+ if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
623
+ var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
624
+ if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
625
+ return false;
626
+ }
627
+ iterator.stepForward();
628
+ return iterator.getCurrentTokenRow() !== cursor.row ||
629
+ this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
630
+ };
631
+
632
+ CstyleBehaviour.$matchTokenType = function(token, types) {
633
+ return types.indexOf(token.type || token) > -1;
634
+ };
635
+
636
+ CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
637
+ var cursor = editor.getCursorPosition();
638
+ var line = session.doc.getLine(cursor.row);
639
+ if (!this.isAutoInsertedClosing(cursor, line, autoInsertedLineEnd[0]))
640
+ autoInsertedBrackets = 0;
641
+ autoInsertedRow = cursor.row;
642
+ autoInsertedLineEnd = bracket + line.substr(cursor.column);
643
+ autoInsertedBrackets++;
644
+ };
645
+
646
+ CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
647
+ var cursor = editor.getCursorPosition();
648
+ var line = session.doc.getLine(cursor.row);
649
+ if (!this.isMaybeInsertedClosing(cursor, line))
650
+ maybeInsertedBrackets = 0;
651
+ maybeInsertedRow = cursor.row;
652
+ maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
653
+ maybeInsertedLineEnd = line.substr(cursor.column);
654
+ maybeInsertedBrackets++;
655
+ };
656
+
657
+ CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
658
+ return autoInsertedBrackets > 0 &&
659
+ cursor.row === autoInsertedRow &&
660
+ bracket === autoInsertedLineEnd[0] &&
661
+ line.substr(cursor.column) === autoInsertedLineEnd;
662
+ };
663
+
664
+ CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
665
+ return maybeInsertedBrackets > 0 &&
666
+ cursor.row === maybeInsertedRow &&
667
+ line.substr(cursor.column) === maybeInsertedLineEnd &&
668
+ line.substr(0, cursor.column) == maybeInsertedLineStart;
669
+ };
670
+
671
+ CstyleBehaviour.popAutoInsertedClosing = function() {
672
+ autoInsertedLineEnd = autoInsertedLineEnd.substr(1);
673
+ autoInsertedBrackets--;
674
+ };
675
+
676
+ CstyleBehaviour.clearMaybeInsertedClosing = function() {
677
+ maybeInsertedBrackets = 0;
678
+ maybeInsertedRow = -1;
679
+ };
680
+
681
+ this.add("braces", "insertion", function (state, action, editor, session, text) {
682
+ var cursor = editor.getCursorPosition();
683
+ var line = session.doc.getLine(cursor.row);
684
+ if (text == '{') {
685
+ var selection = editor.getSelectionRange();
686
+ var selected = session.doc.getTextRange(selection);
687
+ if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
688
+ return {
689
+ text: '{' + selected + '}',
690
+ selection: false
691
+ };
692
+ } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
693
+ if (/[\]\}\)]/.test(line[cursor.column])) {
694
+ CstyleBehaviour.recordAutoInsert(editor, session, "}");
695
+ return {
696
+ text: '{}',
697
+ selection: [1, 1]
698
+ };
699
+ } else {
700
+ CstyleBehaviour.recordMaybeInsert(editor, session, "{");
701
+ return {
702
+ text: '{',
703
+ selection: [1, 1]
704
+ };
705
+ }
706
+ }
707
+ } else if (text == '}') {
708
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
709
+ if (rightChar == '}') {
710
+ var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
711
+ if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
712
+ CstyleBehaviour.popAutoInsertedClosing();
713
+ return {
714
+ text: '',
715
+ selection: [1, 1]
716
+ };
717
+ }
718
+ }
719
+ } else if (text == "\n" || text == "\r\n") {
720
+ var closing = "";
721
+ if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
722
+ closing = lang.stringRepeat("}", maybeInsertedBrackets);
723
+ CstyleBehaviour.clearMaybeInsertedClosing();
724
+ }
725
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
726
+ if (rightChar == '}' || closing !== "") {
727
+ var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column}, '}');
728
+ if (!openBracePos)
729
+ return null;
730
+
731
+ var indent = this.getNextLineIndent(state, line.substring(0, cursor.column), session.getTabString());
732
+ var next_indent = this.$getIndent(line);
733
+
734
+ return {
735
+ text: '\n' + indent + '\n' + next_indent + closing,
736
+ selection: [1, indent.length, 1, indent.length]
737
+ };
738
+ }
739
+ }
740
+ });
741
+
742
+ this.add("braces", "deletion", function (state, action, editor, session, range) {
743
+ var selected = session.doc.getTextRange(range);
744
+ if (!range.isMultiLine() && selected == '{') {
745
+ var line = session.doc.getLine(range.start.row);
746
+ var rightChar = line.substring(range.end.column, range.end.column + 1);
747
+ if (rightChar == '}') {
748
+ range.end.column++;
749
+ return range;
750
+ } else {
751
+ maybeInsertedBrackets--;
752
+ }
753
+ }
754
+ });
755
+
756
+ this.add("parens", "insertion", function (state, action, editor, session, text) {
757
+ if (text == '(') {
758
+ var selection = editor.getSelectionRange();
759
+ var selected = session.doc.getTextRange(selection);
760
+ if (selected !== "" && editor.getWrapBehavioursEnabled()) {
761
+ return {
762
+ text: '(' + selected + ')',
763
+ selection: false
764
+ };
765
+ } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
766
+ CstyleBehaviour.recordAutoInsert(editor, session, ")");
767
+ return {
768
+ text: '()',
769
+ selection: [1, 1]
770
+ };
771
+ }
772
+ } else if (text == ')') {
773
+ var cursor = editor.getCursorPosition();
774
+ var line = session.doc.getLine(cursor.row);
775
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
776
+ if (rightChar == ')') {
777
+ var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});
778
+ if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
779
+ CstyleBehaviour.popAutoInsertedClosing();
780
+ return {
781
+ text: '',
782
+ selection: [1, 1]
783
+ };
784
+ }
785
+ }
786
+ }
787
+ });
788
+
789
+ this.add("parens", "deletion", function (state, action, editor, session, range) {
790
+ var selected = session.doc.getTextRange(range);
791
+ if (!range.isMultiLine() && selected == '(') {
792
+ var line = session.doc.getLine(range.start.row);
793
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
794
+ if (rightChar == ')') {
795
+ range.end.column++;
796
+ return range;
797
+ }
798
+ }
799
+ });
800
+
801
+ this.add("brackets", "insertion", function (state, action, editor, session, text) {
802
+ if (text == '[') {
803
+ var selection = editor.getSelectionRange();
804
+ var selected = session.doc.getTextRange(selection);
805
+ if (selected !== "" && editor.getWrapBehavioursEnabled()) {
806
+ return {
807
+ text: '[' + selected + ']',
808
+ selection: false
809
+ };
810
+ } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
811
+ CstyleBehaviour.recordAutoInsert(editor, session, "]");
812
+ return {
813
+ text: '[]',
814
+ selection: [1, 1]
815
+ };
816
+ }
817
+ } else if (text == ']') {
818
+ var cursor = editor.getCursorPosition();
819
+ var line = session.doc.getLine(cursor.row);
820
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
821
+ if (rightChar == ']') {
822
+ var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});
823
+ if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {
824
+ CstyleBehaviour.popAutoInsertedClosing();
825
+ return {
826
+ text: '',
827
+ selection: [1, 1]
828
+ };
829
+ }
830
+ }
831
+ }
832
+ });
833
+
834
+ this.add("brackets", "deletion", function (state, action, editor, session, range) {
835
+ var selected = session.doc.getTextRange(range);
836
+ if (!range.isMultiLine() && selected == '[') {
837
+ var line = session.doc.getLine(range.start.row);
838
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
839
+ if (rightChar == ']') {
840
+ range.end.column++;
841
+ return range;
842
+ }
843
+ }
844
+ });
845
+
846
+ this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
847
+ if (text == '"' || text == "'") {
848
+ var quote = text;
849
+ var selection = editor.getSelectionRange();
850
+ var selected = session.doc.getTextRange(selection);
851
+ if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
852
+ return {
853
+ text: quote + selected + quote,
854
+ selection: false
855
+ };
856
+ } else {
857
+ var cursor = editor.getCursorPosition();
858
+ var line = session.doc.getLine(cursor.row);
859
+ var leftChar = line.substring(cursor.column-1, cursor.column);
860
+ if (leftChar == '\\') {
861
+ return null;
862
+ }
863
+ var tokens = session.getTokens(selection.start.row);
864
+ var col = 0, token;
865
+ var quotepos = -1; // Track whether we're inside an open quote.
866
+
867
+ for (var x = 0; x < tokens.length; x++) {
868
+ token = tokens[x];
869
+ if (token.type == "string") {
870
+ quotepos = -1;
871
+ } else if (quotepos < 0) {
872
+ quotepos = token.value.indexOf(quote);
873
+ }
874
+ if ((token.value.length + col) > selection.start.column) {
875
+ break;
876
+ }
877
+ col += tokens[x].value.length;
878
+ }
879
+ if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
880
+ if (!CstyleBehaviour.isSaneInsertion(editor, session))
881
+ return;
882
+ return {
883
+ text: quote + quote,
884
+ selection: [1,1]
885
+ };
886
+ } else if (token && token.type === "string") {
887
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
888
+ if (rightChar == quote) {
889
+ return {
890
+ text: '',
891
+ selection: [1, 1]
892
+ };
893
+ }
894
+ }
895
+ }
896
+ }
897
+ });
898
+
899
+ this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
900
+ var selected = session.doc.getTextRange(range);
901
+ if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
902
+ var line = session.doc.getLine(range.start.row);
903
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
904
+ if (rightChar == '"') {
905
+ range.end.column++;
906
+ return range;
907
+ }
908
+ }
909
+ });
910
+
911
+ };
912
+
913
+ oop.inherits(CstyleBehaviour, Behaviour);
914
+
915
+ exports.CstyleBehaviour = CstyleBehaviour;
916
+ });
917
+
918
+ define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
919
+
920
+
921
+ var oop = require("../../lib/oop");
922
+ var Range = require("../../range").Range;
923
+ var BaseFoldMode = require("./fold_mode").FoldMode;
924
+
925
+ var FoldMode = exports.FoldMode = function() {};
926
+ oop.inherits(FoldMode, BaseFoldMode);
927
+
928
+ (function() {
929
+
930
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
931
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
932
+
933
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
934
+ var line = session.getLine(row);
935
+ var match = line.match(this.foldingStartMarker);
936
+ if (match) {
937
+ var i = match.index;
938
+
939
+ if (match[1])
940
+ return this.openingBracketBlock(session, match[1], row, i);
941
+
942
+ return session.getCommentFoldRange(row, i + match[0].length, 1);
943
+ }
944
+
945
+ if (foldStyle !== "markbeginend")
946
+ return;
947
+
948
+ var match = line.match(this.foldingStopMarker);
949
+ if (match) {
950
+ var i = match.index + match[0].length;
951
+
952
+ if (match[1])
953
+ return this.closingBracketBlock(session, match[1], row, i);
954
+
955
+ return session.getCommentFoldRange(row, i, -1);
956
+ }
957
+ };
958
+
959
+ }).call(FoldMode.prototype);
960
+
961
+ });
962
+
963
+ define('ace/mode/css', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/css_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) {
964
+
965
+
966
+ var oop = require("../lib/oop");
967
+ var TextMode = require("./text").Mode;
968
+ var Tokenizer = require("../tokenizer").Tokenizer;
969
+ var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
970
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
971
+ var WorkerClient = require("../worker/worker_client").WorkerClient;
972
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
973
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
974
+
975
+ var Mode = function() {
976
+ this.$tokenizer = new Tokenizer(new CssHighlightRules().getRules(), "i");
977
+ this.$outdent = new MatchingBraceOutdent();
978
+ this.$behaviour = new CstyleBehaviour();
979
+ this.foldingRules = new CStyleFoldMode();
980
+ };
981
+ oop.inherits(Mode, TextMode);
982
+
983
+ (function() {
984
+
985
+ this.foldingRules = "cStyle";
986
+
987
+ this.getNextLineIndent = function(state, line, tab) {
988
+ var indent = this.$getIndent(line);
989
+ var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
990
+ if (tokens.length && tokens[tokens.length-1].type == "comment") {
991
+ return indent;
992
+ }
993
+
994
+ var match = line.match(/^.*\{\s*$/);
995
+ if (match) {
996
+ indent += tab;
997
+ }
998
+
999
+ return indent;
1000
+ };
1001
+
1002
+ this.checkOutdent = function(state, line, input) {
1003
+ return this.$outdent.checkOutdent(line, input);
1004
+ };
1005
+
1006
+ this.autoOutdent = function(state, doc, row) {
1007
+ this.$outdent.autoOutdent(doc, row);
1008
+ };
1009
+
1010
+ this.createWorker = function(session) {
1011
+ var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
1012
+ worker.attachToDocument(session.getDocument());
1013
+
1014
+ worker.on("csslint", function(e) {
1015
+ session.setAnnotations(e.data);
1016
+ });
1017
+
1018
+ worker.on("terminate", function() {
1019
+ session.clearAnnotations();
1020
+ });
1021
+
1022
+ return worker;
1023
+ };
1024
+
1025
+ }).call(Mode.prototype);
1026
+
1027
+ exports.Mode = Mode;
1028
+
1029
+ });
1030
+
1031
+ define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
1032
+
1033
+
1034
+ var oop = require("../lib/oop");
1035
+ var lang = require("../lib/lang");
1036
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
1037
+ var supportType = exports.supportType = "animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index";
1038
+ var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
1039
+ var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
1040
+ var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
1041
+ var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
1042
+
1043
+ var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
1044
+ var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
1045
+ var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
1046
+
1047
+ var CssHighlightRules = function() {
1048
+
1049
+ var keywordMapper = this.createKeywordMapper({
1050
+ "support.function": supportFunction,
1051
+ "support.constant": supportConstant,
1052
+ "support.type": supportType,
1053
+ "support.constant.color": supportConstantColor,
1054
+ "support.constant.fonts": supportConstantFonts
1055
+ }, "text", true);
1056
+
1057
+ var base_ruleset = [
1058
+ {
1059
+ token : "comment", // multi line comment
1060
+ regex : "\\/\\*",
1061
+ next : "ruleset_comment"
1062
+ }, {
1063
+ token : "string", // single line
1064
+ regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
1065
+ }, {
1066
+ token : "string", // single line
1067
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
1068
+ }, {
1069
+ token : ["constant.numeric", "keyword"],
1070
+ regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
1071
+ }, {
1072
+ token : "constant.numeric",
1073
+ regex : numRe
1074
+ }, {
1075
+ token : "constant.numeric", // hex6 color
1076
+ regex : "#[a-f0-9]{6}"
1077
+ }, {
1078
+ token : "constant.numeric", // hex3 color
1079
+ regex : "#[a-f0-9]{3}"
1080
+ }, {
1081
+ token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
1082
+ regex : pseudoElements
1083
+ }, {
1084
+ token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
1085
+ regex : pseudoClasses
1086
+ }, {
1087
+ token : keywordMapper,
1088
+ regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
1089
+ }
1090
+ ];
1091
+
1092
+ var ruleset = lang.copyArray(base_ruleset);
1093
+ ruleset.unshift({
1094
+ token : "paren.rparen",
1095
+ regex : "\\}",
1096
+ next: "start"
1097
+ });
1098
+
1099
+ var media_ruleset = lang.copyArray( base_ruleset );
1100
+ media_ruleset.unshift({
1101
+ token : "paren.rparen",
1102
+ regex : "\\}",
1103
+ next: "media"
1104
+ });
1105
+
1106
+ var base_comment = [{
1107
+ token : "comment", // comment spanning whole line
1108
+ regex : ".+"
1109
+ }];
1110
+
1111
+ var comment = lang.copyArray(base_comment);
1112
+ comment.unshift({
1113
+ token : "comment", // closing comment
1114
+ regex : ".*?\\*\\/",
1115
+ next : "start"
1116
+ });
1117
+
1118
+ var media_comment = lang.copyArray(base_comment);
1119
+ media_comment.unshift({
1120
+ token : "comment", // closing comment
1121
+ regex : ".*?\\*\\/",
1122
+ next : "media"
1123
+ });
1124
+
1125
+ var ruleset_comment = lang.copyArray(base_comment);
1126
+ ruleset_comment.unshift({
1127
+ token : "comment", // closing comment
1128
+ regex : ".*?\\*\\/",
1129
+ next : "ruleset"
1130
+ });
1131
+
1132
+ this.$rules = {
1133
+ "start" : [{
1134
+ token : "comment", // multi line comment
1135
+ regex : "\\/\\*",
1136
+ next : "comment"
1137
+ }, {
1138
+ token: "paren.lparen",
1139
+ regex: "\\{",
1140
+ next: "ruleset"
1141
+ }, {
1142
+ token: "string",
1143
+ regex: "@.*?{",
1144
+ next: "media"
1145
+ },{
1146
+ token: "keyword",
1147
+ regex: "#[a-z0-9-_]+"
1148
+ },{
1149
+ token: "variable",
1150
+ regex: "\\.[a-z0-9-_]+"
1151
+ },{
1152
+ token: "string",
1153
+ regex: ":[a-z0-9-_]+"
1154
+ },{
1155
+ token: "constant",
1156
+ regex: "[a-z0-9-_]+"
1157
+ }],
1158
+
1159
+ "media" : [ {
1160
+ token : "comment", // multi line comment
1161
+ regex : "\\/\\*",
1162
+ next : "media_comment"
1163
+ }, {
1164
+ token: "paren.lparen",
1165
+ regex: "\\{",
1166
+ next: "media_ruleset"
1167
+ },{
1168
+ token: "string",
1169
+ regex: "\\}",
1170
+ next: "start"
1171
+ },{
1172
+ token: "keyword",
1173
+ regex: "#[a-z0-9-_]+"
1174
+ },{
1175
+ token: "variable",
1176
+ regex: "\\.[a-z0-9-_]+"
1177
+ },{
1178
+ token: "string",
1179
+ regex: ":[a-z0-9-_]+"
1180
+ },{
1181
+ token: "constant",
1182
+ regex: "[a-z0-9-_]+"
1183
+ }],
1184
+
1185
+ "comment" : comment,
1186
+
1187
+ "ruleset" : ruleset,
1188
+ "ruleset_comment" : ruleset_comment,
1189
+
1190
+ "media_ruleset" : media_ruleset,
1191
+ "media_comment" : media_comment
1192
+ };
1193
+ };
1194
+
1195
+ oop.inherits(CssHighlightRules, TextHighlightRules);
1196
+
1197
+ exports.CssHighlightRules = CssHighlightRules;
1198
+
1199
+ });
1200
+
1201
+ define('ace/mode/html_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/css_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
1202
+
1203
+
1204
+ var oop = require("../lib/oop");
1205
+ var lang = require("../lib/lang");
1206
+ var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
1207
+ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
1208
+ var xmlUtil = require("./xml_util");
1209
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
1210
+
1211
+ var tagMap = lang.createMap({
1212
+ a : 'anchor',
1213
+ button : 'form',
1214
+ form : 'form',
1215
+ img : 'image',
1216
+ input : 'form',
1217
+ label : 'form',
1218
+ script : 'script',
1219
+ select : 'form',
1220
+ textarea : 'form',
1221
+ style : 'style',
1222
+ table : 'table',
1223
+ tbody : 'table',
1224
+ td : 'table',
1225
+ tfoot : 'table',
1226
+ th : 'table',
1227
+ tr : 'table'
1228
+ });
1229
+
1230
+ var HtmlHighlightRules = function() {
1231
+ this.$rules = {
1232
+ start : [{
1233
+ token : "text",
1234
+ regex : "<\\!\\[CDATA\\[",
1235
+ next : "cdata"
1236
+ }, {
1237
+ token : "xml-pe",
1238
+ regex : "<\\?.*?\\?>"
1239
+ }, {
1240
+ token : "comment",
1241
+ regex : "<\\!--",
1242
+ next : "comment"
1243
+ }, {
1244
+ token : "xml-pe",
1245
+ regex : "<\\!.*?>"
1246
+ }, {
1247
+ token : "meta.tag",
1248
+ regex : "<(?=script\\b)",
1249
+ next : "script"
1250
+ }, {
1251
+ token : "meta.tag",
1252
+ regex : "<(?=style\\b)",
1253
+ next : "style"
1254
+ }, {
1255
+ token : "meta.tag", // opening tag
1256
+ regex : "<\\/?",
1257
+ next : "tag"
1258
+ }, {
1259
+ token : "text",
1260
+ regex : "\\s+"
1261
+ }, {
1262
+ token : "constant.character.entity",
1263
+ regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
1264
+ }, {
1265
+ token : "text",
1266
+ regex : "[^<]+"
1267
+ } ],
1268
+
1269
+ cdata : [ {
1270
+ token : "text",
1271
+ regex : "\\]\\]>",
1272
+ next : "start"
1273
+ }, {
1274
+ token : "text",
1275
+ regex : "\\s+"
1276
+ }, {
1277
+ token : "text",
1278
+ regex : ".+"
1279
+ } ],
1280
+
1281
+ comment : [ {
1282
+ token : "comment",
1283
+ regex : ".*?-->",
1284
+ next : "start"
1285
+ }, {
1286
+ token : "comment",
1287
+ regex : ".+"
1288
+ } ]
1289
+ };
1290
+
1291
+ xmlUtil.tag(this.$rules, "tag", "start", tagMap);
1292
+ xmlUtil.tag(this.$rules, "style", "css-start", tagMap);
1293
+ xmlUtil.tag(this.$rules, "script", "js-start", tagMap);
1294
+
1295
+ this.embedRules(JavaScriptHighlightRules, "js-", [{
1296
+ token: "comment",
1297
+ regex: "\\/\\/.*(?=<\\/script>)",
1298
+ next: "tag"
1299
+ }, {
1300
+ token: "meta.tag",
1301
+ regex: "<\\/(?=script)",
1302
+ next: "tag"
1303
+ }]);
1304
+
1305
+ this.embedRules(CssHighlightRules, "css-", [{
1306
+ token: "meta.tag",
1307
+ regex: "<\\/(?=style)",
1308
+ next: "tag"
1309
+ }]);
1310
+ };
1311
+
1312
+ oop.inherits(HtmlHighlightRules, TextHighlightRules);
1313
+
1314
+ exports.HtmlHighlightRules = HtmlHighlightRules;
1315
+ });
1316
+
1317
+ define('ace/mode/xml_util', ['require', 'exports', 'module' ], function(require, exports, module) {
1318
+
1319
+
1320
+ function string(state) {
1321
+ return [{
1322
+ token : "string",
1323
+ regex : '"',
1324
+ next : state + "_qqstring"
1325
+ }, {
1326
+ token : "string",
1327
+ regex : "'",
1328
+ next : state + "_qstring"
1329
+ }];
1330
+ }
1331
+
1332
+ function multiLineString(quote, state) {
1333
+ return [
1334
+ {token : "string", regex : quote, next : state},
1335
+ {
1336
+ token : "constant.language.escape",
1337
+ regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
1338
+ },
1339
+ {token : "string", regex : '\\w+|.|\\s+'}
1340
+ ];
1341
+ }
1342
+
1343
+ exports.tag = function(states, name, nextState, tagMap) {
1344
+ states[name] = [{
1345
+ token : "text",
1346
+ regex : "\\s+"
1347
+ }, {
1348
+
1349
+ token : !tagMap ? "meta.tag.tag-name" : function(value) {
1350
+ if (tagMap[value])
1351
+ return "meta.tag.tag-name." + tagMap[value];
1352
+ else
1353
+ return "meta.tag.tag-name";
1354
+ },
1355
+ regex : "[-_a-zA-Z0-9:]+",
1356
+ next : name + "_embed_attribute_list"
1357
+ }, {
1358
+ token: "empty",
1359
+ regex: "",
1360
+ next : name + "_embed_attribute_list"
1361
+ }];
1362
+
1363
+ states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list");
1364
+ states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list");
1365
+
1366
+ states[name + "_embed_attribute_list"] = [{
1367
+ token : "meta.tag.r",
1368
+ regex : "/?>",
1369
+ next : nextState
1370
+ }, {
1371
+ token : "keyword.operator",
1372
+ regex : "="
1373
+ }, {
1374
+ token : "entity.other.attribute-name",
1375
+ regex : "[-_a-zA-Z0-9:]+"
1376
+ }, {
1377
+ token : "constant.numeric", // float
1378
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
1379
+ }, {
1380
+ token : "text",
1381
+ regex : "\\s+"
1382
+ }].concat(string(name));
1383
+ };
1384
+
1385
+ });
1386
+
1387
+ define('ace/mode/behaviour/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour/xml', 'ace/mode/behaviour/cstyle', 'ace/token_iterator'], function(require, exports, module) {
1388
+
1389
+
1390
+ var oop = require("../../lib/oop");
1391
+ var XmlBehaviour = require("../behaviour/xml").XmlBehaviour;
1392
+ var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
1393
+ var TokenIterator = require("../../token_iterator").TokenIterator;
1394
+ var voidElements = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
1395
+
1396
+ function hasType(token, type) {
1397
+ var hasType = true;
1398
+ var typeList = token.type.split('.');
1399
+ var needleList = type.split('.');
1400
+ needleList.forEach(function(needle){
1401
+ if (typeList.indexOf(needle) == -1) {
1402
+ hasType = false;
1403
+ return false;
1404
+ }
1405
+ });
1406
+ return hasType;
1407
+ }
1408
+
1409
+ var HtmlBehaviour = function () {
1410
+
1411
+ this.inherit(XmlBehaviour); // Get xml behaviour
1412
+
1413
+ this.add("autoclosing", "insertion", function (state, action, editor, session, text) {
1414
+ if (text == '>') {
1415
+ var position = editor.getCursorPosition();
1416
+ var iterator = new TokenIterator(session, position.row, position.column);
1417
+ var token = iterator.getCurrentToken();
1418
+ var atCursor = false;
1419
+ if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){
1420
+ do {
1421
+ token = iterator.stepBackward();
1422
+ } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text')));
1423
+ } else {
1424
+ atCursor = true;
1425
+ }
1426
+ if (!token || !hasType(token, 'meta.tag-name') || iterator.stepBackward().value.match('/')) {
1427
+ return
1428
+ }
1429
+ var element = token.value;
1430
+ if (atCursor){
1431
+ var element = element.substring(0, position.column - token.start);
1432
+ }
1433
+ if (voidElements.indexOf(element) !== -1){
1434
+ return;
1435
+ }
1436
+ return {
1437
+ text: '>' + '</' + element + '>',
1438
+ selection: [1, 1]
1439
+ }
1440
+ }
1441
+ });
1442
+ }
1443
+ oop.inherits(HtmlBehaviour, XmlBehaviour);
1444
+
1445
+ exports.HtmlBehaviour = HtmlBehaviour;
1446
+ });
1447
+
1448
+ define('ace/mode/behaviour/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle', 'ace/token_iterator'], function(require, exports, module) {
1449
+
1450
+
1451
+ var oop = require("../../lib/oop");
1452
+ var Behaviour = require("../behaviour").Behaviour;
1453
+ var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
1454
+ var TokenIterator = require("../../token_iterator").TokenIterator;
1455
+
1456
+ function hasType(token, type) {
1457
+ var hasType = true;
1458
+ var typeList = token.type.split('.');
1459
+ var needleList = type.split('.');
1460
+ needleList.forEach(function(needle){
1461
+ if (typeList.indexOf(needle) == -1) {
1462
+ hasType = false;
1463
+ return false;
1464
+ }
1465
+ });
1466
+ return hasType;
1467
+ }
1468
+
1469
+ var XmlBehaviour = function () {
1470
+
1471
+ this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour
1472
+
1473
+ this.add("autoclosing", "insertion", function (state, action, editor, session, text) {
1474
+ if (text == '>') {
1475
+ var position = editor.getCursorPosition();
1476
+ var iterator = new TokenIterator(session, position.row, position.column);
1477
+ var token = iterator.getCurrentToken();
1478
+ var atCursor = false;
1479
+ if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){
1480
+ do {
1481
+ token = iterator.stepBackward();
1482
+ } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text')));
1483
+ } else {
1484
+ atCursor = true;
1485
+ }
1486
+ if (!token || !hasType(token, 'meta.tag-name') || iterator.stepBackward().value.match('/')) {
1487
+ return
1488
+ }
1489
+ var tag = token.value;
1490
+ if (atCursor){
1491
+ var tag = tag.substring(0, position.column - token.start);
1492
+ }
1493
+
1494
+ return {
1495
+ text: '>' + '</' + tag + '>',
1496
+ selection: [1, 1]
1497
+ }
1498
+ }
1499
+ });
1500
+
1501
+ this.add('autoindent', 'insertion', function (state, action, editor, session, text) {
1502
+ if (text == "\n") {
1503
+ var cursor = editor.getCursorPosition();
1504
+ var line = session.doc.getLine(cursor.row);
1505
+ var rightChars = line.substring(cursor.column, cursor.column + 2);
1506
+ if (rightChars == '</') {
1507
+ var indent = this.$getIndent(session.doc.getLine(cursor.row)) + session.getTabString();
1508
+ var next_indent = this.$getIndent(session.doc.getLine(cursor.row));
1509
+
1510
+ return {
1511
+ text: '\n' + indent + '\n' + next_indent,
1512
+ selection: [1, indent.length, 1, indent.length]
1513
+ }
1514
+ }
1515
+ }
1516
+ });
1517
+
1518
+ }
1519
+ oop.inherits(XmlBehaviour, Behaviour);
1520
+
1521
+ exports.XmlBehaviour = XmlBehaviour;
1522
+ });
1523
+
1524
+ define('ace/mode/folding/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/mixed', 'ace/mode/folding/xml', 'ace/mode/folding/cstyle'], function(require, exports, module) {
1525
+
1526
+
1527
+ var oop = require("../../lib/oop");
1528
+ var MixedFoldMode = require("./mixed").FoldMode;
1529
+ var XmlFoldMode = require("./xml").FoldMode;
1530
+ var CStyleFoldMode = require("./cstyle").FoldMode;
1531
+
1532
+ var FoldMode = exports.FoldMode = function() {
1533
+ MixedFoldMode.call(this, new XmlFoldMode({
1534
+ "area": 1,
1535
+ "base": 1,
1536
+ "br": 1,
1537
+ "col": 1,
1538
+ "command": 1,
1539
+ "embed": 1,
1540
+ "hr": 1,
1541
+ "img": 1,
1542
+ "input": 1,
1543
+ "keygen": 1,
1544
+ "link": 1,
1545
+ "meta": 1,
1546
+ "param": 1,
1547
+ "source": 1,
1548
+ "track": 1,
1549
+ "wbr": 1,
1550
+ "li": 1,
1551
+ "dt": 1,
1552
+ "dd": 1,
1553
+ "p": 1,
1554
+ "rt": 1,
1555
+ "rp": 1,
1556
+ "optgroup": 1,
1557
+ "option": 1,
1558
+ "colgroup": 1,
1559
+ "td": 1,
1560
+ "th": 1
1561
+ }), {
1562
+ "js-": new CStyleFoldMode(),
1563
+ "css-": new CStyleFoldMode()
1564
+ });
1565
+ };
1566
+
1567
+ oop.inherits(FoldMode, MixedFoldMode);
1568
+
1569
+ });
1570
+
1571
+ define('ace/mode/folding/mixed', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
1572
+
1573
+
1574
+ var oop = require("../../lib/oop");
1575
+ var BaseFoldMode = require("./fold_mode").FoldMode;
1576
+
1577
+ var FoldMode = exports.FoldMode = function(defaultMode, subModes) {
1578
+ this.defaultMode = defaultMode;
1579
+ this.subModes = subModes;
1580
+ };
1581
+ oop.inherits(FoldMode, BaseFoldMode);
1582
+
1583
+ (function() {
1584
+
1585
+
1586
+ this.$getMode = function(state) {
1587
+ for (var key in this.subModes) {
1588
+ if (state.indexOf(key) === 0)
1589
+ return this.subModes[key];
1590
+ }
1591
+ return null;
1592
+ };
1593
+
1594
+ this.$tryMode = function(state, session, foldStyle, row) {
1595
+ var mode = this.$getMode(state);
1596
+ return (mode ? mode.getFoldWidget(session, foldStyle, row) : "");
1597
+ };
1598
+
1599
+ this.getFoldWidget = function(session, foldStyle, row) {
1600
+ return (
1601
+ this.$tryMode(session.getState(row-1), session, foldStyle, row) ||
1602
+ this.$tryMode(session.getState(row), session, foldStyle, row) ||
1603
+ this.defaultMode.getFoldWidget(session, foldStyle, row)
1604
+ );
1605
+ };
1606
+
1607
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
1608
+ var mode = this.$getMode(session.getState(row-1));
1609
+
1610
+ if (!mode || !mode.getFoldWidget(session, foldStyle, row))
1611
+ mode = this.$getMode(session.getState(row));
1612
+
1613
+ if (!mode || !mode.getFoldWidget(session, foldStyle, row))
1614
+ mode = this.defaultMode;
1615
+
1616
+ return mode.getFoldWidgetRange(session, foldStyle, row);
1617
+ };
1618
+
1619
+ }).call(FoldMode.prototype);
1620
+
1621
+ });
1622
+
1623
+ define('ace/mode/folding/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/range', 'ace/mode/folding/fold_mode', 'ace/token_iterator'], function(require, exports, module) {
1624
+
1625
+
1626
+ var oop = require("../../lib/oop");
1627
+ var lang = require("../../lib/lang");
1628
+ var Range = require("../../range").Range;
1629
+ var BaseFoldMode = require("./fold_mode").FoldMode;
1630
+ var TokenIterator = require("../../token_iterator").TokenIterator;
1631
+
1632
+ var FoldMode = exports.FoldMode = function(voidElements) {
1633
+ BaseFoldMode.call(this);
1634
+ this.voidElements = voidElements || {};
1635
+ };
1636
+ oop.inherits(FoldMode, BaseFoldMode);
1637
+
1638
+ (function() {
1639
+
1640
+ this.getFoldWidget = function(session, foldStyle, row) {
1641
+ var tag = this._getFirstTagInLine(session, row);
1642
+
1643
+ if (tag.closing)
1644
+ return foldStyle == "markbeginend" ? "end" : "";
1645
+
1646
+ if (!tag.tagName || this.voidElements[tag.tagName.toLowerCase()])
1647
+ return "";
1648
+
1649
+ if (tag.selfClosing)
1650
+ return "";
1651
+
1652
+ if (tag.value.indexOf("/" + tag.tagName) !== -1)
1653
+ return "";
1654
+
1655
+ return "start";
1656
+ };
1657
+
1658
+ this._getFirstTagInLine = function(session, row) {
1659
+ var tokens = session.getTokens(row);
1660
+ var value = "";
1661
+ for (var i = 0; i < tokens.length; i++) {
1662
+ var token = tokens[i];
1663
+ if (token.type.indexOf("meta.tag") === 0)
1664
+ value += token.value;
1665
+ else
1666
+ value += lang.stringRepeat(" ", token.value.length);
1667
+ }
1668
+
1669
+ return this._parseTag(value);
1670
+ };
1671
+
1672
+ this.tagRe = /^(\s*)(<?(\/?)([-_a-zA-Z0-9:!]*)\s*(\/?)>?)/;
1673
+ this._parseTag = function(tag) {
1674
+
1675
+ var match = this.tagRe.exec(tag);
1676
+ var column = this.tagRe.lastIndex || 0;
1677
+ this.tagRe.lastIndex = 0;
1678
+
1679
+ return {
1680
+ value: tag,
1681
+ match: match ? match[2] : "",
1682
+ closing: match ? !!match[3] : false,
1683
+ selfClosing: match ? !!match[5] || match[2] == "/>" : false,
1684
+ tagName: match ? match[4] : "",
1685
+ column: match[1] ? column + match[1].length : column
1686
+ };
1687
+ };
1688
+ this._readTagForward = function(iterator) {
1689
+ var token = iterator.getCurrentToken();
1690
+ if (!token)
1691
+ return null;
1692
+
1693
+ var value = "";
1694
+ var start;
1695
+
1696
+ do {
1697
+ if (token.type.indexOf("meta.tag") === 0) {
1698
+ if (!start) {
1699
+ var start = {
1700
+ row: iterator.getCurrentTokenRow(),
1701
+ column: iterator.getCurrentTokenColumn()
1702
+ };
1703
+ }
1704
+ value += token.value;
1705
+ if (value.indexOf(">") !== -1) {
1706
+ var tag = this._parseTag(value);
1707
+ tag.start = start;
1708
+ tag.end = {
1709
+ row: iterator.getCurrentTokenRow(),
1710
+ column: iterator.getCurrentTokenColumn() + token.value.length
1711
+ };
1712
+ iterator.stepForward();
1713
+ return tag;
1714
+ }
1715
+ }
1716
+ } while(token = iterator.stepForward());
1717
+
1718
+ return null;
1719
+ };
1720
+
1721
+ this._readTagBackward = function(iterator) {
1722
+ var token = iterator.getCurrentToken();
1723
+ if (!token)
1724
+ return null;
1725
+
1726
+ var value = "";
1727
+ var end;
1728
+
1729
+ do {
1730
+ if (token.type.indexOf("meta.tag") === 0) {
1731
+ if (!end) {
1732
+ end = {
1733
+ row: iterator.getCurrentTokenRow(),
1734
+ column: iterator.getCurrentTokenColumn() + token.value.length
1735
+ };
1736
+ }
1737
+ value = token.value + value;
1738
+ if (value.indexOf("<") !== -1) {
1739
+ var tag = this._parseTag(value);
1740
+ tag.end = end;
1741
+ tag.start = {
1742
+ row: iterator.getCurrentTokenRow(),
1743
+ column: iterator.getCurrentTokenColumn()
1744
+ };
1745
+ iterator.stepBackward();
1746
+ return tag;
1747
+ }
1748
+ }
1749
+ } while(token = iterator.stepBackward());
1750
+
1751
+ return null;
1752
+ };
1753
+
1754
+ this._pop = function(stack, tag) {
1755
+ while (stack.length) {
1756
+
1757
+ var top = stack[stack.length-1];
1758
+ if (!tag || top.tagName == tag.tagName) {
1759
+ return stack.pop();
1760
+ }
1761
+ else if (this.voidElements[tag.tagName]) {
1762
+ return;
1763
+ }
1764
+ else if (this.voidElements[top.tagName]) {
1765
+ stack.pop();
1766
+ continue;
1767
+ } else {
1768
+ return null;
1769
+ }
1770
+ }
1771
+ };
1772
+
1773
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
1774
+ var firstTag = this._getFirstTagInLine(session, row);
1775
+
1776
+ if (!firstTag.match)
1777
+ return null;
1778
+
1779
+ var isBackward = firstTag.closing || firstTag.selfClosing;
1780
+ var stack = [];
1781
+ var tag;
1782
+
1783
+ if (!isBackward) {
1784
+ var iterator = new TokenIterator(session, row, firstTag.column);
1785
+ var start = {
1786
+ row: row,
1787
+ column: firstTag.column + firstTag.tagName.length + 2
1788
+ };
1789
+ while (tag = this._readTagForward(iterator)) {
1790
+ if (tag.selfClosing) {
1791
+ if (!stack.length) {
1792
+ tag.start.column += tag.tagName.length + 2;
1793
+ tag.end.column -= 2;
1794
+ return Range.fromPoints(tag.start, tag.end);
1795
+ } else
1796
+ continue;
1797
+ }
1798
+
1799
+ if (tag.closing) {
1800
+ this._pop(stack, tag);
1801
+ if (stack.length == 0)
1802
+ return Range.fromPoints(start, tag.start);
1803
+ }
1804
+ else {
1805
+ stack.push(tag)
1806
+ }
1807
+ }
1808
+ }
1809
+ else {
1810
+ var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length);
1811
+ var end = {
1812
+ row: row,
1813
+ column: firstTag.column
1814
+ };
1815
+
1816
+ while (tag = this._readTagBackward(iterator)) {
1817
+ if (tag.selfClosing) {
1818
+ if (!stack.length) {
1819
+ tag.start.column += tag.tagName.length + 2;
1820
+ tag.end.column -= 2;
1821
+ return Range.fromPoints(tag.start, tag.end);
1822
+ } else
1823
+ continue;
1824
+ }
1825
+
1826
+ if (!tag.closing) {
1827
+ this._pop(stack, tag);
1828
+ if (stack.length == 0) {
1829
+ tag.start.column += tag.tagName.length + 2;
1830
+ return Range.fromPoints(tag.start, end);
1831
+ }
1832
+ }
1833
+ else {
1834
+ stack.push(tag)
1835
+ }
1836
+ }
1837
+ }
1838
+
1839
+ };
1840
+
1841
+ }).call(FoldMode.prototype);
1842
+
1843
+ });
1844
+
1845
+ define('ace/mode/lua', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/lua_highlight_rules', 'ace/mode/folding/lua', 'ace/range'], function(require, exports, module) {
1846
+
1847
+
1848
+ var oop = require("../lib/oop");
1849
+ var TextMode = require("./text").Mode;
1850
+ var Tokenizer = require("../tokenizer").Tokenizer;
1851
+ var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
1852
+ var LuaFoldMode = require("./folding/lua").FoldMode;
1853
+ var Range = require("../range").Range;
1854
+
1855
+ var Mode = function() {
1856
+ this.$tokenizer = new Tokenizer(new LuaHighlightRules().getRules());
1857
+ this.foldingRules = new LuaFoldMode();
1858
+ };
1859
+ oop.inherits(Mode, TextMode);
1860
+
1861
+ (function() {
1862
+ var indentKeywords = {
1863
+ "function": 1,
1864
+ "then": 1,
1865
+ "do": 1,
1866
+ "else": 1,
1867
+ "elseif": 1,
1868
+ "repeat": 1,
1869
+ "end": -1,
1870
+ "until": -1
1871
+ };
1872
+ var outdentKeywords = [
1873
+ "else",
1874
+ "elseif",
1875
+ "end",
1876
+ "until"
1877
+ ];
1878
+
1879
+ function getNetIndentLevel(tokens) {
1880
+ var level = 0;
1881
+ for (var i in tokens){
1882
+ var token = tokens[i];
1883
+ if (token.type == "keyword") {
1884
+ if (token.value in indentKeywords) {
1885
+ level += indentKeywords[token.value];
1886
+ }
1887
+ } else if (token.type == "paren.lparen") {
1888
+ level ++;
1889
+ } else if (token.type == "paren.rparen") {
1890
+ level --;
1891
+ }
1892
+ }
1893
+ if (level < 0) {
1894
+ return -1;
1895
+ } else if (level > 0) {
1896
+ return 1;
1897
+ } else {
1898
+ return 0;
1899
+ }
1900
+ }
1901
+
1902
+ this.getNextLineIndent = function(state, line, tab) {
1903
+ var indent = this.$getIndent(line);
1904
+ var level = 0;
1905
+
1906
+ var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
1907
+ var tokens = tokenizedLine.tokens;
1908
+
1909
+ if (state == "start") {
1910
+ level = getNetIndentLevel(tokens);
1911
+ }
1912
+ if (level > 0) {
1913
+ return indent + tab;
1914
+ } else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {
1915
+ if (!this.checkOutdent(state, line, "\n")) {
1916
+ return indent.substr(0, indent.length - tab.length);
1917
+ }
1918
+ }
1919
+ return indent;
1920
+ };
1921
+
1922
+ this.checkOutdent = function(state, line, input) {
1923
+ if (input != "\n" && input != "\r" && input != "\r\n")
1924
+ return false;
1925
+
1926
+ if (line.match(/^\s*[\)\}\]]$/))
1927
+ return true;
1928
+
1929
+ var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
1930
+
1931
+ if (!tokens || !tokens.length)
1932
+ return false;
1933
+
1934
+ return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1);
1935
+ };
1936
+
1937
+ this.autoOutdent = function(state, session, row) {
1938
+ var prevLine = session.getLine(row - 1);
1939
+ var prevIndent = this.$getIndent(prevLine).length;
1940
+ var prevTokens = this.$tokenizer.getLineTokens(prevLine, "start").tokens;
1941
+ var tabLength = session.getTabString().length;
1942
+ var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
1943
+ var curIndent = this.$getIndent(session.getLine(row)).length;
1944
+ if (curIndent < expectedIndent) {
1945
+ return;
1946
+ }
1947
+ session.outdentRows(new Range(row, 0, row + 2, 0));
1948
+ };
1949
+
1950
+ }).call(Mode.prototype);
1951
+
1952
+ exports.Mode = Mode;
1953
+ });
1954
+
1955
+ define('ace/mode/lua_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
1956
+
1957
+
1958
+ var oop = require("../lib/oop");
1959
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
1960
+
1961
+ var LuaHighlightRules = function() {
1962
+
1963
+ var keywords = (
1964
+ "break|do|else|elseif|end|for|function|if|in|local|repeat|"+
1965
+ "return|then|until|while|or|and|not"
1966
+ );
1967
+
1968
+ var builtinConstants = ("true|false|nil|_G|_VERSION");
1969
+
1970
+ var functions = (
1971
+ "string|xpcall|package|tostring|print|os|unpack|require|"+
1972
+ "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+
1973
+ "collectgarbage|getmetatable|module|rawset|math|debug|"+
1974
+ "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+
1975
+ "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+
1976
+ "load|error|loadfile|"+
1977
+
1978
+ "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+
1979
+ "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+
1980
+ "loaders|cpath|config|path|seeall|exit|setlocale|date|"+
1981
+ "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+
1982
+ "lines|write|close|flush|open|output|type|read|stderr|"+
1983
+ "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+
1984
+ "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+
1985
+ "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+
1986
+ "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+
1987
+ "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+
1988
+ "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+
1989
+ "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+
1990
+ "status|wrap|create|running|"+
1991
+ "__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+
1992
+ "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber"
1993
+ );
1994
+
1995
+ var stdLibaries = ("string|package|os|io|math|debug|table|coroutine");
1996
+
1997
+ var futureReserved = "";
1998
+
1999
+ var deprecatedIn5152 = ("setn|foreach|foreachi|gcinfo|log10|maxn");
2000
+
2001
+ var keywordMapper = this.createKeywordMapper({
2002
+ "keyword": keywords,
2003
+ "support.function": functions,
2004
+ "invalid.deprecated": deprecatedIn5152,
2005
+ "constant.library": stdLibaries,
2006
+ "constant.language": builtinConstants,
2007
+ "invalid.illegal": futureReserved,
2008
+ "variable.language": "this"
2009
+ }, "identifier");
2010
+
2011
+ var strPre = "";
2012
+
2013
+ var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
2014
+ var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
2015
+ var integer = "(?:" + decimalInteger + "|" + hexInteger + ")";
2016
+
2017
+ var fraction = "(?:\\.\\d+)";
2018
+ var intPart = "(?:\\d+)";
2019
+ var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
2020
+ var floatNumber = "(?:" + pointFloat + ")";
2021
+
2022
+ var comment_stack = [];
2023
+
2024
+ this.$rules = {
2025
+ "start" :
2026
+ [{
2027
+ token : "comment", // --[[ comment
2028
+ regex : strPre + '\\-\\-\\[\\[.*\\]\\]'
2029
+ }, {
2030
+ token : "comment", // --[=[ comment
2031
+ regex : strPre + '\\-\\-\\[\\=\\[.*\\]\\=\\]'
2032
+ }, {
2033
+ token : "comment", // --[==[ comment
2034
+ regex : strPre + '\\-\\-\\[\\={2}\\[.*\\]\\={2}\\]'
2035
+ }, {
2036
+ token : "comment", // --[===[ comment
2037
+ regex : strPre + '\\-\\-\\[\\={3}\\[.*\\]\\={3}\\]'
2038
+ }, {
2039
+ token : "comment", // --[====[ comment
2040
+ regex : strPre + '\\-\\-\\[\\={4}\\[.*\\]\\={4}\\]'
2041
+ }, {
2042
+ token : "comment", // --[====+[ comment
2043
+ regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]'
2044
+ },
2045
+ {
2046
+ token : "comment", // --[[ comment
2047
+ regex : strPre + '\\-\\-\\[\\[.*$',
2048
+ next : "qcomment"
2049
+ }, {
2050
+ token : "comment", // --[=[ comment
2051
+ regex : strPre + '\\-\\-\\[\\=\\[.*$',
2052
+ next : "qcomment1"
2053
+ }, {
2054
+ token : "comment", // --[==[ comment
2055
+ regex : strPre + '\\-\\-\\[\\={2}\\[.*$',
2056
+ next : "qcomment2"
2057
+ }, {
2058
+ token : "comment", // --[===[ comment
2059
+ regex : strPre + '\\-\\-\\[\\={3}\\[.*$',
2060
+ next : "qcomment3"
2061
+ }, {
2062
+ token : "comment", // --[====[ comment
2063
+ regex : strPre + '\\-\\-\\[\\={4}\\[.*$',
2064
+ next : "qcomment4"
2065
+ }, {
2066
+ token : function(value){ // --[====+[ comment
2067
+ var pattern = /\-\-\[(\=+)\[/, match;
2068
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined)
2069
+ comment_stack.push(match.length);
2070
+
2071
+ return "comment";
2072
+ },
2073
+ regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*$',
2074
+ next : "qcomment5"
2075
+ },
2076
+ {
2077
+ token : "comment",
2078
+ regex : "\\-\\-.*$"
2079
+ },
2080
+ {
2081
+ token : "string", // [[ string
2082
+ regex : strPre + '\\[\\[.*\\]\\]'
2083
+ }, {
2084
+ token : "string", // [=[ string
2085
+ regex : strPre + '\\[\\=\\[.*\\]\\=\\]'
2086
+ }, {
2087
+ token : "string", // [==[ string
2088
+ regex : strPre + '\\[\\={2}\\[.*\\]\\={2}\\]'
2089
+ }, {
2090
+ token : "string", // [===[ string
2091
+ regex : strPre + '\\[\\={3}\\[.*\\]\\={3}\\]'
2092
+ }, {
2093
+ token : "string", // [====[ string
2094
+ regex : strPre + '\\[\\={4}\\[.*\\]\\={4}\\]'
2095
+ }, {
2096
+ token : "string", // [====+[ string
2097
+ regex : strPre + '\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]'
2098
+ },
2099
+ {
2100
+ token : "string", // [[ string
2101
+ regex : strPre + '\\[\\[.*$',
2102
+ next : "qstring"
2103
+ }, {
2104
+ token : "string", // [=[ string
2105
+ regex : strPre + '\\[\\=\\[.*$',
2106
+ next : "qstring1"
2107
+ }, {
2108
+ token : "string", // [==[ string
2109
+ regex : strPre + '\\[\\={2}\\[.*$',
2110
+ next : "qstring2"
2111
+ }, {
2112
+ token : "string", // [===[ string
2113
+ regex : strPre + '\\[\\={3}\\[.*$',
2114
+ next : "qstring3"
2115
+ }, {
2116
+ token : "string", // [====[ string
2117
+ regex : strPre + '\\[\\={4}\\[.*$',
2118
+ next : "qstring4"
2119
+ }, {
2120
+ token : function(value){ // --[====+[ string
2121
+ var pattern = /\[(\=+)\[/, match;
2122
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined)
2123
+ comment_stack.push(match.length);
2124
+
2125
+ return "string";
2126
+ },
2127
+ regex : strPre + '\\[\\={5}\\=*\\[.*$',
2128
+ next : "qstring5"
2129
+ },
2130
+
2131
+ {
2132
+ token : "string", // " string
2133
+ regex : strPre + '"(?:[^\\\\]|\\\\.)*?"'
2134
+ }, {
2135
+ token : "string", // ' string
2136
+ regex : strPre + "'(?:[^\\\\]|\\\\.)*?'"
2137
+ }, {
2138
+ token : "constant.numeric", // float
2139
+ regex : floatNumber
2140
+ }, {
2141
+ token : "constant.numeric", // integer
2142
+ regex : integer + "\\b"
2143
+ }, {
2144
+ token : keywordMapper,
2145
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
2146
+ }, {
2147
+ token : "keyword.operator",
2148
+ regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."
2149
+ }, {
2150
+ token : "paren.lparen",
2151
+ regex : "[\\[\\(\\{]"
2152
+ }, {
2153
+ token : "paren.rparen",
2154
+ regex : "[\\]\\)\\}]"
2155
+ }, {
2156
+ token : "text",
2157
+ regex : "\\s+"
2158
+ } ],
2159
+
2160
+ "qcomment": [ {
2161
+ token : "comment",
2162
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\]",
2163
+ next : "start"
2164
+ }, {
2165
+ token : "comment",
2166
+ regex : '.+'
2167
+ } ],
2168
+ "qcomment1": [ {
2169
+ token : "comment",
2170
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]",
2171
+ next : "start"
2172
+ }, {
2173
+ token : "comment",
2174
+ regex : '.+'
2175
+ } ],
2176
+ "qcomment2": [ {
2177
+ token : "comment",
2178
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",
2179
+ next : "start"
2180
+ }, {
2181
+ token : "comment",
2182
+ regex : '.+'
2183
+ } ],
2184
+ "qcomment3": [ {
2185
+ token : "comment",
2186
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",
2187
+ next : "start"
2188
+ }, {
2189
+ token : "comment",
2190
+ regex : '.+'
2191
+ } ],
2192
+ "qcomment4": [ {
2193
+ token : "comment",
2194
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",
2195
+ next : "start"
2196
+ }, {
2197
+ token : "comment",
2198
+ regex : '.+'
2199
+ } ],
2200
+ "qcomment5": [ {
2201
+ token : function(value){
2202
+ var pattern = /\](\=+)\]/, rule = this.rules.qcomment5[0], match;
2203
+ rule.next = "start";
2204
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){
2205
+ var found = match.length, expected;
2206
+ if ((expected = comment_stack.pop()) != found){
2207
+ comment_stack.push(expected);
2208
+ rule.next = "qcomment5";
2209
+ }
2210
+ }
2211
+
2212
+ return "comment";
2213
+ },
2214
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",
2215
+ next : "start"
2216
+ }, {
2217
+ token : "comment",
2218
+ regex : '.+'
2219
+ } ],
2220
+
2221
+ "qstring": [ {
2222
+ token : "string",
2223
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\]",
2224
+ next : "start"
2225
+ }, {
2226
+ token : "string",
2227
+ regex : '.+'
2228
+ } ],
2229
+ "qstring1": [ {
2230
+ token : "string",
2231
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]",
2232
+ next : "start"
2233
+ }, {
2234
+ token : "string",
2235
+ regex : '.+'
2236
+ } ],
2237
+ "qstring2": [ {
2238
+ token : "string",
2239
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",
2240
+ next : "start"
2241
+ }, {
2242
+ token : "string",
2243
+ regex : '.+'
2244
+ } ],
2245
+ "qstring3": [ {
2246
+ token : "string",
2247
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",
2248
+ next : "start"
2249
+ }, {
2250
+ token : "string",
2251
+ regex : '.+'
2252
+ } ],
2253
+ "qstring4": [ {
2254
+ token : "string",
2255
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",
2256
+ next : "start"
2257
+ }, {
2258
+ token : "string",
2259
+ regex : '.+'
2260
+ } ],
2261
+ "qstring5": [ {
2262
+ token : function(value){
2263
+ var pattern = /\](\=+)\]/, rule = this.rules.qstring5[0], match;
2264
+ rule.next = "start";
2265
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){
2266
+ var found = match.length, expected;
2267
+ if ((expected = comment_stack.pop()) != found){
2268
+ comment_stack.push(expected);
2269
+ rule.next = "qstring5";
2270
+ }
2271
+ }
2272
+
2273
+ return "string";
2274
+ },
2275
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",
2276
+ next : "start"
2277
+ }, {
2278
+ token : "string",
2279
+ regex : '.+'
2280
+ } ]
2281
+
2282
+ };
2283
+
2284
+ }
2285
+
2286
+ oop.inherits(LuaHighlightRules, TextHighlightRules);
2287
+
2288
+ exports.LuaHighlightRules = LuaHighlightRules;
2289
+ });
2290
+
2291
+ define('ace/mode/folding/lua', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode', 'ace/range', 'ace/token_iterator'], function(require, exports, module) {
2292
+
2293
+
2294
+ var oop = require("../../lib/oop");
2295
+ var BaseFoldMode = require("./fold_mode").FoldMode;
2296
+ var Range = require("../../range").Range;
2297
+ var TokenIterator = require("../../token_iterator").TokenIterator;
2298
+
2299
+
2300
+ var FoldMode = exports.FoldMode = function() {};
2301
+
2302
+ oop.inherits(FoldMode, BaseFoldMode);
2303
+
2304
+ (function() {
2305
+
2306
+ this.foldingStartMarker = /\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/;
2307
+ this.foldingStopMarker = /\bend\b|^\s*}|\]=*\]/;
2308
+
2309
+ this.getFoldWidget = function(session, foldStyle, row) {
2310
+ var line = session.getLine(row);
2311
+ var isStart = this.foldingStartMarker.test(line);
2312
+ var isEnd = this.foldingStopMarker.test(line);
2313
+
2314
+ if (isStart && !isEnd) {
2315
+ var match = line.match(this.foldingStartMarker);
2316
+ if (match[1] == "then" && /\belseif\b/.test(line))
2317
+ return;
2318
+ if (match[1]) {
2319
+ if (session.getTokenAt(row, match.index + 1).type === "keyword")
2320
+ return "start";
2321
+ } else if (match[2]) {
2322
+ var type = session.bgTokenizer.getState(row) || "";
2323
+ if (type.indexOf("comment") != -1 || type.indexOf("string") != -1)
2324
+ return "start";
2325
+ } else {
2326
+ return "start";
2327
+ }
2328
+ }
2329
+ if (foldStyle != "markbeginend" || !isEnd || isStart && isEnd)
2330
+ return "";
2331
+
2332
+ var match = line.match(this.foldingStopMarker);
2333
+ if (match[0] === "end") {
2334
+ if (session.getTokenAt(row, match.index + 1).type === "keyword")
2335
+ return "end";
2336
+ } else if (match[0][0] === "]") {
2337
+ var type = session.bgTokenizer.getState(row - 1) || "";
2338
+ if (type.indexOf("comment") != -1 || type.indexOf("string") != -1)
2339
+ return "end";
2340
+ } else
2341
+ return "end";
2342
+ };
2343
+
2344
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
2345
+ var line = session.doc.getLine(row);
2346
+ var match = this.foldingStartMarker.exec(line);
2347
+ if (match) {
2348
+ if (match[1])
2349
+ return this.luaBlock(session, row, match.index + 1);
2350
+
2351
+ if (match[2])
2352
+ return session.getCommentFoldRange(row, match.index + 1);
2353
+
2354
+ return this.openingBracketBlock(session, "{", row, match.index);
2355
+ }
2356
+
2357
+ var match = this.foldingStopMarker.exec(line);
2358
+ if (match) {
2359
+ if (match[0] === "end") {
2360
+ if (session.getTokenAt(row, match.index + 1).type === "keyword")
2361
+ return this.luaBlock(session, row, match.index + 1);
2362
+ }
2363
+
2364
+ if (match[0][0] === "]")
2365
+ return session.getCommentFoldRange(row, match.index + 1);
2366
+
2367
+ return this.closingBracketBlock(session, "}", row, match.index + match[0].length);
2368
+ }
2369
+ };
2370
+
2371
+ this.luaBlock = function(session, row, column) {
2372
+ var stream = new TokenIterator(session, row, column);
2373
+ var indentKeywords = {
2374
+ "function": 1,
2375
+ "do": 1,
2376
+ "then": 1,
2377
+ "elseif": -1,
2378
+ "end": -1,
2379
+ "repeat": 1,
2380
+ "until": -1,
2381
+ };
2382
+
2383
+ var token = stream.getCurrentToken();
2384
+ if (!token || token.type != "keyword")
2385
+ return;
2386
+
2387
+ var val = token.value;
2388
+ var stack = [val];
2389
+ var dir = indentKeywords[val];
2390
+
2391
+ if (!dir)
2392
+ return;
2393
+
2394
+ var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length;
2395
+ var startRow = row;
2396
+
2397
+ stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;
2398
+ while(token = stream.step()) {
2399
+ if (token.type !== "keyword")
2400
+ continue;
2401
+ var level = dir * indentKeywords[token.value];
2402
+
2403
+ if (level > 0) {
2404
+ stack.unshift(token.value);
2405
+ } else if (level <= 0) {
2406
+ stack.shift();
2407
+ if (!stack.length && token.value != "elseif")
2408
+ break;
2409
+ if (level === 0)
2410
+ stack.unshift(token.value);
2411
+ }
2412
+ }
2413
+
2414
+ var row = stream.getCurrentTokenRow();
2415
+ if (dir === -1)
2416
+ return new Range(row, session.getLine(row).length, startRow, startColumn);
2417
+ else
2418
+ return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn());
2419
+ };
2420
+
2421
+ }).call(FoldMode.prototype);
2422
+
2423
+ });
2424
+ define('ace/mode/luapage_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/html_highlight_rules', 'ace/mode/lua_highlight_rules'], function(require, exports, module) {
2425
+
2426
+
2427
+ var oop = require("../lib/oop");
2428
+ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
2429
+ var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
2430
+
2431
+ var LuaPageHighlightRules = function() {
2432
+ this.$rules = new HtmlHighlightRules().getRules();
2433
+
2434
+ for (var i in this.$rules) {
2435
+ this.$rules[i].unshift({
2436
+ token: "keyword",
2437
+ regex: "<\\%\\=?",
2438
+ next: "lua-start"
2439
+ }, {
2440
+ token: "keyword",
2441
+ regex: "<\\?lua\\=?",
2442
+ next: "lua-start"
2443
+ });
2444
+ }
2445
+ this.embedRules(LuaHighlightRules, "lua-", [
2446
+ {
2447
+ token: "keyword",
2448
+ regex: "\\%>",
2449
+ next: "start"
2450
+ },
2451
+ {
2452
+ token: "keyword",
2453
+ regex: "\\?>",
2454
+ next: "start"
2455
+ }
2456
+ ]);
2457
+ };
2458
+
2459
+ oop.inherits(LuaPageHighlightRules, HtmlHighlightRules);
2460
+
2461
+ exports.LuaPageHighlightRules = LuaPageHighlightRules;
2462
+
2463
+ });