udxcms 1.0.9 → 1.0.11

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 (428) hide show
  1. package/dist/api/common.d.ts +28 -28
  2. package/dist/api/h5/axios.d.ts +3 -3
  3. package/dist/api/h5/axios.js +12 -9
  4. package/dist/api/h5/common.d.ts +10 -10
  5. package/dist/api/index.d.ts +1 -1
  6. package/dist/api/index.js +8 -6
  7. package/dist/components/basicComponents/AdsBanner.vue +3 -3
  8. package/dist/components/basicComponents/AreaSelect.vue +9 -1
  9. package/dist/components/basicComponents/BaseMenu.vue +1 -0
  10. package/dist/components/businessComponents/Currency.vue +6 -4
  11. package/dist/components/businessComponents/CustomAnnounceModal.vue +2 -2
  12. package/dist/components/businessComponents/Footer.vue +1 -1
  13. package/dist/components/businessComponents/FooterPointx.vue +1 -1
  14. package/dist/components/businessComponents/Language.vue +8 -4
  15. package/dist/components/businessComponents/SiteLoading.vue +3 -3
  16. package/dist/components/cmsComponents/academy/CmsAcademyJoinComunity.vue +1 -1
  17. package/dist/components/cmsComponents/academy/CmsAcademySectionOne.vue +1 -1
  18. package/dist/components/cmsComponents/api/code.js +2 -4
  19. package/dist/components/cmsComponents/api/test.js +2 -4
  20. package/dist/components/cmsComponents/sdk/Logo.vue +1 -1
  21. package/dist/components/cmsComponents/sdk/lib/highlight/lib/core.js +2051 -1836
  22. package/dist/components/cmsComponents/sdk/lib/highlight/lib/index.js +3 -1
  23. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/1c.js +509 -424
  24. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/abnf.js +77 -65
  25. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/accesslog.js +89 -84
  26. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/actionscript.js +86 -80
  27. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ada.js +166 -149
  28. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/angelscript.js +109 -90
  29. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/apache.js +72 -69
  30. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/applescript.js +150 -125
  31. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/arcade.js +150 -144
  32. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/arduino.js +518 -475
  33. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/armasm.js +120 -112
  34. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/asciidoc.js +268 -244
  35. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/aspectj.js +154 -144
  36. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/autohotkey.js +73 -70
  37. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/autoit.js +160 -146
  38. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/avrasm.js +70 -63
  39. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/awk.js +63 -61
  40. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/axapta.js +166 -160
  41. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/bash.js +142 -133
  42. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/basic.js +55 -52
  43. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/bnf.js +27 -25
  44. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/brainfuck.js +36 -30
  45. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/c-like.js +444 -407
  46. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/c.js +267 -247
  47. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/cal.js +91 -77
  48. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/capnproto.js +53 -48
  49. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ceylon.js +73 -67
  50. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/clean.js +30 -25
  51. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/clojure-repl.js +15 -13
  52. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/clojure.js +145 -134
  53. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/cmake.js +54 -52
  54. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/coffeescript.js +322 -304
  55. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/coq.js +69 -65
  56. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/cos.js +127 -119
  57. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/cpp.js +415 -383
  58. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/crmsh.js +91 -88
  59. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/crystal.js +299 -293
  60. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/csharp.js +416 -407
  61. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/csp.js +25 -23
  62. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/css.js +559 -547
  63. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/d.js +244 -215
  64. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dart.js +183 -168
  65. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/delphi.js +115 -112
  66. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/diff.js +73 -71
  67. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/django.js +64 -59
  68. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dns.js +36 -33
  69. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dockerfile.js +22 -20
  70. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dos.js +58 -51
  71. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dsconfig.js +57 -54
  72. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dts.js +136 -125
  73. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/dust.js +33 -31
  74. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ebnf.js +43 -37
  75. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/elixir.js +223 -218
  76. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/elm.js +115 -98
  77. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/erb.js +16 -14
  78. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/erlang-repl.js +60 -52
  79. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/erlang.js +180 -171
  80. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/excel.js +54 -51
  81. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/fix.js +29 -27
  82. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/flix.js +45 -39
  83. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/fortran.js +132 -123
  84. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/fsharp.js +71 -67
  85. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/gams.js +175 -164
  86. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/gauss.js +294 -271
  87. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/gcode.js +77 -74
  88. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/gherkin.js +38 -36
  89. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/glsl.js +118 -115
  90. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/gml.js +875 -871
  91. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/go.js +61 -56
  92. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/golo.js +24 -20
  93. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/gradle.js +35 -31
  94. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/groovy.js +140 -126
  95. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/haml.js +102 -96
  96. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/handlebars.js +273 -232
  97. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/haskell.js +158 -143
  98. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/haxe.js +144 -138
  99. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/hsp.js +52 -45
  100. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/htmlbars.js +292 -245
  101. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/http.js +92 -87
  102. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/hy.js +99 -89
  103. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/inform7.js +59 -57
  104. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ini.js +128 -115
  105. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/irpf90.js +111 -105
  106. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/isbl.js +3198 -2973
  107. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/java.js +160 -146
  108. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/javascript.js +543 -513
  109. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/jboss-cli.js +53 -51
  110. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/json.js +53 -51
  111. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/julia-repl.js +24 -22
  112. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/julia.js +406 -387
  113. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/kotlin.js +258 -236
  114. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/lasso.js +168 -159
  115. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/latex.js +234 -216
  116. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ldif.js +33 -32
  117. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/leaf.js +39 -37
  118. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/less.js +633 -587
  119. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/lisp.js +100 -94
  120. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/livecodeserver.js +174 -169
  121. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/livescript.js +337 -319
  122. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/llvm.js +124 -118
  123. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/lsl.js +9 -1
  124. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/lua.js +70 -64
  125. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/makefile.js +82 -79
  126. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/markdown.js +228 -218
  127. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/mathematica.js +6752 -6731
  128. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/matlab.js +89 -84
  129. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/maxima.js +408 -402
  130. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/mel.js +226 -223
  131. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/mercury.js +109 -99
  132. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/mipsasm.js +98 -95
  133. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/mizar.js +19 -16
  134. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/mojolicious.js +25 -24
  135. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/monkey.js +78 -69
  136. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/moonscript.js +129 -122
  137. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/n1ql.js +65 -59
  138. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/nginx.js +123 -119
  139. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/nim.js +68 -63
  140. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/nix.js +56 -51
  141. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/node-repl.js +26 -24
  142. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/nsis.js +110 -93
  143. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/objectivec.js +109 -103
  144. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ocaml.js +71 -62
  145. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/openscad.js +71 -68
  146. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/oxygene.js +87 -76
  147. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/parser3.js +47 -37
  148. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/perl.js +468 -441
  149. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/pf.js +49 -43
  150. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/pgsql.js +594 -574
  151. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/php-template.js +42 -40
  152. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/php.js +185 -175
  153. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/plaintext.js +10 -8
  154. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/pony.js +79 -66
  155. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/powershell.js +317 -273
  156. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/processing.js +48 -46
  157. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/profile.js +35 -33
  158. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/prolog.js +93 -73
  159. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/properties.js +69 -64
  160. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/protobuf.js +35 -33
  161. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/puppet.js +132 -124
  162. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/purebasic.js +67 -61
  163. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/python-repl.js +26 -24
  164. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/python.js +406 -389
  165. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/q.js +27 -20
  166. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/qml.js +190 -176
  167. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/r.js +187 -171
  168. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/reasonml.js +296 -277
  169. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/rib.js +27 -24
  170. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/roboconf.js +69 -62
  171. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/routeros.js +150 -139
  172. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/rsl.js +39 -35
  173. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ruby.js +339 -314
  174. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/ruleslanguage.js +67 -63
  175. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/rust.js +132 -126
  176. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/sas.js +124 -114
  177. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/scala.js +126 -115
  178. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/scheme.js +188 -168
  179. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/scilab.js +60 -56
  180. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/scss.js +518 -508
  181. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/shell.js +19 -17
  182. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/smali.js +125 -119
  183. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/smalltalk.js +52 -50
  184. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/sml.js +70 -63
  185. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/sqf.js +436 -426
  186. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/sql.js +662 -643
  187. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/sql_more.js +162 -155
  188. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/stan.js +536 -525
  189. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/stata.js +45 -40
  190. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/step21.js +56 -53
  191. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/stylus.js +580 -553
  192. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/subunit.js +43 -41
  193. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/swift.js +770 -679
  194. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/taggerscript.js +43 -38
  195. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/tap.js +44 -42
  196. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/tcl.js +82 -68
  197. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/thrift.js +38 -33
  198. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/tp.js +85 -80
  199. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/twig.js +63 -54
  200. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/typescript.js +625 -587
  201. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/vala.js +52 -48
  202. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/vbnet.js +178 -156
  203. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/vbscript-html.js +13 -11
  204. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/vbscript.js +71 -58
  205. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/verilog.js +120 -113
  206. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/vhdl.js +61 -53
  207. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/vim.js +111 -107
  208. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/x86asm.js +152 -138
  209. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/xl.js +83 -75
  210. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/xml.js +230 -209
  211. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/xquery.js +179 -161
  212. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/yaml.js +164 -154
  213. package/dist/components/cmsComponents/sdk/lib/highlight/lib/languages/zephir.js +125 -118
  214. package/dist/components/cmsComponents/wiki/Logo.vue +1 -1
  215. package/dist/components/cmsComponents/wiki/lib/highlight/lib/core.js +2051 -1836
  216. package/dist/components/cmsComponents/wiki/lib/highlight/lib/index.js +3 -1
  217. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/1c.js +509 -424
  218. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/abnf.js +77 -65
  219. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/accesslog.js +89 -84
  220. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/actionscript.js +86 -80
  221. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ada.js +166 -149
  222. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/angelscript.js +109 -90
  223. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/apache.js +72 -69
  224. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/applescript.js +150 -125
  225. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/arcade.js +150 -144
  226. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/arduino.js +518 -475
  227. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/armasm.js +120 -112
  228. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/asciidoc.js +268 -244
  229. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/aspectj.js +154 -144
  230. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/autohotkey.js +73 -70
  231. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/autoit.js +160 -146
  232. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/avrasm.js +70 -63
  233. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/awk.js +63 -61
  234. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/axapta.js +166 -160
  235. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/bash.js +142 -133
  236. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/basic.js +55 -52
  237. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/bnf.js +27 -25
  238. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/brainfuck.js +36 -30
  239. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/c-like.js +444 -407
  240. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/c.js +267 -247
  241. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/cal.js +91 -77
  242. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/capnproto.js +53 -48
  243. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ceylon.js +73 -67
  244. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/clean.js +30 -25
  245. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/clojure-repl.js +15 -13
  246. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/clojure.js +145 -134
  247. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/cmake.js +54 -52
  248. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/coffeescript.js +322 -304
  249. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/coq.js +69 -65
  250. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/cos.js +127 -119
  251. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/cpp.js +415 -383
  252. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/crmsh.js +91 -88
  253. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/crystal.js +299 -293
  254. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/csharp.js +416 -407
  255. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/csp.js +25 -23
  256. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/css.js +559 -547
  257. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/d.js +244 -215
  258. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dart.js +183 -168
  259. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/delphi.js +115 -112
  260. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/diff.js +73 -71
  261. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/django.js +64 -59
  262. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dns.js +36 -33
  263. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dockerfile.js +22 -20
  264. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dos.js +58 -51
  265. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dsconfig.js +57 -54
  266. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dts.js +136 -125
  267. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/dust.js +33 -31
  268. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ebnf.js +43 -37
  269. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/elixir.js +223 -218
  270. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/elm.js +115 -98
  271. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/erb.js +16 -14
  272. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/erlang-repl.js +60 -52
  273. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/erlang.js +180 -171
  274. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/excel.js +54 -51
  275. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/fix.js +29 -27
  276. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/flix.js +45 -39
  277. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/fortran.js +132 -123
  278. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/fsharp.js +71 -67
  279. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/gams.js +175 -164
  280. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/gauss.js +294 -271
  281. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/gcode.js +77 -74
  282. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/gherkin.js +38 -36
  283. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/glsl.js +118 -115
  284. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/gml.js +875 -871
  285. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/go.js +61 -56
  286. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/golo.js +24 -20
  287. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/gradle.js +35 -31
  288. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/groovy.js +140 -126
  289. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/haml.js +102 -96
  290. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/handlebars.js +273 -232
  291. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/haskell.js +158 -143
  292. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/haxe.js +144 -138
  293. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/hsp.js +52 -45
  294. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/htmlbars.js +292 -245
  295. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/http.js +92 -87
  296. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/hy.js +99 -89
  297. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/inform7.js +59 -57
  298. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ini.js +128 -115
  299. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/irpf90.js +111 -105
  300. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/isbl.js +3198 -2973
  301. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/java.js +160 -146
  302. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/javascript.js +543 -513
  303. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/jboss-cli.js +53 -51
  304. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/json.js +53 -51
  305. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/julia-repl.js +24 -22
  306. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/julia.js +406 -387
  307. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/kotlin.js +258 -236
  308. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/lasso.js +168 -159
  309. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/latex.js +234 -216
  310. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ldif.js +33 -32
  311. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/leaf.js +39 -37
  312. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/less.js +633 -587
  313. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/lisp.js +100 -94
  314. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/livecodeserver.js +174 -169
  315. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/livescript.js +337 -319
  316. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/llvm.js +124 -118
  317. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/lsl.js +9 -1
  318. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/lua.js +70 -64
  319. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/makefile.js +82 -79
  320. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/markdown.js +228 -218
  321. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/mathematica.js +6752 -6731
  322. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/matlab.js +89 -84
  323. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/maxima.js +408 -402
  324. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/mel.js +226 -223
  325. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/mercury.js +109 -99
  326. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/mipsasm.js +98 -95
  327. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/mizar.js +19 -16
  328. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/mojolicious.js +25 -24
  329. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/monkey.js +78 -69
  330. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/moonscript.js +129 -122
  331. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/n1ql.js +65 -59
  332. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/nginx.js +123 -119
  333. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/nim.js +68 -63
  334. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/nix.js +56 -51
  335. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/node-repl.js +26 -24
  336. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/nsis.js +110 -93
  337. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/objectivec.js +109 -103
  338. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ocaml.js +71 -62
  339. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/openscad.js +71 -68
  340. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/oxygene.js +87 -76
  341. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/parser3.js +47 -37
  342. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/perl.js +468 -441
  343. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/pf.js +49 -43
  344. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/pgsql.js +594 -574
  345. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/php-template.js +42 -40
  346. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/php.js +185 -175
  347. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/plaintext.js +10 -8
  348. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/pony.js +79 -66
  349. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/powershell.js +317 -273
  350. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/processing.js +48 -46
  351. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/profile.js +35 -33
  352. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/prolog.js +93 -73
  353. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/properties.js +69 -64
  354. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/protobuf.js +35 -33
  355. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/puppet.js +132 -124
  356. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/purebasic.js +67 -61
  357. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/python-repl.js +26 -24
  358. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/python.js +406 -389
  359. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/q.js +27 -20
  360. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/qml.js +190 -176
  361. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/r.js +187 -171
  362. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/reasonml.js +296 -277
  363. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/rib.js +27 -24
  364. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/roboconf.js +69 -62
  365. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/routeros.js +150 -139
  366. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/rsl.js +39 -35
  367. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ruby.js +339 -314
  368. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/ruleslanguage.js +67 -63
  369. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/rust.js +132 -126
  370. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/sas.js +124 -114
  371. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/scala.js +126 -115
  372. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/scheme.js +188 -168
  373. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/scilab.js +60 -56
  374. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/scss.js +518 -508
  375. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/shell.js +19 -17
  376. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/smali.js +125 -119
  377. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/smalltalk.js +52 -50
  378. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/sml.js +70 -63
  379. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/sqf.js +436 -426
  380. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/sql.js +662 -643
  381. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/sql_more.js +162 -155
  382. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/stan.js +536 -525
  383. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/stata.js +45 -40
  384. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/step21.js +56 -53
  385. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/stylus.js +580 -553
  386. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/subunit.js +43 -41
  387. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/swift.js +770 -679
  388. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/taggerscript.js +43 -38
  389. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/tap.js +44 -42
  390. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/tcl.js +82 -68
  391. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/thrift.js +38 -33
  392. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/tp.js +85 -80
  393. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/twig.js +63 -54
  394. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/typescript.js +625 -587
  395. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/vala.js +52 -48
  396. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/vbnet.js +178 -156
  397. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/vbscript-html.js +13 -11
  398. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/vbscript.js +71 -58
  399. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/verilog.js +120 -113
  400. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/vhdl.js +61 -53
  401. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/vim.js +111 -107
  402. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/x86asm.js +152 -138
  403. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/xl.js +83 -75
  404. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/xml.js +230 -209
  405. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/xquery.js +179 -161
  406. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/yaml.js +164 -154
  407. package/dist/components/cmsComponents/wiki/lib/highlight/lib/languages/zephir.js +125 -118
  408. package/dist/components/h5Components/Language.vue +6 -4
  409. package/dist/components/h5Components/Top.vue +3 -3
  410. package/dist/components/h5Components/walletconnectBottom.vue +3 -3
  411. package/dist/components/index.js +115 -220
  412. package/dist/components/pageComponents/academy/academy_wallet.vue +3 -3
  413. package/dist/components/pageComponents/header/header_dtx2.vue +4 -4
  414. package/dist/components/pageComponents/header/header_lending.vue +2 -3
  415. package/dist/components/pageComponents/header/header_paragen.vue +2 -2
  416. package/dist/components/pageComponents/index/IndexBridge.vue +16 -4
  417. package/dist/components/pageComponents/index/IndexDemo.vue +1 -1
  418. package/dist/components/pageComponents/index/IndexDex.vue +1 -1
  419. package/dist/components/pageComponents/index/IndexMorse.vue +1 -1
  420. package/dist/components/pageComponents/index/IndexOrbits.vue +1 -1
  421. package/dist/components/pageComponents/index/IndexVortex.vue +1 -1
  422. package/dist/utils/connect.d.ts +1 -1
  423. package/dist/utils/connect.js +6 -4
  424. package/dist/utils/http.d.ts +2 -2
  425. package/dist/utils/http.js +12 -10
  426. package/dist/utils/index.d.ts +2 -0
  427. package/dist/utils/index.js +2 -1
  428. package/package.json +2 -2
@@ -2,32 +2,35 @@
2
2
  * @param {string} value
3
3
  * @returns {RegExp}
4
4
  * */
5
+
5
6
  /**
6
7
  * @param {RegExp | string } re
7
8
  * @returns {string}
8
9
  */
9
10
  function source(re) {
10
- if (!re)
11
- return null;
12
- if (typeof re === "string")
13
- return re;
14
- return re.source;
11
+ if (!re) return null;
12
+ if (typeof re === "string") return re;
13
+
14
+ return re.source;
15
15
  }
16
+
16
17
  /**
17
18
  * @param {RegExp | string } re
18
19
  * @returns {string}
19
20
  */
20
21
  function lookahead(re) {
21
- return concat('(?=', re, ')');
22
+ return concat('(?=', re, ')');
22
23
  }
24
+
23
25
  /**
24
26
  * @param {...(RegExp | string) } args
25
27
  * @returns {string}
26
28
  */
27
29
  function concat(...args) {
28
- const joined = args.map((x) => source(x)).join("");
29
- return joined;
30
+ const joined = args.map((x) => source(x)).join("");
31
+ return joined;
30
32
  }
33
+
31
34
  /**
32
35
  * Any of the passed expresssions may match
33
36
  *
@@ -36,261 +39,325 @@ function concat(...args) {
36
39
  * @returns {string}
37
40
  */
38
41
  function either(...args) {
39
- const joined = '(' + args.map((x) => source(x)).join("|") + ")";
40
- return joined;
42
+ const joined = '(' + args.map((x) => source(x)).join("|") + ")";
43
+ return joined;
41
44
  }
42
- const keywordWrapper = keyword => concat(/\b/, keyword, /\w$/.test(keyword) ? /\b/ : /\B/);
45
+
46
+ const keywordWrapper = keyword => concat(
47
+ /\b/,
48
+ keyword,
49
+ /\w$/.test(keyword) ? /\b/ : /\B/
50
+ );
51
+
43
52
  // Keywords that require a leading dot.
44
53
  const dotKeywords = [
45
- 'Protocol', // contextual
46
- 'Type' // contextual
54
+ 'Protocol', // contextual
55
+ 'Type' // contextual
47
56
  ].map(keywordWrapper);
57
+
48
58
  // Keywords that may have a leading dot.
49
59
  const optionalDotKeywords = [
50
- 'init',
51
- 'self'
60
+ 'init',
61
+ 'self'
52
62
  ].map(keywordWrapper);
63
+
53
64
  // should register as keyword, not type
54
65
  const keywordTypes = [
55
- 'Any',
56
- 'Self'
66
+ 'Any',
67
+ 'Self'
57
68
  ];
69
+
58
70
  // Regular keywords and literals.
59
71
  const keywords = [
60
- // strings below will be fed into the regular `keywords` engine while regex
61
- // will result in additional modes being created to scan for those keywords to
62
- // avoid conflicts with other rules
63
- 'associatedtype',
64
- 'async',
65
- 'await',
66
- /as\?/, // operator
67
- /as!/, // operator
68
- 'as', // operator
69
- 'break',
70
- 'case',
71
- 'catch',
72
- 'class',
73
- 'continue',
74
- 'convenience', // contextual
75
- 'default',
76
- 'defer',
77
- 'deinit',
78
- 'didSet', // contextual
79
- 'do',
80
- 'dynamic', // contextual
81
- 'else',
82
- 'enum',
83
- 'extension',
84
- 'fallthrough',
85
- /fileprivate\(set\)/,
86
- 'fileprivate',
87
- 'final', // contextual
88
- 'for',
89
- 'func',
90
- 'get', // contextual
91
- 'guard',
92
- 'if',
93
- 'import',
94
- 'indirect', // contextual
95
- 'infix', // contextual
96
- /init\?/,
97
- /init!/,
98
- 'inout',
99
- /internal\(set\)/,
100
- 'internal',
101
- 'in',
102
- 'is', // operator
103
- 'lazy', // contextual
104
- 'let',
105
- 'mutating', // contextual
106
- 'nonmutating', // contextual
107
- /open\(set\)/, // contextual
108
- 'open', // contextual
109
- 'operator',
110
- 'optional', // contextual
111
- 'override', // contextual
112
- 'postfix', // contextual
113
- 'precedencegroup',
114
- 'prefix', // contextual
115
- /private\(set\)/,
116
- 'private',
117
- 'protocol',
118
- /public\(set\)/,
119
- 'public',
120
- 'repeat',
121
- 'required', // contextual
122
- 'rethrows',
123
- 'return',
124
- 'set', // contextual
125
- 'some', // contextual
126
- 'static',
127
- 'struct',
128
- 'subscript',
129
- 'super',
130
- 'switch',
131
- 'throws',
132
- 'throw',
133
- /try\?/, // operator
134
- /try!/, // operator
135
- 'try', // operator
136
- 'typealias',
137
- /unowned\(safe\)/, // contextual
138
- /unowned\(unsafe\)/, // contextual
139
- 'unowned', // contextual
140
- 'var',
141
- 'weak', // contextual
142
- 'where',
143
- 'while',
144
- 'willSet' // contextual
72
+ // strings below will be fed into the regular `keywords` engine while regex
73
+ // will result in additional modes being created to scan for those keywords to
74
+ // avoid conflicts with other rules
75
+ 'associatedtype',
76
+ 'async',
77
+ 'await',
78
+ /as\?/, // operator
79
+ /as!/, // operator
80
+ 'as', // operator
81
+ 'break',
82
+ 'case',
83
+ 'catch',
84
+ 'class',
85
+ 'continue',
86
+ 'convenience', // contextual
87
+ 'default',
88
+ 'defer',
89
+ 'deinit',
90
+ 'didSet', // contextual
91
+ 'do',
92
+ 'dynamic', // contextual
93
+ 'else',
94
+ 'enum',
95
+ 'extension',
96
+ 'fallthrough',
97
+ /fileprivate\(set\)/,
98
+ 'fileprivate',
99
+ 'final', // contextual
100
+ 'for',
101
+ 'func',
102
+ 'get', // contextual
103
+ 'guard',
104
+ 'if',
105
+ 'import',
106
+ 'indirect', // contextual
107
+ 'infix', // contextual
108
+ /init\?/,
109
+ /init!/,
110
+ 'inout',
111
+ /internal\(set\)/,
112
+ 'internal',
113
+ 'in',
114
+ 'is', // operator
115
+ 'lazy', // contextual
116
+ 'let',
117
+ 'mutating', // contextual
118
+ 'nonmutating', // contextual
119
+ /open\(set\)/, // contextual
120
+ 'open', // contextual
121
+ 'operator',
122
+ 'optional', // contextual
123
+ 'override', // contextual
124
+ 'postfix', // contextual
125
+ 'precedencegroup',
126
+ 'prefix', // contextual
127
+ /private\(set\)/,
128
+ 'private',
129
+ 'protocol',
130
+ /public\(set\)/,
131
+ 'public',
132
+ 'repeat',
133
+ 'required', // contextual
134
+ 'rethrows',
135
+ 'return',
136
+ 'set', // contextual
137
+ 'some', // contextual
138
+ 'static',
139
+ 'struct',
140
+ 'subscript',
141
+ 'super',
142
+ 'switch',
143
+ 'throws',
144
+ 'throw',
145
+ /try\?/, // operator
146
+ /try!/, // operator
147
+ 'try', // operator
148
+ 'typealias',
149
+ /unowned\(safe\)/, // contextual
150
+ /unowned\(unsafe\)/, // contextual
151
+ 'unowned', // contextual
152
+ 'var',
153
+ 'weak', // contextual
154
+ 'where',
155
+ 'while',
156
+ 'willSet' // contextual
145
157
  ];
158
+
146
159
  // NOTE: Contextual keywords are reserved only in specific contexts.
147
160
  // Ideally, these should be matched using modes to avoid false positives.
161
+
148
162
  // Literals.
149
163
  const literals = [
150
- 'false',
151
- 'nil',
152
- 'true'
164
+ 'false',
165
+ 'nil',
166
+ 'true'
153
167
  ];
168
+
154
169
  // Keywords used in precedence groups.
155
170
  const precedencegroupKeywords = [
156
- 'assignment',
157
- 'associativity',
158
- 'higherThan',
159
- 'left',
160
- 'lowerThan',
161
- 'none',
162
- 'right'
171
+ 'assignment',
172
+ 'associativity',
173
+ 'higherThan',
174
+ 'left',
175
+ 'lowerThan',
176
+ 'none',
177
+ 'right'
163
178
  ];
179
+
164
180
  // Keywords that start with a number sign (#).
165
181
  // #available is handled separately.
166
182
  const numberSignKeywords = [
167
- '#colorLiteral',
168
- '#column',
169
- '#dsohandle',
170
- '#else',
171
- '#elseif',
172
- '#endif',
173
- '#error',
174
- '#file',
175
- '#fileID',
176
- '#fileLiteral',
177
- '#filePath',
178
- '#function',
179
- '#if',
180
- '#imageLiteral',
181
- '#keyPath',
182
- '#line',
183
- '#selector',
184
- '#sourceLocation',
185
- '#warn_unqualified_access',
186
- '#warning'
183
+ '#colorLiteral',
184
+ '#column',
185
+ '#dsohandle',
186
+ '#else',
187
+ '#elseif',
188
+ '#endif',
189
+ '#error',
190
+ '#file',
191
+ '#fileID',
192
+ '#fileLiteral',
193
+ '#filePath',
194
+ '#function',
195
+ '#if',
196
+ '#imageLiteral',
197
+ '#keyPath',
198
+ '#line',
199
+ '#selector',
200
+ '#sourceLocation',
201
+ '#warn_unqualified_access',
202
+ '#warning'
187
203
  ];
204
+
188
205
  // Global functions in the Standard Library.
189
206
  const builtIns = [
190
- 'abs',
191
- 'all',
192
- 'any',
193
- 'assert',
194
- 'assertionFailure',
195
- 'debugPrint',
196
- 'dump',
197
- 'fatalError',
198
- 'getVaList',
199
- 'isKnownUniquelyReferenced',
200
- 'max',
201
- 'min',
202
- 'numericCast',
203
- 'pointwiseMax',
204
- 'pointwiseMin',
205
- 'precondition',
206
- 'preconditionFailure',
207
- 'print',
208
- 'readLine',
209
- 'repeatElement',
210
- 'sequence',
211
- 'stride',
212
- 'swap',
213
- 'swift_unboxFromSwiftValueWithType',
214
- 'transcode',
215
- 'type',
216
- 'unsafeBitCast',
217
- 'unsafeDowncast',
218
- 'withExtendedLifetime',
219
- 'withUnsafeMutablePointer',
220
- 'withUnsafePointer',
221
- 'withVaList',
222
- 'withoutActuallyEscaping',
223
- 'zip'
207
+ 'abs',
208
+ 'all',
209
+ 'any',
210
+ 'assert',
211
+ 'assertionFailure',
212
+ 'debugPrint',
213
+ 'dump',
214
+ 'fatalError',
215
+ 'getVaList',
216
+ 'isKnownUniquelyReferenced',
217
+ 'max',
218
+ 'min',
219
+ 'numericCast',
220
+ 'pointwiseMax',
221
+ 'pointwiseMin',
222
+ 'precondition',
223
+ 'preconditionFailure',
224
+ 'print',
225
+ 'readLine',
226
+ 'repeatElement',
227
+ 'sequence',
228
+ 'stride',
229
+ 'swap',
230
+ 'swift_unboxFromSwiftValueWithType',
231
+ 'transcode',
232
+ 'type',
233
+ 'unsafeBitCast',
234
+ 'unsafeDowncast',
235
+ 'withExtendedLifetime',
236
+ 'withUnsafeMutablePointer',
237
+ 'withUnsafePointer',
238
+ 'withVaList',
239
+ 'withoutActuallyEscaping',
240
+ 'zip'
224
241
  ];
242
+
225
243
  // Valid first characters for operators.
226
- const operatorHead = either(/[/=\-+!*%<>&|^~?]/, /[\u00A1-\u00A7]/, /[\u00A9\u00AB]/, /[\u00AC\u00AE]/, /[\u00B0\u00B1]/, /[\u00B6\u00BB\u00BF\u00D7\u00F7]/, /[\u2016-\u2017]/, /[\u2020-\u2027]/, /[\u2030-\u203E]/, /[\u2041-\u2053]/, /[\u2055-\u205E]/, /[\u2190-\u23FF]/, /[\u2500-\u2775]/, /[\u2794-\u2BFF]/, /[\u2E00-\u2E7F]/, /[\u3001-\u3003]/, /[\u3008-\u3020]/, /[\u3030]/);
244
+ const operatorHead = either(
245
+ /[/=\-+!*%<>&|^~?]/,
246
+ /[\u00A1-\u00A7]/,
247
+ /[\u00A9\u00AB]/,
248
+ /[\u00AC\u00AE]/,
249
+ /[\u00B0\u00B1]/,
250
+ /[\u00B6\u00BB\u00BF\u00D7\u00F7]/,
251
+ /[\u2016-\u2017]/,
252
+ /[\u2020-\u2027]/,
253
+ /[\u2030-\u203E]/,
254
+ /[\u2041-\u2053]/,
255
+ /[\u2055-\u205E]/,
256
+ /[\u2190-\u23FF]/,
257
+ /[\u2500-\u2775]/,
258
+ /[\u2794-\u2BFF]/,
259
+ /[\u2E00-\u2E7F]/,
260
+ /[\u3001-\u3003]/,
261
+ /[\u3008-\u3020]/,
262
+ /[\u3030]/
263
+ );
264
+
227
265
  // Valid characters for operators.
228
- const operatorCharacter = either(operatorHead, /[\u0300-\u036F]/, /[\u1DC0-\u1DFF]/, /[\u20D0-\u20FF]/, /[\uFE00-\uFE0F]/, /[\uFE20-\uFE2F]/
229
- // TODO: The following characters are also allowed, but the regex isn't supported yet.
230
- // /[\u{E0100}-\u{E01EF}]/u
266
+ const operatorCharacter = either(
267
+ operatorHead,
268
+ /[\u0300-\u036F]/,
269
+ /[\u1DC0-\u1DFF]/,
270
+ /[\u20D0-\u20FF]/,
271
+ /[\uFE00-\uFE0F]/,
272
+ /[\uFE20-\uFE2F]/
273
+ // TODO: The following characters are also allowed, but the regex isn't supported yet.
274
+ // /[\u{E0100}-\u{E01EF}]/u
231
275
  );
276
+
232
277
  // Valid operator.
233
278
  const operator = concat(operatorHead, operatorCharacter, '*');
279
+
234
280
  // Valid first characters for identifiers.
235
- const identifierHead = either(/[a-zA-Z_]/, /[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/, /[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/, /[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/, /[\u1E00-\u1FFF]/, /[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/, /[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/, /[\u2C00-\u2DFF\u2E80-\u2FFF]/, /[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/, /[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/, /[\uFE47-\uFEFE\uFF00-\uFFFD]/ // Should be /[\uFE47-\uFFFD]/, but we have to exclude FEFF.
236
- // The following characters are also allowed, but the regexes aren't supported yet.
237
- // /[\u{10000}-\u{1FFFD}\u{20000-\u{2FFFD}\u{30000}-\u{3FFFD}\u{40000}-\u{4FFFD}]/u,
238
- // /[\u{50000}-\u{5FFFD}\u{60000-\u{6FFFD}\u{70000}-\u{7FFFD}\u{80000}-\u{8FFFD}]/u,
239
- // /[\u{90000}-\u{9FFFD}\u{A0000-\u{AFFFD}\u{B0000}-\u{BFFFD}\u{C0000}-\u{CFFFD}]/u,
240
- // /[\u{D0000}-\u{DFFFD}\u{E0000-\u{EFFFD}]/u
281
+ const identifierHead = either(
282
+ /[a-zA-Z_]/,
283
+ /[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,
284
+ /[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,
285
+ /[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,
286
+ /[\u1E00-\u1FFF]/,
287
+ /[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,
288
+ /[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,
289
+ /[\u2C00-\u2DFF\u2E80-\u2FFF]/,
290
+ /[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,
291
+ /[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,
292
+ /[\uFE47-\uFEFE\uFF00-\uFFFD]/ // Should be /[\uFE47-\uFFFD]/, but we have to exclude FEFF.
293
+ // The following characters are also allowed, but the regexes aren't supported yet.
294
+ // /[\u{10000}-\u{1FFFD}\u{20000-\u{2FFFD}\u{30000}-\u{3FFFD}\u{40000}-\u{4FFFD}]/u,
295
+ // /[\u{50000}-\u{5FFFD}\u{60000-\u{6FFFD}\u{70000}-\u{7FFFD}\u{80000}-\u{8FFFD}]/u,
296
+ // /[\u{90000}-\u{9FFFD}\u{A0000-\u{AFFFD}\u{B0000}-\u{BFFFD}\u{C0000}-\u{CFFFD}]/u,
297
+ // /[\u{D0000}-\u{DFFFD}\u{E0000-\u{EFFFD}]/u
241
298
  );
299
+
242
300
  // Valid characters for identifiers.
243
- const identifierCharacter = either(identifierHead, /\d/, /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/);
301
+ const identifierCharacter = either(
302
+ identifierHead,
303
+ /\d/,
304
+ /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/
305
+ );
306
+
244
307
  // Valid identifier.
245
308
  const identifier = concat(identifierHead, identifierCharacter, '*');
309
+
246
310
  // Valid type identifier.
247
311
  const typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');
312
+
248
313
  // Built-in attributes, which are highlighted as keywords.
249
314
  // @available is handled separately.
250
315
  const keywordAttributes = [
251
- 'autoclosure',
252
- concat(/convention\(/, either('swift', 'block', 'c'), /\)/),
253
- 'discardableResult',
254
- 'dynamicCallable',
255
- 'dynamicMemberLookup',
256
- 'escaping',
257
- 'frozen',
258
- 'GKInspectable',
259
- 'IBAction',
260
- 'IBDesignable',
261
- 'IBInspectable',
262
- 'IBOutlet',
263
- 'IBSegueAction',
264
- 'inlinable',
265
- 'main',
266
- 'nonobjc',
267
- 'NSApplicationMain',
268
- 'NSCopying',
269
- 'NSManaged',
270
- concat(/objc\(/, identifier, /\)/),
271
- 'objc',
272
- 'objcMembers',
273
- 'propertyWrapper',
274
- 'requires_stored_property_inits',
275
- 'testable',
276
- 'UIApplicationMain',
277
- 'unknown',
278
- 'usableFromInline'
316
+ 'autoclosure',
317
+ concat(/convention\(/, either('swift', 'block', 'c'), /\)/),
318
+ 'discardableResult',
319
+ 'dynamicCallable',
320
+ 'dynamicMemberLookup',
321
+ 'escaping',
322
+ 'frozen',
323
+ 'GKInspectable',
324
+ 'IBAction',
325
+ 'IBDesignable',
326
+ 'IBInspectable',
327
+ 'IBOutlet',
328
+ 'IBSegueAction',
329
+ 'inlinable',
330
+ 'main',
331
+ 'nonobjc',
332
+ 'NSApplicationMain',
333
+ 'NSCopying',
334
+ 'NSManaged',
335
+ concat(/objc\(/, identifier, /\)/),
336
+ 'objc',
337
+ 'objcMembers',
338
+ 'propertyWrapper',
339
+ 'requires_stored_property_inits',
340
+ 'testable',
341
+ 'UIApplicationMain',
342
+ 'unknown',
343
+ 'usableFromInline'
279
344
  ];
345
+
280
346
  // Contextual keywords used in @available and #available.
281
347
  const availabilityKeywords = [
282
- 'iOS',
283
- 'iOSApplicationExtension',
284
- 'macOS',
285
- 'macOSApplicationExtension',
286
- 'macCatalyst',
287
- 'macCatalystApplicationExtension',
288
- 'watchOS',
289
- 'watchOSApplicationExtension',
290
- 'tvOS',
291
- 'tvOSApplicationExtension',
292
- 'swift'
348
+ 'iOS',
349
+ 'iOSApplicationExtension',
350
+ 'macOS',
351
+ 'macOSApplicationExtension',
352
+ 'macCatalyst',
353
+ 'macCatalystApplicationExtension',
354
+ 'watchOS',
355
+ 'watchOSApplicationExtension',
356
+ 'tvOS',
357
+ 'tvOSApplicationExtension',
358
+ 'swift'
293
359
  ];
360
+
294
361
  /*
295
362
  Language: Swift
296
363
  Description: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
@@ -299,484 +366,508 @@ Contributors: Chris Eidhof <chris@eidhof.nl>, Nate Cook <natecook@gmail.com>, Al
299
366
  Website: https://swift.org
300
367
  Category: common, system
301
368
  */
369
+
302
370
  /** @type LanguageFn */
303
371
  function swift(hljs) {
304
- const WHITESPACE = {
305
- match: /\s+/,
306
- relevance: 0
307
- };
308
- // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411
309
- const BLOCK_COMMENT = hljs.COMMENT('/\\*', '\\*/', {
310
- contains: ['self']
311
- });
312
- const COMMENTS = [
313
- hljs.C_LINE_COMMENT_MODE,
314
- BLOCK_COMMENT
315
- ];
316
- // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413
317
- // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html
318
- const DOT_KEYWORD = {
372
+ const WHITESPACE = {
373
+ match: /\s+/,
374
+ relevance: 0
375
+ };
376
+ // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411
377
+ const BLOCK_COMMENT = hljs.COMMENT(
378
+ '/\\*',
379
+ '\\*/',
380
+ {
381
+ contains: [ 'self' ]
382
+ }
383
+ );
384
+ const COMMENTS = [
385
+ hljs.C_LINE_COMMENT_MODE,
386
+ BLOCK_COMMENT
387
+ ];
388
+
389
+ // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413
390
+ // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html
391
+ const DOT_KEYWORD = {
392
+ className: 'keyword',
393
+ begin: concat(/\./, lookahead(either(...dotKeywords, ...optionalDotKeywords))),
394
+ end: either(...dotKeywords, ...optionalDotKeywords),
395
+ excludeBegin: true
396
+ };
397
+ const KEYWORD_GUARD = {
398
+ // Consume .keyword to prevent highlighting properties and methods as keywords.
399
+ match: concat(/\./, either(...keywords)),
400
+ relevance: 0
401
+ };
402
+ const PLAIN_KEYWORDS = keywords
403
+ .filter(kw => typeof kw === 'string')
404
+ .concat([ "_|0" ]); // seems common, so 0 relevance
405
+ const REGEX_KEYWORDS = keywords
406
+ .filter(kw => typeof kw !== 'string') // find regex
407
+ .concat(keywordTypes)
408
+ .map(keywordWrapper);
409
+ const KEYWORD = {
410
+ variants: [
411
+ {
319
412
  className: 'keyword',
320
- begin: concat(/\./, lookahead(either(...dotKeywords, ...optionalDotKeywords))),
321
- end: either(...dotKeywords, ...optionalDotKeywords),
322
- excludeBegin: true
323
- };
324
- const KEYWORD_GUARD = {
325
- // Consume .keyword to prevent highlighting properties and methods as keywords.
326
- match: concat(/\./, either(...keywords)),
413
+ match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)
414
+ }
415
+ ]
416
+ };
417
+ // find all the regular keywords
418
+ const KEYWORDS = {
419
+ $pattern: either(
420
+ /\b\w+/, // regular keywords
421
+ /#\w+/ // number keywords
422
+ ),
423
+ keyword: PLAIN_KEYWORDS
424
+ .concat(numberSignKeywords),
425
+ literal: literals
426
+ };
427
+ const KEYWORD_MODES = [
428
+ DOT_KEYWORD,
429
+ KEYWORD_GUARD,
430
+ KEYWORD
431
+ ];
432
+
433
+ // https://github.com/apple/swift/tree/main/stdlib/public/core
434
+ const BUILT_IN_GUARD = {
435
+ // Consume .built_in to prevent highlighting properties and methods.
436
+ match: concat(/\./, either(...builtIns)),
437
+ relevance: 0
438
+ };
439
+ const BUILT_IN = {
440
+ className: 'built_in',
441
+ match: concat(/\b/, either(...builtIns), /(?=\()/)
442
+ };
443
+ const BUILT_INS = [
444
+ BUILT_IN_GUARD,
445
+ BUILT_IN
446
+ ];
447
+
448
+ // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418
449
+ const OPERATOR_GUARD = {
450
+ // Prevent -> from being highlighting as an operator.
451
+ match: /->/,
452
+ relevance: 0
453
+ };
454
+ const OPERATOR = {
455
+ className: 'operator',
456
+ relevance: 0,
457
+ variants: [
458
+ {
459
+ match: operator
460
+ },
461
+ {
462
+ // dot-operator: only operators that start with a dot are allowed to use dots as
463
+ // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more
464
+ // characters that may also include dots.
465
+ match: `\\.(\\.|${operatorCharacter})+`
466
+ }
467
+ ]
468
+ };
469
+ const OPERATORS = [
470
+ OPERATOR_GUARD,
471
+ OPERATOR
472
+ ];
473
+
474
+ // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal
475
+ // TODO: Update for leading `-` after lookbehind is supported everywhere
476
+ const decimalDigits = '([0-9]_*)+';
477
+ const hexDigits = '([0-9a-fA-F]_*)+';
478
+ const NUMBER = {
479
+ className: 'number',
480
+ relevance: 0,
481
+ variants: [
482
+ // decimal floating-point-literal (subsumes decimal-literal)
483
+ {
484
+ match: `\\b(${decimalDigits})(\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\b`
485
+ },
486
+ // hexadecimal floating-point-literal (subsumes hexadecimal-literal)
487
+ {
488
+ match: `\\b0x(${hexDigits})(\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\b`
489
+ },
490
+ // octal-literal
491
+ {
492
+ match: /\b0o([0-7]_*)+\b/
493
+ },
494
+ // binary-literal
495
+ {
496
+ match: /\b0b([01]_*)+\b/
497
+ }
498
+ ]
499
+ };
500
+
501
+ // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal
502
+ const ESCAPED_CHARACTER = (rawDelimiter = "") => ({
503
+ className: 'subst',
504
+ variants: [
505
+ {
506
+ match: concat(/\\/, rawDelimiter, /[0\\tnr"']/)
507
+ },
508
+ {
509
+ match: concat(/\\/, rawDelimiter, /u\{[0-9a-fA-F]{1,8}\}/)
510
+ }
511
+ ]
512
+ });
513
+ const ESCAPED_NEWLINE = (rawDelimiter = "") => ({
514
+ className: 'subst',
515
+ match: concat(/\\/, rawDelimiter, /[\t ]*(?:[\r\n]|\r\n)/)
516
+ });
517
+ const INTERPOLATION = (rawDelimiter = "") => ({
518
+ className: 'subst',
519
+ label: "interpol",
520
+ begin: concat(/\\/, rawDelimiter, /\(/),
521
+ end: /\)/
522
+ });
523
+ const MULTILINE_STRING = (rawDelimiter = "") => ({
524
+ begin: concat(rawDelimiter, /"""/),
525
+ end: concat(/"""/, rawDelimiter),
526
+ contains: [
527
+ ESCAPED_CHARACTER(rawDelimiter),
528
+ ESCAPED_NEWLINE(rawDelimiter),
529
+ INTERPOLATION(rawDelimiter)
530
+ ]
531
+ });
532
+ const SINGLE_LINE_STRING = (rawDelimiter = "") => ({
533
+ begin: concat(rawDelimiter, /"/),
534
+ end: concat(/"/, rawDelimiter),
535
+ contains: [
536
+ ESCAPED_CHARACTER(rawDelimiter),
537
+ INTERPOLATION(rawDelimiter)
538
+ ]
539
+ });
540
+ const STRING = {
541
+ className: 'string',
542
+ variants: [
543
+ MULTILINE_STRING(),
544
+ MULTILINE_STRING("#"),
545
+ MULTILINE_STRING("##"),
546
+ MULTILINE_STRING("###"),
547
+ SINGLE_LINE_STRING(),
548
+ SINGLE_LINE_STRING("#"),
549
+ SINGLE_LINE_STRING("##"),
550
+ SINGLE_LINE_STRING("###")
551
+ ]
552
+ };
553
+
554
+ // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412
555
+ const QUOTED_IDENTIFIER = {
556
+ match: concat(/`/, identifier, /`/)
557
+ };
558
+ const IMPLICIT_PARAMETER = {
559
+ className: 'variable',
560
+ match: /\$\d+/
561
+ };
562
+ const PROPERTY_WRAPPER_PROJECTION = {
563
+ className: 'variable',
564
+ match: `\\$${identifierCharacter}+`
565
+ };
566
+ const IDENTIFIERS = [
567
+ QUOTED_IDENTIFIER,
568
+ IMPLICIT_PARAMETER,
569
+ PROPERTY_WRAPPER_PROJECTION
570
+ ];
571
+
572
+ // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html
573
+ const AVAILABLE_ATTRIBUTE = {
574
+ match: /(@|#)available/,
575
+ className: "keyword",
576
+ starts: {
577
+ contains: [
578
+ {
579
+ begin: /\(/,
580
+ end: /\)/,
581
+ keywords: availabilityKeywords,
582
+ contains: [
583
+ ...OPERATORS,
584
+ NUMBER,
585
+ STRING
586
+ ]
587
+ }
588
+ ]
589
+ }
590
+ };
591
+ const KEYWORD_ATTRIBUTE = {
592
+ className: 'keyword',
593
+ match: concat(/@/, either(...keywordAttributes))
594
+ };
595
+ const USER_DEFINED_ATTRIBUTE = {
596
+ className: 'meta',
597
+ match: concat(/@/, identifier)
598
+ };
599
+ const ATTRIBUTES = [
600
+ AVAILABLE_ATTRIBUTE,
601
+ KEYWORD_ATTRIBUTE,
602
+ USER_DEFINED_ATTRIBUTE
603
+ ];
604
+
605
+ // https://docs.swift.org/swift-book/ReferenceManual/Types.html
606
+ const TYPE = {
607
+ match: lookahead(/\b[A-Z]/),
608
+ relevance: 0,
609
+ contains: [
610
+ { // Common Apple frameworks, for relevance boost
611
+ className: 'type',
612
+ match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')
613
+ },
614
+ { // Type identifier
615
+ className: 'type',
616
+ match: typeIdentifier,
327
617
  relevance: 0
328
- };
329
- const PLAIN_KEYWORDS = keywords
330
- .filter(kw => typeof kw === 'string')
331
- .concat(["_|0"]); // seems common, so 0 relevance
332
- const REGEX_KEYWORDS = keywords
333
- .filter(kw => typeof kw !== 'string') // find regex
334
- .concat(keywordTypes)
335
- .map(keywordWrapper);
336
- const KEYWORD = {
337
- variants: [
338
- {
339
- className: 'keyword',
340
- match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)
341
- }
342
- ]
343
- };
344
- // find all the regular keywords
345
- const KEYWORDS = {
346
- $pattern: either(/\b\w+/, // regular keywords
347
- /#\w+/ // number keywords
348
- ),
349
- keyword: PLAIN_KEYWORDS
350
- .concat(numberSignKeywords),
351
- literal: literals
352
- };
353
- const KEYWORD_MODES = [
354
- DOT_KEYWORD,
355
- KEYWORD_GUARD,
356
- KEYWORD
357
- ];
358
- // https://github.com/apple/swift/tree/main/stdlib/public/core
359
- const BUILT_IN_GUARD = {
360
- // Consume .built_in to prevent highlighting properties and methods.
361
- match: concat(/\./, either(...builtIns)),
618
+ },
619
+ { // Optional type
620
+ match: /[?!]+/,
362
621
  relevance: 0
363
- };
364
- const BUILT_IN = {
365
- className: 'built_in',
366
- match: concat(/\b/, either(...builtIns), /(?=\()/)
367
- };
368
- const BUILT_INS = [
369
- BUILT_IN_GUARD,
370
- BUILT_IN
371
- ];
372
- // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418
373
- const OPERATOR_GUARD = {
374
- // Prevent -> from being highlighting as an operator.
375
- match: /->/,
622
+ },
623
+ { // Variadic parameter
624
+ match: /\.\.\./,
376
625
  relevance: 0
377
- };
378
- const OPERATOR = {
379
- className: 'operator',
380
- relevance: 0,
381
- variants: [
382
- {
383
- match: operator
384
- },
385
- {
386
- // dot-operator: only operators that start with a dot are allowed to use dots as
387
- // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more
388
- // characters that may also include dots.
389
- match: `\\.(\\.|${operatorCharacter})+`
390
- }
391
- ]
392
- };
393
- const OPERATORS = [
394
- OPERATOR_GUARD,
395
- OPERATOR
396
- ];
397
- // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal
398
- // TODO: Update for leading `-` after lookbehind is supported everywhere
399
- const decimalDigits = '([0-9]_*)+';
400
- const hexDigits = '([0-9a-fA-F]_*)+';
401
- const NUMBER = {
402
- className: 'number',
403
- relevance: 0,
404
- variants: [
405
- // decimal floating-point-literal (subsumes decimal-literal)
406
- {
407
- match: `\\b(${decimalDigits})(\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\b`
408
- },
409
- // hexadecimal floating-point-literal (subsumes hexadecimal-literal)
410
- {
411
- match: `\\b0x(${hexDigits})(\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\b`
412
- },
413
- // octal-literal
414
- {
415
- match: /\b0o([0-7]_*)+\b/
416
- },
417
- // binary-literal
418
- {
419
- match: /\b0b([01]_*)+\b/
420
- }
421
- ]
422
- };
423
- // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal
424
- const ESCAPED_CHARACTER = (rawDelimiter = "") => ({
425
- className: 'subst',
426
- variants: [
427
- {
428
- match: concat(/\\/, rawDelimiter, /[0\\tnr"']/)
429
- },
430
- {
431
- match: concat(/\\/, rawDelimiter, /u\{[0-9a-fA-F]{1,8}\}/)
432
- }
433
- ]
434
- });
435
- const ESCAPED_NEWLINE = (rawDelimiter = "") => ({
436
- className: 'subst',
437
- match: concat(/\\/, rawDelimiter, /[\t ]*(?:[\r\n]|\r\n)/)
438
- });
439
- const INTERPOLATION = (rawDelimiter = "") => ({
440
- className: 'subst',
441
- label: "interpol",
442
- begin: concat(/\\/, rawDelimiter, /\(/),
443
- end: /\)/
444
- });
445
- const MULTILINE_STRING = (rawDelimiter = "") => ({
446
- begin: concat(rawDelimiter, /"""/),
447
- end: concat(/"""/, rawDelimiter),
448
- contains: [
449
- ESCAPED_CHARACTER(rawDelimiter),
450
- ESCAPED_NEWLINE(rawDelimiter),
451
- INTERPOLATION(rawDelimiter)
452
- ]
453
- });
454
- const SINGLE_LINE_STRING = (rawDelimiter = "") => ({
455
- begin: concat(rawDelimiter, /"/),
456
- end: concat(/"/, rawDelimiter),
457
- contains: [
458
- ESCAPED_CHARACTER(rawDelimiter),
459
- INTERPOLATION(rawDelimiter)
460
- ]
461
- });
462
- const STRING = {
463
- className: 'string',
464
- variants: [
465
- MULTILINE_STRING(),
466
- MULTILINE_STRING("#"),
467
- MULTILINE_STRING("##"),
468
- MULTILINE_STRING("###"),
469
- SINGLE_LINE_STRING(),
470
- SINGLE_LINE_STRING("#"),
471
- SINGLE_LINE_STRING("##"),
472
- SINGLE_LINE_STRING("###")
473
- ]
474
- };
475
- // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412
476
- const QUOTED_IDENTIFIER = {
477
- match: concat(/`/, identifier, /`/)
478
- };
479
- const IMPLICIT_PARAMETER = {
480
- className: 'variable',
481
- match: /\$\d+/
482
- };
483
- const PROPERTY_WRAPPER_PROJECTION = {
484
- className: 'variable',
485
- match: `\\$${identifierCharacter}+`
486
- };
487
- const IDENTIFIERS = [
488
- QUOTED_IDENTIFIER,
489
- IMPLICIT_PARAMETER,
490
- PROPERTY_WRAPPER_PROJECTION
491
- ];
492
- // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html
493
- const AVAILABLE_ATTRIBUTE = {
494
- match: /(@|#)available/,
495
- className: "keyword",
496
- starts: {
497
- contains: [
498
- {
499
- begin: /\(/,
500
- end: /\)/,
501
- keywords: availabilityKeywords,
502
- contains: [
503
- ...OPERATORS,
504
- NUMBER,
505
- STRING
506
- ]
507
- }
508
- ]
509
- }
510
- };
511
- const KEYWORD_ATTRIBUTE = {
626
+ },
627
+ { // Protocol composition
628
+ match: concat(/\s+&\s+/, lookahead(typeIdentifier)),
629
+ relevance: 0
630
+ }
631
+ ]
632
+ };
633
+ const GENERIC_ARGUMENTS = {
634
+ begin: /</,
635
+ end: />/,
636
+ keywords: KEYWORDS,
637
+ contains: [
638
+ ...COMMENTS,
639
+ ...KEYWORD_MODES,
640
+ ...ATTRIBUTES,
641
+ OPERATOR_GUARD,
642
+ TYPE
643
+ ]
644
+ };
645
+ TYPE.contains.push(GENERIC_ARGUMENTS);
646
+
647
+ // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552
648
+ // Prevents element names from being highlighted as keywords.
649
+ const TUPLE_ELEMENT_NAME = {
650
+ match: concat(identifier, /\s*:/),
651
+ keywords: "_|0",
652
+ relevance: 0
653
+ };
654
+ // Matches tuples as well as the parameter list of a function type.
655
+ const TUPLE = {
656
+ begin: /\(/,
657
+ end: /\)/,
658
+ relevance: 0,
659
+ keywords: KEYWORDS,
660
+ contains: [
661
+ 'self',
662
+ TUPLE_ELEMENT_NAME,
663
+ ...COMMENTS,
664
+ ...KEYWORD_MODES,
665
+ ...BUILT_INS,
666
+ ...OPERATORS,
667
+ NUMBER,
668
+ STRING,
669
+ ...IDENTIFIERS,
670
+ ...ATTRIBUTES,
671
+ TYPE
672
+ ]
673
+ };
674
+
675
+ // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362
676
+ // Matches both the keyword func and the function title.
677
+ // Grouping these lets us differentiate between the operator function <
678
+ // and the start of the generic parameter clause (also <).
679
+ const FUNC_PLUS_TITLE = {
680
+ beginKeywords: 'func',
681
+ contains: [
682
+ {
683
+ className: 'title',
684
+ match: either(QUOTED_IDENTIFIER.match, identifier, operator),
685
+ // Required to make sure the opening < of the generic parameter clause
686
+ // isn't parsed as a second title.
687
+ endsParent: true,
688
+ relevance: 0
689
+ },
690
+ WHITESPACE
691
+ ]
692
+ };
693
+ const GENERIC_PARAMETERS = {
694
+ begin: /</,
695
+ end: />/,
696
+ contains: [
697
+ ...COMMENTS,
698
+ TYPE
699
+ ]
700
+ };
701
+ const FUNCTION_PARAMETER_NAME = {
702
+ begin: either(
703
+ lookahead(concat(identifier, /\s*:/)),
704
+ lookahead(concat(identifier, /\s+/, identifier, /\s*:/))
705
+ ),
706
+ end: /:/,
707
+ relevance: 0,
708
+ contains: [
709
+ {
512
710
  className: 'keyword',
513
- match: concat(/@/, either(...keywordAttributes))
514
- };
515
- const USER_DEFINED_ATTRIBUTE = {
516
- className: 'meta',
517
- match: concat(/@/, identifier)
518
- };
519
- const ATTRIBUTES = [
520
- AVAILABLE_ATTRIBUTE,
521
- KEYWORD_ATTRIBUTE,
522
- USER_DEFINED_ATTRIBUTE
523
- ];
524
- // https://docs.swift.org/swift-book/ReferenceManual/Types.html
525
- const TYPE = {
526
- match: lookahead(/\b[A-Z]/),
527
- relevance: 0,
528
- contains: [
529
- {
530
- className: 'type',
531
- match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')
532
- },
533
- {
534
- className: 'type',
535
- match: typeIdentifier,
536
- relevance: 0
537
- },
538
- {
539
- match: /[?!]+/,
540
- relevance: 0
541
- },
542
- {
543
- match: /\.\.\./,
544
- relevance: 0
545
- },
546
- {
547
- match: concat(/\s+&\s+/, lookahead(typeIdentifier)),
548
- relevance: 0
549
- }
550
- ]
551
- };
552
- const GENERIC_ARGUMENTS = {
553
- begin: /</,
554
- end: />/,
555
- keywords: KEYWORDS,
556
- contains: [
557
- ...COMMENTS,
558
- ...KEYWORD_MODES,
559
- ...ATTRIBUTES,
560
- OPERATOR_GUARD,
561
- TYPE
562
- ]
563
- };
564
- TYPE.contains.push(GENERIC_ARGUMENTS);
565
- // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552
566
- // Prevents element names from being highlighted as keywords.
567
- const TUPLE_ELEMENT_NAME = {
568
- match: concat(identifier, /\s*:/),
569
- keywords: "_|0",
711
+ match: /\b_\b/
712
+ },
713
+ {
714
+ className: 'params',
715
+ match: identifier
716
+ }
717
+ ]
718
+ };
719
+ const FUNCTION_PARAMETERS = {
720
+ begin: /\(/,
721
+ end: /\)/,
722
+ keywords: KEYWORDS,
723
+ contains: [
724
+ FUNCTION_PARAMETER_NAME,
725
+ ...COMMENTS,
726
+ ...KEYWORD_MODES,
727
+ ...OPERATORS,
728
+ NUMBER,
729
+ STRING,
730
+ ...ATTRIBUTES,
731
+ TYPE,
732
+ TUPLE
733
+ ],
734
+ endsParent: true,
735
+ illegal: /["']/
736
+ };
737
+ const FUNCTION = {
738
+ className: 'function',
739
+ match: lookahead(/\bfunc\b/),
740
+ contains: [
741
+ FUNC_PLUS_TITLE,
742
+ GENERIC_PARAMETERS,
743
+ FUNCTION_PARAMETERS,
744
+ WHITESPACE
745
+ ],
746
+ illegal: [
747
+ /\[/,
748
+ /%/
749
+ ]
750
+ };
751
+
752
+ // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375
753
+ // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379
754
+ const INIT_SUBSCRIPT = {
755
+ className: 'function',
756
+ match: /\b(subscript|init[?!]?)\s*(?=[<(])/,
757
+ keywords: {
758
+ keyword: "subscript init init? init!",
759
+ $pattern: /\w+[?!]?/
760
+ },
761
+ contains: [
762
+ GENERIC_PARAMETERS,
763
+ FUNCTION_PARAMETERS,
764
+ WHITESPACE
765
+ ],
766
+ illegal: /\[|%/
767
+ };
768
+ // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380
769
+ const OPERATOR_DECLARATION = {
770
+ beginKeywords: 'operator',
771
+ end: hljs.MATCH_NOTHING_RE,
772
+ contains: [
773
+ {
774
+ className: 'title',
775
+ match: operator,
776
+ endsParent: true,
570
777
  relevance: 0
571
- };
572
- // Matches tuples as well as the parameter list of a function type.
573
- const TUPLE = {
574
- begin: /\(/,
575
- end: /\)/,
576
- relevance: 0,
577
- keywords: KEYWORDS,
578
- contains: [
579
- 'self',
580
- TUPLE_ELEMENT_NAME,
581
- ...COMMENTS,
582
- ...KEYWORD_MODES,
583
- ...BUILT_INS,
584
- ...OPERATORS,
585
- NUMBER,
586
- STRING,
587
- ...IDENTIFIERS,
588
- ...ATTRIBUTES,
589
- TYPE
590
- ]
591
- };
592
- // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362
593
- // Matches both the keyword func and the function title.
594
- // Grouping these lets us differentiate between the operator function <
595
- // and the start of the generic parameter clause (also <).
596
- const FUNC_PLUS_TITLE = {
597
- beginKeywords: 'func',
598
- contains: [
599
- {
600
- className: 'title',
601
- match: either(QUOTED_IDENTIFIER.match, identifier, operator),
602
- // Required to make sure the opening < of the generic parameter clause
603
- // isn't parsed as a second title.
604
- endsParent: true,
605
- relevance: 0
606
- },
607
- WHITESPACE
608
- ]
609
- };
610
- const GENERIC_PARAMETERS = {
611
- begin: /</,
612
- end: />/,
613
- contains: [
614
- ...COMMENTS,
615
- TYPE
616
- ]
617
- };
618
- const FUNCTION_PARAMETER_NAME = {
619
- begin: either(lookahead(concat(identifier, /\s*:/)), lookahead(concat(identifier, /\s+/, identifier, /\s*:/))),
620
- end: /:/,
778
+ }
779
+ ]
780
+ };
781
+
782
+ // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550
783
+ const PRECEDENCEGROUP = {
784
+ beginKeywords: 'precedencegroup',
785
+ end: hljs.MATCH_NOTHING_RE,
786
+ contains: [
787
+ {
788
+ className: 'title',
789
+ match: typeIdentifier,
790
+ relevance: 0
791
+ },
792
+ {
793
+ begin: /{/,
794
+ end: /}/,
621
795
  relevance: 0,
622
- contains: [
623
- {
624
- className: 'keyword',
625
- match: /\b_\b/
626
- },
627
- {
628
- className: 'params',
629
- match: identifier
630
- }
631
- ]
632
- };
633
- const FUNCTION_PARAMETERS = {
634
- begin: /\(/,
635
- end: /\)/,
636
- keywords: KEYWORDS,
637
- contains: [
638
- FUNCTION_PARAMETER_NAME,
639
- ...COMMENTS,
640
- ...KEYWORD_MODES,
641
- ...OPERATORS,
642
- NUMBER,
643
- STRING,
644
- ...ATTRIBUTES,
645
- TYPE,
646
- TUPLE
647
- ],
648
796
  endsParent: true,
649
- illegal: /["']/
650
- };
651
- const FUNCTION = {
652
- className: 'function',
653
- match: lookahead(/\bfunc\b/),
654
- contains: [
655
- FUNC_PLUS_TITLE,
656
- GENERIC_PARAMETERS,
657
- FUNCTION_PARAMETERS,
658
- WHITESPACE
797
+ keywords: [
798
+ ...precedencegroupKeywords,
799
+ ...literals
659
800
  ],
660
- illegal: [
661
- /\[/,
662
- /%/
663
- ]
664
- };
665
- // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375
666
- // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379
667
- const INIT_SUBSCRIPT = {
668
- className: 'function',
669
- match: /\b(subscript|init[?!]?)\s*(?=[<(])/,
670
- keywords: {
671
- keyword: "subscript init init? init!",
672
- $pattern: /\w+[?!]?/
673
- },
674
- contains: [
675
- GENERIC_PARAMETERS,
676
- FUNCTION_PARAMETERS,
677
- WHITESPACE
678
- ],
679
- illegal: /\[|%/
680
- };
681
- // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380
682
- const OPERATOR_DECLARATION = {
683
- beginKeywords: 'operator',
684
- end: hljs.MATCH_NOTHING_RE,
685
- contains: [
686
- {
687
- className: 'title',
688
- match: operator,
689
- endsParent: true,
690
- relevance: 0
691
- }
692
- ]
693
- };
694
- // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550
695
- const PRECEDENCEGROUP = {
696
- beginKeywords: 'precedencegroup',
697
- end: hljs.MATCH_NOTHING_RE,
801
+ contains: [ TYPE ]
802
+ }
803
+ ]
804
+ };
805
+
806
+ // Add supported submodes to string interpolation.
807
+ for (const variant of STRING.variants) {
808
+ const interpolation = variant.contains.find(mode => mode.label === "interpol");
809
+ // TODO: Interpolation can contain any expression, so there's room for improvement here.
810
+ interpolation.keywords = KEYWORDS;
811
+ const submodes = [
812
+ ...KEYWORD_MODES,
813
+ ...BUILT_INS,
814
+ ...OPERATORS,
815
+ NUMBER,
816
+ STRING,
817
+ ...IDENTIFIERS
818
+ ];
819
+ interpolation.contains = [
820
+ ...submodes,
821
+ {
822
+ begin: /\(/,
823
+ end: /\)/,
698
824
  contains: [
699
- {
700
- className: 'title',
701
- match: typeIdentifier,
702
- relevance: 0
703
- },
704
- {
705
- begin: /{/,
706
- end: /}/,
707
- relevance: 0,
708
- endsParent: true,
709
- keywords: [
710
- ...precedencegroupKeywords,
711
- ...literals
712
- ],
713
- contains: [TYPE]
714
- }
825
+ 'self',
826
+ ...submodes
715
827
  ]
716
- };
717
- // Add supported submodes to string interpolation.
718
- for (const variant of STRING.variants) {
719
- const interpolation = variant.contains.find(mode => mode.label === "interpol");
720
- // TODO: Interpolation can contain any expression, so there's room for improvement here.
721
- interpolation.keywords = KEYWORDS;
722
- const submodes = [
723
- ...KEYWORD_MODES,
724
- ...BUILT_INS,
725
- ...OPERATORS,
726
- NUMBER,
727
- STRING,
728
- ...IDENTIFIERS
729
- ];
730
- interpolation.contains = [
731
- ...submodes,
732
- {
733
- begin: /\(/,
734
- end: /\)/,
735
- contains: [
736
- 'self',
737
- ...submodes
738
- ]
739
- }
740
- ];
741
- }
742
- return {
743
- name: 'Swift',
828
+ }
829
+ ];
830
+ }
831
+
832
+ return {
833
+ name: 'Swift',
834
+ keywords: KEYWORDS,
835
+ contains: [
836
+ ...COMMENTS,
837
+ FUNCTION,
838
+ INIT_SUBSCRIPT,
839
+ {
840
+ className: 'class',
841
+ beginKeywords: 'struct protocol class extension enum',
842
+ end: '\\{',
843
+ excludeEnd: true,
744
844
  keywords: KEYWORDS,
745
845
  contains: [
746
- ...COMMENTS,
747
- FUNCTION,
748
- INIT_SUBSCRIPT,
749
- {
750
- className: 'class',
751
- beginKeywords: 'struct protocol class extension enum',
752
- end: '\\{',
753
- excludeEnd: true,
754
- keywords: KEYWORDS,
755
- contains: [
756
- hljs.inherit(hljs.TITLE_MODE, {
757
- begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/
758
- }),
759
- ...KEYWORD_MODES
760
- ]
761
- },
762
- OPERATOR_DECLARATION,
763
- PRECEDENCEGROUP,
764
- {
765
- beginKeywords: 'import',
766
- end: /$/,
767
- contains: [...COMMENTS],
768
- relevance: 0
769
- },
770
- ...KEYWORD_MODES,
771
- ...BUILT_INS,
772
- ...OPERATORS,
773
- NUMBER,
774
- STRING,
775
- ...IDENTIFIERS,
776
- ...ATTRIBUTES,
777
- TYPE,
778
- TUPLE
846
+ hljs.inherit(hljs.TITLE_MODE, {
847
+ begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/
848
+ }),
849
+ ...KEYWORD_MODES
779
850
  ]
780
- };
851
+ },
852
+ OPERATOR_DECLARATION,
853
+ PRECEDENCEGROUP,
854
+ {
855
+ beginKeywords: 'import',
856
+ end: /$/,
857
+ contains: [ ...COMMENTS ],
858
+ relevance: 0
859
+ },
860
+ ...KEYWORD_MODES,
861
+ ...BUILT_INS,
862
+ ...OPERATORS,
863
+ NUMBER,
864
+ STRING,
865
+ ...IDENTIFIERS,
866
+ ...ATTRIBUTES,
867
+ TYPE,
868
+ TUPLE
869
+ ]
870
+ };
781
871
  }
872
+
782
873
  module.exports = swift;