@openui5/sap.ui.codeeditor 1.132.1 → 1.134.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 (452) hide show
  1. package/.reuse/dep5 +2 -9
  2. package/LICENSES/LicenseRef-Unicode-3.0.txt +39 -0
  3. package/THIRDPARTY.txt +45 -78
  4. package/package.json +2 -2
  5. package/src/sap/ui/codeeditor/.library +2 -2
  6. package/src/sap/ui/codeeditor/CodeEditor.js +4 -4
  7. package/src/sap/ui/codeeditor/js/ace/ace.js +6564 -6162
  8. package/src/sap/ui/codeeditor/js/ace/css/ace.css +55 -23
  9. package/src/sap/ui/codeeditor/js/ace/css/github_light_default-1.png +0 -0
  10. package/src/sap/ui/codeeditor/js/ace/css/github_light_default-2.png +0 -0
  11. package/src/sap/ui/codeeditor/js/ace/css/main-10.svg +4 -0
  12. package/src/sap/ui/codeeditor/js/ace/css/main-11.svg +5 -0
  13. package/src/sap/ui/codeeditor/js/ace/css/main-12.svg +4 -0
  14. package/src/sap/ui/codeeditor/js/ace/css/main-13.png +0 -0
  15. package/src/sap/ui/codeeditor/js/ace/css/main-14.png +0 -0
  16. package/src/sap/ui/codeeditor/js/ace/css/main-15.png +0 -0
  17. package/src/sap/ui/codeeditor/js/ace/css/main-16.png +0 -0
  18. package/src/sap/ui/codeeditor/js/ace/css/main-17.png +0 -0
  19. package/src/sap/ui/codeeditor/js/ace/css/main-18.png +0 -0
  20. package/src/sap/ui/codeeditor/js/ace/css/main-19.png +0 -0
  21. package/src/sap/ui/codeeditor/js/ace/css/main-20.png +0 -0
  22. package/src/sap/ui/codeeditor/js/ace/css/main-21.png +0 -0
  23. package/src/sap/ui/codeeditor/js/ace/css/main-22.png +0 -0
  24. package/src/sap/ui/codeeditor/js/ace/css/main-23.png +0 -0
  25. package/src/sap/ui/codeeditor/js/ace/css/main-24.png +0 -0
  26. package/src/sap/ui/codeeditor/js/ace/css/main-25.svg +1 -0
  27. package/src/sap/ui/codeeditor/js/ace/css/main-26.png +0 -0
  28. package/src/sap/ui/codeeditor/js/ace/css/main-6.svg +8 -6
  29. package/src/sap/ui/codeeditor/js/ace/css/main-7.svg +4 -6
  30. package/src/sap/ui/codeeditor/js/ace/css/main-8.svg +8 -3
  31. package/src/sap/ui/codeeditor/js/ace/css/main-9.svg +5 -3
  32. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud_editor.css +221 -0
  33. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud_editor_dark.css +224 -0
  34. package/src/sap/ui/codeeditor/js/ace/css/theme/github_light_default.css +164 -0
  35. package/src/sap/ui/codeeditor/js/ace/css/theme/solarized_dark.css +2 -2
  36. package/src/sap/ui/codeeditor/js/ace/ext-beautify.js +0 -0
  37. package/src/sap/ui/codeeditor/js/ace/ext-code_lens.js +1 -6
  38. package/src/sap/ui/codeeditor/js/ace/ext-command_bar.js +4 -2
  39. package/src/sap/ui/codeeditor/js/ace/ext-elastic_tabstops_lite.js +0 -0
  40. package/src/sap/ui/codeeditor/js/ace/ext-emmet.js +24 -6
  41. package/src/sap/ui/codeeditor/js/ace/ext-error_marker.js +0 -0
  42. package/src/sap/ui/codeeditor/js/ace/ext-inline_autocomplete.js +198 -87
  43. package/src/sap/ui/codeeditor/js/ace/ext-keybinding_menu.js +8 -5
  44. package/src/sap/ui/codeeditor/js/ace/ext-language_tools.js +180 -79
  45. package/src/sap/ui/codeeditor/js/ace/ext-linking.js +0 -0
  46. package/src/sap/ui/codeeditor/js/ace/ext-modelist.js +7 -3
  47. package/src/sap/ui/codeeditor/js/ace/ext-options.js +12 -5
  48. package/src/sap/ui/codeeditor/js/ace/ext-prompt.js +202 -116
  49. package/src/sap/ui/codeeditor/js/ace/ext-rtl.js +0 -0
  50. package/src/sap/ui/codeeditor/js/ace/ext-searchbox.js +14 -12
  51. package/src/sap/ui/codeeditor/js/ace/ext-settings_menu.js +12 -5
  52. package/src/sap/ui/codeeditor/js/ace/ext-spellcheck.js +0 -0
  53. package/src/sap/ui/codeeditor/js/ace/ext-split.js +2 -1
  54. package/src/sap/ui/codeeditor/js/ace/ext-static_highlight.js +0 -0
  55. package/src/sap/ui/codeeditor/js/ace/ext-statusbar.js +0 -0
  56. package/src/sap/ui/codeeditor/js/ace/ext-textarea.js +476 -3
  57. package/src/sap/ui/codeeditor/js/ace/ext-themelist.js +6 -2
  58. package/src/sap/ui/codeeditor/js/ace/ext-whitespace.js +0 -0
  59. package/src/sap/ui/codeeditor/js/ace/keybinding-emacs.js +13 -6
  60. package/src/sap/ui/codeeditor/js/ace/keybinding-vim.js +748 -373
  61. package/src/sap/ui/codeeditor/js/ace/mode-abap.js +0 -0
  62. package/src/sap/ui/codeeditor/js/ace/mode-abc.js +0 -0
  63. package/src/sap/ui/codeeditor/js/ace/mode-actionscript.js +0 -0
  64. package/src/sap/ui/codeeditor/js/ace/mode-ada.js +3 -3
  65. package/src/sap/ui/codeeditor/js/ace/mode-apache_conf.js +0 -0
  66. package/src/sap/ui/codeeditor/js/ace/mode-apex.js +6 -6
  67. package/src/sap/ui/codeeditor/js/ace/mode-applescript.js +3 -3
  68. package/src/sap/ui/codeeditor/js/ace/mode-aql.js +3 -3
  69. package/src/sap/ui/codeeditor/js/ace/mode-asciidoc.js +0 -0
  70. package/src/sap/ui/codeeditor/js/ace/mode-asl.js +14 -14
  71. package/src/sap/ui/codeeditor/js/ace/mode-assembly_arm32.js +185 -0
  72. package/src/sap/ui/codeeditor/js/ace/mode-assembly_x86.js +0 -0
  73. package/src/sap/ui/codeeditor/js/ace/mode-astro.js +377 -317
  74. package/src/sap/ui/codeeditor/js/ace/mode-autohotkey.js +0 -0
  75. package/src/sap/ui/codeeditor/js/ace/mode-basic.js +201 -0
  76. package/src/sap/ui/codeeditor/js/ace/mode-batchfile.js +0 -0
  77. package/src/sap/ui/codeeditor/js/ace/mode-c9search.js +1 -1
  78. package/src/sap/ui/codeeditor/js/ace/mode-c_cpp.js +13 -13
  79. package/src/sap/ui/codeeditor/js/ace/mode-cirru.js +0 -0
  80. package/src/sap/ui/codeeditor/js/ace/mode-clojure.js +13 -13
  81. package/src/sap/ui/codeeditor/js/ace/mode-cobol.js +3 -3
  82. package/src/sap/ui/codeeditor/js/ace/mode-coffee.js +0 -0
  83. package/src/sap/ui/codeeditor/js/ace/mode-coldfusion.js +377 -317
  84. package/src/sap/ui/codeeditor/js/ace/mode-crystal.js +6 -6
  85. package/src/sap/ui/codeeditor/js/ace/mode-csharp.js +9 -9
  86. package/src/sap/ui/codeeditor/js/ace/mode-csound_document.js +75 -78
  87. package/src/sap/ui/codeeditor/js/ace/mode-csound_orchestra.js +22 -22
  88. package/src/sap/ui/codeeditor/js/ace/mode-csound_score.js +0 -0
  89. package/src/sap/ui/codeeditor/js/ace/mode-csp.js +0 -0
  90. package/src/sap/ui/codeeditor/js/ace/mode-css.js +6 -3
  91. package/src/sap/ui/codeeditor/js/ace/mode-curly.js +377 -317
  92. package/src/sap/ui/codeeditor/js/ace/mode-d.js +12 -12
  93. package/src/sap/ui/codeeditor/js/ace/mode-dart.js +17 -17
  94. package/src/sap/ui/codeeditor/js/ace/mode-diff.js +0 -0
  95. package/src/sap/ui/codeeditor/js/ace/mode-django.js +377 -317
  96. package/src/sap/ui/codeeditor/js/ace/mode-dockerfile.js +3 -3
  97. package/src/sap/ui/codeeditor/js/ace/mode-dot.js +6 -6
  98. package/src/sap/ui/codeeditor/js/ace/mode-drools.js +18 -18
  99. package/src/sap/ui/codeeditor/js/ace/mode-edifact.js +4 -4
  100. package/src/sap/ui/codeeditor/js/ace/mode-eiffel.js +4 -4
  101. package/src/sap/ui/codeeditor/js/ace/mode-ejs.js +402 -342
  102. package/src/sap/ui/codeeditor/js/ace/mode-elixir.js +0 -0
  103. package/src/sap/ui/codeeditor/js/ace/mode-elm.js +0 -0
  104. package/src/sap/ui/codeeditor/js/ace/mode-erlang.js +15 -15
  105. package/src/sap/ui/codeeditor/js/ace/mode-flix.js +7 -7
  106. package/src/sap/ui/codeeditor/js/ace/mode-forth.js +0 -0
  107. package/src/sap/ui/codeeditor/js/ace/mode-fortran.js +12 -12
  108. package/src/sap/ui/codeeditor/js/ace/mode-fsharp.js +0 -0
  109. package/src/sap/ui/codeeditor/js/ace/mode-ftl.js +54 -57
  110. package/src/sap/ui/codeeditor/js/ace/mode-gcode.js +4 -4
  111. package/src/sap/ui/codeeditor/js/ace/mode-gherkin.js +3 -3
  112. package/src/sap/ui/codeeditor/js/ace/mode-gitignore.js +1 -1
  113. package/src/sap/ui/codeeditor/js/ace/mode-glsl.js +13 -13
  114. package/src/sap/ui/codeeditor/js/ace/mode-gobstones.js +371 -65
  115. package/src/sap/ui/codeeditor/js/ace/mode-golang.js +10 -10
  116. package/src/sap/ui/codeeditor/js/ace/mode-graphqlschema.js +0 -0
  117. package/src/sap/ui/codeeditor/js/ace/mode-groovy.js +381 -75
  118. package/src/sap/ui/codeeditor/js/ace/mode-haml.js +84 -87
  119. package/src/sap/ui/codeeditor/js/ace/mode-handlebars.js +379 -319
  120. package/src/sap/ui/codeeditor/js/ace/mode-haskell.js +0 -0
  121. package/src/sap/ui/codeeditor/js/ace/mode-haskell_cabal.js +1 -1
  122. package/src/sap/ui/codeeditor/js/ace/mode-haxe.js +10 -10
  123. package/src/sap/ui/codeeditor/js/ace/mode-hjson.js +0 -0
  124. package/src/sap/ui/codeeditor/js/ace/mode-html.js +377 -317
  125. package/src/sap/ui/codeeditor/js/ace/mode-html_elixir.js +472 -412
  126. package/src/sap/ui/codeeditor/js/ace/mode-html_ruby.js +484 -424
  127. package/src/sap/ui/codeeditor/js/ace/mode-ini.js +0 -0
  128. package/src/sap/ui/codeeditor/js/ace/mode-io.js +0 -0
  129. package/src/sap/ui/codeeditor/js/ace/mode-jack.js +2 -2
  130. package/src/sap/ui/codeeditor/js/ace/mode-jade.js +67 -70
  131. package/src/sap/ui/codeeditor/js/ace/mode-java.js +383 -77
  132. package/src/sap/ui/codeeditor/js/ace/mode-javascript.js +371 -65
  133. package/src/sap/ui/codeeditor/js/ace/mode-jexl.js +7 -7
  134. package/src/sap/ui/codeeditor/js/ace/mode-json.js +8 -8
  135. package/src/sap/ui/codeeditor/js/ace/mode-json5.js +8 -8
  136. package/src/sap/ui/codeeditor/js/ace/mode-jsoniq.js +4 -5
  137. package/src/sap/ui/codeeditor/js/ace/mode-jsp.js +67 -70
  138. package/src/sap/ui/codeeditor/js/ace/mode-jssm.js +0 -0
  139. package/src/sap/ui/codeeditor/js/ace/mode-jsx.js +960 -89
  140. package/src/sap/ui/codeeditor/js/ace/mode-julia.js +0 -0
  141. package/src/sap/ui/codeeditor/js/ace/mode-kotlin.js +0 -0
  142. package/src/sap/ui/codeeditor/js/ace/mode-latex.js +0 -0
  143. package/src/sap/ui/codeeditor/js/ace/mode-latte.js +381 -321
  144. package/src/sap/ui/codeeditor/js/ace/mode-less.js +12 -9
  145. package/src/sap/ui/codeeditor/js/ace/mode-liquid.js +385 -325
  146. package/src/sap/ui/codeeditor/js/ace/mode-lisp.js +2 -2
  147. package/src/sap/ui/codeeditor/js/ace/mode-livescript.js +0 -0
  148. package/src/sap/ui/codeeditor/js/ace/mode-logiql.js +0 -0
  149. package/src/sap/ui/codeeditor/js/ace/mode-logtalk.js +6 -9
  150. package/src/sap/ui/codeeditor/js/ace/mode-lsl.js +0 -0
  151. package/src/sap/ui/codeeditor/js/ace/mode-lua.js +5 -5
  152. package/src/sap/ui/codeeditor/js/ace/mode-luapage.js +382 -322
  153. package/src/sap/ui/codeeditor/js/ace/mode-lucene.js +0 -0
  154. package/src/sap/ui/codeeditor/js/ace/mode-makefile.js +3 -3
  155. package/src/sap/ui/codeeditor/js/ace/mode-markdown.js +474 -414
  156. package/src/sap/ui/codeeditor/js/ace/mode-mask.js +53 -56
  157. package/src/sap/ui/codeeditor/js/ace/mode-matlab.js +1 -1
  158. package/src/sap/ui/codeeditor/js/ace/mode-maze.js +0 -0
  159. package/src/sap/ui/codeeditor/js/ace/mode-mel.js +0 -0
  160. package/src/sap/ui/codeeditor/js/ace/mode-mips.js +1 -1
  161. package/src/sap/ui/codeeditor/js/ace/mode-mixal.js +0 -0
  162. package/src/sap/ui/codeeditor/js/ace/mode-mushcode.js +7 -7
  163. package/src/sap/ui/codeeditor/js/ace/mode-mysql.js +7 -7
  164. package/src/sap/ui/codeeditor/js/ace/mode-nix.js +16 -16
  165. package/src/sap/ui/codeeditor/js/ace/mode-nsis.js +0 -0
  166. package/src/sap/ui/codeeditor/js/ace/mode-nunjucks.js +379 -319
  167. package/src/sap/ui/codeeditor/js/ace/mode-objectivec.js +15 -15
  168. package/src/sap/ui/codeeditor/js/ace/mode-ocaml.js +7 -7
  169. package/src/sap/ui/codeeditor/js/ace/mode-odin.js +10 -10
  170. package/src/sap/ui/codeeditor/js/ace/mode-pascal.js +0 -0
  171. package/src/sap/ui/codeeditor/js/ace/mode-perl.js +6 -6
  172. package/src/sap/ui/codeeditor/js/ace/mode-pgsql.js +98 -104
  173. package/src/sap/ui/codeeditor/js/ace/mode-php.js +797 -616
  174. package/src/sap/ui/codeeditor/js/ace/mode-php_laravel_blade.js +797 -616
  175. package/src/sap/ui/codeeditor/js/ace/mode-pig.js +0 -0
  176. package/src/sap/ui/codeeditor/js/ace/mode-plain_text.js +0 -0
  177. package/src/sap/ui/codeeditor/js/ace/mode-plsql.js +3 -3
  178. package/src/sap/ui/codeeditor/js/ace/mode-powershell.js +6 -6
  179. package/src/sap/ui/codeeditor/js/ace/mode-praat.js +0 -0
  180. package/src/sap/ui/codeeditor/js/ace/mode-prolog.js +0 -0
  181. package/src/sap/ui/codeeditor/js/ace/mode-properties.js +0 -0
  182. package/src/sap/ui/codeeditor/js/ace/mode-protobuf.js +18 -18
  183. package/src/sap/ui/codeeditor/js/ace/mode-prql.js +7 -4
  184. package/src/sap/ui/codeeditor/js/ace/mode-puppet.js +0 -0
  185. package/src/sap/ui/codeeditor/js/ace/mode-python.js +17 -17
  186. package/src/sap/ui/codeeditor/js/ace/mode-qml.js +5 -5
  187. package/src/sap/ui/codeeditor/js/ace/mode-r.js +13 -13
  188. package/src/sap/ui/codeeditor/js/ace/mode-raku.js +8 -8
  189. package/src/sap/ui/codeeditor/js/ace/mode-razor.js +386 -326
  190. package/src/sap/ui/codeeditor/js/ace/mode-rdoc.js +6 -6
  191. package/src/sap/ui/codeeditor/js/ace/mode-red.js +0 -0
  192. package/src/sap/ui/codeeditor/js/ace/mode-redshift.js +32 -32
  193. package/src/sap/ui/codeeditor/js/ace/mode-rhtml.js +390 -330
  194. package/src/sap/ui/codeeditor/js/ace/mode-rst.js +0 -0
  195. package/src/sap/ui/codeeditor/js/ace/mode-ruby.js +25 -25
  196. package/src/sap/ui/codeeditor/js/ace/mode-rust.js +39 -32
  197. package/src/sap/ui/codeeditor/js/ace/mode-sac.js +13 -13
  198. package/src/sap/ui/codeeditor/js/ace/mode-sass.js +14 -11
  199. package/src/sap/ui/codeeditor/js/ace/mode-scad.js +14 -14
  200. package/src/sap/ui/codeeditor/js/ace/mode-scala.js +381 -75
  201. package/src/sap/ui/codeeditor/js/ace/mode-scheme.js +2 -2
  202. package/src/sap/ui/codeeditor/js/ace/mode-scrypt.js +10 -10
  203. package/src/sap/ui/codeeditor/js/ace/mode-scss.js +14 -11
  204. package/src/sap/ui/codeeditor/js/ace/mode-sh.js +3 -3
  205. package/src/sap/ui/codeeditor/js/ace/mode-sjs.js +371 -65
  206. package/src/sap/ui/codeeditor/js/ace/mode-slim.js +521 -461
  207. package/src/sap/ui/codeeditor/js/ace/mode-smarty.js +377 -317
  208. package/src/sap/ui/codeeditor/js/ace/mode-snippets.js +0 -0
  209. package/src/sap/ui/codeeditor/js/ace/mode-soy_template.js +377 -317
  210. package/src/sap/ui/codeeditor/js/ace/mode-space.js +0 -0
  211. package/src/sap/ui/codeeditor/js/ace/mode-sparql.js +0 -0
  212. package/src/sap/ui/codeeditor/js/ace/mode-sql.js +12 -6
  213. package/src/sap/ui/codeeditor/js/ace/mode-sqlserver.js +5 -5
  214. package/src/sap/ui/codeeditor/js/ace/mode-stylus.js +10 -7
  215. package/src/sap/ui/codeeditor/js/ace/mode-svg.js +132 -75
  216. package/src/sap/ui/codeeditor/js/ace/mode-swift.js +5 -4
  217. package/src/sap/ui/codeeditor/js/ace/mode-tcl.js +7 -7
  218. package/src/sap/ui/codeeditor/js/ace/mode-terraform.js +0 -0
  219. package/src/sap/ui/codeeditor/js/ace/mode-tex.js +6 -6
  220. package/src/sap/ui/codeeditor/js/ace/mode-text.js +0 -0
  221. package/src/sap/ui/codeeditor/js/ace/mode-textile.js +0 -0
  222. package/src/sap/ui/codeeditor/js/ace/mode-toml.js +0 -0
  223. package/src/sap/ui/codeeditor/js/ace/mode-tsx.js +492 -182
  224. package/src/sap/ui/codeeditor/js/ace/mode-turtle.js +0 -0
  225. package/src/sap/ui/codeeditor/js/ace/mode-twig.js +379 -319
  226. package/src/sap/ui/codeeditor/js/ace/mode-typescript.js +371 -65
  227. package/src/sap/ui/codeeditor/js/ace/mode-vala.js +0 -0
  228. package/src/sap/ui/codeeditor/js/ace/mode-vbscript.js +0 -0
  229. package/src/sap/ui/codeeditor/js/ace/mode-velocity.js +387 -327
  230. package/src/sap/ui/codeeditor/js/ace/mode-verilog.js +1 -1
  231. package/src/sap/ui/codeeditor/js/ace/mode-vhdl.js +4 -4
  232. package/src/sap/ui/codeeditor/js/ace/mode-visualforce.js +377 -317
  233. package/src/sap/ui/codeeditor/js/ace/mode-vue.js +3834 -0
  234. package/src/sap/ui/codeeditor/js/ace/mode-wollok.js +382 -76
  235. package/src/sap/ui/codeeditor/js/ace/mode-xml.js +18 -10
  236. package/src/sap/ui/codeeditor/js/ace/mode-xquery.js +4 -5
  237. package/src/sap/ui/codeeditor/js/ace/mode-yaml.js +5 -5
  238. package/src/sap/ui/codeeditor/js/ace/mode-zeek.js +2 -2
  239. package/src/sap/ui/codeeditor/js/ace/mode-zig.js +585 -0
  240. package/src/sap/ui/codeeditor/js/ace/snippets/abap.js +0 -0
  241. package/src/sap/ui/codeeditor/js/ace/snippets/abc.js +0 -0
  242. package/src/sap/ui/codeeditor/js/ace/snippets/actionscript.js +0 -0
  243. package/src/sap/ui/codeeditor/js/ace/snippets/ada.js +0 -0
  244. package/src/sap/ui/codeeditor/js/ace/snippets/apache_conf.js +0 -0
  245. package/src/sap/ui/codeeditor/js/ace/snippets/applescript.js +0 -0
  246. package/src/sap/ui/codeeditor/js/ace/snippets/asciidoc.js +0 -0
  247. package/src/sap/ui/codeeditor/js/ace/snippets/asl.js +0 -0
  248. package/src/sap/ui/codeeditor/js/ace/snippets/assembly_arm32.js +9 -0
  249. package/src/sap/ui/codeeditor/js/ace/snippets/assembly_x86.js +0 -0
  250. package/src/sap/ui/codeeditor/js/ace/snippets/autohotkey.js +0 -0
  251. package/src/sap/ui/codeeditor/js/ace/snippets/basic.js +9 -0
  252. package/src/sap/ui/codeeditor/js/ace/snippets/batchfile.js +0 -0
  253. package/src/sap/ui/codeeditor/js/ace/snippets/c9search.js +0 -0
  254. package/src/sap/ui/codeeditor/js/ace/snippets/c_cpp.js +0 -0
  255. package/src/sap/ui/codeeditor/js/ace/snippets/cirru.js +0 -0
  256. package/src/sap/ui/codeeditor/js/ace/snippets/clojure.js +0 -0
  257. package/src/sap/ui/codeeditor/js/ace/snippets/cobol.js +0 -0
  258. package/src/sap/ui/codeeditor/js/ace/snippets/coffee.js +0 -0
  259. package/src/sap/ui/codeeditor/js/ace/snippets/coldfusion.js +0 -0
  260. package/src/sap/ui/codeeditor/js/ace/snippets/csharp.js +0 -0
  261. package/src/sap/ui/codeeditor/js/ace/snippets/csound_document.js +0 -0
  262. package/src/sap/ui/codeeditor/js/ace/snippets/csound_orchestra.js +0 -0
  263. package/src/sap/ui/codeeditor/js/ace/snippets/csound_score.js +0 -0
  264. package/src/sap/ui/codeeditor/js/ace/snippets/csp.js +0 -0
  265. package/src/sap/ui/codeeditor/js/ace/snippets/css.js +0 -0
  266. package/src/sap/ui/codeeditor/js/ace/snippets/curly.js +0 -0
  267. package/src/sap/ui/codeeditor/js/ace/snippets/d.js +0 -0
  268. package/src/sap/ui/codeeditor/js/ace/snippets/dart.js +0 -0
  269. package/src/sap/ui/codeeditor/js/ace/snippets/diff.js +0 -0
  270. package/src/sap/ui/codeeditor/js/ace/snippets/django.js +0 -0
  271. package/src/sap/ui/codeeditor/js/ace/snippets/dockerfile.js +0 -0
  272. package/src/sap/ui/codeeditor/js/ace/snippets/dot.js +0 -0
  273. package/src/sap/ui/codeeditor/js/ace/snippets/drools.js +0 -0
  274. package/src/sap/ui/codeeditor/js/ace/snippets/edifact.js +0 -0
  275. package/src/sap/ui/codeeditor/js/ace/snippets/eiffel.js +0 -0
  276. package/src/sap/ui/codeeditor/js/ace/snippets/ejs.js +0 -0
  277. package/src/sap/ui/codeeditor/js/ace/snippets/elixir.js +0 -0
  278. package/src/sap/ui/codeeditor/js/ace/snippets/elm.js +0 -0
  279. package/src/sap/ui/codeeditor/js/ace/snippets/erlang.js +0 -0
  280. package/src/sap/ui/codeeditor/js/ace/snippets/forth.js +0 -0
  281. package/src/sap/ui/codeeditor/js/ace/snippets/fortran.js +0 -0
  282. package/src/sap/ui/codeeditor/js/ace/snippets/fsharp.js +0 -0
  283. package/src/sap/ui/codeeditor/js/ace/snippets/ftl.js +0 -0
  284. package/src/sap/ui/codeeditor/js/ace/snippets/gcode.js +0 -0
  285. package/src/sap/ui/codeeditor/js/ace/snippets/gherkin.js +0 -0
  286. package/src/sap/ui/codeeditor/js/ace/snippets/gitignore.js +0 -0
  287. package/src/sap/ui/codeeditor/js/ace/snippets/glsl.js +0 -0
  288. package/src/sap/ui/codeeditor/js/ace/snippets/gobstones.js +0 -0
  289. package/src/sap/ui/codeeditor/js/ace/snippets/golang.js +0 -0
  290. package/src/sap/ui/codeeditor/js/ace/snippets/graphqlschema.js +0 -0
  291. package/src/sap/ui/codeeditor/js/ace/snippets/groovy.js +0 -0
  292. package/src/sap/ui/codeeditor/js/ace/snippets/haml.js +0 -0
  293. package/src/sap/ui/codeeditor/js/ace/snippets/handlebars.js +0 -0
  294. package/src/sap/ui/codeeditor/js/ace/snippets/haskell.js +0 -0
  295. package/src/sap/ui/codeeditor/js/ace/snippets/haskell_cabal.js +0 -0
  296. package/src/sap/ui/codeeditor/js/ace/snippets/haxe.js +0 -0
  297. package/src/sap/ui/codeeditor/js/ace/snippets/hjson.js +0 -0
  298. package/src/sap/ui/codeeditor/js/ace/snippets/html.js +0 -0
  299. package/src/sap/ui/codeeditor/js/ace/snippets/html_elixir.js +0 -0
  300. package/src/sap/ui/codeeditor/js/ace/snippets/html_ruby.js +0 -0
  301. package/src/sap/ui/codeeditor/js/ace/snippets/ini.js +0 -0
  302. package/src/sap/ui/codeeditor/js/ace/snippets/io.js +0 -0
  303. package/src/sap/ui/codeeditor/js/ace/snippets/jack.js +0 -0
  304. package/src/sap/ui/codeeditor/js/ace/snippets/jade.js +0 -0
  305. package/src/sap/ui/codeeditor/js/ace/snippets/java.js +0 -0
  306. package/src/sap/ui/codeeditor/js/ace/snippets/javascript.js +0 -0
  307. package/src/sap/ui/codeeditor/js/ace/snippets/json.js +0 -0
  308. package/src/sap/ui/codeeditor/js/ace/snippets/jsoniq.js +0 -0
  309. package/src/sap/ui/codeeditor/js/ace/snippets/jsp.js +0 -0
  310. package/src/sap/ui/codeeditor/js/ace/snippets/jssm.js +0 -0
  311. package/src/sap/ui/codeeditor/js/ace/snippets/jsx.js +0 -0
  312. package/src/sap/ui/codeeditor/js/ace/snippets/julia.js +0 -0
  313. package/src/sap/ui/codeeditor/js/ace/snippets/kotlin.js +0 -0
  314. package/src/sap/ui/codeeditor/js/ace/snippets/latex.js +0 -0
  315. package/src/sap/ui/codeeditor/js/ace/snippets/less.js +0 -0
  316. package/src/sap/ui/codeeditor/js/ace/snippets/liquid.js +0 -0
  317. package/src/sap/ui/codeeditor/js/ace/snippets/lisp.js +0 -0
  318. package/src/sap/ui/codeeditor/js/ace/snippets/livescript.js +0 -0
  319. package/src/sap/ui/codeeditor/js/ace/snippets/logiql.js +0 -0
  320. package/src/sap/ui/codeeditor/js/ace/snippets/lsl.js +0 -0
  321. package/src/sap/ui/codeeditor/js/ace/snippets/lua.js +0 -0
  322. package/src/sap/ui/codeeditor/js/ace/snippets/luapage.js +0 -0
  323. package/src/sap/ui/codeeditor/js/ace/snippets/lucene.js +0 -0
  324. package/src/sap/ui/codeeditor/js/ace/snippets/makefile.js +0 -0
  325. package/src/sap/ui/codeeditor/js/ace/snippets/markdown.js +0 -0
  326. package/src/sap/ui/codeeditor/js/ace/snippets/mask.js +0 -0
  327. package/src/sap/ui/codeeditor/js/ace/snippets/matlab.js +0 -0
  328. package/src/sap/ui/codeeditor/js/ace/snippets/maze.js +0 -0
  329. package/src/sap/ui/codeeditor/js/ace/snippets/mel.js +0 -0
  330. package/src/sap/ui/codeeditor/js/ace/snippets/mixal.js +0 -0
  331. package/src/sap/ui/codeeditor/js/ace/snippets/mushcode.js +0 -0
  332. package/src/sap/ui/codeeditor/js/ace/snippets/mysql.js +0 -0
  333. package/src/sap/ui/codeeditor/js/ace/snippets/nix.js +0 -0
  334. package/src/sap/ui/codeeditor/js/ace/snippets/nsis.js +0 -0
  335. package/src/sap/ui/codeeditor/js/ace/snippets/objectivec.js +0 -0
  336. package/src/sap/ui/codeeditor/js/ace/snippets/ocaml.js +0 -0
  337. package/src/sap/ui/codeeditor/js/ace/snippets/pascal.js +0 -0
  338. package/src/sap/ui/codeeditor/js/ace/snippets/perl.js +0 -0
  339. package/src/sap/ui/codeeditor/js/ace/snippets/pgsql.js +0 -0
  340. package/src/sap/ui/codeeditor/js/ace/snippets/php.js +0 -0
  341. package/src/sap/ui/codeeditor/js/ace/snippets/php_laravel_blade.js +0 -0
  342. package/src/sap/ui/codeeditor/js/ace/snippets/pig.js +0 -0
  343. package/src/sap/ui/codeeditor/js/ace/snippets/plain_text.js +0 -0
  344. package/src/sap/ui/codeeditor/js/ace/snippets/powershell.js +0 -0
  345. package/src/sap/ui/codeeditor/js/ace/snippets/praat.js +0 -0
  346. package/src/sap/ui/codeeditor/js/ace/snippets/prolog.js +0 -0
  347. package/src/sap/ui/codeeditor/js/ace/snippets/properties.js +0 -0
  348. package/src/sap/ui/codeeditor/js/ace/snippets/protobuf.js +0 -0
  349. package/src/sap/ui/codeeditor/js/ace/snippets/puppet.js +0 -0
  350. package/src/sap/ui/codeeditor/js/ace/snippets/python.js +0 -0
  351. package/src/sap/ui/codeeditor/js/ace/snippets/r.js +0 -0
  352. package/src/sap/ui/codeeditor/js/ace/snippets/razor.js +0 -0
  353. package/src/sap/ui/codeeditor/js/ace/snippets/rdoc.js +0 -0
  354. package/src/sap/ui/codeeditor/js/ace/snippets/red.js +0 -0
  355. package/src/sap/ui/codeeditor/js/ace/snippets/redshift.js +0 -0
  356. package/src/sap/ui/codeeditor/js/ace/snippets/rhtml.js +0 -0
  357. package/src/sap/ui/codeeditor/js/ace/snippets/rst.js +0 -0
  358. package/src/sap/ui/codeeditor/js/ace/snippets/ruby.js +0 -0
  359. package/src/sap/ui/codeeditor/js/ace/snippets/rust.js +0 -0
  360. package/src/sap/ui/codeeditor/js/ace/snippets/sass.js +0 -0
  361. package/src/sap/ui/codeeditor/js/ace/snippets/scad.js +0 -0
  362. package/src/sap/ui/codeeditor/js/ace/snippets/scala.js +0 -0
  363. package/src/sap/ui/codeeditor/js/ace/snippets/scheme.js +0 -0
  364. package/src/sap/ui/codeeditor/js/ace/snippets/scss.js +0 -0
  365. package/src/sap/ui/codeeditor/js/ace/snippets/sh.js +0 -0
  366. package/src/sap/ui/codeeditor/js/ace/snippets/sjs.js +0 -0
  367. package/src/sap/ui/codeeditor/js/ace/snippets/slim.js +0 -0
  368. package/src/sap/ui/codeeditor/js/ace/snippets/smarty.js +0 -0
  369. package/src/sap/ui/codeeditor/js/ace/snippets/snippets.js +0 -0
  370. package/src/sap/ui/codeeditor/js/ace/snippets/soy_template.js +0 -0
  371. package/src/sap/ui/codeeditor/js/ace/snippets/space.js +0 -0
  372. package/src/sap/ui/codeeditor/js/ace/snippets/sparql.js +0 -0
  373. package/src/sap/ui/codeeditor/js/ace/snippets/sql.js +0 -0
  374. package/src/sap/ui/codeeditor/js/ace/snippets/sqlserver.js +0 -0
  375. package/src/sap/ui/codeeditor/js/ace/snippets/stylus.js +0 -0
  376. package/src/sap/ui/codeeditor/js/ace/snippets/svg.js +0 -0
  377. package/src/sap/ui/codeeditor/js/ace/snippets/swift.js +0 -0
  378. package/src/sap/ui/codeeditor/js/ace/snippets/tcl.js +0 -0
  379. package/src/sap/ui/codeeditor/js/ace/snippets/terraform.js +0 -0
  380. package/src/sap/ui/codeeditor/js/ace/snippets/tex.js +0 -0
  381. package/src/sap/ui/codeeditor/js/ace/snippets/text.js +0 -0
  382. package/src/sap/ui/codeeditor/js/ace/snippets/textile.js +0 -0
  383. package/src/sap/ui/codeeditor/js/ace/snippets/toml.js +0 -0
  384. package/src/sap/ui/codeeditor/js/ace/snippets/tsx.js +0 -0
  385. package/src/sap/ui/codeeditor/js/ace/snippets/turtle.js +0 -0
  386. package/src/sap/ui/codeeditor/js/ace/snippets/twig.js +0 -0
  387. package/src/sap/ui/codeeditor/js/ace/snippets/typescript.js +0 -0
  388. package/src/sap/ui/codeeditor/js/ace/snippets/vala.js +0 -0
  389. package/src/sap/ui/codeeditor/js/ace/snippets/vbscript.js +0 -0
  390. package/src/sap/ui/codeeditor/js/ace/snippets/velocity.js +0 -0
  391. package/src/sap/ui/codeeditor/js/ace/snippets/verilog.js +0 -0
  392. package/src/sap/ui/codeeditor/js/ace/snippets/vhdl.js +0 -0
  393. package/src/sap/ui/codeeditor/js/ace/snippets/vue.js +9 -0
  394. package/src/sap/ui/codeeditor/js/ace/snippets/wollok.js +0 -0
  395. package/src/sap/ui/codeeditor/js/ace/snippets/xml.js +0 -0
  396. package/src/sap/ui/codeeditor/js/ace/snippets/xquery.js +0 -0
  397. package/src/sap/ui/codeeditor/js/ace/snippets/yaml.js +0 -0
  398. package/src/sap/ui/codeeditor/js/ace/snippets/zig.js +9 -0
  399. package/src/sap/ui/codeeditor/js/ace/theme-ambiance.js +0 -0
  400. package/src/sap/ui/codeeditor/js/ace/theme-chaos.js +0 -0
  401. package/src/sap/ui/codeeditor/js/ace/theme-chrome.js +0 -0
  402. package/src/sap/ui/codeeditor/js/ace/theme-cloud_editor.js +18 -0
  403. package/src/sap/ui/codeeditor/js/ace/theme-cloud_editor_dark.js +18 -0
  404. package/src/sap/ui/codeeditor/js/ace/theme-clouds.js +0 -0
  405. package/src/sap/ui/codeeditor/js/ace/theme-clouds_midnight.js +0 -0
  406. package/src/sap/ui/codeeditor/js/ace/theme-cobalt.js +0 -0
  407. package/src/sap/ui/codeeditor/js/ace/theme-crimson_editor.js +0 -0
  408. package/src/sap/ui/codeeditor/js/ace/theme-dawn.js +0 -0
  409. package/src/sap/ui/codeeditor/js/ace/theme-dracula.js +0 -0
  410. package/src/sap/ui/codeeditor/js/ace/theme-dreamweaver.js +0 -0
  411. package/src/sap/ui/codeeditor/js/ace/theme-eclipse.js +0 -0
  412. package/src/sap/ui/codeeditor/js/ace/theme-github.js +0 -0
  413. package/src/sap/ui/codeeditor/js/ace/theme-github_light_default.js +18 -0
  414. package/src/sap/ui/codeeditor/js/ace/theme-gob.js +0 -0
  415. package/src/sap/ui/codeeditor/js/ace/theme-gruvbox.js +0 -0
  416. package/src/sap/ui/codeeditor/js/ace/theme-idle_fingers.js +0 -0
  417. package/src/sap/ui/codeeditor/js/ace/theme-iplastic.js +0 -0
  418. package/src/sap/ui/codeeditor/js/ace/theme-katzenmilch.js +0 -0
  419. package/src/sap/ui/codeeditor/js/ace/theme-kr_theme.js +0 -0
  420. package/src/sap/ui/codeeditor/js/ace/theme-kuroir.js +0 -0
  421. package/src/sap/ui/codeeditor/js/ace/theme-merbivore.js +0 -0
  422. package/src/sap/ui/codeeditor/js/ace/theme-merbivore_soft.js +0 -0
  423. package/src/sap/ui/codeeditor/js/ace/theme-mono_industrial.js +0 -0
  424. package/src/sap/ui/codeeditor/js/ace/theme-monokai.js +0 -0
  425. package/src/sap/ui/codeeditor/js/ace/theme-pastel_on_dark.js +0 -0
  426. package/src/sap/ui/codeeditor/js/ace/theme-solarized_dark.js +1 -1
  427. package/src/sap/ui/codeeditor/js/ace/theme-solarized_light.js +0 -0
  428. package/src/sap/ui/codeeditor/js/ace/theme-sqlserver.js +0 -0
  429. package/src/sap/ui/codeeditor/js/ace/theme-terminal.js +0 -0
  430. package/src/sap/ui/codeeditor/js/ace/theme-textmate.js +0 -0
  431. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow.js +0 -0
  432. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night.js +0 -0
  433. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_blue.js +0 -0
  434. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_bright.js +0 -0
  435. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_eighties.js +0 -0
  436. package/src/sap/ui/codeeditor/js/ace/theme-twilight.js +0 -0
  437. package/src/sap/ui/codeeditor/js/ace/theme-vibrant_ink.js +0 -0
  438. package/src/sap/ui/codeeditor/js/ace/theme-xcode.js +0 -0
  439. package/src/sap/ui/codeeditor/js/ace/worker-base.js +3 -13
  440. package/src/sap/ui/codeeditor/js/ace/worker-coffee.js +3 -13
  441. package/src/sap/ui/codeeditor/js/ace/worker-css.js +3 -13
  442. package/src/sap/ui/codeeditor/js/ace/worker-html.js +3 -13
  443. package/src/sap/ui/codeeditor/js/ace/worker-javascript.js +3 -13
  444. package/src/sap/ui/codeeditor/js/ace/worker-json.js +3 -13
  445. package/src/sap/ui/codeeditor/js/ace/worker-lua.js +3 -13
  446. package/src/sap/ui/codeeditor/js/ace/worker-php.js +3 -13
  447. package/src/sap/ui/codeeditor/js/ace/worker-xml.js +8 -15
  448. package/src/sap/ui/codeeditor/js/ace/worker-xquery.js +3 -13
  449. package/src/sap/ui/codeeditor/js/ace/worker-yaml.js +6 -16
  450. package/src/sap/ui/codeeditor/library.js +2 -2
  451. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +0 -5
  452. package/LICENSES/Unicode-DFS-2015.txt +0 -51
@@ -8,7 +8,7 @@ var DocCommentHighlightRules = function () {
8
8
  token: "comment.doc.tag",
9
9
  regex: "@\\w+(?=\\s|$)"
10
10
  }, DocCommentHighlightRules.getTagRule(), {
11
- defaultToken: "comment.doc",
11
+ defaultToken: "comment.doc.body",
12
12
  caseInsensitive: true
13
13
  }
14
14
  ]
@@ -23,14 +23,14 @@ DocCommentHighlightRules.getTagRule = function (start) {
23
23
  };
24
24
  DocCommentHighlightRules.getStartRule = function (start) {
25
25
  return {
26
- token: "comment.doc",
27
- regex: "\\/\\*(?=\\*)",
26
+ token: "comment.doc", // doc comment
27
+ regex: /\/\*\*(?!\/)/,
28
28
  next: start
29
29
  };
30
30
  };
31
31
  DocCommentHighlightRules.getEndRule = function (start) {
32
32
  return {
33
- token: "comment.doc",
33
+ token: "comment.doc", // closing comment
34
34
  regex: "\\*\\/",
35
35
  next: start
36
36
  };
@@ -115,7 +115,7 @@ var CssHighlightRules = function () {
115
115
  + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
116
116
  }],
117
117
  "comments": [{
118
- token: "comment",
118
+ token: "comment", // multi line comment
119
119
  regex: "\\/\\*",
120
120
  push: [{
121
121
  token: "comment",
@@ -144,10 +144,10 @@ var CssHighlightRules = function () {
144
144
  token: "constant.numeric",
145
145
  regex: numRe
146
146
  }, {
147
- token: "constant.numeric",
147
+ token: "constant.numeric", // hex6 color
148
148
  regex: "#[a-f0-9]{6}"
149
149
  }, {
150
- token: "constant.numeric",
150
+ token: "constant.numeric", // hex3 color
151
151
  regex: "#[a-f0-9]{3}"
152
152
  }, {
153
153
  token: ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
@@ -160,6 +160,9 @@ var CssHighlightRules = function () {
160
160
  }, {
161
161
  token: keywordMapper,
162
162
  regex: "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
163
+ }, {
164
+ token: "paren.lparen",
165
+ regex: "\\{"
163
166
  }, {
164
167
  caseInsensitive: true
165
168
  }],
@@ -243,7 +246,7 @@ var JsDocCommentHighlightRules = function () {
243
246
  ]
244
247
  }, {
245
248
  token: ["rparen.doc", "text.doc", "variable.parameter.doc", "lparen.doc", "variable.parameter.doc", "rparen.doc"],
246
- regex: /(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,
249
+ regex: /(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.\-\'\" ]+)(\])))/,
247
250
  next: "pop"
248
251
  }, {
249
252
  token: "rparen.doc",
@@ -303,7 +306,7 @@ var JsDocCommentHighlightRules = function () {
303
306
  },
304
307
  JsDocCommentHighlightRules.getTagRule(),
305
308
  {
306
- defaultToken: "comment.doc",
309
+ defaultToken: "comment.doc.body",
307
310
  caseInsensitive: true
308
311
  }
309
312
  ],
@@ -326,14 +329,14 @@ JsDocCommentHighlightRules.getTagRule = function (start) {
326
329
  };
327
330
  JsDocCommentHighlightRules.getStartRule = function (start) {
328
331
  return {
329
- token: "comment.doc",
330
- regex: "\\/\\*(?=\\*)",
332
+ token: "comment.doc", // doc comment
333
+ regex: /\/\*\*(?!\/)/,
331
334
  next: start
332
335
  };
333
336
  };
334
337
  JsDocCommentHighlightRules.getEndRule = function (start) {
335
338
  return {
336
- token: "comment.doc",
339
+ token: "comment.doc", // closing comment
337
340
  regex: "\\*\\/",
338
341
  next: start
339
342
  };
@@ -348,7 +351,7 @@ var DocCommentHighlightRules = require("./jsdoc_comment_highlight_rules").JsDocC
348
351
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
349
352
  var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
350
353
  var JavaScriptHighlightRules = function (options) {
351
- var keywordMapper = this.createKeywordMapper({
354
+ var keywords = {
352
355
  "variable.language": "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|" + // Constructors
353
356
  "Namespace|QName|XML|XMLList|" + // E4X
354
357
  "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
@@ -358,9 +361,9 @@ var JavaScriptHighlightRules = function (options) {
358
361
  "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions
359
362
  "isNaN|parseFloat|parseInt|" +
360
363
  "JSON|Math|" + // Other
361
- "this|arguments|prototype|window|document",
364
+ "this|arguments|prototype|window|document", // Pseudo
362
365
  "keyword": "const|yield|import|get|set|async|await|" +
363
- "break|case|catch|continue|default|delete|do|else|finally|for|function|" +
366
+ "break|case|catch|continue|default|delete|do|else|finally|for|" +
364
367
  "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
365
368
  "__parent__|__count__|escape|unescape|with|__proto__|" +
366
369
  "class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor",
@@ -368,7 +371,8 @@ var JavaScriptHighlightRules = function (options) {
368
371
  "constant.language": "null|Infinity|NaN|undefined",
369
372
  "support.function": "alert",
370
373
  "constant.language.boolean": "true|false"
371
- }, "identifier");
374
+ };
375
+ var keywordMapper = this.createKeywordMapper(keywords, "identifier");
372
376
  var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";
373
377
  var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
374
378
  "u[0-9a-fA-F]{4}|" + // unicode
@@ -377,10 +381,16 @@ var JavaScriptHighlightRules = function (options) {
377
381
  "3[0-7][0-7]?|" + // oct
378
382
  "[4-7][0-7]?|" + //oct
379
383
  ".)";
384
+ var anonymousFunctionRe = "(function)(\\s*)(\\*?)";
385
+ var functionCallStartRule = {
386
+ token: ["identifier", "text", "paren.lparen"],
387
+ regex: "(\\b(?!" + Object.values(keywords).join("|") + "\\b)" + identifierRe + ")(\\s*)(\\()"
388
+ };
380
389
  this.$rules = {
381
390
  "no_regex": [
382
391
  DocCommentHighlightRules.getStartRule("doc-start"),
383
392
  comments("no_regex"),
393
+ functionCallStartRule,
384
394
  {
385
395
  token: "string",
386
396
  regex: "'(?=.)",
@@ -390,58 +400,36 @@ var JavaScriptHighlightRules = function (options) {
390
400
  regex: '"(?=.)',
391
401
  next: "qqstring"
392
402
  }, {
393
- token: "constant.numeric",
403
+ token: "constant.numeric", // hexadecimal, octal and binary
394
404
  regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
395
405
  }, {
396
- token: "constant.numeric",
406
+ token: "constant.numeric", // decimal integers and floats
397
407
  regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
398
- }, {
399
- token: [
400
- "storage.type", "punctuation.operator", "support.function",
401
- "punctuation.operator", "entity.name.function", "text", "keyword.operator"
402
- ],
403
- regex: "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe + ")(\\s*)(=)",
404
- next: "function_arguments"
405
- }, {
406
- token: [
407
- "storage.type", "punctuation.operator", "entity.name.function", "text",
408
- "keyword.operator", "text", "storage.type", "text", "paren.lparen"
409
- ],
410
- regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
411
- next: "function_arguments"
412
408
  }, {
413
409
  token: [
414
410
  "entity.name.function", "text", "keyword.operator", "text", "storage.type",
415
- "text", "paren.lparen"
416
- ],
417
- regex: "(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
418
- next: "function_arguments"
419
- }, {
420
- token: [
421
- "storage.type", "punctuation.operator", "entity.name.function", "text",
422
- "keyword.operator", "text",
423
- "storage.type", "text", "entity.name.function", "text", "paren.lparen"
411
+ "text", "storage.type", "text", "paren.lparen"
424
412
  ],
425
- regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",
413
+ regex: "(" + identifierRe + ")(\\s*)(=)(\\s*)" + anonymousFunctionRe + "(\\s*)(\\()",
426
414
  next: "function_arguments"
427
415
  }, {
428
416
  token: [
429
- "storage.type", "text", "entity.name.function", "text", "paren.lparen"
417
+ "storage.type", "text", "storage.type", "text", "text", "entity.name.function", "text", "paren.lparen"
430
418
  ],
431
- regex: "(function\\*?)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
419
+ regex: "(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(" + identifierRe + ")(\\s*)(\\()",
432
420
  next: "function_arguments"
433
421
  }, {
434
422
  token: [
435
423
  "entity.name.function", "text", "punctuation.operator",
436
- "text", "storage.type", "text", "paren.lparen"
424
+ "text", "storage.type", "text", "storage.type", "text", "paren.lparen"
437
425
  ],
438
- regex: "(" + identifierRe + ")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",
426
+ regex: "(" + identifierRe + ")(\\s*)(:)(\\s*)" + anonymousFunctionRe + "(\\s*)(\\()",
439
427
  next: "function_arguments"
440
428
  }, {
441
429
  token: [
442
- "text", "text", "storage.type", "text", "paren.lparen"
430
+ "text", "text", "storage.type", "text", "storage.type", "text", "paren.lparen"
443
431
  ],
444
- regex: "(:)(\\s*)(function\\*?)(\\s*)(\\()",
432
+ regex: "(:)(\\s*)" + anonymousFunctionRe + "(\\s*)(\\()",
445
433
  next: "function_arguments"
446
434
  }, {
447
435
  token: "keyword",
@@ -455,7 +443,7 @@ var JavaScriptHighlightRules = function (options) {
455
443
  regex: /that\b/
456
444
  }, {
457
445
  token: ["storage.type", "punctuation.operator", "support.function.firebug"],
458
- regex: /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
446
+ regex: /(console)(\.)(warn|info|log|error|debug|time|trace|timeEnd|assert)\b/
459
447
  }, {
460
448
  token: keywordMapper,
461
449
  regex: identifierRe
@@ -490,17 +478,27 @@ var JavaScriptHighlightRules = function (options) {
490
478
  property: [{
491
479
  token: "text",
492
480
  regex: "\\s+"
481
+ }, {
482
+ token: "keyword.operator",
483
+ regex: /=/
484
+ }, {
485
+ token: [
486
+ "storage.type", "text", "storage.type", "text", "paren.lparen"
487
+ ],
488
+ regex: anonymousFunctionRe + "(\\s*)(\\()",
489
+ next: "function_arguments"
493
490
  }, {
494
491
  token: [
495
- "storage.type", "punctuation.operator", "entity.name.function", "text",
496
- "keyword.operator", "text",
497
- "storage.type", "text", "entity.name.function", "text", "paren.lparen"
492
+ "storage.type", "text", "storage.type", "text", "text", "entity.name.function", "text", "paren.lparen"
498
493
  ],
499
- regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",
494
+ regex: "(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(\\w+)(\\s*)(\\()",
500
495
  next: "function_arguments"
501
496
  }, {
502
497
  token: "punctuation.operator",
503
498
  regex: /[.](?![.])/
499
+ }, {
500
+ token: "support.function",
501
+ regex: "prototype"
504
502
  }, {
505
503
  token: "support.function",
506
504
  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(?=\()/
@@ -613,10 +611,10 @@ var JavaScriptHighlightRules = function (options) {
613
611
  token: "constant.language",
614
612
  regex: "null|Infinity|NaN|undefined"
615
613
  }, {
616
- token: "constant.numeric",
614
+ token: "constant.numeric", // hexadecimal, octal and binary
617
615
  regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
618
616
  }, {
619
- token: "constant.numeric",
617
+ token: "constant.numeric", // decimal integers and floats
620
618
  regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
621
619
  }, {
622
620
  token: "punctuation.operator",
@@ -725,7 +723,7 @@ var JavaScriptHighlightRules = function (options) {
725
723
  regex: "(" + identifierRe + ")(\\s*)(?=\\=>)"
726
724
  }, {
727
725
  token: "paren.lparen",
728
- regex: "(\\()(?=.+\\s*=>)",
726
+ regex: "(\\()(?=[^\\(]+\\s*=>)",
729
727
  next: "function_arguments"
730
728
  }, {
731
729
  token: "variable.language",
@@ -783,7 +781,7 @@ function JSX() {
783
781
  value: val.substr(offset)
784
782
  }];
785
783
  },
786
- regex: "</?" + tagRegex + "",
784
+ regex: "</?(?:" + tagRegex + "|(?=>))",
787
785
  next: "jsxAttributes",
788
786
  nextState: "jsx"
789
787
  };
@@ -796,8 +794,7 @@ function JSX() {
796
794
  this.$rules.jsx = [
797
795
  jsxJsRule,
798
796
  jsxTag,
799
- { include: "reference" },
800
- { defaultToken: "string" }
797
+ { include: "reference" }, { defaultToken: "string.xml" }
801
798
  ];
802
799
  this.$rules.jsxAttributes = [{
803
800
  token: "meta.tag.punctuation.tag-close.xml",
@@ -857,7 +854,7 @@ function JSX() {
857
854
  function comments(next) {
858
855
  return [
859
856
  {
860
- token: "comment",
857
+ token: "comment", // multi line comment
861
858
  regex: /\/\*/,
862
859
  next: [
863
860
  DocCommentHighlightRules.getTagRule(),
@@ -1990,28 +1987,28 @@ sql_regcase'.split('|'));
1990
1987
  },
1991
1988
  docComment.getStartRule("doc-start"),
1992
1989
  {
1993
- token: "comment",
1990
+ token: "comment", // multi line comment
1994
1991
  regex: "\\/\\*",
1995
1992
  next: "comment"
1996
1993
  }, {
1997
1994
  token: "string.regexp",
1998
1995
  regex: "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"
1999
1996
  }, {
2000
- token: "string",
1997
+ token: "string", // " string start
2001
1998
  regex: '"',
2002
1999
  next: "qqstring"
2003
2000
  }, {
2004
- token: "string",
2001
+ token: "string", // ' string start
2005
2002
  regex: "'",
2006
2003
  next: "qstring"
2007
2004
  }, {
2008
- token: "constant.numeric",
2005
+ token: "constant.numeric", // hex
2009
2006
  regex: "0[xX][0-9a-fA-F]+\\b"
2010
2007
  }, {
2011
- token: "constant.numeric",
2008
+ token: "constant.numeric", // float
2012
2009
  regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
2013
2010
  }, {
2014
- token: "constant.language",
2011
+ token: "constant.language", // constants
2015
2012
  regex: "\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|" +
2016
2013
  "ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|" +
2017
2014
  "HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|" +
@@ -2024,7 +2021,7 @@ sql_regcase'.split('|'));
2024
2021
  token: ["support.class", "keyword.operator"],
2025
2022
  regex: "\\b(\\w+)(::)"
2026
2023
  }, {
2027
- token: "constant.language",
2024
+ token: "constant.language", // constants
2028
2025
  regex: "\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|" +
2029
2026
  "SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|" +
2030
2027
  "O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|" +
@@ -2142,14 +2139,14 @@ var PhpHighlightRules = function () {
2142
2139
  HtmlHighlightRules.call(this);
2143
2140
  var startRules = [
2144
2141
  {
2145
- token: "support.php_tag",
2142
+ token: "support.php_tag", // php open tag
2146
2143
  regex: "<\\?(?:php|=)?",
2147
2144
  push: "php-start"
2148
2145
  }
2149
2146
  ];
2150
2147
  var endRules = [
2151
2148
  {
2152
- token: "support.php_tag",
2149
+ token: "support.php_tag", // php close tag
2153
2150
  regex: "\\?>",
2154
2151
  next: "pop"
2155
2152
  }
@@ -12745,203 +12742,679 @@ oop.inherits(FoldMode, BaseFoldMode);
12745
12742
 
12746
12743
  });
12747
12744
 
12748
- ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
12749
- var oop = require("../lib/oop");
12750
- var TextMode = require("./text").Mode;
12751
- var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
12752
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
12753
- var WorkerClient = require("../worker/worker_client").WorkerClient;
12754
- var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
12755
- var CStyleFoldMode = require("./folding/cstyle").FoldMode;
12756
- var Mode = function () {
12757
- this.HighlightRules = JavaScriptHighlightRules;
12758
- this.$outdent = new MatchingBraceOutdent();
12759
- this.$behaviour = new CstyleBehaviour();
12760
- this.foldingRules = new CStyleFoldMode();
12745
+ ace.define("ace/mode/folding/php",["require","exports","module","ace/lib/oop","ace/mode/folding/cstyle","ace/range","ace/token_iterator"], function(require, exports, module){"use strict";
12746
+ var oop = require("../../lib/oop");
12747
+ var CstyleFoldMode = require("./cstyle").FoldMode;
12748
+ var Range = require("../../range").Range;
12749
+ var TokenIterator = require("../../token_iterator").TokenIterator;
12750
+ var FoldMode = exports.FoldMode = function () {
12761
12751
  };
12762
- oop.inherits(Mode, TextMode);
12752
+ oop.inherits(FoldMode, CstyleFoldMode);
12763
12753
  (function () {
12764
- this.lineCommentStart = "//";
12765
- this.blockComment = { start: "/*", end: "*/" };
12766
- this.$quotes = { '"': '"', "'": "'", "`": "`" };
12767
- this.$pairQuotesAfter = {
12768
- "`": /\w/
12754
+ this.getFoldWidgetRangeBase = this.getFoldWidgetRange;
12755
+ this.getFoldWidgetBase = this.getFoldWidget;
12756
+ this.indentKeywords = {
12757
+ "if": 1,
12758
+ "while": 1,
12759
+ "for": 1,
12760
+ "foreach": 1,
12761
+ "switch": 1,
12762
+ "else": 0,
12763
+ "elseif": 0,
12764
+ "endif": -1,
12765
+ "endwhile": -1,
12766
+ "endfor": -1,
12767
+ "endforeach": -1,
12768
+ "endswitch": -1
12769
12769
  };
12770
- this.getNextLineIndent = function (state, line, tab) {
12771
- var indent = this.$getIndent(line);
12772
- var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
12773
- var tokens = tokenizedLine.tokens;
12774
- var endState = tokenizedLine.state;
12775
- if (tokens.length && tokens[tokens.length - 1].type == "comment") {
12776
- return indent;
12770
+ this.foldingStartMarkerPhp = /(?:\s|^)(if|else|elseif|while|for|foreach|switch).*\:/i;
12771
+ this.foldingStopMarkerPhp = /(?:\s|^)(endif|endwhile|endfor|endforeach|endswitch)\;/i;
12772
+ this.getFoldWidgetRange = function (session, foldStyle, row) {
12773
+ var line = session.doc.getLine(row);
12774
+ var match = this.foldingStartMarkerPhp.exec(line);
12775
+ if (match) {
12776
+ return this.phpBlock(session, row, match.index + 2);
12777
12777
  }
12778
- if (state == "start" || state == "no_regex") {
12779
- var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);
12780
- if (match) {
12781
- indent += tab;
12782
- }
12778
+ var match = this.foldingStopMarkerPhp.exec(line);
12779
+ if (match) {
12780
+ return this.phpBlock(session, row, match.index + 2);
12783
12781
  }
12784
- else if (state == "doc-start") {
12785
- if (endState == "start" || endState == "no_regex") {
12786
- return "";
12782
+ return this.getFoldWidgetRangeBase(session, foldStyle, row);
12783
+ };
12784
+ this.getFoldWidget = function (session, foldStyle, row) {
12785
+ var line = session.getLine(row);
12786
+ var isStart = this.foldingStartMarkerPhp.test(line);
12787
+ var isEnd = this.foldingStopMarkerPhp.test(line);
12788
+ if (isStart && !isEnd) {
12789
+ var match = this.foldingStartMarkerPhp.exec(line);
12790
+ var keyword = match && match[1].toLowerCase();
12791
+ if (keyword) {
12792
+ var type = session.getTokenAt(row, match.index + 2).type;
12793
+ if (type == "keyword") {
12794
+ return "start";
12795
+ }
12787
12796
  }
12788
- var match = line.match(/^\s*(\/?)\*/);
12789
- if (match) {
12790
- if (match[1]) {
12791
- indent += " ";
12797
+ }
12798
+ if (isEnd && foldStyle === "markbeginend") {
12799
+ var match = this.foldingStopMarkerPhp.exec(line);
12800
+ var keyword = match && match[1].toLowerCase();
12801
+ if (keyword) {
12802
+ var type = session.getTokenAt(row, match.index + 2).type;
12803
+ if (type == "keyword") {
12804
+ return "end";
12792
12805
  }
12793
- indent += "* ";
12794
12806
  }
12795
12807
  }
12796
- return indent;
12797
- };
12798
- this.checkOutdent = function (state, line, input) {
12799
- return this.$outdent.checkOutdent(line, input);
12800
- };
12801
- this.autoOutdent = function (state, doc, row) {
12802
- this.$outdent.autoOutdent(doc, row);
12808
+ return this.getFoldWidgetBase(session, foldStyle, row);
12803
12809
  };
12804
- this.createWorker = function (session) {
12805
- var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
12806
- worker.attachToDocument(session.getDocument());
12807
- worker.on("annotate", function (results) {
12808
- session.setAnnotations(results.data);
12809
- });
12810
- worker.on("terminate", function () {
12811
- session.clearAnnotations();
12812
- });
12813
- return worker;
12810
+ this.phpBlock = function (session, row, column, tokenRange) {
12811
+ var stream = new TokenIterator(session, row, column);
12812
+ var token = stream.getCurrentToken();
12813
+ if (!token || token.type != "keyword")
12814
+ return;
12815
+ var val = token.value;
12816
+ var stack = [val];
12817
+ var dir = this.indentKeywords[val];
12818
+ if (val === "else" || val === "elseif") {
12819
+ dir = 1;
12820
+ }
12821
+ if (!dir)
12822
+ return;
12823
+ var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length;
12824
+ var startRow = row;
12825
+ stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;
12826
+ while (token = stream.step()) {
12827
+ if (token.type !== "keyword")
12828
+ continue;
12829
+ var level = dir * this.indentKeywords[token.value];
12830
+ if (level > 0) {
12831
+ stack.unshift(token.value);
12832
+ }
12833
+ else if (level <= 0) {
12834
+ stack.shift();
12835
+ if (!stack.length)
12836
+ break;
12837
+ if (level === 0)
12838
+ stack.unshift(token.value);
12839
+ }
12840
+ }
12841
+ if (!token)
12842
+ return null;
12843
+ if (tokenRange)
12844
+ return stream.getCurrentTokenRange();
12845
+ var row = stream.getCurrentTokenRow();
12846
+ if (dir === -1)
12847
+ return new Range(row, session.getLine(row).length, startRow, startColumn);
12848
+ else
12849
+ return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn());
12814
12850
  };
12815
- this.$id = "ace/mode/javascript";
12816
- this.snippetFileId = "ace/snippets/javascript";
12817
- }).call(Mode.prototype);
12818
- exports.Mode = Mode;
12851
+ }).call(FoldMode.prototype);
12819
12852
 
12820
12853
  });
12821
12854
 
12822
- ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module){"use strict";
12823
- var propertyMap = {
12824
- "background": { "#$0": 1 },
12825
- "background-color": { "#$0": 1, "transparent": 1, "fixed": 1 },
12826
- "background-image": { "url('/$0')": 1 },
12827
- "background-repeat": { "repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1 },
12828
- "background-position": { "bottom": 2, "center": 2, "left": 2, "right": 2, "top": 2, "inherit": 2 },
12829
- "background-attachment": { "scroll": 1, "fixed": 1 },
12830
- "background-size": { "cover": 1, "contain": 1 },
12831
- "background-clip": { "border-box": 1, "padding-box": 1, "content-box": 1 },
12832
- "background-origin": { "border-box": 1, "padding-box": 1, "content-box": 1 },
12833
- "border": { "solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1 },
12834
- "border-color": { "#$0": 1 },
12835
- "border-style": { "solid": 2, "dashed": 2, "dotted": 2, "double": 2, "groove": 2, "hidden": 2, "inherit": 2, "inset": 2, "none": 2, "outset": 2, "ridged": 2 },
12836
- "border-collapse": { "collapse": 1, "separate": 1 },
12837
- "bottom": { "px": 1, "em": 1, "%": 1 },
12838
- "clear": { "left": 1, "right": 1, "both": 1, "none": 1 },
12839
- "color": { "#$0": 1, "rgb(#$00,0,0)": 1 },
12840
- "cursor": { "default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1 },
12841
- "display": { "none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1 },
12842
- "empty-cells": { "show": 1, "hide": 1 },
12843
- "float": { "left": 1, "right": 1, "none": 1 },
12844
- "font-family": { "Arial": 2, "Comic Sans MS": 2, "Consolas": 2, "Courier New": 2, "Courier": 2, "Georgia": 2, "Monospace": 2, "Sans-Serif": 2, "Segoe UI": 2, "Tahoma": 2, "Times New Roman": 2, "Trebuchet MS": 2, "Verdana": 1 },
12845
- "font-size": { "px": 1, "em": 1, "%": 1 },
12846
- "font-weight": { "bold": 1, "normal": 1 },
12847
- "font-style": { "italic": 1, "normal": 1 },
12848
- "font-variant": { "normal": 1, "small-caps": 1 },
12849
- "height": { "px": 1, "em": 1, "%": 1 },
12850
- "left": { "px": 1, "em": 1, "%": 1 },
12851
- "letter-spacing": { "normal": 1 },
12852
- "line-height": { "normal": 1 },
12853
- "list-style-type": { "none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1 },
12854
- "margin": { "px": 1, "em": 1, "%": 1 },
12855
- "margin-right": { "px": 1, "em": 1, "%": 1 },
12856
- "margin-left": { "px": 1, "em": 1, "%": 1 },
12857
- "margin-top": { "px": 1, "em": 1, "%": 1 },
12858
- "margin-bottom": { "px": 1, "em": 1, "%": 1 },
12859
- "max-height": { "px": 1, "em": 1, "%": 1 },
12860
- "max-width": { "px": 1, "em": 1, "%": 1 },
12861
- "min-height": { "px": 1, "em": 1, "%": 1 },
12862
- "min-width": { "px": 1, "em": 1, "%": 1 },
12863
- "overflow": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
12864
- "overflow-x": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
12865
- "overflow-y": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
12866
- "padding": { "px": 1, "em": 1, "%": 1 },
12867
- "padding-top": { "px": 1, "em": 1, "%": 1 },
12868
- "padding-right": { "px": 1, "em": 1, "%": 1 },
12869
- "padding-bottom": { "px": 1, "em": 1, "%": 1 },
12870
- "padding-left": { "px": 1, "em": 1, "%": 1 },
12871
- "page-break-after": { "auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1 },
12872
- "page-break-before": { "auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1 },
12873
- "position": { "absolute": 1, "relative": 1, "fixed": 1, "static": 1 },
12874
- "right": { "px": 1, "em": 1, "%": 1 },
12875
- "table-layout": { "fixed": 1, "auto": 1 },
12876
- "text-decoration": { "none": 1, "underline": 1, "line-through": 1, "blink": 1 },
12877
- "text-align": { "left": 1, "right": 1, "center": 1, "justify": 1 },
12878
- "text-transform": { "capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1 },
12879
- "top": { "px": 1, "em": 1, "%": 1 },
12880
- "vertical-align": { "top": 1, "bottom": 1 },
12881
- "visibility": { "hidden": 1, "visible": 1 },
12882
- "white-space": { "nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1 },
12883
- "width": { "px": 1, "em": 1, "%": 1 },
12884
- "word-spacing": { "normal": 1 },
12885
- "filter": { "alpha(opacity=$0100)": 1 },
12886
- "text-shadow": { "$02px 2px 2px #777": 1 },
12887
- "text-overflow": { "ellipsis-word": 1, "clip": 1, "ellipsis": 1 },
12888
- "-moz-border-radius": 1,
12889
- "-moz-border-radius-topright": 1,
12890
- "-moz-border-radius-bottomright": 1,
12891
- "-moz-border-radius-topleft": 1,
12892
- "-moz-border-radius-bottomleft": 1,
12893
- "-webkit-border-radius": 1,
12894
- "-webkit-border-top-right-radius": 1,
12895
- "-webkit-border-top-left-radius": 1,
12896
- "-webkit-border-bottom-right-radius": 1,
12897
- "-webkit-border-bottom-left-radius": 1,
12898
- "-moz-box-shadow": 1,
12899
- "-webkit-box-shadow": 1,
12900
- "transform": { "rotate($00deg)": 1, "skew($00deg)": 1 },
12901
- "-moz-transform": { "rotate($00deg)": 1, "skew($00deg)": 1 },
12902
- "-webkit-transform": { "rotate($00deg)": 1, "skew($00deg)": 1 }
12903
- };
12904
- var CssCompletions = function () {
12855
+ ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
12856
+ var oop = require("../../lib/oop");
12857
+ var BaseFoldMode = require("./fold_mode").FoldMode;
12858
+ var FoldMode = exports.FoldMode = function (defaultMode, subModes) {
12859
+ this.defaultMode = defaultMode;
12860
+ this.subModes = subModes;
12905
12861
  };
12862
+ oop.inherits(FoldMode, BaseFoldMode);
12906
12863
  (function () {
12907
- this.completionsDefined = false;
12908
- this.defineCompletions = function () {
12909
- if (document) {
12910
- var style = document.createElement('c').style;
12911
- for (var i in style) {
12912
- if (typeof style[i] !== 'string')
12913
- continue;
12914
- var name = i.replace(/[A-Z]/g, function (x) {
12915
- return '-' + x.toLowerCase();
12916
- });
12917
- if (!propertyMap.hasOwnProperty(name))
12918
- propertyMap[name] = 1;
12919
- }
12864
+ this.$getMode = function (state) {
12865
+ if (typeof state != "string")
12866
+ state = state[0];
12867
+ for (var key in this.subModes) {
12868
+ if (state.indexOf(key) === 0)
12869
+ return this.subModes[key];
12920
12870
  }
12921
- this.completionsDefined = true;
12871
+ return null;
12922
12872
  };
12923
- this.getCompletions = function (state, session, pos, prefix) {
12924
- if (!this.completionsDefined) {
12925
- this.defineCompletions();
12926
- }
12927
- if (state === 'ruleset' || session.$mode.$id == "ace/mode/scss") {
12928
- var line = session.getLine(pos.row).substr(0, pos.column);
12929
- var inParens = /\([^)]*$/.test(line);
12930
- if (inParens) {
12931
- line = line.substr(line.lastIndexOf('(') + 1);
12932
- }
12933
- if (/:[^;]+$/.test(line)) {
12934
- /([\w\-]+):[^:]*$/.test(line);
12935
- return this.getPropertyValueCompletions(state, session, pos, prefix);
12936
- }
12937
- else {
12938
- return this.getPropertyCompletions(state, session, pos, prefix, inParens);
12939
- }
12940
- }
12941
- return [];
12873
+ this.$tryMode = function (state, session, foldStyle, row) {
12874
+ var mode = this.$getMode(state);
12875
+ return (mode ? mode.getFoldWidget(session, foldStyle, row) : "");
12942
12876
  };
12943
- this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {
12944
- skipSemicolon = skipSemicolon || false;
12877
+ this.getFoldWidget = function (session, foldStyle, row) {
12878
+ return (this.$tryMode(session.getState(row - 1), session, foldStyle, row) ||
12879
+ this.$tryMode(session.getState(row), session, foldStyle, row) ||
12880
+ this.defaultMode.getFoldWidget(session, foldStyle, row));
12881
+ };
12882
+ this.getFoldWidgetRange = function (session, foldStyle, row) {
12883
+ var mode = this.$getMode(session.getState(row - 1));
12884
+ if (!mode || !mode.getFoldWidget(session, foldStyle, row))
12885
+ mode = this.$getMode(session.getState(row));
12886
+ if (!mode || !mode.getFoldWidget(session, foldStyle, row))
12887
+ mode = this.defaultMode;
12888
+ return mode.getFoldWidgetRange(session, foldStyle, row);
12889
+ };
12890
+ }).call(FoldMode.prototype);
12891
+
12892
+ });
12893
+
12894
+ ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
12895
+ var oop = require("../../lib/oop");
12896
+ var Range = require("../../range").Range;
12897
+ var BaseFoldMode = require("./fold_mode").FoldMode;
12898
+ var FoldMode = exports.FoldMode = function (voidElements, optionalEndTags) {
12899
+ BaseFoldMode.call(this);
12900
+ this.voidElements = voidElements || {};
12901
+ this.optionalEndTags = oop.mixin({}, this.voidElements);
12902
+ if (optionalEndTags)
12903
+ oop.mixin(this.optionalEndTags, optionalEndTags);
12904
+ };
12905
+ oop.inherits(FoldMode, BaseFoldMode);
12906
+ var Tag = function () {
12907
+ this.tagName = "";
12908
+ this.closing = false;
12909
+ this.selfClosing = false;
12910
+ this.start = { row: 0, column: 0 };
12911
+ this.end = { row: 0, column: 0 };
12912
+ };
12913
+ function is(token, type) {
12914
+ return token.type.lastIndexOf(type + ".xml") > -1;
12915
+ }
12916
+ (function () {
12917
+ this.getFoldWidget = function (session, foldStyle, row) {
12918
+ var tag = this._getFirstTagInLine(session, row);
12919
+ if (!tag)
12920
+ return this.getCommentFoldWidget(session, row);
12921
+ if (tag.closing || (!tag.tagName && tag.selfClosing))
12922
+ return foldStyle === "markbeginend" ? "end" : "";
12923
+ if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))
12924
+ return "";
12925
+ if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))
12926
+ return "";
12927
+ return "start";
12928
+ };
12929
+ this.getCommentFoldWidget = function (session, row) {
12930
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
12931
+ return "start";
12932
+ return "";
12933
+ };
12934
+ this._getFirstTagInLine = function (session, row) {
12935
+ var tokens = session.getTokens(row);
12936
+ var tag = new Tag();
12937
+ for (var i = 0; i < tokens.length; i++) {
12938
+ var token = tokens[i];
12939
+ if (is(token, "tag-open")) {
12940
+ tag.end.column = tag.start.column + token.value.length;
12941
+ tag.closing = is(token, "end-tag-open");
12942
+ token = tokens[++i];
12943
+ if (!token)
12944
+ return null;
12945
+ tag.tagName = token.value;
12946
+ if (token.value === "") { //skip empty tag name token for fragment
12947
+ token = tokens[++i];
12948
+ if (!token)
12949
+ return null;
12950
+ tag.tagName = token.value;
12951
+ }
12952
+ tag.end.column += token.value.length;
12953
+ for (i++; i < tokens.length; i++) {
12954
+ token = tokens[i];
12955
+ tag.end.column += token.value.length;
12956
+ if (is(token, "tag-close")) {
12957
+ tag.selfClosing = token.value == '/>';
12958
+ break;
12959
+ }
12960
+ }
12961
+ return tag;
12962
+ }
12963
+ else if (is(token, "tag-close")) {
12964
+ tag.selfClosing = token.value == '/>';
12965
+ return tag;
12966
+ }
12967
+ tag.start.column += token.value.length;
12968
+ }
12969
+ return null;
12970
+ };
12971
+ this._findEndTagInLine = function (session, row, tagName, startColumn) {
12972
+ var tokens = session.getTokens(row);
12973
+ var column = 0;
12974
+ for (var i = 0; i < tokens.length; i++) {
12975
+ var token = tokens[i];
12976
+ column += token.value.length;
12977
+ if (column < startColumn - 1)
12978
+ continue;
12979
+ if (is(token, "end-tag-open")) {
12980
+ token = tokens[i + 1];
12981
+ if (is(token, "tag-name") && token.value === "") {
12982
+ token = tokens[i + 2];
12983
+ }
12984
+ if (token && token.value == tagName)
12985
+ return true;
12986
+ }
12987
+ }
12988
+ return false;
12989
+ };
12990
+ this.getFoldWidgetRange = function (session, foldStyle, row) {
12991
+ var firstTag = this._getFirstTagInLine(session, row);
12992
+ if (!firstTag) {
12993
+ return this.getCommentFoldWidget(session, row) && session.getCommentFoldRange(row, session.getLine(row).length);
12994
+ }
12995
+ var tags = session.getMatchingTags({ row: row, column: 0 });
12996
+ if (tags) {
12997
+ return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);
12998
+ }
12999
+ };
13000
+ }).call(FoldMode.prototype);
13001
+
13002
+ });
13003
+
13004
+ ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
13005
+ var oop = require("../../lib/oop");
13006
+ var MixedFoldMode = require("./mixed").FoldMode;
13007
+ var XmlFoldMode = require("./xml").FoldMode;
13008
+ var CStyleFoldMode = require("./cstyle").FoldMode;
13009
+ var FoldMode = exports.FoldMode = function (voidElements, optionalTags) {
13010
+ MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {
13011
+ "js-": new CStyleFoldMode(),
13012
+ "css-": new CStyleFoldMode()
13013
+ });
13014
+ };
13015
+ oop.inherits(FoldMode, MixedFoldMode);
13016
+
13017
+ });
13018
+
13019
+ ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"], function(require, exports, module){"use strict";
13020
+ var oop = require("../../lib/oop");
13021
+ var Behaviour = require("../behaviour").Behaviour;
13022
+ var TokenIterator = require("../../token_iterator").TokenIterator;
13023
+ function is(token, type) {
13024
+ return token && token.type.lastIndexOf(type + ".xml") > -1;
13025
+ }
13026
+ var XmlBehaviour = function () {
13027
+ this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
13028
+ if (text == '"' || text == "'") {
13029
+ var quote = text;
13030
+ var selected = session.doc.getTextRange(editor.getSelectionRange());
13031
+ if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
13032
+ return {
13033
+ text: quote + selected + quote,
13034
+ selection: false
13035
+ };
13036
+ }
13037
+ var cursor = editor.getCursorPosition();
13038
+ var line = session.doc.getLine(cursor.row);
13039
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
13040
+ var iterator = new TokenIterator(session, cursor.row, cursor.column);
13041
+ var token = iterator.getCurrentToken();
13042
+ if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) {
13043
+ return {
13044
+ text: "",
13045
+ selection: [1, 1]
13046
+ };
13047
+ }
13048
+ if (!token)
13049
+ token = iterator.stepBackward();
13050
+ if (!token)
13051
+ return;
13052
+ while (is(token, "tag-whitespace") || is(token, "whitespace")) {
13053
+ token = iterator.stepBackward();
13054
+ }
13055
+ var rightSpace = !rightChar || rightChar.match(/\s/);
13056
+ if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) {
13057
+ return {
13058
+ text: quote + quote,
13059
+ selection: [1, 1]
13060
+ };
13061
+ }
13062
+ }
13063
+ });
13064
+ this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
13065
+ var selected = session.doc.getTextRange(range);
13066
+ if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
13067
+ var line = session.doc.getLine(range.start.row);
13068
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
13069
+ if (rightChar == selected) {
13070
+ range.end.column++;
13071
+ return range;
13072
+ }
13073
+ }
13074
+ });
13075
+ this.add("autoclosing", "insertion", function (state, action, editor, session, text) {
13076
+ if (text == '>') {
13077
+ var position = editor.getSelectionRange().start;
13078
+ var iterator = new TokenIterator(session, position.row, position.column);
13079
+ var token = iterator.getCurrentToken() || iterator.stepBackward();
13080
+ if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value")))
13081
+ return;
13082
+ if (is(token, "reference.attribute-value"))
13083
+ return;
13084
+ if (is(token, "attribute-value")) {
13085
+ var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;
13086
+ if (position.column < tokenEndColumn)
13087
+ return;
13088
+ if (position.column == tokenEndColumn) {
13089
+ var nextToken = iterator.stepForward();
13090
+ if (nextToken && is(nextToken, "attribute-value"))
13091
+ return;
13092
+ iterator.stepBackward();
13093
+ }
13094
+ }
13095
+ if (/^\s*>/.test(session.getLine(position.row).slice(position.column)))
13096
+ return;
13097
+ while (!is(token, "tag-name")) {
13098
+ token = iterator.stepBackward();
13099
+ if (token.value == "<") {
13100
+ token = iterator.stepForward();
13101
+ break;
13102
+ }
13103
+ }
13104
+ var tokenRow = iterator.getCurrentTokenRow();
13105
+ var tokenColumn = iterator.getCurrentTokenColumn();
13106
+ if (is(iterator.stepBackward(), "end-tag-open"))
13107
+ return;
13108
+ var element = token.value;
13109
+ if (tokenRow == position.row)
13110
+ element = element.substring(0, position.column - tokenColumn);
13111
+ if (this.voidElements && this.voidElements.hasOwnProperty(element.toLowerCase()))
13112
+ return;
13113
+ return {
13114
+ text: ">" + "</" + element + ">",
13115
+ selection: [1, 1]
13116
+ };
13117
+ }
13118
+ });
13119
+ this.add("autoindent", "insertion", function (state, action, editor, session, text) {
13120
+ if (text == "\n") {
13121
+ var cursor = editor.getCursorPosition();
13122
+ var line = session.getLine(cursor.row);
13123
+ var iterator = new TokenIterator(session, cursor.row, cursor.column);
13124
+ var token = iterator.getCurrentToken();
13125
+ if (is(token, "") && token.type.indexOf("tag-close") !== -1) {
13126
+ if (token.value == "/>")
13127
+ return;
13128
+ while (token && token.type.indexOf("tag-name") === -1) {
13129
+ token = iterator.stepBackward();
13130
+ }
13131
+ if (!token) {
13132
+ return;
13133
+ }
13134
+ var tag = token.value;
13135
+ var row = iterator.getCurrentTokenRow();
13136
+ token = iterator.stepBackward();
13137
+ if (!token || token.type.indexOf("end-tag") !== -1) {
13138
+ return;
13139
+ }
13140
+ if (this.voidElements && !this.voidElements[tag] || !this.voidElements) {
13141
+ var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);
13142
+ var line = session.getLine(row);
13143
+ var nextIndent = this.$getIndent(line);
13144
+ var indent = nextIndent + session.getTabString();
13145
+ if (nextToken && nextToken.value === "</") {
13146
+ return {
13147
+ text: "\n" + indent + "\n" + nextIndent,
13148
+ selection: [1, indent.length, 1, indent.length]
13149
+ };
13150
+ }
13151
+ else {
13152
+ return {
13153
+ text: "\n" + indent
13154
+ };
13155
+ }
13156
+ }
13157
+ }
13158
+ }
13159
+ });
13160
+ };
13161
+ oop.inherits(XmlBehaviour, Behaviour);
13162
+ exports.XmlBehaviour = XmlBehaviour;
13163
+
13164
+ });
13165
+
13166
+ ace.define("ace/mode/behaviour/javascript",["require","exports","module","ace/lib/oop","ace/token_iterator","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml"], function(require, exports, module){"use strict";
13167
+ var oop = require("../../lib/oop");
13168
+ var TokenIterator = require("../../token_iterator").TokenIterator;
13169
+ var CstyleBehaviour = require("../behaviour/cstyle").CstyleBehaviour;
13170
+ var XmlBehaviour = require("../behaviour/xml").XmlBehaviour;
13171
+ var JavaScriptBehaviour = function () {
13172
+ var xmlBehaviours = new XmlBehaviour({ closeCurlyBraces: true }).getBehaviours();
13173
+ this.addBehaviours(xmlBehaviours);
13174
+ this.inherit(CstyleBehaviour);
13175
+ this.add("autoclosing-fragment", "insertion", function (state, action, editor, session, text) {
13176
+ if (text == '>') {
13177
+ var position = editor.getSelectionRange().start;
13178
+ var iterator = new TokenIterator(session, position.row, position.column);
13179
+ var token = iterator.getCurrentToken() || iterator.stepBackward();
13180
+ if (!token)
13181
+ return;
13182
+ if (token.value == '<') {
13183
+ return {
13184
+ text: "></>",
13185
+ selection: [1, 1]
13186
+ };
13187
+ }
13188
+ }
13189
+ });
13190
+ };
13191
+ oop.inherits(JavaScriptBehaviour, CstyleBehaviour);
13192
+ exports.JavaScriptBehaviour = JavaScriptBehaviour;
13193
+
13194
+ });
13195
+
13196
+ ace.define("ace/mode/folding/javascript",["require","exports","module","ace/lib/oop","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
13197
+ var oop = require("../../lib/oop");
13198
+ var XmlFoldMode = require("./xml").FoldMode;
13199
+ var CFoldMode = require("./cstyle").FoldMode;
13200
+ var FoldMode = exports.FoldMode = function (commentRegex) {
13201
+ if (commentRegex) {
13202
+ this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
13203
+ this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
13204
+ }
13205
+ this.xmlFoldMode = new XmlFoldMode();
13206
+ };
13207
+ oop.inherits(FoldMode, CFoldMode);
13208
+ (function () {
13209
+ this.getFoldWidgetRangeBase = this.getFoldWidgetRange;
13210
+ this.getFoldWidgetBase = this.getFoldWidget;
13211
+ this.getFoldWidget = function (session, foldStyle, row) {
13212
+ var fw = this.getFoldWidgetBase(session, foldStyle, row);
13213
+ if (!fw) {
13214
+ return this.xmlFoldMode.getFoldWidget(session, foldStyle, row);
13215
+ }
13216
+ return fw;
13217
+ };
13218
+ this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
13219
+ var range = this.getFoldWidgetRangeBase(session, foldStyle, row, forceMultiline);
13220
+ if (range)
13221
+ return range;
13222
+ return this.xmlFoldMode.getFoldWidgetRange(session, foldStyle, row);
13223
+ };
13224
+ }).call(FoldMode.prototype);
13225
+
13226
+ });
13227
+
13228
+ ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/javascript","ace/mode/folding/javascript"], function(require, exports, module){"use strict";
13229
+ var oop = require("../lib/oop");
13230
+ var TextMode = require("./text").Mode;
13231
+ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
13232
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
13233
+ var WorkerClient = require("../worker/worker_client").WorkerClient;
13234
+ var JavaScriptBehaviour = require("./behaviour/javascript").JavaScriptBehaviour;
13235
+ var JavaScriptFoldMode = require("./folding/javascript").FoldMode;
13236
+ var Mode = function () {
13237
+ this.HighlightRules = JavaScriptHighlightRules;
13238
+ this.$outdent = new MatchingBraceOutdent();
13239
+ this.$behaviour = new JavaScriptBehaviour();
13240
+ this.foldingRules = new JavaScriptFoldMode();
13241
+ };
13242
+ oop.inherits(Mode, TextMode);
13243
+ (function () {
13244
+ this.lineCommentStart = "//";
13245
+ this.blockComment = { start: "/*", end: "*/" };
13246
+ this.$quotes = { '"': '"', "'": "'", "`": "`" };
13247
+ this.$pairQuotesAfter = {
13248
+ "`": /\w/
13249
+ };
13250
+ this.getNextLineIndent = function (state, line, tab) {
13251
+ var indent = this.$getIndent(line);
13252
+ var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
13253
+ var tokens = tokenizedLine.tokens;
13254
+ var endState = tokenizedLine.state;
13255
+ if (tokens.length && tokens[tokens.length - 1].type == "comment") {
13256
+ return indent;
13257
+ }
13258
+ if (state == "start" || state == "no_regex") {
13259
+ var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);
13260
+ if (match) {
13261
+ indent += tab;
13262
+ }
13263
+ }
13264
+ else if (state == "doc-start") {
13265
+ if (endState == "start" || endState == "no_regex") {
13266
+ return "";
13267
+ }
13268
+ }
13269
+ return indent;
13270
+ };
13271
+ this.checkOutdent = function (state, line, input) {
13272
+ return this.$outdent.checkOutdent(line, input);
13273
+ };
13274
+ this.autoOutdent = function (state, doc, row) {
13275
+ this.$outdent.autoOutdent(doc, row);
13276
+ };
13277
+ this.createWorker = function (session) {
13278
+ var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
13279
+ worker.attachToDocument(session.getDocument());
13280
+ worker.on("annotate", function (results) {
13281
+ session.setAnnotations(results.data);
13282
+ });
13283
+ worker.on("terminate", function () {
13284
+ session.clearAnnotations();
13285
+ });
13286
+ return worker;
13287
+ };
13288
+ this.$id = "ace/mode/javascript";
13289
+ this.snippetFileId = "ace/snippets/javascript";
13290
+ }).call(Mode.prototype);
13291
+ exports.Mode = Mode;
13292
+
13293
+ });
13294
+
13295
+ ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module){"use strict";
13296
+ var propertyMap = {
13297
+ "background": { "#$0": 1 },
13298
+ "background-color": { "#$0": 1, "transparent": 1, "fixed": 1 },
13299
+ "background-image": { "url('/$0')": 1 },
13300
+ "background-repeat": { "repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1 },
13301
+ "background-position": { "bottom": 2, "center": 2, "left": 2, "right": 2, "top": 2, "inherit": 2 },
13302
+ "background-attachment": { "scroll": 1, "fixed": 1 },
13303
+ "background-size": { "cover": 1, "contain": 1 },
13304
+ "background-clip": { "border-box": 1, "padding-box": 1, "content-box": 1 },
13305
+ "background-origin": { "border-box": 1, "padding-box": 1, "content-box": 1 },
13306
+ "border": { "solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1 },
13307
+ "border-color": { "#$0": 1 },
13308
+ "border-style": { "solid": 2, "dashed": 2, "dotted": 2, "double": 2, "groove": 2, "hidden": 2, "inherit": 2, "inset": 2, "none": 2, "outset": 2, "ridged": 2 },
13309
+ "border-collapse": { "collapse": 1, "separate": 1 },
13310
+ "bottom": { "px": 1, "em": 1, "%": 1 },
13311
+ "clear": { "left": 1, "right": 1, "both": 1, "none": 1 },
13312
+ "color": { "#$0": 1, "rgb(#$00,0,0)": 1 },
13313
+ "cursor": { "default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1 },
13314
+ "display": { "none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1 },
13315
+ "empty-cells": { "show": 1, "hide": 1 },
13316
+ "float": { "left": 1, "right": 1, "none": 1 },
13317
+ "font-family": { "Arial": 2, "Comic Sans MS": 2, "Consolas": 2, "Courier New": 2, "Courier": 2, "Georgia": 2, "Monospace": 2, "Sans-Serif": 2, "Segoe UI": 2, "Tahoma": 2, "Times New Roman": 2, "Trebuchet MS": 2, "Verdana": 1 },
13318
+ "font-size": { "px": 1, "em": 1, "%": 1 },
13319
+ "font-weight": { "bold": 1, "normal": 1 },
13320
+ "font-style": { "italic": 1, "normal": 1 },
13321
+ "font-variant": { "normal": 1, "small-caps": 1 },
13322
+ "height": { "px": 1, "em": 1, "%": 1 },
13323
+ "left": { "px": 1, "em": 1, "%": 1 },
13324
+ "letter-spacing": { "normal": 1 },
13325
+ "line-height": { "normal": 1 },
13326
+ "list-style-type": { "none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1 },
13327
+ "margin": { "px": 1, "em": 1, "%": 1 },
13328
+ "margin-right": { "px": 1, "em": 1, "%": 1 },
13329
+ "margin-left": { "px": 1, "em": 1, "%": 1 },
13330
+ "margin-top": { "px": 1, "em": 1, "%": 1 },
13331
+ "margin-bottom": { "px": 1, "em": 1, "%": 1 },
13332
+ "max-height": { "px": 1, "em": 1, "%": 1 },
13333
+ "max-width": { "px": 1, "em": 1, "%": 1 },
13334
+ "min-height": { "px": 1, "em": 1, "%": 1 },
13335
+ "min-width": { "px": 1, "em": 1, "%": 1 },
13336
+ "overflow": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
13337
+ "overflow-x": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
13338
+ "overflow-y": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
13339
+ "padding": { "px": 1, "em": 1, "%": 1 },
13340
+ "padding-top": { "px": 1, "em": 1, "%": 1 },
13341
+ "padding-right": { "px": 1, "em": 1, "%": 1 },
13342
+ "padding-bottom": { "px": 1, "em": 1, "%": 1 },
13343
+ "padding-left": { "px": 1, "em": 1, "%": 1 },
13344
+ "page-break-after": { "auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1 },
13345
+ "page-break-before": { "auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1 },
13346
+ "position": { "absolute": 1, "relative": 1, "fixed": 1, "static": 1 },
13347
+ "right": { "px": 1, "em": 1, "%": 1 },
13348
+ "table-layout": { "fixed": 1, "auto": 1 },
13349
+ "text-decoration": { "none": 1, "underline": 1, "line-through": 1, "blink": 1 },
13350
+ "text-align": { "left": 1, "right": 1, "center": 1, "justify": 1 },
13351
+ "text-transform": { "capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1 },
13352
+ "top": { "px": 1, "em": 1, "%": 1 },
13353
+ "vertical-align": { "top": 1, "bottom": 1 },
13354
+ "visibility": { "hidden": 1, "visible": 1 },
13355
+ "white-space": { "nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1 },
13356
+ "width": { "px": 1, "em": 1, "%": 1 },
13357
+ "word-spacing": { "normal": 1 },
13358
+ "filter": { "alpha(opacity=$0100)": 1 },
13359
+ "text-shadow": { "$02px 2px 2px #777": 1 },
13360
+ "text-overflow": { "ellipsis-word": 1, "clip": 1, "ellipsis": 1 },
13361
+ "-moz-border-radius": 1,
13362
+ "-moz-border-radius-topright": 1,
13363
+ "-moz-border-radius-bottomright": 1,
13364
+ "-moz-border-radius-topleft": 1,
13365
+ "-moz-border-radius-bottomleft": 1,
13366
+ "-webkit-border-radius": 1,
13367
+ "-webkit-border-top-right-radius": 1,
13368
+ "-webkit-border-top-left-radius": 1,
13369
+ "-webkit-border-bottom-right-radius": 1,
13370
+ "-webkit-border-bottom-left-radius": 1,
13371
+ "-moz-box-shadow": 1,
13372
+ "-webkit-box-shadow": 1,
13373
+ "transform": { "rotate($00deg)": 1, "skew($00deg)": 1 },
13374
+ "-moz-transform": { "rotate($00deg)": 1, "skew($00deg)": 1 },
13375
+ "-webkit-transform": { "rotate($00deg)": 1, "skew($00deg)": 1 }
13376
+ };
13377
+ var CssCompletions = function () {
13378
+ };
13379
+ (function () {
13380
+ this.completionsDefined = false;
13381
+ this.defineCompletions = function () {
13382
+ if (document) {
13383
+ var style = document.createElement('c').style;
13384
+ for (var i in style) {
13385
+ if (typeof style[i] !== 'string')
13386
+ continue;
13387
+ var name = i.replace(/[A-Z]/g, function (x) {
13388
+ return '-' + x.toLowerCase();
13389
+ });
13390
+ if (!propertyMap.hasOwnProperty(name))
13391
+ propertyMap[name] = 1;
13392
+ }
13393
+ }
13394
+ this.completionsDefined = true;
13395
+ };
13396
+ this.getCompletions = function (state, session, pos, prefix) {
13397
+ if (!this.completionsDefined) {
13398
+ this.defineCompletions();
13399
+ }
13400
+ if (state === 'ruleset' || session.$mode.$id == "ace/mode/scss") {
13401
+ var line = session.getLine(pos.row).substr(0, pos.column);
13402
+ var inParens = /\([^)]*$/.test(line);
13403
+ if (inParens) {
13404
+ line = line.substr(line.lastIndexOf('(') + 1);
13405
+ }
13406
+ if (/:[^;]+$/.test(line)) {
13407
+ /([\w\-]+):[^:]*$/.test(line);
13408
+ return this.getPropertyValueCompletions(state, session, pos, prefix);
13409
+ }
13410
+ else {
13411
+ return this.getPropertyCompletions(state, session, pos, prefix, inParens);
13412
+ }
13413
+ }
13414
+ return [];
13415
+ };
13416
+ this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {
13417
+ skipSemicolon = skipSemicolon || false;
12945
13418
  var properties = Object.keys(propertyMap);
12946
13419
  return properties.map(function (property) {
12947
13420
  return {
@@ -13033,390 +13506,87 @@ var CssBehaviour = function () {
13033
13506
  var line = session.doc.getLine(cursor.row);
13034
13507
  var rightChar = line.substring(cursor.column, cursor.column + 1);
13035
13508
  if (rightChar === ';') {
13036
- return {
13037
- text: '',
13038
- selection: [1, 1]
13039
- };
13040
- }
13041
- }
13042
- });
13043
- this.add("!important", "insertion", function (state, action, editor, session, text) {
13044
- if (text === '!' && editor.selection.isEmpty()) {
13045
- var cursor = editor.getCursorPosition();
13046
- var line = session.doc.getLine(cursor.row);
13047
- if (/^\s*(;|}|$)/.test(line.substring(cursor.column))) {
13048
- return {
13049
- text: '!important',
13050
- selection: [10, 10]
13051
- };
13052
- }
13053
- }
13054
- });
13055
- };
13056
- oop.inherits(CssBehaviour, CstyleBehaviour);
13057
- exports.CssBehaviour = CssBehaviour;
13058
-
13059
- });
13060
-
13061
- ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
13062
- var oop = require("../lib/oop");
13063
- var TextMode = require("./text").Mode;
13064
- var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
13065
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
13066
- var WorkerClient = require("../worker/worker_client").WorkerClient;
13067
- var CssCompletions = require("./css_completions").CssCompletions;
13068
- var CssBehaviour = require("./behaviour/css").CssBehaviour;
13069
- var CStyleFoldMode = require("./folding/cstyle").FoldMode;
13070
- var Mode = function () {
13071
- this.HighlightRules = CssHighlightRules;
13072
- this.$outdent = new MatchingBraceOutdent();
13073
- this.$behaviour = new CssBehaviour();
13074
- this.$completer = new CssCompletions();
13075
- this.foldingRules = new CStyleFoldMode();
13076
- };
13077
- oop.inherits(Mode, TextMode);
13078
- (function () {
13079
- this.foldingRules = "cStyle";
13080
- this.blockComment = { start: "/*", end: "*/" };
13081
- this.getNextLineIndent = function (state, line, tab) {
13082
- var indent = this.$getIndent(line);
13083
- var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
13084
- if (tokens.length && tokens[tokens.length - 1].type == "comment") {
13085
- return indent;
13086
- }
13087
- var match = line.match(/^.*\{\s*$/);
13088
- if (match) {
13089
- indent += tab;
13090
- }
13091
- return indent;
13092
- };
13093
- this.checkOutdent = function (state, line, input) {
13094
- return this.$outdent.checkOutdent(line, input);
13095
- };
13096
- this.autoOutdent = function (state, doc, row) {
13097
- this.$outdent.autoOutdent(doc, row);
13098
- };
13099
- this.getCompletions = function (state, session, pos, prefix) {
13100
- return this.$completer.getCompletions(state, session, pos, prefix);
13101
- };
13102
- this.createWorker = function (session) {
13103
- var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
13104
- worker.attachToDocument(session.getDocument());
13105
- worker.on("annotate", function (e) {
13106
- session.setAnnotations(e.data);
13107
- });
13108
- worker.on("terminate", function () {
13109
- session.clearAnnotations();
13110
- });
13111
- return worker;
13112
- };
13113
- this.$id = "ace/mode/css";
13114
- this.snippetFileId = "ace/snippets/css";
13115
- }).call(Mode.prototype);
13116
- exports.Mode = Mode;
13117
-
13118
- });
13119
-
13120
- ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module){"use strict";
13121
- var oop = require("../../lib/oop");
13122
- var Behaviour = require("../behaviour").Behaviour;
13123
- var TokenIterator = require("../../token_iterator").TokenIterator;
13124
- var lang = require("../../lib/lang");
13125
- function is(token, type) {
13126
- return token && token.type.lastIndexOf(type + ".xml") > -1;
13127
- }
13128
- var XmlBehaviour = function () {
13129
- this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
13130
- if (text == '"' || text == "'") {
13131
- var quote = text;
13132
- var selected = session.doc.getTextRange(editor.getSelectionRange());
13133
- if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
13134
- return {
13135
- text: quote + selected + quote,
13136
- selection: false
13137
- };
13138
- }
13139
- var cursor = editor.getCursorPosition();
13140
- var line = session.doc.getLine(cursor.row);
13141
- var rightChar = line.substring(cursor.column, cursor.column + 1);
13142
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
13143
- var token = iterator.getCurrentToken();
13144
- if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) {
13145
- return {
13146
- text: "",
13147
- selection: [1, 1]
13148
- };
13149
- }
13150
- if (!token)
13151
- token = iterator.stepBackward();
13152
- if (!token)
13153
- return;
13154
- while (is(token, "tag-whitespace") || is(token, "whitespace")) {
13155
- token = iterator.stepBackward();
13156
- }
13157
- var rightSpace = !rightChar || rightChar.match(/\s/);
13158
- if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) {
13159
- return {
13160
- text: quote + quote,
13161
- selection: [1, 1]
13162
- };
13163
- }
13164
- }
13165
- });
13166
- this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
13167
- var selected = session.doc.getTextRange(range);
13168
- if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
13169
- var line = session.doc.getLine(range.start.row);
13170
- var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
13171
- if (rightChar == selected) {
13172
- range.end.column++;
13173
- return range;
13174
- }
13175
- }
13176
- });
13177
- this.add("autoclosing", "insertion", function (state, action, editor, session, text) {
13178
- if (text == '>') {
13179
- var position = editor.getSelectionRange().start;
13180
- var iterator = new TokenIterator(session, position.row, position.column);
13181
- var token = iterator.getCurrentToken() || iterator.stepBackward();
13182
- if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value")))
13183
- return;
13184
- if (is(token, "reference.attribute-value"))
13185
- return;
13186
- if (is(token, "attribute-value")) {
13187
- var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;
13188
- if (position.column < tokenEndColumn)
13189
- return;
13190
- if (position.column == tokenEndColumn) {
13191
- var nextToken = iterator.stepForward();
13192
- if (nextToken && is(nextToken, "attribute-value"))
13193
- return;
13194
- iterator.stepBackward();
13195
- }
13196
- }
13197
- if (/^\s*>/.test(session.getLine(position.row).slice(position.column)))
13198
- return;
13199
- while (!is(token, "tag-name")) {
13200
- token = iterator.stepBackward();
13201
- if (token.value == "<") {
13202
- token = iterator.stepForward();
13203
- break;
13204
- }
13509
+ return {
13510
+ text: '',
13511
+ selection: [1, 1]
13512
+ };
13205
13513
  }
13206
- var tokenRow = iterator.getCurrentTokenRow();
13207
- var tokenColumn = iterator.getCurrentTokenColumn();
13208
- if (is(iterator.stepBackward(), "end-tag-open"))
13209
- return;
13210
- var element = token.value;
13211
- if (tokenRow == position.row)
13212
- element = element.substring(0, position.column - tokenColumn);
13213
- if (this.voidElements.hasOwnProperty(element.toLowerCase()))
13214
- return;
13215
- return {
13216
- text: ">" + "</" + element + ">",
13217
- selection: [1, 1]
13218
- };
13219
13514
  }
13220
13515
  });
13221
- this.add("autoindent", "insertion", function (state, action, editor, session, text) {
13222
- if (text == "\n") {
13516
+ this.add("!important", "insertion", function (state, action, editor, session, text) {
13517
+ if (text === '!' && editor.selection.isEmpty()) {
13223
13518
  var cursor = editor.getCursorPosition();
13224
- var line = session.getLine(cursor.row);
13225
- var iterator = new TokenIterator(session, cursor.row, cursor.column);
13226
- var token = iterator.getCurrentToken();
13227
- if (token && token.type.indexOf("tag-close") !== -1) {
13228
- if (token.value == "/>")
13229
- return;
13230
- while (token && token.type.indexOf("tag-name") === -1) {
13231
- token = iterator.stepBackward();
13232
- }
13233
- if (!token) {
13234
- return;
13235
- }
13236
- var tag = token.value;
13237
- var row = iterator.getCurrentTokenRow();
13238
- token = iterator.stepBackward();
13239
- if (!token || token.type.indexOf("end-tag") !== -1) {
13240
- return;
13241
- }
13242
- if (this.voidElements && !this.voidElements[tag]) {
13243
- var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);
13244
- var line = session.getLine(row);
13245
- var nextIndent = this.$getIndent(line);
13246
- var indent = nextIndent + session.getTabString();
13247
- if (nextToken && nextToken.value === "</") {
13248
- return {
13249
- text: "\n" + indent + "\n" + nextIndent,
13250
- selection: [1, indent.length, 1, indent.length]
13251
- };
13252
- }
13253
- else {
13254
- return {
13255
- text: "\n" + indent
13256
- };
13257
- }
13258
- }
13519
+ var line = session.doc.getLine(cursor.row);
13520
+ if (/^\s*(;|}|$)/.test(line.substring(cursor.column))) {
13521
+ return {
13522
+ text: '!important',
13523
+ selection: [10, 10]
13524
+ };
13259
13525
  }
13260
13526
  }
13261
13527
  });
13262
13528
  };
13263
- oop.inherits(XmlBehaviour, Behaviour);
13264
- exports.XmlBehaviour = XmlBehaviour;
13529
+ oop.inherits(CssBehaviour, CstyleBehaviour);
13530
+ exports.CssBehaviour = CssBehaviour;
13265
13531
 
13266
13532
  });
13267
13533
 
13268
- ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
13269
- var oop = require("../../lib/oop");
13270
- var BaseFoldMode = require("./fold_mode").FoldMode;
13271
- var FoldMode = exports.FoldMode = function (defaultMode, subModes) {
13272
- this.defaultMode = defaultMode;
13273
- this.subModes = subModes;
13534
+ ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
13535
+ var oop = require("../lib/oop");
13536
+ var TextMode = require("./text").Mode;
13537
+ var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
13538
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
13539
+ var WorkerClient = require("../worker/worker_client").WorkerClient;
13540
+ var CssCompletions = require("./css_completions").CssCompletions;
13541
+ var CssBehaviour = require("./behaviour/css").CssBehaviour;
13542
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
13543
+ var Mode = function () {
13544
+ this.HighlightRules = CssHighlightRules;
13545
+ this.$outdent = new MatchingBraceOutdent();
13546
+ this.$behaviour = new CssBehaviour();
13547
+ this.$completer = new CssCompletions();
13548
+ this.foldingRules = new CStyleFoldMode();
13274
13549
  };
13275
- oop.inherits(FoldMode, BaseFoldMode);
13550
+ oop.inherits(Mode, TextMode);
13276
13551
  (function () {
13277
- this.$getMode = function (state) {
13278
- if (typeof state != "string")
13279
- state = state[0];
13280
- for (var key in this.subModes) {
13281
- if (state.indexOf(key) === 0)
13282
- return this.subModes[key];
13552
+ this.foldingRules = "cStyle";
13553
+ this.blockComment = { start: "/*", end: "*/" };
13554
+ this.getNextLineIndent = function (state, line, tab) {
13555
+ var indent = this.$getIndent(line);
13556
+ var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
13557
+ if (tokens.length && tokens[tokens.length - 1].type == "comment") {
13558
+ return indent;
13283
13559
  }
13284
- return null;
13285
- };
13286
- this.$tryMode = function (state, session, foldStyle, row) {
13287
- var mode = this.$getMode(state);
13288
- return (mode ? mode.getFoldWidget(session, foldStyle, row) : "");
13289
- };
13290
- this.getFoldWidget = function (session, foldStyle, row) {
13291
- return (this.$tryMode(session.getState(row - 1), session, foldStyle, row) ||
13292
- this.$tryMode(session.getState(row), session, foldStyle, row) ||
13293
- this.defaultMode.getFoldWidget(session, foldStyle, row));
13294
- };
13295
- this.getFoldWidgetRange = function (session, foldStyle, row) {
13296
- var mode = this.$getMode(session.getState(row - 1));
13297
- if (!mode || !mode.getFoldWidget(session, foldStyle, row))
13298
- mode = this.$getMode(session.getState(row));
13299
- if (!mode || !mode.getFoldWidget(session, foldStyle, row))
13300
- mode = this.defaultMode;
13301
- return mode.getFoldWidgetRange(session, foldStyle, row);
13302
- };
13303
- }).call(FoldMode.prototype);
13304
-
13305
- });
13306
-
13307
- ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
13308
- var oop = require("../../lib/oop");
13309
- var Range = require("../../range").Range;
13310
- var BaseFoldMode = require("./fold_mode").FoldMode;
13311
- var FoldMode = exports.FoldMode = function (voidElements, optionalEndTags) {
13312
- BaseFoldMode.call(this);
13313
- this.voidElements = voidElements || {};
13314
- this.optionalEndTags = oop.mixin({}, this.voidElements);
13315
- if (optionalEndTags)
13316
- oop.mixin(this.optionalEndTags, optionalEndTags);
13317
- };
13318
- oop.inherits(FoldMode, BaseFoldMode);
13319
- var Tag = function () {
13320
- this.tagName = "";
13321
- this.closing = false;
13322
- this.selfClosing = false;
13323
- this.start = { row: 0, column: 0 };
13324
- this.end = { row: 0, column: 0 };
13325
- };
13326
- function is(token, type) {
13327
- return token.type.lastIndexOf(type + ".xml") > -1;
13328
- }
13329
- (function () {
13330
- this.getFoldWidget = function (session, foldStyle, row) {
13331
- var tag = this._getFirstTagInLine(session, row);
13332
- if (!tag)
13333
- return this.getCommentFoldWidget(session, row);
13334
- if (tag.closing || (!tag.tagName && tag.selfClosing))
13335
- return foldStyle === "markbeginend" ? "end" : "";
13336
- if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))
13337
- return "";
13338
- if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))
13339
- return "";
13340
- return "start";
13560
+ var match = line.match(/^.*\{\s*$/);
13561
+ if (match) {
13562
+ indent += tab;
13563
+ }
13564
+ return indent;
13341
13565
  };
13342
- this.getCommentFoldWidget = function (session, row) {
13343
- if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
13344
- return "start";
13345
- return "";
13566
+ this.checkOutdent = function (state, line, input) {
13567
+ return this.$outdent.checkOutdent(line, input);
13346
13568
  };
13347
- this._getFirstTagInLine = function (session, row) {
13348
- var tokens = session.getTokens(row);
13349
- var tag = new Tag();
13350
- for (var i = 0; i < tokens.length; i++) {
13351
- var token = tokens[i];
13352
- if (is(token, "tag-open")) {
13353
- tag.end.column = tag.start.column + token.value.length;
13354
- tag.closing = is(token, "end-tag-open");
13355
- token = tokens[++i];
13356
- if (!token)
13357
- return null;
13358
- tag.tagName = token.value;
13359
- tag.end.column += token.value.length;
13360
- for (i++; i < tokens.length; i++) {
13361
- token = tokens[i];
13362
- tag.end.column += token.value.length;
13363
- if (is(token, "tag-close")) {
13364
- tag.selfClosing = token.value == '/>';
13365
- break;
13366
- }
13367
- }
13368
- return tag;
13369
- }
13370
- else if (is(token, "tag-close")) {
13371
- tag.selfClosing = token.value == '/>';
13372
- return tag;
13373
- }
13374
- tag.start.column += token.value.length;
13375
- }
13376
- return null;
13569
+ this.autoOutdent = function (state, doc, row) {
13570
+ this.$outdent.autoOutdent(doc, row);
13377
13571
  };
13378
- this._findEndTagInLine = function (session, row, tagName, startColumn) {
13379
- var tokens = session.getTokens(row);
13380
- var column = 0;
13381
- for (var i = 0; i < tokens.length; i++) {
13382
- var token = tokens[i];
13383
- column += token.value.length;
13384
- if (column < startColumn)
13385
- continue;
13386
- if (is(token, "end-tag-open")) {
13387
- token = tokens[i + 1];
13388
- if (token && token.value == tagName)
13389
- return true;
13390
- }
13391
- }
13392
- return false;
13572
+ this.getCompletions = function (state, session, pos, prefix) {
13573
+ return this.$completer.getCompletions(state, session, pos, prefix);
13393
13574
  };
13394
- this.getFoldWidgetRange = function (session, foldStyle, row) {
13395
- var tags = session.getMatchingTags({ row: row, column: 0 });
13396
- if (tags) {
13397
- return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);
13398
- }
13399
- else {
13400
- return this.getCommentFoldWidget(session, row)
13401
- && session.getCommentFoldRange(row, session.getLine(row).length);
13402
- }
13575
+ this.createWorker = function (session) {
13576
+ var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
13577
+ worker.attachToDocument(session.getDocument());
13578
+ worker.on("annotate", function (e) {
13579
+ session.setAnnotations(e.data);
13580
+ });
13581
+ worker.on("terminate", function () {
13582
+ session.clearAnnotations();
13583
+ });
13584
+ return worker;
13403
13585
  };
13404
- }).call(FoldMode.prototype);
13405
-
13406
- });
13407
-
13408
- ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
13409
- var oop = require("../../lib/oop");
13410
- var MixedFoldMode = require("./mixed").FoldMode;
13411
- var XmlFoldMode = require("./xml").FoldMode;
13412
- var CStyleFoldMode = require("./cstyle").FoldMode;
13413
- var FoldMode = exports.FoldMode = function (voidElements, optionalTags) {
13414
- MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {
13415
- "js-": new CStyleFoldMode(),
13416
- "css-": new CStyleFoldMode()
13417
- });
13418
- };
13419
- oop.inherits(FoldMode, MixedFoldMode);
13586
+ this.$id = "ace/mode/css";
13587
+ this.snippetFileId = "ace/snippets/css";
13588
+ }).call(Mode.prototype);
13589
+ exports.Mode = Mode;
13420
13590
 
13421
13591
  });
13422
13592
 
@@ -13779,7 +13949,7 @@ exports.Mode = Mode;
13779
13949
 
13780
13950
  });
13781
13951
 
13782
- ace.define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/php_highlight_rules","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/php_completions","ace/mode/folding/cstyle","ace/unicode","ace/mode/html","ace/mode/javascript","ace/mode/css"], function(require, exports, module){"use strict";
13952
+ ace.define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/php_highlight_rules","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/php_completions","ace/mode/folding/php","ace/unicode","ace/mode/folding/mixed","ace/mode/folding/html","ace/mode/folding/cstyle","ace/mode/html","ace/mode/javascript","ace/mode/css"], function(require, exports, module){"use strict";
13783
13953
  var oop = require("../lib/oop");
13784
13954
  var TextMode = require("./text").Mode;
13785
13955
  var PhpHighlightRules = require("./php_highlight_rules").PhpHighlightRules;
@@ -13787,8 +13957,11 @@ var PhpLangHighlightRules = require("./php_highlight_rules").PhpLangHighlightRul
13787
13957
  var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
13788
13958
  var WorkerClient = require("../worker/worker_client").WorkerClient;
13789
13959
  var PhpCompletions = require("./php_completions").PhpCompletions;
13790
- var CStyleFoldMode = require("./folding/cstyle").FoldMode;
13960
+ var PhpFoldMode = require("./folding/php").FoldMode;
13791
13961
  var unicode = require("../unicode");
13962
+ var MixedFoldMode = require("./folding/mixed").FoldMode;
13963
+ var HtmlFoldMode = require("./folding/html").FoldMode;
13964
+ var CstyleFoldMode = require("./folding/cstyle").FoldMode;
13792
13965
  var HtmlMode = require("./html").Mode;
13793
13966
  var JavaScriptMode = require("./javascript").Mode;
13794
13967
  var CssMode = require("./css").Mode;
@@ -13797,7 +13970,11 @@ var PhpMode = function (opts) {
13797
13970
  this.$outdent = new MatchingBraceOutdent();
13798
13971
  this.$behaviour = this.$defaultBehaviour;
13799
13972
  this.$completer = new PhpCompletions();
13800
- this.foldingRules = new CStyleFoldMode();
13973
+ this.foldingRules = new MixedFoldMode(new HtmlFoldMode(), {
13974
+ "js-": new CstyleFoldMode(),
13975
+ "css-": new CstyleFoldMode(),
13976
+ "php-": new PhpFoldMode()
13977
+ });
13801
13978
  };
13802
13979
  oop.inherits(PhpMode, TextMode);
13803
13980
  (function () {
@@ -13858,7 +14035,11 @@ var Mode = function (opts) {
13858
14035
  "css-": CssMode,
13859
14036
  "php-": PhpMode
13860
14037
  });
13861
- this.foldingRules.subModes["php-"] = new CStyleFoldMode();
14038
+ this.foldingRules = new MixedFoldMode(new HtmlFoldMode(), {
14039
+ "js-": new CstyleFoldMode(),
14040
+ "css-": new CstyleFoldMode(),
14041
+ "php-": new PhpFoldMode()
14042
+ });
13862
14043
  };
13863
14044
  oop.inherits(Mode, HtmlMode);
13864
14045
  (function () {