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 Haskell and related languages.
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
 
@@ -24,14 +24,13 @@ __all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexe
24
24
  class HaskellLexer(RegexLexer):
25
25
  """
26
26
  A Haskell lexer based on the lexemes defined in the Haskell 98 Report.
27
-
28
- .. versionadded:: 0.8
29
27
  """
30
28
  name = 'Haskell'
31
29
  url = 'https://www.haskell.org/'
32
30
  aliases = ['haskell', 'hs']
33
31
  filenames = ['*.hs']
34
32
  mimetypes = ['text/x-haskell']
33
+ version_added = '0.8'
35
34
 
36
35
  reserved = ('case', 'class', 'data', 'default', 'deriving', 'do', 'else',
37
36
  'family', 'if', 'in', 'infix[lr]?', 'instance',
@@ -53,7 +52,7 @@ class HaskellLexer(RegexLexer):
53
52
  (r'\bimport\b', Keyword.Reserved, 'import'),
54
53
  (r'\bmodule\b', Keyword.Reserved, 'module'),
55
54
  (r'\berror\b', Name.Exception),
56
- (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
55
+ (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved),
57
56
  (r"'[^\\]'", String.Char), # this has to come before the TH quote
58
57
  (r'^[_' + uni.Ll + r'][\w\']*', Name.Function),
59
58
  (r"'?[_" + uni.Ll + r"][\w']*", Name),
@@ -157,14 +156,13 @@ class HaskellLexer(RegexLexer):
157
156
  class HspecLexer(HaskellLexer):
158
157
  """
159
158
  A Haskell lexer with support for Hspec constructs.
160
-
161
- .. versionadded:: 2.4.0
162
159
  """
163
160
 
164
161
  name = 'Hspec'
165
162
  aliases = ['hspec']
166
163
  filenames = ['*Spec.hs']
167
164
  mimetypes = []
165
+ version_added = '2.4'
168
166
 
169
167
  tokens = {
170
168
  'root': [
@@ -181,14 +179,13 @@ class IdrisLexer(RegexLexer):
181
179
  A lexer for the dependently typed programming language Idris.
182
180
 
183
181
  Based on the Haskell and Agda Lexer.
184
-
185
- .. versionadded:: 2.0
186
182
  """
187
183
  name = 'Idris'
188
184
  url = 'https://www.idris-lang.org/'
189
185
  aliases = ['idris', 'idr']
190
186
  filenames = ['*.idr']
191
187
  mimetypes = ['text/x-idris']
188
+ version_added = '2.0'
192
189
 
193
190
  reserved = ('case', 'class', 'data', 'default', 'using', 'do', 'else',
194
191
  'if', 'in', 'infix[lr]?', 'instance', 'rewrite', 'auto',
@@ -211,7 +208,7 @@ class IdrisLexer(RegexLexer):
211
208
  tokens = {
212
209
  'root': [
213
210
  # Comments
214
- (r'^(\s*)(%%(%s))' % '|'.join(directives),
211
+ (r'^(\s*)(%({}))'.format('|'.join(directives)),
215
212
  bygroups(Whitespace, Keyword.Reserved)),
216
213
  (r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Whitespace, Comment.Single)),
217
214
  (r'(\s*)(\|{3}.*?)$', bygroups(Whitespace, Comment.Single)),
@@ -220,7 +217,7 @@ class IdrisLexer(RegexLexer):
220
217
  (r'^(\s*)([^\s(){}]+)(\s*)(:)(\s*)',
221
218
  bygroups(Whitespace, Name.Function, Whitespace, Operator.Word, Whitespace)),
222
219
  # Identifiers
223
- (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
220
+ (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved),
224
221
  (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Whitespace), 'module'),
225
222
  (r"('')?[A-Z][\w\']*", Keyword.Type),
226
223
  (r'[a-z][\w\']*', Text),
@@ -292,8 +289,6 @@ class AgdaLexer(RegexLexer):
292
289
  """
293
290
  For the Agda dependently typed functional programming language and
294
291
  proof assistant.
295
-
296
- .. versionadded:: 2.0
297
292
  """
298
293
 
299
294
  name = 'Agda'
@@ -301,6 +296,7 @@ class AgdaLexer(RegexLexer):
301
296
  aliases = ['agda']
302
297
  filenames = ['*.agda']
303
298
  mimetypes = ['text/x-agda']
299
+ version_added = '2.0'
304
300
 
305
301
  reserved = (
306
302
  'abstract', 'codata', 'coinductive', 'constructor', 'data', 'do',
@@ -325,7 +321,7 @@ class AgdaLexer(RegexLexer):
325
321
  (r'\{!', Comment.Directive, 'hole'),
326
322
  # Lexemes:
327
323
  # Identifiers
328
- (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
324
+ (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved),
329
325
  (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Whitespace),
330
326
  'module'),
331
327
  (r'\b(Set|Prop)[\u2080-\u2089]*\b', Keyword.Type),
@@ -365,13 +361,13 @@ class AgdaLexer(RegexLexer):
365
361
  class CryptolLexer(RegexLexer):
366
362
  """
367
363
  FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report.
368
-
369
- .. versionadded:: 2.0
370
364
  """
371
365
  name = 'Cryptol'
372
366
  aliases = ['cryptol', 'cry']
373
367
  filenames = ['*.cry']
374
368
  mimetypes = ['text/x-cryptol']
369
+ url = 'https://www.cryptol.net'
370
+ version_added = '2.0'
375
371
 
376
372
  reserved = ('Arith', 'Bit', 'Cmp', 'False', 'Inf', 'True', 'else',
377
373
  'export', 'extern', 'fin', 'if', 'import', 'inf', 'lg2',
@@ -394,7 +390,7 @@ class CryptolLexer(RegexLexer):
394
390
  (r'\bimport\b', Keyword.Reserved, 'import'),
395
391
  (r'\bmodule\b', Keyword.Reserved, 'module'),
396
392
  (r'\berror\b', Name.Exception),
397
- (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
393
+ (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved),
398
394
  (r'^[_a-z][\w\']*', Name.Function),
399
395
  (r"'?[_a-z][\w']*", Name),
400
396
  (r"('')?[A-Z][\w\']*", Keyword.Type),
@@ -573,13 +569,13 @@ class LiterateHaskellLexer(LiterateLexer):
573
569
  If given, must be ``"bird"`` or ``"latex"``. If not given, the style
574
570
  is autodetected: if the first non-whitespace character in the source
575
571
  is a backslash or percent character, LaTeX is assumed, else Bird.
576
-
577
- .. versionadded:: 0.9
578
572
  """
579
573
  name = 'Literate Haskell'
580
574
  aliases = ['literate-haskell', 'lhaskell', 'lhs']
581
575
  filenames = ['*.lhs']
582
576
  mimetypes = ['text/x-literate-haskell']
577
+ url = 'https://wiki.haskell.org/Literate_programming'
578
+ version_added = '0.9'
583
579
 
584
580
  def __init__(self, **options):
585
581
  hslexer = HaskellLexer(**options)
@@ -596,13 +592,13 @@ class LiterateIdrisLexer(LiterateLexer):
596
592
  If given, must be ``"bird"`` or ``"latex"``. If not given, the style
597
593
  is autodetected: if the first non-whitespace character in the source
598
594
  is a backslash or percent character, LaTeX is assumed, else Bird.
599
-
600
- .. versionadded:: 2.0
601
595
  """
602
596
  name = 'Literate Idris'
603
597
  aliases = ['literate-idris', 'lidris', 'lidr']
604
598
  filenames = ['*.lidr']
605
599
  mimetypes = ['text/x-literate-idris']
600
+ url = 'https://idris2.readthedocs.io/en/latest/reference/literate.html'
601
+ version_added = '2.0'
606
602
 
607
603
  def __init__(self, **options):
608
604
  hslexer = IdrisLexer(**options)
@@ -619,13 +615,13 @@ class LiterateAgdaLexer(LiterateLexer):
619
615
  If given, must be ``"bird"`` or ``"latex"``. If not given, the style
620
616
  is autodetected: if the first non-whitespace character in the source
621
617
  is a backslash or percent character, LaTeX is assumed, else Bird.
622
-
623
- .. versionadded:: 2.0
624
618
  """
625
619
  name = 'Literate Agda'
626
620
  aliases = ['literate-agda', 'lagda']
627
621
  filenames = ['*.lagda']
628
622
  mimetypes = ['text/x-literate-agda']
623
+ url = 'https://agda.readthedocs.io/en/latest/tools/literate-programming.html'
624
+ version_added = '2.0'
629
625
 
630
626
  def __init__(self, **options):
631
627
  agdalexer = AgdaLexer(**options)
@@ -642,13 +638,13 @@ class LiterateCryptolLexer(LiterateLexer):
642
638
  If given, must be ``"bird"`` or ``"latex"``. If not given, the style
643
639
  is autodetected: if the first non-whitespace character in the source
644
640
  is a backslash or percent character, LaTeX is assumed, else Bird.
645
-
646
- .. versionadded:: 2.0
647
641
  """
648
642
  name = 'Literate Cryptol'
649
643
  aliases = ['literate-cryptol', 'lcryptol', 'lcry']
650
644
  filenames = ['*.lcry']
651
645
  mimetypes = ['text/x-literate-cryptol']
646
+ url = 'https://www.cryptol.net'
647
+ version_added = '2.0'
652
648
 
653
649
  def __init__(self, **options):
654
650
  crylexer = CryptolLexer(**options)
@@ -658,8 +654,6 @@ class LiterateCryptolLexer(LiterateLexer):
658
654
  class KokaLexer(RegexLexer):
659
655
  """
660
656
  Lexer for the Koka language.
661
-
662
- .. versionadded:: 1.6
663
657
  """
664
658
 
665
659
  name = 'Koka'
@@ -667,6 +661,7 @@ class KokaLexer(RegexLexer):
667
661
  aliases = ['koka']
668
662
  filenames = ['*.kk', '*.kki']
669
663
  mimetypes = ['text/x-koka']
664
+ version_added = '1.6'
670
665
 
671
666
  keywords = [
672
667
  'infix', 'infixr', 'infixl',
@@ -726,7 +721,7 @@ class KokaLexer(RegexLexer):
726
721
  'alias-type'),
727
722
  (r'(struct)(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef),
728
723
  'struct-type'),
729
- ((r'(%s)' % '|'.join(typeStartKeywords)) +
724
+ ((r'({})'.format('|'.join(typeStartKeywords))) +
730
725
  r'(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef),
731
726
  'type'),
732
727
 
@@ -748,9 +743,9 @@ class KokaLexer(RegexLexer):
748
743
  bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword, Whitespace, Name.Function)),
749
744
 
750
745
  # keywords
751
- (r'(%s)' % '|'.join(typekeywords) + boundary, Keyword.Type),
752
- (r'(%s)' % '|'.join(keywords) + boundary, Keyword),
753
- (r'(%s)' % '|'.join(builtin) + boundary, Keyword.Pseudo),
746
+ (r'({})'.format('|'.join(typekeywords)) + boundary, Keyword.Type),
747
+ (r'({})'.format('|'.join(keywords)) + boundary, Keyword),
748
+ (r'({})'.format('|'.join(builtin)) + boundary, Keyword.Pseudo),
754
749
  (r'::?|:=|\->|[=.]' + sboundary, Keyword),
755
750
 
756
751
  # names
@@ -811,8 +806,8 @@ class KokaLexer(RegexLexer):
811
806
  include('whitespace'),
812
807
 
813
808
  # keywords
814
- (r'(%s)' % '|'.join(typekeywords) + boundary, Keyword),
815
- (r'(?=((%s)' % '|'.join(keywords) + boundary + '))',
809
+ (r'({})'.format('|'.join(typekeywords)) + boundary, Keyword),
810
+ (r'(?=(({})'.format('|'.join(keywords)) + boundary + '))',
816
811
  Keyword, '#pop'), # need to match because names overlap...
817
812
 
818
813
  # kinds
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Haxe and related stuff.
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
 
@@ -21,8 +21,6 @@ __all__ = ['HaxeLexer', 'HxmlLexer']
21
21
  class HaxeLexer(ExtendedRegexLexer):
22
22
  """
23
23
  For Haxe source code.
24
-
25
- .. versionadded:: 1.3
26
24
  """
27
25
 
28
26
  name = 'Haxe'
@@ -30,6 +28,7 @@ class HaxeLexer(ExtendedRegexLexer):
30
28
  aliases = ['haxe', 'hxsl', 'hx']
31
29
  filenames = ['*.hx', '*.hxsl']
32
30
  mimetypes = ['text/haxe', 'text/x-haxe', 'text/x-hx']
31
+ version_added = '1.3'
33
32
 
34
33
  # keywords extracted from lexer.mll in the haxe compiler source
35
34
  keyword = (r'(?:function|class|static|var|if|else|while|do|for|'
@@ -898,13 +897,12 @@ class HaxeLexer(ExtendedRegexLexer):
898
897
  class HxmlLexer(RegexLexer):
899
898
  """
900
899
  Lexer for haXe build files.
901
-
902
- .. versionadded:: 1.6
903
900
  """
904
901
  name = 'Hxml'
905
902
  url = 'https://haxe.org/manual/compiler-usage-hxml.html'
906
903
  aliases = ['haxeml', 'hxml']
907
904
  filenames = ['*.hxml']
905
+ version_added = '1.6'
908
906
 
909
907
  tokens = {
910
908
  'root': [
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for hardware descriptor languages.
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
 
@@ -20,13 +20,13 @@ __all__ = ['VerilogLexer', 'SystemVerilogLexer', 'VhdlLexer']
20
20
  class VerilogLexer(RegexLexer):
21
21
  """
22
22
  For verilog source code with preprocessor directives.
23
-
24
- .. versionadded:: 1.4
25
23
  """
26
24
  name = 'verilog'
27
25
  aliases = ['verilog', 'v']
28
26
  filenames = ['*.v']
29
27
  mimetypes = ['text/x-verilog']
28
+ url = 'https://en.wikipedia.org/wiki/Verilog'
29
+ version_added = '1.4'
30
30
 
31
31
  #: optional Comment or Whitespace
32
32
  _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
@@ -147,13 +147,13 @@ class SystemVerilogLexer(RegexLexer):
147
147
  """
148
148
  Extends verilog lexer to recognise all SystemVerilog keywords from IEEE
149
149
  1800-2009 standard.
150
-
151
- .. versionadded:: 1.5
152
150
  """
153
151
  name = 'systemverilog'
154
152
  aliases = ['systemverilog', 'sv']
155
153
  filenames = ['*.sv', '*.svh']
156
154
  mimetypes = ['text/x-systemverilog']
155
+ url = 'https://en.wikipedia.org/wiki/SystemVerilog'
156
+ version_added = '1.5'
157
157
 
158
158
  #: optional Comment or Whitespace
159
159
  _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
@@ -373,13 +373,13 @@ class SystemVerilogLexer(RegexLexer):
373
373
  class VhdlLexer(RegexLexer):
374
374
  """
375
375
  For VHDL source code.
376
-
377
- .. versionadded:: 1.5
378
376
  """
379
377
  name = 'vhdl'
380
378
  aliases = ['vhdl']
381
379
  filenames = ['*.vhdl', '*.vhd']
382
380
  mimetypes = ['text/x-vhdl']
381
+ url = 'https://en.wikipedia.org/wiki/VHDL'
382
+ version_added = '1.5'
383
383
  flags = re.MULTILINE | re.IGNORECASE
384
384
 
385
385
  tokens = {
@@ -387,6 +387,7 @@ class VhdlLexer(RegexLexer):
387
387
  (r'\s+', Whitespace),
388
388
  (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
389
389
  (r'--.*?$', Comment.Single),
390
+ (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
390
391
  (r"'(U|X|0|1|Z|W|L|H|-)'", String.Char),
391
392
  (r'[~!%^&*+=|?:<>/-]', Operator),
392
393
  (r"'[a-z_]\w*", Name.Attribute),
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for hexadecimal dumps.
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
 
@@ -33,11 +33,11 @@ class HexdumpLexer(RegexLexer):
33
33
  * ``od -t x1z FILE``
34
34
  * ``xxd FILE``
35
35
  * ``DEBUG.EXE FILE.COM`` and entering ``d`` to the prompt.
36
-
37
- .. versionadded:: 2.1
38
36
  """
39
37
  name = 'Hexdump'
40
38
  aliases = ['hexdump']
39
+ url = 'https://en.wikipedia.org/wiki/Hex_dump'
40
+ version_added = '2.1'
41
41
 
42
42
  hd = r'[0-9A-Ha-h]'
43
43
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for HTML, XML and related 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
 
@@ -22,7 +22,7 @@ from pygments.lexers.css import CssLexer, _indentation, _starts_block
22
22
  from pygments.lexers.ruby import RubyLexer
23
23
 
24
24
  __all__ = ['HtmlLexer', 'DtdLexer', 'XmlLexer', 'XsltLexer', 'HamlLexer',
25
- 'ScamlLexer', 'PugLexer']
25
+ 'ScamlLexer', 'PugLexer', 'UrlEncodedLexer']
26
26
 
27
27
 
28
28
  class HtmlLexer(RegexLexer):
@@ -36,6 +36,7 @@ class HtmlLexer(RegexLexer):
36
36
  aliases = ['html']
37
37
  filenames = ['*.html', '*.htm', '*.xhtml', '*.xslt']
38
38
  mimetypes = ['text/html', 'application/xhtml+xml']
39
+ version_added = ''
39
40
 
40
41
  flags = re.IGNORECASE | re.DOTALL
41
42
  tokens = {
@@ -106,8 +107,6 @@ class HtmlLexer(RegexLexer):
106
107
  class DtdLexer(RegexLexer):
107
108
  """
108
109
  A lexer for DTDs (Document Type Definitions).
109
-
110
- .. versionadded:: 1.5
111
110
  """
112
111
 
113
112
  flags = re.MULTILINE | re.DOTALL
@@ -116,6 +115,8 @@ class DtdLexer(RegexLexer):
116
115
  aliases = ['dtd']
117
116
  filenames = ['*.dtd']
118
117
  mimetypes = ['application/xml-dtd']
118
+ url = 'https://en.wikipedia.org/wiki/Document_type_definition'
119
+ version_added = '1.5'
119
120
 
120
121
  tokens = {
121
122
  'root': [
@@ -204,6 +205,8 @@ class XmlLexer(RegexLexer):
204
205
  '*.wsdl', '*.wsf']
205
206
  mimetypes = ['text/xml', 'application/xml', 'image/svg+xml',
206
207
  'application/rss+xml', 'application/atom+xml']
208
+ url = 'https://www.w3.org/XML'
209
+ version_added = ''
207
210
 
208
211
  tokens = {
209
212
  'root': [
@@ -238,14 +241,14 @@ class XmlLexer(RegexLexer):
238
241
  class XsltLexer(XmlLexer):
239
242
  """
240
243
  A lexer for XSLT.
241
-
242
- .. versionadded:: 0.10
243
244
  """
244
245
 
245
246
  name = 'XSLT'
246
247
  aliases = ['xslt']
247
248
  filenames = ['*.xsl', '*.xslt', '*.xpl'] # xpl is XProc
248
249
  mimetypes = ['application/xsl+xml', 'application/xslt+xml']
250
+ url = 'https://www.w3.org/TR/xslt-30'
251
+ version_added = '0.10'
249
252
 
250
253
  EXTRA_KEYWORDS = {
251
254
  'apply-imports', 'apply-templates', 'attribute',
@@ -275,14 +278,14 @@ class XsltLexer(XmlLexer):
275
278
  class HamlLexer(ExtendedRegexLexer):
276
279
  """
277
280
  For Haml markup.
278
-
279
- .. versionadded:: 1.3
280
281
  """
281
282
 
282
283
  name = 'Haml'
283
284
  aliases = ['haml']
284
285
  filenames = ['*.haml']
285
286
  mimetypes = ['text/x-haml']
287
+ url = 'https://haml.info'
288
+ version_added = '1.3'
286
289
 
287
290
  flags = re.IGNORECASE
288
291
  # Haml can include " |\n" anywhere,
@@ -385,15 +388,15 @@ class HamlLexer(ExtendedRegexLexer):
385
388
 
386
389
  class ScamlLexer(ExtendedRegexLexer):
387
390
  """
388
- For `Scaml markup <http://scalate.fusesource.org/>`_. Scaml is Haml for Scala.
389
-
390
- .. versionadded:: 1.4
391
+ For Scaml markup. Scaml is Haml for Scala.
391
392
  """
392
393
 
393
394
  name = 'Scaml'
394
395
  aliases = ['scaml']
395
396
  filenames = ['*.scaml']
396
397
  mimetypes = ['text/x-scaml']
398
+ url = 'https://scalate.github.io/scalate/'
399
+ version_added = '1.4'
397
400
 
398
401
  flags = re.IGNORECASE
399
402
  # Scaml does not yet support the " |\n" notation to
@@ -500,14 +503,14 @@ class PugLexer(ExtendedRegexLexer):
500
503
  For Pug markup.
501
504
  Pug is a variant of Scaml, see:
502
505
  http://scalate.fusesource.org/documentation/scaml-reference.html
503
-
504
- .. versionadded:: 1.4
505
506
  """
506
507
 
507
508
  name = 'Pug'
508
509
  aliases = ['pug', 'jade']
509
510
  filenames = ['*.pug', '*.jade']
510
511
  mimetypes = ['text/x-pug', 'text/x-jade']
512
+ url = 'https://pugjs.org'
513
+ version_added = '1.4'
511
514
 
512
515
  flags = re.IGNORECASE
513
516
  _dot = r'.'
@@ -603,3 +606,21 @@ class PugLexer(ExtendedRegexLexer):
603
606
  ],
604
607
  }
605
608
  JadeLexer = PugLexer # compat
609
+
610
+
611
+ class UrlEncodedLexer(RegexLexer):
612
+ """
613
+ Lexer for urlencoded data
614
+ """
615
+
616
+ name = 'urlencoded'
617
+ aliases = ['urlencoded']
618
+ mimetypes = ['application/x-www-form-urlencoded']
619
+ url = 'https://en.wikipedia.org/wiki/Percent-encoding'
620
+ version_added = '2.16'
621
+
622
+ tokens = {
623
+ 'root': [
624
+ ('([^&=]*)(=)([^=&]*)(&?)', bygroups(Name.Tag, Operator, String, Punctuation)),
625
+ ],
626
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for IDL.
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
 
@@ -20,14 +20,13 @@ __all__ = ['IDLLexer']
20
20
  class IDLLexer(RegexLexer):
21
21
  """
22
22
  Pygments Lexer for IDL (Interactive Data Language).
23
-
24
- .. versionadded:: 1.6
25
23
  """
26
24
  name = 'IDL'
27
25
  url = 'https://www.l3harrisgeospatial.com/Software-Technology/IDL'
28
26
  aliases = ['idl']
29
27
  filenames = ['*.pro']
30
28
  mimetypes = ['text/idl']
29
+ version_added = '1.6'
31
30
 
32
31
  flags = re.IGNORECASE | re.MULTILINE
33
32