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,551 @@
1
- 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}),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})
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
+ * Tim Starling
26
+ *
27
+ * Alternatively, the contents of this file may be used under the terms of
28
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
29
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30
+ * in which case the provisions of the GPL or the LGPL are applicable instead
31
+ * of those above. If you wish to allow use of your version of this file only
32
+ * under the terms of either the GPL or the LGPL, and not to allow others to
33
+ * use your version of this file under the terms of the MPL, indicate your
34
+ * decision by deleting the provisions above and replace them with the notice
35
+ * and other provisions required by the GPL or the LGPL. If you do not delete
36
+ * the provisions above, a recipient may use your version of this file under
37
+ * the terms of any one of the MPL, the GPL or the LGPL.
38
+ *
39
+ * ***** END LICENSE BLOCK ***** */
40
+
41
+ define('ace/mode/lua', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/lua_highlight_rules', 'ace/range'], function(require, exports, module) {
42
+
43
+
44
+ var oop = require("../lib/oop");
45
+ var TextMode = require("./text").Mode;
46
+ var Tokenizer = require("../tokenizer").Tokenizer;
47
+ var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
48
+ var Range = require("../range").Range;
49
+
50
+ var Mode = function() {
51
+ this.$tokenizer = new Tokenizer(new LuaHighlightRules().getRules());
52
+ };
53
+ oop.inherits(Mode, TextMode);
54
+
55
+ (function() {
56
+ var indentKeywords = {
57
+ "function": 1,
58
+ "then": 1,
59
+ "do": 1,
60
+ "else": 1,
61
+ "elseif": 1,
62
+ "repeat": 1,
63
+ "end": -1,
64
+ "until": -1,
65
+ };
66
+ var outdentKeywords = [
67
+ "else",
68
+ "elseif",
69
+ "end",
70
+ "until"
71
+ ];
72
+
73
+ function getNetIndentLevel(tokens) {
74
+ var level = 0;
75
+ // Support single-line blocks by decrementing the indent level if
76
+ // an ending token is found
77
+ for (var i in tokens){
78
+ var token = tokens[i];
79
+ if (token.type == "keyword") {
80
+ if (token.value in indentKeywords) {
81
+ level += indentKeywords[token.value];
82
+ }
83
+ } else if (token.type == "paren.lparen") {
84
+ level ++;
85
+ } else if (token.type == "paren.rparen") {
86
+ level --;
87
+ }
88
+ }
89
+ // Limit the level to +/- 1 since usually users only indent one level
90
+ // at a time regardless of the logical nesting level
91
+ if (level < 0) {
92
+ return -1;
93
+ } else if (level > 0) {
94
+ return 1;
95
+ } else {
96
+ return 0;
97
+ }
98
+ }
99
+
100
+ this.getNextLineIndent = function(state, line, tab) {
101
+ var indent = this.$getIndent(line);
102
+ var level = 0;
103
+
104
+ var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
105
+ var tokens = tokenizedLine.tokens;
106
+
107
+ if (state == "start") {
108
+ level = getNetIndentLevel(tokens);
109
+ }
110
+ if (level > 0) {
111
+ return indent + tab;
112
+ } else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {
113
+ // Don't do a next-line outdent if we're going to do a real outdent of this line
114
+ if (!this.checkOutdent(state, line, "\n")) {
115
+ return indent.substr(0, indent.length - tab.length);
116
+ }
117
+ }
118
+ return indent;
119
+ };
120
+
121
+ this.checkOutdent = function(state, line, input) {
122
+ if (input != "\n" && input != "\r" && input != "\r\n")
123
+ return false;
124
+
125
+ if (line.match(/^\s*[\)\}\]]$/))
126
+ return true;
127
+
128
+ var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
129
+
130
+ if (!tokens || !tokens.length)
131
+ return false;
132
+
133
+ return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1);
134
+ };
135
+
136
+ this.autoOutdent = function(state, session, row) {
137
+ var prevLine = session.getLine(row - 1);
138
+ var prevIndent = this.$getIndent(prevLine).length;
139
+ var prevTokens = this.$tokenizer.getLineTokens(prevLine, "start").tokens;
140
+ var tabLength = session.getTabString().length;
141
+ var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
142
+ var curIndent = this.$getIndent(session.getLine(row)).length;
143
+ if (curIndent < expectedIndent) {
144
+ // User already outdented //
145
+ return;
146
+ }
147
+ session.outdentRows(new Range(row, 0, row + 2, 0));
148
+ };
149
+
150
+ }).call(Mode.prototype);
151
+
152
+ exports.Mode = Mode;
153
+ });
154
+
155
+ define('ace/mode/lua_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
156
+
157
+
158
+ var oop = require("../lib/oop");
159
+ var lang = require("../lib/lang");
160
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
161
+
162
+ var LuaHighlightRules = function() {
163
+
164
+ var keywords = lang.arrayToMap(
165
+ ("break|do|else|elseif|end|for|function|if|in|local|repeat|"+
166
+ "return|then|until|while|or|and|not").split("|")
167
+ );
168
+
169
+ var builtinConstants = lang.arrayToMap(
170
+ ("true|false|nil|_G|_VERSION").split("|")
171
+ );
172
+
173
+ var builtinFunctions = lang.arrayToMap(
174
+ ("string|xpcall|package|tostring|print|os|unpack|require|"+
175
+ "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+
176
+ "collectgarbage|getmetatable|module|rawset|math|debug|"+
177
+ "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+
178
+ "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+
179
+ "load|error|loadfile|"+
180
+
181
+ "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+
182
+ "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+
183
+ "loaders|cpath|config|path|seeall|exit|setlocale|date|"+
184
+ "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+
185
+ "lines|write|close|flush|open|output|type|read|stderr|"+
186
+ "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+
187
+ "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+
188
+ "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+
189
+ "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+
190
+ "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+
191
+ "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+
192
+ "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+
193
+ "status|wrap|create|running").split("|")
194
+ );
195
+
196
+ var stdLibaries = lang.arrayToMap(
197
+ ("string|package|os|io|math|debug|table|coroutine").split("|")
198
+ );
199
+
200
+ var metatableMethods = lang.arrayToMap(
201
+ ("__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+
202
+ "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber").split("|")
203
+ );
204
+
205
+ var futureReserved = lang.arrayToMap(
206
+ ("").split("|")
207
+ );
208
+
209
+ var deprecatedIn5152 = lang.arrayToMap(
210
+ ("setn|foreach|foreachi|gcinfo|log10|maxn").split("|")
211
+ );
212
+
213
+ var strPre = "";
214
+
215
+ var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
216
+ var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
217
+ var integer = "(?:" + decimalInteger + "|" + hexInteger + ")";
218
+
219
+ var fraction = "(?:\\.\\d+)";
220
+ var intPart = "(?:\\d+)";
221
+ var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
222
+ var floatNumber = "(?:" + pointFloat + ")";
223
+
224
+ var comment_stack = [];
225
+
226
+ this.$rules = {
227
+ "start" :
228
+
229
+
230
+ // bracketed comments
231
+ [{
232
+ token : "comment", // --[[ comment
233
+ regex : strPre + '\\-\\-\\[\\[.*\\]\\]'
234
+ }, {
235
+ token : "comment", // --[=[ comment
236
+ regex : strPre + '\\-\\-\\[\\=\\[.*\\]\\=\\]'
237
+ }, {
238
+ token : "comment", // --[==[ comment
239
+ regex : strPre + '\\-\\-\\[\\={2}\\[.*\\]\\={2}\\]'
240
+ }, {
241
+ token : "comment", // --[===[ comment
242
+ regex : strPre + '\\-\\-\\[\\={3}\\[.*\\]\\={3}\\]'
243
+ }, {
244
+ token : "comment", // --[====[ comment
245
+ regex : strPre + '\\-\\-\\[\\={4}\\[.*\\]\\={4}\\]'
246
+ }, {
247
+ token : "comment", // --[====+[ comment
248
+ regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]'
249
+ },
250
+
251
+ // multiline bracketed comments
252
+ {
253
+ token : "comment", // --[[ comment
254
+ regex : strPre + '\\-\\-\\[\\[.*$',
255
+ merge : true,
256
+ next : "qcomment"
257
+ }, {
258
+ token : "comment", // --[=[ comment
259
+ regex : strPre + '\\-\\-\\[\\=\\[.*$',
260
+ merge : true,
261
+ next : "qcomment1"
262
+ }, {
263
+ token : "comment", // --[==[ comment
264
+ regex : strPre + '\\-\\-\\[\\={2}\\[.*$',
265
+ merge : true,
266
+ next : "qcomment2"
267
+ }, {
268
+ token : "comment", // --[===[ comment
269
+ regex : strPre + '\\-\\-\\[\\={3}\\[.*$',
270
+ merge : true,
271
+ next : "qcomment3"
272
+ }, {
273
+ token : "comment", // --[====[ comment
274
+ regex : strPre + '\\-\\-\\[\\={4}\\[.*$',
275
+ merge : true,
276
+ next : "qcomment4"
277
+ }, {
278
+ token : function(value){ // --[====+[ comment
279
+ // WARNING: EXTREMELY SLOW, but this is the only way to circumvent the
280
+ // limits imposed by the current automaton.
281
+ // I've never personally seen any practical code where 5 or more '='s are
282
+ // used for string or commenting, so this will rarely be invoked.
283
+ var pattern = /\-\-\[(\=+)\[/, match;
284
+ // you can never be too paranoid ;)
285
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined)
286
+ comment_stack.push(match.length);
287
+
288
+ return "comment";
289
+ },
290
+ regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*$',
291
+ merge : true,
292
+ next : "qcomment5"
293
+ },
294
+
295
+ // single line comments
296
+ {
297
+ token : "comment",
298
+ regex : "\\-\\-.*$"
299
+ },
300
+
301
+ // bracketed strings
302
+ {
303
+ token : "string", // [[ string
304
+ regex : strPre + '\\[\\[.*\\]\\]'
305
+ }, {
306
+ token : "string", // [=[ string
307
+ regex : strPre + '\\[\\=\\[.*\\]\\=\\]'
308
+ }, {
309
+ token : "string", // [==[ string
310
+ regex : strPre + '\\[\\={2}\\[.*\\]\\={2}\\]'
311
+ }, {
312
+ token : "string", // [===[ string
313
+ regex : strPre + '\\[\\={3}\\[.*\\]\\={3}\\]'
314
+ }, {
315
+ token : "string", // [====[ string
316
+ regex : strPre + '\\[\\={4}\\[.*\\]\\={4}\\]'
317
+ }, {
318
+ token : "string", // [====+[ string
319
+ regex : strPre + '\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]'
320
+ },
321
+
322
+ // multiline bracketed strings
323
+ {
324
+ token : "string", // [[ string
325
+ regex : strPre + '\\[\\[.*$',
326
+ merge : true,
327
+ next : "qstring"
328
+ }, {
329
+ token : "string", // [=[ string
330
+ regex : strPre + '\\[\\=\\[.*$',
331
+ merge : true,
332
+ next : "qstring1"
333
+ }, {
334
+ token : "string", // [==[ string
335
+ regex : strPre + '\\[\\={2}\\[.*$',
336
+ merge : true,
337
+ next : "qstring2"
338
+ }, {
339
+ token : "string", // [===[ string
340
+ regex : strPre + '\\[\\={3}\\[.*$',
341
+ merge : true,
342
+ next : "qstring3"
343
+ }, {
344
+ token : "string", // [====[ string
345
+ regex : strPre + '\\[\\={4}\\[.*$',
346
+ merge : true,
347
+ next : "qstring4"
348
+ }, {
349
+ token : function(value){ // --[====+[ string
350
+ // WARNING: EXTREMELY SLOW, see above.
351
+ var pattern = /\[(\=+)\[/, match;
352
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined)
353
+ comment_stack.push(match.length);
354
+
355
+ return "string";
356
+ },
357
+ regex : strPre + '\\[\\={5}\\=*\\[.*$',
358
+ merge : true,
359
+ next : "qstring5"
360
+ },
361
+
362
+ {
363
+ token : "string", // " string
364
+ regex : strPre + '"(?:[^\\\\]|\\\\.)*?"'
365
+ }, {
366
+ token : "string", // ' string
367
+ regex : strPre + "'(?:[^\\\\]|\\\\.)*?'"
368
+ }, {
369
+ token : "constant.numeric", // float
370
+ regex : floatNumber
371
+ }, {
372
+ token : "constant.numeric", // integer
373
+ regex : integer + "\\b"
374
+ }, {
375
+ token : function(value) {
376
+ if (keywords.hasOwnProperty(value))
377
+ return "keyword";
378
+ else if (builtinConstants.hasOwnProperty(value))
379
+ return "constant.language";
380
+ else if (futureReserved.hasOwnProperty(value))
381
+ return "invalid.illegal";
382
+ else if (stdLibaries.hasOwnProperty(value))
383
+ return "constant.library";
384
+ else if (deprecatedIn5152.hasOwnProperty(value))
385
+ return "invalid.deprecated";
386
+ else if (builtinFunctions.hasOwnProperty(value))
387
+ return "support.function";
388
+ else if (metatableMethods.hasOwnProperty(value))
389
+ return "support.function";
390
+ else
391
+ return "identifier";
392
+ },
393
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
394
+ }, {
395
+ token : "keyword.operator",
396
+ regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."
397
+ }, {
398
+ token : "paren.lparen",
399
+ regex : "[\\[\\(\\{]"
400
+ }, {
401
+ token : "paren.rparen",
402
+ regex : "[\\]\\)\\}]"
403
+ }, {
404
+ token : "text",
405
+ regex : "\\s+"
406
+ } ],
407
+
408
+ "qcomment": [ {
409
+ token : "comment",
410
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\]",
411
+ next : "start"
412
+ }, {
413
+ token : "comment",
414
+ merge : true,
415
+ regex : '.+'
416
+ } ],
417
+ "qcomment1": [ {
418
+ token : "comment",
419
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]",
420
+ next : "start"
421
+ }, {
422
+ token : "comment",
423
+ merge : true,
424
+ regex : '.+'
425
+ } ],
426
+ "qcomment2": [ {
427
+ token : "comment",
428
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",
429
+ next : "start"
430
+ }, {
431
+ token : "comment",
432
+ merge : true,
433
+ regex : '.+'
434
+ } ],
435
+ "qcomment3": [ {
436
+ token : "comment",
437
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",
438
+ next : "start"
439
+ }, {
440
+ token : "comment",
441
+ merge : true,
442
+ regex : '.+'
443
+ } ],
444
+ "qcomment4": [ {
445
+ token : "comment",
446
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",
447
+ next : "start"
448
+ }, {
449
+ token : "comment",
450
+ merge : true,
451
+ regex : '.+'
452
+ } ],
453
+ "qcomment5": [ {
454
+ token : function(value){
455
+ // very hackish, mutates the qcomment5 field on the fly.
456
+ var pattern = /\](\=+)\]/, rule = this.rules.qcomment5[0], match;
457
+ rule.next = "start";
458
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){
459
+ var found = match.length, expected;
460
+ if ((expected = comment_stack.pop()) != found){
461
+ comment_stack.push(expected);
462
+ rule.next = "qcomment5";
463
+ }
464
+ }
465
+
466
+ return "comment";
467
+ },
468
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",
469
+ next : "start"
470
+ }, {
471
+ token : "comment",
472
+ merge : true,
473
+ regex : '.+'
474
+ } ],
475
+
476
+ "qstring": [ {
477
+ token : "string",
478
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\]",
479
+ next : "start"
480
+ }, {
481
+ token : "string",
482
+ merge : true,
483
+ regex : '.+'
484
+ } ],
485
+ "qstring1": [ {
486
+ token : "string",
487
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]",
488
+ next : "start"
489
+ }, {
490
+ token : "string",
491
+ merge : true,
492
+ regex : '.+'
493
+ } ],
494
+ "qstring2": [ {
495
+ token : "string",
496
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",
497
+ next : "start"
498
+ }, {
499
+ token : "string",
500
+ merge : true,
501
+ regex : '.+'
502
+ } ],
503
+ "qstring3": [ {
504
+ token : "string",
505
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",
506
+ next : "start"
507
+ }, {
508
+ token : "string",
509
+ merge : true,
510
+ regex : '.+'
511
+ } ],
512
+ "qstring4": [ {
513
+ token : "string",
514
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",
515
+ next : "start"
516
+ }, {
517
+ token : "string",
518
+ merge : true,
519
+ regex : '.+'
520
+ } ],
521
+ "qstring5": [ {
522
+ token : function(value){
523
+ // very hackish, mutates the qstring5 field on the fly.
524
+ var pattern = /\](\=+)\]/, rule = this.rules.qstring5[0], match;
525
+ rule.next = "start";
526
+ if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){
527
+ var found = match.length, expected;
528
+ if ((expected = comment_stack.pop()) != found){
529
+ comment_stack.push(expected);
530
+ rule.next = "qstring5";
531
+ }
532
+ }
533
+
534
+ return "string";
535
+ },
536
+ regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",
537
+ next : "start"
538
+ }, {
539
+ token : "string",
540
+ merge : true,
541
+ regex : '.+'
542
+ } ]
543
+
544
+ };
545
+
546
+ }
547
+
548
+ oop.inherits(LuaHighlightRules, TextHighlightRules);
549
+
550
+ exports.LuaHighlightRules = LuaHighlightRules;
551
+ });