pygments.rb 2.4.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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