@openui5/sap.ui.codeeditor 1.120.7 → 1.121.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/.reuse/dep5 +23 -21
  2. package/THIRDPARTY.txt +6 -43
  3. package/package.json +2 -2
  4. package/src/sap/ui/codeeditor/.library +2 -2
  5. package/src/sap/ui/codeeditor/CodeEditor.js +41 -27
  6. package/src/sap/ui/codeeditor/js/ace/ace.js +16262 -16597
  7. package/src/sap/ui/codeeditor/js/ace/css/ace.css +358 -86
  8. package/src/sap/ui/codeeditor/js/ace/css/ambiance-3.png +0 -0
  9. package/src/sap/ui/codeeditor/js/ace/css/chrome-2.png +0 -0
  10. package/src/sap/ui/codeeditor/js/ace/css/cloud9_day-1.png +0 -0
  11. package/src/sap/ui/codeeditor/js/ace/css/cloud9_day-2.png +0 -0
  12. package/src/sap/ui/codeeditor/js/ace/css/cloud9_night-1.png +0 -0
  13. package/src/sap/ui/codeeditor/js/ace/css/cloud9_night-2.png +0 -0
  14. package/src/sap/ui/codeeditor/js/ace/css/cloud9_night_low_color-1.png +0 -0
  15. package/src/sap/ui/codeeditor/js/ace/css/cloud9_night_low_color-2.png +0 -0
  16. package/src/sap/ui/codeeditor/js/ace/css/clouds-2.png +0 -0
  17. package/src/sap/ui/codeeditor/js/ace/css/clouds_midnight-2.png +0 -0
  18. package/src/sap/ui/codeeditor/js/ace/css/cobalt-2.png +0 -0
  19. package/src/sap/ui/codeeditor/js/ace/css/crimson_editor-2.png +0 -0
  20. package/src/sap/ui/codeeditor/js/ace/css/dawn-2.png +0 -0
  21. package/src/sap/ui/codeeditor/js/ace/css/dracula-2.png +0 -0
  22. package/src/sap/ui/codeeditor/js/ace/css/dreamweaver-2.png +0 -0
  23. package/src/sap/ui/codeeditor/js/ace/css/eclipse-2.png +0 -0
  24. package/src/sap/ui/codeeditor/js/ace/css/github-2.png +0 -0
  25. package/src/sap/ui/codeeditor/js/ace/css/github_dark-1.png +0 -0
  26. package/src/sap/ui/codeeditor/js/ace/css/github_dark-2.png +0 -0
  27. package/src/sap/ui/codeeditor/js/ace/css/gob-2.png +0 -0
  28. package/src/sap/ui/codeeditor/js/ace/css/gruvbox-2.png +0 -0
  29. package/src/sap/ui/codeeditor/js/ace/css/gruvbox_dark_hard-1.png +0 -0
  30. package/src/sap/ui/codeeditor/js/ace/css/gruvbox_light_hard-1.png +0 -0
  31. package/src/sap/ui/codeeditor/js/ace/css/gruvbox_light_hard-2.png +0 -0
  32. package/src/sap/ui/codeeditor/js/ace/css/idle_fingers-2.png +0 -0
  33. package/src/sap/ui/codeeditor/js/ace/css/iplastic-3.png +0 -0
  34. package/src/sap/ui/codeeditor/js/ace/css/katzenmilch-1.png +0 -0
  35. package/src/sap/ui/codeeditor/js/ace/css/katzenmilch-2.png +0 -0
  36. package/src/sap/ui/codeeditor/js/ace/css/kr_theme-2.png +0 -0
  37. package/src/sap/ui/codeeditor/js/ace/css/kuroir-1.png +0 -0
  38. package/src/sap/ui/codeeditor/js/ace/css/kuroir-2.png +0 -0
  39. package/src/sap/ui/codeeditor/js/ace/css/main-10.png +0 -0
  40. package/src/sap/ui/codeeditor/js/ace/css/main-11.png +0 -0
  41. package/src/sap/ui/codeeditor/js/ace/css/main-12.png +0 -0
  42. package/src/sap/ui/codeeditor/js/ace/css/main-13.png +0 -0
  43. package/src/sap/ui/codeeditor/js/ace/css/main-14.png +0 -0
  44. package/src/sap/ui/codeeditor/js/ace/css/main-15.png +0 -0
  45. package/src/sap/ui/codeeditor/js/ace/css/main-16.png +0 -0
  46. package/src/sap/ui/codeeditor/js/ace/css/main-17.png +0 -0
  47. package/src/sap/ui/codeeditor/js/ace/css/main-18.png +0 -0
  48. package/src/sap/ui/codeeditor/js/ace/css/main-19.png +0 -0
  49. package/src/sap/ui/codeeditor/js/ace/css/main-20.png +0 -0
  50. package/src/sap/ui/codeeditor/js/ace/css/main-21.png +0 -0
  51. package/src/sap/ui/codeeditor/js/ace/css/main-22.png +0 -0
  52. package/src/sap/ui/codeeditor/js/ace/css/main-22.svg +1 -0
  53. package/src/sap/ui/codeeditor/js/ace/css/main-23.png +0 -0
  54. package/src/sap/ui/codeeditor/js/ace/css/main-5.svg +7 -0
  55. package/src/sap/ui/codeeditor/js/ace/css/main-6.svg +7 -0
  56. package/src/sap/ui/codeeditor/js/ace/css/main-7.svg +9 -0
  57. package/src/sap/ui/codeeditor/js/ace/css/main-8.png +0 -0
  58. package/src/sap/ui/codeeditor/js/ace/css/main-8.svg +4 -0
  59. package/src/sap/ui/codeeditor/js/ace/css/main-9.png +0 -0
  60. package/src/sap/ui/codeeditor/js/ace/css/main-9.svg +4 -0
  61. package/src/sap/ui/codeeditor/js/ace/css/merbivore-2.png +0 -0
  62. package/src/sap/ui/codeeditor/js/ace/css/merbivore_soft-2.png +0 -0
  63. package/src/sap/ui/codeeditor/js/ace/css/mono_industrial-2.png +0 -0
  64. package/src/sap/ui/codeeditor/js/ace/css/monokai-2.png +0 -0
  65. package/src/sap/ui/codeeditor/js/ace/css/one_dark-2.png +0 -0
  66. package/src/sap/ui/codeeditor/js/ace/css/pastel_on_dark-2.png +0 -0
  67. package/src/sap/ui/codeeditor/js/ace/css/solarized_dark-2.png +0 -0
  68. package/src/sap/ui/codeeditor/js/ace/css/solarized_light-2.png +0 -0
  69. package/src/sap/ui/codeeditor/js/ace/css/sqlserver-2.png +0 -0
  70. package/src/sap/ui/codeeditor/js/ace/css/terminal-2.png +0 -0
  71. package/src/sap/ui/codeeditor/js/ace/css/textmate-2.png +0 -0
  72. package/src/sap/ui/codeeditor/js/ace/css/theme/ambiance.css +120 -68
  73. package/src/sap/ui/codeeditor/js/ace/css/theme/chaos.css +79 -66
  74. package/src/sap/ui/codeeditor/js/ace/css/theme/chrome.css +82 -43
  75. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud9_day.css +160 -0
  76. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud9_night.css +146 -0
  77. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud9_night_low_color.css +134 -0
  78. package/src/sap/ui/codeeditor/js/ace/css/theme/clouds.css +59 -31
  79. package/src/sap/ui/codeeditor/js/ace/css/theme/clouds_midnight.css +60 -32
  80. package/src/sap/ui/codeeditor/js/ace/css/theme/cobalt.css +71 -38
  81. package/src/sap/ui/codeeditor/js/ace/css/theme/crimson_editor.css +79 -42
  82. package/src/sap/ui/codeeditor/js/ace/css/theme/dawn.css +70 -40
  83. package/src/sap/ui/codeeditor/js/ace/css/theme/dracula.css +95 -49
  84. package/src/sap/ui/codeeditor/js/ace/css/theme/dreamweaver.css +95 -49
  85. package/src/sap/ui/codeeditor/js/ace/css/theme/eclipse.css +62 -33
  86. package/src/sap/ui/codeeditor/js/ace/css/theme/github.css +71 -38
  87. package/src/sap/ui/codeeditor/js/ace/css/theme/github_dark.css +134 -0
  88. package/src/sap/ui/codeeditor/js/ace/css/theme/gob.css +68 -38
  89. package/src/sap/ui/codeeditor/js/ace/css/theme/gruvbox.css +54 -28
  90. package/src/sap/ui/codeeditor/js/ace/css/theme/gruvbox_dark_hard.css +163 -0
  91. package/src/sap/ui/codeeditor/js/ace/css/theme/gruvbox_light_hard.css +167 -0
  92. package/src/sap/ui/codeeditor/js/ace/css/theme/idle_fingers.css +62 -34
  93. package/src/sap/ui/codeeditor/js/ace/css/theme/iplastic.css +76 -45
  94. package/src/sap/ui/codeeditor/js/ace/css/theme/katzenmilch.css +91 -53
  95. package/src/sap/ui/codeeditor/js/ace/css/theme/kr_theme.css +67 -36
  96. package/src/sap/ui/codeeditor/js/ace/css/theme/kuroir.css +43 -17
  97. package/src/sap/ui/codeeditor/js/ace/css/theme/merbivore.css +57 -31
  98. package/src/sap/ui/codeeditor/js/ace/css/theme/merbivore_soft.css +57 -31
  99. package/src/sap/ui/codeeditor/js/ace/css/theme/mono_industrial.css +66 -36
  100. package/src/sap/ui/codeeditor/js/ace/css/theme/monokai.css +63 -35
  101. package/src/sap/ui/codeeditor/js/ace/css/theme/nord_dark.css +55 -29
  102. package/src/sap/ui/codeeditor/js/ace/css/theme/one_dark.css +88 -47
  103. package/src/sap/ui/codeeditor/js/ace/css/theme/pastel_on_dark.css +70 -38
  104. package/src/sap/ui/codeeditor/js/ace/css/theme/solarized_dark.css +52 -28
  105. package/src/sap/ui/codeeditor/js/ace/css/theme/solarized_light.css +55 -29
  106. package/src/sap/ui/codeeditor/js/ace/css/theme/sqlserver.css +90 -48
  107. package/src/sap/ui/codeeditor/js/ace/css/theme/terminal.css +64 -34
  108. package/src/sap/ui/codeeditor/js/ace/css/theme/textmate.css +82 -43
  109. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow.css +61 -33
  110. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night.css +61 -33
  111. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night_blue.css +59 -32
  112. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night_bright.css +71 -40
  113. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night_eighties.css +61 -33
  114. package/src/sap/ui/codeeditor/js/ace/css/theme/twilight.css +66 -36
  115. package/src/sap/ui/codeeditor/js/ace/css/theme/vibrant_ink.css +59 -32
  116. package/src/sap/ui/codeeditor/js/ace/css/theme/xcode.css +54 -28
  117. package/src/sap/ui/codeeditor/js/ace/css/tomorrow-2.png +0 -0
  118. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night-2.png +0 -0
  119. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night_blue-2.png +0 -0
  120. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night_bright-2.png +0 -0
  121. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night_eighties-2.png +0 -0
  122. package/src/sap/ui/codeeditor/js/ace/css/twilight-2.png +0 -0
  123. package/src/sap/ui/codeeditor/js/ace/css/vibrant_ink-2.png +0 -0
  124. package/src/sap/ui/codeeditor/js/ace/css/xcode-2.png +0 -0
  125. package/src/sap/ui/codeeditor/js/ace/ext-beautify.js +90 -91
  126. package/src/sap/ui/codeeditor/js/ace/ext-code_lens.js +39 -75
  127. package/src/sap/ui/codeeditor/js/ace/ext-command_bar.js +457 -0
  128. package/src/sap/ui/codeeditor/js/ace/ext-elastic_tabstops_lite.js +47 -97
  129. package/src/sap/ui/codeeditor/js/ace/ext-emmet.js +496 -552
  130. package/src/sap/ui/codeeditor/js/ace/ext-hardwrap.js +47 -16
  131. package/src/sap/ui/codeeditor/js/ace/ext-inline_autocomplete.js +3269 -0
  132. package/src/sap/ui/codeeditor/js/ace/ext-keybinding_menu.js +45 -105
  133. package/src/sap/ui/codeeditor/js/ace/ext-language_tools.js +1438 -1128
  134. package/src/sap/ui/codeeditor/js/ace/ext-linking.js +8 -16
  135. package/src/sap/ui/codeeditor/js/ace/ext-modelist.js +198 -185
  136. package/src/sap/ui/codeeditor/js/ace/ext-options.js +405 -443
  137. package/src/sap/ui/codeeditor/js/ace/ext-prompt.js +1682 -1508
  138. package/src/sap/ui/codeeditor/js/ace/ext-rtl.js +26 -28
  139. package/src/sap/ui/codeeditor/js/ace/ext-searchbox.js +160 -332
  140. package/src/sap/ui/codeeditor/js/ace/ext-settings_menu.js +409 -446
  141. package/src/sap/ui/codeeditor/js/ace/ext-simple_tokenizer.js +45 -0
  142. package/src/sap/ui/codeeditor/js/ace/ext-spellcheck.js +4 -10
  143. package/src/sap/ui/codeeditor/js/ace/ext-split.js +41 -63
  144. package/src/sap/ui/codeeditor/js/ace/ext-statusbar.js +19 -27
  145. package/src/sap/ui/codeeditor/js/ace/ext-themelist.js +45 -41
  146. package/src/sap/ui/codeeditor/js/ace/ext-whitespace.js +62 -83
  147. package/src/sap/ui/codeeditor/js/ace/keybinding-emacs.js +442 -551
  148. package/src/sap/ui/codeeditor/js/ace/keybinding-sublime.js +338 -351
  149. package/src/sap/ui/codeeditor/js/ace/keybinding-vim.js +5242 -4758
  150. package/src/sap/ui/codeeditor/js/ace/keybinding-vscode.js +228 -235
  151. package/src/sap/ui/codeeditor/js/ace/mode-abap.js +72 -93
  152. package/src/sap/ui/codeeditor/js/ace/mode-abc.js +136 -164
  153. package/src/sap/ui/codeeditor/js/ace/mode-actionscript.js +109 -150
  154. package/src/sap/ui/codeeditor/js/ace/mode-ada.js +45 -74
  155. package/src/sap/ui/codeeditor/js/ace/mode-alda.js +77 -109
  156. package/src/sap/ui/codeeditor/js/ace/mode-apache_conf.js +196 -241
  157. package/src/sap/ui/codeeditor/js/ace/mode-apex.js +192 -247
  158. package/src/sap/ui/codeeditor/js/ace/mode-applescript.js +56 -102
  159. package/src/sap/ui/codeeditor/js/ace/mode-aql.js +85 -95
  160. package/src/sap/ui/codeeditor/js/ace/mode-asciidoc.js +120 -158
  161. package/src/sap/ui/codeeditor/js/ace/mode-asl.js +233 -298
  162. package/src/sap/ui/codeeditor/js/ace/mode-assembly_x86.js +78 -101
  163. package/src/sap/ui/codeeditor/js/ace/mode-astro.js +2414 -0
  164. package/src/sap/ui/codeeditor/js/ace/mode-autohotkey.js +80 -116
  165. package/src/sap/ui/codeeditor/js/ace/mode-batchfile.js +74 -105
  166. package/src/sap/ui/codeeditor/js/ace/mode-bibtex.js +318 -0
  167. package/src/sap/ui/codeeditor/js/ace/mode-c9search.js +72 -115
  168. package/src/sap/ui/codeeditor/js/ace/mode-c_cpp.js +171 -257
  169. package/src/sap/ui/codeeditor/js/ace/mode-cirru.js +97 -115
  170. package/src/sap/ui/codeeditor/js/ace/mode-clojure.js +126 -119
  171. package/src/sap/ui/codeeditor/js/ace/mode-cobol.js +48 -67
  172. package/src/sap/ui/codeeditor/js/ace/mode-coffee.js +203 -268
  173. package/src/sap/ui/codeeditor/js/ace/mode-coldfusion.js +1029 -1276
  174. package/src/sap/ui/codeeditor/js/ace/mode-crystal.js +337 -393
  175. package/src/sap/ui/codeeditor/js/ace/mode-csharp.js +127 -216
  176. package/src/sap/ui/codeeditor/js/ace/mode-csound_document.js +1539 -1569
  177. package/src/sap/ui/codeeditor/js/ace/mode-csound_orchestra.js +786 -898
  178. package/src/sap/ui/codeeditor/js/ace/mode-csound_score.js +184 -237
  179. package/src/sap/ui/codeeditor/js/ace/mode-csp.js +37 -37
  180. package/src/sap/ui/codeeditor/js/ace/mode-css.js +293 -384
  181. package/src/sap/ui/codeeditor/js/ace/mode-curly.js +1019 -1262
  182. package/src/sap/ui/codeeditor/js/ace/mode-cuttlefish.js +56 -0
  183. package/src/sap/ui/codeeditor/js/ace/mode-d.js +163 -233
  184. package/src/sap/ui/codeeditor/js/ace/mode-dart.js +330 -427
  185. package/src/sap/ui/codeeditor/js/ace/mode-diff.js +20 -38
  186. package/src/sap/ui/codeeditor/js/ace/mode-django.js +1032 -1271
  187. package/src/sap/ui/codeeditor/js/ace/mode-dockerfile.js +211 -284
  188. package/src/sap/ui/codeeditor/js/ace/mode-dot.js +131 -200
  189. package/src/sap/ui/codeeditor/js/ace/mode-drools.js +408 -349
  190. package/src/sap/ui/codeeditor/js/ace/mode-edifact.js +89 -125
  191. package/src/sap/ui/codeeditor/js/ace/mode-eiffel.js +47 -62
  192. package/src/sap/ui/codeeditor/js/ace/mode-ejs.js +1350 -1666
  193. package/src/sap/ui/codeeditor/js/ace/mode-elixir.js +349 -407
  194. package/src/sap/ui/codeeditor/js/ace/mode-elm.js +136 -168
  195. package/src/sap/ui/codeeditor/js/ace/mode-erlang.js +707 -881
  196. package/src/sap/ui/codeeditor/js/ace/mode-flix.js +164 -0
  197. package/src/sap/ui/codeeditor/js/ace/mode-forth.js +128 -172
  198. package/src/sap/ui/codeeditor/js/ace/mode-fortran.js +177 -246
  199. package/src/sap/ui/codeeditor/js/ace/mode-fsharp.js +92 -131
  200. package/src/sap/ui/codeeditor/js/ace/mode-fsl.js +91 -124
  201. package/src/sap/ui/codeeditor/js/ace/mode-ftl.js +813 -748
  202. package/src/sap/ui/codeeditor/js/ace/mode-gcode.js +52 -71
  203. package/src/sap/ui/codeeditor/js/ace/mode-gherkin.js +105 -119
  204. package/src/sap/ui/codeeditor/js/ace/mode-gitignore.js +12 -22
  205. package/src/sap/ui/codeeditor/js/ace/mode-glsl.js +184 -289
  206. package/src/sap/ui/codeeditor/js/ace/mode-gobstones.js +686 -623
  207. package/src/sap/ui/codeeditor/js/ace/mode-golang.js +167 -239
  208. package/src/sap/ui/codeeditor/js/ace/mode-graphqlschema.js +48 -88
  209. package/src/sap/ui/codeeditor/js/ace/mode-groovy.js +577 -471
  210. package/src/sap/ui/codeeditor/js/ace/mode-haml.js +1062 -1026
  211. package/src/sap/ui/codeeditor/js/ace/mode-handlebars.js +1061 -1305
  212. package/src/sap/ui/codeeditor/js/ace/mode-haskell.js +199 -255
  213. package/src/sap/ui/codeeditor/js/ace/mode-haskell_cabal.js +81 -87
  214. package/src/sap/ui/codeeditor/js/ace/mode-haxe.js +111 -184
  215. package/src/sap/ui/codeeditor/js/ace/mode-hjson.js +164 -199
  216. package/src/sap/ui/codeeditor/js/ace/mode-html.js +1009 -1239
  217. package/src/sap/ui/codeeditor/js/ace/mode-html_elixir.js +1402 -1705
  218. package/src/sap/ui/codeeditor/js/ace/mode-html_ruby.js +1390 -1706
  219. package/src/sap/ui/codeeditor/js/ace/mode-ini.js +58 -82
  220. package/src/sap/ui/codeeditor/js/ace/mode-io.js +85 -123
  221. package/src/sap/ui/codeeditor/js/ace/mode-ion.js +477 -0
  222. package/src/sap/ui/codeeditor/js/ace/mode-jack.js +109 -162
  223. package/src/sap/ui/codeeditor/js/ace/mode-jade.js +1339 -1344
  224. package/src/sap/ui/codeeditor/js/ace/mode-java.js +710 -498
  225. package/src/sap/ui/codeeditor/js/ace/mode-javascript.js +441 -354
  226. package/src/sap/ui/codeeditor/js/ace/mode-jexl.js +270 -0
  227. package/src/sap/ui/codeeditor/js/ace/mode-json.js +93 -147
  228. package/src/sap/ui/codeeditor/js/ace/mode-json5.js +128 -180
  229. package/src/sap/ui/codeeditor/js/ace/mode-jsoniq.js +58 -112
  230. package/src/sap/ui/codeeditor/js/ace/mode-jsp.js +1045 -865
  231. package/src/sap/ui/codeeditor/js/ace/mode-jssm.js +158 -190
  232. package/src/sap/ui/codeeditor/js/ace/mode-jsx.js +121 -194
  233. package/src/sap/ui/codeeditor/js/ace/mode-julia.js +128 -177
  234. package/src/sap/ui/codeeditor/js/ace/mode-kotlin.js +262 -614
  235. package/src/sap/ui/codeeditor/js/ace/mode-latex.js +94 -138
  236. package/src/sap/ui/codeeditor/js/ace/mode-latte.js +1120 -1366
  237. package/src/sap/ui/codeeditor/js/ace/mode-less.js +342 -442
  238. package/src/sap/ui/codeeditor/js/ace/mode-liquid.js +1353 -1414
  239. package/src/sap/ui/codeeditor/js/ace/mode-lisp.js +65 -73
  240. package/src/sap/ui/codeeditor/js/ace/mode-livescript.js +217 -224
  241. package/src/sap/ui/codeeditor/js/ace/mode-logiql.js +97 -142
  242. package/src/sap/ui/codeeditor/js/ace/mode-logtalk.js +187 -227
  243. package/src/sap/ui/codeeditor/js/ace/mode-lsl.js +99 -155
  244. package/src/sap/ui/codeeditor/js/ace/mode-lua.js +152 -211
  245. package/src/sap/ui/codeeditor/js/ace/mode-luapage.js +1167 -1470
  246. package/src/sap/ui/codeeditor/js/ace/mode-lucene.js +25 -34
  247. package/src/sap/ui/codeeditor/js/ace/mode-makefile.js +244 -282
  248. package/src/sap/ui/codeeditor/js/ace/mode-markdown.js +1858 -2177
  249. package/src/sap/ui/codeeditor/js/ace/mode-mask.js +964 -1007
  250. package/src/sap/ui/codeeditor/js/ace/mode-matlab.js +197 -221
  251. package/src/sap/ui/codeeditor/js/ace/mode-maze.js +127 -163
  252. package/src/sap/ui/codeeditor/js/ace/mode-mediawiki.js +464 -476
  253. package/src/sap/ui/codeeditor/js/ace/mode-mel.js +90 -140
  254. package/src/sap/ui/codeeditor/js/ace/mode-mips.js +101 -134
  255. package/src/sap/ui/codeeditor/js/ace/mode-mixal.js +63 -75
  256. package/src/sap/ui/codeeditor/js/ace/mode-mushcode.js +537 -576
  257. package/src/sap/ui/codeeditor/js/ace/mode-mysql.js +85 -102
  258. package/src/sap/ui/codeeditor/js/ace/mode-nasal.js +513 -0
  259. package/src/sap/ui/codeeditor/js/ace/mode-nginx.js +119 -155
  260. package/src/sap/ui/codeeditor/js/ace/mode-nim.js +159 -197
  261. package/src/sap/ui/codeeditor/js/ace/mode-nix.js +283 -375
  262. package/src/sap/ui/codeeditor/js/ace/mode-nsis.js +139 -172
  263. package/src/sap/ui/codeeditor/js/ace/mode-nunjucks.js +1138 -1378
  264. package/src/sap/ui/codeeditor/js/ace/mode-objectivec.js +400 -514
  265. package/src/sap/ui/codeeditor/js/ace/mode-ocaml.js +77 -120
  266. package/src/sap/ui/codeeditor/js/ace/mode-odin.js +449 -0
  267. package/src/sap/ui/codeeditor/js/ace/mode-partiql.js +750 -0
  268. package/src/sap/ui/codeeditor/js/ace/mode-pascal.js +28 -47
  269. package/src/sap/ui/codeeditor/js/ace/mode-perl.js +122 -185
  270. package/src/sap/ui/codeeditor/js/ace/mode-pgsql.js +974 -851
  271. package/src/sap/ui/codeeditor/js/ace/mode-php.js +2282 -1502
  272. package/src/sap/ui/codeeditor/js/ace/mode-php_laravel_blade.js +2463 -1696
  273. package/src/sap/ui/codeeditor/js/ace/mode-pig.js +133 -165
  274. package/src/sap/ui/codeeditor/js/ace/mode-plain_text.js +5 -10
  275. package/src/sap/ui/codeeditor/js/ace/mode-plsql.js +268 -0
  276. package/src/sap/ui/codeeditor/js/ace/mode-powershell.js +332 -183
  277. package/src/sap/ui/codeeditor/js/ace/mode-praat.js +168 -234
  278. package/src/sap/ui/codeeditor/js/ace/mode-prisma.js +292 -324
  279. package/src/sap/ui/codeeditor/js/ace/mode-prolog.js +180 -246
  280. package/src/sap/ui/codeeditor/js/ace/mode-properties.js +26 -37
  281. package/src/sap/ui/codeeditor/js/ace/mode-protobuf.js +232 -327
  282. package/src/sap/ui/codeeditor/js/ace/mode-prql.js +320 -0
  283. package/src/sap/ui/codeeditor/js/ace/mode-puppet.js +68 -120
  284. package/src/sap/ui/codeeditor/js/ace/mode-python.js +338 -370
  285. package/src/sap/ui/codeeditor/js/ace/mode-qml.js +244 -279
  286. package/src/sap/ui/codeeditor/js/ace/mode-r.js +295 -220
  287. package/src/sap/ui/codeeditor/js/ace/mode-raku.js +356 -433
  288. package/src/sap/ui/codeeditor/js/ace/mode-razor.js +1130 -1374
  289. package/src/sap/ui/codeeditor/js/ace/mode-rdoc.js +214 -171
  290. package/src/sap/ui/codeeditor/js/ace/mode-red.js +212 -274
  291. package/src/sap/ui/codeeditor/js/ace/mode-redshift.js +181 -220
  292. package/src/sap/ui/codeeditor/js/ace/mode-rhtml.js +1325 -1443
  293. package/src/sap/ui/codeeditor/js/ace/mode-robot.js +168 -0
  294. package/src/sap/ui/codeeditor/js/ace/mode-rst.js +217 -229
  295. package/src/sap/ui/codeeditor/js/ace/mode-ruby.js +338 -420
  296. package/src/sap/ui/codeeditor/js/ace/mode-rust.js +258 -155
  297. package/src/sap/ui/codeeditor/js/ace/mode-sac.js +349 -0
  298. package/src/sap/ui/codeeditor/js/ace/mode-sass.js +257 -309
  299. package/src/sap/ui/codeeditor/js/ace/mode-scad.js +127 -191
  300. package/src/sap/ui/codeeditor/js/ace/mode-scala.js +572 -468
  301. package/src/sap/ui/codeeditor/js/ace/mode-scheme.js +104 -126
  302. package/src/sap/ui/codeeditor/js/ace/mode-scrypt.js +181 -228
  303. package/src/sap/ui/codeeditor/js/ace/mode-scss.js +364 -472
  304. package/src/sap/ui/codeeditor/js/ace/mode-sh.js +204 -266
  305. package/src/sap/ui/codeeditor/js/ace/mode-sjs.js +477 -405
  306. package/src/sap/ui/codeeditor/js/ace/mode-slim.js +2631 -3161
  307. package/src/sap/ui/codeeditor/js/ace/mode-smarty.js +1075 -1334
  308. package/src/sap/ui/codeeditor/js/ace/mode-smithy.js +276 -327
  309. package/src/sap/ui/codeeditor/js/ace/mode-snippets.js +78 -102
  310. package/src/sap/ui/codeeditor/js/ace/mode-soy_template.js +1251 -1548
  311. package/src/sap/ui/codeeditor/js/ace/mode-space.js +47 -63
  312. package/src/sap/ui/codeeditor/js/ace/mode-sparql.js +139 -171
  313. package/src/sap/ui/codeeditor/js/ace/mode-sql.js +77 -133
  314. package/src/sap/ui/codeeditor/js/ace/mode-sqlserver.js +138 -192
  315. package/src/sap/ui/codeeditor/js/ace/mode-stylus.js +306 -338
  316. package/src/sap/ui/codeeditor/js/ace/mode-svg.js +642 -794
  317. package/src/sap/ui/codeeditor/js/ace/mode-swift.js +96 -150
  318. package/src/sap/ui/codeeditor/js/ace/mode-tcl.js +151 -200
  319. package/src/sap/ui/codeeditor/js/ace/mode-terraform.js +78 -132
  320. package/src/sap/ui/codeeditor/js/ace/mode-tex.js +148 -96
  321. package/src/sap/ui/codeeditor/js/ace/mode-textile.js +45 -70
  322. package/src/sap/ui/codeeditor/js/ace/mode-toml.js +63 -87
  323. package/src/sap/ui/codeeditor/js/ace/mode-tsx.js +462 -384
  324. package/src/sap/ui/codeeditor/js/ace/mode-turtle.js +119 -151
  325. package/src/sap/ui/codeeditor/js/ace/mode-twig.js +1099 -1350
  326. package/src/sap/ui/codeeditor/js/ace/mode-typescript.js +455 -376
  327. package/src/sap/ui/codeeditor/js/ace/mode-vala.js +382 -505
  328. package/src/sap/ui/codeeditor/js/ace/mode-vbscript.js +231 -264
  329. package/src/sap/ui/codeeditor/js/ace/mode-velocity.js +1116 -1388
  330. package/src/sap/ui/codeeditor/js/ace/mode-verilog.js +61 -81
  331. package/src/sap/ui/codeeditor/js/ace/mode-vhdl.js +57 -79
  332. package/src/sap/ui/codeeditor/js/ace/mode-visualforce.js +1046 -1292
  333. package/src/sap/ui/codeeditor/js/ace/mode-wollok.js +525 -417
  334. package/src/sap/ui/codeeditor/js/ace/mode-xml.js +182 -389
  335. package/src/sap/ui/codeeditor/js/ace/mode-xquery.js +58 -112
  336. package/src/sap/ui/codeeditor/js/ace/mode-yaml.js +202 -137
  337. package/src/sap/ui/codeeditor/js/ace/mode-zeek.js +237 -274
  338. package/src/sap/ui/codeeditor/js/ace/snippets/abc.js +5 -34
  339. package/src/sap/ui/codeeditor/js/ace/snippets/actionscript.js +5 -160
  340. package/src/sap/ui/codeeditor/js/ace/snippets/astro.js +9 -0
  341. package/src/sap/ui/codeeditor/js/ace/snippets/bibtex.js +9 -0
  342. package/src/sap/ui/codeeditor/js/ace/snippets/c_cpp.js +5 -134
  343. package/src/sap/ui/codeeditor/js/ace/snippets/clojure.js +5 -93
  344. package/src/sap/ui/codeeditor/js/ace/snippets/coffee.js +5 -98
  345. package/src/sap/ui/codeeditor/js/ace/snippets/csound_document.js +5 -13
  346. package/src/sap/ui/codeeditor/js/ace/snippets/csound_orchestra.js +5 -50
  347. package/src/sap/ui/codeeditor/js/ace/snippets/css.js +5 -970
  348. package/src/sap/ui/codeeditor/js/ace/snippets/cuttlefish.js +9 -0
  349. package/src/sap/ui/codeeditor/js/ace/snippets/dart.js +5 -86
  350. package/src/sap/ui/codeeditor/js/ace/snippets/diff.js +5 -14
  351. package/src/sap/ui/codeeditor/js/ace/snippets/django.js +5 -111
  352. package/src/sap/ui/codeeditor/js/ace/snippets/drools.js +5 -22
  353. package/src/sap/ui/codeeditor/js/ace/snippets/edifact.js +8 -246
  354. package/src/sap/ui/codeeditor/js/ace/snippets/erlang.js +5 -163
  355. package/src/sap/ui/codeeditor/js/ace/snippets/flix.js +9 -0
  356. package/src/sap/ui/codeeditor/js/ace/snippets/fsl.js +6 -4
  357. package/src/sap/ui/codeeditor/js/ace/snippets/gobstones.js +5 -1707
  358. package/src/sap/ui/codeeditor/js/ace/snippets/graphqlschema.js +5 -35
  359. package/src/sap/ui/codeeditor/js/ace/snippets/haml.js +5 -23
  360. package/src/sap/ui/codeeditor/js/ace/snippets/haskell.js +5 -85
  361. package/src/sap/ui/codeeditor/js/ace/snippets/html.js +5 -856
  362. package/src/sap/ui/codeeditor/js/ace/snippets/io.js +1 -3
  363. package/src/sap/ui/codeeditor/js/ace/snippets/ion.js +9 -0
  364. package/src/sap/ui/codeeditor/js/ace/snippets/java.js +5 -243
  365. package/src/sap/ui/codeeditor/js/ace/snippets/javascript.js +5 -198
  366. package/src/sap/ui/codeeditor/js/ace/snippets/jexl.js +9 -0
  367. package/src/sap/ui/codeeditor/js/ace/snippets/jsoniq.js +44 -41
  368. package/src/sap/ui/codeeditor/js/ace/snippets/jsp.js +5 -102
  369. package/src/sap/ui/codeeditor/js/ace/snippets/liquid.js +5 -884
  370. package/src/sap/ui/codeeditor/js/ace/snippets/lsl.js +5 -1235
  371. package/src/sap/ui/codeeditor/js/ace/snippets/lua.js +5 -24
  372. package/src/sap/ui/codeeditor/js/ace/snippets/makefile.js +5 -7
  373. package/src/sap/ui/codeeditor/js/ace/snippets/markdown.js +5 -91
  374. package/src/sap/ui/codeeditor/js/ace/snippets/maze.js +5 -12
  375. package/src/sap/ui/codeeditor/js/ace/snippets/nasal.js +9 -0
  376. package/src/sap/ui/codeeditor/js/ace/snippets/odin.js +9 -0
  377. package/src/sap/ui/codeeditor/js/ace/snippets/partiql.js +9 -0
  378. package/src/sap/ui/codeeditor/js/ace/snippets/perl.js +5 -350
  379. package/src/sap/ui/codeeditor/js/ace/snippets/php.js +5 -386
  380. package/src/sap/ui/codeeditor/js/ace/snippets/plsql.js +9 -0
  381. package/src/sap/ui/codeeditor/js/ace/snippets/prql.js +9 -0
  382. package/src/sap/ui/codeeditor/js/ace/snippets/python.js +5 -161
  383. package/src/sap/ui/codeeditor/js/ace/snippets/r.js +5 -124
  384. package/src/sap/ui/codeeditor/js/ace/snippets/razor.js +5 -6
  385. package/src/sap/ui/codeeditor/js/ace/snippets/robot.js +16 -0
  386. package/src/sap/ui/codeeditor/js/ace/snippets/rst.js +5 -25
  387. package/src/sap/ui/codeeditor/js/ace/snippets/ruby.js +5 -931
  388. package/src/sap/ui/codeeditor/js/ace/snippets/sac.js +9 -0
  389. package/src/sap/ui/codeeditor/js/ace/snippets/sh.js +5 -86
  390. package/src/sap/ui/codeeditor/js/ace/snippets/snippets.js +5 -12
  391. package/src/sap/ui/codeeditor/js/ace/snippets/sql.js +5 -29
  392. package/src/sap/ui/codeeditor/js/ace/snippets/sqlserver.js +5 -72
  393. package/src/sap/ui/codeeditor/js/ace/snippets/tcl.js +5 -95
  394. package/src/sap/ui/codeeditor/js/ace/snippets/tex.js +5 -193
  395. package/src/sap/ui/codeeditor/js/ace/snippets/textile.js +5 -33
  396. package/src/sap/ui/codeeditor/js/ace/snippets/vala.js +1 -2
  397. package/src/sap/ui/codeeditor/js/ace/snippets/velocity.js +5 -31
  398. package/src/sap/ui/codeeditor/js/ace/snippets/wollok.js +5 -87
  399. package/src/sap/ui/codeeditor/js/ace/snippets/xquery.js +44 -41
  400. package/src/sap/ui/codeeditor/js/ace/theme-ambiance.js +5 -172
  401. package/src/sap/ui/codeeditor/js/ace/theme-chaos.js +5 -150
  402. package/src/sap/ui/codeeditor/js/ace/theme-chrome.js +6 -123
  403. package/src/sap/ui/codeeditor/js/ace/theme-cloud9_day.js +19 -0
  404. package/src/sap/ui/codeeditor/js/ace/theme-cloud9_night.js +18 -0
  405. package/src/sap/ui/codeeditor/js/ace/theme-cloud9_night_low_color.js +18 -0
  406. package/src/sap/ui/codeeditor/js/ace/theme-clouds.js +6 -90
  407. package/src/sap/ui/codeeditor/js/ace/theme-clouds_midnight.js +6 -91
  408. package/src/sap/ui/codeeditor/js/ace/theme-cobalt.js +6 -108
  409. package/src/sap/ui/codeeditor/js/ace/theme-crimson_editor.js +6 -113
  410. package/src/sap/ui/codeeditor/js/ace/theme-dawn.js +6 -103
  411. package/src/sap/ui/codeeditor/js/ace/theme-dracula.js +6 -122
  412. package/src/sap/ui/codeeditor/js/ace/theme-dreamweaver.js +7 -137
  413. package/src/sap/ui/codeeditor/js/ace/theme-eclipse.js +6 -92
  414. package/src/sap/ui/codeeditor/js/ace/theme-github.js +7 -99
  415. package/src/sap/ui/codeeditor/js/ace/theme-github_dark.js +18 -0
  416. package/src/sap/ui/codeeditor/js/ace/theme-gob.js +6 -107
  417. package/src/sap/ui/codeeditor/js/ace/theme-gruvbox.js +5 -76
  418. package/src/sap/ui/codeeditor/js/ace/theme-gruvbox_dark_hard.js +18 -0
  419. package/src/sap/ui/codeeditor/js/ace/theme-gruvbox_light_hard.js +18 -0
  420. package/src/sap/ui/codeeditor/js/ace/theme-idle_fingers.js +6 -91
  421. package/src/sap/ui/codeeditor/js/ace/theme-iplastic.js +6 -116
  422. package/src/sap/ui/codeeditor/js/ace/theme-katzenmilch.js +6 -116
  423. package/src/sap/ui/codeeditor/js/ace/theme-kr_theme.js +6 -99
  424. package/src/sap/ui/codeeditor/js/ace/theme-kuroir.js +6 -56
  425. package/src/sap/ui/codeeditor/js/ace/theme-merbivore.js +6 -90
  426. package/src/sap/ui/codeeditor/js/ace/theme-merbivore_soft.js +6 -91
  427. package/src/sap/ui/codeeditor/js/ace/theme-mono_industrial.js +6 -102
  428. package/src/sap/ui/codeeditor/js/ace/theme-monokai.js +6 -100
  429. package/src/sap/ui/codeeditor/js/ace/theme-nord_dark.js +6 -89
  430. package/src/sap/ui/codeeditor/js/ace/theme-one_dark.js +10 -131
  431. package/src/sap/ui/codeeditor/js/ace/theme-pastel_on_dark.js +6 -103
  432. package/src/sap/ui/codeeditor/js/ace/theme-solarized_dark.js +6 -83
  433. package/src/sap/ui/codeeditor/js/ace/theme-solarized_light.js +6 -86
  434. package/src/sap/ui/codeeditor/js/ace/theme-sqlserver.js +6 -133
  435. package/src/sap/ui/codeeditor/js/ace/theme-terminal.js +6 -109
  436. package/src/sap/ui/codeeditor/js/ace/theme-textmate.js +3 -124
  437. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow.js +6 -103
  438. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night.js +6 -103
  439. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_blue.js +6 -101
  440. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_bright.js +6 -116
  441. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_eighties.js +6 -103
  442. package/src/sap/ui/codeeditor/js/ace/theme-twilight.js +6 -104
  443. package/src/sap/ui/codeeditor/js/ace/theme-vibrant_ink.js +6 -89
  444. package/src/sap/ui/codeeditor/js/ace/theme-xcode.js +6 -83
  445. package/src/sap/ui/codeeditor/js/ace/worker-base.js +516 -595
  446. package/src/sap/ui/codeeditor/js/ace/worker-coffee.js +496 -575
  447. package/src/sap/ui/codeeditor/js/ace/worker-css.js +501 -578
  448. package/src/sap/ui/codeeditor/js/ace/worker-html.js +515 -584
  449. package/src/sap/ui/codeeditor/js/ace/worker-javascript.js +2964 -2551
  450. package/src/sap/ui/codeeditor/js/ace/worker-json.js +496 -575
  451. package/src/sap/ui/codeeditor/js/ace/worker-lua.js +497 -576
  452. package/src/sap/ui/codeeditor/js/ace/worker-php.js +2906 -2795
  453. package/src/sap/ui/codeeditor/js/ace/worker-xml.js +496 -575
  454. package/src/sap/ui/codeeditor/js/ace/worker-xquery.js +496 -575
  455. package/src/sap/ui/codeeditor/js/ace/worker-yaml.js +5851 -0
  456. package/src/sap/ui/codeeditor/library.js +6 -5
  457. package/LICENSES/BSD-2-Clause.txt +0 -22
@@ -1,21 +1,16 @@
1
- ace.define("ace/mode/css_highlight_rules",[], function(require, exports, module) {
2
- "use strict";
3
-
1
+ ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
4
2
  var oop = require("../lib/oop");
5
3
  var lang = require("../lib/lang");
6
4
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
7
5
  var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
8
6
  var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
9
- var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom";
7
+ var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom";
10
8
  var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
11
9
  var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
12
-
13
10
  var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
14
11
  var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
15
- var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
16
-
17
- var CssHighlightRules = function() {
18
-
12
+ var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
13
+ var CssHighlightRules = function () {
19
14
  var keywordMapper = this.createKeywordMapper({
20
15
  "support.function": supportFunction,
21
16
  "support.constant": supportConstant,
@@ -23,263 +18,317 @@ var CssHighlightRules = function() {
23
18
  "support.constant.color": supportConstantColor,
24
19
  "support.constant.fonts": supportConstantFonts
25
20
  }, "text", true);
26
-
27
21
  this.$rules = {
28
- "start" : [{
29
- include : ["strings", "url", "comments"]
30
- }, {
31
- token: "paren.lparen",
32
- regex: "\\{",
33
- next: "ruleset"
34
- }, {
35
- token: "paren.rparen",
36
- regex: "\\}"
37
- }, {
38
- token: "string",
39
- regex: "@(?!viewport)",
40
- next: "media"
41
- }, {
42
- token: "keyword",
43
- regex: "#[a-z0-9-_]+"
44
- }, {
45
- token: "keyword",
46
- regex: "%"
47
- }, {
48
- token: "variable",
49
- regex: "\\.[a-z0-9-_]+"
50
- }, {
51
- token: "string",
52
- regex: ":[a-z0-9-_]+"
53
- }, {
54
- token : "constant.numeric",
55
- regex : numRe
56
- }, {
57
- token: "constant",
58
- regex: "[a-z0-9-_]+"
59
- }, {
60
- caseInsensitive: true
61
- }],
62
-
22
+ "start": [{
23
+ include: ["strings", "url", "comments"]
24
+ }, {
25
+ token: "paren.lparen",
26
+ regex: "\\{",
27
+ next: "ruleset"
28
+ }, {
29
+ token: "paren.rparen",
30
+ regex: "\\}"
31
+ }, {
32
+ token: "string",
33
+ regex: "@(?!viewport)",
34
+ next: "media"
35
+ }, {
36
+ token: "keyword",
37
+ regex: "#[a-z0-9-_]+"
38
+ }, {
39
+ token: "keyword",
40
+ regex: "%"
41
+ }, {
42
+ token: "variable",
43
+ regex: "\\.[a-z0-9-_]+"
44
+ }, {
45
+ token: "string",
46
+ regex: ":[a-z0-9-_]+"
47
+ }, {
48
+ token: "constant.numeric",
49
+ regex: numRe
50
+ }, {
51
+ token: "constant",
52
+ regex: "[a-z0-9-_]+"
53
+ }, {
54
+ caseInsensitive: true
55
+ }],
63
56
  "media": [{
64
- include : ["strings", "url", "comments"]
65
- }, {
66
- token: "paren.lparen",
67
- regex: "\\{",
68
- next: "start"
69
- }, {
70
- token: "paren.rparen",
71
- regex: "\\}",
72
- next: "start"
73
- }, {
74
- token: "string",
75
- regex: ";",
76
- next: "start"
77
- }, {
78
- token: "keyword",
79
- regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
80
- + "|page|font|keyframes|viewport|counter-style|font-feature-values"
81
- + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
82
- }],
83
-
84
- "comments" : [{
85
- token: "comment", // multi line comment
86
- regex: "\\/\\*",
87
- push: [{
88
- token : "comment",
89
- regex : "\\*\\/",
90
- next : "pop"
57
+ include: ["strings", "url", "comments"]
91
58
  }, {
92
- defaultToken : "comment"
93
- }]
94
- }],
95
-
96
- "ruleset" : [{
97
- regex : "-(webkit|ms|moz|o)-",
98
- token : "text"
99
- }, {
100
- token : "punctuation.operator",
101
- regex : "[:;]"
102
- }, {
103
- token : "paren.rparen",
104
- regex : "\\}",
105
- next : "start"
106
- }, {
107
- include : ["strings", "url", "comments"]
108
- }, {
109
- token : ["constant.numeric", "keyword"],
110
- regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
111
- }, {
112
- token : "constant.numeric",
113
- regex : numRe
114
- }, {
115
- token : "constant.numeric", // hex6 color
116
- regex : "#[a-f0-9]{6}"
117
- }, {
118
- token : "constant.numeric", // hex3 color
119
- regex : "#[a-f0-9]{3}"
120
- }, {
121
- token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
122
- regex : pseudoElements
123
- }, {
124
- token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
125
- regex : pseudoClasses
126
- }, {
127
- include: "url"
128
- }, {
129
- token : keywordMapper,
130
- regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
131
- }, {
132
- caseInsensitive: true
133
- }],
134
-
135
- url: [{
136
- token : "support.function",
137
- regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
138
- push: [{
139
- token : "support.function",
140
- regex : "\\)",
141
- next : "pop"
59
+ token: "paren.lparen",
60
+ regex: "\\{",
61
+ next: "start"
142
62
  }, {
143
- defaultToken: "string"
144
- }]
145
- }],
146
-
147
- strings: [{
148
- token : "string.start",
149
- regex : "'",
150
- push : [{
151
- token : "string.end",
152
- regex : "'|$",
153
- next: "pop"
63
+ token: "paren.rparen",
64
+ regex: "\\}",
65
+ next: "start"
154
66
  }, {
155
- include : "escapes"
67
+ token: "string",
68
+ regex: ";",
69
+ next: "start"
156
70
  }, {
157
- token : "constant.language.escape",
158
- regex : /\\$/,
159
- consumeLineEnd: true
71
+ token: "keyword",
72
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
73
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
74
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
75
+ }],
76
+ "comments": [{
77
+ token: "comment",
78
+ regex: "\\/\\*",
79
+ push: [{
80
+ token: "comment",
81
+ regex: "\\*\\/",
82
+ next: "pop"
83
+ }, {
84
+ defaultToken: "comment"
85
+ }]
86
+ }],
87
+ "ruleset": [{
88
+ regex: "-(webkit|ms|moz|o)-",
89
+ token: "text"
160
90
  }, {
161
- defaultToken: "string"
162
- }]
163
- }, {
164
- token : "string.start",
165
- regex : '"',
166
- push : [{
167
- token : "string.end",
168
- regex : '"|$',
169
- next: "pop"
91
+ token: "punctuation.operator",
92
+ regex: "[:;]"
170
93
  }, {
171
- include : "escapes"
94
+ token: "paren.rparen",
95
+ regex: "\\}",
96
+ next: "start"
172
97
  }, {
173
- token : "constant.language.escape",
174
- regex : /\\$/,
175
- consumeLineEnd: true
98
+ include: ["strings", "url", "comments"]
176
99
  }, {
177
- defaultToken: "string"
178
- }]
179
- }],
100
+ token: ["constant.numeric", "keyword"],
101
+ regex: "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
102
+ }, {
103
+ token: "constant.numeric",
104
+ regex: numRe
105
+ }, {
106
+ token: "constant.numeric",
107
+ regex: "#[a-f0-9]{6}"
108
+ }, {
109
+ token: "constant.numeric",
110
+ regex: "#[a-f0-9]{3}"
111
+ }, {
112
+ token: ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
113
+ regex: pseudoElements
114
+ }, {
115
+ token: ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
116
+ regex: pseudoClasses
117
+ }, {
118
+ include: "url"
119
+ }, {
120
+ token: keywordMapper,
121
+ regex: "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
122
+ }, {
123
+ caseInsensitive: true
124
+ }],
125
+ url: [{
126
+ token: "support.function",
127
+ regex: "(?:url(:?-prefix)?|domain|regexp)\\(",
128
+ push: [{
129
+ token: "support.function",
130
+ regex: "\\)",
131
+ next: "pop"
132
+ }, {
133
+ defaultToken: "string"
134
+ }]
135
+ }],
136
+ strings: [{
137
+ token: "string.start",
138
+ regex: "'",
139
+ push: [{
140
+ token: "string.end",
141
+ regex: "'|$",
142
+ next: "pop"
143
+ }, {
144
+ include: "escapes"
145
+ }, {
146
+ token: "constant.language.escape",
147
+ regex: /\\$/,
148
+ consumeLineEnd: true
149
+ }, {
150
+ defaultToken: "string"
151
+ }]
152
+ }, {
153
+ token: "string.start",
154
+ regex: '"',
155
+ push: [{
156
+ token: "string.end",
157
+ regex: '"|$',
158
+ next: "pop"
159
+ }, {
160
+ include: "escapes"
161
+ }, {
162
+ token: "constant.language.escape",
163
+ regex: /\\$/,
164
+ consumeLineEnd: true
165
+ }, {
166
+ defaultToken: "string"
167
+ }]
168
+ }],
180
169
  escapes: [{
181
- token : "constant.language.escape",
182
- regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
183
- }]
184
-
170
+ token: "constant.language.escape",
171
+ regex: /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
172
+ }]
185
173
  };
186
-
187
174
  this.normalizeRules();
188
175
  };
189
-
190
176
  oop.inherits(CssHighlightRules, TextHighlightRules);
191
-
192
177
  exports.CssHighlightRules = CssHighlightRules;
193
178
 
194
179
  });
195
180
 
196
- ace.define("ace/mode/doc_comment_highlight_rules",[], function(require, exports, module) {
197
- "use strict";
198
-
181
+ ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
199
182
  var oop = require("../lib/oop");
200
183
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
201
-
202
- var DocCommentHighlightRules = function() {
184
+ var JsDocCommentHighlightRules = function () {
203
185
  this.$rules = {
204
- "start" : [ {
205
- token : "comment.doc.tag",
206
- regex : "@[\\w\\d_]+" // TODO: fix email addresses
207
- },
208
- DocCommentHighlightRules.getTagRule(),
209
- {
210
- defaultToken : "comment.doc",
211
- caseInsensitive: true
212
- }]
186
+ "start": [
187
+ {
188
+ token: ["comment.doc.tag", "comment.doc.text", "lparen.doc"],
189
+ regex: "(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",
190
+ push: [
191
+ {
192
+ token: "lparen.doc",
193
+ regex: "{",
194
+ push: [
195
+ {
196
+ include: "doc-syntax"
197
+ }, {
198
+ token: "rparen.doc",
199
+ regex: "}|(?=$)",
200
+ next: "pop"
201
+ }
202
+ ]
203
+ }, {
204
+ token: ["rparen.doc", "text.doc", "variable.parameter.doc", "lparen.doc", "variable.parameter.doc", "rparen.doc"],
205
+ regex: /(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,
206
+ next: "pop"
207
+ }, {
208
+ token: "rparen.doc",
209
+ regex: "}|(?=$)",
210
+ next: "pop"
211
+ }, {
212
+ include: "doc-syntax"
213
+ }, {
214
+ defaultToken: "text.doc"
215
+ }
216
+ ]
217
+ }, {
218
+ token: ["comment.doc.tag", "text.doc", "lparen.doc"],
219
+ regex: "(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|"
220
+ + "implements|external|exception|throws|enum|define|extends))(\\s*)({)",
221
+ push: [
222
+ {
223
+ token: "lparen.doc",
224
+ regex: "{",
225
+ push: [
226
+ {
227
+ include: "doc-syntax"
228
+ }, {
229
+ token: "rparen.doc",
230
+ regex: "}|(?=$)",
231
+ next: "pop"
232
+ }
233
+ ]
234
+ }, {
235
+ token: "rparen.doc",
236
+ regex: "}|(?=$)",
237
+ next: "pop"
238
+ }, {
239
+ include: "doc-syntax"
240
+ }, {
241
+ defaultToken: "text.doc"
242
+ }
243
+ ]
244
+ }, {
245
+ token: ["comment.doc.tag", "text.doc", "variable.parameter.doc"],
246
+ regex: "(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|"
247
+ + "requires|param|implements|function|extends|typedef|mixes|constructor|var|"
248
+ + "memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|"
249
+ + "throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#\.:\/~\"\\-]*)?"
250
+ }, {
251
+ token: ["comment.doc.tag", "text.doc", "variable.parameter.doc"],
252
+ regex: "(@method)(\\s+)(\\w[\\w\.\\(\\)]*)"
253
+ }, {
254
+ token: "comment.doc.tag",
255
+ regex: "@access\\s+(?:private|public|protected)"
256
+ }, {
257
+ token: "comment.doc.tag",
258
+ regex: "@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"
259
+ }, {
260
+ token: "comment.doc.tag",
261
+ regex: "@\\w+(?=\\s|$)"
262
+ },
263
+ JsDocCommentHighlightRules.getTagRule(),
264
+ {
265
+ defaultToken: "comment.doc",
266
+ caseInsensitive: true
267
+ }
268
+ ],
269
+ "doc-syntax": [{
270
+ token: "operator.doc",
271
+ regex: /[|:]/
272
+ }, {
273
+ token: "paren.doc",
274
+ regex: /[\[\]]/
275
+ }]
213
276
  };
277
+ this.normalizeRules();
214
278
  };
215
-
216
- oop.inherits(DocCommentHighlightRules, TextHighlightRules);
217
-
218
- DocCommentHighlightRules.getTagRule = function(start) {
279
+ oop.inherits(JsDocCommentHighlightRules, TextHighlightRules);
280
+ JsDocCommentHighlightRules.getTagRule = function (start) {
219
281
  return {
220
- token : "comment.doc.tag.storage.type",
221
- regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
282
+ token: "comment.doc.tag.storage.type",
283
+ regex: "\\b(?:TODO|FIXME|XXX|HACK)\\b"
222
284
  };
223
285
  };
224
-
225
- DocCommentHighlightRules.getStartRule = function(start) {
286
+ JsDocCommentHighlightRules.getStartRule = function (start) {
226
287
  return {
227
- token : "comment.doc", // doc comment
228
- regex : "\\/\\*(?=\\*)",
229
- next : start
288
+ token: "comment.doc",
289
+ regex: "\\/\\*(?=\\*)",
290
+ next: start
230
291
  };
231
292
  };
232
-
233
- DocCommentHighlightRules.getEndRule = function (start) {
293
+ JsDocCommentHighlightRules.getEndRule = function (start) {
234
294
  return {
235
- token : "comment.doc", // closing comment
236
- regex : "\\*\\/",
237
- next : start
295
+ token: "comment.doc",
296
+ regex: "\\*\\/",
297
+ next: start
238
298
  };
239
299
  };
240
-
241
-
242
- exports.DocCommentHighlightRules = DocCommentHighlightRules;
300
+ exports.JsDocCommentHighlightRules = JsDocCommentHighlightRules;
243
301
 
244
302
  });
245
303
 
246
- ace.define("ace/mode/javascript_highlight_rules",[], function(require, exports, module) {
247
- "use strict";
248
-
304
+ ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
249
305
  var oop = require("../lib/oop");
250
- var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
306
+ var DocCommentHighlightRules = require("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules;
251
307
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
252
308
  var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
253
-
254
- var JavaScriptHighlightRules = function(options) {
309
+ var JavaScriptHighlightRules = function (options) {
255
310
  var keywordMapper = this.createKeywordMapper({
256
- "variable.language":
257
- "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors
258
- "Namespace|QName|XML|XMLList|" + // E4X
259
- "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
260
- "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
261
- "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors
262
- "SyntaxError|TypeError|URIError|" +
311
+ "variable.language": "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|" + // Constructors
312
+ "Namespace|QName|XML|XMLList|" + // E4X
313
+ "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
314
+ "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
315
+ "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors
316
+ "SyntaxError|TypeError|URIError|" +
263
317
  "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions
264
- "isNaN|parseFloat|parseInt|" +
265
- "JSON|Math|" + // Other
266
- "this|arguments|prototype|window|document" , // Pseudo
267
- "keyword":
268
- "const|yield|import|get|set|async|await|" +
318
+ "isNaN|parseFloat|parseInt|" +
319
+ "JSON|Math|" + // Other
320
+ "this|arguments|prototype|window|document",
321
+ "keyword": "const|yield|import|get|set|async|await|" +
269
322
  "break|case|catch|continue|default|delete|do|else|finally|for|function|" +
270
323
  "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
271
324
  "__parent__|__count__|escape|unescape|with|__proto__|" +
272
- "class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
273
- "storage.type":
274
- "const|let|var|function",
275
- "constant.language":
276
- "null|Infinity|NaN|undefined",
277
- "support.function":
278
- "alert",
325
+ "class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor",
326
+ "storage.type": "const|let|var|function",
327
+ "constant.language": "null|Infinity|NaN|undefined",
328
+ "support.function": "alert",
279
329
  "constant.language.boolean": "true|false"
280
330
  }, "identifier");
281
331
  var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";
282
-
283
332
  var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
284
333
  "u[0-9a-fA-F]{4}|" + // unicode
285
334
  "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode
@@ -287,143 +336,142 @@ var JavaScriptHighlightRules = function(options) {
287
336
  "3[0-7][0-7]?|" + // oct
288
337
  "[4-7][0-7]?|" + //oct
289
338
  ".)";
290
-
291
339
  this.$rules = {
292
- "no_regex" : [
340
+ "no_regex": [
293
341
  DocCommentHighlightRules.getStartRule("doc-start"),
294
342
  comments("no_regex"),
295
343
  {
296
- token : "string",
297
- regex : "'(?=.)",
298
- next : "qstring"
344
+ token: "string",
345
+ regex: "'(?=.)",
346
+ next: "qstring"
299
347
  }, {
300
- token : "string",
301
- regex : '"(?=.)',
302
- next : "qqstring"
348
+ token: "string",
349
+ regex: '"(?=.)',
350
+ next: "qqstring"
303
351
  }, {
304
- token : "constant.numeric", // hexadecimal, octal and binary
305
- regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
352
+ token: "constant.numeric",
353
+ regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
306
354
  }, {
307
- token : "constant.numeric", // decimal integers and floats
308
- regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
355
+ token: "constant.numeric",
356
+ regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
309
357
  }, {
310
- token : [
358
+ token: [
311
359
  "storage.type", "punctuation.operator", "support.function",
312
- "punctuation.operator", "entity.name.function", "text","keyword.operator"
360
+ "punctuation.operator", "entity.name.function", "text", "keyword.operator"
313
361
  ],
314
- regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)",
362
+ regex: "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe + ")(\\s*)(=)",
315
363
  next: "function_arguments"
316
364
  }, {
317
- token : [
365
+ token: [
318
366
  "storage.type", "punctuation.operator", "entity.name.function", "text",
319
367
  "keyword.operator", "text", "storage.type", "text", "paren.lparen"
320
368
  ],
321
- regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
369
+ regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
322
370
  next: "function_arguments"
323
371
  }, {
324
- token : [
372
+ token: [
325
373
  "entity.name.function", "text", "keyword.operator", "text", "storage.type",
326
374
  "text", "paren.lparen"
327
375
  ],
328
- regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
376
+ regex: "(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
329
377
  next: "function_arguments"
330
378
  }, {
331
- token : [
379
+ token: [
332
380
  "storage.type", "punctuation.operator", "entity.name.function", "text",
333
381
  "keyword.operator", "text",
334
382
  "storage.type", "text", "entity.name.function", "text", "paren.lparen"
335
383
  ],
336
- regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",
384
+ regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",
337
385
  next: "function_arguments"
338
386
  }, {
339
- token : [
387
+ token: [
340
388
  "storage.type", "text", "entity.name.function", "text", "paren.lparen"
341
389
  ],
342
- regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
390
+ regex: "(function\\*?)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
343
391
  next: "function_arguments"
344
392
  }, {
345
- token : [
393
+ token: [
346
394
  "entity.name.function", "text", "punctuation.operator",
347
395
  "text", "storage.type", "text", "paren.lparen"
348
396
  ],
349
- regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",
397
+ regex: "(" + identifierRe + ")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",
350
398
  next: "function_arguments"
351
399
  }, {
352
- token : [
400
+ token: [
353
401
  "text", "text", "storage.type", "text", "paren.lparen"
354
402
  ],
355
- regex : "(:)(\\s*)(function)(\\s*)(\\()",
403
+ regex: "(:)(\\s*)(function\\*?)(\\s*)(\\()",
356
404
  next: "function_arguments"
357
405
  }, {
358
- token : "keyword",
359
- regex : "from(?=\\s*('|\"))"
406
+ token: "keyword",
407
+ regex: "from(?=\\s*('|\"))"
360
408
  }, {
361
- token : "keyword",
362
- regex : "(?:" + kwBeforeRe + ")\\b",
363
- next : "start"
409
+ token: "keyword",
410
+ regex: "(?:" + kwBeforeRe + ")\\b",
411
+ next: "start"
364
412
  }, {
365
- token : ["support.constant"],
366
- regex : /that\b/
413
+ token: "support.constant",
414
+ regex: /that\b/
367
415
  }, {
368
- token : ["storage.type", "punctuation.operator", "support.function.firebug"],
369
- regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
416
+ token: ["storage.type", "punctuation.operator", "support.function.firebug"],
417
+ regex: /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
370
418
  }, {
371
- token : keywordMapper,
372
- regex : identifierRe
419
+ token: keywordMapper,
420
+ regex: identifierRe
373
421
  }, {
374
- token : "punctuation.operator",
375
- regex : /[.](?![.])/,
376
- next : "property"
422
+ token: "punctuation.operator",
423
+ regex: /[.](?![.])/,
424
+ next: "property"
377
425
  }, {
378
- token : "storage.type",
379
- regex : /=>/,
380
- next : "start"
426
+ token: "storage.type",
427
+ regex: /=>/,
428
+ next: "start"
381
429
  }, {
382
- token : "keyword.operator",
383
- regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
384
- next : "start"
430
+ token: "keyword.operator",
431
+ regex: /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
432
+ next: "start"
385
433
  }, {
386
- token : "punctuation.operator",
387
- regex : /[?:,;.]/,
388
- next : "start"
434
+ token: "punctuation.operator",
435
+ regex: /[?:,;.]/,
436
+ next: "start"
389
437
  }, {
390
- token : "paren.lparen",
391
- regex : /[\[({]/,
392
- next : "start"
438
+ token: "paren.lparen",
439
+ regex: /[\[({]/,
440
+ next: "start"
393
441
  }, {
394
- token : "paren.rparen",
395
- regex : /[\])}]/
442
+ token: "paren.rparen",
443
+ regex: /[\])}]/
396
444
  }, {
397
445
  token: "comment",
398
446
  regex: /^#!.*$/
399
447
  }
400
448
  ],
401
449
  property: [{
402
- token : "text",
403
- regex : "\\s+"
450
+ token: "text",
451
+ regex: "\\s+"
404
452
  }, {
405
- token : [
453
+ token: [
406
454
  "storage.type", "punctuation.operator", "entity.name.function", "text",
407
455
  "keyword.operator", "text",
408
456
  "storage.type", "text", "entity.name.function", "text", "paren.lparen"
409
457
  ],
410
- regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",
458
+ regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",
411
459
  next: "function_arguments"
412
460
  }, {
413
- token : "punctuation.operator",
414
- regex : /[.](?![.])/
461
+ token: "punctuation.operator",
462
+ regex: /[.](?![.])/
415
463
  }, {
416
- token : "support.function",
417
- regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/
464
+ token: "support.function",
465
+ regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/
418
466
  }, {
419
- token : "support.function.dom",
420
- regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/
467
+ token: "support.function.dom",
468
+ regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/
421
469
  }, {
422
- token : "support.constant",
423
- regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
470
+ token: "support.constant",
471
+ regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
424
472
  }, {
425
- token : "identifier",
426
- regex : identifierRe
473
+ token: "identifier",
474
+ regex: identifierRe
427
475
  }, {
428
476
  regex: "",
429
477
  token: "empty",
@@ -438,9 +486,9 @@ var JavaScriptHighlightRules = function(options) {
438
486
  regex: "\\/",
439
487
  next: "regex"
440
488
  }, {
441
- token : "text",
442
- regex : "\\s+|^$",
443
- next : "start"
489
+ token: "text",
490
+ regex: "\\s+|^$",
491
+ next: "start"
444
492
  }, {
445
493
  token: "empty",
446
494
  regex: "",
@@ -456,13 +504,13 @@ var JavaScriptHighlightRules = function(options) {
456
504
  regex: "/[sxngimy]*",
457
505
  next: "no_regex"
458
506
  }, {
459
- token : "invalid",
507
+ token: "invalid",
460
508
  regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
461
509
  }, {
462
- token : "constant.language.escape",
510
+ token: "constant.language.escape",
463
511
  regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
464
512
  }, {
465
- token : "constant.language.delimiter",
513
+ token: "constant.language.delimiter",
466
514
  regex: /\|/
467
515
  }, {
468
516
  token: "constant.language.escape",
@@ -495,13 +543,67 @@ var JavaScriptHighlightRules = function(options) {
495
543
  defaultToken: "string.regexp.charachterclass"
496
544
  }
497
545
  ],
546
+ "default_parameter": [
547
+ {
548
+ token: "string",
549
+ regex: "'(?=.)",
550
+ push: [
551
+ {
552
+ token: "string",
553
+ regex: "'|$",
554
+ next: "pop"
555
+ }, {
556
+ include: "qstring"
557
+ }
558
+ ]
559
+ }, {
560
+ token: "string",
561
+ regex: '"(?=.)',
562
+ push: [
563
+ {
564
+ token: "string",
565
+ regex: '"|$',
566
+ next: "pop"
567
+ }, {
568
+ include: "qqstring"
569
+ }
570
+ ]
571
+ }, {
572
+ token: "constant.language",
573
+ regex: "null|Infinity|NaN|undefined"
574
+ }, {
575
+ token: "constant.numeric",
576
+ regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
577
+ }, {
578
+ token: "constant.numeric",
579
+ regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
580
+ }, {
581
+ token: "punctuation.operator",
582
+ regex: ",",
583
+ next: "function_arguments"
584
+ }, {
585
+ token: "text",
586
+ regex: "\\s+"
587
+ }, {
588
+ token: "punctuation.operator",
589
+ regex: "$"
590
+ }, {
591
+ token: "empty",
592
+ regex: "",
593
+ next: "no_regex"
594
+ }
595
+ ],
498
596
  "function_arguments": [
597
+ comments("function_arguments"),
499
598
  {
500
599
  token: "variable.parameter",
501
600
  regex: identifierRe
502
601
  }, {
503
602
  token: "punctuation.operator",
504
- regex: "[, ]+"
603
+ regex: ","
604
+ }, {
605
+ token: "text",
606
+ regex: "\\s+"
505
607
  }, {
506
608
  token: "punctuation.operator",
507
609
  regex: "$"
@@ -511,44 +613,42 @@ var JavaScriptHighlightRules = function(options) {
511
613
  next: "no_regex"
512
614
  }
513
615
  ],
514
- "qqstring" : [
616
+ "qqstring": [
515
617
  {
516
- token : "constant.language.escape",
517
- regex : escapedRe
618
+ token: "constant.language.escape",
619
+ regex: escapedRe
518
620
  }, {
519
- token : "string",
520
- regex : "\\\\$",
521
- consumeLineEnd : true
621
+ token: "string",
622
+ regex: "\\\\$",
623
+ consumeLineEnd: true
522
624
  }, {
523
- token : "string",
524
- regex : '"|$',
525
- next : "no_regex"
625
+ token: "string",
626
+ regex: '"|$',
627
+ next: "no_regex"
526
628
  }, {
527
629
  defaultToken: "string"
528
630
  }
529
631
  ],
530
- "qstring" : [
632
+ "qstring": [
531
633
  {
532
- token : "constant.language.escape",
533
- regex : escapedRe
634
+ token: "constant.language.escape",
635
+ regex: escapedRe
534
636
  }, {
535
- token : "string",
536
- regex : "\\\\$",
537
- consumeLineEnd : true
637
+ token: "string",
638
+ regex: "\\\\$",
639
+ consumeLineEnd: true
538
640
  }, {
539
- token : "string",
540
- regex : "'|$",
541
- next : "no_regex"
641
+ token: "string",
642
+ regex: "'|$",
643
+ next: "no_regex"
542
644
  }, {
543
645
  defaultToken: "string"
544
646
  }
545
647
  ]
546
648
  };
547
-
548
-
549
649
  if (!options || !options.noES6) {
550
650
  this.$rules.no_regex.unshift({
551
- regex: "[{}]", onMatch: function(val, state, stack) {
651
+ regex: "[{}]", onMatch: function (val, state, stack) {
552
652
  this.next = val == "{" ? this.nextState : "";
553
653
  if (val == "{" && stack.length) {
554
654
  stack.unshift("start", state);
@@ -563,40 +663,60 @@ var JavaScriptHighlightRules = function(options) {
563
663
  },
564
664
  nextState: "start"
565
665
  }, {
566
- token : "string.quasi.start",
567
- regex : /`/,
568
- push : [{
569
- token : "constant.language.escape",
570
- regex : escapedRe
571
- }, {
572
- token : "paren.quasi.start",
573
- regex : /\${/,
574
- push : "start"
575
- }, {
576
- token : "string.quasi.end",
577
- regex : /`/,
578
- next : "pop"
579
- }, {
580
- defaultToken: "string.quasi"
581
- }]
666
+ token: "string.quasi.start",
667
+ regex: /`/,
668
+ push: [{
669
+ token: "constant.language.escape",
670
+ regex: escapedRe
671
+ }, {
672
+ token: "paren.quasi.start",
673
+ regex: /\${/,
674
+ push: "start"
675
+ }, {
676
+ token: "string.quasi.end",
677
+ regex: /`/,
678
+ next: "pop"
679
+ }, {
680
+ defaultToken: "string.quasi"
681
+ }]
682
+ }, {
683
+ token: ["variable.parameter", "text"],
684
+ regex: "(" + identifierRe + ")(\\s*)(?=\\=>)"
685
+ }, {
686
+ token: "paren.lparen",
687
+ regex: "(\\()(?=.+\\s*=>)",
688
+ next: "function_arguments"
689
+ }, {
690
+ token: "variable.language",
691
+ regex: "(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"
692
+ });
693
+ this.$rules["function_arguments"].unshift({
694
+ token: "keyword.operator",
695
+ regex: "=",
696
+ next: "default_parameter"
697
+ }, {
698
+ token: "keyword.operator",
699
+ regex: "\\.{3}"
700
+ });
701
+ this.$rules["property"].unshift({
702
+ token: "support.function",
703
+ regex: "(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|"
704
+ + "finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"
705
+ }, {
706
+ token: "constant.language",
707
+ regex: "(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"
582
708
  });
583
-
584
709
  if (!options || options.jsx != false)
585
710
  JSX.call(this);
586
711
  }
587
-
588
- this.embedRules(DocCommentHighlightRules, "doc-",
589
- [ DocCommentHighlightRules.getEndRule("no_regex") ]);
590
-
712
+ this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("no_regex")]);
591
713
  this.normalizeRules();
592
714
  };
593
-
594
715
  oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
595
-
596
716
  function JSX() {
597
717
  var tagRegex = identifierRe.replace("\\d", "\\d\\-");
598
718
  var jsxTag = {
599
- onMatch : function(val, state, stack) {
719
+ onMatch: function (val, state, stack) {
600
720
  var offset = val.charAt(1) == "/" ? 2 : 1;
601
721
  if (offset == 1) {
602
722
  if (state != this.nextState)
@@ -604,7 +724,8 @@ function JSX() {
604
724
  else
605
725
  stack.unshift(this.next);
606
726
  stack[2]++;
607
- } else if (offset == 2) {
727
+ }
728
+ else if (offset == 2) {
608
729
  if (state == this.nextState) {
609
730
  stack[1]--;
610
731
  if (!stack[1] || stack[1] < 0) {
@@ -614,14 +735,14 @@ function JSX() {
614
735
  }
615
736
  }
616
737
  return [{
617
- type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml",
618
- value: val.slice(0, offset)
619
- }, {
620
- type: "meta.tag.tag-name.xml",
621
- value: val.substr(offset)
622
- }];
738
+ type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml",
739
+ value: val.slice(0, offset)
740
+ }, {
741
+ type: "meta.tag.tag-name.xml",
742
+ value: val.substr(offset)
743
+ }];
623
744
  },
624
- regex : "</?" + tagRegex + "",
745
+ regex: "</?" + tagRegex + "",
625
746
  next: "jsxAttributes",
626
747
  nextState: "jsx"
627
748
  };
@@ -634,443 +755,396 @@ function JSX() {
634
755
  this.$rules.jsx = [
635
756
  jsxJsRule,
636
757
  jsxTag,
637
- {include : "reference"},
638
- {defaultToken: "string"}
758
+ { include: "reference" },
759
+ { defaultToken: "string" }
639
760
  ];
640
761
  this.$rules.jsxAttributes = [{
641
- token : "meta.tag.punctuation.tag-close.xml",
642
- regex : "/?>",
643
- onMatch : function(value, currentState, stack) {
644
- if (currentState == stack[0])
645
- stack.shift();
646
- if (value.length == 2) {
647
- if (stack[0] == this.nextState)
648
- stack[1]--;
649
- if (!stack[1] || stack[1] < 0) {
650
- stack.splice(0, 2);
762
+ token: "meta.tag.punctuation.tag-close.xml",
763
+ regex: "/?>",
764
+ onMatch: function (value, currentState, stack) {
765
+ if (currentState == stack[0])
766
+ stack.shift();
767
+ if (value.length == 2) {
768
+ if (stack[0] == this.nextState)
769
+ stack[1]--;
770
+ if (!stack[1] || stack[1] < 0) {
771
+ stack.splice(0, 2);
772
+ }
651
773
  }
652
- }
653
- this.next = stack[0] || "start";
654
- return [{type: this.token, value: value}];
774
+ this.next = stack[0] || "start";
775
+ return [{ type: this.token, value: value }];
776
+ },
777
+ nextState: "jsx"
655
778
  },
656
- nextState: "jsx"
657
- },
658
- jsxJsRule,
659
- comments("jsxAttributes"),
660
- {
661
- token : "entity.other.attribute-name.xml",
662
- regex : tagRegex
663
- }, {
664
- token : "keyword.operator.attribute-equals.xml",
665
- regex : "="
666
- }, {
667
- token : "text.tag-whitespace.xml",
668
- regex : "\\s+"
669
- }, {
670
- token : "string.attribute-value.xml",
671
- regex : "'",
672
- stateName : "jsx_attr_q",
673
- push : [
674
- {token : "string.attribute-value.xml", regex: "'", next: "pop"},
675
- {include : "reference"},
676
- {defaultToken : "string.attribute-value.xml"}
677
- ]
678
- }, {
679
- token : "string.attribute-value.xml",
680
- regex : '"',
681
- stateName : "jsx_attr_qq",
682
- push : [
683
- {token : "string.attribute-value.xml", regex: '"', next: "pop"},
684
- {include : "reference"},
685
- {defaultToken : "string.attribute-value.xml"}
686
- ]
687
- },
688
- jsxTag
779
+ jsxJsRule,
780
+ comments("jsxAttributes"),
781
+ {
782
+ token: "entity.other.attribute-name.xml",
783
+ regex: tagRegex
784
+ }, {
785
+ token: "keyword.operator.attribute-equals.xml",
786
+ regex: "="
787
+ }, {
788
+ token: "text.tag-whitespace.xml",
789
+ regex: "\\s+"
790
+ }, {
791
+ token: "string.attribute-value.xml",
792
+ regex: "'",
793
+ stateName: "jsx_attr_q",
794
+ push: [
795
+ { token: "string.attribute-value.xml", regex: "'", next: "pop" },
796
+ { include: "reference" },
797
+ { defaultToken: "string.attribute-value.xml" }
798
+ ]
799
+ }, {
800
+ token: "string.attribute-value.xml",
801
+ regex: '"',
802
+ stateName: "jsx_attr_qq",
803
+ push: [
804
+ { token: "string.attribute-value.xml", regex: '"', next: "pop" },
805
+ { include: "reference" },
806
+ { defaultToken: "string.attribute-value.xml" }
807
+ ]
808
+ },
809
+ jsxTag
689
810
  ];
690
811
  this.$rules.reference = [{
691
- token : "constant.language.escape.reference.xml",
692
- regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
693
- }];
812
+ token: "constant.language.escape.reference.xml",
813
+ regex: "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
814
+ }];
694
815
  }
695
-
696
816
  function comments(next) {
697
817
  return [
698
818
  {
699
- token : "comment", // multi line comment
700
- regex : /\/\*/,
819
+ token: "comment",
820
+ regex: /\/\*/,
701
821
  next: [
702
822
  DocCommentHighlightRules.getTagRule(),
703
- {token : "comment", regex : "\\*\\/", next : next || "pop"},
704
- {defaultToken : "comment", caseInsensitive: true}
823
+ { token: "comment", regex: "\\*\\/", next: next || "pop" },
824
+ { defaultToken: "comment", caseInsensitive: true }
705
825
  ]
706
826
  }, {
707
- token : "comment",
708
- regex : "\\/\\/",
827
+ token: "comment",
828
+ regex: "\\/\\/",
709
829
  next: [
710
830
  DocCommentHighlightRules.getTagRule(),
711
- {token : "comment", regex : "$|^", next : next || "pop"},
712
- {defaultToken : "comment", caseInsensitive: true}
831
+ { token: "comment", regex: "$|^", next: next || "pop" },
832
+ { defaultToken: "comment", caseInsensitive: true }
713
833
  ]
714
834
  }
715
835
  ];
716
836
  }
717
837
  exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
718
- });
719
838
 
720
- ace.define("ace/mode/xml_highlight_rules",[], function(require, exports, module) {
721
- "use strict";
839
+ });
722
840
 
841
+ ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
723
842
  var oop = require("../lib/oop");
724
843
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
725
-
726
- var XmlHighlightRules = function(normalize) {
844
+ var XmlHighlightRules = function (normalize) {
727
845
  var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*";
728
-
729
846
  this.$rules = {
730
- start : [
731
- {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
847
+ start: [
848
+ { token: "string.cdata.xml", regex: "<\\!\\[CDATA\\[", next: "cdata" },
732
849
  {
733
- token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
734
- regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
850
+ token: ["punctuation.instruction.xml", "keyword.instruction.xml"],
851
+ regex: "(<\\?)(" + tagRegex + ")", next: "processing_instruction"
735
852
  },
736
- {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
853
+ { token: "comment.start.xml", regex: "<\\!--", next: "comment" },
737
854
  {
738
- token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
739
- regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
855
+ token: ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
856
+ regex: "(<\\!)(DOCTYPE)(?=[\\s])", next: "doctype", caseInsensitive: true
740
857
  },
741
- {include : "tag"},
742
- {token : "text.end-tag-open.xml", regex: "</"},
743
- {token : "text.tag-open.xml", regex: "<"},
744
- {include : "reference"},
745
- {defaultToken : "text.xml"}
858
+ { include: "tag" },
859
+ { token: "text.end-tag-open.xml", regex: "</" },
860
+ { token: "text.tag-open.xml", regex: "<" },
861
+ { include: "reference" },
862
+ { defaultToken: "text.xml" }
746
863
  ],
747
-
748
- processing_instruction : [{
749
- token : "entity.other.attribute-name.decl-attribute-name.xml",
750
- regex : tagRegex
751
- }, {
752
- token : "keyword.operator.decl-attribute-equals.xml",
753
- regex : "="
754
- }, {
755
- include: "whitespace"
756
- }, {
757
- include: "string"
758
- }, {
759
- token : "punctuation.xml-decl.xml",
760
- regex : "\\?>",
761
- next : "start"
762
- }],
763
-
764
- doctype : [
765
- {include : "whitespace"},
766
- {include : "string"},
767
- {token : "xml-pe.doctype.xml", regex : ">", next : "start"},
768
- {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"},
769
- {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"}
864
+ processing_instruction: [{
865
+ token: "entity.other.attribute-name.decl-attribute-name.xml",
866
+ regex: tagRegex
867
+ }, {
868
+ token: "keyword.operator.decl-attribute-equals.xml",
869
+ regex: "="
870
+ }, {
871
+ include: "whitespace"
872
+ }, {
873
+ include: "string"
874
+ }, {
875
+ token: "punctuation.xml-decl.xml",
876
+ regex: "\\?>",
877
+ next: "start"
878
+ }],
879
+ doctype: [
880
+ { include: "whitespace" },
881
+ { include: "string" },
882
+ { token: "xml-pe.doctype.xml", regex: ">", next: "start" },
883
+ { token: "xml-pe.xml", regex: "[-_a-zA-Z0-9:]+" },
884
+ { token: "punctuation.int-subset", regex: "\\[", push: "int_subset" }
770
885
  ],
771
-
772
- int_subset : [{
773
- token : "text.xml",
774
- regex : "\\s+"
775
- }, {
776
- token: "punctuation.int-subset.xml",
777
- regex: "]",
778
- next: "pop"
779
- }, {
780
- token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"],
781
- regex : "(<\\!)(" + tagRegex + ")",
782
- push : [{
783
- token : "text",
784
- regex : "\\s+"
785
- },
786
- {
787
- token : "punctuation.markup-decl.xml",
788
- regex : ">",
789
- next : "pop"
790
- },
791
- {include : "string"}]
792
- }],
793
-
794
- cdata : [
795
- {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"},
796
- {token : "text.xml", regex : "\\s+"},
797
- {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"}
886
+ int_subset: [{
887
+ token: "text.xml",
888
+ regex: "\\s+"
889
+ }, {
890
+ token: "punctuation.int-subset.xml",
891
+ regex: "]",
892
+ next: "pop"
893
+ }, {
894
+ token: ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"],
895
+ regex: "(<\\!)(" + tagRegex + ")",
896
+ push: [{
897
+ token: "text",
898
+ regex: "\\s+"
899
+ },
900
+ {
901
+ token: "punctuation.markup-decl.xml",
902
+ regex: ">",
903
+ next: "pop"
904
+ },
905
+ { include: "string" }]
906
+ }],
907
+ cdata: [
908
+ { token: "string.cdata.xml", regex: "\\]\\]>", next: "start" },
909
+ { token: "text.xml", regex: "\\s+" },
910
+ { token: "text.xml", regex: "(?:[^\\]]|\\](?!\\]>))+" }
798
911
  ],
799
-
800
- comment : [
801
- {token : "comment.end.xml", regex : "-->", next : "start"},
802
- {defaultToken : "comment.xml"}
912
+ comment: [
913
+ { token: "comment.end.xml", regex: "-->", next: "start" },
914
+ { defaultToken: "comment.xml" }
803
915
  ],
804
-
805
- reference : [{
806
- token : "constant.language.escape.reference.xml",
807
- regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
808
- }],
809
-
810
- attr_reference : [{
811
- token : "constant.language.escape.reference.attribute-value.xml",
812
- regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
813
- }],
814
-
815
- tag : [{
816
- token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"],
817
- regex : "(?:(<)|(</))((?:" + tagRegex + ":)?" + tagRegex + ")",
818
- next: [
819
- {include : "attributes"},
820
- {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
821
- ]
822
- }],
823
-
824
- tag_whitespace : [
825
- {token : "text.tag-whitespace.xml", regex : "\\s+"}
916
+ reference: [{
917
+ token: "constant.language.escape.reference.xml",
918
+ regex: "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
919
+ }],
920
+ attr_reference: [{
921
+ token: "constant.language.escape.reference.attribute-value.xml",
922
+ regex: "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
923
+ }],
924
+ tag: [{
925
+ token: ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"],
926
+ regex: "(?:(<)|(</))((?:" + tagRegex + ":)?" + tagRegex + ")",
927
+ next: [
928
+ { include: "attributes" },
929
+ { token: "meta.tag.punctuation.tag-close.xml", regex: "/?>", next: "start" }
930
+ ]
931
+ }],
932
+ tag_whitespace: [
933
+ { token: "text.tag-whitespace.xml", regex: "\\s+" }
826
934
  ],
827
- whitespace : [
828
- {token : "text.whitespace.xml", regex : "\\s+"}
935
+ whitespace: [
936
+ { token: "text.whitespace.xml", regex: "\\s+" }
829
937
  ],
830
938
  string: [{
831
- token : "string.xml",
832
- regex : "'",
833
- push : [
834
- {token : "string.xml", regex: "'", next: "pop"},
835
- {defaultToken : "string.xml"}
836
- ]
837
- }, {
838
- token : "string.xml",
839
- regex : '"',
840
- push : [
841
- {token : "string.xml", regex: '"', next: "pop"},
842
- {defaultToken : "string.xml"}
843
- ]
844
- }],
845
-
939
+ token: "string.xml",
940
+ regex: "'",
941
+ push: [
942
+ { token: "string.xml", regex: "'", next: "pop" },
943
+ { defaultToken: "string.xml" }
944
+ ]
945
+ }, {
946
+ token: "string.xml",
947
+ regex: '"',
948
+ push: [
949
+ { token: "string.xml", regex: '"', next: "pop" },
950
+ { defaultToken: "string.xml" }
951
+ ]
952
+ }],
846
953
  attributes: [{
847
- token : "entity.other.attribute-name.xml",
848
- regex : tagRegex
849
- }, {
850
- token : "keyword.operator.attribute-equals.xml",
851
- regex : "="
852
- }, {
853
- include: "tag_whitespace"
854
- }, {
855
- include: "attribute_value"
856
- }],
857
-
954
+ token: "entity.other.attribute-name.xml",
955
+ regex: tagRegex
956
+ }, {
957
+ token: "keyword.operator.attribute-equals.xml",
958
+ regex: "="
959
+ }, {
960
+ include: "tag_whitespace"
961
+ }, {
962
+ include: "attribute_value"
963
+ }],
858
964
  attribute_value: [{
859
- token : "string.attribute-value.xml",
860
- regex : "'",
861
- push : [
862
- {token : "string.attribute-value.xml", regex: "'", next: "pop"},
863
- {include : "attr_reference"},
864
- {defaultToken : "string.attribute-value.xml"}
865
- ]
866
- }, {
867
- token : "string.attribute-value.xml",
868
- regex : '"',
869
- push : [
870
- {token : "string.attribute-value.xml", regex: '"', next: "pop"},
871
- {include : "attr_reference"},
872
- {defaultToken : "string.attribute-value.xml"}
873
- ]
874
- }]
965
+ token: "string.attribute-value.xml",
966
+ regex: "'",
967
+ push: [
968
+ { token: "string.attribute-value.xml", regex: "'", next: "pop" },
969
+ { include: "attr_reference" },
970
+ { defaultToken: "string.attribute-value.xml" }
971
+ ]
972
+ }, {
973
+ token: "string.attribute-value.xml",
974
+ regex: '"',
975
+ push: [
976
+ { token: "string.attribute-value.xml", regex: '"', next: "pop" },
977
+ { include: "attr_reference" },
978
+ { defaultToken: "string.attribute-value.xml" }
979
+ ]
980
+ }]
875
981
  };
876
-
877
982
  if (this.constructor === XmlHighlightRules)
878
983
  this.normalizeRules();
879
984
  };
880
-
881
-
882
- (function() {
883
-
884
- this.embedTagRules = function(HighlightRules, prefix, tag){
985
+ (function () {
986
+ this.embedTagRules = function (HighlightRules, prefix, tag) {
885
987
  this.$rules.tag.unshift({
886
- token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
887
- regex : "(<)(" + tag + "(?=\\s|>|$))",
988
+ token: ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
989
+ regex: "(<)(" + tag + "(?=\\s|>|$))",
888
990
  next: [
889
- {include : "attributes"},
890
- {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"}
991
+ { include: "attributes" },
992
+ { token: "meta.tag.punctuation.tag-close.xml", regex: "/?>", next: prefix + "start" }
891
993
  ]
892
994
  });
893
-
894
995
  this.$rules[tag + "-end"] = [
895
- {include : "attributes"},
896
- {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start",
897
- onMatch : function(value, currentState, stack) {
996
+ { include: "attributes" },
997
+ { token: "meta.tag.punctuation.tag-close.xml", regex: "/?>", next: "start",
998
+ onMatch: function (value, currentState, stack) {
898
999
  stack.splice(0);
899
1000
  return this.token;
900
- }}
1001
+ } }
901
1002
  ];
902
-
903
1003
  this.embedRules(HighlightRules, prefix, [{
904
- token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
905
- regex : "(</)(" + tag + "(?=\\s|>|$))",
906
- next: tag + "-end"
907
- }, {
908
- token: "string.cdata.xml",
909
- regex : "<\\!\\[CDATA\\["
910
- }, {
911
- token: "string.cdata.xml",
912
- regex : "\\]\\]>"
913
- }]);
1004
+ token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
1005
+ regex: "(</)(" + tag + "(?=\\s|>|$))",
1006
+ next: tag + "-end"
1007
+ }, {
1008
+ token: "string.cdata.xml",
1009
+ regex: "<\\!\\[CDATA\\["
1010
+ }, {
1011
+ token: "string.cdata.xml",
1012
+ regex: "\\]\\]>"
1013
+ }]);
914
1014
  };
915
-
916
1015
  }).call(TextHighlightRules.prototype);
917
-
918
1016
  oop.inherits(XmlHighlightRules, TextHighlightRules);
919
-
920
1017
  exports.XmlHighlightRules = XmlHighlightRules;
921
- });
922
1018
 
923
- ace.define("ace/mode/html_highlight_rules",[], function(require, exports, module) {
924
- "use strict";
1019
+ });
925
1020
 
1021
+ ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module){"use strict";
926
1022
  var oop = require("../lib/oop");
927
1023
  var lang = require("../lib/lang");
928
1024
  var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
929
1025
  var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
930
1026
  var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules;
931
-
932
1027
  var tagMap = lang.createMap({
933
- a : 'anchor',
934
- button : 'form',
935
- form : 'form',
936
- img : 'image',
937
- input : 'form',
938
- label : 'form',
939
- option : 'form',
940
- script : 'script',
941
- select : 'form',
942
- textarea : 'form',
943
- style : 'style',
944
- table : 'table',
945
- tbody : 'table',
946
- td : 'table',
947
- tfoot : 'table',
948
- th : 'table',
949
- tr : 'table'
1028
+ a: 'anchor',
1029
+ button: 'form',
1030
+ form: 'form',
1031
+ img: 'image',
1032
+ input: 'form',
1033
+ label: 'form',
1034
+ option: 'form',
1035
+ script: 'script',
1036
+ select: 'form',
1037
+ textarea: 'form',
1038
+ style: 'style',
1039
+ table: 'table',
1040
+ tbody: 'table',
1041
+ td: 'table',
1042
+ tfoot: 'table',
1043
+ th: 'table',
1044
+ tr: 'table'
950
1045
  });
951
-
952
- var HtmlHighlightRules = function() {
1046
+ var HtmlHighlightRules = function () {
953
1047
  XmlHighlightRules.call(this);
954
-
955
1048
  this.addRules({
956
1049
  attributes: [{
957
- include : "tag_whitespace"
958
- }, {
959
- token : "entity.other.attribute-name.xml",
960
- regex : "[-_a-zA-Z0-9:.]+"
961
- }, {
962
- token : "keyword.operator.attribute-equals.xml",
963
- regex : "=",
964
- push : [{
965
1050
  include: "tag_whitespace"
966
1051
  }, {
967
- token : "string.unquoted.attribute-value.html",
968
- regex : "[^<>='\"`\\s]+",
969
- next : "pop"
1052
+ token: "entity.other.attribute-name.xml",
1053
+ regex: "[-_a-zA-Z0-9:.]+"
970
1054
  }, {
971
- token : "empty",
972
- regex : "",
973
- next : "pop"
974
- }]
975
- }, {
976
- include : "attribute_value"
977
- }],
1055
+ token: "keyword.operator.attribute-equals.xml",
1056
+ regex: "=",
1057
+ push: [{
1058
+ include: "tag_whitespace"
1059
+ }, {
1060
+ token: "string.unquoted.attribute-value.html",
1061
+ regex: "[^<>='\"`\\s]+",
1062
+ next: "pop"
1063
+ }, {
1064
+ token: "empty",
1065
+ regex: "",
1066
+ next: "pop"
1067
+ }]
1068
+ }, {
1069
+ include: "attribute_value"
1070
+ }],
978
1071
  tag: [{
979
- token : function(start, tag) {
980
- var group = tagMap[tag];
981
- return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml",
982
- "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"];
983
- },
984
- regex : "(</?)([-_a-zA-Z0-9:.]+)",
985
- next: "tag_stuff"
986
- }],
1072
+ token: function (start, tag) {
1073
+ var group = tagMap[tag];
1074
+ return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml",
1075
+ "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"];
1076
+ },
1077
+ regex: "(</?)([-_a-zA-Z0-9:.]+)",
1078
+ next: "tag_stuff"
1079
+ }],
987
1080
  tag_stuff: [
988
- {include : "attributes"},
989
- {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
1081
+ { include: "attributes" },
1082
+ { token: "meta.tag.punctuation.tag-close.xml", regex: "/?>", next: "start" }
990
1083
  ]
991
1084
  });
992
-
993
1085
  this.embedTagRules(CssHighlightRules, "css-", "style");
994
- this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script");
995
-
1086
+ this.embedTagRules(new JavaScriptHighlightRules({ jsx: false }).getRules(), "js-", "script");
996
1087
  if (this.constructor === HtmlHighlightRules)
997
1088
  this.normalizeRules();
998
1089
  };
999
-
1000
1090
  oop.inherits(HtmlHighlightRules, XmlHighlightRules);
1001
-
1002
1091
  exports.HtmlHighlightRules = HtmlHighlightRules;
1003
- });
1004
1092
 
1005
- ace.define("ace/mode/ruby_highlight_rules",[], function(require, exports, module) {
1006
- "use strict";
1093
+ });
1007
1094
 
1095
+ ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
1008
1096
  var oop = require("../lib/oop");
1009
1097
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
1010
1098
  var constantOtherSymbol = exports.constantOtherSymbol = {
1011
- token : "constant.other.symbol.ruby", // symbol
1012
- regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"
1099
+ token: "constant.other.symbol.ruby",
1100
+ regex: "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"
1013
1101
  };
1014
-
1015
1102
  exports.qString = {
1016
- token : "string", // single line
1017
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
1103
+ token: "string",
1104
+ regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
1018
1105
  };
1019
-
1020
1106
  exports.qqString = {
1021
- token : "string", // single line
1022
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
1107
+ token: "string",
1108
+ regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
1023
1109
  };
1024
-
1025
1110
  exports.tString = {
1026
- token : "string", // backtick string
1027
- regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"
1111
+ token: "string",
1112
+ regex: "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"
1028
1113
  };
1029
-
1030
1114
  var constantNumericHex = exports.constantNumericHex = {
1031
- token : "constant.numeric", // hex
1032
- regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"
1115
+ token: "constant.numeric",
1116
+ regex: "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"
1033
1117
  };
1034
-
1035
1118
  var constantNumericBinary = exports.constantNumericBinary = {
1036
1119
  token: "constant.numeric",
1037
1120
  regex: /\b(0[bB][01](?:[01]|_(?=[01]))*)\b/
1038
1121
  };
1039
-
1040
1122
  var constantNumericDecimal = exports.constantNumericDecimal = {
1041
1123
  token: "constant.numeric",
1042
1124
  regex: /\b(0[dD](?:[1-9](?:[\d]|_(?=[\d]))*|0))\b/
1043
1125
  };
1044
-
1045
1126
  var constantNumericOctal = exports.constantNumericDecimal = {
1046
1127
  token: "constant.numeric",
1047
1128
  regex: /\b(0[oO]?(?:[1-7](?:[0-7]|_(?=[0-7]))*|0))\b/
1048
1129
  };
1049
-
1050
1130
  var constantNumericRational = exports.constantNumericRational = {
1051
- token: "constant.numeric", //rational + complex
1131
+ token: "constant.numeric",
1052
1132
  regex: /\b([\d]+(?:[./][\d]+)?ri?)\b/
1053
1133
  };
1054
-
1055
1134
  var constantNumericComplex = exports.constantNumericComplex = {
1056
- token: "constant.numeric", //simple complex numbers
1135
+ token: "constant.numeric",
1057
1136
  regex: /\b([\d]i)\b/
1058
1137
  };
1059
-
1060
1138
  var constantNumericFloat = exports.constantNumericFloat = {
1061
- token : "constant.numeric", // float + complex
1062
- regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?i?\\b"
1139
+ token: "constant.numeric",
1140
+ regex: "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?i?\\b"
1063
1141
  };
1064
-
1065
1142
  var instanceVariable = exports.instanceVariable = {
1066
- token : "variable.instance", // instance variable
1067
- regex : "@{1,2}[a-zA-Z_\\d]+"
1143
+ token: "variable.instance",
1144
+ regex: "@{1,2}[a-zA-Z_\\d]+"
1068
1145
  };
1069
-
1070
- var RubyHighlightRules = function() {
1071
-
1072
- var builtinFunctions = (
1073
- "abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" +
1146
+ var RubyHighlightRules = function () {
1147
+ var builtinFunctions = ("abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" +
1074
1148
  "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" +
1075
1149
  "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" +
1076
1150
  "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" +
@@ -1100,25 +1174,14 @@ var RubyHighlightRules = function() {
1100
1174
  "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" +
1101
1175
  "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" +
1102
1176
  "has_many|has_one|belongs_to|has_and_belongs_to_many|p|warn|refine|using|module_function|extend|alias_method|" +
1103
- "private_class_method|remove_method|undef_method"
1104
- );
1105
-
1106
- var keywords = (
1107
- "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" +
1177
+ "private_class_method|remove_method|undef_method");
1178
+ var keywords = ("alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" +
1108
1179
  "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" +
1109
- "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|__ENCODING__|prepend"
1110
- );
1111
-
1112
- var buildinConstants = (
1113
- "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" +
1114
- "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING|RUBY_PATCHLEVEL|RUBY_REVISION|RUBY_COPYRIGHT|RUBY_ENGINE|RUBY_ENGINE_VERSION|RUBY_DESCRIPTION"
1115
- );
1116
-
1117
- var builtinVariables = (
1118
- "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" +
1119
- "$!|root_url|flash|session|cookies|params|request|response|logger|self"
1120
- );
1121
-
1180
+ "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|__ENCODING__|prepend");
1181
+ var buildinConstants = ("true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" +
1182
+ "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING|RUBY_PATCHLEVEL|RUBY_REVISION|RUBY_COPYRIGHT|RUBY_ENGINE|RUBY_ENGINE_VERSION|RUBY_DESCRIPTION");
1183
+ var builtinVariables = ("$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" +
1184
+ "$!|root_url|flash|session|cookies|params|request|response|logger|self");
1122
1185
  var keywordMapper = this.$keywords = this.createKeywordMapper({
1123
1186
  "keyword": keywords,
1124
1187
  "constant.language": buildinConstants,
@@ -1126,9 +1189,7 @@ var RubyHighlightRules = function() {
1126
1189
  "support.function": builtinFunctions,
1127
1190
  "invalid.deprecated": "debugger" // TODO is this a remnant from js mode?
1128
1191
  }, "identifier");
1129
-
1130
1192
  var escapedChars = "\\\\(?:n(?:[1-7][0-7]{0,2}|0)|[nsrtvfbae'\"\\\\]|c(?:\\\\M-)?.|M-(?:\\\\C-|\\\\c)?.|C-(?:\\\\M-)?.|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u{[\\da-fA-F]{1,6}(?:\\s[\\da-fA-F]{1,6})*})";
1131
-
1132
1193
  var closeParen = {
1133
1194
  "(": ")",
1134
1195
  "[": "]",
@@ -1138,14 +1199,13 @@ var RubyHighlightRules = function() {
1138
1199
  "|": "|",
1139
1200
  "%": "%"
1140
1201
  };
1141
-
1142
1202
  this.$rules = {
1143
1203
  "start": [
1144
1204
  {
1145
1205
  token: "comment",
1146
1206
  regex: "#.*$"
1147
1207
  }, {
1148
- token: "comment.multiline", // multi line comment
1208
+ token: "comment.multiline",
1149
1209
  regex: "^=begin(?=$|\\s.*$)",
1150
1210
  next: "comment"
1151
1211
  }, {
@@ -1153,116 +1213,114 @@ var RubyHighlightRules = function() {
1153
1213
  regex: /[/](?=.*\/)/,
1154
1214
  next: "regex"
1155
1215
  },
1156
-
1157
1216
  [{
1158
- token: ["constant.other.symbol.ruby", "string.start"],
1159
- regex: /(:)?(")/,
1160
- push: [{
1161
- token: "constant.language.escape",
1162
- regex: escapedChars
1163
- }, {
1164
- token: "paren.start",
1165
- regex: /#{/,
1166
- push: "start"
1217
+ token: ["constant.other.symbol.ruby", "string.start"],
1218
+ regex: /(:)?(")/,
1219
+ push: [{
1220
+ token: "constant.language.escape",
1221
+ regex: escapedChars
1222
+ }, {
1223
+ token: "paren.start",
1224
+ regex: /#{/,
1225
+ push: "start"
1226
+ }, {
1227
+ token: "string.end",
1228
+ regex: /"/,
1229
+ next: "pop"
1230
+ }, {
1231
+ defaultToken: "string"
1232
+ }]
1167
1233
  }, {
1168
- token: "string.end",
1169
- regex: /"/,
1170
- next: "pop"
1234
+ token: "string.start",
1235
+ regex: /`/,
1236
+ push: [{
1237
+ token: "constant.language.escape",
1238
+ regex: escapedChars
1239
+ }, {
1240
+ token: "paren.start",
1241
+ regex: /#{/,
1242
+ push: "start"
1243
+ }, {
1244
+ token: "string.end",
1245
+ regex: /`/,
1246
+ next: "pop"
1247
+ }, {
1248
+ defaultToken: "string"
1249
+ }]
1171
1250
  }, {
1172
- defaultToken: "string"
1173
- }]
1174
- }, {
1175
- token: "string.start",
1176
- regex: /`/,
1177
- push: [{
1178
- token: "constant.language.escape",
1179
- regex: escapedChars
1251
+ token: ["constant.other.symbol.ruby", "string.start"],
1252
+ regex: /(:)?(')/,
1253
+ push: [{
1254
+ token: "constant.language.escape",
1255
+ regex: /\\['\\]/
1256
+ }, {
1257
+ token: "string.end",
1258
+ regex: /'/,
1259
+ next: "pop"
1260
+ }, {
1261
+ defaultToken: "string"
1262
+ }]
1180
1263
  }, {
1181
- token: "paren.start",
1182
- regex: /#{/,
1183
- push: "start"
1264
+ token: "string.start",
1265
+ regex: /%[qwx]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1266
+ if (stack.length)
1267
+ stack = [];
1268
+ var paren = val[val.length - 1];
1269
+ stack.unshift(paren, state);
1270
+ this.next = "qStateWithoutInterpolation";
1271
+ return this.token;
1272
+ }
1184
1273
  }, {
1185
- token: "string.end",
1186
- regex: /`/,
1187
- next: "pop"
1274
+ token: "string.start",
1275
+ regex: /%[QWX]?([(\[<{^|%])/, onMatch: function (val, state, stack) {
1276
+ if (stack.length)
1277
+ stack = [];
1278
+ var paren = val[val.length - 1];
1279
+ stack.unshift(paren, state);
1280
+ this.next = "qStateWithInterpolation";
1281
+ return this.token;
1282
+ }
1188
1283
  }, {
1189
- defaultToken: "string"
1190
- }]
1191
- }, {
1192
- token: ["constant.other.symbol.ruby", "string.start"],
1193
- regex: /(:)?(')/,
1194
- push: [{
1195
- token: "constant.language.escape",
1196
- regex: /\\['\\]/
1284
+ token: "constant.other.symbol.ruby",
1285
+ regex: /%[si]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1286
+ if (stack.length)
1287
+ stack = [];
1288
+ var paren = val[val.length - 1];
1289
+ stack.unshift(paren, state);
1290
+ this.next = "sStateWithoutInterpolation";
1291
+ return this.token;
1292
+ }
1197
1293
  }, {
1198
- token: "string.end",
1199
- regex: /'/,
1200
- next: "pop"
1294
+ token: "constant.other.symbol.ruby",
1295
+ regex: /%[SI]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1296
+ if (stack.length)
1297
+ stack = [];
1298
+ var paren = val[val.length - 1];
1299
+ stack.unshift(paren, state);
1300
+ this.next = "sStateWithInterpolation";
1301
+ return this.token;
1302
+ }
1201
1303
  }, {
1202
- defaultToken: "string"
1203
- }]
1204
- }, {
1205
- token: "string.start",//doesn't see any differences between strings and array of strings in highlighting
1206
- regex: /%[qwx]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1207
- if (stack.length)
1208
- stack = [];
1209
- var paren = val[val.length - 1];
1210
- stack.unshift(paren, state);
1211
- this.next = "qStateWithoutInterpolation";
1212
- return this.token;
1213
- }
1214
- }, {
1215
- token: "string.start", //doesn't see any differences between strings and array of strings in highlighting
1216
- regex: /%[QWX]?([(\[<{^|%])/, onMatch: function (val, state, stack) {
1217
- if (stack.length)
1218
- stack = [];
1219
- var paren = val[val.length - 1];
1220
- stack.unshift(paren, state);
1221
- this.next = "qStateWithInterpolation";
1222
- return this.token;
1223
- }
1224
- }, {
1225
- token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
1226
- regex: /%[si]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1227
- if (stack.length)
1228
- stack = [];
1229
- var paren = val[val.length - 1];
1230
- stack.unshift(paren, state);
1231
- this.next = "sStateWithoutInterpolation";
1232
- return this.token;
1233
- }
1234
- }, {
1235
- token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
1236
- regex: /%[SI]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1237
- if (stack.length)
1238
- stack = [];
1239
- var paren = val[val.length - 1];
1240
- stack.unshift(paren, state);
1241
- this.next = "sStateWithInterpolation";
1242
- return this.token;
1243
- }
1244
- }, {
1245
- token: "string.regexp",
1246
- regex: /%[r]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1247
- if (stack.length)
1248
- stack = [];
1249
- var paren = val[val.length - 1];
1250
- stack.unshift(paren, state);
1251
- this.next = "rState";
1252
- return this.token;
1253
- }
1254
- }],
1255
-
1304
+ token: "string.regexp",
1305
+ regex: /%[r]([(\[<{^|%])/, onMatch: function (val, state, stack) {
1306
+ if (stack.length)
1307
+ stack = [];
1308
+ var paren = val[val.length - 1];
1309
+ stack.unshift(paren, state);
1310
+ this.next = "rState";
1311
+ return this.token;
1312
+ }
1313
+ }],
1256
1314
  {
1257
- token: "punctuation", // namespaces aren't symbols
1315
+ token: "punctuation",
1258
1316
  regex: "::"
1259
1317
  },
1260
1318
  instanceVariable,
1261
1319
  {
1262
- token: "variable.global", // global variable
1320
+ token: "variable.global",
1263
1321
  regex: "[$][a-zA-Z_\\d]+"
1264
1322
  }, {
1265
- token: "support.class", // class name
1323
+ token: "support.class",
1266
1324
  regex: "[A-Z][a-zA-Z_\\d]*"
1267
1325
  }, {
1268
1326
  token: ["punctuation.operator", "support.function"],
@@ -1277,7 +1335,6 @@ var RubyHighlightRules = function() {
1277
1335
  token: "punctuation.operator",
1278
1336
  regex: /\?(?=.+:)/
1279
1337
  },
1280
-
1281
1338
  constantNumericRational,
1282
1339
  constantNumericComplex,
1283
1340
  constantOtherSymbol,
@@ -1302,55 +1359,55 @@ var RubyHighlightRules = function() {
1302
1359
  var tokens = value.split(this.splitRegex);
1303
1360
  stack.push(next, tokens[3]);
1304
1361
  return [
1305
- {type: "constant", value: tokens[1]},
1306
- {type: "string", value: tokens[2]},
1307
- {type: "support.class", value: tokens[3]},
1308
- {type: "string", value: tokens[4]}
1362
+ { type: "constant", value: tokens[1] },
1363
+ { type: "string", value: tokens[2] },
1364
+ { type: "support.class", value: tokens[3] },
1365
+ { type: "string", value: tokens[4] }
1309
1366
  ];
1310
1367
  },
1311
1368
  regex: "(<<[-~]?)(['\"`]?)([\\w]+)(['\"`]?)",
1312
1369
  rules: {
1313
1370
  heredoc: [{
1314
- onMatch: function(value, currentState, stack) {
1315
- if (value === stack[1]) {
1316
- stack.shift();
1317
- stack.shift();
1318
- this.next = stack[0] || "start";
1319
- return "support.class";
1320
- }
1321
- this.next = "";
1322
- return "string";
1323
- },
1324
- regex: ".*$",
1325
- next: "start"
1326
- }],
1371
+ onMatch: function (value, currentState, stack) {
1372
+ if (value === stack[1]) {
1373
+ stack.shift();
1374
+ stack.shift();
1375
+ this.next = stack[0] || "start";
1376
+ return "support.class";
1377
+ }
1378
+ this.next = "";
1379
+ return "string";
1380
+ },
1381
+ regex: ".*$",
1382
+ next: "start"
1383
+ }],
1327
1384
  indentedHeredoc: [{
1328
- token: "string",
1329
- regex: "^ +"
1330
- }, {
1331
- onMatch: function(value, currentState, stack) {
1332
- if (value === stack[1]) {
1333
- stack.shift();
1334
- stack.shift();
1335
- this.next = stack[0] || "start";
1336
- return "support.class";
1337
- }
1338
- this.next = "";
1339
- return "string";
1340
- },
1341
- regex: ".*$",
1342
- next: "start"
1343
- }]
1385
+ token: "string",
1386
+ regex: "^ +"
1387
+ }, {
1388
+ onMatch: function (value, currentState, stack) {
1389
+ if (value === stack[1]) {
1390
+ stack.shift();
1391
+ stack.shift();
1392
+ this.next = stack[0] || "start";
1393
+ return "support.class";
1394
+ }
1395
+ this.next = "";
1396
+ return "string";
1397
+ },
1398
+ regex: ".*$",
1399
+ next: "start"
1400
+ }]
1344
1401
  }
1345
1402
  }, {
1346
1403
  regex: "$",
1347
1404
  token: "empty",
1348
- next: function(currentState, stack) {
1405
+ next: function (currentState, stack) {
1349
1406
  if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc")
1350
1407
  return stack[0];
1351
1408
  return currentState;
1352
1409
  }
1353
- }, {
1410
+ }, {
1354
1411
  token: "keyword.operator",
1355
1412
  regex: "!|\\$|%|&|\\*|/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\||\\b(?:in|instanceof|new|delete|typeof|void)"
1356
1413
  }, {
@@ -1359,7 +1416,7 @@ var RubyHighlightRules = function() {
1359
1416
  }, {
1360
1417
  token: "paren.rparen",
1361
1418
  regex: "[\\])}]",
1362
- onMatch: function(value, currentState, stack) {
1419
+ onMatch: function (value, currentState, stack) {
1363
1420
  this.next = '';
1364
1421
  if (value == "}" && stack.length > 1 && stack[1] != "start") {
1365
1422
  stack.shift();
@@ -1377,166 +1434,166 @@ var RubyHighlightRules = function() {
1377
1434
  ],
1378
1435
  "comment": [
1379
1436
  {
1380
- token: "comment.multiline", // closing comment
1437
+ token: "comment.multiline",
1381
1438
  regex: "^=end(?=$|\\s.*$)",
1382
1439
  next: "start"
1383
1440
  }, {
1384
- token: "comment", // comment spanning whole line
1441
+ token: "comment",
1385
1442
  regex: ".+"
1386
1443
  }
1387
1444
  ],
1388
1445
  "qStateWithInterpolation": [{
1389
- token: "string.start",// excluded nested |^% due to difficulty in realization
1390
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1391
- if (stack.length && val === stack[0]) {
1392
- stack.unshift(val, state);
1393
- return this.token;
1446
+ token: "string.start",
1447
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1448
+ if (stack.length && val === stack[0]) {
1449
+ stack.unshift(val, state);
1450
+ return this.token;
1451
+ }
1452
+ return "string";
1394
1453
  }
1395
- return "string";
1396
- }
1397
- }, {
1398
- token: "constant.language.escape",
1399
- regex: escapedChars
1400
- }, {
1401
- token: "constant.language.escape",
1402
- regex: /\\./
1403
- }, {
1404
- token: "paren.start",
1405
- regex: /#{/,
1406
- push: "start"
1407
- }, {
1408
- token: "string.end",
1409
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1410
- if (stack.length && val === closeParen[stack[0]]) {
1411
- stack.shift();
1412
- this.next = stack.shift();
1413
- return this.token;
1454
+ }, {
1455
+ token: "constant.language.escape",
1456
+ regex: escapedChars
1457
+ }, {
1458
+ token: "constant.language.escape",
1459
+ regex: /\\./
1460
+ }, {
1461
+ token: "paren.start",
1462
+ regex: /#{/,
1463
+ push: "start"
1464
+ }, {
1465
+ token: "string.end",
1466
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1467
+ if (stack.length && val === closeParen[stack[0]]) {
1468
+ stack.shift();
1469
+ this.next = stack.shift();
1470
+ return this.token;
1471
+ }
1472
+ this.next = '';
1473
+ return "string";
1414
1474
  }
1415
- this.next = '';
1416
- return "string";
1417
- }
1418
- }, {
1419
- defaultToken: "string"
1420
- }],
1475
+ }, {
1476
+ defaultToken: "string"
1477
+ }],
1421
1478
  "qStateWithoutInterpolation": [{
1422
- token: "string.start",// excluded nested |^% due to difficulty in realization
1423
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1424
- if (stack.length && val === stack[0]) {
1425
- stack.unshift(val, state);
1426
- return this.token;
1479
+ token: "string.start",
1480
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1481
+ if (stack.length && val === stack[0]) {
1482
+ stack.unshift(val, state);
1483
+ return this.token;
1484
+ }
1485
+ return "string";
1427
1486
  }
1428
- return "string";
1429
- }
1430
- }, {
1431
- token: "constant.language.escape",
1432
- regex: /\\['\\]/
1433
- }, {
1434
- token: "constant.language.escape",
1435
- regex: /\\./
1436
- }, {
1437
- token: "string.end",
1438
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1439
- if (stack.length && val === closeParen[stack[0]]) {
1440
- stack.shift();
1441
- this.next = stack.shift();
1442
- return this.token;
1487
+ }, {
1488
+ token: "constant.language.escape",
1489
+ regex: /\\['\\]/
1490
+ }, {
1491
+ token: "constant.language.escape",
1492
+ regex: /\\./
1493
+ }, {
1494
+ token: "string.end",
1495
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1496
+ if (stack.length && val === closeParen[stack[0]]) {
1497
+ stack.shift();
1498
+ this.next = stack.shift();
1499
+ return this.token;
1500
+ }
1501
+ this.next = '';
1502
+ return "string";
1443
1503
  }
1444
- this.next = '';
1445
- return "string";
1446
- }
1447
- }, {
1448
- defaultToken: "string"
1449
- }],
1504
+ }, {
1505
+ defaultToken: "string"
1506
+ }],
1450
1507
  "sStateWithoutInterpolation": [{
1451
- token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
1452
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1453
- if (stack.length && val === stack[0]) {
1454
- stack.unshift(val, state);
1455
- return this.token;
1508
+ token: "constant.other.symbol.ruby",
1509
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1510
+ if (stack.length && val === stack[0]) {
1511
+ stack.unshift(val, state);
1512
+ return this.token;
1513
+ }
1514
+ return "constant.other.symbol.ruby";
1456
1515
  }
1457
- return "constant.other.symbol.ruby";
1458
- }
1459
- }, {
1460
- token: "constant.other.symbol.ruby",
1461
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1462
- if (stack.length && val === closeParen[stack[0]]) {
1463
- stack.shift();
1464
- this.next = stack.shift();
1465
- return this.token;
1516
+ }, {
1517
+ token: "constant.other.symbol.ruby",
1518
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1519
+ if (stack.length && val === closeParen[stack[0]]) {
1520
+ stack.shift();
1521
+ this.next = stack.shift();
1522
+ return this.token;
1523
+ }
1524
+ this.next = '';
1525
+ return "constant.other.symbol.ruby";
1466
1526
  }
1467
- this.next = '';
1468
- return "constant.other.symbol.ruby";
1469
- }
1470
- }, {
1471
- defaultToken: "constant.other.symbol.ruby"
1472
- }],
1527
+ }, {
1528
+ defaultToken: "constant.other.symbol.ruby"
1529
+ }],
1473
1530
  "sStateWithInterpolation": [{
1474
- token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
1475
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1476
- if (stack.length && val === stack[0]) {
1477
- stack.unshift(val, state);
1478
- return this.token;
1531
+ token: "constant.other.symbol.ruby",
1532
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1533
+ if (stack.length && val === stack[0]) {
1534
+ stack.unshift(val, state);
1535
+ return this.token;
1536
+ }
1537
+ return "constant.other.symbol.ruby";
1479
1538
  }
1480
- return "constant.other.symbol.ruby";
1481
- }
1482
- }, {
1483
- token: "constant.language.escape",
1484
- regex: escapedChars
1485
- }, {
1486
- token: "constant.language.escape",
1487
- regex: /\\./
1488
- }, {
1489
- token: "paren.start",
1490
- regex: /#{/,
1491
- push: "start"
1492
- }, {
1493
- token: "constant.other.symbol.ruby",
1494
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1495
- if (stack.length && val === closeParen[stack[0]]) {
1496
- stack.shift();
1497
- this.next = stack.shift();
1498
- return this.token;
1539
+ }, {
1540
+ token: "constant.language.escape",
1541
+ regex: escapedChars
1542
+ }, {
1543
+ token: "constant.language.escape",
1544
+ regex: /\\./
1545
+ }, {
1546
+ token: "paren.start",
1547
+ regex: /#{/,
1548
+ push: "start"
1549
+ }, {
1550
+ token: "constant.other.symbol.ruby",
1551
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
1552
+ if (stack.length && val === closeParen[stack[0]]) {
1553
+ stack.shift();
1554
+ this.next = stack.shift();
1555
+ return this.token;
1556
+ }
1557
+ this.next = '';
1558
+ return "constant.other.symbol.ruby";
1499
1559
  }
1500
- this.next = '';
1501
- return "constant.other.symbol.ruby";
1502
- }
1503
- }, {
1504
- defaultToken: "constant.other.symbol.ruby"
1505
- }],
1560
+ }, {
1561
+ defaultToken: "constant.other.symbol.ruby"
1562
+ }],
1506
1563
  "rState": [{
1507
- token: "string.regexp",// excluded nested |^% due to difficulty in realization
1508
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1509
- if (stack.length && val === stack[0]) {
1510
- stack.unshift(val, state);
1511
- return this.token;
1564
+ token: "string.regexp",
1565
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
1566
+ if (stack.length && val === stack[0]) {
1567
+ stack.unshift(val, state);
1568
+ return this.token;
1569
+ }
1570
+ return "constant.language.escape";
1512
1571
  }
1513
- return "constant.language.escape";
1514
- }
1515
- }, {
1516
- token: "paren.start",
1517
- regex: /#{/,
1518
- push: "start"
1519
- }, {
1520
- token: "string.regexp",
1521
- regex: /\//
1522
- }, {
1523
- token: "string.regexp",
1524
- regex: /[)\]>}^|%][imxouesn]*/, onMatch: function (val, state, stack) {
1525
- if (stack.length && val[0] === closeParen[stack[0]]) {
1526
- stack.shift();
1527
- this.next = stack.shift();
1528
- return this.token;
1572
+ }, {
1573
+ token: "paren.start",
1574
+ regex: /#{/,
1575
+ push: "start"
1576
+ }, {
1577
+ token: "string.regexp",
1578
+ regex: /\//
1579
+ }, {
1580
+ token: "string.regexp",
1581
+ regex: /[)\]>}^|%][imxouesn]*/, onMatch: function (val, state, stack) {
1582
+ if (stack.length && val[0] === closeParen[stack[0]]) {
1583
+ stack.shift();
1584
+ this.next = stack.shift();
1585
+ return this.token;
1586
+ }
1587
+ this.next = '';
1588
+ return "constant.language.escape";
1529
1589
  }
1530
- this.next = '';
1531
- return "constant.language.escape";
1532
- }
1533
- },
1534
- {include: "regex"},
1590
+ },
1591
+ { include: "regex" },
1535
1592
  {
1536
1593
  defaultToken: "string.regexp"
1537
1594
  }],
1538
1595
  "regex": [
1539
- {// character classes
1596
+ {
1540
1597
  token: "regexp.keyword",
1541
1598
  regex: /\\[wWdDhHsS]/
1542
1599
  }, {
@@ -1551,17 +1608,17 @@ var RubyHighlightRules = function() {
1551
1608
  }, {
1552
1609
  token: ["constant.language.escape", "invalid", "constant.language.escape"],
1553
1610
  regex: /(\\p{\^?)([^/]*)(})/
1554
- }, {// escapes
1611
+ }, {
1555
1612
  token: "regexp.keyword.operator",
1556
1613
  regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
1557
- }, {// flag
1614
+ }, {
1558
1615
  token: "string.regexp",
1559
1616
  regex: /[/][imxouesn]*/,
1560
1617
  next: "start"
1561
- }, {// invalid operators
1618
+ }, {
1562
1619
  token: "invalid",
1563
1620
  regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
1564
- }, {// operators
1621
+ }, {
1565
1622
  token: "constant.language.escape",
1566
1623
  regex: /\(\?(?:[:=!>]|<'?[a-zA-Z]*'?>|<[=!])|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
1567
1624
  }, {
@@ -1601,44 +1658,38 @@ var RubyHighlightRules = function() {
1601
1658
  }
1602
1659
  ]
1603
1660
  };
1604
-
1605
1661
  this.normalizeRules();
1606
1662
  };
1607
-
1608
1663
  oop.inherits(RubyHighlightRules, TextHighlightRules);
1609
-
1610
1664
  exports.RubyHighlightRules = RubyHighlightRules;
1611
- });
1612
1665
 
1613
- ace.define("ace/mode/haml_highlight_rules",[], function(require, exports, module) {
1614
- "use strict";
1666
+ });
1615
1667
 
1668
+ ace.define("ace/mode/haml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/ruby_highlight_rules"], function(require, exports, module){"use strict";
1616
1669
  var oop = require("../lib/oop");
1617
1670
  var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
1618
1671
  var RubyExports = require("./ruby_highlight_rules");
1619
1672
  var RubyHighlightRules = RubyExports.RubyHighlightRules;
1620
-
1621
- var HamlHighlightRules = function() {
1673
+ var HamlHighlightRules = function () {
1622
1674
  HtmlHighlightRules.call(this);
1623
-
1624
1675
  this.$rules = {
1625
1676
  "start": [
1626
1677
  {
1627
- token: "comment.block", // multiline HTML comment
1678
+ token: "comment.block",
1628
1679
  regex: /^\/$/,
1629
1680
  next: "comment"
1630
1681
  },
1631
1682
  {
1632
- token: "comment.block", // multiline HAML comment
1683
+ token: "comment.block",
1633
1684
  regex: /^\-#$/,
1634
1685
  next: "comment"
1635
1686
  },
1636
1687
  {
1637
- token: "comment.line", // HTML comment
1688
+ token: "comment.line",
1638
1689
  regex: /\/\s*.*/
1639
1690
  },
1640
1691
  {
1641
- token: "comment.line", // HAML comment
1692
+ token: "comment.line",
1642
1693
  regex: /-#\s*.*/
1643
1694
  },
1644
1695
  {
@@ -1708,27 +1759,27 @@ var HamlHighlightRules = function() {
1708
1759
  RubyExports.qqString,
1709
1760
  RubyExports.tString,
1710
1761
  {
1711
- token : "support.class", // class name
1712
- regex : "[A-Z][a-zA-Z_\\d]+"
1762
+ token: "support.class",
1763
+ regex: "[A-Z][a-zA-Z_\\d]+"
1713
1764
  },
1714
1765
  {
1715
- token : new RubyHighlightRules().getKeywords(),
1716
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
1766
+ token: new RubyHighlightRules().getKeywords(),
1767
+ regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
1717
1768
  },
1718
1769
  {
1719
- token : ["keyword", "text", "text"],
1720
- regex : "(?:do|\\{)(?: \\|[^|]+\\|)?$",
1721
- next : "start"
1770
+ token: ["keyword", "text", "text"],
1771
+ regex: "(?:do|\\{)(?: \\|[^|]+\\|)?$",
1772
+ next: "start"
1722
1773
  },
1723
1774
  {
1724
- token : ["text"],
1725
- regex : "^$",
1726
- next : "start"
1775
+ token: ["text"],
1776
+ regex: "^$",
1777
+ next: "start"
1727
1778
  },
1728
1779
  {
1729
- token : ["text"],
1730
- regex : "^(?!.*\\|\\s*$)",
1731
- next : "start"
1780
+ token: ["text"],
1781
+ regex: "^(?!.*\\|\\s*$)",
1782
+ next: "start"
1732
1783
  }
1733
1784
  ],
1734
1785
  "comment": [
@@ -1738,77 +1789,66 @@ var HamlHighlightRules = function() {
1738
1789
  next: "start"
1739
1790
  },
1740
1791
  {
1741
- token: "comment.block", // comment spanning the whole line
1792
+ token: "comment.block",
1742
1793
  regex: /\s+.*/
1743
1794
  }
1744
1795
  ]
1745
-
1746
1796
  };
1747
-
1748
1797
  this.normalizeRules();
1749
1798
  };
1750
-
1751
1799
  oop.inherits(HamlHighlightRules, HtmlHighlightRules);
1752
-
1753
1800
  exports.HamlHighlightRules = HamlHighlightRules;
1754
- });
1755
1801
 
1756
- ace.define("ace/mode/folding/coffee",[], function(require, exports, module) {
1757
- "use strict";
1802
+ });
1758
1803
 
1804
+ ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module){"use strict";
1759
1805
  var oop = require("../../lib/oop");
1760
1806
  var BaseFoldMode = require("./fold_mode").FoldMode;
1761
1807
  var Range = require("../../range").Range;
1762
-
1763
- var FoldMode = exports.FoldMode = function() {};
1808
+ var FoldMode = exports.FoldMode = function () { };
1764
1809
  oop.inherits(FoldMode, BaseFoldMode);
1765
-
1766
- (function() {
1767
-
1768
- this.getFoldWidgetRange = function(session, foldStyle, row) {
1769
- var range = this.indentationBlock(session, row);
1770
- if (range)
1771
- return range;
1772
-
1810
+ (function () {
1811
+ this.commentBlock = function (session, row) {
1773
1812
  var re = /\S/;
1774
1813
  var line = session.getLine(row);
1775
1814
  var startLevel = line.search(re);
1776
1815
  if (startLevel == -1 || line[startLevel] != "#")
1777
1816
  return;
1778
-
1779
1817
  var startColumn = line.length;
1780
1818
  var maxRow = session.getLength();
1781
1819
  var startRow = row;
1782
1820
  var endRow = row;
1783
-
1784
1821
  while (++row < maxRow) {
1785
1822
  line = session.getLine(row);
1786
1823
  var level = line.search(re);
1787
-
1788
1824
  if (level == -1)
1789
1825
  continue;
1790
-
1791
1826
  if (line[level] != "#")
1792
1827
  break;
1793
-
1794
1828
  endRow = row;
1795
1829
  }
1796
-
1797
1830
  if (endRow > startRow) {
1798
1831
  var endColumn = session.getLine(endRow).length;
1799
1832
  return new Range(startRow, startColumn, endRow, endColumn);
1800
1833
  }
1801
1834
  };
1802
- this.getFoldWidget = function(session, foldStyle, row) {
1835
+ this.getFoldWidgetRange = function (session, foldStyle, row) {
1836
+ var range = this.indentationBlock(session, row);
1837
+ if (range)
1838
+ return range;
1839
+ range = this.commentBlock(session, row);
1840
+ if (range)
1841
+ return range;
1842
+ };
1843
+ this.getFoldWidget = function (session, foldStyle, row) {
1803
1844
  var line = session.getLine(row);
1804
1845
  var indent = line.search(/\S/);
1805
1846
  var next = session.getLine(row + 1);
1806
1847
  var prev = session.getLine(row - 1);
1807
1848
  var prevIndent = prev.search(/\S/);
1808
1849
  var nextIndent = next.search(/\S/);
1809
-
1810
1850
  if (indent == -1) {
1811
- session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : "";
1851
+ session.foldWidgets[row - 1] = prevIndent != -1 && prevIndent < nextIndent ? "start" : "";
1812
1852
  return "";
1813
1853
  }
1814
1854
  if (prevIndent == -1) {
@@ -1817,52 +1857,48 @@ oop.inherits(FoldMode, BaseFoldMode);
1817
1857
  session.foldWidgets[row + 1] = "";
1818
1858
  return "start";
1819
1859
  }
1820
- } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
1860
+ }
1861
+ else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
1821
1862
  if (session.getLine(row - 2).search(/\S/) == -1) {
1822
1863
  session.foldWidgets[row - 1] = "start";
1823
1864
  session.foldWidgets[row + 1] = "";
1824
1865
  return "";
1825
1866
  }
1826
1867
  }
1827
-
1828
- if (prevIndent!= -1 && prevIndent < indent)
1868
+ if (prevIndent != -1 && prevIndent < indent)
1829
1869
  session.foldWidgets[row - 1] = "start";
1830
1870
  else
1831
1871
  session.foldWidgets[row - 1] = "";
1832
-
1833
1872
  if (indent < nextIndent)
1834
1873
  return "start";
1835
1874
  else
1836
1875
  return "";
1837
1876
  };
1838
-
1839
1877
  }).call(FoldMode.prototype);
1840
1878
 
1841
1879
  });
1842
1880
 
1843
- ace.define("ace/mode/haml",[], function(require, exports, module) {
1881
+ ace.define("ace/mode/haml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haml_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module){/*
1882
+ THIS FILE WAS AUTOGENERATED BY mode.tmpl.js
1883
+ */
1844
1884
  "use strict";
1845
-
1846
1885
  var oop = require("../lib/oop");
1847
1886
  var TextMode = require("./text").Mode;
1848
1887
  var HamlHighlightRules = require("./haml_highlight_rules").HamlHighlightRules;
1849
1888
  var FoldMode = require("./folding/coffee").FoldMode;
1850
-
1851
- var Mode = function() {
1889
+ var Mode = function () {
1852
1890
  this.HighlightRules = HamlHighlightRules;
1853
1891
  this.foldingRules = new FoldMode();
1854
1892
  this.$behaviour = this.$defaultBehaviour;
1855
1893
  };
1856
1894
  oop.inherits(Mode, TextMode);
1857
-
1858
- (function() {
1895
+ (function () {
1859
1896
  this.lineCommentStart = "//";
1860
-
1861
1897
  this.$id = "ace/mode/haml";
1862
1898
  this.snippetFileId = "ace/snippets/haml";
1863
1899
  }).call(Mode.prototype);
1864
-
1865
1900
  exports.Mode = Mode;
1901
+
1866
1902
  }); (function() {
1867
1903
  ace.require(["ace/mode/haml"], function(m) {
1868
1904
  if (typeof module == "object" && typeof exports == "object" && module) {