pygments.rb 3.0.0 → 5.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 (360) 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/.rubocop.yml +1 -2
  5. data/CHANGELOG.adoc +13 -1
  6. data/README.adoc +3 -3
  7. data/Rakefile +1 -1
  8. data/bench.rb +3 -3
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +6 -4
  11. data/test/test_pygments.rb +0 -4
  12. data/vendor/pygments-main/bin/pygmentize +1 -1
  13. data/vendor/pygments-main/pygments/__init__.py +2 -2
  14. data/vendor/pygments-main/pygments/__main__.py +1 -1
  15. data/vendor/pygments-main/pygments/cmdline.py +2 -2
  16. data/vendor/pygments-main/pygments/console.py +1 -1
  17. data/vendor/pygments-main/pygments/filter.py +1 -1
  18. data/vendor/pygments-main/pygments/filters/__init__.py +10 -8
  19. data/vendor/pygments-main/pygments/formatter.py +1 -1
  20. data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
  21. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  22. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  23. data/vendor/pygments-main/pygments/formatters/groff.py +1 -1
  24. data/vendor/pygments-main/pygments/formatters/html.py +20 -10
  25. data/vendor/pygments-main/pygments/formatters/img.py +3 -2
  26. data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
  27. data/vendor/pygments-main/pygments/formatters/latex.py +1 -1
  28. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  29. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
  30. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  32. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  33. data/vendor/pygments-main/pygments/formatters/terminal256.py +6 -6
  34. data/vendor/pygments-main/pygments/lexer.py +7 -5
  35. data/vendor/pygments-main/pygments/lexers/__init__.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  38. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_googlesql_builtins.py +918 -0
  43. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  45. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +404 -152
  46. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +1 -1
  48. data/vendor/pygments-main/pygments/lexers/_mapping.py +24 -10
  49. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +52 -3
  51. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +7 -4
  53. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_sql_builtins.py +106 -0
  59. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +126 -13
  60. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/actionscript.py +3 -3
  66. data/vendor/pygments-main/pygments/lexers/ada.py +1 -1
  67. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  68. data/vendor/pygments-main/pygments/lexers/algebra.py +8 -6
  69. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  70. data/vendor/pygments-main/pygments/lexers/amdgpu.py +1 -1
  71. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/apdlexer.py +1 -1
  73. data/vendor/pygments-main/pygments/lexers/apl.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -4
  75. data/vendor/pygments-main/pygments/lexers/arrow.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/arturo.py +1 -1
  77. data/vendor/pygments-main/pygments/lexers/asc.py +1 -1
  78. data/vendor/pygments-main/pygments/lexers/asm.py +29 -21
  79. data/vendor/pygments-main/pygments/lexers/asn1.py +3 -3
  80. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  81. data/vendor/pygments-main/pygments/lexers/bare.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/basic.py +1 -1
  83. data/vendor/pygments-main/pygments/lexers/bdd.py +1 -1
  84. data/vendor/pygments-main/pygments/lexers/berry.py +1 -1
  85. data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -1
  86. data/vendor/pygments-main/pygments/lexers/blueprint.py +1 -1
  87. data/vendor/pygments-main/pygments/lexers/boa.py +1 -1
  88. data/vendor/pygments-main/pygments/lexers/bqn.py +18 -15
  89. data/vendor/pygments-main/pygments/lexers/business.py +1 -1
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +18 -17
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +1 -1
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/carbon.py +1 -1
  94. data/vendor/pygments-main/pygments/lexers/cddl.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/chapel.py +1 -1
  96. data/vendor/pygments-main/pygments/lexers/clean.py +1 -1
  97. data/vendor/pygments-main/pygments/lexers/codeql.py +80 -0
  98. data/vendor/pygments-main/pygments/lexers/comal.py +1 -1
  99. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/configs.py +17 -8
  101. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  102. data/vendor/pygments-main/pygments/lexers/cplint.py +1 -1
  103. data/vendor/pygments-main/pygments/lexers/crystal.py +1 -1
  104. data/vendor/pygments-main/pygments/lexers/csound.py +1 -1
  105. data/vendor/pygments-main/pygments/lexers/css.py +32 -2
  106. data/vendor/pygments-main/pygments/lexers/d.py +1 -1
  107. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/data.py +2 -2
  109. data/vendor/pygments-main/pygments/lexers/dax.py +1 -1
  110. data/vendor/pygments-main/pygments/lexers/devicetree.py +17 -5
  111. data/vendor/pygments-main/pygments/lexers/diff.py +1 -1
  112. data/vendor/pygments-main/pygments/lexers/dns.py +1 -1
  113. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -13
  114. data/vendor/pygments-main/pygments/lexers/dsls.py +2 -2
  115. data/vendor/pygments-main/pygments/lexers/dylan.py +3 -3
  116. data/vendor/pygments-main/pygments/lexers/ecl.py +1 -1
  117. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  118. data/vendor/pygments-main/pygments/lexers/elm.py +1 -1
  119. data/vendor/pygments-main/pygments/lexers/elpi.py +55 -26
  120. data/vendor/pygments-main/pygments/lexers/email.py +1 -1
  121. data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -1
  123. data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  125. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  126. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  127. data/vendor/pygments-main/pygments/lexers/fift.py +1 -1
  128. data/vendor/pygments-main/pygments/lexers/floscript.py +1 -1
  129. data/vendor/pygments-main/pygments/lexers/forth.py +1 -1
  130. data/vendor/pygments-main/pygments/lexers/fortran.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/freefem.py +1 -1
  133. data/vendor/pygments-main/pygments/lexers/func.py +1 -1
  134. data/vendor/pygments-main/pygments/lexers/functional.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/futhark.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -1
  137. data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -1
  138. data/vendor/pygments-main/pygments/lexers/gleam.py +74 -0
  139. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  140. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -1
  141. data/vendor/pygments-main/pygments/lexers/graph.py +1 -1
  142. data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
  143. data/vendor/pygments-main/pygments/lexers/graphql.py +1 -1
  144. data/vendor/pygments-main/pygments/lexers/graphviz.py +1 -1
  145. data/vendor/pygments-main/pygments/lexers/gsql.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/hare.py +73 -0
  147. data/vendor/pygments-main/pygments/lexers/haskell.py +5 -4
  148. data/vendor/pygments-main/pygments/lexers/haxe.py +9 -3
  149. data/vendor/pygments-main/pygments/lexers/hdl.py +1 -1
  150. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
  151. data/vendor/pygments-main/pygments/lexers/html.py +48 -4
  152. data/vendor/pygments-main/pygments/lexers/idl.py +1 -1
  153. data/vendor/pygments-main/pygments/lexers/igor.py +2 -2
  154. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -1
  155. data/vendor/pygments-main/pygments/lexers/installers.py +53 -26
  156. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/iolang.py +1 -1
  158. data/vendor/pygments-main/pygments/lexers/j.py +1 -1
  159. data/vendor/pygments-main/pygments/lexers/javascript.py +5 -1
  160. data/vendor/pygments-main/pygments/lexers/jmespath.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/jslt.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/json5.py +83 -0
  163. data/vendor/pygments-main/pygments/lexers/jsonnet.py +1 -1
  164. data/vendor/pygments-main/pygments/lexers/jsx.py +64 -39
  165. data/vendor/pygments-main/pygments/lexers/julia.py +2 -1
  166. data/vendor/pygments-main/pygments/lexers/jvm.py +11 -6
  167. data/vendor/pygments-main/pygments/lexers/kuin.py +1 -1
  168. data/vendor/pygments-main/pygments/lexers/kusto.py +1 -1
  169. data/vendor/pygments-main/pygments/lexers/ldap.py +1 -1
  170. data/vendor/pygments-main/pygments/lexers/lean.py +3 -3
  171. data/vendor/pygments-main/pygments/lexers/lilypond.py +1 -1
  172. data/vendor/pygments-main/pygments/lexers/lisp.py +18 -12
  173. data/vendor/pygments-main/pygments/lexers/macaulay2.py +169 -110
  174. data/vendor/pygments-main/pygments/lexers/make.py +1 -1
  175. data/vendor/pygments-main/pygments/lexers/maple.py +291 -0
  176. data/vendor/pygments-main/pygments/lexers/markup.py +11 -6
  177. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  178. data/vendor/pygments-main/pygments/lexers/matlab.py +5 -4
  179. data/vendor/pygments-main/pygments/lexers/maxima.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/meson.py +3 -3
  181. data/vendor/pygments-main/pygments/lexers/mime.py +1 -1
  182. data/vendor/pygments-main/pygments/lexers/minecraft.py +3 -2
  183. data/vendor/pygments-main/pygments/lexers/mips.py +1 -1
  184. data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/modeling.py +3 -1
  186. data/vendor/pygments-main/pygments/lexers/modula2.py +1 -1
  187. data/vendor/pygments-main/pygments/lexers/mojo.py +7 -4
  188. data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
  189. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
  190. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  191. data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
  192. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  193. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/numbair.py +63 -0
  195. data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
  196. data/vendor/pygments-main/pygments/lexers/objective.py +12 -12
  197. data/vendor/pygments-main/pygments/lexers/ooc.py +3 -3
  198. data/vendor/pygments-main/pygments/lexers/openscad.py +1 -1
  199. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  201. data/vendor/pygments-main/pygments/lexers/parsers.py +5 -5
  202. data/vendor/pygments-main/pygments/lexers/pascal.py +1 -1
  203. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  204. data/vendor/pygments-main/pygments/lexers/pddl.py +82 -0
  205. data/vendor/pygments-main/pygments/lexers/perl.py +1 -1
  206. data/vendor/pygments-main/pygments/lexers/phix.py +1 -1
  207. data/vendor/pygments-main/pygments/lexers/php.py +6 -5
  208. data/vendor/pygments-main/pygments/lexers/pointless.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
  210. data/vendor/pygments-main/pygments/lexers/praat.py +1 -1
  211. data/vendor/pygments-main/pygments/lexers/procfile.py +1 -1
  212. data/vendor/pygments-main/pygments/lexers/prolog.py +1 -1
  213. data/vendor/pygments-main/pygments/lexers/promql.py +1 -1
  214. data/vendor/pygments-main/pygments/lexers/prql.py +1 -1
  215. data/vendor/pygments-main/pygments/lexers/ptx.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/python.py +58 -52
  217. data/vendor/pygments-main/pygments/lexers/q.py +1 -1
  218. data/vendor/pygments-main/pygments/lexers/qlik.py +1 -1
  219. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/r.py +8 -4
  221. data/vendor/pygments-main/pygments/lexers/rdf.py +4 -4
  222. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -1
  223. data/vendor/pygments-main/pygments/lexers/rego.py +57 -0
  224. data/vendor/pygments-main/pygments/lexers/rell.py +68 -0
  225. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  226. data/vendor/pygments-main/pygments/lexers/ride.py +1 -1
  227. data/vendor/pygments-main/pygments/lexers/rita.py +1 -1
  228. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  229. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  230. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -1
  231. data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
  232. data/vendor/pygments-main/pygments/lexers/rust.py +1 -1
  233. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  234. data/vendor/pygments-main/pygments/lexers/savi.py +1 -1
  235. data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -1
  236. data/vendor/pygments-main/pygments/lexers/scripting.py +65 -25
  237. data/vendor/pygments-main/pygments/lexers/sgf.py +1 -1
  238. data/vendor/pygments-main/pygments/lexers/shell.py +5 -1
  239. data/vendor/pygments-main/pygments/lexers/sieve.py +1 -1
  240. data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
  241. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -1
  242. data/vendor/pygments-main/pygments/lexers/smithy.py +1 -1
  243. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  244. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  245. data/vendor/pygments-main/pygments/lexers/solidity.py +1 -1
  246. data/vendor/pygments-main/pygments/lexers/soong.py +1 -1
  247. data/vendor/pygments-main/pygments/lexers/sophia.py +1 -1
  248. data/vendor/pygments-main/pygments/lexers/special.py +2 -1
  249. data/vendor/pygments-main/pygments/lexers/spice.py +2 -2
  250. data/vendor/pygments-main/pygments/lexers/sql.py +205 -127
  251. data/vendor/pygments-main/pygments/lexers/srcinfo.py +1 -1
  252. data/vendor/pygments-main/pygments/lexers/stata.py +1 -1
  253. data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
  254. data/vendor/pygments-main/pygments/lexers/tablegen.py +177 -0
  255. data/vendor/pygments-main/pygments/lexers/tact.py +1 -1
  256. data/vendor/pygments-main/pygments/lexers/tal.py +1 -1
  257. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  258. data/vendor/pygments-main/pygments/lexers/teal.py +1 -1
  259. data/vendor/pygments-main/pygments/lexers/templates.py +3 -3
  260. data/vendor/pygments-main/pygments/lexers/teraterm.py +11 -1
  261. data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
  262. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  263. data/vendor/pygments-main/pygments/lexers/textedit.py +1 -1
  264. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -1
  265. data/vendor/pygments-main/pygments/lexers/theorem.py +8 -8
  266. data/vendor/pygments-main/pygments/lexers/thingsdb.py +8 -5
  267. data/vendor/pygments-main/pygments/lexers/tlb.py +1 -1
  268. data/vendor/pygments-main/pygments/lexers/tls.py +1 -1
  269. data/vendor/pygments-main/pygments/lexers/tnt.py +1 -1
  270. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  271. data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -1
  272. data/vendor/pygments-main/pygments/lexers/typst.py +82 -26
  273. data/vendor/pygments-main/pygments/lexers/ul4.py +1 -1
  274. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
  275. data/vendor/pygments-main/pygments/lexers/urbi.py +1 -1
  276. data/vendor/pygments-main/pygments/lexers/usd.py +1 -1
  277. data/vendor/pygments-main/pygments/lexers/varnish.py +1 -1
  278. data/vendor/pygments-main/pygments/lexers/verification.py +1 -1
  279. data/vendor/pygments-main/pygments/lexers/verifpal.py +1 -1
  280. data/vendor/pygments-main/pygments/lexers/vip.py +1 -1
  281. data/vendor/pygments-main/pygments/lexers/vyper.py +2 -2
  282. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  283. data/vendor/pygments-main/pygments/lexers/webassembly.py +1 -1
  284. data/vendor/pygments-main/pygments/lexers/webidl.py +1 -1
  285. data/vendor/pygments-main/pygments/lexers/webmisc.py +1 -1
  286. data/vendor/pygments-main/pygments/lexers/wgsl.py +1 -1
  287. data/vendor/pygments-main/pygments/lexers/whiley.py +1 -1
  288. data/vendor/pygments-main/pygments/lexers/wowtoc.py +1 -1
  289. data/vendor/pygments-main/pygments/lexers/wren.py +1 -1
  290. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  291. data/vendor/pygments-main/pygments/lexers/xorg.py +1 -1
  292. data/vendor/pygments-main/pygments/lexers/yang.py +1 -1
  293. data/vendor/pygments-main/pygments/lexers/yara.py +1 -1
  294. data/vendor/pygments-main/pygments/lexers/zig.py +2 -2
  295. data/vendor/pygments-main/pygments/modeline.py +1 -1
  296. data/vendor/pygments-main/pygments/plugin.py +3 -1
  297. data/vendor/pygments-main/pygments/regexopt.py +13 -2
  298. data/vendor/pygments-main/pygments/scanner.py +1 -1
  299. data/vendor/pygments-main/pygments/sphinxext.py +1 -1
  300. data/vendor/pygments-main/pygments/style.py +1 -1
  301. data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
  302. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  303. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  304. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  305. data/vendor/pygments-main/pygments/styles/arduino.py +1 -1
  306. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  307. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  308. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  309. data/vendor/pygments-main/pygments/styles/coffee.py +1 -1
  310. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  311. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  312. data/vendor/pygments-main/pygments/styles/dracula.py +1 -1
  313. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  314. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  315. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +1 -1
  316. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  317. data/vendor/pygments-main/pygments/styles/gh_dark.py +1 -1
  318. data/vendor/pygments-main/pygments/styles/gruvbox.py +1 -1
  319. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  320. data/vendor/pygments-main/pygments/styles/inkpot.py +1 -1
  321. data/vendor/pygments-main/pygments/styles/lightbulb.py +1 -1
  322. data/vendor/pygments-main/pygments/styles/lilypond.py +1 -1
  323. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  324. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  325. data/vendor/pygments-main/pygments/styles/material.py +1 -1
  326. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  327. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  328. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  329. data/vendor/pygments-main/pygments/styles/nord.py +1 -1
  330. data/vendor/pygments-main/pygments/styles/onedark.py +13 -3
  331. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  332. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  333. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  334. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  335. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  336. data/vendor/pygments-main/pygments/styles/rrt.py +18 -3
  337. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  338. data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
  339. data/vendor/pygments-main/pygments/styles/staroffice.py +1 -1
  340. data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -1
  341. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -1
  342. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  343. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  344. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  345. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  346. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  347. data/vendor/pygments-main/pygments/styles/zenburn.py +1 -1
  348. data/vendor/pygments-main/pygments/token.py +1 -1
  349. data/vendor/pygments-main/pygments/unistring.py +1 -1
  350. data/vendor/pygments-main/pygments/util.py +2 -2
  351. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/METADATA +7 -7
  352. data/vendor/pygments-main/pygments-2.20.0.dist-info/RECORD +687 -0
  353. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/WHEEL +1 -1
  354. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/AUTHORS +9 -0
  355. metadata +44 -21
  356. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +0 -663
  357. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/INSTALLER +0 -0
  358. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/REQUESTED +0 -0
  359. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/entry_points.txt +0 -0
  360. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/LICENSE +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf3ae31d18e15cd98c6832a2f2cde3b5bbf96c6a5dd23a91c425e990389dadcf
4
- data.tar.gz: 6940996fda2e470a0204b4c48086aa2829abb4e59118bc41473384d4c0924bb2
3
+ metadata.gz: 2b1a43691886e6266a532fba199737b956c088499177f60e182ac2380fc0148a
4
+ data.tar.gz: b456779c1572255554069f04e182271d57c725f9a4c704dc67655715448aac24
5
5
  SHA512:
6
- metadata.gz: 9d4e8bf20e67061d3c630ce1b659c22edaa9af08bca7245480a3592fac77ba617fa57b2f15e75222d1fd3d4ffa1315170d07279a6f0af3820dcae598a48e59d5
7
- data.tar.gz: 634a4c6ed46960cb8e8a65283191b74ce8701b3e741692f9231e128f8ab7c632591d7e0d599d4ca6b2acc4f47f8d3339b93070cfc3c382335074627dcfc9e4af
6
+ metadata.gz: 27dda222e620c4091d0c8125cf260303b61293a0c388722e914945a1bc56e257171e195dc6ba8b5fca5a071b4b6d79b94b673c50448919d8c3d6ab4e7d5bae7c
7
+ data.tar.gz: a08d54b500cb54912f34a6e9c390a2f232d56bea8b78c93ac45ab9952dcd99224eef15bd9da32b31df3423a6a725fcb594c5cd28a88a2631bb048532100dd899
@@ -6,34 +6,34 @@ on:
6
6
  pull_request:
7
7
  jobs:
8
8
  rubocop:
9
- runs-on: ubuntu-22.04
9
+ runs-on: ubuntu-latest
10
10
  steps:
11
11
  - name: Checkout
12
- uses: actions/checkout@v4
12
+ uses: actions/checkout@v7
13
13
  - name: Set up Ruby
14
14
  uses: ruby/setup-ruby@v1
15
15
  with:
16
- ruby-version: '3.3'
16
+ ruby-version: '3.4'
17
17
  bundler-cache: true
18
18
  - name: Rubocop
19
19
  run: bundle exec rubocop
20
20
  build:
21
21
  strategy:
22
22
  matrix:
23
- ruby: [ 'jruby-9.3', 'jruby-9.4', '2.6', '3.3' ]
24
- python: [ '3.8', '3.12' ]
25
- platform: [ ubuntu-22.04, macos-12, windows-2019 ]
23
+ ruby: [ 'jruby', '2.7', '3.4' ]
24
+ python: [ '3.9', '3.13' ]
25
+ platform: [ubuntu-latest, windows-latest, macos-latest]
26
26
  runs-on: ${{ matrix.platform }}
27
27
  steps:
28
28
  - name: Checkout
29
- uses: actions/checkout@v4
29
+ uses: actions/checkout@v7
30
30
  - name: Setup Ruby
31
31
  uses: ruby/setup-ruby@v1
32
32
  with:
33
33
  ruby-version: ${{ matrix.ruby }}
34
34
  bundler-cache: true
35
35
  - name: Setup Python
36
- uses: actions/setup-python@v5
36
+ uses: actions/setup-python@v7
37
37
  with:
38
38
  python-version: ${{ matrix.python }}
39
39
  - name: Run Tests
@@ -4,18 +4,18 @@ on:
4
4
  tags: [ '*' ]
5
5
  jobs:
6
6
  build:
7
- runs-on: ubuntu-22.04
7
+ runs-on: ubuntu-latest
8
8
  steps:
9
- - uses: actions/checkout@v4
9
+ - uses: actions/checkout@v7
10
10
  - name: Set up Ruby
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
13
- ruby-version: '3.3'
13
+ ruby-version: '3.4'
14
14
  bundler-cache: true
15
15
  - name: Setup Python
16
- uses: actions/setup-python@v5
16
+ uses: actions/setup-python@v7
17
17
  with:
18
- python-version: '3.12'
18
+ python-version: '3.13'
19
19
  - name: Build
20
20
  run: bundle exec rake build
21
21
  - name: Publish to RubyGems.org
data/.rubocop.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  AllCops:
2
- NewCops: enable
3
- TargetRubyVersion: 2.6
2
+ NewCops: disable
4
3
  Gemspec/RequireMFA:
5
4
  Enabled: false
6
5
  Metrics/AbcSize:
data/CHANGELOG.adoc CHANGED
@@ -5,10 +5,22 @@
5
5
  This document provides a high-level view of the changes to the {project-name} by release.
6
6
  For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
7
7
 
8
+ == 5.0.0 (2026-07-22) - @slonopotamus
9
+
10
+ * Add explicit dependency on `logger` gem to fix Ruby 3.5+ compatibility
11
+ * Update Pygments to 2.20.0
12
+ * Bump minimal supported Python version to 3.9
13
+
14
+ == 4.0.0 (2025-06-25) - @slonopotamus
15
+
16
+ * Drop support for Ruby 2.6.
17
+ The oldest supported is 2.7 now.
18
+ * Update Pygments to 2.19.2 ({uri-repo})/issues/265[#265])
19
+
8
20
  == 3.0.0 (2024-05-14) - @slonopotamus
9
21
 
10
22
  * Drop support for Ruby 2.5.
11
- The oldest supported is 3.6 now.
23
+ The oldest supported is 2.6 now.
12
24
  * Drop support for Python 3.6 and 3.7.
13
25
  The oldest supported is 3.8 now.
14
26
  * Update Pygments to 2.18.0
data/README.adoc CHANGED
@@ -8,7 +8,7 @@ Ted Nyman <ted@ted.io>; Aman Gupta <aman@tmm1.net>; Marat Radchenko <marat@slono
8
8
  :uri-pygments: https://pygments.org/
9
9
 
10
10
  image:https://img.shields.io/gem/v/{project-name}.svg[Latest Release,link={uri-gem}]
11
- image:{uri-project}/workflows/CI/badge.svg?branch=master[Build Status,link={uri-ci}]
11
+ image:{uri-project}/actions/workflows/ci.yml/badge.svg?branch=master[Build Status,link={uri-ci}]
12
12
 
13
13
  == Introduction
14
14
 
@@ -23,7 +23,7 @@ If a Python process dies, a new one will be spawned on the next pygments.rb requ
23
23
  == System Requirements
24
24
 
25
25
  - Python >= 3.8
26
- - Ruby >= 2.6
26
+ - Ruby >= 2.7
27
27
 
28
28
  == Installation
29
29
 
@@ -41,7 +41,7 @@ And then execute:
41
41
  $ bundle install
42
42
  ----
43
43
 
44
- Or install pygments.rb gem yourself as:
44
+ Or install pygments.rb gem globally:
45
45
 
46
46
  [source,shell script]
47
47
  ----
data/Rakefile CHANGED
@@ -35,7 +35,7 @@ end
35
35
  namespace :vendor do
36
36
  file 'vendor/pygments-main' do |f|
37
37
  sh "pip install --target=#{f.name} pygments"
38
- sh "git add -- #{f.name}"
38
+ sh "git add -f -- #{f.name}"
39
39
  end
40
40
 
41
41
  task :clobber do
data/bench.rb CHANGED
@@ -17,12 +17,12 @@ puts "Iterations: #{num}\n"
17
17
 
18
18
  Benchmark.bm(40) do |x|
19
19
  x.report('pygments popen ') do
20
- (1..num).each { |_i|; Pygments.highlight(code, lexer: 'python'); }
20
+ (1..num).each { |_i|; Pygments.highlight(code, lexer: 'python') }
21
21
  end
22
22
  x.report('pygments popen (process already started) ') do
23
- (1..num).each { |_i|; Pygments.highlight(code, lexer: 'python'); }
23
+ (1..num).each { |_i|; Pygments.highlight(code, lexer: 'python') }
24
24
  end
25
25
  x.report('pygments popen (process already started 2) ') do
26
- (1..num).each { |_i|; Pygments.highlight(code, lexer: 'python'); }
26
+ (1..num).each { |_i|; Pygments.highlight(code, lexer: 'python') }
27
27
  end
28
28
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pygments
4
- VERSION = '3.0.0'
4
+ VERSION = '5.0.0'
5
5
  end
data/pygments.rb.gemspec CHANGED
@@ -22,11 +22,13 @@ Gem::Specification.new do |s|
22
22
  'source_code_uri' => s.homepage
23
23
  }
24
24
 
25
- s.required_ruby_version = '>= 2.6.0'
25
+ s.required_ruby_version = '>= 2.7.0'
26
26
 
27
- s.add_development_dependency 'rake', '~> 13.2.0'
28
- s.add_development_dependency 'rubocop', '~> 1.28.2'
29
- s.add_development_dependency 'test-unit', '~> 3.6.0'
27
+ s.add_runtime_dependency 'logger', '~> 1.7'
28
+
29
+ s.add_development_dependency 'rake', '~> 13.4.1'
30
+ s.add_development_dependency 'rubocop', '~> 1.88.2'
31
+ s.add_development_dependency 'test-unit', '~> 3.7.0'
30
32
 
31
33
  s.files = `git ls-files -z`.split("\0").reject { |f| File.symlink?(f) }
32
34
  end
@@ -199,10 +199,6 @@ class PygmentsCssTest < Test::Unit::TestCase
199
199
  def test_css_prefix_and_options
200
200
  assert_match(/^\.mycode \.codeerr \{/, P.css('.mycode', classprefix: 'code'))
201
201
  end
202
-
203
- def test_css_colorful
204
- assert_match '.c { color: #888888 }', P.css(style: 'colorful')
205
- end
206
202
  end
207
203
 
208
204
  class PygmentsConfigTest < Test::Unit::TestCase
@@ -1,4 +1,4 @@
1
- #!/usr/bin/python3.11
1
+ #!/Library/Developer/CommandLineTools/usr/bin/python3
2
2
  # -*- coding: utf-8 -*-
3
3
  import re
4
4
  import sys
@@ -21,12 +21,12 @@
21
21
  .. _Pygments master branch:
22
22
  https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev
23
23
 
24
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
24
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
25
25
  :license: BSD, see LICENSE for details.
26
26
  """
27
27
  from io import StringIO, BytesIO
28
28
 
29
- __version__ = '2.18.0'
29
+ __version__ = '2.20.0'
30
30
  __docformat__ = 'restructuredtext'
31
31
 
32
32
  __all__ = ['lex', 'format', 'highlight']
@@ -4,7 +4,7 @@
4
4
 
5
5
  Main entry point for ``python -m pygments``.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Command line interface.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -185,7 +185,7 @@ def main_inner(parser, argns):
185
185
  return 0
186
186
 
187
187
  if argns.V:
188
- print(f'Pygments version {__version__}, (c) 2006-2024 by Georg Brandl, Matthäus '
188
+ print(f'Pygments version {__version__}, (c) 2006-present by Georg Brandl, Matthäus '
189
189
  'Chajdas and contributors.')
190
190
  return 0
191
191
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Format colored console output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Module that implements the default filter.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -5,7 +5,7 @@
5
5
  Module containing filter lookup functions and default
6
6
  filters.
7
7
 
8
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -95,8 +95,10 @@ class CodeTagFilter(Filter):
95
95
 
96
96
 
97
97
  class SymbolFilter(Filter):
98
- """Convert mathematical symbols such as \\<longrightarrow> in Isabelle
99
- or \\longrightarrow in LaTeX into Unicode characters.
98
+ """Convert mathematical symbols into Unicode characters.
99
+
100
+ Examples are ``\\<longrightarrow>`` in Isabelle or
101
+ ``\\longrightarrow`` in LaTeX.
100
102
 
101
103
  This is mostly useful for HTML or console output when you want to
102
104
  approximate the source rendering you'd see in an IDE.
@@ -685,8 +687,9 @@ class SymbolFilter(Filter):
685
687
 
686
688
 
687
689
  class KeywordCaseFilter(Filter):
688
- """Convert keywords to lowercase or uppercase or capitalize them, which
689
- means first letter uppercase, rest lowercase.
690
+ """Convert keywords to lowercase or uppercase or capitalize them.
691
+
692
+ This means first letter uppercase, rest lowercase.
690
693
 
691
694
  This can be useful e.g. if you highlight Pascal code and want to adapt the
692
695
  code to your styleguide.
@@ -866,7 +869,7 @@ class VisibleWhitespaceFilter(Filter):
866
869
 
867
870
 
868
871
  class GobbleFilter(Filter):
869
- """Gobbles source code lines (eats initial characters).
872
+ """Gobble source code lines (eats initial characters).
870
873
 
871
874
  This filter drops the first ``n`` characters off every line of code. This
872
875
  may be useful when the source code fed to the lexer is indented by a fixed
@@ -905,8 +908,7 @@ class GobbleFilter(Filter):
905
908
 
906
909
 
907
910
  class TokenMergeFilter(Filter):
908
- """Merges consecutive tokens with the same token type in the output
909
- stream of a lexer.
911
+ """Merge consecutive tokens with the same token type in the output stream.
910
912
 
911
913
  .. versionadded:: 1.2
912
914
  """
@@ -4,7 +4,7 @@
4
4
 
5
5
  Base formatter class.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Pygments formatters.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
File without changes
@@ -4,7 +4,7 @@
4
4
 
5
5
  BBcode formatter.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for groff output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for HTML output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -18,6 +18,8 @@ from pygments.formatter import Formatter
18
18
  from pygments.token import Token, Text, STANDARD_TYPES
19
19
  from pygments.util import get_bool_opt, get_int_opt, get_list_opt
20
20
 
21
+ import html
22
+
21
23
  try:
22
24
  import ctags
23
25
  except ImportError:
@@ -44,7 +46,15 @@ def webify(color):
44
46
  if color.startswith('calc') or color.startswith('var'):
45
47
  return color
46
48
  else:
47
- return '#' + color
49
+ # Check if the color can be shortened from 6 to 3 characters
50
+ color = color.upper()
51
+ if (len(color) == 6 and
52
+ ( color[0] == color[1]
53
+ and color[2] == color[3]
54
+ and color[4] == color[5])):
55
+ return f'#{color[0]}{color[2]}{color[4]}'
56
+ else:
57
+ return f'#{color}'
48
58
 
49
59
 
50
60
  def _get_ttype_class(ttype):
@@ -62,7 +72,7 @@ def _get_ttype_class(ttype):
62
72
  CSSFILE_TEMPLATE = '''\
63
73
  /*
64
74
  generated by Pygments <https://pygments.org/>
65
- Copyright 2006-2024 by the Pygments team.
75
+ Copyright 2006-present by the Pygments team.
66
76
  Licensed under the BSD license, see LICENSE for details.
67
77
  */
68
78
  %(styledefs)s
@@ -73,7 +83,7 @@ DOC_HEADER = '''\
73
83
  "http://www.w3.org/TR/html4/strict.dtd">
74
84
  <!--
75
85
  generated by Pygments <https://pygments.org/>
76
- Copyright 2006-2024 by the Pygments team.
86
+ Copyright 2006-present by the Pygments team.
77
87
  Licensed under the BSD license, see LICENSE for details.
78
88
  -->
79
89
  <html>
@@ -414,14 +424,14 @@ class HtmlFormatter(Formatter):
414
424
  self.nowrap = get_bool_opt(options, 'nowrap', False)
415
425
  self.noclasses = get_bool_opt(options, 'noclasses', False)
416
426
  self.classprefix = options.get('classprefix', '')
417
- self.cssclass = self._decodeifneeded(options.get('cssclass', 'highlight'))
418
- self.cssstyles = self._decodeifneeded(options.get('cssstyles', ''))
427
+ self.cssclass = html.escape(self._decodeifneeded(options.get('cssclass', 'highlight')))
428
+ self.cssstyles = html.escape(self._decodeifneeded(options.get('cssstyles', '')))
419
429
  self.prestyles = self._decodeifneeded(options.get('prestyles', ''))
420
430
  self.cssfile = self._decodeifneeded(options.get('cssfile', ''))
421
431
  self.noclobber_cssfile = get_bool_opt(options, 'noclobber_cssfile', False)
422
432
  self.tagsfile = self._decodeifneeded(options.get('tagsfile', ''))
423
433
  self.tagurlformat = self._decodeifneeded(options.get('tagurlformat', ''))
424
- self.filename = self._decodeifneeded(options.get('filename', ''))
434
+ self.filename = html.escape(self._decodeifneeded(options.get('filename', '')))
425
435
  self.wrapcode = get_bool_opt(options, 'wrapcode', False)
426
436
  self.span_element_openers = {}
427
437
  self.debug_token_types = get_bool_opt(options, 'debug_token_types', False)
@@ -444,9 +454,9 @@ class HtmlFormatter(Formatter):
444
454
  self.linenostep = abs(get_int_opt(options, 'linenostep', 1))
445
455
  self.linenospecial = abs(get_int_opt(options, 'linenospecial', 0))
446
456
  self.nobackground = get_bool_opt(options, 'nobackground', False)
447
- self.lineseparator = options.get('lineseparator', '\n')
448
- self.lineanchors = options.get('lineanchors', '')
449
- self.linespans = options.get('linespans', '')
457
+ self.lineseparator = html.escape(options.get('lineseparator', '\n'))
458
+ self.lineanchors = html.escape(options.get('lineanchors', ''))
459
+ self.linespans = html.escape(options.get('linespans', ''))
450
460
  self.anchorlinenos = get_bool_opt(options, 'anchorlinenos', False)
451
461
  self.hl_lines = set()
452
462
  for lineno in get_list_opt(options, 'hl_lines', []):
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for Pixmap output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
  import os
@@ -132,7 +132,8 @@ class FontManager:
132
132
  '/Library/Fonts/', '/System/Library/Fonts/'):
133
133
  font_map.update(
134
134
  (os.path.splitext(f)[0].lower(), os.path.join(font_dir, f))
135
- for f in os.listdir(font_dir)
135
+ for _, _, files in os.walk(font_dir)
136
+ for f in files
136
137
  if f.lower().endswith(('ttf', 'ttc')))
137
138
 
138
139
  for name in STYLES['NORMAL']:
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for IRC output
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -91,7 +91,6 @@ def ircformat(color, text):
91
91
  add += '\x03' + str(IRC_COLOR_MAP[color]).zfill(2)
92
92
  sub = '\x03' + sub
93
93
  return add + text + sub
94
- return '<'+add+'>'+text+'</'+sub+'>'
95
94
 
96
95
 
97
96
  class IRCFormatter(Formatter):
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for LaTeX fancyvrb output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Other formatters: NullFormatter, RawTokenFormatter.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for Pango markup output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  A formatter that generates RTF files.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for SVG output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for terminal output with ANSI sequences.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  Formatter version 1.
12
12
 
13
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
13
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
14
14
  :license: BSD, see LICENSE for details.
15
15
  """
16
16
 
@@ -169,19 +169,19 @@ class Terminal256Formatter(Formatter):
169
169
  self.xterm_colors.append((0x00, 0xff, 0xff)) # 14
170
170
  self.xterm_colors.append((0xff, 0xff, 0xff)) # 15
171
171
 
172
- # colors 16..232: the 6x6x6 color cube
172
+ # colors 16..231: the 6x6x6 color cube
173
173
 
174
174
  valuerange = (0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff)
175
175
 
176
- for i in range(217):
176
+ for i in range(216):
177
177
  r = valuerange[(i // 36) % 6]
178
178
  g = valuerange[(i // 6) % 6]
179
179
  b = valuerange[i % 6]
180
180
  self.xterm_colors.append((r, g, b))
181
181
 
182
- # colors 233..253: grayscale
182
+ # colors 232..255: grayscale
183
183
 
184
- for i in range(1, 22):
184
+ for i in range(24):
185
185
  v = 8 + i * 10
186
186
  self.xterm_colors.append((v, v, v))
187
187
 
@@ -189,7 +189,7 @@ class Terminal256Formatter(Formatter):
189
189
  distance = 257*257*3 # "infinity" (>distance from #000000 to #ffffff)
190
190
  match = 0
191
191
 
192
- for i in range(0, 254):
192
+ for i in range(0, 256):
193
193
  values = self.xterm_colors[i]
194
194
 
195
195
  rd = r - values[0]
@@ -4,7 +4,7 @@
4
4
 
5
5
  Base lexer classes.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -444,8 +444,9 @@ def using(_other, **kwargs):
444
444
  # function has to create a new lexer instance
445
445
  if kwargs:
446
446
  # XXX: cache that somehow
447
- kwargs.update(lexer.options)
448
- lx = lexer.__class__(**kwargs)
447
+ d = dict(lexer.options)
448
+ d.update(kwargs)
449
+ lx = lexer.__class__(**d)
449
450
  else:
450
451
  lx = lexer
451
452
  s = match.start()
@@ -456,8 +457,9 @@ def using(_other, **kwargs):
456
457
  else:
457
458
  def callback(lexer, match, ctx=None):
458
459
  # XXX: cache that somehow
459
- kwargs.update(lexer.options)
460
- lx = _other(**kwargs)
460
+ d = dict(lexer.options)
461
+ d.update(kwargs)
462
+ lx = _other(**d)
461
463
 
462
464
  s = match.start()
463
465
  for i, t, v in lx.get_tokens_unprocessed(match.group(), **gt_kwargs):
@@ -4,7 +4,7 @@
4
4
 
5
5
  Pygments lexers.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Ada builtins.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10