ace-rails-ap 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (267) hide show
  1. data/lib/ace/rails/version.rb +1 -1
  2. data/vendor/assets/javascripts/ace.js +15680 -1
  3. data/vendor/assets/javascripts/keybinding-emacs.js +367 -1
  4. data/vendor/assets/javascripts/keybinding-vim.js +1635 -1
  5. data/vendor/assets/javascripts/mode-c9search.js +275 -0
  6. data/vendor/assets/javascripts/mode-c_cpp.js +744 -1
  7. data/vendor/assets/javascripts/mode-clojure.js +364 -1
  8. data/vendor/assets/javascripts/mode-coffee.js +527 -1
  9. data/vendor/assets/javascripts/mode-coldfusion.js +1966 -1
  10. data/vendor/assets/javascripts/mode-csharp.js +633 -1
  11. data/vendor/assets/javascripts/mode-css.js +499 -1
  12. data/vendor/assets/javascripts/mode-diff.js +250 -0
  13. data/vendor/assets/javascripts/{mode-c_cpp-uncompressed.js → mode-glsl.js} +147 -244
  14. data/vendor/assets/javascripts/mode-golang.js +681 -1
  15. data/vendor/assets/javascripts/mode-groovy.js +1240 -1
  16. data/vendor/assets/javascripts/mode-haxe.js +633 -1
  17. data/vendor/assets/javascripts/mode-html.js +2064 -1
  18. data/vendor/assets/javascripts/mode-java.js +1202 -1
  19. data/vendor/assets/javascripts/mode-javascript.js +1069 -1
  20. data/vendor/assets/javascripts/mode-json.js +588 -1
  21. data/vendor/assets/javascripts/{mode-haxe-uncompressed.js → mode-jsx.js} +189 -312
  22. data/vendor/assets/javascripts/mode-latex.js +95 -1
  23. data/vendor/assets/javascripts/mode-less.js +512 -1
  24. data/vendor/assets/javascripts/mode-liquid.js +1125 -1
  25. data/vendor/assets/javascripts/mode-lua.js +551 -1
  26. data/vendor/assets/javascripts/{mode-html-uncompressed.js → mode-luahtml.js} +544 -604
  27. data/vendor/assets/javascripts/{mode-coldfusion-uncompressed.js → mode-luapage.js} +2326 -2180
  28. data/vendor/assets/javascripts/mode-markdown.js +2369 -1
  29. data/vendor/assets/javascripts/mode-ocaml.js +464 -1
  30. data/vendor/assets/javascripts/mode-perl.js +432 -1
  31. data/vendor/assets/javascripts/mode-pgsql.js +970 -1
  32. data/vendor/assets/javascripts/mode-php.js +1718 -1
  33. data/vendor/assets/javascripts/mode-powershell.js +610 -1
  34. data/vendor/assets/javascripts/mode-python.js +397 -1
  35. data/vendor/assets/javascripts/mode-ruby.js +318 -1
  36. data/vendor/assets/javascripts/mode-scad.js +732 -1
  37. data/vendor/assets/javascripts/mode-scala.js +1237 -1
  38. data/vendor/assets/javascripts/mode-scss.js +537 -1
  39. data/vendor/assets/javascripts/mode-sh.js +250 -1
  40. data/vendor/assets/javascripts/mode-sql.js +140 -1
  41. data/vendor/assets/javascripts/mode-svg.js +1681 -1
  42. data/vendor/assets/javascripts/mode-tcl.js +320 -0
  43. data/vendor/assets/javascripts/mode-textile.js +182 -1
  44. data/vendor/assets/javascripts/mode-xml.js +829 -1
  45. data/vendor/assets/javascripts/mode-xquery.js +605 -1
  46. data/vendor/assets/javascripts/mode-yaml.js +189 -0
  47. data/vendor/assets/javascripts/theme-chrome.js +213 -1
  48. data/vendor/assets/javascripts/theme-clouds.js +167 -1
  49. data/vendor/assets/javascripts/theme-clouds_midnight.js +168 -1
  50. data/vendor/assets/javascripts/theme-cobalt.js +194 -1
  51. data/vendor/assets/javascripts/theme-crimson_editor.js +200 -1
  52. data/vendor/assets/javascripts/theme-dawn.js +198 -1
  53. data/vendor/assets/javascripts/theme-dreamweaver.js +230 -1
  54. data/vendor/assets/javascripts/theme-eclipse.js +157 -1
  55. data/vendor/assets/javascripts/theme-github.js +182 -0
  56. data/vendor/assets/javascripts/theme-idle_fingers.js +186 -1
  57. data/vendor/assets/javascripts/theme-kr_theme.js +189 -1
  58. data/vendor/assets/javascripts/theme-merbivore.js +189 -1
  59. data/vendor/assets/javascripts/theme-merbivore_soft.js +195 -1
  60. data/vendor/assets/javascripts/theme-mono_industrial.js +197 -1
  61. data/vendor/assets/javascripts/theme-monokai.js +194 -1
  62. data/vendor/assets/javascripts/theme-pastel_on_dark.js +199 -1
  63. data/vendor/assets/javascripts/theme-solarized_dark.js +180 -1
  64. data/vendor/assets/javascripts/theme-solarized_light.js +179 -1
  65. data/vendor/assets/javascripts/theme-textmate.js +216 -0
  66. data/vendor/assets/javascripts/theme-tomorrow.js +213 -1
  67. data/vendor/assets/javascripts/theme-tomorrow_night.js +213 -1
  68. data/vendor/assets/javascripts/theme-tomorrow_night_blue.js +213 -1
  69. data/vendor/assets/javascripts/theme-tomorrow_night_bright.js +213 -1
  70. data/vendor/assets/javascripts/theme-tomorrow_night_eighties.js +209 -1
  71. data/vendor/assets/javascripts/theme-twilight.js +211 -1
  72. data/vendor/assets/javascripts/theme-vibrant_ink.js +190 -1
  73. data/vendor/assets/javascripts/worker-coffee.js +83 -893
  74. data/vendor/assets/javascripts/worker-css.js +88 -1402
  75. data/vendor/assets/javascripts/worker-javascript.js +97 -812
  76. data/vendor/assets/javascripts/worker-json.js +84 -761
  77. data/vendor/assets/javascripts/worker-xquery.js +66464 -0
  78. metadata +12 -195
  79. data/vendor/assets/javascripts/ace-compat-noconflict.js +0 -1
  80. data/vendor/assets/javascripts/ace-compat-uncompressed-noconflict.js +0 -480
  81. data/vendor/assets/javascripts/ace-compat-uncompressed.js +0 -480
  82. data/vendor/assets/javascripts/ace-compat.js +0 -1
  83. data/vendor/assets/javascripts/ace-noconflict.js +0 -10
  84. data/vendor/assets/javascripts/ace-uncompressed-noconflict.js +0 -19976
  85. data/vendor/assets/javascripts/ace-uncompressed.js +0 -19976
  86. data/vendor/assets/javascripts/keybinding-emacs-noconflict.js +0 -1
  87. data/vendor/assets/javascripts/keybinding-emacs-uncompressed-noconflict.js +0 -150
  88. data/vendor/assets/javascripts/keybinding-emacs-uncompressed.js +0 -150
  89. data/vendor/assets/javascripts/keybinding-vim-noconflict.js +0 -1
  90. data/vendor/assets/javascripts/keybinding-vim-uncompressed-noconflict.js +0 -138
  91. data/vendor/assets/javascripts/keybinding-vim-uncompressed.js +0 -138
  92. data/vendor/assets/javascripts/mode-c_cpp-noconflict.js +0 -1
  93. data/vendor/assets/javascripts/mode-c_cpp-uncompressed-noconflict.js +0 -919
  94. data/vendor/assets/javascripts/mode-clojure-noconflict.js +0 -1
  95. data/vendor/assets/javascripts/mode-clojure-uncompressed-noconflict.js +0 -422
  96. data/vendor/assets/javascripts/mode-clojure-uncompressed.js +0 -422
  97. data/vendor/assets/javascripts/mode-coffee-noconflict.js +0 -1
  98. data/vendor/assets/javascripts/mode-coffee-uncompressed-noconflict.js +0 -607
  99. data/vendor/assets/javascripts/mode-coffee-uncompressed.js +0 -607
  100. data/vendor/assets/javascripts/mode-coldfusion-noconflict.js +0 -1
  101. data/vendor/assets/javascripts/mode-coldfusion-uncompressed-noconflict.js +0 -2458
  102. data/vendor/assets/javascripts/mode-csharp-noconflict.js +0 -1
  103. data/vendor/assets/javascripts/mode-csharp-uncompressed-noconflict.js +0 -769
  104. data/vendor/assets/javascripts/mode-csharp-uncompressed.js +0 -769
  105. data/vendor/assets/javascripts/mode-css-noconflict.js +0 -1
  106. data/vendor/assets/javascripts/mode-css-uncompressed-noconflict.js +0 -641
  107. data/vendor/assets/javascripts/mode-css-uncompressed.js +0 -641
  108. data/vendor/assets/javascripts/mode-golang-noconflict.js +0 -1
  109. data/vendor/assets/javascripts/mode-golang-uncompressed-noconflict.js +0 -378
  110. data/vendor/assets/javascripts/mode-golang-uncompressed.js +0 -378
  111. data/vendor/assets/javascripts/mode-groovy-noconflict.js +0 -1
  112. data/vendor/assets/javascripts/mode-groovy-uncompressed-noconflict.js +0 -1393
  113. data/vendor/assets/javascripts/mode-groovy-uncompressed.js +0 -1393
  114. data/vendor/assets/javascripts/mode-haxe-noconflict.js +0 -1
  115. data/vendor/assets/javascripts/mode-haxe-uncompressed-noconflict.js +0 -769
  116. data/vendor/assets/javascripts/mode-html-noconflict.js +0 -1
  117. data/vendor/assets/javascripts/mode-html-uncompressed-noconflict.js +0 -2475
  118. data/vendor/assets/javascripts/mode-java-noconflict.js +0 -1
  119. data/vendor/assets/javascripts/mode-java-uncompressed-noconflict.js +0 -1395
  120. data/vendor/assets/javascripts/mode-java-uncompressed.js +0 -1395
  121. data/vendor/assets/javascripts/mode-javascript-noconflict.js +0 -1
  122. data/vendor/assets/javascripts/mode-javascript-uncompressed-noconflict.js +0 -1226
  123. data/vendor/assets/javascripts/mode-javascript-uncompressed.js +0 -1226
  124. data/vendor/assets/javascripts/mode-json-noconflict.js +0 -1
  125. data/vendor/assets/javascripts/mode-json-uncompressed-noconflict.js +0 -701
  126. data/vendor/assets/javascripts/mode-json-uncompressed.js +0 -701
  127. data/vendor/assets/javascripts/mode-latex-noconflict.js +0 -1
  128. data/vendor/assets/javascripts/mode-latex-uncompressed-noconflict.js +0 -95
  129. data/vendor/assets/javascripts/mode-latex-uncompressed.js +0 -95
  130. data/vendor/assets/javascripts/mode-less-noconflict.js +0 -1
  131. data/vendor/assets/javascripts/mode-less-uncompressed-noconflict.js +0 -655
  132. data/vendor/assets/javascripts/mode-less-uncompressed.js +0 -655
  133. data/vendor/assets/javascripts/mode-liquid-noconflict.js +0 -1
  134. data/vendor/assets/javascripts/mode-liquid-uncompressed-noconflict.js +0 -1353
  135. data/vendor/assets/javascripts/mode-liquid-uncompressed.js +0 -1353
  136. data/vendor/assets/javascripts/mode-lua-noconflict.js +0 -1
  137. data/vendor/assets/javascripts/mode-lua-uncompressed-noconflict.js +0 -523
  138. data/vendor/assets/javascripts/mode-lua-uncompressed.js +0 -523
  139. data/vendor/assets/javascripts/mode-markdown-noconflict.js +0 -1
  140. data/vendor/assets/javascripts/mode-markdown-uncompressed-noconflict.js +0 -2925
  141. data/vendor/assets/javascripts/mode-markdown-uncompressed.js +0 -2925
  142. data/vendor/assets/javascripts/mode-ocaml-noconflict.js +0 -1
  143. data/vendor/assets/javascripts/mode-ocaml-uncompressed-noconflict.js +0 -539
  144. data/vendor/assets/javascripts/mode-ocaml-uncompressed.js +0 -539
  145. data/vendor/assets/javascripts/mode-perl-noconflict.js +0 -1
  146. data/vendor/assets/javascripts/mode-perl-uncompressed-noconflict.js +0 -574
  147. data/vendor/assets/javascripts/mode-perl-uncompressed.js +0 -574
  148. data/vendor/assets/javascripts/mode-pgsql-noconflict.js +0 -1
  149. data/vendor/assets/javascripts/mode-pgsql-uncompressed-noconflict.js +0 -1104
  150. data/vendor/assets/javascripts/mode-pgsql-uncompressed.js +0 -1104
  151. data/vendor/assets/javascripts/mode-php-noconflict.js +0 -1
  152. data/vendor/assets/javascripts/mode-php-uncompressed-noconflict.js +0 -1885
  153. data/vendor/assets/javascripts/mode-php-uncompressed.js +0 -1885
  154. data/vendor/assets/javascripts/mode-powershell-noconflict.js +0 -1
  155. data/vendor/assets/javascripts/mode-powershell-uncompressed-noconflict.js +0 -710
  156. data/vendor/assets/javascripts/mode-powershell-uncompressed.js +0 -710
  157. data/vendor/assets/javascripts/mode-python-noconflict.js +0 -1
  158. data/vendor/assets/javascripts/mode-python-uncompressed-noconflict.js +0 -507
  159. data/vendor/assets/javascripts/mode-python-uncompressed.js +0 -507
  160. data/vendor/assets/javascripts/mode-ruby-noconflict.js +0 -1
  161. data/vendor/assets/javascripts/mode-ruby-uncompressed-noconflict.js +0 -391
  162. data/vendor/assets/javascripts/mode-ruby-uncompressed.js +0 -391
  163. data/vendor/assets/javascripts/mode-scad-noconflict.js +0 -1
  164. data/vendor/assets/javascripts/mode-scad-uncompressed-noconflict.js +0 -907
  165. data/vendor/assets/javascripts/mode-scad-uncompressed.js +0 -907
  166. data/vendor/assets/javascripts/mode-scala-noconflict.js +0 -1
  167. data/vendor/assets/javascripts/mode-scala-uncompressed-noconflict.js +0 -1395
  168. data/vendor/assets/javascripts/mode-scala-uncompressed.js +0 -1395
  169. data/vendor/assets/javascripts/mode-scss-noconflict.js +0 -1
  170. data/vendor/assets/javascripts/mode-scss-uncompressed-noconflict.js +0 -679
  171. data/vendor/assets/javascripts/mode-scss-uncompressed.js +0 -679
  172. data/vendor/assets/javascripts/mode-sh-noconflict.js +0 -1
  173. data/vendor/assets/javascripts/mode-sh-uncompressed-noconflict.js +0 -289
  174. data/vendor/assets/javascripts/mode-sh-uncompressed.js +0 -289
  175. data/vendor/assets/javascripts/mode-sql-noconflict.js +0 -1
  176. data/vendor/assets/javascripts/mode-sql-uncompressed-noconflict.js +0 -159
  177. data/vendor/assets/javascripts/mode-sql-uncompressed.js +0 -159
  178. data/vendor/assets/javascripts/mode-svg-noconflict.js +0 -1
  179. data/vendor/assets/javascripts/mode-svg-uncompressed-noconflict.js +0 -2137
  180. data/vendor/assets/javascripts/mode-svg-uncompressed.js +0 -2137
  181. data/vendor/assets/javascripts/mode-text-noconflict.js +0 -0
  182. data/vendor/assets/javascripts/mode-text-uncompressed-noconflict.js +0 -0
  183. data/vendor/assets/javascripts/mode-text-uncompressed.js +0 -0
  184. data/vendor/assets/javascripts/mode-textile-noconflict.js +0 -1
  185. data/vendor/assets/javascripts/mode-textile-uncompressed-noconflict.js +0 -254
  186. data/vendor/assets/javascripts/mode-textile-uncompressed.js +0 -254
  187. data/vendor/assets/javascripts/mode-xml-noconflict.js +0 -1
  188. data/vendor/assets/javascripts/mode-xml-uncompressed-noconflict.js +0 -1012
  189. data/vendor/assets/javascripts/mode-xml-uncompressed.js +0 -1012
  190. data/vendor/assets/javascripts/mode-xquery-noconflict.js +0 -1
  191. data/vendor/assets/javascripts/mode-xquery-uncompressed-noconflict.js +0 -540
  192. data/vendor/assets/javascripts/mode-xquery-uncompressed.js +0 -540
  193. data/vendor/assets/javascripts/theme-chrome-noconflict.js +0 -1
  194. data/vendor/assets/javascripts/theme-chrome-uncompressed-noconflict.js +0 -207
  195. data/vendor/assets/javascripts/theme-chrome-uncompressed.js +0 -207
  196. data/vendor/assets/javascripts/theme-clouds-noconflict.js +0 -1
  197. data/vendor/assets/javascripts/theme-clouds-uncompressed-noconflict.js +0 -160
  198. data/vendor/assets/javascripts/theme-clouds-uncompressed.js +0 -160
  199. data/vendor/assets/javascripts/theme-clouds_midnight-noconflict.js +0 -1
  200. data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed-noconflict.js +0 -161
  201. data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed.js +0 -161
  202. data/vendor/assets/javascripts/theme-cobalt-noconflict.js +0 -1
  203. data/vendor/assets/javascripts/theme-cobalt-uncompressed-noconflict.js +0 -187
  204. data/vendor/assets/javascripts/theme-cobalt-uncompressed.js +0 -187
  205. data/vendor/assets/javascripts/theme-crimson_editor-noconflict.js +0 -1
  206. data/vendor/assets/javascripts/theme-crimson_editor-uncompressed-noconflict.js +0 -198
  207. data/vendor/assets/javascripts/theme-crimson_editor-uncompressed.js +0 -198
  208. data/vendor/assets/javascripts/theme-dawn-noconflict.js +0 -1
  209. data/vendor/assets/javascripts/theme-dawn-uncompressed-noconflict.js +0 -191
  210. data/vendor/assets/javascripts/theme-dawn-uncompressed.js +0 -191
  211. data/vendor/assets/javascripts/theme-dreamweaver-noconflict.js +0 -1
  212. data/vendor/assets/javascripts/theme-dreamweaver-uncompressed-noconflict.js +0 -227
  213. data/vendor/assets/javascripts/theme-dreamweaver-uncompressed.js +0 -227
  214. data/vendor/assets/javascripts/theme-eclipse-noconflict.js +0 -1
  215. data/vendor/assets/javascripts/theme-eclipse-uncompressed-noconflict.js +0 -147
  216. data/vendor/assets/javascripts/theme-eclipse-uncompressed.js +0 -147
  217. data/vendor/assets/javascripts/theme-idle_fingers-noconflict.js +0 -1
  218. data/vendor/assets/javascripts/theme-idle_fingers-uncompressed-noconflict.js +0 -179
  219. data/vendor/assets/javascripts/theme-idle_fingers-uncompressed.js +0 -179
  220. data/vendor/assets/javascripts/theme-kr_theme-noconflict.js +0 -1
  221. data/vendor/assets/javascripts/theme-kr_theme-uncompressed-noconflict.js +0 -182
  222. data/vendor/assets/javascripts/theme-kr_theme-uncompressed.js +0 -182
  223. data/vendor/assets/javascripts/theme-merbivore-noconflict.js +0 -1
  224. data/vendor/assets/javascripts/theme-merbivore-uncompressed-noconflict.js +0 -182
  225. data/vendor/assets/javascripts/theme-merbivore-uncompressed.js +0 -182
  226. data/vendor/assets/javascripts/theme-merbivore_soft-noconflict.js +0 -1
  227. data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed-noconflict.js +0 -188
  228. data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed.js +0 -188
  229. data/vendor/assets/javascripts/theme-mono_industrial-noconflict.js +0 -1
  230. data/vendor/assets/javascripts/theme-mono_industrial-uncompressed-noconflict.js +0 -190
  231. data/vendor/assets/javascripts/theme-mono_industrial-uncompressed.js +0 -190
  232. data/vendor/assets/javascripts/theme-monokai-noconflict.js +0 -1
  233. data/vendor/assets/javascripts/theme-monokai-uncompressed-noconflict.js +0 -191
  234. data/vendor/assets/javascripts/theme-monokai-uncompressed.js +0 -191
  235. data/vendor/assets/javascripts/theme-pastel_on_dark-noconflict.js +0 -1
  236. data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed-noconflict.js +0 -192
  237. data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed.js +0 -192
  238. data/vendor/assets/javascripts/theme-solarized_dark-noconflict.js +0 -1
  239. data/vendor/assets/javascripts/theme-solarized_dark-uncompressed-noconflict.js +0 -176
  240. data/vendor/assets/javascripts/theme-solarized_dark-uncompressed.js +0 -176
  241. data/vendor/assets/javascripts/theme-solarized_light-noconflict.js +0 -1
  242. data/vendor/assets/javascripts/theme-solarized_light-uncompressed-noconflict.js +0 -172
  243. data/vendor/assets/javascripts/theme-solarized_light-uncompressed.js +0 -172
  244. data/vendor/assets/javascripts/theme-textmate-noconflict.js +0 -0
  245. data/vendor/assets/javascripts/theme-textmate-uncompressed-noconflict.js +0 -0
  246. data/vendor/assets/javascripts/theme-textmate-uncompressed.js +0 -0
  247. data/vendor/assets/javascripts/theme-tomorrow-noconflict.js +0 -1
  248. data/vendor/assets/javascripts/theme-tomorrow-uncompressed-noconflict.js +0 -206
  249. data/vendor/assets/javascripts/theme-tomorrow-uncompressed.js +0 -206
  250. data/vendor/assets/javascripts/theme-tomorrow_night-noconflict.js +0 -1
  251. data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed-noconflict.js +0 -206
  252. data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed.js +0 -206
  253. data/vendor/assets/javascripts/theme-tomorrow_night_blue-noconflict.js +0 -1
  254. data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed-noconflict.js +0 -209
  255. data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed.js +0 -209
  256. data/vendor/assets/javascripts/theme-tomorrow_night_bright-noconflict.js +0 -1
  257. data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed-noconflict.js +0 -206
  258. data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed.js +0 -206
  259. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-noconflict.js +0 -1
  260. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed-noconflict.js +0 -202
  261. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed.js +0 -202
  262. data/vendor/assets/javascripts/theme-twilight-noconflict.js +0 -1
  263. data/vendor/assets/javascripts/theme-twilight-uncompressed-noconflict.js +0 -204
  264. data/vendor/assets/javascripts/theme-twilight-uncompressed.js +0 -204
  265. data/vendor/assets/javascripts/theme-vibrant_ink-noconflict.js +0 -1
  266. data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed-noconflict.js +0 -183
  267. data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed.js +0 -183
@@ -1 +1,1125 @@
1
- define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./liquid_highlight_rules").LiquidHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/liquid_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/lib/lang","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./css_highlight_rules").CssHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("../lib/lang"),h=a("./xml_util"),i=a("./text_highlight_rules").TextHighlightRules,j=function(){var a=g.arrayToMap("date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split".split("|")),b=g.arrayToMap("capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow".split("|")),c=g.arrayToMap(["forloop"]),d=g.arrayToMap("assign".split("|"));this.$rules={start:[{token:"variable",regex:"{%",next:"liquid_start"},{token:"variable",regex:"{{",next:"liquid_start"},{token:"meta.tag",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"meta.tag",regex:"<(?=\\s*script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=\\s*style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}],liquid_start:[{token:"variable",regex:"}}",next:"start"},{token:"variable",regex:"%}",next:"start"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return a.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"variable.language":d.hasOwnProperty(e)?"keyword.definition":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"/|\\*|\\-|\\+|=|!=|\\?\\:"},{token:"paren.lparen",regex:/[\[\({]/},{token:"paren.rparen",regex:/[\])}]/},{token:"text",regex:"\\s+"}]},h.tag(this.$rules,"tag","start"),h.tag(this.$rules,"style","css-start"),h.tag(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(j,i),b.LiquidHighlightRules=j}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("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".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("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|font-size|font|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|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f=e.arrayToMap("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace".split("|")),g="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",i="(:)\\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",j=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+g+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:["constant.numeric"],regex:"([0-9]+)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:i},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":f.hasOwnProperty(e.toLowerCase())?"support.constant.fonts":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],k=e.copyArray(j);k.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var l=e.copyArray(j);l.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var m=[{token:"comment",merge:!0,regex:".+"}],n=e.copyArray(m);n.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var o=e.copyArray(m);o.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var p=e.copyArray(m);p.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:n,ruleset:k,ruleset_comment:p,media_ruleset:l,media_comment:o}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/unicode","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("../unicode"),g=a("./doc_comment_highlight_rules").DocCommentHighlightRules,h=a("./text_highlight_rules").TextHighlightRules,i=function(){var a=e.arrayToMap("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document".split("|")),b=e.arrayToMap("break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|const|yield|import|get|set".split("|")),c="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield",d=e.arrayToMap("__parent__|__count__|escape|unescape|with|__proto__".split("|")),h=e.arrayToMap("const|let|var|function".split("|")),i=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),j=e.arrayToMap("class|enum|extends|super|export|implements|private|public|interface|package|protected|static".split("|")),k="["+f.packages.L+"\\$_]["+f.packages.L+f.packages.Mn+f.packages.Mc+f.packages.Nd+f.packages.Pc+"\\$_]*\\b",l="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\.)(prototype)(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator","text"],regex:"("+k+")(\\.)(prototype)(\\.)("+k+")(\\s*)(=)(\\s*)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+k+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+c+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],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(?=\()/},{token:["punctuation.operator","support.function.dom"],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(?=\()/},{token:["punctuation.operator","support.constant"],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/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:function(c){return a.hasOwnProperty(c)?"variable.language":d.hasOwnProperty(c)?"invalid.deprecated":h.hasOwnProperty(c)?"storage.type":b.hasOwnProperty(c)?"keyword":i.hasOwnProperty(c)?"constant.language":j.hasOwnProperty(c)?"invalid.illegal":c=="debugger"?"invalid.deprecated":"identifier"},regex:k},{token:"keyword.operator",regex:/!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e})
1
+ /* ***** BEGIN LICENSE BLOCK *****
2
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3
+ *
4
+ * The contents of this file are subject to the Mozilla Public License Version
5
+ * 1.1 (the "License"); you may not use this file except in compliance with
6
+ * the License. You may obtain a copy of the License at
7
+ * http://www.mozilla.org/MPL/
8
+ *
9
+ * Software distributed under the License is distributed on an "AS IS" basis,
10
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
+ * for the specific language governing rights and limitations under the
12
+ * License.
13
+ *
14
+ * The Original Code is Ajax.org Code Editor (ACE).
15
+ *
16
+ * The Initial Developer of the Original Code is
17
+ * Ajax.org B.V.
18
+ * Portions created by the Initial Developer are Copyright (C) 2010
19
+ * the Initial Developer. All Rights Reserved.
20
+ *
21
+ * Contributor(s):
22
+ * Fabian Jakobs <fabian AT ajax DOT org>
23
+ *
24
+ * Alternatively, the contents of this file may be used under the terms of
25
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
26
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
+ * in which case the provisions of the GPL or the LGPL are applicable instead
28
+ * of those above. If you wish to allow use of your version of this file only
29
+ * under the terms of either the GPL or the LGPL, and not to allow others to
30
+ * use your version of this file under the terms of the MPL, indicate your
31
+ * decision by deleting the provisions above and replace them with the notice
32
+ * and other provisions required by the GPL or the LGPL. If you do not delete
33
+ * the provisions above, a recipient may use your version of this file under
34
+ * the terms of any one of the MPL, the GPL or the LGPL.
35
+ *
36
+ * ***** END LICENSE BLOCK ***** */
37
+
38
+ define('ace/mode/liquid', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/liquid_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range'], function(require, exports, module) {
39
+
40
+ var oop = require("../lib/oop");
41
+ var TextMode = require("./text").Mode;
42
+ var Tokenizer = require("../tokenizer").Tokenizer;
43
+ var LiquidHighlightRules = require("./liquid_highlight_rules").LiquidHighlightRules;
44
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
45
+ var Range = require("../range").Range;
46
+
47
+ var Mode = function() {
48
+ this.$tokenizer = new Tokenizer(new LiquidHighlightRules().getRules());
49
+ this.$outdent = new MatchingBraceOutdent();
50
+ };
51
+ oop.inherits(Mode, TextMode);
52
+
53
+ (function() {
54
+
55
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
56
+ var outdent = true;
57
+ var outentedRows = [];
58
+ var re = /^(\s*)#/;
59
+
60
+ for (var i=startRow; i<= endRow; i++) {
61
+ if (!re.test(doc.getLine(i))) {
62
+ outdent = false;
63
+ break;
64
+ }
65
+ }
66
+
67
+ if (outdent) {
68
+ var deleteRange = new Range(0, 0, 0, 0);
69
+ for (var i=startRow; i<= endRow; i++)
70
+ {
71
+ var line = doc.getLine(i);
72
+ var m = line.match(re);
73
+ deleteRange.start.row = i;
74
+ deleteRange.end.row = i;
75
+ deleteRange.end.column = m[0].length;
76
+ doc.replace(deleteRange, m[1]);
77
+ }
78
+ }
79
+ else {
80
+ doc.indentRows(startRow, endRow, "#");
81
+ }
82
+ };
83
+
84
+ this.getNextLineIndent = function(state, line, tab) {
85
+ var indent = this.$getIndent(line);
86
+
87
+ var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
88
+ var tokens = tokenizedLine.tokens;
89
+ var endState = tokenizedLine.state;
90
+
91
+ if (tokens.length && tokens[tokens.length-1].type == "comment") {
92
+ return indent;
93
+ }
94
+
95
+ if (state == "start") {
96
+ var match = line.match(/^.*[\{\(\[]\s*$/);
97
+ if (match) {
98
+ indent += tab;
99
+ }
100
+ }
101
+
102
+ return indent;
103
+ };
104
+
105
+ this.checkOutdent = function(state, line, input) {
106
+ return this.$outdent.checkOutdent(line, input);
107
+ };
108
+
109
+ this.autoOutdent = function(state, doc, row) {
110
+ this.$outdent.autoOutdent(doc, row);
111
+ };
112
+
113
+ }).call(Mode.prototype);
114
+
115
+ exports.Mode = Mode;
116
+ });
117
+
118
+ define('ace/mode/liquid_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/css_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/lib/lang', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
119
+
120
+
121
+ var oop = require("../lib/oop");
122
+ var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
123
+ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
124
+ var lang = require("../lib/lang");
125
+ var xmlUtil = require("./xml_util");
126
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
127
+
128
+ var LiquidHighlightRules = function() {
129
+
130
+ // see: https://developer.mozilla.org/en/Liquid/Reference/Global_Objects
131
+ var functions = lang.arrayToMap(
132
+ // Standard Filters
133
+ ("date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|" +
134
+ "escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|" +
135
+ "truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split"
136
+ ).split("|")
137
+ );
138
+
139
+ var keywords = lang.arrayToMap(
140
+ // Standard Tags
141
+ ("capture|endcapture|case|endcase|when|comment|endcomment|" +
142
+ "cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|" +
143
+ // Commonly used tags
144
+ "style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow").split("|")
145
+ );
146
+
147
+ var builtinVariables = lang.arrayToMap(
148
+ ['forloop']
149
+ // ("forloop\\.(length|index|index0|rindex|rindex0|first|last)|limit|offset|range" +
150
+ // "tablerowloop\\.(length|index|index0|rindex|rindex0|first|last|col|col0|"+
151
+ // "col_first|col_last)").split("|")
152
+ );
153
+
154
+ var definitions = lang.arrayToMap(("assign").split("|"));
155
+
156
+ // regexp must not have capturing parentheses. Use (?:) instead.
157
+ // regexps are ordered -> the first match is used
158
+
159
+ this.$rules = {
160
+ start : [{
161
+ token : "variable",
162
+ regex : "{%",
163
+ next : "liquid_start"
164
+ }, {
165
+ token : "variable",
166
+ regex : "{{",
167
+ next : "liquid_start"
168
+ }, {
169
+ token : "meta.tag",
170
+ merge : true,
171
+ regex : "<\\!\\[CDATA\\[",
172
+ next : "cdata"
173
+ }, {
174
+ token : "xml_pe",
175
+ regex : "<\\?.*?\\?>"
176
+ }, {
177
+ token : "comment",
178
+ merge : true,
179
+ regex : "<\\!--",
180
+ next : "comment"
181
+ }, {
182
+ token : "meta.tag",
183
+ regex : "<(?=\\s*script\\b)",
184
+ next : "script"
185
+ }, {
186
+ token : "meta.tag",
187
+ regex : "<(?=\\s*style\\b)",
188
+ next : "style"
189
+ }, {
190
+ token : "meta.tag", // opening tag
191
+ regex : "<\\/?",
192
+ next : "tag"
193
+ }, {
194
+ token : "text",
195
+ regex : "\\s+"
196
+ }, {
197
+ token : "text",
198
+ regex : "[^<]+"
199
+ } ],
200
+
201
+ cdata : [ {
202
+ token : "text",
203
+ regex : "\\]\\]>",
204
+ next : "start"
205
+ }, {
206
+ token : "text",
207
+ merge : true,
208
+ regex : "\\s+"
209
+ }, {
210
+ token : "text",
211
+ merge : true,
212
+ regex : ".+"
213
+ } ],
214
+
215
+ comment : [ {
216
+ token : "comment",
217
+ regex : ".*?-->",
218
+ next : "start"
219
+ }, {
220
+ token : "comment",
221
+ merge : true,
222
+ regex : ".+"
223
+ } ] ,
224
+
225
+ liquid_start : [{
226
+ token: "variable",
227
+ regex: "}}",
228
+ next: "start"
229
+ }, {
230
+ token: "variable",
231
+ regex: "%}",
232
+ next: "start"
233
+ }, {
234
+ token : "string", // single line
235
+ regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
236
+ }, {
237
+ token : "string", // single line
238
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
239
+ }, {
240
+ token : "constant.numeric", // hex
241
+ regex : "0[xX][0-9a-fA-F]+\\b"
242
+ }, {
243
+ token : "constant.numeric", // float
244
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
245
+ }, {
246
+ token : "constant.language.boolean",
247
+ regex : "(?:true|false)\\b"
248
+ }, {
249
+ token : function(value) {
250
+ if (functions.hasOwnProperty(value))
251
+ return "support.function";
252
+ else if (keywords.hasOwnProperty(value))
253
+ return "keyword";
254
+ else if (builtinVariables.hasOwnProperty(value))
255
+ return "variable.language";
256
+ else if (definitions.hasOwnProperty(value))
257
+ return "keyword.definition";
258
+ else
259
+ return "identifier";
260
+ },
261
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
262
+ }, {
263
+ token : "keyword.operator",
264
+ regex : "\/|\\*|\\-|\\+|=|!=|\\?\\:"
265
+ }, {
266
+ token : "paren.lparen",
267
+ regex : /[\[\({]/
268
+ }, {
269
+ token : "paren.rparen",
270
+ regex : /[\])}]/
271
+ }, {
272
+ token : "text",
273
+ regex : "\\s+"
274
+ }]
275
+ };
276
+
277
+ xmlUtil.tag(this.$rules, "tag", "start");
278
+ xmlUtil.tag(this.$rules, "style", "css-start");
279
+ xmlUtil.tag(this.$rules, "script", "js-start");
280
+
281
+ this.embedRules(JavaScriptHighlightRules, "js-", [{
282
+ token: "comment",
283
+ regex: "\\/\\/.*(?=<\\/script>)",
284
+ next: "tag"
285
+ }, {
286
+ token: "meta.tag",
287
+ regex: "<\\/(?=script)",
288
+ next: "tag"
289
+ }]);
290
+
291
+ this.embedRules(CssHighlightRules, "css-", [{
292
+ token: "meta.tag",
293
+ regex: "<\\/(?=style)",
294
+ next: "tag"
295
+ }]);
296
+ };
297
+ oop.inherits(LiquidHighlightRules, TextHighlightRules);
298
+
299
+ exports.LiquidHighlightRules = LiquidHighlightRules;
300
+ });
301
+
302
+ define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
303
+
304
+
305
+ var oop = require("../lib/oop");
306
+ var lang = require("../lib/lang");
307
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
308
+
309
+ var CssHighlightRules = function() {
310
+
311
+ var properties = lang.arrayToMap(
312
+ ("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").split("|")
313
+ );
314
+
315
+ var functions = lang.arrayToMap(
316
+ ("rgb|rgba|url|attr|counter|counters").split("|")
317
+ );
318
+
319
+ var constants = lang.arrayToMap(
320
+ ("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|font-size|font|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|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero").split("|")
321
+ );
322
+
323
+ var colors = lang.arrayToMap(
324
+ ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" +
325
+ "purple|red|silver|teal|white|yellow").split("|")
326
+ );
327
+
328
+ var fonts = lang.arrayToMap(
329
+ ("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|" +
330
+ "symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|" +
331
+ "serif|monospace").split("|")
332
+ );
333
+
334
+ // regexp must not have capturing parentheses. Use (?:) instead.
335
+ // regexps are ordered -> the first match is used
336
+
337
+ var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
338
+ var pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
339
+ var 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";
340
+
341
+ var base_ruleset = [
342
+ {
343
+ token : "comment", // multi line comment
344
+ merge : true,
345
+ regex : "\\/\\*",
346
+ next : "ruleset_comment"
347
+ }, {
348
+ token : "string", // single line
349
+ regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
350
+ }, {
351
+ token : "string", // single line
352
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
353
+ }, {
354
+ token : ["constant.numeric", "keyword"],
355
+ 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|%)"
356
+ }, {
357
+ token : ["constant.numeric"],
358
+ regex : "([0-9]+)"
359
+ }, {
360
+ token : "constant.numeric", // hex6 color
361
+ regex : "#[a-f0-9]{6}"
362
+ }, {
363
+ token : "constant.numeric", // hex3 color
364
+ regex : "#[a-f0-9]{3}"
365
+ }, {
366
+ token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
367
+ regex : pseudoElements
368
+ }, {
369
+ token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
370
+ regex : pseudoClasses
371
+ }, {
372
+ token : function(value) {
373
+ if (properties.hasOwnProperty(value.toLowerCase())) {
374
+ return "support.type";
375
+ }
376
+ else if (functions.hasOwnProperty(value.toLowerCase())) {
377
+ return "support.function";
378
+ }
379
+ else if (constants.hasOwnProperty(value.toLowerCase())) {
380
+ return "support.constant";
381
+ }
382
+ else if (colors.hasOwnProperty(value.toLowerCase())) {
383
+ return "support.constant.color";
384
+ }
385
+ else if (fonts.hasOwnProperty(value.toLowerCase())) {
386
+ return "support.constant.fonts";
387
+ }
388
+ else {
389
+ return "text";
390
+ }
391
+ },
392
+ regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
393
+ }
394
+ ];
395
+
396
+ var ruleset = lang.copyArray(base_ruleset);
397
+ ruleset.unshift({
398
+ token : "paren.rparen",
399
+ regex : "\\}",
400
+ next: "start"
401
+ });
402
+
403
+ var media_ruleset = lang.copyArray( base_ruleset );
404
+ media_ruleset.unshift({
405
+ token : "paren.rparen",
406
+ regex : "\\}",
407
+ next: "media"
408
+ });
409
+
410
+ var base_comment = [{
411
+ token : "comment", // comment spanning whole line
412
+ merge : true,
413
+ regex : ".+"
414
+ }];
415
+
416
+ var comment = lang.copyArray(base_comment);
417
+ comment.unshift({
418
+ token : "comment", // closing comment
419
+ regex : ".*?\\*\\/",
420
+ next : "start"
421
+ });
422
+
423
+ var media_comment = lang.copyArray(base_comment);
424
+ media_comment.unshift({
425
+ token : "comment", // closing comment
426
+ regex : ".*?\\*\\/",
427
+ next : "media"
428
+ });
429
+
430
+ var ruleset_comment = lang.copyArray(base_comment);
431
+ ruleset_comment.unshift({
432
+ token : "comment", // closing comment
433
+ regex : ".*?\\*\\/",
434
+ next : "ruleset"
435
+ });
436
+
437
+ this.$rules = {
438
+ "start" : [{
439
+ token : "comment", // multi line comment
440
+ merge : true,
441
+ regex : "\\/\\*",
442
+ next : "comment"
443
+ }, {
444
+ token: "paren.lparen",
445
+ regex: "\\{",
446
+ next: "ruleset"
447
+ }, {
448
+ token: "string",
449
+ regex: "@.*?{",
450
+ next: "media"
451
+ },{
452
+ token: "keyword",
453
+ regex: "#[a-z0-9-_]+"
454
+ },{
455
+ token: "variable",
456
+ regex: "\\.[a-z0-9-_]+"
457
+ },{
458
+ token: "string",
459
+ regex: ":[a-z0-9-_]+"
460
+ },{
461
+ token: "constant",
462
+ regex: "[a-z0-9-_]+"
463
+ }],
464
+
465
+ "media" : [ {
466
+ token : "comment", // multi line comment
467
+ merge : true,
468
+ regex : "\\/\\*",
469
+ next : "media_comment"
470
+ }, {
471
+ token: "paren.lparen",
472
+ regex: "\\{",
473
+ next: "media_ruleset"
474
+ },{
475
+ token: "string",
476
+ regex: "\\}",
477
+ next: "start"
478
+ },{
479
+ token: "keyword",
480
+ regex: "#[a-z0-9-_]+"
481
+ },{
482
+ token: "variable",
483
+ regex: "\\.[a-z0-9-_]+"
484
+ },{
485
+ token: "string",
486
+ regex: ":[a-z0-9-_]+"
487
+ },{
488
+ token: "constant",
489
+ regex: "[a-z0-9-_]+"
490
+ }],
491
+
492
+ "comment" : comment,
493
+
494
+ "ruleset" : ruleset,
495
+ "ruleset_comment" : ruleset_comment,
496
+
497
+ "media_ruleset" : media_ruleset,
498
+ "media_comment" : media_comment
499
+ };
500
+ };
501
+
502
+ oop.inherits(CssHighlightRules, TextHighlightRules);
503
+
504
+ exports.CssHighlightRules = CssHighlightRules;
505
+
506
+ });
507
+
508
+ define('ace/mode/javascript_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/unicode', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
509
+
510
+
511
+ var oop = require("../lib/oop");
512
+ var lang = require("../lib/lang");
513
+ var unicode = require("../unicode");
514
+ var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
515
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
516
+
517
+ var JavaScriptHighlightRules = function() {
518
+
519
+ // see: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects
520
+ var globals = lang.arrayToMap(
521
+ // Constructors
522
+ ("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" +
523
+ // E4X
524
+ "Namespace|QName|XML|XMLList|" +
525
+ "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
526
+ "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
527
+ // Errors
528
+ "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" +
529
+ "SyntaxError|TypeError|URIError|" +
530
+ // Non-constructor functions
531
+ "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" +
532
+ "isNaN|parseFloat|parseInt|" +
533
+ // Other
534
+ "JSON|Math|" +
535
+ // Pseudo
536
+ "this|arguments|prototype|window|document"
537
+ ).split("|")
538
+ );
539
+
540
+ var keywords = lang.arrayToMap(
541
+ ("break|case|catch|continue|default|delete|do|else|finally|for|function|" +
542
+ "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|" +
543
+ "const|yield|import|get|set").split("|")
544
+ );
545
+
546
+ // keywords which can be followed by regular expressions
547
+ var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield";
548
+
549
+ var deprecated = lang.arrayToMap(
550
+ ("__parent__|__count__|escape|unescape|with|__proto__").split("|")
551
+ );
552
+
553
+ var definitions = lang.arrayToMap(("const|let|var|function").split("|"));
554
+
555
+ var buildinConstants = lang.arrayToMap(
556
+ ("null|Infinity|NaN|undefined").split("|")
557
+ );
558
+
559
+ var futureReserved = lang.arrayToMap(
560
+ ("class|enum|extends|super|export|implements|private|" +
561
+ "public|interface|package|protected|static").split("|")
562
+ );
563
+
564
+ // TODO: Unicode escape sequences
565
+ var identifierRe = "[" + unicode.packages.L + "\\$_]["
566
+ + unicode.packages.L
567
+ + unicode.packages.Mn + unicode.packages.Mc
568
+ + unicode.packages.Nd
569
+ + unicode.packages.Pc + "\\$_]*\\b";
570
+
571
+ var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
572
+ "u[0-9a-fA-F]{4}|" + // unicode
573
+ "[0-2][0-7]{0,2}|" + // oct
574
+ "3[0-6][0-7]?|" + // oct
575
+ "37[0-7]?|" + // oct
576
+ "[4-7][0-7]?|" + //oct
577
+ ".)";
578
+
579
+ // regexp must not have capturing parentheses. Use (?:) instead.
580
+ // regexps are ordered -> the first match is used
581
+
582
+ this.$rules = {
583
+ "start" : [
584
+ {
585
+ token : "comment",
586
+ regex : /\/\/.*$/
587
+ },
588
+ DocCommentHighlightRules.getStartRule("doc-start"),
589
+ {
590
+ token : "comment", // multi line comment
591
+ merge : true,
592
+ regex : /\/\*/,
593
+ next : "comment"
594
+ }, {
595
+ token : "string",
596
+ regex : "'(?=.)",
597
+ next : "qstring"
598
+ }, {
599
+ token : "string",
600
+ regex : '"(?=.)',
601
+ next : "qqstring"
602
+ }, {
603
+ token : "constant.numeric", // hex
604
+ regex : /0[xX][0-9a-fA-F]+\b/
605
+ }, {
606
+ token : "constant.numeric", // float
607
+ regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
608
+ }, { // match stuff like: Sound.prototype.play = function() { }
609
+ token : [
610
+ "storage.type",
611
+ "punctuation.operator",
612
+ "support.function",
613
+ "punctuation.operator",
614
+ "entity.name.function",
615
+ "text",
616
+ "keyword.operator",
617
+ "text",
618
+ "storage.type",
619
+ "text",
620
+ "paren.lparen"
621
+ ],
622
+ regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
623
+ next: "function_arguments"
624
+ }, { // match stuff like: Sound.prototype.play = myfunc
625
+ token : [
626
+ "storage.type",
627
+ "punctuation.operator",
628
+ "support.function",
629
+ "punctuation.operator",
630
+ "entity.name.function",
631
+ "text",
632
+ "keyword.operator",
633
+ "text"
634
+ ],
635
+ regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)",
636
+ next: "function_arguments"
637
+ }, { // match stuff like: Sound.play = function() { }
638
+ token : [
639
+ "storage.type",
640
+ "punctuation.operator",
641
+ "entity.name.function",
642
+ "text",
643
+ "keyword.operator",
644
+ "text",
645
+ "storage.type",
646
+ "text",
647
+ "paren.lparen"
648
+ ],
649
+ regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
650
+ next: "function_arguments"
651
+ }, { // match stuff like: play = function() { }
652
+ token : [
653
+ "entity.name.function",
654
+ "text",
655
+ "keyword.operator",
656
+ "text",
657
+ "storage.type",
658
+ "text",
659
+ "paren.lparen"
660
+ ],
661
+ regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
662
+ next: "function_arguments"
663
+ }, { // match stuff like: Sound.play = function play() { }
664
+ token : [
665
+ "storage.type",
666
+ "punctuation.operator",
667
+ "entity.name.function",
668
+ "text",
669
+ "keyword.operator",
670
+ "text",
671
+ "storage.type",
672
+ "text",
673
+ "entity.name.function",
674
+ "text",
675
+ "paren.lparen"
676
+ ],
677
+ regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",
678
+ next: "function_arguments"
679
+ }, { // match regular function like: function myFunc(arg) { }
680
+ token : [
681
+ "storage.type",
682
+ "text",
683
+ "entity.name.function",
684
+ "text",
685
+ "paren.lparen"
686
+ ],
687
+ regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
688
+ next: "function_arguments"
689
+ }, { // match stuff like: foobar: function() { }
690
+ token : [
691
+ "entity.name.function",
692
+ "text",
693
+ "punctuation.operator",
694
+ "text",
695
+ "storage.type",
696
+ "text",
697
+ "paren.lparen"
698
+ ],
699
+ regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",
700
+ next: "function_arguments"
701
+ }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { })
702
+ token : [
703
+ "text",
704
+ "text",
705
+ "storage.type",
706
+ "text",
707
+ "paren.lparen"
708
+ ],
709
+ regex : "(:)(\\s*)(function)(\\s*)(\\()",
710
+ next: "function_arguments"
711
+ }, {
712
+ token : "constant.language.boolean",
713
+ regex : /(?:true|false)\b/
714
+ }, {
715
+ token : "keyword",
716
+ regex : "(?:" + kwBeforeRe + ")\\b",
717
+ next : "regex_allowed"
718
+ }, {
719
+ token : ["punctuation.operator", "support.function"],
720
+ 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(?=\()/
721
+ }, {
722
+ token : ["punctuation.operator", "support.function.dom"],
723
+ 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(?=\()/
724
+ }, {
725
+ token : ["punctuation.operator", "support.constant"],
726
+ 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/
727
+ }, {
728
+ token : ["storage.type", "punctuation.operator", "support.function.firebug"],
729
+ regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/
730
+ }, {
731
+ token : function(value) {
732
+ if (globals.hasOwnProperty(value))
733
+ return "variable.language";
734
+ else if (deprecated.hasOwnProperty(value))
735
+ return "invalid.deprecated";
736
+ else if (definitions.hasOwnProperty(value))
737
+ return "storage.type";
738
+ else if (keywords.hasOwnProperty(value))
739
+ return "keyword";
740
+ else if (buildinConstants.hasOwnProperty(value))
741
+ return "constant.language";
742
+ else if (futureReserved.hasOwnProperty(value))
743
+ return "invalid.illegal";
744
+ else if (value == "debugger")
745
+ return "invalid.deprecated";
746
+ else
747
+ return "identifier";
748
+ },
749
+ regex : identifierRe
750
+ }, {
751
+ token : "keyword.operator",
752
+ regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,
753
+ next : "regex_allowed"
754
+ }, {
755
+ token : "punctuation.operator",
756
+ regex : /\?|\:|\,|\;|\./,
757
+ next : "regex_allowed"
758
+ }, {
759
+ token : "paren.lparen",
760
+ regex : /[\[({]/,
761
+ next : "regex_allowed"
762
+ }, {
763
+ token : "paren.rparen",
764
+ regex : /[\])}]/
765
+ }, {
766
+ token : "keyword.operator",
767
+ regex : /\/=?/,
768
+ next : "regex_allowed"
769
+ }, {
770
+ token: "comment",
771
+ regex: /^#!.*$/
772
+ }, {
773
+ token : "text",
774
+ regex : /\s+/
775
+ }
776
+ ],
777
+ // regular expressions are only allowed after certain tokens. This
778
+ // makes sure we don't mix up regexps with the divison operator
779
+ "regex_allowed": [
780
+ DocCommentHighlightRules.getStartRule("doc-start"),
781
+ {
782
+ token : "comment", // multi line comment
783
+ merge : true,
784
+ regex : "\\/\\*",
785
+ next : "comment_regex_allowed"
786
+ }, {
787
+ token : "comment",
788
+ regex : "\\/\\/.*$"
789
+ }, {
790
+ token: "string.regexp",
791
+ regex: "\\/",
792
+ next: "regex",
793
+ merge: true
794
+ }, {
795
+ token : "text",
796
+ regex : "\\s+"
797
+ }, {
798
+ // immediately return to the start mode without matching
799
+ // anything
800
+ token: "empty",
801
+ regex: "",
802
+ next: "start"
803
+ }
804
+ ],
805
+ "regex": [
806
+ {
807
+ token: "regexp.keyword.operator",
808
+ regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
809
+ }, {
810
+ // flag
811
+ token: "string.regexp",
812
+ regex: "/\\w*",
813
+ next: "start",
814
+ merge: true
815
+ }, {
816
+ token: "string.regexp",
817
+ regex: "[^\\\\/\\[]+",
818
+ merge: true
819
+ }, {
820
+ token: "string.regexp.charachterclass",
821
+ regex: "\\[",
822
+ next: "regex_character_class",
823
+ merge: true
824
+ }, {
825
+ token: "empty",
826
+ regex: "",
827
+ next: "start"
828
+ }
829
+ ],
830
+ "regex_character_class": [
831
+ {
832
+ token: "regexp.keyword.operator",
833
+ regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
834
+ }, {
835
+ token: "string.regexp.charachterclass",
836
+ regex: "]",
837
+ next: "regex",
838
+ merge: true
839
+ }, {
840
+ token: "string.regexp.charachterclass",
841
+ regex: "[^\\\\\\]]+",
842
+ merge: true
843
+ }, {
844
+ token: "empty",
845
+ regex: "",
846
+ next: "start"
847
+ }
848
+ ],
849
+ "function_arguments": [
850
+ {
851
+ token: "variable.parameter",
852
+ regex: identifierRe
853
+ }, {
854
+ token: "punctuation.operator",
855
+ regex: "[, ]+",
856
+ merge: true
857
+ }, {
858
+ token: "punctuation.operator",
859
+ regex: "$",
860
+ merge: true
861
+ }, {
862
+ token: "empty",
863
+ regex: "",
864
+ next: "start"
865
+ }
866
+ ],
867
+ "comment_regex_allowed" : [
868
+ {
869
+ token : "comment", // closing comment
870
+ regex : ".*?\\*\\/",
871
+ merge : true,
872
+ next : "regex_allowed"
873
+ }, {
874
+ token : "comment", // comment spanning whole line
875
+ merge : true,
876
+ regex : ".+"
877
+ }
878
+ ],
879
+ "comment" : [
880
+ {
881
+ token : "comment", // closing comment
882
+ regex : ".*?\\*\\/",
883
+ merge : true,
884
+ next : "start"
885
+ }, {
886
+ token : "comment", // comment spanning whole line
887
+ merge : true,
888
+ regex : ".+"
889
+ }
890
+ ],
891
+ "qqstring" : [
892
+ {
893
+ token : "constant.language.escape",
894
+ regex : escapedRe
895
+ }, {
896
+ token : "string",
897
+ regex : '[^"\\\\]+',
898
+ merge : true
899
+ }, {
900
+ token : "string",
901
+ regex : "\\\\$",
902
+ next : "qqstring",
903
+ merge : true
904
+ }, {
905
+ token : "string",
906
+ regex : '"|$',
907
+ next : "start",
908
+ merge : true
909
+ }
910
+ ],
911
+ "qstring" : [
912
+ {
913
+ token : "constant.language.escape",
914
+ regex : escapedRe
915
+ }, {
916
+ token : "string",
917
+ regex : "[^'\\\\]+",
918
+ merge : true
919
+ }, {
920
+ token : "string",
921
+ regex : "\\\\$",
922
+ next : "qstring",
923
+ merge : true
924
+ }, {
925
+ token : "string",
926
+ regex : "'|$",
927
+ next : "start",
928
+ merge : true
929
+ }
930
+ ]
931
+ };
932
+
933
+ this.embedRules(DocCommentHighlightRules, "doc-",
934
+ [ DocCommentHighlightRules.getEndRule("start") ]);
935
+ };
936
+
937
+ oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
938
+
939
+ exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
940
+ });
941
+
942
+ define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
943
+
944
+
945
+ var oop = require("../lib/oop");
946
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
947
+
948
+ var DocCommentHighlightRules = function() {
949
+
950
+ this.$rules = {
951
+ "start" : [ {
952
+ token : "comment.doc.tag",
953
+ regex : "@[\\w\\d_]+" // TODO: fix email addresses
954
+ }, {
955
+ token : "comment.doc",
956
+ merge : true,
957
+ regex : "\\s+"
958
+ }, {
959
+ token : "comment.doc",
960
+ merge : true,
961
+ regex : "TODO"
962
+ }, {
963
+ token : "comment.doc",
964
+ merge : true,
965
+ regex : "[^@\\*]+"
966
+ }, {
967
+ token : "comment.doc",
968
+ merge : true,
969
+ regex : "."
970
+ }]
971
+ };
972
+ };
973
+
974
+ oop.inherits(DocCommentHighlightRules, TextHighlightRules);
975
+
976
+ DocCommentHighlightRules.getStartRule = function(start) {
977
+ return {
978
+ token : "comment.doc", // doc comment
979
+ merge : true,
980
+ regex : "\\/\\*(?=\\*)",
981
+ next : start
982
+ };
983
+ };
984
+
985
+ DocCommentHighlightRules.getEndRule = function (start) {
986
+ return {
987
+ token : "comment.doc", // closing comment
988
+ merge : true,
989
+ regex : "\\*\\/",
990
+ next : start
991
+ };
992
+ };
993
+
994
+
995
+ exports.DocCommentHighlightRules = DocCommentHighlightRules;
996
+
997
+ });
998
+
999
+ define('ace/mode/xml_util', ['require', 'exports', 'module' ], function(require, exports, module) {
1000
+
1001
+
1002
+ function string(state) {
1003
+ return [{
1004
+ token : "string",
1005
+ regex : '".*?"'
1006
+ }, {
1007
+ token : "string", // multi line string start
1008
+ merge : true,
1009
+ regex : '["].*',
1010
+ next : state + "_qqstring"
1011
+ }, {
1012
+ token : "string",
1013
+ regex : "'.*?'"
1014
+ }, {
1015
+ token : "string", // multi line string start
1016
+ merge : true,
1017
+ regex : "['].*",
1018
+ next : state + "_qstring"
1019
+ }];
1020
+ }
1021
+
1022
+ function multiLineString(quote, state) {
1023
+ return [{
1024
+ token : "string",
1025
+ merge : true,
1026
+ regex : ".*?" + quote,
1027
+ next : state
1028
+ }, {
1029
+ token : "string",
1030
+ merge : true,
1031
+ regex : '.+'
1032
+ }];
1033
+ }
1034
+
1035
+ exports.tag = function(states, name, nextState, tagMap) {
1036
+ states[name] = [{
1037
+ token : "text",
1038
+ regex : "\\s+"
1039
+ }, {
1040
+ //token : "meta.tag",
1041
+
1042
+ token : !tagMap ? "meta.tag.tag-name" : function(value) {
1043
+ if (tagMap[value])
1044
+ return "meta.tag.tag-name." + tagMap[value];
1045
+ else
1046
+ return "meta.tag.tag-name";
1047
+ },
1048
+ merge : true,
1049
+ regex : "[-_a-zA-Z0-9:]+",
1050
+ next : name + "_embed_attribute_list"
1051
+ }, {
1052
+ token: "empty",
1053
+ regex: "",
1054
+ next : name + "_embed_attribute_list"
1055
+ }];
1056
+
1057
+ states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list");
1058
+ states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list");
1059
+
1060
+ states[name + "_embed_attribute_list"] = [{
1061
+ token : "meta.tag",
1062
+ merge : true,
1063
+ regex : "\/?>",
1064
+ next : nextState
1065
+ }, {
1066
+ token : "keyword.operator",
1067
+ regex : "="
1068
+ }, {
1069
+ token : "entity.other.attribute-name",
1070
+ regex : "[-_a-zA-Z0-9:]+"
1071
+ }, {
1072
+ token : "constant.numeric", // float
1073
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
1074
+ }, {
1075
+ token : "text",
1076
+ regex : "\\s+"
1077
+ }].concat(string(name));
1078
+ };
1079
+
1080
+ });
1081
+
1082
+ define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
1083
+
1084
+
1085
+ var Range = require("../range").Range;
1086
+
1087
+ var MatchingBraceOutdent = function() {};
1088
+
1089
+ (function() {
1090
+
1091
+ this.checkOutdent = function(line, input) {
1092
+ if (! /^\s+$/.test(line))
1093
+ return false;
1094
+
1095
+ return /^\s*\}/.test(input);
1096
+ };
1097
+
1098
+ this.autoOutdent = function(doc, row) {
1099
+ var line = doc.getLine(row);
1100
+ var match = line.match(/^(\s*\})/);
1101
+
1102
+ if (!match) return 0;
1103
+
1104
+ var column = match[1].length;
1105
+ var openBracePos = doc.findMatchingBracket({row: row, column: column});
1106
+
1107
+ if (!openBracePos || openBracePos.row == row) return 0;
1108
+
1109
+ var indent = this.$getIndent(doc.getLine(openBracePos.row));
1110
+ doc.replace(new Range(row, 0, row, column-1), indent);
1111
+ };
1112
+
1113
+ this.$getIndent = function(line) {
1114
+ var match = line.match(/^(\s+)/);
1115
+ if (match) {
1116
+ return match[1];
1117
+ }
1118
+
1119
+ return "";
1120
+ };
1121
+
1122
+ }).call(MatchingBraceOutdent.prototype);
1123
+
1124
+ exports.MatchingBraceOutdent = MatchingBraceOutdent;
1125
+ });