aced_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. data/.gitignore +17 -0
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +49 -0
  6. data/Rakefile +2 -0
  7. data/aced_rails.gemspec +19 -0
  8. data/lib/aced_rails.rb +7 -0
  9. data/lib/aced_rails/engine.rb +4 -0
  10. data/lib/aced_rails/version.rb +3 -0
  11. data/vendor/assets/javascripts/ace/ace-compat-noconflict.js +1 -0
  12. data/vendor/assets/javascripts/ace/ace-compat-uncompressed-noconflict.js +480 -0
  13. data/vendor/assets/javascripts/ace/ace-compat-uncompressed.js +480 -0
  14. data/vendor/assets/javascripts/ace/ace-compat.js +1 -0
  15. data/vendor/assets/javascripts/ace/ace-noconflict.js +10 -0
  16. data/vendor/assets/javascripts/ace/ace-uncompressed-noconflict.js +14649 -0
  17. data/vendor/assets/javascripts/ace/ace-uncompressed.js +14649 -0
  18. data/vendor/assets/javascripts/ace/ace.js +10 -0
  19. data/vendor/assets/javascripts/ace/keybinding-emacs-noconflict.js +1 -0
  20. data/vendor/assets/javascripts/ace/keybinding-emacs-uncompressed-noconflict.js +405 -0
  21. data/vendor/assets/javascripts/ace/keybinding-emacs-uncompressed.js +405 -0
  22. data/vendor/assets/javascripts/ace/keybinding-emacs.js +1 -0
  23. data/vendor/assets/javascripts/ace/keybinding-vim-noconflict.js +1 -0
  24. data/vendor/assets/javascripts/ace/keybinding-vim-uncompressed-noconflict.js +393 -0
  25. data/vendor/assets/javascripts/ace/keybinding-vim-uncompressed.js +393 -0
  26. data/vendor/assets/javascripts/ace/keybinding-vim.js +1 -0
  27. data/vendor/assets/javascripts/ace/mode-c_cpp-noconflict.js +1 -0
  28. data/vendor/assets/javascripts/ace/mode-c_cpp-uncompressed-noconflict.js +918 -0
  29. data/vendor/assets/javascripts/ace/mode-c_cpp-uncompressed.js +918 -0
  30. data/vendor/assets/javascripts/ace/mode-c_cpp.js +1 -0
  31. data/vendor/assets/javascripts/ace/mode-clojure-noconflict.js +1 -0
  32. data/vendor/assets/javascripts/ace/mode-clojure-uncompressed-noconflict.js +422 -0
  33. data/vendor/assets/javascripts/ace/mode-clojure-uncompressed.js +422 -0
  34. data/vendor/assets/javascripts/ace/mode-clojure.js +1 -0
  35. data/vendor/assets/javascripts/ace/mode-coffee-noconflict.js +1 -0
  36. data/vendor/assets/javascripts/ace/mode-coffee-uncompressed-noconflict.js +605 -0
  37. data/vendor/assets/javascripts/ace/mode-coffee-uncompressed.js +605 -0
  38. data/vendor/assets/javascripts/ace/mode-coffee.js +1 -0
  39. data/vendor/assets/javascripts/ace/mode-coldfusion-noconflict.js +1 -0
  40. data/vendor/assets/javascripts/ace/mode-coldfusion-uncompressed-noconflict.js +2361 -0
  41. data/vendor/assets/javascripts/ace/mode-coldfusion-uncompressed.js +2361 -0
  42. data/vendor/assets/javascripts/ace/mode-coldfusion.js +1 -0
  43. data/vendor/assets/javascripts/ace/mode-csharp-noconflict.js +1 -0
  44. data/vendor/assets/javascripts/ace/mode-csharp-uncompressed-noconflict.js +768 -0
  45. data/vendor/assets/javascripts/ace/mode-csharp-uncompressed.js +768 -0
  46. data/vendor/assets/javascripts/ace/mode-csharp.js +1 -0
  47. data/vendor/assets/javascripts/ace/mode-css-noconflict.js +1 -0
  48. data/vendor/assets/javascripts/ace/mode-css-uncompressed-noconflict.js +664 -0
  49. data/vendor/assets/javascripts/ace/mode-css-uncompressed.js +664 -0
  50. data/vendor/assets/javascripts/ace/mode-css.js +1 -0
  51. data/vendor/assets/javascripts/ace/mode-groovy-noconflict.js +1 -0
  52. data/vendor/assets/javascripts/ace/mode-groovy-uncompressed-noconflict.js +1280 -0
  53. data/vendor/assets/javascripts/ace/mode-groovy-uncompressed.js +1280 -0
  54. data/vendor/assets/javascripts/ace/mode-groovy.js +1 -0
  55. data/vendor/assets/javascripts/ace/mode-haxe-noconflict.js +1 -0
  56. data/vendor/assets/javascripts/ace/mode-haxe-uncompressed-noconflict.js +768 -0
  57. data/vendor/assets/javascripts/ace/mode-haxe-uncompressed.js +768 -0
  58. data/vendor/assets/javascripts/ace/mode-haxe.js +1 -0
  59. data/vendor/assets/javascripts/ace/mode-html-noconflict.js +1 -0
  60. data/vendor/assets/javascripts/ace/mode-html-uncompressed-noconflict.js +2377 -0
  61. data/vendor/assets/javascripts/ace/mode-html-uncompressed.js +2377 -0
  62. data/vendor/assets/javascripts/ace/mode-html.js +1 -0
  63. data/vendor/assets/javascripts/ace/mode-java-noconflict.js +1 -0
  64. data/vendor/assets/javascripts/ace/mode-java-uncompressed-noconflict.js +1282 -0
  65. data/vendor/assets/javascripts/ace/mode-java-uncompressed.js +1282 -0
  66. data/vendor/assets/javascripts/ace/mode-java.js +1 -0
  67. data/vendor/assets/javascripts/ace/mode-javascript-noconflict.js +1 -0
  68. data/vendor/assets/javascripts/ace/mode-javascript-uncompressed-noconflict.js +1113 -0
  69. data/vendor/assets/javascripts/ace/mode-javascript-uncompressed.js +1113 -0
  70. data/vendor/assets/javascripts/ace/mode-javascript.js +1 -0
  71. data/vendor/assets/javascripts/ace/mode-json-noconflict.js +1 -0
  72. data/vendor/assets/javascripts/ace/mode-json-uncompressed-noconflict.js +696 -0
  73. data/vendor/assets/javascripts/ace/mode-json-uncompressed.js +696 -0
  74. data/vendor/assets/javascripts/ace/mode-json.js +1 -0
  75. data/vendor/assets/javascripts/ace/mode-latex-noconflict.js +1 -0
  76. data/vendor/assets/javascripts/ace/mode-latex-uncompressed-noconflict.js +95 -0
  77. data/vendor/assets/javascripts/ace/mode-latex-uncompressed.js +95 -0
  78. data/vendor/assets/javascripts/ace/mode-latex.js +1 -0
  79. data/vendor/assets/javascripts/ace/mode-lua-noconflict.js +1 -0
  80. data/vendor/assets/javascripts/ace/mode-lua-uncompressed-noconflict.js +523 -0
  81. data/vendor/assets/javascripts/ace/mode-lua-uncompressed.js +523 -0
  82. data/vendor/assets/javascripts/ace/mode-lua.js +1 -0
  83. data/vendor/assets/javascripts/ace/mode-markdown-noconflict.js +1 -0
  84. data/vendor/assets/javascripts/ace/mode-markdown-uncompressed-noconflict.js +2819 -0
  85. data/vendor/assets/javascripts/ace/mode-markdown-uncompressed.js +2819 -0
  86. data/vendor/assets/javascripts/ace/mode-markdown.js +1 -0
  87. data/vendor/assets/javascripts/ace/mode-ocaml-noconflict.js +1 -0
  88. data/vendor/assets/javascripts/ace/mode-ocaml-uncompressed-noconflict.js +539 -0
  89. data/vendor/assets/javascripts/ace/mode-ocaml-uncompressed.js +539 -0
  90. data/vendor/assets/javascripts/ace/mode-ocaml.js +1 -0
  91. data/vendor/assets/javascripts/ace/mode-perl-noconflict.js +1 -0
  92. data/vendor/assets/javascripts/ace/mode-perl-uncompressed-noconflict.js +573 -0
  93. data/vendor/assets/javascripts/ace/mode-perl-uncompressed.js +573 -0
  94. data/vendor/assets/javascripts/ace/mode-perl.js +1 -0
  95. data/vendor/assets/javascripts/ace/mode-pgsql-noconflict.js +1 -0
  96. data/vendor/assets/javascripts/ace/mode-pgsql-uncompressed-noconflict.js +1107 -0
  97. data/vendor/assets/javascripts/ace/mode-pgsql-uncompressed.js +1107 -0
  98. data/vendor/assets/javascripts/ace/mode-pgsql.js +1 -0
  99. data/vendor/assets/javascripts/ace/mode-php-noconflict.js +1 -0
  100. data/vendor/assets/javascripts/ace/mode-php-uncompressed-noconflict.js +1884 -0
  101. data/vendor/assets/javascripts/ace/mode-php-uncompressed.js +1884 -0
  102. data/vendor/assets/javascripts/ace/mode-php.js +1 -0
  103. data/vendor/assets/javascripts/ace/mode-powershell-noconflict.js +1 -0
  104. data/vendor/assets/javascripts/ace/mode-powershell-uncompressed-noconflict.js +706 -0
  105. data/vendor/assets/javascripts/ace/mode-powershell-uncompressed.js +706 -0
  106. data/vendor/assets/javascripts/ace/mode-powershell.js +1 -0
  107. data/vendor/assets/javascripts/ace/mode-python-noconflict.js +1 -0
  108. data/vendor/assets/javascripts/ace/mode-python-uncompressed-noconflict.js +506 -0
  109. data/vendor/assets/javascripts/ace/mode-python-uncompressed.js +506 -0
  110. data/vendor/assets/javascripts/ace/mode-python.js +1 -0
  111. data/vendor/assets/javascripts/ace/mode-ruby-noconflict.js +1 -0
  112. data/vendor/assets/javascripts/ace/mode-ruby-uncompressed-noconflict.js +391 -0
  113. data/vendor/assets/javascripts/ace/mode-ruby-uncompressed.js +391 -0
  114. data/vendor/assets/javascripts/ace/mode-ruby.js +1 -0
  115. data/vendor/assets/javascripts/ace/mode-scad-noconflict.js +1 -0
  116. data/vendor/assets/javascripts/ace/mode-scad-uncompressed-noconflict.js +906 -0
  117. data/vendor/assets/javascripts/ace/mode-scad-uncompressed.js +906 -0
  118. data/vendor/assets/javascripts/ace/mode-scad.js +1 -0
  119. data/vendor/assets/javascripts/ace/mode-scala-noconflict.js +1 -0
  120. data/vendor/assets/javascripts/ace/mode-scala-uncompressed-noconflict.js +1282 -0
  121. data/vendor/assets/javascripts/ace/mode-scala-uncompressed.js +1282 -0
  122. data/vendor/assets/javascripts/ace/mode-scala.js +1 -0
  123. data/vendor/assets/javascripts/ace/mode-scss-noconflict.js +1 -0
  124. data/vendor/assets/javascripts/ace/mode-scss-uncompressed-noconflict.js +678 -0
  125. data/vendor/assets/javascripts/ace/mode-scss-uncompressed.js +678 -0
  126. data/vendor/assets/javascripts/ace/mode-scss.js +1 -0
  127. data/vendor/assets/javascripts/ace/mode-sh-noconflict.js +1 -0
  128. data/vendor/assets/javascripts/ace/mode-sh-uncompressed-noconflict.js +268 -0
  129. data/vendor/assets/javascripts/ace/mode-sh-uncompressed.js +268 -0
  130. data/vendor/assets/javascripts/ace/mode-sh.js +1 -0
  131. data/vendor/assets/javascripts/ace/mode-sql-noconflict.js +1 -0
  132. data/vendor/assets/javascripts/ace/mode-sql-uncompressed-noconflict.js +159 -0
  133. data/vendor/assets/javascripts/ace/mode-sql-uncompressed.js +159 -0
  134. data/vendor/assets/javascripts/ace/mode-sql.js +1 -0
  135. data/vendor/assets/javascripts/ace/mode-svg-noconflict.js +1 -0
  136. data/vendor/assets/javascripts/ace/mode-svg-uncompressed-noconflict.js +2016 -0
  137. data/vendor/assets/javascripts/ace/mode-svg-uncompressed.js +2016 -0
  138. data/vendor/assets/javascripts/ace/mode-svg.js +1 -0
  139. data/vendor/assets/javascripts/ace/mode-text-noconflict.js +0 -0
  140. data/vendor/assets/javascripts/ace/mode-text-uncompressed-noconflict.js +0 -0
  141. data/vendor/assets/javascripts/ace/mode-text-uncompressed.js +0 -0
  142. data/vendor/assets/javascripts/ace/mode-text.js +0 -0
  143. data/vendor/assets/javascripts/ace/mode-textile-noconflict.js +1 -0
  144. data/vendor/assets/javascripts/ace/mode-textile-uncompressed-noconflict.js +254 -0
  145. data/vendor/assets/javascripts/ace/mode-textile-uncompressed.js +254 -0
  146. data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
  147. data/vendor/assets/javascripts/ace/mode-xml-noconflict.js +1 -0
  148. data/vendor/assets/javascripts/ace/mode-xml-uncompressed-noconflict.js +1001 -0
  149. data/vendor/assets/javascripts/ace/mode-xml-uncompressed.js +1001 -0
  150. data/vendor/assets/javascripts/ace/mode-xml.js +1 -0
  151. data/vendor/assets/javascripts/ace/theme-chrome-noconflict.js +1 -0
  152. data/vendor/assets/javascripts/ace/theme-chrome-uncompressed-noconflict.js +212 -0
  153. data/vendor/assets/javascripts/ace/theme-chrome-uncompressed.js +212 -0
  154. data/vendor/assets/javascripts/ace/theme-chrome.js +1 -0
  155. data/vendor/assets/javascripts/ace/theme-clouds-noconflict.js +1 -0
  156. data/vendor/assets/javascripts/ace/theme-clouds-uncompressed-noconflict.js +155 -0
  157. data/vendor/assets/javascripts/ace/theme-clouds-uncompressed.js +155 -0
  158. data/vendor/assets/javascripts/ace/theme-clouds.js +1 -0
  159. data/vendor/assets/javascripts/ace/theme-clouds_midnight-noconflict.js +1 -0
  160. data/vendor/assets/javascripts/ace/theme-clouds_midnight-uncompressed-noconflict.js +156 -0
  161. data/vendor/assets/javascripts/ace/theme-clouds_midnight-uncompressed.js +156 -0
  162. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +1 -0
  163. data/vendor/assets/javascripts/ace/theme-cobalt-noconflict.js +1 -0
  164. data/vendor/assets/javascripts/ace/theme-cobalt-uncompressed-noconflict.js +170 -0
  165. data/vendor/assets/javascripts/ace/theme-cobalt-uncompressed.js +170 -0
  166. data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -0
  167. data/vendor/assets/javascripts/ace/theme-crimson_editor-noconflict.js +1 -0
  168. data/vendor/assets/javascripts/ace/theme-crimson_editor-uncompressed-noconflict.js +198 -0
  169. data/vendor/assets/javascripts/ace/theme-crimson_editor-uncompressed.js +198 -0
  170. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +1 -0
  171. data/vendor/assets/javascripts/ace/theme-dawn-noconflict.js +1 -0
  172. data/vendor/assets/javascripts/ace/theme-dawn-uncompressed-noconflict.js +174 -0
  173. data/vendor/assets/javascripts/ace/theme-dawn-uncompressed.js +174 -0
  174. data/vendor/assets/javascripts/ace/theme-dawn.js +1 -0
  175. data/vendor/assets/javascripts/ace/theme-dreamweaver-noconflict.js +1 -0
  176. data/vendor/assets/javascripts/ace/theme-dreamweaver-uncompressed-noconflict.js +227 -0
  177. data/vendor/assets/javascripts/ace/theme-dreamweaver-uncompressed.js +227 -0
  178. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +1 -0
  179. data/vendor/assets/javascripts/ace/theme-eclipse-noconflict.js +1 -0
  180. data/vendor/assets/javascripts/ace/theme-eclipse-uncompressed-noconflict.js +147 -0
  181. data/vendor/assets/javascripts/ace/theme-eclipse-uncompressed.js +147 -0
  182. data/vendor/assets/javascripts/ace/theme-eclipse.js +1 -0
  183. data/vendor/assets/javascripts/ace/theme-idle_fingers-noconflict.js +1 -0
  184. data/vendor/assets/javascripts/ace/theme-idle_fingers-uncompressed-noconflict.js +162 -0
  185. data/vendor/assets/javascripts/ace/theme-idle_fingers-uncompressed.js +162 -0
  186. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -0
  187. data/vendor/assets/javascripts/ace/theme-kr_theme-noconflict.js +1 -0
  188. data/vendor/assets/javascripts/ace/theme-kr_theme-uncompressed-noconflict.js +165 -0
  189. data/vendor/assets/javascripts/ace/theme-kr_theme-uncompressed.js +165 -0
  190. data/vendor/assets/javascripts/ace/theme-kr_theme.js +1 -0
  191. data/vendor/assets/javascripts/ace/theme-merbivore-noconflict.js +1 -0
  192. data/vendor/assets/javascripts/ace/theme-merbivore-uncompressed-noconflict.js +165 -0
  193. data/vendor/assets/javascripts/ace/theme-merbivore-uncompressed.js +165 -0
  194. data/vendor/assets/javascripts/ace/theme-merbivore.js +1 -0
  195. data/vendor/assets/javascripts/ace/theme-merbivore_soft-noconflict.js +1 -0
  196. data/vendor/assets/javascripts/ace/theme-merbivore_soft-uncompressed-noconflict.js +171 -0
  197. data/vendor/assets/javascripts/ace/theme-merbivore_soft-uncompressed.js +171 -0
  198. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +1 -0
  199. data/vendor/assets/javascripts/ace/theme-mono_industrial-noconflict.js +1 -0
  200. data/vendor/assets/javascripts/ace/theme-mono_industrial-uncompressed-noconflict.js +169 -0
  201. data/vendor/assets/javascripts/ace/theme-mono_industrial-uncompressed.js +169 -0
  202. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +1 -0
  203. data/vendor/assets/javascripts/ace/theme-monokai-noconflict.js +1 -0
  204. data/vendor/assets/javascripts/ace/theme-monokai-uncompressed-noconflict.js +171 -0
  205. data/vendor/assets/javascripts/ace/theme-monokai-uncompressed.js +171 -0
  206. data/vendor/assets/javascripts/ace/theme-monokai.js +1 -0
  207. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-noconflict.js +1 -0
  208. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-uncompressed-noconflict.js +179 -0
  209. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-uncompressed.js +179 -0
  210. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +1 -0
  211. data/vendor/assets/javascripts/ace/theme-solarized_dark-noconflict.js +1 -0
  212. data/vendor/assets/javascripts/ace/theme-solarized_dark-uncompressed-noconflict.js +160 -0
  213. data/vendor/assets/javascripts/ace/theme-solarized_dark-uncompressed.js +160 -0
  214. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +1 -0
  215. data/vendor/assets/javascripts/ace/theme-solarized_light-noconflict.js +1 -0
  216. data/vendor/assets/javascripts/ace/theme-solarized_light-uncompressed-noconflict.js +159 -0
  217. data/vendor/assets/javascripts/ace/theme-solarized_light-uncompressed.js +159 -0
  218. data/vendor/assets/javascripts/ace/theme-solarized_light.js +1 -0
  219. data/vendor/assets/javascripts/ace/theme-textmate-noconflict.js +0 -0
  220. data/vendor/assets/javascripts/ace/theme-textmate-uncompressed-noconflict.js +0 -0
  221. data/vendor/assets/javascripts/ace/theme-textmate-uncompressed.js +0 -0
  222. data/vendor/assets/javascripts/ace/theme-textmate.js +0 -0
  223. data/vendor/assets/javascripts/ace/theme-tomorrow-noconflict.js +1 -0
  224. data/vendor/assets/javascripts/ace/theme-tomorrow-uncompressed-noconflict.js +189 -0
  225. data/vendor/assets/javascripts/ace/theme-tomorrow-uncompressed.js +189 -0
  226. data/vendor/assets/javascripts/ace/theme-tomorrow.js +1 -0
  227. data/vendor/assets/javascripts/ace/theme-tomorrow_night-noconflict.js +1 -0
  228. data/vendor/assets/javascripts/ace/theme-tomorrow_night-uncompressed-noconflict.js +189 -0
  229. data/vendor/assets/javascripts/ace/theme-tomorrow_night-uncompressed.js +189 -0
  230. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
  231. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-noconflict.js +1 -0
  232. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-uncompressed-noconflict.js +189 -0
  233. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-uncompressed.js +189 -0
  234. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -0
  235. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-noconflict.js +1 -0
  236. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-uncompressed-noconflict.js +189 -0
  237. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-uncompressed.js +189 -0
  238. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -0
  239. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-noconflict.js +1 -0
  240. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-uncompressed-noconflict.js +185 -0
  241. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-uncompressed.js +185 -0
  242. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -0
  243. data/vendor/assets/javascripts/ace/theme-twilight-noconflict.js +1 -0
  244. data/vendor/assets/javascripts/ace/theme-twilight-uncompressed-noconflict.js +183 -0
  245. data/vendor/assets/javascripts/ace/theme-twilight-uncompressed.js +183 -0
  246. data/vendor/assets/javascripts/ace/theme-twilight.js +1 -0
  247. data/vendor/assets/javascripts/ace/theme-vibrant_ink-noconflict.js +1 -0
  248. data/vendor/assets/javascripts/ace/theme-vibrant_ink-uncompressed-noconflict.js +166 -0
  249. data/vendor/assets/javascripts/ace/theme-vibrant_ink-uncompressed.js +166 -0
  250. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +1 -0
  251. data/vendor/assets/javascripts/ace/worker-coffee.js +7456 -0
  252. data/vendor/assets/javascripts/ace/worker-css.js +11693 -0
  253. data/vendor/assets/javascripts/ace/worker-javascript.js +10305 -0
  254. data/vendor/assets/javascripts/ace/worker-json.js +3062 -0
  255. metadata +310 -0
@@ -0,0 +1 @@
1
+ define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./json_highlight_rules").JsonHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./behaviour/cstyle").CstyleBehaviour,j=a("./folding/cstyle").FoldMode,k=a("../worker/worker_client").WorkerClient,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i,this.foldingRules=new j};d.inherits(l,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b);if(a=="start"){var e=b.match(/^.*[\{\(\[]\s*$/);e&&(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)},this.createWorker=function(a){var b=new k(["ace"],"worker-json.js","ace/mode/json_worker","JsonWorker");return b.attachToDocument(a.getDocument()),b.on("error",function(b){a.setAnnotations([b.data])}),b.on("ok",function(){a.clearAnnotations()}),b}}.call(l.prototype),b.Mode=l}),define("ace/mode/json_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:"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:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]}};d.inherits(f,e),b.JsonHighlightRules=f}),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}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return null;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;o<k.length;o++){m=k[o],m.type=="string"?n=-1:n<0&&(n=m.value.indexOf('"'));if(m.value.length+l>f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};((function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++b<k){h=a.getLine(b);var l=h.match(e)[0].length;if(l==h.length)continue;if(l<=j)break;g=b}if(g>f){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}})).call(e.prototype)})
@@ -0,0 +1 @@
1
+ ace.define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/latex_highlight_rules","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./latex_highlight_rules").LatexHighlightRules,h=a("../range").Range,i=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\%/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var i=new h(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);i.start.row=g,i.end.row=g,i.end.column=k[0].length,b.replace(i,k[1])}}else b.indentRows(c,d,"%")},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),ace.define("ace/mode/latex_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:"keyword",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"string",regex:"\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$"},{token:"comment",regex:"%.*$"}]}};d.inherits(f,e),b.LatexHighlightRules=f})
@@ -0,0 +1,95 @@
1
+ ace.define('ace/mode/latex', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/latex_highlight_rules', 'ace/range'], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ var oop = require("../lib/oop");
5
+ var TextMode = require("./text").Mode;
6
+ var Tokenizer = require("../tokenizer").Tokenizer;
7
+ var LatexHighlightRules = require("./latex_highlight_rules").LatexHighlightRules;
8
+ var Range = require("../range").Range;
9
+
10
+ var Mode = function()
11
+ {
12
+ this.$tokenizer = new Tokenizer(new LatexHighlightRules().getRules());
13
+ };
14
+ oop.inherits(Mode, TextMode);
15
+
16
+ (function() {
17
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
18
+ // This code is adapted from ruby.js
19
+ var outdent = true;
20
+
21
+ // LaTeX comments begin with % and go to the end of the line
22
+ var commentRegEx = /^(\s*)\%/;
23
+
24
+ for (var i = startRow; i <= endRow; i++) {
25
+ if (!commentRegEx.test(doc.getLine(i))) {
26
+ outdent = false;
27
+ break;
28
+ }
29
+ }
30
+
31
+ if (outdent) {
32
+ var deleteRange = new Range(0, 0, 0, 0);
33
+ for (var i = startRow; i <= endRow; i++) {
34
+ var line = doc.getLine(i);
35
+ var m = line.match(commentRegEx);
36
+ deleteRange.start.row = i;
37
+ deleteRange.end.row = i;
38
+ deleteRange.end.column = m[0].length;
39
+ doc.replace(deleteRange, m[1]);
40
+ }
41
+ }
42
+ else {
43
+ doc.indentRows(startRow, endRow, "%");
44
+ }
45
+ };
46
+
47
+ // There is no universally accepted way of indenting a tex document
48
+ // so just maintain the indentation of the previous line
49
+ this.getNextLineIndent = function(state, line, tab) {
50
+ return this.$getIndent(line);
51
+ };
52
+
53
+ }).call(Mode.prototype);
54
+
55
+ exports.Mode = Mode;
56
+
57
+ });
58
+ ace.define('ace/mode/latex_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
59
+ "use strict";
60
+
61
+ var oop = require("../lib/oop");
62
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
63
+
64
+ var LatexHighlightRules = function() {
65
+ this.$rules = {
66
+ "start" : [{
67
+ // A tex command e.g. \foo
68
+ token : "keyword",
69
+ regex : "\\\\(?:[^a-zA-Z]|[a-zA-Z]+)",
70
+ }, {
71
+ // Curly and square braces
72
+ token : "lparen",
73
+ regex : "[[({]"
74
+ }, {
75
+ // Curly and square braces
76
+ token : "rparen",
77
+ regex : "[\\])}]"
78
+ }, {
79
+ // Inline math between two $ symbols
80
+ token : "string",
81
+ regex : "\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$"
82
+ }, {
83
+ // A comment. Tex comments start with % and go to
84
+ // the end of the line
85
+ token : "comment",
86
+ regex : "%.*$"
87
+ }]
88
+ };
89
+ };
90
+
91
+ oop.inherits(LatexHighlightRules, TextHighlightRules);
92
+
93
+ exports.LatexHighlightRules = LatexHighlightRules;
94
+
95
+ });
@@ -0,0 +1,95 @@
1
+ define('ace/mode/latex', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/latex_highlight_rules', 'ace/range'], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ var oop = require("../lib/oop");
5
+ var TextMode = require("./text").Mode;
6
+ var Tokenizer = require("../tokenizer").Tokenizer;
7
+ var LatexHighlightRules = require("./latex_highlight_rules").LatexHighlightRules;
8
+ var Range = require("../range").Range;
9
+
10
+ var Mode = function()
11
+ {
12
+ this.$tokenizer = new Tokenizer(new LatexHighlightRules().getRules());
13
+ };
14
+ oop.inherits(Mode, TextMode);
15
+
16
+ (function() {
17
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
18
+ // This code is adapted from ruby.js
19
+ var outdent = true;
20
+
21
+ // LaTeX comments begin with % and go to the end of the line
22
+ var commentRegEx = /^(\s*)\%/;
23
+
24
+ for (var i = startRow; i <= endRow; i++) {
25
+ if (!commentRegEx.test(doc.getLine(i))) {
26
+ outdent = false;
27
+ break;
28
+ }
29
+ }
30
+
31
+ if (outdent) {
32
+ var deleteRange = new Range(0, 0, 0, 0);
33
+ for (var i = startRow; i <= endRow; i++) {
34
+ var line = doc.getLine(i);
35
+ var m = line.match(commentRegEx);
36
+ deleteRange.start.row = i;
37
+ deleteRange.end.row = i;
38
+ deleteRange.end.column = m[0].length;
39
+ doc.replace(deleteRange, m[1]);
40
+ }
41
+ }
42
+ else {
43
+ doc.indentRows(startRow, endRow, "%");
44
+ }
45
+ };
46
+
47
+ // There is no universally accepted way of indenting a tex document
48
+ // so just maintain the indentation of the previous line
49
+ this.getNextLineIndent = function(state, line, tab) {
50
+ return this.$getIndent(line);
51
+ };
52
+
53
+ }).call(Mode.prototype);
54
+
55
+ exports.Mode = Mode;
56
+
57
+ });
58
+ define('ace/mode/latex_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
59
+ "use strict";
60
+
61
+ var oop = require("../lib/oop");
62
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
63
+
64
+ var LatexHighlightRules = function() {
65
+ this.$rules = {
66
+ "start" : [{
67
+ // A tex command e.g. \foo
68
+ token : "keyword",
69
+ regex : "\\\\(?:[^a-zA-Z]|[a-zA-Z]+)",
70
+ }, {
71
+ // Curly and square braces
72
+ token : "lparen",
73
+ regex : "[[({]"
74
+ }, {
75
+ // Curly and square braces
76
+ token : "rparen",
77
+ regex : "[\\])}]"
78
+ }, {
79
+ // Inline math between two $ symbols
80
+ token : "string",
81
+ regex : "\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$"
82
+ }, {
83
+ // A comment. Tex comments start with % and go to
84
+ // the end of the line
85
+ token : "comment",
86
+ regex : "%.*$"
87
+ }]
88
+ };
89
+ };
90
+
91
+ oop.inherits(LatexHighlightRules, TextHighlightRules);
92
+
93
+ exports.LatexHighlightRules = LatexHighlightRules;
94
+
95
+ });
@@ -0,0 +1 @@
1
+ define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/latex_highlight_rules","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./latex_highlight_rules").LatexHighlightRules,h=a("../range").Range,i=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\%/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var i=new h(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);i.start.row=g,i.end.row=g,i.end.column=k[0].length,b.replace(i,k[1])}}else b.indentRows(c,d,"%")},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),define("ace/mode/latex_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:"keyword",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"string",regex:"\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$"},{token:"comment",regex:"%.*$"}]}};d.inherits(f,e),b.LatexHighlightRules=f})
@@ -0,0 +1 @@
1
+ ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lua_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./lua_highlight_rules").LuaHighlightRules,h=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(h,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=["function","then","do","repeat"];if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);if(h)d+=c;else for(var i in f){var j=f[i];if(j.type!="keyword")continue;var k=g.indexOf(j.value);if(k!=-1){d+=c;break}}}return d}}.call(h.prototype),b.Mode=h}),ace.define("ace/mode/lua_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("break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not".split("|")),b=e.arrayToMap("true|false|nil|_G|_VERSION".split("|")),c=e.arrayToMap("string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running".split("|")),d=e.arrayToMap("string|package|os|io|math|debug|table|coroutine".split("|")),f=e.arrayToMap("__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber".split("|")),g=e.arrayToMap("".split("|")),h=e.arrayToMap("setn|foreach|foreachi|gcinfo|log10|maxn".split("|")),i="",j="(?:(?:[1-9]\\d*)|(?:0))",k="(?:0[xX][\\dA-Fa-f]+)",l="(?:"+j+"|"+k+")",m="(?:\\.\\d+)",n="(?:\\d+)",o="(?:(?:"+n+"?"+m+")|(?:"+n+"\\.))",p="(?:"+o+")",q=[];this.$rules={start:[{token:"comment",regex:i+"\\-\\-\\[\\[.*\\]\\]"},{token:"comment",regex:i+"\\-\\-\\[\\=\\[.*\\]\\=\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={2}\\[.*\\]\\={2}\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={3}\\[.*\\]\\={3}\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={4}\\[.*\\]\\={4}\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]"},{token:"comment",regex:i+"\\-\\-\\[\\[.*$",merge:!0,next:"qcomment"},{token:"comment",regex:i+"\\-\\-\\[\\=\\[.*$",merge:!0,next:"qcomment1"},{token:"comment",regex:i+"\\-\\-\\[\\={2}\\[.*$",merge:!0,next:"qcomment2"},{token:"comment",regex:i+"\\-\\-\\[\\={3}\\[.*$",merge:!0,next:"qcomment3"},{token:"comment",regex:i+"\\-\\-\\[\\={4}\\[.*$",merge:!0,next:"qcomment4"},{token:function(a){var b=/\-\-\[(\=+)\[/,c;return(c=b.exec(a))!=null&&(c=c[1])!=undefined&&q.push(c.length),"comment"},regex:i+"\\-\\-\\[\\={5}\\=*\\[.*$",merge:!0,next:"qcomment5"},{token:"comment",regex:"\\-\\-.*$"},{token:"string",regex:i+"\\[\\[.*\\]\\]"},{token:"string",regex:i+"\\[\\=\\[.*\\]\\=\\]"},{token:"string",regex:i+"\\[\\={2}\\[.*\\]\\={2}\\]"},{token:"string",regex:i+"\\[\\={3}\\[.*\\]\\={3}\\]"},{token:"string",regex:i+"\\[\\={4}\\[.*\\]\\={4}\\]"},{token:"string",regex:i+"\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]"},{token:"string",regex:i+"\\[\\[.*$",merge:!0,next:"qstring"},{token:"string",regex:i+"\\[\\=\\[.*$",merge:!0,next:"qstring1"},{token:"string",regex:i+"\\[\\={2}\\[.*$",merge:!0,next:"qstring2"},{token:"string",regex:i+"\\[\\={3}\\[.*$",merge:!0,next:"qstring3"},{token:"string",regex:i+"\\[\\={4}\\[.*$",merge:!0,next:"qstring4"},{token:function(a){var b=/\[(\=+)\[/,c;return(c=b.exec(a))!=null&&(c=c[1])!=undefined&&q.push(c.length),"string"},regex:i+"\\[\\={5}\\=*\\[.*$",merge:!0,next:"qstring5"},{token:"string",regex:i+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:i+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:p},{token:"constant.numeric",regex:l+"\\b"},{token:function(e){return a.hasOwnProperty(e)?"keyword":b.hasOwnProperty(e)?"constant.language":g.hasOwnProperty(e)?"invalid.illegal":d.hasOwnProperty(e)?"constant.library":h.hasOwnProperty(e)?"invalid.deprecated":c.hasOwnProperty(e)?"support.function":f.hasOwnProperty(e)?"support.function":"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+"}],qcomment:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment1:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment2:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment3:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment4:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment5:[{token:function(a){var b=/\](\=+)\]/,c=this.rules.qcomment5[0],d;c.next="start";if((d=b.exec(a))!=null&&(d=d[1])!=undefined){var e=d.length,f;(f=q.pop())!=e&&(q.push(f),c.next="qcomment5")}return"comment"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring1:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring2:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring3:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring4:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring5:[{token:function(a){var b=/\](\=+)\]/,c=this.rules.qstring5[0],d;c.next="start";if((d=b.exec(a))!=null&&(d=d[1])!=undefined){var e=d.length,f;(f=q.pop())!=e&&(q.push(f),c.next="qstring5")}return"string"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.LuaHighlightRules=g})
@@ -0,0 +1,523 @@
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
+ * Colin Gourlay <colin DOT j DOT gourlay AT gmail DOT com>
24
+ * Lee Gao
25
+ *
26
+ * Alternatively, the contents of this file may be used under the terms of
27
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
28
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29
+ * in which case the provisions of the GPL or the LGPL are applicable instead
30
+ * of those above. If you wish to allow use of your version of this file only
31
+ * under the terms of either the GPL or the LGPL, and not to allow others to
32
+ * use your version of this file under the terms of the MPL, indicate your
33
+ * decision by deleting the provisions above and replace them with the notice
34
+ * and other provisions required by the GPL or the LGPL. If you do not delete
35
+ * the provisions above, a recipient may use your version of this file under
36
+ * the terms of any one of the MPL, the GPL or the LGPL.
37
+ *
38
+ * ***** END LICENSE BLOCK ***** */
39
+
40
+ ace.define('ace/mode/lua', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/lua_highlight_rules'], function(require, exports, module) {
41
+ "use strict";
42
+
43
+ var oop = require("../lib/oop");
44
+ var TextMode = require("./text").Mode;
45
+ var Tokenizer = require("../tokenizer").Tokenizer;
46
+ var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
47
+
48
+ var Mode = function() {
49
+ this.$tokenizer = new Tokenizer(new LuaHighlightRules().getRules());
50
+ };
51
+ oop.inherits(Mode, TextMode);
52
+
53
+ (function() {
54
+ this.getNextLineIndent = function(state, line, tab) {
55
+ var indent = this.$getIndent(line);
56
+
57
+ var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
58
+ var tokens = tokenizedLine.tokens;
59
+
60
+ var chunks = ["function", "then", "do", "repeat"];
61
+
62
+ if (state == "start") {
63
+ var match = line.match(/^.*[\{\(\[]\s*$/);
64
+ if (match) {
65
+ indent += tab;
66
+ } else {
67
+ for (var i in tokens){
68
+ var token = tokens[i];
69
+ if (token.type != "keyword") continue;
70
+ var chunk_i = chunks.indexOf(token.value);
71
+ if (chunk_i != -1){
72
+ indent += tab;
73
+ break;
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ return indent;
80
+ };
81
+
82
+ }).call(Mode.prototype);
83
+
84
+ exports.Mode = Mode;
85
+ });
86
+
87
+
88
+ /* ***** BEGIN LICENSE BLOCK *****
89
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
90
+ *
91
+ * The contents of this file are subject to the Mozilla Public License Version
92
+ * 1.1 (the "License"); you may not use this file except in compliance with
93
+ * the License. You may obtain a copy of the License at
94
+ * http://www.mozilla.org/MPL/
95
+ *
96
+ * Software distributed under the License is distributed on an "AS IS" basis,
97
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
98
+ * for the specific language governing rights and limitations under the
99
+ * License.
100
+ *
101
+ * The Original Code is Ajax.org Code Editor (ACE).
102
+ *
103
+ * The Initial Developer of the Original Code is
104
+ * Ajax.org B.V.
105
+ * Portions created by the Initial Developer are Copyright (C) 2010
106
+ * the Initial Developer. All Rights Reserved.
107
+ *
108
+ * Contributor(s):
109
+ * Fabian Jakobs <fabian AT ajax DOT org>
110
+ * Colin Gourlay <colin DOT j DOT gourlay AT gmail DOT com>
111
+ * Lee Gao
112
+ *
113
+ * Alternatively, the contents of this file may be used under the terms of
114
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
115
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
116
+ * in which case the provisions of the GPL or the LGPL are applicable instead
117
+ * of those above. If you wish to allow use of your version of this file only
118
+ * under the terms of either the GPL or the LGPL, and not to allow others to
119
+ * use your version of this file under the terms of the MPL, indicate your
120
+ * decision by deleting the provisions above and replace them with the notice
121
+ * and other provisions required by the GPL or the LGPL. If you do not delete
122
+ * the provisions above, a recipient may use your version of this file under
123
+ * the terms of any one of the MPL, the GPL or the LGPL.
124
+ *
125
+ * ***** END LICENSE BLOCK ***** */
126
+
127
+ ace.define('ace/mode/lua_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
128
+ "use strict";
129
+
130
+ var oop = require("../lib/oop");
131
+ var lang = require("../lib/lang");
132
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
133
+
134
+ var LuaHighlightRules = function() {
135
+
136
+ var keywords = lang.arrayToMap(
137
+ ("break|do|else|elseif|end|for|function|if|in|local|repeat|"+
138
+ "return|then|until|while|or|and|not").split("|")
139
+ );
140
+
141
+ var builtinConstants = lang.arrayToMap(
142
+ ("true|false|nil|_G|_VERSION").split("|")
143
+ );
144
+
145
+ var builtinFunctions = lang.arrayToMap(
146
+ ("string|xpcall|package|tostring|print|os|unpack|require|"+
147
+ "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+
148
+ "collectgarbage|getmetatable|module|rawset|math|debug|"+
149
+ "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+
150
+ "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+
151
+ "load|error|loadfile|"+
152
+
153
+ "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+
154
+ "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+
155
+ "loaders|cpath|config|path|seeall|exit|setlocale|date|"+
156
+ "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+
157
+ "lines|write|close|flush|open|output|type|read|stderr|"+
158
+ "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+
159
+ "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+
160
+ "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+
161
+ "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+
162
+ "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+
163
+ "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+
164
+ "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+
165
+ "status|wrap|create|running").split("|")
166
+ );
167
+
168
+ var stdLibaries = lang.arrayToMap(
169
+ ("string|package|os|io|math|debug|table|coroutine").split("|")
170
+ );
171
+
172
+ var metatableMethods = lang.arrayToMap(
173
+ ("__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+
174
+ "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber").split("|")
175
+ );
176
+
177
+ var futureReserved = lang.arrayToMap(
178
+ ("").split("|")
179
+ );
180
+
181
+ var deprecatedIn5152 = lang.arrayToMap(
182
+ ("setn|foreach|foreachi|gcinfo|log10|maxn").split("|")
183
+ );
184
+
185
+ var strPre = "";
186
+
187
+ var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
188
+ var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
189
+ var integer = "(?:" + decimalInteger + "|" + hexInteger + ")";
190
+
191
+ var fraction = "(?:\\.\\d+)";
192
+ var intPart = "(?:\\d+)";
193
+ var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
194
+ var floatNumber = "(?:" + pointFloat + ")";
195
+
196
+ var comment_stack = [];
197
+
198
+ this.$rules = {
199
+ "start" :
200
+
201
+
202
+ // bracketed comments
203
+ [{
204
+ token : "comment", // --[[ comment
205
+ regex : strPre + '\\-\\-\\[\\[.*\\]\\]'
206
+ }, {
207
+ token : "comment", // --[=[ comment
208
+ regex : strPre + '\\-\\-\\[\\=\\[.*\\]\\=\\]'
209
+ }, {
210
+ token : "comment", // --[==[ comment
211
+ regex : strPre + '\\-\\-\\[\\={2}\\[.*\\]\\={2}\\]'
212
+ }, {
213
+ token : "comment", // --[===[ comment
214
+ regex : strPre + '\\-\\-\\[\\={3}\\[.*\\]\\={3}\\]'
215
+ }, {
216
+ token : "comment", // --[====[ comment
217
+ regex : strPre + '\\-\\-\\[\\={4}\\[.*\\]\\={4}\\]'
218
+ }, {
219
+ token : "comment", // --[====+[ comment
220
+ regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]'
221
+ },
222
+
223
+ // multiline bracketed comments
224
+ {
225
+ token : "comment", // --[[ comment
226
+ regex : strPre + '\\-\\-\\[\\[.*$',
227
+ merge : true,
228
+ next : "qcomment"
229
+ }, {
230
+ token : "comment", // --[=[ comment
231
+ regex : strPre + '\\-\\-\\[\\=\\[.*$',
232
+ merge : true,
233
+ next : "qcomment1"
234
+ }, {
235
+ token : "comment", // --[==[ comment
236
+ regex : strPre + '\\-\\-\\[\\={2}\\[.*$',
237
+ merge : true,
238
+ next : "qcomment2"
239
+ }, {
240
+ token : "comment", // --[===[ comment
241
+ regex : strPre + '\\-\\-\\[\\={3}\\[.*$',
242
+ merge : true,
243
+ next : "qcomment3"
244
+ }, {
245
+ token : "comment", // --[====[ comment
246
+ regex : strPre + '\\-\\-\\[\\={4}\\[.*$',
247
+ merge : true,
248
+ next : "qcomment4"
249
+ }, {
250
+ token : function(value){ // --[====+[ comment
251
+ // WARNING: EXTREMELY SLOW, but this is the only way to circumvent the
252
+ // limits imposed by the current automaton.
253
+ // I've never personally seen any practical code where 5 or more '='s are
254
+ // used for string or commenting, so this will rarely be invoked.
255
+ var pattern = /\-\-\[(\=+)\[/, match;
256
+ // you can never be too paranoid ;)
257
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined)
258
+ comment_stack.push(match.length);
259
+
260
+ return "comment";
261
+ },
262
+ regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*$',
263
+ merge : true,
264
+ next : "qcomment5"
265
+ },
266
+
267
+ // single line comments
268
+ {
269
+ token : "comment",
270
+ regex : "\\-\\-.*$"
271
+ },
272
+
273
+ // bracketed strings
274
+ {
275
+ token : "string", // [[ string
276
+ regex : strPre + '\\[\\[.*\\]\\]'
277
+ }, {
278
+ token : "string", // [=[ string
279
+ regex : strPre + '\\[\\=\\[.*\\]\\=\\]'
280
+ }, {
281
+ token : "string", // [==[ string
282
+ regex : strPre + '\\[\\={2}\\[.*\\]\\={2}\\]'
283
+ }, {
284
+ token : "string", // [===[ string
285
+ regex : strPre + '\\[\\={3}\\[.*\\]\\={3}\\]'
286
+ }, {
287
+ token : "string", // [====[ string
288
+ regex : strPre + '\\[\\={4}\\[.*\\]\\={4}\\]'
289
+ }, {
290
+ token : "string", // [====+[ string
291
+ regex : strPre + '\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]'
292
+ },
293
+
294
+ // multiline bracketed strings
295
+ {
296
+ token : "string", // [[ string
297
+ regex : strPre + '\\[\\[.*$',
298
+ merge : true,
299
+ next : "qstring"
300
+ }, {
301
+ token : "string", // [=[ string
302
+ regex : strPre + '\\[\\=\\[.*$',
303
+ merge : true,
304
+ next : "qstring1"
305
+ }, {
306
+ token : "string", // [==[ string
307
+ regex : strPre + '\\[\\={2}\\[.*$',
308
+ merge : true,
309
+ next : "qstring2"
310
+ }, {
311
+ token : "string", // [===[ string
312
+ regex : strPre + '\\[\\={3}\\[.*$',
313
+ merge : true,
314
+ next : "qstring3"
315
+ }, {
316
+ token : "string", // [====[ string
317
+ regex : strPre + '\\[\\={4}\\[.*$',
318
+ merge : true,
319
+ next : "qstring4"
320
+ }, {
321
+ token : function(value){ // --[====+[ string
322
+ // WARNING: EXTREMELY SLOW, see above.
323
+ var pattern = /\[(\=+)\[/, match;
324
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined)
325
+ comment_stack.push(match.length);
326
+
327
+ return "string";
328
+ },
329
+ regex : strPre + '\\[\\={5}\\=*\\[.*$',
330
+ merge : true,
331
+ next : "qstring5"
332
+ },
333
+
334
+ {
335
+ token : "string", // " string
336
+ regex : strPre + '"(?:[^\\\\]|\\\\.)*?"'
337
+ }, {
338
+ token : "string", // ' string
339
+ regex : strPre + "'(?:[^\\\\]|\\\\.)*?'"
340
+ }, {
341
+ token : "constant.numeric", // float
342
+ regex : floatNumber
343
+ }, {
344
+ token : "constant.numeric", // integer
345
+ regex : integer + "\\b"
346
+ }, {
347
+ token : function(value) {
348
+ if (keywords.hasOwnProperty(value))
349
+ return "keyword";
350
+ else if (builtinConstants.hasOwnProperty(value))
351
+ return "constant.language";
352
+ else if (futureReserved.hasOwnProperty(value))
353
+ return "invalid.illegal";
354
+ else if (stdLibaries.hasOwnProperty(value))
355
+ return "constant.library";
356
+ else if (deprecatedIn5152.hasOwnProperty(value))
357
+ return "invalid.deprecated";
358
+ else if (builtinFunctions.hasOwnProperty(value))
359
+ return "support.function";
360
+ else if (metatableMethods.hasOwnProperty(value))
361
+ return "support.function";
362
+ else
363
+ return "identifier";
364
+ },
365
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
366
+ }, {
367
+ token : "keyword.operator",
368
+ regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."
369
+ }, {
370
+ token : "paren.lparen",
371
+ regex : "[\\[\\(\\{]"
372
+ }, {
373
+ token : "paren.rparen",
374
+ regex : "[\\]\\)\\}]"
375
+ }, {
376
+ token : "text",
377
+ regex : "\\s+"
378
+ } ],
379
+
380
+ "qcomment": [ {
381
+ token : "comment",
382
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\]",
383
+ next : "start"
384
+ }, {
385
+ token : "comment",
386
+ merge : true,
387
+ regex : '.+'
388
+ } ],
389
+ "qcomment1": [ {
390
+ token : "comment",
391
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]",
392
+ next : "start"
393
+ }, {
394
+ token : "comment",
395
+ merge : true,
396
+ regex : '.+'
397
+ } ],
398
+ "qcomment2": [ {
399
+ token : "comment",
400
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",
401
+ next : "start"
402
+ }, {
403
+ token : "comment",
404
+ merge : true,
405
+ regex : '.+'
406
+ } ],
407
+ "qcomment3": [ {
408
+ token : "comment",
409
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",
410
+ next : "start"
411
+ }, {
412
+ token : "comment",
413
+ merge : true,
414
+ regex : '.+'
415
+ } ],
416
+ "qcomment4": [ {
417
+ token : "comment",
418
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",
419
+ next : "start"
420
+ }, {
421
+ token : "comment",
422
+ merge : true,
423
+ regex : '.+'
424
+ } ],
425
+ "qcomment5": [ {
426
+ token : function(value){
427
+ // very hackish, mutates the qcomment5 field on the fly.
428
+ var pattern = /\](\=+)\]/, rule = this.rules.qcomment5[0], match;
429
+ rule.next = "start";
430
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){
431
+ var found = match.length, expected;
432
+ if ((expected = comment_stack.pop()) != found){
433
+ comment_stack.push(expected);
434
+ rule.next = "qcomment5";
435
+ }
436
+ }
437
+
438
+ return "comment";
439
+ },
440
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",
441
+ next : "start"
442
+ }, {
443
+ token : "comment",
444
+ merge : true,
445
+ regex : '.+'
446
+ } ],
447
+
448
+ "qstring": [ {
449
+ token : "string",
450
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\]",
451
+ next : "start"
452
+ }, {
453
+ token : "string",
454
+ merge : true,
455
+ regex : '.+'
456
+ } ],
457
+ "qstring1": [ {
458
+ token : "string",
459
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]",
460
+ next : "start"
461
+ }, {
462
+ token : "string",
463
+ merge : true,
464
+ regex : '.+'
465
+ } ],
466
+ "qstring2": [ {
467
+ token : "string",
468
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",
469
+ next : "start"
470
+ }, {
471
+ token : "string",
472
+ merge : true,
473
+ regex : '.+'
474
+ } ],
475
+ "qstring3": [ {
476
+ token : "string",
477
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",
478
+ next : "start"
479
+ }, {
480
+ token : "string",
481
+ merge : true,
482
+ regex : '.+'
483
+ } ],
484
+ "qstring4": [ {
485
+ token : "string",
486
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",
487
+ next : "start"
488
+ }, {
489
+ token : "string",
490
+ merge : true,
491
+ regex : '.+'
492
+ } ],
493
+ "qstring5": [ {
494
+ token : function(value){
495
+ // very hackish, mutates the qstring5 field on the fly.
496
+ var pattern = /\](\=+)\]/, rule = this.rules.qstring5[0], match;
497
+ rule.next = "start";
498
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){
499
+ var found = match.length, expected;
500
+ if ((expected = comment_stack.pop()) != found){
501
+ comment_stack.push(expected);
502
+ rule.next = "qstring5";
503
+ }
504
+ }
505
+
506
+ return "string";
507
+ },
508
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",
509
+ next : "start"
510
+ }, {
511
+ token : "string",
512
+ merge : true,
513
+ regex : '.+'
514
+ } ]
515
+
516
+ };
517
+
518
+ }
519
+
520
+ oop.inherits(LuaHighlightRules, TextHighlightRules);
521
+
522
+ exports.LuaHighlightRules = LuaHighlightRules;
523
+ });