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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 280541d2488a2731822c26c80dba6d5b3daa03bcdb44b6ae0709f132c4d5a50d
4
- data.tar.gz: c1adc0a17a1432b61412f834a6106f484494d3dd09049a0e350adb9668500566
3
+ metadata.gz: bf3ae31d18e15cd98c6832a2f2cde3b5bbf96c6a5dd23a91c425e990389dadcf
4
+ data.tar.gz: 6940996fda2e470a0204b4c48086aa2829abb4e59118bc41473384d4c0924bb2
5
5
  SHA512:
6
- metadata.gz: 0fe3fa9a236df3fa355e0e6c66ee16304e54b4ede0c50898dc1d15f934897d2499e28e144019ea8cdf717e1fddb26e1ce3370cf9e5076d1bfa0cb36f788e4567
7
- data.tar.gz: 4a2ed57d7d62b5e899fe56cdf6c535b6349037c9ebec81018ed625edb5e21394c027c6fcb1af43fadb7f92dd61e9295f84bb3d79d8b6496f3a7f2802d9919984
6
+ metadata.gz: 9d4e8bf20e67061d3c630ce1b659c22edaa9af08bca7245480a3592fac77ba617fa57b2f15e75222d1fd3d4ffa1315170d07279a6f0af3820dcae598a48e59d5
7
+ data.tar.gz: 634a4c6ed46960cb8e8a65283191b74ce8701b3e741692f9231e128f8ab7c632591d7e0d599d4ca6b2acc4f47f8d3339b93070cfc3c382335074627dcfc9e4af
@@ -6,34 +6,34 @@ on:
6
6
  pull_request:
7
7
  jobs:
8
8
  rubocop:
9
- runs-on: ubuntu-20.04
9
+ runs-on: ubuntu-22.04
10
10
  steps:
11
11
  - name: Checkout
12
- uses: actions/checkout@v3
12
+ uses: actions/checkout@v4
13
13
  - name: Set up Ruby
14
14
  uses: ruby/setup-ruby@v1
15
15
  with:
16
- ruby-version: '3.0'
16
+ ruby-version: '3.3'
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.2', '2.5', '3.1' ]
24
- python: [ '3.6', '3.11' ]
25
- platform: [ ubuntu-20.04, macos-latest, windows-2019 ]
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 ]
26
26
  runs-on: ${{ matrix.platform }}
27
27
  steps:
28
28
  - name: Checkout
29
- uses: actions/checkout@v3
29
+ uses: actions/checkout@v4
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@v4
36
+ uses: actions/setup-python@v5
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-20.04
7
+ runs-on: ubuntu-22.04
8
8
  steps:
9
- - uses: actions/checkout@v3
9
+ - uses: actions/checkout@v4
10
10
  - name: Set up Ruby
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
13
- ruby-version: '3.1'
13
+ ruby-version: '3.3'
14
14
  bundler-cache: true
15
15
  - name: Setup Python
16
- uses: actions/setup-python@v4
16
+ uses: actions/setup-python@v5
17
17
  with:
18
- python-version: '3.11'
18
+ python-version: '3.12'
19
19
  - name: Build
20
20
  run: bundle exec rake build
21
21
  - name: Publish to RubyGems.org
data/.gitignore CHANGED
@@ -1,5 +1,7 @@
1
+ /.bundle/
1
2
  /.idea/
2
3
  /Gemfile.lock
3
4
  /pkg/
4
5
  /tmp
6
+ /vendor/
5
7
  *.pyc
data/.rubocop.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
- TargetRubyVersion: 2.5
3
+ TargetRubyVersion: 2.6
4
4
  Gemspec/RequireMFA:
5
5
  Enabled: false
6
6
  Metrics/AbcSize:
data/CHANGELOG.adoc CHANGED
@@ -5,7 +5,15 @@
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
- == 2.4.1
8
+ == 3.0.0 (2024-05-14) - @slonopotamus
9
+
10
+ * Drop support for Ruby 2.5.
11
+ The oldest supported is 3.6 now.
12
+ * Drop support for Python 3.6 and 3.7.
13
+ The oldest supported is 3.8 now.
14
+ * Update Pygments to 2.18.0
15
+
16
+ == 2.4.1 (2023-11-13) - @slonopotamus
9
17
 
10
18
  * Fix handling of Python virtual environments on Windows ({uri-repo})/issues/256[#256])
11
19
 
data/README.adoc CHANGED
@@ -22,8 +22,8 @@ If a Python process dies, a new one will be spawned on the next pygments.rb requ
22
22
 
23
23
  == System Requirements
24
24
 
25
- - Python >= 3.6
26
- - Ruby >= 2.5
25
+ - Python >= 3.8
26
+ - Ruby >= 2.6
27
27
 
28
28
  == Installation
29
29
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pygments
4
- VERSION = '2.4.1'
4
+ VERSION = '3.0.0'
5
5
  end
data/pygments.rb.gemspec CHANGED
@@ -22,9 +22,9 @@ Gem::Specification.new do |s|
22
22
  'source_code_uri' => s.homepage
23
23
  }
24
24
 
25
- s.required_ruby_version = '>= 2.5.0'
25
+ s.required_ruby_version = '>= 2.6.0'
26
26
 
27
- s.add_development_dependency 'rake', '~> 13.1.0'
27
+ s.add_development_dependency 'rake', '~> 13.2.0'
28
28
  s.add_development_dependency 'rubocop', '~> 1.28.2'
29
29
  s.add_development_dependency 'test-unit', '~> 3.6.0'
30
30
 
@@ -1,4 +1,4 @@
1
- #!/usr/bin/python3.10
1
+ #!/usr/bin/python3.11
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-2023 by the Pygments team, see AUTHORS.
24
+ :copyright: Copyright 2006-2024 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.15.1'
29
+ __version__ = '2.18.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-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
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Command line interface.
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
 
@@ -68,19 +68,19 @@ def _print_help(what, name):
68
68
  try:
69
69
  if what == 'lexer':
70
70
  cls = get_lexer_by_name(name)
71
- print("Help on the %s lexer:" % cls.name)
71
+ print(f"Help on the {cls.name} lexer:")
72
72
  print(dedent(cls.__doc__))
73
73
  elif what == 'formatter':
74
74
  cls = find_formatter_class(name)
75
- print("Help on the %s formatter:" % cls.name)
75
+ print(f"Help on the {cls.name} formatter:")
76
76
  print(dedent(cls.__doc__))
77
77
  elif what == 'filter':
78
78
  cls = find_filter_class(name)
79
- print("Help on the %s filter:" % name)
79
+ print(f"Help on the {name} filter:")
80
80
  print(dedent(cls.__doc__))
81
81
  return 0
82
82
  except (AttributeError, ValueError):
83
- print("%s not found!" % what, file=sys.stderr)
83
+ print(f"{what} not found!", file=sys.stderr)
84
84
  return 1
85
85
 
86
86
 
@@ -97,7 +97,7 @@ def _print_list(what):
97
97
  info.append(tup)
98
98
  info.sort()
99
99
  for i in info:
100
- print(('* %s\n %s %s') % i)
100
+ print(('* {}\n {} {}').format(*i))
101
101
 
102
102
  elif what == 'formatter':
103
103
  print()
@@ -112,7 +112,7 @@ def _print_list(what):
112
112
  info.append(tup)
113
113
  info.sort()
114
114
  for i in info:
115
- print(('* %s\n %s %s') % i)
115
+ print(('* {}\n {} {}').format(*i))
116
116
 
117
117
  elif what == 'filter':
118
118
  print()
@@ -122,7 +122,7 @@ def _print_list(what):
122
122
  for name in get_all_filters():
123
123
  cls = find_filter_class(name)
124
124
  print("* " + name + ':')
125
- print(" %s" % docstring_headline(cls))
125
+ print(f" {docstring_headline(cls)}")
126
126
 
127
127
  elif what == 'style':
128
128
  print()
@@ -132,7 +132,7 @@ def _print_list(what):
132
132
  for name in get_all_styles():
133
133
  cls = get_style_by_name(name)
134
134
  print("* " + name + ':')
135
- print(" %s" % docstring_headline(cls))
135
+ print(f" {docstring_headline(cls)}")
136
136
 
137
137
 
138
138
  def _print_list_as_json(requested_items):
@@ -185,8 +185,8 @@ def main_inner(parser, argns):
185
185
  return 0
186
186
 
187
187
  if argns.V:
188
- print('Pygments version %s, (c) 2006-2023 by Georg Brandl, Matthäus '
189
- 'Chajdas and contributors.' % __version__)
188
+ print(f'Pygments version {__version__}, (c) 2006-2024 by Georg Brandl, Matthäus '
189
+ 'Chajdas and contributors.')
190
190
  return 0
191
191
 
192
192
  def is_only_option(opt):
@@ -659,7 +659,7 @@ def main(args=sys.argv):
659
659
  msg = info[-1].strip()
660
660
  if len(info) >= 3:
661
661
  # extract relevant file and position info
662
- msg += '\n (f%s)' % info[-2].split('\n')[0].strip()[1:]
662
+ msg += '\n (f{})'.format(info[-2].split('\n')[0].strip()[1:])
663
663
  print(file=sys.stderr)
664
664
  print('*** Error while highlighting:', file=sys.stderr)
665
665
  print(msg, file=sys.stderr)
@@ -4,7 +4,7 @@
4
4
 
5
5
  Format colored console output.
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
 
@@ -27,12 +27,12 @@ light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brig
27
27
  "brightmagenta", "brightcyan", "white"]
28
28
 
29
29
  x = 30
30
- for d, l in zip(dark_colors, light_colors):
31
- codes[d] = esc + "%im" % x
32
- codes[l] = esc + "%im" % (60 + x)
30
+ for dark, light in zip(dark_colors, light_colors):
31
+ codes[dark] = esc + "%im" % x
32
+ codes[light] = esc + "%im" % (60 + x)
33
33
  x += 1
34
34
 
35
- del d, l, x
35
+ del dark, light, x
36
36
 
37
37
  codes["white"] = codes["bold"]
38
38
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Module that implements the default filter.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -62,8 +62,7 @@ class FunctionFilter(Filter):
62
62
 
63
63
  def __init__(self, **options):
64
64
  if not hasattr(self, 'function'):
65
- raise TypeError('%r used without bound function' %
66
- self.__class__.__name__)
65
+ raise TypeError(f'{self.__class__.__name__!r} used without bound function')
67
66
  Filter.__init__(self, **options)
68
67
 
69
68
  def filter(self, lexer, stream):
@@ -5,7 +5,7 @@
5
5
  Module containing filter lookup functions and default
6
6
  filters.
7
7
 
8
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -39,7 +39,7 @@ def get_filter_by_name(filtername, **options):
39
39
  if cls:
40
40
  return cls(**options)
41
41
  else:
42
- raise ClassNotFound('filter %r not found' % filtername)
42
+ raise ClassNotFound(f'filter {filtername!r} not found')
43
43
 
44
44
 
45
45
  def get_all_filters():
@@ -79,9 +79,9 @@ class CodeTagFilter(Filter):
79
79
  Filter.__init__(self, **options)
80
80
  tags = get_list_opt(options, 'codetags',
81
81
  ['XXX', 'TODO', 'FIXME', 'BUG', 'NOTE'])
82
- self.tag_re = re.compile(r'\b(%s)\b' % '|'.join([
82
+ self.tag_re = re.compile(r'\b({})\b'.format('|'.join([
83
83
  re.escape(tag) for tag in tags if tag
84
- ]))
84
+ ])))
85
85
 
86
86
  def filter(self, lexer, stream):
87
87
  regex = self.tag_re
@@ -4,7 +4,7 @@
4
4
 
5
5
  Base formatter class.
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
 
@@ -122,3 +122,8 @@ class Formatter:
122
122
  # wrap the outfile in a StreamWriter
123
123
  outfile = codecs.lookup(self.encoding)[3](outfile)
124
124
  return self.format_unencoded(tokensource, outfile)
125
+
126
+ # Allow writing Formatter[str] or Formatter[bytes]. That's equivalent to
127
+ # Formatter. This helps when using third-party type stubs from typeshed.
128
+ def __class_getitem__(cls, name):
129
+ return cls
@@ -4,7 +4,7 @@
4
4
 
5
5
  Pygments formatters.
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
 
@@ -77,7 +77,7 @@ def get_formatter_by_name(_alias, **options):
77
77
  """
78
78
  cls = find_formatter_class(_alias)
79
79
  if cls is None:
80
- raise ClassNotFound("no formatter found for name %r" % _alias)
80
+ raise ClassNotFound(f"no formatter found for name {_alias!r}")
81
81
  return cls(**options)
82
82
 
83
83
 
@@ -103,17 +103,16 @@ def load_formatter_from_file(filename, formattername="CustomFormatter", **option
103
103
  exec(f.read(), custom_namespace)
104
104
  # Retrieve the class `formattername` from that namespace
105
105
  if formattername not in custom_namespace:
106
- raise ClassNotFound('no valid %s class found in %s' %
107
- (formattername, filename))
106
+ raise ClassNotFound(f'no valid {formattername} class found in {filename}')
108
107
  formatter_class = custom_namespace[formattername]
109
108
  # And finally instantiate it with the options
110
109
  return formatter_class(**options)
111
110
  except OSError as err:
112
- raise ClassNotFound('cannot read %s: %s' % (filename, err))
111
+ raise ClassNotFound(f'cannot read {filename}: {err}')
113
112
  except ClassNotFound:
114
113
  raise
115
114
  except Exception as err:
116
- raise ClassNotFound('error when loading custom formatter: %s' % err)
115
+ raise ClassNotFound(f'error when loading custom formatter: {err}')
117
116
 
118
117
 
119
118
  def get_formatter_for_filename(fn, **options):
@@ -131,11 +130,11 @@ def get_formatter_for_filename(fn, **options):
131
130
  if name not in _formatter_cache:
132
131
  _load_formatters(modname)
133
132
  return _formatter_cache[name](**options)
134
- for cls in find_plugin_formatters():
133
+ for _name, cls in find_plugin_formatters():
135
134
  for filename in cls.filenames:
136
135
  if _fn_matches(fn, filename):
137
136
  return cls(**options)
138
- raise ClassNotFound("no formatter found for file name %r" % fn)
137
+ raise ClassNotFound(f"no formatter found for file name {fn!r}")
139
138
 
140
139
 
141
140
  class _automodule(types.ModuleType):
File without changes
@@ -4,7 +4,7 @@
4
4
 
5
5
  BBcode formatter.
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
 
@@ -60,7 +60,7 @@ class BBCodeFormatter(Formatter):
60
60
  for ttype, ndef in self.style:
61
61
  start = end = ''
62
62
  if ndef['color']:
63
- start += '[color=#%s]' % ndef['color']
63
+ start += '[color=#{}]'.format(ndef['color'])
64
64
  end = '[/color]' + end
65
65
  if ndef['bold']:
66
66
  start += '[b]'
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for groff output.
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
 
@@ -63,7 +63,7 @@ class GroffFormatter(Formatter):
63
63
  for ttype, ndef in self.style:
64
64
  start = end = ''
65
65
  if ndef['color']:
66
- start += '\\m[%s]' % ndef['color']
66
+ start += '\\m[{}]'.format(ndef['color'])
67
67
  end = '\\m[]' + end
68
68
  if ndef['bold']:
69
69
  start += bold
@@ -72,7 +72,7 @@ class GroffFormatter(Formatter):
72
72
  start += italic
73
73
  end = regular + end
74
74
  if ndef['bgcolor']:
75
- start += '\\M[%s]' % ndef['bgcolor']
75
+ start += '\\M[{}]'.format(ndef['bgcolor'])
76
76
  end = '\\M[]' + end
77
77
 
78
78
  self.styles[ttype] = start, end