pygments.rb 2.4.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +8 -8
  3. data/.github/workflows/release.yml +5 -5
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +1 -1
  6. data/CHANGELOG.adoc +9 -1
  7. data/README.adoc +2 -2
  8. data/lib/pygments/version.rb +1 -1
  9. data/pygments.rb.gemspec +2 -2
  10. data/vendor/pygments-main/bin/pygmentize +1 -1
  11. data/vendor/pygments-main/pygments/__init__.py +2 -2
  12. data/vendor/pygments-main/pygments/__main__.py +1 -1
  13. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  14. data/vendor/pygments-main/pygments/console.py +5 -5
  15. data/vendor/pygments-main/pygments/filter.py +2 -3
  16. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  17. data/vendor/pygments-main/pygments/formatter.py +6 -1
  18. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  19. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  20. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  21. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  22. data/vendor/pygments-main/pygments/formatters/html.py +38 -40
  23. data/vendor/pygments-main/pygments/formatters/img.py +51 -11
  24. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  25. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  26. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  27. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  28. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  29. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  30. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  32. data/vendor/pygments-main/pygments/lexer.py +51 -33
  33. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  34. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  35. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  38. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  44. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  45. data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -11
  46. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  48. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  50. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  51. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  54. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  55. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  60. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  62. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  63. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  64. data/vendor/pygments-main/pygments/lexers/algebra.py +9 -13
  65. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  67. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  68. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  69. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  70. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  71. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  72. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  73. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  74. data/vendor/pygments-main/pygments/lexers/asm.py +28 -15
  75. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  76. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  77. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  78. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  79. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  80. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  81. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  82. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  83. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  84. data/vendor/pygments-main/pygments/lexers/bqn.py +109 -0
  85. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  86. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  87. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  88. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  89. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  92. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  93. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  94. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  95. data/vendor/pygments-main/pygments/lexers/configs.py +342 -108
  96. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  97. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  99. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  100. data/vendor/pygments-main/pygments/lexers/css.py +5 -5
  101. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  103. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  104. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  105. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  106. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  107. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  108. data/vendor/pygments-main/pygments/lexers/dotnet.py +19 -14
  109. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  110. data/vendor/pygments-main/pygments/lexers/dylan.py +8 -16
  111. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  112. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  113. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  114. data/vendor/pygments-main/pygments/lexers/elpi.py +28 -21
  115. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  116. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  117. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  118. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  119. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  120. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  121. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  122. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  123. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  124. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  125. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  126. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  127. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  129. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  130. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  131. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  132. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  133. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  134. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  135. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  136. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  137. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  138. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  139. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/haskell.py +27 -32
  141. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  142. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  143. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  144. data/vendor/pygments-main/pygments/lexers/html.py +34 -13
  145. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  146. data/vendor/pygments-main/pygments/lexers/igor.py +305 -290
  147. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  148. data/vendor/pygments-main/pygments/lexers/installers.py +7 -9
  149. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  150. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  151. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  152. data/vendor/pygments-main/pygments/lexers/javascript.py +18 -19
  153. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  154. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  155. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  156. data/vendor/pygments-main/pygments/lexers/jsx.py +75 -0
  157. data/vendor/pygments-main/pygments/lexers/julia.py +4 -5
  158. data/vendor/pygments-main/pygments/lexers/jvm.py +98 -116
  159. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  160. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  161. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  162. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  163. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  164. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  165. data/vendor/pygments-main/pygments/lexers/macaulay2.py +53 -4
  166. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  167. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  168. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  169. data/vendor/pygments-main/pygments/lexers/matlab.py +10 -12
  170. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  171. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  172. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  173. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  174. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  175. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  176. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  177. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  178. data/vendor/pygments-main/pygments/lexers/mojo.py +704 -0
  179. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  180. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  181. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  182. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  183. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  184. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  185. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  186. data/vendor/pygments-main/pygments/lexers/objective.py +14 -6
  187. data/vendor/pygments-main/pygments/lexers/ooc.py +2 -3
  188. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  189. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  190. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  191. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  192. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  193. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  194. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  195. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  196. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  197. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  198. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  199. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  200. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  201. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  202. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  203. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  204. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  205. data/vendor/pygments-main/pygments/lexers/python.py +24 -24
  206. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  207. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  208. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  209. data/vendor/pygments-main/pygments/lexers/r.py +8 -6
  210. data/vendor/pygments-main/pygments/lexers/rdf.py +19 -13
  211. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  212. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  213. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  214. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  215. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  216. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  217. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  218. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  219. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  220. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  221. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  222. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  223. data/vendor/pygments-main/pygments/lexers/scripting.py +354 -42
  224. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/shell.py +107 -129
  226. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  227. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  228. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  229. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  230. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  231. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  232. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  233. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  234. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  235. data/vendor/pygments-main/pygments/lexers/special.py +8 -3
  236. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  237. data/vendor/pygments-main/pygments/lexers/sql.py +24 -18
  238. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  239. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  240. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  241. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  242. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  243. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  244. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  245. data/vendor/pygments-main/pygments/lexers/templates.py +131 -72
  246. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  247. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  248. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  249. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  250. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  251. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  252. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  253. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  254. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  255. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  256. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  257. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  258. data/vendor/pygments-main/pygments/lexers/typst.py +104 -0
  259. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  260. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  261. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  262. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  263. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  264. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  265. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  266. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  267. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  268. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  269. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  270. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  271. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  272. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  273. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  274. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  275. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  276. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  277. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  278. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  279. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  280. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  281. data/vendor/pygments-main/pygments/modeline.py +4 -4
  282. data/vendor/pygments-main/pygments/plugin.py +3 -19
  283. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  284. data/vendor/pygments-main/pygments/scanner.py +1 -1
  285. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  286. data/vendor/pygments-main/pygments/style.py +8 -2
  287. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  288. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  289. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  290. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  291. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  292. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  293. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  294. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  295. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  296. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  297. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  298. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  299. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  300. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  301. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  302. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  303. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  304. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  305. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  306. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  307. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  308. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  309. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  310. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  311. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  312. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  313. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  314. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  315. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  316. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  317. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  318. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  319. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  320. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  321. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  322. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  323. data/vendor/pygments-main/pygments/styles/rrt.py +8 -2
  324. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  325. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  326. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  327. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  328. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  329. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  330. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  331. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  332. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  333. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  334. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  335. data/vendor/pygments-main/pygments/token.py +2 -1
  336. data/vendor/pygments-main/pygments/unistring.py +5 -5
  337. data/vendor/pygments-main/pygments/util.py +13 -19
  338. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/METADATA +14 -13
  339. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +663 -0
  340. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/WHEEL +1 -2
  341. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/AUTHORS +13 -0
  342. metadata +39 -15
  343. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  344. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  345. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/INSTALLER +0 -0
  346. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/REQUESTED +0 -0
  347. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/entry_points.txt +0 -0
  348. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/LICENSE +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for various template engines' markup.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -62,6 +62,7 @@ class ErbLexer(Lexer):
62
62
  url = 'https://github.com/ruby/erb'
63
63
  aliases = ['erb']
64
64
  mimetypes = ['application/x-ruby-templating']
65
+ version_added = ''
65
66
 
66
67
  _block_re = re.compile(r'(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)', re.M)
67
68
 
@@ -156,6 +157,7 @@ class SmartyLexer(RegexLexer):
156
157
  aliases = ['smarty']
157
158
  filenames = ['*.tpl']
158
159
  mimetypes = ['application/x-smarty']
160
+ version_added = ''
159
161
 
160
162
  flags = re.MULTILINE | re.DOTALL
161
163
 
@@ -212,6 +214,7 @@ class VelocityLexer(RegexLexer):
212
214
  url = 'https://velocity.apache.org/'
213
215
  aliases = ['velocity']
214
216
  filenames = ['*.vm', '*.fhtml']
217
+ version_added = ''
215
218
 
216
219
  flags = re.MULTILINE | re.DOTALL
217
220
 
@@ -292,8 +295,10 @@ class VelocityHtmlLexer(DelegatingLexer):
292
295
 
293
296
  name = 'HTML+Velocity'
294
297
  aliases = ['html+velocity']
298
+ version_added = ''
295
299
  alias_filenames = ['*.html', '*.fhtml']
296
300
  mimetypes = ['text/html+velocity']
301
+ url = 'https://velocity.apache.org/'
297
302
 
298
303
  def __init__(self, **options):
299
304
  super().__init__(HtmlLexer, VelocityLexer, **options)
@@ -308,8 +313,10 @@ class VelocityXmlLexer(DelegatingLexer):
308
313
 
309
314
  name = 'XML+Velocity'
310
315
  aliases = ['xml+velocity']
316
+ version_added = ''
311
317
  alias_filenames = ['*.xml', '*.vm']
312
318
  mimetypes = ['application/xml+velocity']
319
+ url = 'https://velocity.apache.org/'
313
320
 
314
321
  def __init__(self, **options):
315
322
  super().__init__(XmlLexer, VelocityLexer, **options)
@@ -323,8 +330,8 @@ class VelocityXmlLexer(DelegatingLexer):
323
330
 
324
331
  class DjangoLexer(RegexLexer):
325
332
  """
326
- Generic `django <http://www.djangoproject.com/documentation/templates/>`_
327
- and `jinja <https://jinja.pocoo.org/jinja/>`_ template lexer.
333
+ Generic `Django <https://www.djangoproject.com/documentation/templates/>`_
334
+ and `Jinja <https://jinja.palletsprojects.com>`_ template lexer.
328
335
 
329
336
  It just highlights django/jinja code between the preprocessor directives,
330
337
  other data is left untouched by the lexer.
@@ -333,6 +340,8 @@ class DjangoLexer(RegexLexer):
333
340
  name = 'Django/Jinja'
334
341
  aliases = ['django', 'jinja']
335
342
  mimetypes = ['application/x-django-templating', 'application/x-jinja']
343
+ url = 'https://www.djangoproject.com/documentation/templates'
344
+ version_added = ''
336
345
 
337
346
  flags = re.M | re.S
338
347
 
@@ -408,8 +417,6 @@ class MyghtyLexer(RegexLexer):
408
417
  """
409
418
  Generic myghty templates lexer. Code that isn't Myghty
410
419
  markup is yielded as `Token.Other`.
411
-
412
- .. versionadded:: 0.6
413
420
  """
414
421
 
415
422
  name = 'Myghty'
@@ -417,6 +424,7 @@ class MyghtyLexer(RegexLexer):
417
424
  aliases = ['myghty']
418
425
  filenames = ['*.myt', 'autodelegate']
419
426
  mimetypes = ['application/x-myghty']
427
+ version_added = '0.6'
420
428
 
421
429
  tokens = {
422
430
  'root': [
@@ -455,13 +463,13 @@ class MyghtyHtmlLexer(DelegatingLexer):
455
463
  """
456
464
  Subclass of the `MyghtyLexer` that highlights unlexed data
457
465
  with the `HtmlLexer`.
458
-
459
- .. versionadded:: 0.6
460
466
  """
461
467
 
462
468
  name = 'HTML+Myghty'
463
469
  aliases = ['html+myghty']
464
470
  mimetypes = ['text/html+myghty']
471
+ url = 'http://www.myghty.org/'
472
+ version_added = '0.6'
465
473
 
466
474
  def __init__(self, **options):
467
475
  super().__init__(HtmlLexer, MyghtyLexer, **options)
@@ -471,13 +479,13 @@ class MyghtyXmlLexer(DelegatingLexer):
471
479
  """
472
480
  Subclass of the `MyghtyLexer` that highlights unlexed data
473
481
  with the `XmlLexer`.
474
-
475
- .. versionadded:: 0.6
476
482
  """
477
483
 
478
484
  name = 'XML+Myghty'
479
485
  aliases = ['xml+myghty']
480
486
  mimetypes = ['application/xml+myghty']
487
+ url = 'http://www.myghty.org/'
488
+ version_added = '0.6'
481
489
 
482
490
  def __init__(self, **options):
483
491
  super().__init__(XmlLexer, MyghtyLexer, **options)
@@ -487,8 +495,6 @@ class MyghtyJavascriptLexer(DelegatingLexer):
487
495
  """
488
496
  Subclass of the `MyghtyLexer` that highlights unlexed data
489
497
  with the `JavascriptLexer`.
490
-
491
- .. versionadded:: 0.6
492
498
  """
493
499
 
494
500
  name = 'JavaScript+Myghty'
@@ -496,6 +502,8 @@ class MyghtyJavascriptLexer(DelegatingLexer):
496
502
  mimetypes = ['application/x-javascript+myghty',
497
503
  'text/x-javascript+myghty',
498
504
  'text/javascript+mygthy']
505
+ url = 'http://www.myghty.org/'
506
+ version_added = '0.6'
499
507
 
500
508
  def __init__(self, **options):
501
509
  super().__init__(JavascriptLexer, MyghtyLexer, **options)
@@ -505,13 +513,13 @@ class MyghtyCssLexer(DelegatingLexer):
505
513
  """
506
514
  Subclass of the `MyghtyLexer` that highlights unlexed data
507
515
  with the `CssLexer`.
508
-
509
- .. versionadded:: 0.6
510
516
  """
511
517
 
512
518
  name = 'CSS+Myghty'
513
519
  aliases = ['css+myghty']
514
520
  mimetypes = ['text/css+myghty']
521
+ url = 'http://www.myghty.org/'
522
+ version_added = '0.6'
515
523
 
516
524
  def __init__(self, **options):
517
525
  super().__init__(CssLexer, MyghtyLexer, **options)
@@ -521,14 +529,13 @@ class MasonLexer(RegexLexer):
521
529
  """
522
530
  Generic mason templates lexer. Stolen from Myghty lexer. Code that isn't
523
531
  Mason markup is HTML.
524
-
525
- .. versionadded:: 1.4
526
532
  """
527
533
  name = 'Mason'
528
534
  url = 'http://www.masonhq.com/'
529
535
  aliases = ['mason']
530
536
  filenames = ['*.m', '*.mhtml', '*.mc', '*.mi', 'autohandler', 'dhandler']
531
537
  mimetypes = ['application/x-mason']
538
+ version_added = '1.4'
532
539
 
533
540
  tokens = {
534
541
  'root': [
@@ -576,8 +583,6 @@ class MakoLexer(RegexLexer):
576
583
  """
577
584
  Generic mako templates lexer. Code that isn't Mako
578
585
  markup is yielded as `Token.Other`.
579
-
580
- .. versionadded:: 0.7
581
586
  """
582
587
 
583
588
  name = 'Mako'
@@ -585,6 +590,7 @@ class MakoLexer(RegexLexer):
585
590
  aliases = ['mako']
586
591
  filenames = ['*.mao']
587
592
  mimetypes = ['application/x-mako']
593
+ version_added = '0.7'
588
594
 
589
595
  tokens = {
590
596
  'root': [
@@ -643,13 +649,13 @@ class MakoHtmlLexer(DelegatingLexer):
643
649
  """
644
650
  Subclass of the `MakoLexer` that highlights unlexed data
645
651
  with the `HtmlLexer`.
646
-
647
- .. versionadded:: 0.7
648
652
  """
649
653
 
650
654
  name = 'HTML+Mako'
651
655
  aliases = ['html+mako']
652
656
  mimetypes = ['text/html+mako']
657
+ url = 'http://www.makotemplates.org/'
658
+ version_added = '0.7'
653
659
 
654
660
  def __init__(self, **options):
655
661
  super().__init__(HtmlLexer, MakoLexer, **options)
@@ -659,13 +665,13 @@ class MakoXmlLexer(DelegatingLexer):
659
665
  """
660
666
  Subclass of the `MakoLexer` that highlights unlexed data
661
667
  with the `XmlLexer`.
662
-
663
- .. versionadded:: 0.7
664
668
  """
665
669
 
666
670
  name = 'XML+Mako'
667
671
  aliases = ['xml+mako']
668
672
  mimetypes = ['application/xml+mako']
673
+ url = 'http://www.makotemplates.org/'
674
+ version_added = '0.7'
669
675
 
670
676
  def __init__(self, **options):
671
677
  super().__init__(XmlLexer, MakoLexer, **options)
@@ -675,8 +681,6 @@ class MakoJavascriptLexer(DelegatingLexer):
675
681
  """
676
682
  Subclass of the `MakoLexer` that highlights unlexed data
677
683
  with the `JavascriptLexer`.
678
-
679
- .. versionadded:: 0.7
680
684
  """
681
685
 
682
686
  name = 'JavaScript+Mako'
@@ -684,6 +688,8 @@ class MakoJavascriptLexer(DelegatingLexer):
684
688
  mimetypes = ['application/x-javascript+mako',
685
689
  'text/x-javascript+mako',
686
690
  'text/javascript+mako']
691
+ url = 'http://www.makotemplates.org/'
692
+ version_added = '0.7'
687
693
 
688
694
  def __init__(self, **options):
689
695
  super().__init__(JavascriptLexer, MakoLexer, **options)
@@ -693,13 +699,13 @@ class MakoCssLexer(DelegatingLexer):
693
699
  """
694
700
  Subclass of the `MakoLexer` that highlights unlexed data
695
701
  with the `CssLexer`.
696
-
697
- .. versionadded:: 0.7
698
702
  """
699
703
 
700
704
  name = 'CSS+Mako'
701
705
  aliases = ['css+mako']
702
706
  mimetypes = ['text/css+mako']
707
+ url = 'http://www.makotemplates.org/'
708
+ version_added = '0.7'
703
709
 
704
710
  def __init__(self, **options):
705
711
  super().__init__(CssLexer, MakoLexer, **options)
@@ -734,6 +740,7 @@ class CheetahLexer(RegexLexer):
734
740
  aliases = ['cheetah', 'spitfire']
735
741
  filenames = ['*.tmpl', '*.spt']
736
742
  mimetypes = ['application/x-cheetah', 'application/x-spitfire']
743
+ version_added = ''
737
744
 
738
745
  tokens = {
739
746
  'root': [
@@ -773,6 +780,8 @@ class CheetahHtmlLexer(DelegatingLexer):
773
780
  name = 'HTML+Cheetah'
774
781
  aliases = ['html+cheetah', 'html+spitfire', 'htmlcheetah']
775
782
  mimetypes = ['text/html+cheetah', 'text/html+spitfire']
783
+ url = 'http://www.cheetahtemplate.org/'
784
+ version_added = ''
776
785
 
777
786
  def __init__(self, **options):
778
787
  super().__init__(HtmlLexer, CheetahLexer, **options)
@@ -787,6 +796,8 @@ class CheetahXmlLexer(DelegatingLexer):
787
796
  name = 'XML+Cheetah'
788
797
  aliases = ['xml+cheetah', 'xml+spitfire']
789
798
  mimetypes = ['application/xml+cheetah', 'application/xml+spitfire']
799
+ url = 'http://www.cheetahtemplate.org/'
800
+ version_added = ''
790
801
 
791
802
  def __init__(self, **options):
792
803
  super().__init__(XmlLexer, CheetahLexer, **options)
@@ -807,6 +818,8 @@ class CheetahJavascriptLexer(DelegatingLexer):
807
818
  'application/x-javascript+spitfire',
808
819
  'text/x-javascript+spitfire',
809
820
  'text/javascript+spitfire']
821
+ url = 'http://www.cheetahtemplate.org/'
822
+ version_added = ''
810
823
 
811
824
  def __init__(self, **options):
812
825
  super().__init__(JavascriptLexer, CheetahLexer, **options)
@@ -818,9 +831,10 @@ class GenshiTextLexer(RegexLexer):
818
831
  """
819
832
 
820
833
  name = 'Genshi Text'
821
- url = 'http://genshi.edgewall.org/'
834
+ url = 'https://genshi.edgewall.org/'
822
835
  aliases = ['genshitext']
823
836
  mimetypes = ['application/x-genshi-text', 'text/x-genshi']
837
+ version_added = ''
824
838
 
825
839
  tokens = {
826
840
  'root': [
@@ -913,14 +927,16 @@ class GenshiMarkupLexer(RegexLexer):
913
927
 
914
928
  class HtmlGenshiLexer(DelegatingLexer):
915
929
  """
916
- A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ and
930
+ A lexer that highlights `genshi <https://genshi.edgewall.org/>`_ and
917
931
  `kid <http://kid-templating.org/>`_ kid HTML templates.
918
932
  """
919
933
 
920
934
  name = 'HTML+Genshi'
921
935
  aliases = ['html+genshi', 'html+kid']
936
+ version_added = ''
922
937
  alias_filenames = ['*.html', '*.htm', '*.xhtml']
923
938
  mimetypes = ['text/html+genshi']
939
+ url = 'https://genshi.edgewall.org/'
924
940
 
925
941
  def __init__(self, **options):
926
942
  super().__init__(HtmlLexer, GenshiMarkupLexer, **options)
@@ -936,15 +952,17 @@ class HtmlGenshiLexer(DelegatingLexer):
936
952
 
937
953
  class GenshiLexer(DelegatingLexer):
938
954
  """
939
- A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ and
955
+ A lexer that highlights `genshi <https://genshi.edgewall.org/>`_ and
940
956
  `kid <http://kid-templating.org/>`_ kid XML templates.
941
957
  """
942
958
 
943
959
  name = 'Genshi'
944
960
  aliases = ['genshi', 'kid', 'xml+genshi', 'xml+kid']
945
961
  filenames = ['*.kid']
962
+ version_added = ''
946
963
  alias_filenames = ['*.xml']
947
964
  mimetypes = ['application/x-genshi', 'application/x-kid']
965
+ url = 'https://genshi.edgewall.org/'
948
966
 
949
967
  def __init__(self, **options):
950
968
  super().__init__(XmlLexer, GenshiMarkupLexer, **options)
@@ -966,10 +984,12 @@ class JavascriptGenshiLexer(DelegatingLexer):
966
984
  name = 'JavaScript+Genshi Text'
967
985
  aliases = ['js+genshitext', 'js+genshi', 'javascript+genshitext',
968
986
  'javascript+genshi']
987
+ version_added = ''
969
988
  alias_filenames = ['*.js']
970
989
  mimetypes = ['application/x-javascript+genshi',
971
990
  'text/x-javascript+genshi',
972
991
  'text/javascript+genshi']
992
+ url = 'https://genshi.edgewall.org'
973
993
 
974
994
  def __init__(self, **options):
975
995
  super().__init__(JavascriptLexer, GenshiTextLexer, **options)
@@ -985,8 +1005,10 @@ class CssGenshiLexer(DelegatingLexer):
985
1005
 
986
1006
  name = 'CSS+Genshi Text'
987
1007
  aliases = ['css+genshitext', 'css+genshi']
1008
+ version_added = ''
988
1009
  alias_filenames = ['*.css']
989
1010
  mimetypes = ['text/css+genshi']
1011
+ url = 'https://genshi.edgewall.org'
990
1012
 
991
1013
  def __init__(self, **options):
992
1014
  super().__init__(CssLexer, GenshiTextLexer, **options)
@@ -1006,8 +1028,11 @@ class RhtmlLexer(DelegatingLexer):
1006
1028
  name = 'RHTML'
1007
1029
  aliases = ['rhtml', 'html+erb', 'html+ruby']
1008
1030
  filenames = ['*.rhtml']
1031
+ version_added = ''
1009
1032
  alias_filenames = ['*.html', '*.htm', '*.xhtml']
1010
1033
  mimetypes = ['text/html+ruby']
1034
+ url = 'https://github.com/ruby/erb'
1035
+
1011
1036
 
1012
1037
  def __init__(self, **options):
1013
1038
  super().__init__(HtmlLexer, ErbLexer, **options)
@@ -1028,8 +1053,10 @@ class XmlErbLexer(DelegatingLexer):
1028
1053
 
1029
1054
  name = 'XML+Ruby'
1030
1055
  aliases = ['xml+ruby', 'xml+erb']
1056
+ version_added = ''
1031
1057
  alias_filenames = ['*.xml']
1032
1058
  mimetypes = ['application/xml+ruby']
1059
+ url = 'https://github.com/ruby/erb'
1033
1060
 
1034
1061
  def __init__(self, **options):
1035
1062
  super().__init__(XmlLexer, ErbLexer, **options)
@@ -1048,8 +1075,10 @@ class CssErbLexer(DelegatingLexer):
1048
1075
 
1049
1076
  name = 'CSS+Ruby'
1050
1077
  aliases = ['css+ruby', 'css+erb']
1078
+ version_added = ''
1051
1079
  alias_filenames = ['*.css']
1052
1080
  mimetypes = ['text/css+ruby']
1081
+ url = 'https://github.com/ruby/erb'
1053
1082
 
1054
1083
  def __init__(self, **options):
1055
1084
  super().__init__(CssLexer, ErbLexer, **options)
@@ -1066,10 +1095,12 @@ class JavascriptErbLexer(DelegatingLexer):
1066
1095
 
1067
1096
  name = 'JavaScript+Ruby'
1068
1097
  aliases = ['javascript+ruby', 'js+ruby', 'javascript+erb', 'js+erb']
1098
+ version_added = ''
1069
1099
  alias_filenames = ['*.js']
1070
1100
  mimetypes = ['application/x-javascript+ruby',
1071
1101
  'text/x-javascript+ruby',
1072
1102
  'text/javascript+ruby']
1103
+ url = 'https://github.com/ruby/erb'
1073
1104
 
1074
1105
  def __init__(self, **options):
1075
1106
  super().__init__(JavascriptLexer, ErbLexer, **options)
@@ -1088,11 +1119,14 @@ class HtmlPhpLexer(DelegatingLexer):
1088
1119
  name = 'HTML+PHP'
1089
1120
  aliases = ['html+php']
1090
1121
  filenames = ['*.phtml']
1122
+ version_added = ''
1091
1123
  alias_filenames = ['*.php', '*.html', '*.htm', '*.xhtml',
1092
1124
  '*.php[345]']
1093
1125
  mimetypes = ['application/x-php',
1094
1126
  'application/x-httpd-php', 'application/x-httpd-php3',
1095
1127
  'application/x-httpd-php4', 'application/x-httpd-php5']
1128
+ url = 'https://www.php.net'
1129
+
1096
1130
 
1097
1131
  def __init__(self, **options):
1098
1132
  super().__init__(HtmlLexer, PhpLexer, **options)
@@ -1111,8 +1145,10 @@ class XmlPhpLexer(DelegatingLexer):
1111
1145
 
1112
1146
  name = 'XML+PHP'
1113
1147
  aliases = ['xml+php']
1148
+ version_added = ''
1114
1149
  alias_filenames = ['*.xml', '*.php', '*.php[345]']
1115
1150
  mimetypes = ['application/xml+php']
1151
+ url = 'https://www.php.net'
1116
1152
 
1117
1153
  def __init__(self, **options):
1118
1154
  super().__init__(XmlLexer, PhpLexer, **options)
@@ -1131,8 +1167,10 @@ class CssPhpLexer(DelegatingLexer):
1131
1167
 
1132
1168
  name = 'CSS+PHP'
1133
1169
  aliases = ['css+php']
1170
+ version_added = ''
1134
1171
  alias_filenames = ['*.css']
1135
1172
  mimetypes = ['text/css+php']
1173
+ url = 'https://www.php.net'
1136
1174
 
1137
1175
  def __init__(self, **options):
1138
1176
  super().__init__(CssLexer, PhpLexer, **options)
@@ -1149,10 +1187,12 @@ class JavascriptPhpLexer(DelegatingLexer):
1149
1187
 
1150
1188
  name = 'JavaScript+PHP'
1151
1189
  aliases = ['javascript+php', 'js+php']
1190
+ version_added = ''
1152
1191
  alias_filenames = ['*.js']
1153
1192
  mimetypes = ['application/x-javascript+php',
1154
1193
  'text/x-javascript+php',
1155
1194
  'text/javascript+php']
1195
+ url = 'https://www.php.net'
1156
1196
 
1157
1197
  def __init__(self, **options):
1158
1198
  super().__init__(JavascriptLexer, PhpLexer, **options)
@@ -1171,8 +1211,10 @@ class HtmlSmartyLexer(DelegatingLexer):
1171
1211
 
1172
1212
  name = 'HTML+Smarty'
1173
1213
  aliases = ['html+smarty']
1214
+ version_added = ''
1174
1215
  alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.tpl']
1175
1216
  mimetypes = ['text/html+smarty']
1217
+ url = 'https://www.smarty.net/'
1176
1218
 
1177
1219
  def __init__(self, **options):
1178
1220
  super().__init__(HtmlLexer, SmartyLexer, **options)
@@ -1192,8 +1234,10 @@ class XmlSmartyLexer(DelegatingLexer):
1192
1234
 
1193
1235
  name = 'XML+Smarty'
1194
1236
  aliases = ['xml+smarty']
1237
+ version_added = ''
1195
1238
  alias_filenames = ['*.xml', '*.tpl']
1196
1239
  mimetypes = ['application/xml+smarty']
1240
+ url = 'https://www.smarty.net/'
1197
1241
 
1198
1242
  def __init__(self, **options):
1199
1243
  super().__init__(XmlLexer, SmartyLexer, **options)
@@ -1213,8 +1257,10 @@ class CssSmartyLexer(DelegatingLexer):
1213
1257
 
1214
1258
  name = 'CSS+Smarty'
1215
1259
  aliases = ['css+smarty']
1260
+ version_added = ''
1216
1261
  alias_filenames = ['*.css', '*.tpl']
1217
1262
  mimetypes = ['text/css+smarty']
1263
+ url = 'https://www.smarty.net/'
1218
1264
 
1219
1265
  def __init__(self, **options):
1220
1266
  super().__init__(CssLexer, SmartyLexer, **options)
@@ -1231,10 +1277,12 @@ class JavascriptSmartyLexer(DelegatingLexer):
1231
1277
 
1232
1278
  name = 'JavaScript+Smarty'
1233
1279
  aliases = ['javascript+smarty', 'js+smarty']
1280
+ version_added = ''
1234
1281
  alias_filenames = ['*.js', '*.tpl']
1235
1282
  mimetypes = ['application/x-javascript+smarty',
1236
1283
  'text/x-javascript+smarty',
1237
1284
  'text/javascript+smarty']
1285
+ url = 'https://www.smarty.net/'
1238
1286
 
1239
1287
  def __init__(self, **options):
1240
1288
  super().__init__(JavascriptLexer, SmartyLexer, **options)
@@ -1254,8 +1302,10 @@ class HtmlDjangoLexer(DelegatingLexer):
1254
1302
  name = 'HTML+Django/Jinja'
1255
1303
  aliases = ['html+django', 'html+jinja', 'htmldjango']
1256
1304
  filenames = ['*.html.j2', '*.htm.j2', '*.xhtml.j2', '*.html.jinja2', '*.htm.jinja2', '*.xhtml.jinja2']
1305
+ version_added = ''
1257
1306
  alias_filenames = ['*.html', '*.htm', '*.xhtml']
1258
1307
  mimetypes = ['text/html+django', 'text/html+jinja']
1308
+ url = 'https://www.djangoproject.com/documentation/templates'
1259
1309
 
1260
1310
  def __init__(self, **options):
1261
1311
  super().__init__(HtmlLexer, DjangoLexer, **options)
@@ -1276,8 +1326,10 @@ class XmlDjangoLexer(DelegatingLexer):
1276
1326
  name = 'XML+Django/Jinja'
1277
1327
  aliases = ['xml+django', 'xml+jinja']
1278
1328
  filenames = ['*.xml.j2', '*.xml.jinja2']
1329
+ version_added = ''
1279
1330
  alias_filenames = ['*.xml']
1280
1331
  mimetypes = ['application/xml+django', 'application/xml+jinja']
1332
+ url = 'https://www.djangoproject.com/documentation/templates'
1281
1333
 
1282
1334
  def __init__(self, **options):
1283
1335
  super().__init__(XmlLexer, DjangoLexer, **options)
@@ -1298,8 +1350,10 @@ class CssDjangoLexer(DelegatingLexer):
1298
1350
  name = 'CSS+Django/Jinja'
1299
1351
  aliases = ['css+django', 'css+jinja']
1300
1352
  filenames = ['*.css.j2', '*.css.jinja2']
1353
+ version_added = ''
1301
1354
  alias_filenames = ['*.css']
1302
1355
  mimetypes = ['text/css+django', 'text/css+jinja']
1356
+ url = 'https://www.djangoproject.com/documentation/templates'
1303
1357
 
1304
1358
  def __init__(self, **options):
1305
1359
  super().__init__(CssLexer, DjangoLexer, **options)
@@ -1318,6 +1372,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
1318
1372
  aliases = ['javascript+django', 'js+django',
1319
1373
  'javascript+jinja', 'js+jinja']
1320
1374
  filenames = ['*.js.j2', '*.js.jinja2']
1375
+ version_added = ''
1321
1376
  alias_filenames = ['*.js']
1322
1377
  mimetypes = ['application/x-javascript+django',
1323
1378
  'application/x-javascript+jinja',
@@ -1325,6 +1380,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
1325
1380
  'text/x-javascript+jinja',
1326
1381
  'text/javascript+django',
1327
1382
  'text/javascript+jinja']
1383
+ url = 'https://www.djangoproject.com/documentation/templates'
1328
1384
 
1329
1385
  def __init__(self, **options):
1330
1386
  super().__init__(JavascriptLexer, DjangoLexer, **options)
@@ -1361,13 +1417,13 @@ class JspRootLexer(RegexLexer):
1361
1417
  class JspLexer(DelegatingLexer):
1362
1418
  """
1363
1419
  Lexer for Java Server Pages.
1364
-
1365
- .. versionadded:: 0.7
1366
1420
  """
1367
1421
  name = 'Java Server Page'
1368
1422
  aliases = ['jsp']
1369
1423
  filenames = ['*.jsp']
1370
1424
  mimetypes = ['application/x-jsp']
1425
+ url = 'https://projects.eclipse.org/projects/ee4j.jsp'
1426
+ version_added = '0.7'
1371
1427
 
1372
1428
  def __init__(self, **options):
1373
1429
  super().__init__(XmlLexer, JspRootLexer, **options)
@@ -1384,13 +1440,13 @@ class JspLexer(DelegatingLexer):
1384
1440
  class EvoqueLexer(RegexLexer):
1385
1441
  """
1386
1442
  For files using the Evoque templating system.
1387
-
1388
- .. versionadded:: 1.1
1389
1443
  """
1390
1444
  name = 'Evoque'
1391
1445
  aliases = ['evoque']
1392
1446
  filenames = ['*.evoque']
1393
1447
  mimetypes = ['application/x-evoque']
1448
+ url = 'https://gizmojo.org/templating'
1449
+ version_added = '1.1'
1394
1450
 
1395
1451
  flags = re.DOTALL
1396
1452
 
@@ -1442,13 +1498,13 @@ class EvoqueHtmlLexer(DelegatingLexer):
1442
1498
  """
1443
1499
  Subclass of the `EvoqueLexer` that highlights unlexed data with the
1444
1500
  `HtmlLexer`.
1445
-
1446
- .. versionadded:: 1.1
1447
1501
  """
1448
1502
  name = 'HTML+Evoque'
1449
1503
  aliases = ['html+evoque']
1450
1504
  filenames = ['*.html']
1451
1505
  mimetypes = ['text/html+evoque']
1506
+ url = 'https://gizmojo.org/templating'
1507
+ version_added = '1.1'
1452
1508
 
1453
1509
  def __init__(self, **options):
1454
1510
  super().__init__(HtmlLexer, EvoqueLexer, **options)
@@ -1461,13 +1517,13 @@ class EvoqueXmlLexer(DelegatingLexer):
1461
1517
  """
1462
1518
  Subclass of the `EvoqueLexer` that highlights unlexed data with the
1463
1519
  `XmlLexer`.
1464
-
1465
- .. versionadded:: 1.1
1466
1520
  """
1467
1521
  name = 'XML+Evoque'
1468
1522
  aliases = ['xml+evoque']
1469
1523
  filenames = ['*.xml']
1470
1524
  mimetypes = ['application/xml+evoque']
1525
+ url = 'https://gizmojo.org/templating'
1526
+ version_added = '1.1'
1471
1527
 
1472
1528
  def __init__(self, **options):
1473
1529
  super().__init__(XmlLexer, EvoqueLexer, **options)
@@ -1484,6 +1540,9 @@ class ColdfusionLexer(RegexLexer):
1484
1540
  aliases = ['cfs']
1485
1541
  filenames = []
1486
1542
  mimetypes = []
1543
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1544
+ version_added = ''
1545
+
1487
1546
  flags = re.IGNORECASE
1488
1547
 
1489
1548
  tokens = {
@@ -1532,6 +1591,7 @@ class ColdfusionMarkupLexer(RegexLexer):
1532
1591
  aliases = ['cf']
1533
1592
  filenames = []
1534
1593
  mimetypes = []
1594
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1535
1595
 
1536
1596
  tokens = {
1537
1597
  'root': [
@@ -1578,6 +1638,8 @@ class ColdfusionHtmlLexer(DelegatingLexer):
1578
1638
  aliases = ['cfm']
1579
1639
  filenames = ['*.cfm', '*.cfml']
1580
1640
  mimetypes = ['application/x-coldfusion']
1641
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1642
+ version_added = ''
1581
1643
 
1582
1644
  def __init__(self, **options):
1583
1645
  super().__init__(HtmlLexer, ColdfusionMarkupLexer, **options)
@@ -1586,13 +1648,13 @@ class ColdfusionHtmlLexer(DelegatingLexer):
1586
1648
  class ColdfusionCFCLexer(DelegatingLexer):
1587
1649
  """
1588
1650
  Coldfusion markup/script components
1589
-
1590
- .. versionadded:: 2.0
1591
1651
  """
1592
1652
  name = 'Coldfusion CFC'
1593
1653
  aliases = ['cfc']
1594
1654
  filenames = ['*.cfc']
1595
1655
  mimetypes = []
1656
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1657
+ version_added = '2.0'
1596
1658
 
1597
1659
  def __init__(self, **options):
1598
1660
  super().__init__(ColdfusionHtmlLexer, ColdfusionLexer, **options)
@@ -1601,13 +1663,13 @@ class ColdfusionCFCLexer(DelegatingLexer):
1601
1663
  class SspLexer(DelegatingLexer):
1602
1664
  """
1603
1665
  Lexer for Scalate Server Pages.
1604
-
1605
- .. versionadded:: 1.4
1606
1666
  """
1607
1667
  name = 'Scalate Server Page'
1608
1668
  aliases = ['ssp']
1609
1669
  filenames = ['*.ssp']
1610
1670
  mimetypes = ['application/x-ssp']
1671
+ url = 'https://scalate.github.io/scalate/'
1672
+ version_added = '1.4'
1611
1673
 
1612
1674
  def __init__(self, **options):
1613
1675
  super().__init__(XmlLexer, JspRootLexer, **options)
@@ -1647,14 +1709,14 @@ class TeaTemplateRootLexer(RegexLexer):
1647
1709
 
1648
1710
  class TeaTemplateLexer(DelegatingLexer):
1649
1711
  """
1650
- Lexer for `Tea Templates <http://teatrove.org/>`_.
1651
-
1652
- .. versionadded:: 1.5
1712
+ Lexer for Tea Templates.
1653
1713
  """
1654
1714
  name = 'Tea'
1655
1715
  aliases = ['tea']
1656
1716
  filenames = ['*.tea']
1657
1717
  mimetypes = ['text/x-tea']
1718
+ url = 'https://github.com/teatrove/teatrove'
1719
+ version_added = '1.5'
1658
1720
 
1659
1721
  def __init__(self, **options):
1660
1722
  super().__init__(XmlLexer, TeaTemplateRootLexer, **options)
@@ -1674,17 +1736,17 @@ class LassoHtmlLexer(DelegatingLexer):
1674
1736
  `HtmlLexer`.
1675
1737
 
1676
1738
  Nested JavaScript and CSS is also highlighted.
1677
-
1678
- .. versionadded:: 1.6
1679
1739
  """
1680
1740
 
1681
1741
  name = 'HTML+Lasso'
1682
1742
  aliases = ['html+lasso']
1743
+ version_added = '1.6'
1683
1744
  alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.lasso', '*.lasso[89]',
1684
1745
  '*.incl', '*.inc', '*.las']
1685
1746
  mimetypes = ['text/html+lasso',
1686
1747
  'application/x-httpd-lasso',
1687
1748
  'application/x-httpd-lasso[89]']
1749
+ url = 'https://www.lassosoft.com'
1688
1750
 
1689
1751
  def __init__(self, **options):
1690
1752
  super().__init__(HtmlLexer, LassoLexer, **options)
@@ -1700,15 +1762,15 @@ class LassoXmlLexer(DelegatingLexer):
1700
1762
  """
1701
1763
  Subclass of the `LassoLexer` which highlights unhandled data with the
1702
1764
  `XmlLexer`.
1703
-
1704
- .. versionadded:: 1.6
1705
1765
  """
1706
1766
 
1707
1767
  name = 'XML+Lasso'
1708
1768
  aliases = ['xml+lasso']
1769
+ version_added = '1.6'
1709
1770
  alias_filenames = ['*.xml', '*.lasso', '*.lasso[89]',
1710
1771
  '*.incl', '*.inc', '*.las']
1711
1772
  mimetypes = ['application/xml+lasso']
1773
+ url = 'https://www.lassosoft.com'
1712
1774
 
1713
1775
  def __init__(self, **options):
1714
1776
  super().__init__(XmlLexer, LassoLexer, **options)
@@ -1724,14 +1786,14 @@ class LassoCssLexer(DelegatingLexer):
1724
1786
  """
1725
1787
  Subclass of the `LassoLexer` which highlights unhandled data with the
1726
1788
  `CssLexer`.
1727
-
1728
- .. versionadded:: 1.6
1729
1789
  """
1730
1790
 
1731
1791
  name = 'CSS+Lasso'
1732
1792
  aliases = ['css+lasso']
1793
+ version_added = '1.6'
1733
1794
  alias_filenames = ['*.css']
1734
1795
  mimetypes = ['text/css+lasso']
1796
+ url = 'https://www.lassosoft.com'
1735
1797
 
1736
1798
  def __init__(self, **options):
1737
1799
  options['requiredelimiters'] = True
@@ -1750,16 +1812,16 @@ class LassoJavascriptLexer(DelegatingLexer):
1750
1812
  """
1751
1813
  Subclass of the `LassoLexer` which highlights unhandled data with the
1752
1814
  `JavascriptLexer`.
1753
-
1754
- .. versionadded:: 1.6
1755
1815
  """
1756
1816
 
1757
1817
  name = 'JavaScript+Lasso'
1758
1818
  aliases = ['javascript+lasso', 'js+lasso']
1819
+ version_added = '1.6'
1759
1820
  alias_filenames = ['*.js']
1760
1821
  mimetypes = ['application/x-javascript+lasso',
1761
1822
  'text/x-javascript+lasso',
1762
1823
  'text/javascript+lasso']
1824
+ url = 'https://www.lassosoft.com'
1763
1825
 
1764
1826
  def __init__(self, **options):
1765
1827
  options['requiredelimiters'] = True
@@ -1776,13 +1838,12 @@ class HandlebarsLexer(RegexLexer):
1776
1838
 
1777
1839
  Highlights only the Handlebars template tags (stuff between `{{` and `}}`).
1778
1840
  Everything else is left for a delegating lexer.
1779
-
1780
- .. versionadded:: 2.0
1781
1841
  """
1782
1842
 
1783
1843
  name = "Handlebars"
1784
1844
  url = 'https://handlebarsjs.com/'
1785
1845
  aliases = ['handlebars']
1846
+ version_added = '2.0'
1786
1847
 
1787
1848
  tokens = {
1788
1849
  'root': [
@@ -1851,14 +1912,14 @@ class HandlebarsHtmlLexer(DelegatingLexer):
1851
1912
  """
1852
1913
  Subclass of the `HandlebarsLexer` that highlights unlexed data with the
1853
1914
  `HtmlLexer`.
1854
-
1855
- .. versionadded:: 2.0
1856
1915
  """
1857
1916
 
1858
1917
  name = "HTML+Handlebars"
1859
1918
  aliases = ["html+handlebars"]
1860
1919
  filenames = ['*.handlebars', '*.hbs']
1861
1920
  mimetypes = ['text/html+handlebars', 'text/x-handlebars-template']
1921
+ url = 'https://handlebarsjs.com/'
1922
+ version_added = '2.0'
1862
1923
 
1863
1924
  def __init__(self, **options):
1864
1925
  super().__init__(HtmlLexer, HandlebarsLexer, **options)
@@ -1870,14 +1931,14 @@ class YamlJinjaLexer(DelegatingLexer):
1870
1931
  `YamlLexer`.
1871
1932
 
1872
1933
  Commonly used in Saltstack salt states.
1873
-
1874
- .. versionadded:: 2.0
1875
1934
  """
1876
1935
 
1877
1936
  name = 'YAML+Jinja'
1878
1937
  aliases = ['yaml+jinja', 'salt', 'sls']
1879
1938
  filenames = ['*.sls', '*.yaml.j2', '*.yml.j2', '*.yaml.jinja2', '*.yml.jinja2']
1880
1939
  mimetypes = ['text/x-yaml+jinja', 'text/x-sls']
1940
+ url = 'https://jinja.palletsprojects.com'
1941
+ version_added = '2.0'
1881
1942
 
1882
1943
  def __init__(self, **options):
1883
1944
  super().__init__(YamlLexer, DjangoLexer, **options)
@@ -1886,13 +1947,12 @@ class YamlJinjaLexer(DelegatingLexer):
1886
1947
  class LiquidLexer(RegexLexer):
1887
1948
  """
1888
1949
  Lexer for Liquid templates.
1889
-
1890
- .. versionadded:: 2.0
1891
1950
  """
1892
1951
  name = 'liquid'
1893
1952
  url = 'https://www.rubydoc.info/github/Shopify/liquid'
1894
1953
  aliases = ['liquid']
1895
1954
  filenames = ['*.liquid']
1955
+ version_added = '2.0'
1896
1956
 
1897
1957
  tokens = {
1898
1958
  'root': [
@@ -2095,13 +2155,13 @@ class TwigLexer(RegexLexer):
2095
2155
 
2096
2156
  It just highlights Twig code between the preprocessor directives,
2097
2157
  other data is left untouched by the lexer.
2098
-
2099
- .. versionadded:: 2.0
2100
2158
  """
2101
2159
 
2102
2160
  name = 'Twig'
2103
2161
  aliases = ['twig']
2104
2162
  mimetypes = ['application/x-twig']
2163
+ url = 'https://twig.symfony.com'
2164
+ version_added = '2.0'
2105
2165
 
2106
2166
  flags = re.M | re.S
2107
2167
 
@@ -2130,7 +2190,7 @@ class TwigLexer(RegexLexer):
2130
2190
  Other, Comment.Preproc, Text, Keyword, Text,
2131
2191
  Comment.Preproc)),
2132
2192
  # filter blocks
2133
- (r'(\{%%)(-?\s*)(filter)(\s+)(%s)' % _ident_inner,
2193
+ (rf'(\{{%)(-?\s*)(filter)(\s+)({_ident_inner})',
2134
2194
  bygroups(Comment.Preproc, Text, Keyword, Text, Name.Function),
2135
2195
  'tag'),
2136
2196
  (r'(\{%)(-?\s*)([a-zA-Z_]\w*)',
@@ -2138,9 +2198,9 @@ class TwigLexer(RegexLexer):
2138
2198
  (r'\{', Other),
2139
2199
  ],
2140
2200
  'varnames': [
2141
- (r'(\|)(\s*)(%s)' % _ident_inner,
2201
+ (rf'(\|)(\s*)({_ident_inner})',
2142
2202
  bygroups(Operator, Text, Name.Function)),
2143
- (r'(is)(\s+)(not)?(\s*)(%s)' % _ident_inner,
2203
+ (rf'(is)(\s+)(not)?(\s*)({_ident_inner})',
2144
2204
  bygroups(Keyword, Text, Keyword, Text, Name.Function)),
2145
2205
  (r'(?i)(true|false|none|null)\b', Keyword.Pseudo),
2146
2206
  (r'(in|not|and|b-and|or|b-or|b-xor|is'
@@ -2176,14 +2236,14 @@ class TwigHtmlLexer(DelegatingLexer):
2176
2236
  """
2177
2237
  Subclass of the `TwigLexer` that highlights unlexed data with the
2178
2238
  `HtmlLexer`.
2179
-
2180
- .. versionadded:: 2.0
2181
2239
  """
2182
2240
 
2183
2241
  name = "HTML+Twig"
2184
2242
  aliases = ["html+twig"]
2185
2243
  filenames = ['*.twig']
2186
2244
  mimetypes = ['text/html+twig']
2245
+ url = 'https://twig.symfony.com'
2246
+ version_added = '2.0'
2187
2247
 
2188
2248
  def __init__(self, **options):
2189
2249
  super().__init__(HtmlLexer, TwigLexer, **options)
@@ -2196,13 +2256,12 @@ class Angular2Lexer(RegexLexer):
2196
2256
  Highlights only the Angular template tags (stuff between `{{` and `}}` and
2197
2257
  special attributes: '(event)=', '[property]=', '[(twoWayBinding)]=').
2198
2258
  Everything else is left for a delegating lexer.
2199
-
2200
- .. versionadded:: 2.1
2201
2259
  """
2202
2260
 
2203
2261
  name = "Angular2"
2204
2262
  url = 'https://angular.io/guide/template-syntax'
2205
2263
  aliases = ['ng2']
2264
+ version_added = '2.1'
2206
2265
 
2207
2266
  tokens = {
2208
2267
  'root': [
@@ -2256,13 +2315,13 @@ class Angular2HtmlLexer(DelegatingLexer):
2256
2315
  """
2257
2316
  Subclass of the `Angular2Lexer` that highlights unlexed data with the
2258
2317
  `HtmlLexer`.
2259
-
2260
- .. versionadded:: 2.0
2261
2318
  """
2262
2319
 
2263
2320
  name = "HTML + Angular2"
2264
2321
  aliases = ["html+ng2"]
2265
2322
  filenames = ['*.ng2']
2323
+ url = 'https://angular.io/guide/template-syntax'
2324
+ version_added = '2.0'
2266
2325
 
2267
2326
  def __init__(self, **options):
2268
2327
  super().__init__(HtmlLexer, Angular2Lexer, **options)
@@ -2271,13 +2330,13 @@ class Angular2HtmlLexer(DelegatingLexer):
2271
2330
  class SqlJinjaLexer(DelegatingLexer):
2272
2331
  """
2273
2332
  Templated SQL lexer.
2274
-
2275
- .. versionadded:: 2.13
2276
2333
  """
2277
2334
 
2278
2335
  name = 'SQL+Jinja'
2279
2336
  aliases = ['sql+jinja']
2280
2337
  filenames = ['*.sql', '*.sql.j2', '*.sql.jinja2']
2338
+ url = 'https://jinja.palletsprojects.com'
2339
+ version_added = '2.13'
2281
2340
 
2282
2341
  def __init__(self, **options):
2283
2342
  super().__init__(SqlLexer, DjangoLexer, **options)