pygments.rb 2.4.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +8 -8
  3. data/.github/workflows/release.yml +5 -5
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +1 -1
  6. data/CHANGELOG.adoc +9 -1
  7. data/README.adoc +2 -2
  8. data/lib/pygments/version.rb +1 -1
  9. data/pygments.rb.gemspec +2 -2
  10. data/vendor/pygments-main/bin/pygmentize +1 -1
  11. data/vendor/pygments-main/pygments/__init__.py +2 -2
  12. data/vendor/pygments-main/pygments/__main__.py +1 -1
  13. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  14. data/vendor/pygments-main/pygments/console.py +5 -5
  15. data/vendor/pygments-main/pygments/filter.py +2 -3
  16. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  17. data/vendor/pygments-main/pygments/formatter.py +6 -1
  18. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  19. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  20. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  21. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  22. data/vendor/pygments-main/pygments/formatters/html.py +38 -40
  23. data/vendor/pygments-main/pygments/formatters/img.py +51 -11
  24. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  25. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  26. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  27. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  28. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  29. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  30. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  32. data/vendor/pygments-main/pygments/lexer.py +51 -33
  33. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  34. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  35. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  38. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  44. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  45. data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -11
  46. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  48. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  50. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  51. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  54. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  55. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  60. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  62. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  63. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  64. data/vendor/pygments-main/pygments/lexers/algebra.py +9 -13
  65. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  67. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  68. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  69. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  70. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  71. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  72. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  73. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  74. data/vendor/pygments-main/pygments/lexers/asm.py +28 -15
  75. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  76. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  77. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  78. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  79. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  80. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  81. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  82. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  83. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  84. data/vendor/pygments-main/pygments/lexers/bqn.py +109 -0
  85. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  86. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  87. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  88. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  89. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  92. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  93. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  94. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  95. data/vendor/pygments-main/pygments/lexers/configs.py +342 -108
  96. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  97. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  99. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  100. data/vendor/pygments-main/pygments/lexers/css.py +5 -5
  101. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  103. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  104. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  105. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  106. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  107. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  108. data/vendor/pygments-main/pygments/lexers/dotnet.py +19 -14
  109. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  110. data/vendor/pygments-main/pygments/lexers/dylan.py +8 -16
  111. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  112. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  113. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  114. data/vendor/pygments-main/pygments/lexers/elpi.py +28 -21
  115. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  116. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  117. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  118. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  119. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  120. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  121. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  122. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  123. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  124. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  125. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  126. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  127. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  129. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  130. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  131. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  132. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  133. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  134. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  135. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  136. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  137. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  138. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  139. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/haskell.py +27 -32
  141. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  142. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  143. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  144. data/vendor/pygments-main/pygments/lexers/html.py +34 -13
  145. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  146. data/vendor/pygments-main/pygments/lexers/igor.py +305 -290
  147. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  148. data/vendor/pygments-main/pygments/lexers/installers.py +7 -9
  149. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  150. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  151. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  152. data/vendor/pygments-main/pygments/lexers/javascript.py +18 -19
  153. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  154. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  155. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  156. data/vendor/pygments-main/pygments/lexers/jsx.py +75 -0
  157. data/vendor/pygments-main/pygments/lexers/julia.py +4 -5
  158. data/vendor/pygments-main/pygments/lexers/jvm.py +98 -116
  159. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  160. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  161. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  162. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  163. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  164. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  165. data/vendor/pygments-main/pygments/lexers/macaulay2.py +53 -4
  166. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  167. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  168. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  169. data/vendor/pygments-main/pygments/lexers/matlab.py +10 -12
  170. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  171. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  172. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  173. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  174. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  175. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  176. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  177. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  178. data/vendor/pygments-main/pygments/lexers/mojo.py +704 -0
  179. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  180. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  181. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  182. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  183. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  184. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  185. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  186. data/vendor/pygments-main/pygments/lexers/objective.py +14 -6
  187. data/vendor/pygments-main/pygments/lexers/ooc.py +2 -3
  188. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  189. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  190. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  191. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  192. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  193. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  194. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  195. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  196. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  197. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  198. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  199. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  200. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  201. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  202. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  203. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  204. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  205. data/vendor/pygments-main/pygments/lexers/python.py +24 -24
  206. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  207. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  208. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  209. data/vendor/pygments-main/pygments/lexers/r.py +8 -6
  210. data/vendor/pygments-main/pygments/lexers/rdf.py +19 -13
  211. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  212. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  213. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  214. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  215. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  216. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  217. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  218. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  219. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  220. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  221. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  222. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  223. data/vendor/pygments-main/pygments/lexers/scripting.py +354 -42
  224. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/shell.py +107 -129
  226. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  227. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  228. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  229. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  230. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  231. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  232. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  233. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  234. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  235. data/vendor/pygments-main/pygments/lexers/special.py +8 -3
  236. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  237. data/vendor/pygments-main/pygments/lexers/sql.py +24 -18
  238. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  239. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  240. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  241. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  242. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  243. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  244. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  245. data/vendor/pygments-main/pygments/lexers/templates.py +131 -72
  246. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  247. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  248. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  249. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  250. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  251. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  252. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  253. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  254. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  255. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  256. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  257. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  258. data/vendor/pygments-main/pygments/lexers/typst.py +104 -0
  259. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  260. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  261. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  262. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  263. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  264. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  265. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  266. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  267. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  268. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  269. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  270. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  271. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  272. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  273. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  274. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  275. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  276. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  277. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  278. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  279. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  280. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  281. data/vendor/pygments-main/pygments/modeline.py +4 -4
  282. data/vendor/pygments-main/pygments/plugin.py +3 -19
  283. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  284. data/vendor/pygments-main/pygments/scanner.py +1 -1
  285. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  286. data/vendor/pygments-main/pygments/style.py +8 -2
  287. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  288. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  289. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  290. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  291. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  292. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  293. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  294. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  295. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  296. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  297. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  298. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  299. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  300. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  301. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  302. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  303. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  304. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  305. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  306. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  307. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  308. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  309. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  310. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  311. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  312. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  313. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  314. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  315. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  316. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  317. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  318. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  319. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  320. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  321. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  322. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  323. data/vendor/pygments-main/pygments/styles/rrt.py +8 -2
  324. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  325. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  326. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  327. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  328. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  329. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  330. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  331. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  332. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  333. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  334. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  335. data/vendor/pygments-main/pygments/token.py +2 -1
  336. data/vendor/pygments-main/pygments/unistring.py +5 -5
  337. data/vendor/pygments-main/pygments/util.py +13 -19
  338. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/METADATA +14 -13
  339. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +663 -0
  340. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/WHEEL +1 -2
  341. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/AUTHORS +13 -0
  342. metadata +39 -15
  343. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  344. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  345. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/INSTALLER +0 -0
  346. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/REQUESTED +0 -0
  347. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/entry_points.txt +0 -0
  348. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/LICENSE +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for ML family 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,14 +20,14 @@ __all__ = ['SMLLexer', 'OcamlLexer', 'OpaLexer', 'ReasonLexer', 'FStarLexer']
20
20
  class SMLLexer(RegexLexer):
21
21
  """
22
22
  For the Standard ML language.
23
-
24
- .. versionadded:: 1.5
25
23
  """
26
24
 
27
25
  name = 'Standard ML'
28
26
  aliases = ['sml']
29
27
  filenames = ['*.sml', '*.sig', '*.fun']
30
28
  mimetypes = ['text/x-standardml', 'application/x-standardml']
29
+ url = 'https://en.wikipedia.org/wiki/Standard_ML'
30
+ version_added = '1.5'
31
31
 
32
32
  alphanumid_reserved = {
33
33
  # Core
@@ -121,7 +121,7 @@ class SMLLexer(RegexLexer):
121
121
 
122
122
  'core': [
123
123
  # Punctuation that doesn't overlap symbolic identifiers
124
- (r'(%s)' % '|'.join(re.escape(z) for z in nonid_reserved),
124
+ (r'({})'.format('|'.join(re.escape(z) for z in nonid_reserved)),
125
125
  Punctuation),
126
126
 
127
127
  # Special constants: strings, floats, numbers in decimal and hex
@@ -137,8 +137,8 @@ class SMLLexer(RegexLexer):
137
137
 
138
138
  # Labels
139
139
  (r'#\s*[1-9][0-9]*', Name.Label),
140
- (r'#\s*(%s)' % alphanumid_re, Name.Label),
141
- (r'#\s+(%s)' % symbolicid_re, Name.Label),
140
+ (rf'#\s*({alphanumid_re})', Name.Label),
141
+ (rf'#\s+({symbolicid_re})', Name.Label),
142
142
  # Some reserved words trigger a special, local lexer state change
143
143
  (r'\b(datatype|abstype)\b(?!\')', Keyword.Reserved, 'dname'),
144
144
  (r'\b(exception)\b(?!\')', Keyword.Reserved, 'ename'),
@@ -148,14 +148,14 @@ class SMLLexer(RegexLexer):
148
148
 
149
149
  # Regular identifiers, long and otherwise
150
150
  (r'\'[\w\']*', Name.Decorator),
151
- (r'(%s)(\.)' % alphanumid_re, long_id_callback, "dotted"),
152
- (r'(%s)' % alphanumid_re, id_callback),
153
- (r'(%s)' % symbolicid_re, id_callback),
151
+ (rf'({alphanumid_re})(\.)', long_id_callback, "dotted"),
152
+ (rf'({alphanumid_re})', id_callback),
153
+ (rf'({symbolicid_re})', id_callback),
154
154
  ],
155
155
  'dotted': [
156
- (r'(%s)(\.)' % alphanumid_re, long_id_callback),
157
- (r'(%s)' % alphanumid_re, end_id_callback, "#pop"),
158
- (r'(%s)' % symbolicid_re, end_id_callback, "#pop"),
156
+ (rf'({alphanumid_re})(\.)', long_id_callback),
157
+ (rf'({alphanumid_re})', end_id_callback, "#pop"),
158
+ (rf'({symbolicid_re})', end_id_callback, "#pop"),
159
159
  (r'\s+', Error),
160
160
  (r'\S+', Error),
161
161
  ],
@@ -208,7 +208,7 @@ class SMLLexer(RegexLexer):
208
208
  'string': stringy(String.Double),
209
209
 
210
210
  'breakout': [
211
- (r'(?=\b(%s)\b(?!\'))' % '|'.join(alphanumid_reserved), Text, '#pop'),
211
+ (r'(?=\b({})\b(?!\'))'.format('|'.join(alphanumid_reserved)), Text, '#pop'),
212
212
  ],
213
213
 
214
214
  # Dealing with what comes after module system keywords
@@ -216,7 +216,7 @@ class SMLLexer(RegexLexer):
216
216
  include('whitespace'),
217
217
  include('breakout'),
218
218
 
219
- (r'(%s)' % alphanumid_re, Name.Namespace),
219
+ (rf'({alphanumid_re})', Name.Namespace),
220
220
  default('#pop'),
221
221
  ],
222
222
 
@@ -226,8 +226,8 @@ class SMLLexer(RegexLexer):
226
226
  (r'\'[\w\']*', Name.Decorator),
227
227
  (r'\(', Punctuation, 'tyvarseq'),
228
228
 
229
- (r'(%s)' % alphanumid_re, Name.Function, '#pop'),
230
- (r'(%s)' % symbolicid_re, Name.Function, '#pop'),
229
+ (rf'({alphanumid_re})', Name.Function, '#pop'),
230
+ (rf'({symbolicid_re})', Name.Function, '#pop'),
231
231
 
232
232
  # Ignore interesting function declarations like "fun (x + y) = ..."
233
233
  default('#pop'),
@@ -239,12 +239,12 @@ class SMLLexer(RegexLexer):
239
239
  (r'\'[\w\']*', Name.Decorator),
240
240
  (r'\(', Punctuation, 'tyvarseq'),
241
241
 
242
- (r'(%s)(\s*)(=(?!%s))' % (alphanumid_re, symbolicid_re),
242
+ (rf'({alphanumid_re})(\s*)(=(?!{symbolicid_re}))',
243
243
  bygroups(Name.Variable, Text, Punctuation), '#pop'),
244
- (r'(%s)(\s*)(=(?!%s))' % (symbolicid_re, symbolicid_re),
244
+ (rf'({symbolicid_re})(\s*)(=(?!{symbolicid_re}))',
245
245
  bygroups(Name.Variable, Text, Punctuation), '#pop'),
246
- (r'(%s)' % alphanumid_re, Name.Variable, '#pop'),
247
- (r'(%s)' % symbolicid_re, Name.Variable, '#pop'),
246
+ (rf'({alphanumid_re})', Name.Variable, '#pop'),
247
+ (rf'({symbolicid_re})', Name.Variable, '#pop'),
248
248
 
249
249
  # Ignore interesting patterns like 'val (x, y)'
250
250
  default('#pop'),
@@ -257,10 +257,10 @@ class SMLLexer(RegexLexer):
257
257
 
258
258
  (r'\'[\w\']*', Name.Decorator),
259
259
  (r'\(', Punctuation, 'tyvarseq'),
260
- (r'=(?!%s)' % symbolicid_re, Punctuation, ('#pop', 'typbind')),
260
+ (rf'=(?!{symbolicid_re})', Punctuation, ('#pop', 'typbind')),
261
261
 
262
- (r'(%s)' % alphanumid_re, Keyword.Type),
263
- (r'(%s)' % symbolicid_re, Keyword.Type),
262
+ (rf'({alphanumid_re})', Keyword.Type),
263
+ (rf'({symbolicid_re})', Keyword.Type),
264
264
  (r'\S+', Error, '#pop'),
265
265
  ],
266
266
 
@@ -284,11 +284,11 @@ class SMLLexer(RegexLexer):
284
284
  (r'\(', Punctuation, 'tyvarseq'),
285
285
  (r'(=)(\s*)(datatype)',
286
286
  bygroups(Punctuation, Text, Keyword.Reserved), '#pop'),
287
- (r'=(?!%s)' % symbolicid_re, Punctuation,
287
+ (rf'=(?!{symbolicid_re})', Punctuation,
288
288
  ('#pop', 'datbind', 'datcon')),
289
289
 
290
- (r'(%s)' % alphanumid_re, Keyword.Type),
291
- (r'(%s)' % symbolicid_re, Keyword.Type),
290
+ (rf'({alphanumid_re})', Keyword.Type),
291
+ (rf'({symbolicid_re})', Keyword.Type),
292
292
  (r'\S+', Error, '#pop'),
293
293
  ],
294
294
 
@@ -300,9 +300,9 @@ class SMLLexer(RegexLexer):
300
300
  (r'\b(withtype)\b(?!\')', Keyword.Reserved, ('#pop', 'tname')),
301
301
  (r'\b(of)\b(?!\')', Keyword.Reserved),
302
302
 
303
- (r'(\|)(\s*)(%s)' % alphanumid_re,
303
+ (rf'(\|)(\s*)({alphanumid_re})',
304
304
  bygroups(Punctuation, Text, Name.Class)),
305
- (r'(\|)(\s+)(%s)' % symbolicid_re,
305
+ (rf'(\|)(\s+)({symbolicid_re})',
306
306
  bygroups(Punctuation, Text, Name.Class)),
307
307
 
308
308
  include('breakout'),
@@ -314,20 +314,20 @@ class SMLLexer(RegexLexer):
314
314
  'ename': [
315
315
  include('whitespace'),
316
316
 
317
- (r'(and\b)(\s+)(%s)' % alphanumid_re,
317
+ (rf'(and\b)(\s+)({alphanumid_re})',
318
318
  bygroups(Keyword.Reserved, Text, Name.Class)),
319
- (r'(and\b)(\s*)(%s)' % symbolicid_re,
319
+ (rf'(and\b)(\s*)({symbolicid_re})',
320
320
  bygroups(Keyword.Reserved, Text, Name.Class)),
321
321
  (r'\b(of)\b(?!\')', Keyword.Reserved),
322
- (r'(%s)|(%s)' % (alphanumid_re, symbolicid_re), Name.Class),
322
+ (rf'({alphanumid_re})|({symbolicid_re})', Name.Class),
323
323
 
324
324
  default('#pop'),
325
325
  ],
326
326
 
327
327
  'datcon': [
328
328
  include('whitespace'),
329
- (r'(%s)' % alphanumid_re, Name.Class, '#pop'),
330
- (r'(%s)' % symbolicid_re, Name.Class, '#pop'),
329
+ (rf'({alphanumid_re})', Name.Class, '#pop'),
330
+ (rf'({symbolicid_re})', Name.Class, '#pop'),
331
331
  (r'\S+', Error, '#pop'),
332
332
  ],
333
333
 
@@ -355,8 +355,6 @@ class SMLLexer(RegexLexer):
355
355
  class OcamlLexer(RegexLexer):
356
356
  """
357
357
  For the OCaml language.
358
-
359
- .. versionadded:: 0.7
360
358
  """
361
359
 
362
360
  name = 'OCaml'
@@ -364,15 +362,16 @@ class OcamlLexer(RegexLexer):
364
362
  aliases = ['ocaml']
365
363
  filenames = ['*.ml', '*.mli', '*.mll', '*.mly']
366
364
  mimetypes = ['text/x-ocaml']
365
+ version_added = '0.7'
367
366
 
368
367
  keywords = (
369
- 'as', 'assert', 'begin', 'class', 'constraint', 'do', 'done',
368
+ 'and', 'as', 'assert', 'begin', 'class', 'constraint', 'do', 'done',
370
369
  'downto', 'else', 'end', 'exception', 'external', 'false',
371
370
  'for', 'fun', 'function', 'functor', 'if', 'in', 'include',
372
371
  'inherit', 'initializer', 'lazy', 'let', 'match', 'method',
373
372
  'module', 'mutable', 'new', 'object', 'of', 'open', 'private',
374
373
  'raise', 'rec', 'sig', 'struct', 'then', 'to', 'true', 'try',
375
- 'type', 'value', 'val', 'virtual', 'when', 'while', 'with',
374
+ 'type', 'val', 'virtual', 'when', 'while', 'with',
376
375
  )
377
376
  keyopts = (
378
377
  '!=', '#', '&', '&&', r'\(', r'\)', r'\*', r'\+', ',', '-',
@@ -382,7 +381,7 @@ class OcamlLexer(RegexLexer):
382
381
  )
383
382
 
384
383
  operators = r'[!$%&*+\./:<=>?@^|~-]'
385
- word_operators = ('and', 'asr', 'land', 'lor', 'lsl', 'lxor', 'mod', 'or')
384
+ word_operators = ('asr', 'land', 'lor', 'lsl', 'lxor', 'mod', 'or')
386
385
  prefix_syms = r'[!?~]'
387
386
  infix_syms = r'[=<>@^|&+\*/$%-]'
388
387
  primitives = ('unit', 'int', 'float', 'bool', 'string', 'char', 'list', 'array')
@@ -399,11 +398,11 @@ class OcamlLexer(RegexLexer):
399
398
  (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Namespace, 'dotted'),
400
399
  (r'\b([A-Z][\w\']*)', Name.Class),
401
400
  (r'\(\*(?![)])', Comment, 'comment'),
402
- (r'\b(%s)\b' % '|'.join(keywords), Keyword),
403
- (r'(%s)' % '|'.join(keyopts[::-1]), Operator),
404
- (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
405
- (r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
406
- (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
401
+ (r'\b({})\b'.format('|'.join(keywords)), Keyword),
402
+ (r'({})'.format('|'.join(keyopts[::-1])), Operator),
403
+ (rf'({infix_syms}|{prefix_syms})?{operators}', Operator),
404
+ (r'\b({})\b'.format('|'.join(word_operators)), Operator.Word),
405
+ (r'\b({})\b'.format('|'.join(primitives)), Keyword.Type),
407
406
 
408
407
  (r"[^\W\d][\w']*", Name),
409
408
 
@@ -448,14 +447,14 @@ class OcamlLexer(RegexLexer):
448
447
  class OpaLexer(RegexLexer):
449
448
  """
450
449
  Lexer for the Opa language.
451
-
452
- .. versionadded:: 1.5
453
450
  """
454
451
 
455
452
  name = 'Opa'
456
453
  aliases = ['opa']
457
454
  filenames = ['*.opa']
458
455
  mimetypes = ['text/x-opa']
456
+ url = 'http://opalang.org'
457
+ version_added = '1.5'
459
458
 
460
459
  # most of these aren't strictly keywords
461
460
  # but if you color only real keywords, you might just
@@ -557,8 +556,8 @@ class OpaLexer(RegexLexer):
557
556
  # way to syntactic distinguish binding constructions
558
557
  # unfortunately, this colors the equal in {x=2} too
559
558
  (r'=(?!'+op_re+r')', Keyword),
560
- (r'(%s)+' % op_re, Operator),
561
- (r'(%s)+' % punc_re, Operator),
559
+ (rf'({op_re})+', Operator),
560
+ (rf'({punc_re})+', Operator),
562
561
 
563
562
  # coercions
564
563
  (r':', Operator, 'type'),
@@ -771,8 +770,6 @@ class OpaLexer(RegexLexer):
771
770
  class ReasonLexer(RegexLexer):
772
771
  """
773
772
  For the ReasonML language.
774
-
775
- .. versionadded:: 2.6
776
773
  """
777
774
 
778
775
  name = 'ReasonML'
@@ -780,6 +777,7 @@ class ReasonLexer(RegexLexer):
780
777
  aliases = ['reasonml', 'reason']
781
778
  filenames = ['*.re', '*.rei']
782
779
  mimetypes = ['text/x-reasonml']
780
+ version_added = '2.6'
783
781
 
784
782
  keywords = (
785
783
  'as', 'assert', 'begin', 'class', 'constraint', 'do', 'done', 'downto',
@@ -815,11 +813,11 @@ class ReasonLexer(RegexLexer):
815
813
  (r'\b([A-Z][\w\']*)', Name.Class),
816
814
  (r'//.*?\n', Comment.Single),
817
815
  (r'\/\*(?!/)', Comment.Multiline, 'comment'),
818
- (r'\b(%s)\b' % '|'.join(keywords), Keyword),
819
- (r'(%s)' % '|'.join(keyopts[::-1]), Operator.Word),
820
- (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
821
- (r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
822
- (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
816
+ (r'\b({})\b'.format('|'.join(keywords)), Keyword),
817
+ (r'({})'.format('|'.join(keyopts[::-1])), Operator.Word),
818
+ (rf'({infix_syms}|{prefix_syms})?{operators}', Operator),
819
+ (r'\b({})\b'.format('|'.join(word_operators)), Operator.Word),
820
+ (r'\b({})\b'.format('|'.join(primitives)), Keyword.Type),
823
821
 
824
822
  (r"[^\W\d][\w']*", Name),
825
823
 
@@ -864,7 +862,6 @@ class ReasonLexer(RegexLexer):
864
862
  class FStarLexer(RegexLexer):
865
863
  """
866
864
  For the F* language.
867
- .. versionadded:: 2.7
868
865
  """
869
866
 
870
867
  name = 'FStar'
@@ -872,6 +869,7 @@ class FStarLexer(RegexLexer):
872
869
  aliases = ['fstar']
873
870
  filenames = ['*.fst', '*.fsti']
874
871
  mimetypes = ['text/x-fstar']
872
+ version_added = '2.7'
875
873
 
876
874
  keywords = (
877
875
  'abstract', 'attributes', 'noeq', 'unopteq', 'and'
@@ -912,12 +910,12 @@ class FStarLexer(RegexLexer):
912
910
  (r'\b([A-Z][\w\']*)', Name.Class),
913
911
  (r'\(\*(?![)])', Comment, 'comment'),
914
912
  (r'\/\/.+$', Comment),
915
- (r'\b(%s)\b' % '|'.join(keywords), Keyword),
916
- (r'\b(%s)\b' % '|'.join(assume_keywords), Name.Exception),
917
- (r'\b(%s)\b' % '|'.join(decl_keywords), Keyword.Declaration),
918
- (r'(%s)' % '|'.join(keyopts[::-1]), Operator),
919
- (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
920
- (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
913
+ (r'\b({})\b'.format('|'.join(keywords)), Keyword),
914
+ (r'\b({})\b'.format('|'.join(assume_keywords)), Name.Exception),
915
+ (r'\b({})\b'.format('|'.join(decl_keywords)), Keyword.Declaration),
916
+ (r'({})'.format('|'.join(keyopts[::-1])), Operator),
917
+ (rf'({infix_syms}|{prefix_syms})?{operators}', Operator),
918
+ (r'\b({})\b'.format('|'.join(primitives)), Keyword.Type),
921
919
 
922
920
  (r"[^\W\d][\w']*", Name),
923
921
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for modeling 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
 
@@ -23,14 +23,13 @@ __all__ = ['ModelicaLexer', 'BugsLexer', 'JagsLexer', 'StanLexer']
23
23
  class ModelicaLexer(RegexLexer):
24
24
  """
25
25
  For Modelica source code.
26
-
27
- .. versionadded:: 1.1
28
26
  """
29
27
  name = 'Modelica'
30
28
  url = 'http://www.modelica.org/'
31
29
  aliases = ['modelica']
32
30
  filenames = ['*.mo']
33
31
  mimetypes = ['text/x-modelica']
32
+ version_added = '1.1'
34
33
 
35
34
  flags = re.DOTALL | re.MULTILINE
36
35
 
@@ -100,13 +99,13 @@ class BugsLexer(RegexLexer):
100
99
  """
101
100
  Pygments Lexer for OpenBugs and WinBugs
102
101
  models.
103
-
104
- .. versionadded:: 1.6
105
102
  """
106
103
 
107
104
  name = 'BUGS'
108
105
  aliases = ['bugs', 'winbugs', 'openbugs']
109
106
  filenames = ['*.bug']
107
+ url = 'https://www.mrc-bsu.cam.ac.uk/software/bugs/openbugs'
108
+ version_added = '1.6'
110
109
 
111
110
  _FUNCTIONS = (
112
111
  # Scalar functions
@@ -166,8 +165,7 @@ class BugsLexer(RegexLexer):
166
165
  # Reserved Words
167
166
  (r'(for|in)(?![\w.])', Keyword.Reserved),
168
167
  # Built-in Functions
169
- (r'(%s)(?=\s*\()'
170
- % r'|'.join(_FUNCTIONS + _DISTRIBUTIONS),
168
+ (r'({})(?=\s*\()'.format(r'|'.join(_FUNCTIONS + _DISTRIBUTIONS)),
171
169
  Name.Builtin),
172
170
  # Regular variable names
173
171
  (r'[A-Za-z][\w.]*', Name),
@@ -195,13 +193,13 @@ class BugsLexer(RegexLexer):
195
193
  class JagsLexer(RegexLexer):
196
194
  """
197
195
  Pygments Lexer for JAGS.
198
-
199
- .. versionadded:: 1.6
200
196
  """
201
197
 
202
198
  name = 'JAGS'
203
199
  aliases = ['jags']
204
200
  filenames = ['*.jag', '*.bug']
201
+ url = 'https://mcmc-jags.sourceforge.io'
202
+ version_added = '1.6'
205
203
 
206
204
  # JAGS
207
205
  _FUNCTIONS = (
@@ -215,7 +213,7 @@ class JagsLexer(RegexLexer):
215
213
  # Truncation/Censoring (should I include)
216
214
  'T', 'I')
217
215
  # Distributions with density, probability and quartile functions
218
- _DISTRIBUTIONS = tuple('[dpq]%s' % x for x in
216
+ _DISTRIBUTIONS = tuple(f'[dpq]{x}' for x in
219
217
  ('bern', 'beta', 'dchiqsqr', 'ddexp', 'dexp',
220
218
  'df', 'gamma', 'gen.gamma', 'logis', 'lnorm',
221
219
  'negbin', 'nchisqr', 'norm', 'par', 'pois', 'weib'))
@@ -251,9 +249,9 @@ class JagsLexer(RegexLexer):
251
249
  (r'(for|in)(?![\w.])', Keyword.Reserved),
252
250
  # Builtins
253
251
  # Need to use lookahead because . is a valid char
254
- (r'(%s)(?=\s*\()' % r'|'.join(_FUNCTIONS
252
+ (r'({})(?=\s*\()'.format(r'|'.join(_FUNCTIONS
255
253
  + _DISTRIBUTIONS
256
- + _OTHER_DISTRIBUTIONS),
254
+ + _OTHER_DISTRIBUTIONS)),
257
255
  Name.Builtin),
258
256
  # Names
259
257
  include('names'),
@@ -286,13 +284,13 @@ class StanLexer(RegexLexer):
286
284
  The Stan modeling language is specified in the *Stan Modeling Language
287
285
  User's Guide and Reference Manual, v2.17.0*,
288
286
  `pdf <https://github.com/stan-dev/stan/releases/download/v2.17.0/stan-reference-2.17.0.pdf>`__.
289
-
290
- .. versionadded:: 1.6
291
287
  """
292
288
 
293
289
  name = 'Stan'
294
290
  aliases = ['stan']
295
291
  filenames = ['*.stan']
292
+ url = 'https://mc-stan.org'
293
+ version_added = '1.6'
296
294
 
297
295
  tokens = {
298
296
  'whitespace': [
@@ -310,19 +308,18 @@ class StanLexer(RegexLexer):
310
308
  # block start
311
309
  include('whitespace'),
312
310
  # Block start
313
- (r'(%s)(\s*)(\{)' %
314
- r'|'.join(('functions', 'data', r'transformed\s+?data',
311
+ (r'({})(\s*)(\{{)'.format(r'|'.join(('functions', 'data', r'transformed\s+?data',
315
312
  'parameters', r'transformed\s+parameters',
316
- 'model', r'generated\s+quantities')),
313
+ 'model', r'generated\s+quantities'))),
317
314
  bygroups(Keyword.Namespace, Text, Punctuation)),
318
315
  # target keyword
319
316
  (r'target\s*\+=', Keyword),
320
317
  # Reserved Words
321
- (r'(%s)\b' % r'|'.join(_stan_builtins.KEYWORDS), Keyword),
318
+ (r'({})\b'.format(r'|'.join(_stan_builtins.KEYWORDS)), Keyword),
322
319
  # Truncation
323
320
  (r'T(?=\s*\[)', Keyword),
324
321
  # Data types
325
- (r'(%s)\b' % r'|'.join(_stan_builtins.TYPES), Keyword.Type),
322
+ (r'({})\b'.format(r'|'.join(_stan_builtins.TYPES)), Keyword.Type),
326
323
  # < should be punctuation, but elsewhere I can't tell if it is in
327
324
  # a range constraint
328
325
  (r'(<)(\s*)(upper|lower|offset|multiplier)(\s*)(=)',
@@ -332,12 +329,12 @@ class StanLexer(RegexLexer):
332
329
  # Punctuation
333
330
  (r"[;,\[\]()]", Punctuation),
334
331
  # Builtin
335
- (r'(%s)(?=\s*\()' % '|'.join(_stan_builtins.FUNCTIONS), Name.Builtin),
336
- (r'(~)(\s*)(%s)(?=\s*\()' % '|'.join(_stan_builtins.DISTRIBUTIONS),
332
+ (r'({})(?=\s*\()'.format('|'.join(_stan_builtins.FUNCTIONS)), Name.Builtin),
333
+ (r'(~)(\s*)({})(?=\s*\()'.format('|'.join(_stan_builtins.DISTRIBUTIONS)),
337
334
  bygroups(Operator, Whitespace, Name.Builtin)),
338
335
  # Special names ending in __, like lp__
339
336
  (r'[A-Za-z]\w*__\b', Name.Builtin.Pseudo),
340
- (r'(%s)\b' % r'|'.join(_stan_builtins.RESERVED), Keyword.Reserved),
337
+ (r'({})\b'.format(r'|'.join(_stan_builtins.RESERVED)), Keyword.Reserved),
341
338
  # user-defined functions
342
339
  (r'[A-Za-z]\w*(?=\s*\()]', Name.Function),
343
340
  # Imaginary Literals
@@ -4,7 +4,7 @@
4
4
 
5
5
  Multi-Dialect Lexer for Modula-2.
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
 
@@ -153,8 +153,6 @@ class Modula2Lexer(RegexLexer):
153
153
  ``$ pygmentize -O full,dialect=m2r10,treat_stdlib_adts_as_builtins=Off ...``
154
154
  Render standard library ADTs as ordinary library types.
155
155
 
156
- .. versionadded:: 1.3
157
-
158
156
  .. versionchanged:: 2.1
159
157
  Added multi-dialect support.
160
158
  """
@@ -163,6 +161,7 @@ class Modula2Lexer(RegexLexer):
163
161
  aliases = ['modula2', 'm2']
164
162
  filenames = ['*.def', '*.mod']
165
163
  mimetypes = ['text/x-modula2']
164
+ version_added = '1.3'
166
165
 
167
166
  flags = re.MULTILINE | re.DOTALL
168
167