pygments.rb 2.4.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (349) 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 +12 -0
  7. data/README.adoc +2 -2
  8. data/lib/pygments/popen.rb +2 -2
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +3 -3
  11. data/vendor/pygments-main/bin/pygmentize +1 -1
  12. data/vendor/pygments-main/pygments/__init__.py +2 -2
  13. data/vendor/pygments-main/pygments/__main__.py +1 -1
  14. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  15. data/vendor/pygments-main/pygments/console.py +5 -5
  16. data/vendor/pygments-main/pygments/filter.py +2 -3
  17. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  18. data/vendor/pygments-main/pygments/formatter.py +6 -1
  19. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  20. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  21. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  22. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  23. data/vendor/pygments-main/pygments/formatters/html.py +38 -40
  24. data/vendor/pygments-main/pygments/formatters/img.py +51 -11
  25. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  26. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  27. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  28. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  29. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  30. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  31. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  32. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  33. data/vendor/pygments-main/pygments/lexer.py +51 -33
  34. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  35. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  38. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  39. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  45. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  46. data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -11
  47. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  48. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  49. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  51. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  52. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  55. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  56. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  60. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  63. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  64. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  65. data/vendor/pygments-main/pygments/lexers/algebra.py +9 -13
  66. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  67. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  68. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  69. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  70. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  71. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  72. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  73. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  74. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  75. data/vendor/pygments-main/pygments/lexers/asm.py +28 -15
  76. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  77. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  78. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  79. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  80. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  81. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  82. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  83. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  84. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  85. data/vendor/pygments-main/pygments/lexers/bqn.py +109 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  90. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  91. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  92. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  93. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  94. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  96. data/vendor/pygments-main/pygments/lexers/configs.py +342 -108
  97. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  98. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  99. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  100. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  101. data/vendor/pygments-main/pygments/lexers/css.py +5 -5
  102. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  103. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  104. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  105. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  106. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  107. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  108. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  109. data/vendor/pygments-main/pygments/lexers/dotnet.py +19 -14
  110. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  111. data/vendor/pygments-main/pygments/lexers/dylan.py +8 -16
  112. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  113. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  114. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  115. data/vendor/pygments-main/pygments/lexers/elpi.py +28 -21
  116. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  117. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  118. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  119. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  120. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  121. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  122. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  123. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  124. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  125. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  126. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  127. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  128. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  129. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  130. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  131. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  132. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  134. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  135. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  136. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  137. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  138. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  139. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  141. data/vendor/pygments-main/pygments/lexers/haskell.py +27 -32
  142. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  143. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  144. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  145. data/vendor/pygments-main/pygments/lexers/html.py +34 -13
  146. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  147. data/vendor/pygments-main/pygments/lexers/igor.py +305 -290
  148. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  149. data/vendor/pygments-main/pygments/lexers/installers.py +7 -9
  150. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  151. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  152. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  153. data/vendor/pygments-main/pygments/lexers/javascript.py +18 -19
  154. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  155. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  156. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  157. data/vendor/pygments-main/pygments/lexers/jsx.py +75 -0
  158. data/vendor/pygments-main/pygments/lexers/julia.py +4 -5
  159. data/vendor/pygments-main/pygments/lexers/jvm.py +98 -116
  160. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  161. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  162. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  163. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  164. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  165. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  166. data/vendor/pygments-main/pygments/lexers/macaulay2.py +53 -4
  167. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  168. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  169. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  170. data/vendor/pygments-main/pygments/lexers/matlab.py +10 -12
  171. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  172. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  173. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  174. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  175. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  176. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  177. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  178. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  179. data/vendor/pygments-main/pygments/lexers/mojo.py +704 -0
  180. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  181. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  182. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  183. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  184. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  185. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  186. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  187. data/vendor/pygments-main/pygments/lexers/objective.py +14 -6
  188. data/vendor/pygments-main/pygments/lexers/ooc.py +2 -3
  189. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  190. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  191. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  192. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  193. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  194. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  195. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  196. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  197. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  198. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  199. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  200. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  201. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  202. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  203. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  205. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  206. data/vendor/pygments-main/pygments/lexers/python.py +24 -24
  207. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  208. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  209. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  210. data/vendor/pygments-main/pygments/lexers/r.py +8 -6
  211. data/vendor/pygments-main/pygments/lexers/rdf.py +19 -13
  212. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  213. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  214. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  215. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  216. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  217. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  218. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  219. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  220. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  221. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  222. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  223. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  224. data/vendor/pygments-main/pygments/lexers/scripting.py +354 -42
  225. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  226. data/vendor/pygments-main/pygments/lexers/shell.py +107 -129
  227. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  228. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  229. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  230. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  231. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  232. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  233. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  234. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  235. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  236. data/vendor/pygments-main/pygments/lexers/special.py +8 -3
  237. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  238. data/vendor/pygments-main/pygments/lexers/sql.py +24 -18
  239. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  240. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  241. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  242. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  243. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  244. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  245. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  246. data/vendor/pygments-main/pygments/lexers/templates.py +131 -72
  247. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  248. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  249. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  250. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  251. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  252. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  253. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  254. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  255. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  256. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  257. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  258. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  259. data/vendor/pygments-main/pygments/lexers/typst.py +104 -0
  260. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  261. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  262. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  263. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  264. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  265. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  266. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  267. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  268. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  269. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  270. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  271. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  272. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  273. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  274. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  275. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  276. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  277. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  278. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  279. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  280. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  281. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  282. data/vendor/pygments-main/pygments/modeline.py +4 -4
  283. data/vendor/pygments-main/pygments/plugin.py +3 -19
  284. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  285. data/vendor/pygments-main/pygments/scanner.py +1 -1
  286. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  287. data/vendor/pygments-main/pygments/style.py +8 -2
  288. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  289. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  290. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  291. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  292. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  293. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  294. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  295. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  296. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  297. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  298. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  299. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  300. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  301. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  302. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  303. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  304. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  305. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  306. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  307. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  308. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  309. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  310. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  311. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  312. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  313. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  314. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  315. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  316. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  317. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  318. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  319. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  320. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  321. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  322. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  323. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  324. data/vendor/pygments-main/pygments/styles/rrt.py +8 -2
  325. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  326. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  327. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  328. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  329. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  330. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  331. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  332. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  333. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  334. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  335. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  336. data/vendor/pygments-main/pygments/token.py +2 -1
  337. data/vendor/pygments-main/pygments/unistring.py +5 -5
  338. data/vendor/pygments-main/pygments/util.py +13 -19
  339. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/METADATA +14 -13
  340. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +663 -0
  341. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/WHEEL +1 -2
  342. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/AUTHORS +13 -0
  343. metadata +41 -17
  344. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  345. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  346. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/INSTALLER +0 -0
  347. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/REQUESTED +0 -0
  348. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/entry_points.txt +0 -0
  349. /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 .net 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
  import re
@@ -50,6 +50,7 @@ class CSharpLexer(RegexLexer):
50
50
  aliases = ['csharp', 'c#', 'cs']
51
51
  filenames = ['*.cs']
52
52
  mimetypes = ['text/x-csharp'] # inferred
53
+ version_added = ''
53
54
 
54
55
  flags = re.MULTILINE | re.DOTALL
55
56
 
@@ -164,8 +165,6 @@ class NemerleLexer(RegexLexer):
164
165
  ``Lo`` category has more than 40,000 characters in it!
165
166
 
166
167
  The default value is ``basic``.
167
-
168
- .. versionadded:: 1.5
169
168
  """
170
169
 
171
170
  name = 'Nemerle'
@@ -173,6 +172,7 @@ class NemerleLexer(RegexLexer):
173
172
  aliases = ['nemerle']
174
173
  filenames = ['*.n']
175
174
  mimetypes = ['text/x-nemerle'] # inferred
175
+ version_added = '1.5'
176
176
 
177
177
  flags = re.MULTILINE | re.DOTALL
178
178
 
@@ -333,6 +333,7 @@ class BooLexer(RegexLexer):
333
333
  aliases = ['boo']
334
334
  filenames = ['*.boo']
335
335
  mimetypes = ['text/x-boo']
336
+ version_added = ''
336
337
 
337
338
  tokens = {
338
339
  'root': [
@@ -399,9 +400,10 @@ class VbNetLexer(RegexLexer):
399
400
 
400
401
  name = 'VB.net'
401
402
  url = 'https://docs.microsoft.com/en-us/dotnet/visual-basic/'
402
- aliases = ['vb.net', 'vbnet', 'lobas', 'oobas', 'sobas']
403
+ aliases = ['vb.net', 'vbnet', 'lobas', 'oobas', 'sobas', 'visual-basic', 'visualbasic']
403
404
  filenames = ['*.vb', '*.bas']
404
405
  mimetypes = ['text/x-vbnet', 'text/x-vba'] # (?)
406
+ version_added = ''
405
407
 
406
408
  uni_name = '[_' + uni.combine('Ll', 'Lt', 'Lm', 'Nl') + ']' + \
407
409
  '[' + uni.combine('Ll', 'Lt', 'Lm', 'Nl', 'Nd', 'Pc',
@@ -510,6 +512,7 @@ class GenericAspxLexer(RegexLexer):
510
512
  name = 'aspx-gen'
511
513
  filenames = []
512
514
  mimetypes = []
515
+ url = 'https://dotnet.microsoft.com/en-us/apps/aspnet'
513
516
 
514
517
  flags = re.DOTALL
515
518
 
@@ -535,6 +538,8 @@ class CSharpAspxLexer(DelegatingLexer):
535
538
  aliases = ['aspx-cs']
536
539
  filenames = ['*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd']
537
540
  mimetypes = []
541
+ url = 'https://dotnet.microsoft.com/en-us/apps/aspnet'
542
+ version_added = ''
538
543
 
539
544
  def __init__(self, **options):
540
545
  super().__init__(CSharpLexer, GenericAspxLexer, **options)
@@ -555,6 +560,8 @@ class VbNetAspxLexer(DelegatingLexer):
555
560
  aliases = ['aspx-vb']
556
561
  filenames = ['*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd']
557
562
  mimetypes = []
563
+ url = 'https://dotnet.microsoft.com/en-us/apps/aspnet'
564
+ version_added = ''
558
565
 
559
566
  def __init__(self, **options):
560
567
  super().__init__(VbNetLexer, GenericAspxLexer, **options)
@@ -570,8 +577,6 @@ class VbNetAspxLexer(DelegatingLexer):
570
577
  class FSharpLexer(RegexLexer):
571
578
  """
572
579
  For the F# language (version 3.0).
573
-
574
- .. versionadded:: 1.5
575
580
  """
576
581
 
577
582
  name = 'F#'
@@ -579,6 +584,7 @@ class FSharpLexer(RegexLexer):
579
584
  aliases = ['fsharp', 'f#']
580
585
  filenames = ['*.fs', '*.fsi', '*.fsx']
581
586
  mimetypes = ['text/x-fsharp']
587
+ version_added = '1.5'
582
588
 
583
589
  keywords = [
584
590
  'abstract', 'as', 'assert', 'base', 'begin', 'class', 'default',
@@ -649,12 +655,12 @@ class FSharpLexer(RegexLexer):
649
655
  bygroups(Keyword, Whitespace, Name.Class)),
650
656
  (r'\b(member|override)(\s+)(\w+)(\.)(\w+)',
651
657
  bygroups(Keyword, Whitespace, Name, Punctuation, Name.Function)),
652
- (r'\b(%s)\b' % '|'.join(keywords), Keyword),
658
+ (r'\b({})\b'.format('|'.join(keywords)), Keyword),
653
659
  (r'``([^`\n\r\t]|`[^`\n\r\t])+``', Name),
654
- (r'(%s)' % '|'.join(keyopts), Operator),
655
- (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
656
- (r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
657
- (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
660
+ (r'({})'.format('|'.join(keyopts)), Operator),
661
+ (rf'({infix_syms}|{prefix_syms})?{operators}', Operator),
662
+ (r'\b({})\b'.format('|'.join(word_operators)), Operator.Word),
663
+ (r'\b({})\b'.format('|'.join(primitives)), Keyword.Type),
658
664
  (r'(#)([ \t]*)(if|endif|else|line|nowarn|light|\d+)\b(.*?)(\n)',
659
665
  bygroups(Comment.Preproc, Whitespace, Comment.Preproc,
660
666
  Comment.Preproc, Whitespace)),
@@ -733,21 +739,20 @@ class XppLexer(RegexLexer):
733
739
 
734
740
  """
735
741
  For X++ source code. This is based loosely on the CSharpLexer
736
-
737
- .. versionadded:: 2.15
738
742
  """
739
743
 
740
744
  name = 'X++'
741
745
  url = 'https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference'
742
746
  aliases = ['xpp', 'x++']
743
747
  filenames = ['*.xpp']
748
+ version_added = '2.15'
744
749
 
745
750
  flags = re.MULTILINE
746
751
 
747
752
  XPP_CHARS = ('@?(?:_|[^' +
748
753
  uni.allexcept('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl') + '])' +
749
754
  '[^' + uni.allexcept('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl',
750
- 'Nd', 'Pc', 'Cf', 'Mn', 'Mc') + ']*');
755
+ 'Nd', 'Pc', 'Cf', 'Mn', 'Mc') + ']*')
751
756
  # Temporary, see
752
757
  # https://github.com/thatch/regexlint/pull/49
753
758
  XPP_CHARS = XPP_CHARS.replace('\x00', '\x01')
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for various domain-specific 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__ = ['ProtoBufLexer', 'ZeekLexer', 'PuppetLexer', 'RslLexer',
23
23
  class ProtoBufLexer(RegexLexer):
24
24
  """
25
25
  Lexer for Protocol Buffer definition files.
26
-
27
- .. versionadded:: 1.4
28
26
  """
29
27
 
30
28
  name = 'Protocol Buffer'
31
29
  url = 'https://developers.google.com/protocol-buffers/'
32
30
  aliases = ['protobuf', 'proto']
33
31
  filenames = ['*.proto']
32
+ version_added = '1.4'
34
33
 
35
34
  tokens = {
36
35
  'root': [
@@ -85,14 +84,13 @@ class ProtoBufLexer(RegexLexer):
85
84
  class ThriftLexer(RegexLexer):
86
85
  """
87
86
  For Thrift interface definitions.
88
-
89
- .. versionadded:: 2.1
90
87
  """
91
88
  name = 'Thrift'
92
89
  url = 'https://thrift.apache.org/'
93
90
  aliases = ['thrift']
94
91
  filenames = ['*.thrift']
95
92
  mimetypes = ['application/x-thrift']
93
+ version_added = '2.1'
96
94
 
97
95
  tokens = {
98
96
  'root': [
@@ -191,13 +189,12 @@ class ThriftLexer(RegexLexer):
191
189
  class ZeekLexer(RegexLexer):
192
190
  """
193
191
  For Zeek scripts.
194
-
195
- .. versionadded:: 2.5
196
192
  """
197
193
  name = 'Zeek'
198
194
  url = 'https://www.zeek.org/'
199
195
  aliases = ['zeek', 'bro']
200
196
  filenames = ['*.zeek', '*.bro']
197
+ version_added = '2.5'
201
198
 
202
199
  _hex = r'[0-9a-fA-F]'
203
200
  _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?'
@@ -353,13 +350,12 @@ BroLexer = ZeekLexer
353
350
  class PuppetLexer(RegexLexer):
354
351
  """
355
352
  For Puppet configuration DSL.
356
-
357
- .. versionadded:: 1.6
358
353
  """
359
354
  name = 'Puppet'
360
355
  url = 'https://puppet.com/'
361
356
  aliases = ['puppet']
362
357
  filenames = ['*.pp']
358
+ version_added = '1.6'
363
359
 
364
360
  tokens = {
365
361
  'root': [
@@ -443,14 +439,13 @@ class RslLexer(RegexLexer):
443
439
  RSL is the formal specification
444
440
  language used in RAISE (Rigorous Approach to Industrial Software Engineering)
445
441
  method.
446
-
447
- .. versionadded:: 2.0
448
442
  """
449
443
  name = 'RSL'
450
444
  url = 'http://en.wikipedia.org/wiki/RAISE'
451
445
  aliases = ['rsl']
452
446
  filenames = ['*.rsl']
453
447
  mimetypes = ['text/rsl']
448
+ version_added = '2.0'
454
449
 
455
450
  flags = re.MULTILINE | re.DOTALL
456
451
 
@@ -505,13 +500,12 @@ class RslLexer(RegexLexer):
505
500
  class MscgenLexer(RegexLexer):
506
501
  """
507
502
  For Mscgen files.
508
-
509
- .. versionadded:: 1.6
510
503
  """
511
504
  name = 'Mscgen'
512
505
  url = 'http://www.mcternan.me.uk/mscgen/'
513
506
  aliases = ['mscgen', 'msc']
514
507
  filenames = ['*.msc']
508
+ version_added = '1.6'
515
509
 
516
510
  _var = r'(\w+|"(?:\\"|[^"])*")'
517
511
 
@@ -555,13 +549,12 @@ class MscgenLexer(RegexLexer):
555
549
  class VGLLexer(RegexLexer):
556
550
  """
557
551
  For SampleManager VGL source code.
558
-
559
- .. versionadded:: 1.6
560
552
  """
561
553
  name = 'VGL'
562
554
  url = 'http://www.thermoscientific.com/samplemanager'
563
555
  aliases = ['vgl']
564
556
  filenames = ['*.rpf']
557
+ version_added = '1.6'
565
558
 
566
559
  flags = re.MULTILINE | re.DOTALL | re.IGNORECASE
567
560
 
@@ -589,8 +582,6 @@ class VGLLexer(RegexLexer):
589
582
  class AlloyLexer(RegexLexer):
590
583
  """
591
584
  For Alloy source code.
592
-
593
- .. versionadded:: 2.0
594
585
  """
595
586
 
596
587
  name = 'Alloy'
@@ -598,6 +589,7 @@ class AlloyLexer(RegexLexer):
598
589
  aliases = ['alloy']
599
590
  filenames = ['*.als']
600
591
  mimetypes = ['text/x-alloy']
592
+ version_added = '2.0'
601
593
 
602
594
  flags = re.MULTILINE | re.DOTALL
603
595
 
@@ -660,14 +652,13 @@ class PanLexer(RegexLexer):
660
652
  Lexer for pan source files.
661
653
 
662
654
  Based on tcsh lexer.
663
-
664
- .. versionadded:: 2.0
665
655
  """
666
656
 
667
657
  name = 'Pan'
668
658
  url = 'https://github.com/quattor/pan/'
669
659
  aliases = ['pan']
670
660
  filenames = ['*.pan']
661
+ version_added = '2.0'
671
662
 
672
663
  tokens = {
673
664
  'root': [
@@ -727,14 +718,13 @@ class PanLexer(RegexLexer):
727
718
  class CrmshLexer(RegexLexer):
728
719
  """
729
720
  Lexer for crmsh configuration files for Pacemaker clusters.
730
-
731
- .. versionadded:: 2.1
732
721
  """
733
722
  name = 'Crmsh'
734
723
  url = 'http://crmsh.github.io/'
735
724
  aliases = ['crmsh', 'pcmk']
736
725
  filenames = ['*.crmsh', '*.pcmk']
737
726
  mimetypes = []
727
+ version_added = '2.1'
738
728
 
739
729
  elem = words((
740
730
  'node', 'primitive', 'group', 'clone', 'ms', 'location',
@@ -773,7 +763,7 @@ class CrmshLexer(RegexLexer):
773
763
  (sub, Keyword),
774
764
  (acl, Keyword),
775
765
  # binary operators
776
- (r'(?:%s:)?(%s)(?![\w#$-])' % (val_qual, bin_ops), Operator.Word),
766
+ (rf'(?:{val_qual}:)?({bin_ops})(?![\w#$-])', Operator.Word),
777
767
  # other operators
778
768
  (bin_rel, Operator.Word),
779
769
  (un_ops, Operator.Word),
@@ -781,11 +771,11 @@ class CrmshLexer(RegexLexer):
781
771
  # builtin attributes (e.g. #uname)
782
772
  (r'#[a-z]+(?![\w#$-])', Name.Builtin),
783
773
  # acl_mod:blah
784
- (r'(%s)(:)("(?:""|[^"])*"|\S+)' % acl_mod,
774
+ (rf'({acl_mod})(:)("(?:""|[^"])*"|\S+)',
785
775
  bygroups(Keyword, Punctuation, Name)),
786
776
  # rsc_id[:(role|action)]
787
777
  # NB: this matches all other identifiers
788
- (r'([\w#$-]+)(?:(:)(%s))?(?![\w#$-])' % rsc_role_action,
778
+ (rf'([\w#$-]+)(?:(:)({rsc_role_action}))?(?![\w#$-])',
789
779
  bygroups(Name, Punctuation, Operator.Word)),
790
780
  # punctuation
791
781
  (r'(\\(?=\n)|[\[\](){}/:@])', Punctuation),
@@ -797,14 +787,13 @@ class CrmshLexer(RegexLexer):
797
787
  class FlatlineLexer(RegexLexer):
798
788
  """
799
789
  Lexer for Flatline expressions.
800
-
801
- .. versionadded:: 2.2
802
790
  """
803
791
  name = 'Flatline'
804
792
  url = 'https://github.com/bigmlcom/flatline'
805
793
  aliases = ['flatline']
806
794
  filenames = []
807
795
  mimetypes = ['text/x-flatline']
796
+ version_added = '2.2'
808
797
 
809
798
  special_forms = ('let',)
810
799
 
@@ -874,14 +863,13 @@ class FlatlineLexer(RegexLexer):
874
863
  class SnowballLexer(ExtendedRegexLexer):
875
864
  """
876
865
  Lexer for Snowball source code.
877
-
878
- .. versionadded:: 2.2
879
866
  """
880
867
 
881
868
  name = 'Snowball'
882
- url = 'http://snowballstem.org/'
869
+ url = 'https://snowballstem.org/'
883
870
  aliases = ['snowball']
884
871
  filenames = ['*.sbl']
872
+ version_added = '2.2'
885
873
 
886
874
  _ws = r'\n\r\t '
887
875
 
@@ -897,8 +885,8 @@ class SnowballLexer(ExtendedRegexLexer):
897
885
  def callback(lexer, match, ctx):
898
886
  s = match.start()
899
887
  text = match.group()
900
- string = re.compile(r'([^%s]*)(.)' % re.escape(lexer._start)).match
901
- escape = re.compile(r'([^%s]*)(.)' % re.escape(lexer._end)).match
888
+ string = re.compile(rf'([^{re.escape(lexer._start)}]*)(.)').match
889
+ escape = re.compile(rf'([^{re.escape(lexer._end)}]*)(.)').match
902
890
  pos = 0
903
891
  do_string = do_string_first
904
892
  while pos < len(text):
@@ -929,11 +917,12 @@ class SnowballLexer(ExtendedRegexLexer):
929
917
 
930
918
  tokens = {
931
919
  'root': [
932
- (words(('len', 'lenof'), suffix=r'\b'), Operator.Word),
920
+ (r'len\b', Name.Builtin),
921
+ (r'lenof\b', Operator.Word),
933
922
  include('root1'),
934
923
  ],
935
924
  'root1': [
936
- (r'[%s]+' % _ws, Whitespace),
925
+ (rf'[{_ws}]+', Whitespace),
937
926
  (r'\d+', Number.Integer),
938
927
  (r"'", String.Single, 'string'),
939
928
  (r'[()]', Punctuation),
@@ -956,9 +945,9 @@ class SnowballLexer(ExtendedRegexLexer):
956
945
  (words(('size', 'limit', 'cursor', 'maxint', 'minint'),
957
946
  suffix=r'\b'),
958
947
  Name.Builtin),
959
- (r'(stringdef\b)([%s]*)([^%s]+)' % (_ws, _ws),
948
+ (rf'(stringdef\b)([{_ws}]*)([^{_ws}]+)',
960
949
  bygroups(Keyword.Reserved, Whitespace, String.Escape)),
961
- (r'(stringescapes\b)([%s]*)(.)([%s]*)(.)' % (_ws, _ws),
950
+ (rf'(stringescapes\b)([{_ws}]*)(.)([{_ws}]*)(.)',
962
951
  _stringescapes),
963
952
  (r'[A-Za-z]\w*', Name),
964
953
  ],
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for the Dylan language.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -21,8 +21,6 @@ __all__ = ['DylanLexer', 'DylanConsoleLexer', 'DylanLidLexer']
21
21
  class DylanLexer(RegexLexer):
22
22
  """
23
23
  For the Dylan language.
24
-
25
- .. versionadded:: 0.7
26
24
  """
27
25
 
28
26
  name = 'Dylan'
@@ -30,6 +28,7 @@ class DylanLexer(RegexLexer):
30
28
  aliases = ['dylan']
31
29
  filenames = ['*.dylan', '*.dyl', '*.intr']
32
30
  mimetypes = ['text/x-dylan']
31
+ version_added = '0.7'
33
32
 
34
33
  flags = re.IGNORECASE
35
34
 
@@ -214,15 +213,14 @@ class DylanLexer(RegexLexer):
214
213
  class DylanLidLexer(RegexLexer):
215
214
  """
216
215
  For Dylan LID (Library Interchange Definition) files.
217
-
218
- .. versionadded:: 1.6
219
216
  """
220
217
 
221
218
  name = 'DylanLID'
222
219
  aliases = ['dylan-lid', 'lid']
223
220
  filenames = ['*.lid', '*.hdp']
224
221
  mimetypes = ['text/x-dylan-lid']
225
-
222
+ url = 'http://www.opendylan.org/'
223
+ version_added = '1.6'
226
224
  flags = re.IGNORECASE
227
225
 
228
226
  tokens = {
@@ -242,23 +240,17 @@ class DylanLidLexer(RegexLexer):
242
240
 
243
241
  class DylanConsoleLexer(Lexer):
244
242
  """
245
- For Dylan interactive console output like:
246
-
247
- .. sourcecode:: dylan-console
248
-
249
- ? let a = 1;
250
- => 1
251
- ? a
252
- => 1
243
+ For Dylan interactive console output.
253
244
 
254
245
  This is based on a copy of the RubyConsoleLexer.
255
-
256
- .. versionadded:: 1.6
257
246
  """
258
247
  name = 'Dylan session'
259
248
  aliases = ['dylan-console', 'dylan-repl']
260
249
  filenames = ['*.dylan-console']
261
250
  mimetypes = ['text/x-dylan-console']
251
+ url = 'http://www.opendylan.org/'
252
+ version_added = '1.6'
253
+ _example = 'dylan-console/console'
262
254
 
263
255
  _prompt_re = re.compile(r'\?| ')
264
256
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for the ECL language.
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,8 +20,6 @@ __all__ = ['ECLLexer']
20
20
  class ECLLexer(RegexLexer):
21
21
  """
22
22
  Lexer for the declarative big-data ECL language.
23
-
24
- .. versionadded:: 1.5
25
23
  """
26
24
 
27
25
  name = 'ECL'
@@ -29,6 +27,7 @@ class ECLLexer(RegexLexer):
29
27
  aliases = ['ecl']
30
28
  filenames = ['*.ecl']
31
29
  mimetypes = ['application/x-ecl']
30
+ version_added = '1.5'
32
31
 
33
32
  flags = re.IGNORECASE | re.MULTILINE
34
33
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for the Eiffel language.
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
 
@@ -18,14 +18,13 @@ __all__ = ['EiffelLexer']
18
18
  class EiffelLexer(RegexLexer):
19
19
  """
20
20
  For Eiffel source code.
21
-
22
- .. versionadded:: 2.0
23
21
  """
24
22
  name = 'Eiffel'
25
- url = 'http://www.eiffel.com'
23
+ url = 'https://www.eiffel.com'
26
24
  aliases = ['eiffel']
27
25
  filenames = ['*.e']
28
26
  mimetypes = ['text/x-eiffel']
27
+ version_added = '2.0'
29
28
 
30
29
  tokens = {
31
30
  'root': [
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for the Elm programming language.
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
 
@@ -18,15 +18,14 @@ __all__ = ['ElmLexer']
18
18
  class ElmLexer(RegexLexer):
19
19
  """
20
20
  For Elm source code.
21
-
22
- .. versionadded:: 2.1
23
21
  """
24
22
 
25
23
  name = 'Elm'
26
- url = 'http://elm-lang.org/'
24
+ url = 'https://elm-lang.org/'
27
25
  aliases = ['elm']
28
26
  filenames = ['*.elm']
29
27
  mimetypes = ['text/x-elm']
28
+ version_added = '2.1'
30
29
 
31
30
  validName = r'[a-z_][a-zA-Z0-9_\']*'
32
31
 
@@ -4,13 +4,13 @@
4
4
 
5
5
  Lexer for the `Elpi <http://github.com/LPCIC/elpi>`_ programming language.
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
 
11
11
  from pygments.lexer import RegexLexer, bygroups, include
12
12
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
13
- Number
13
+ Number, Punctuation
14
14
 
15
15
  __all__ = ['ElpiLexer']
16
16
 
@@ -18,8 +18,6 @@ __all__ = ['ElpiLexer']
18
18
  class ElpiLexer(RegexLexer):
19
19
  """
20
20
  Lexer for the Elpi programming language.
21
-
22
- .. versionadded:: 2.11
23
21
  """
24
22
 
25
23
  name = 'Elpi'
@@ -27,19 +25,20 @@ class ElpiLexer(RegexLexer):
27
25
  aliases = ['elpi']
28
26
  filenames = ['*.elpi']
29
27
  mimetypes = ['text/x-elpi']
28
+ version_added = '2.11'
30
29
 
31
30
  lcase_re = r"[a-z]"
32
31
  ucase_re = r"[A-Z]"
33
32
  digit_re = r"[0-9]"
34
33
  schar2_re = r"([+*^?/<>`'@#~=&!])"
35
- schar_re = r"({}|-|\$|_)".format(schar2_re)
36
- idchar_re = r"({}|{}|{}|{})".format(lcase_re,ucase_re,digit_re,schar_re)
37
- idcharstarns_re = r"({}*(\.({}|{}){}*)*)".format(idchar_re, lcase_re, ucase_re, idchar_re)
38
- symbchar_re = r"({}|{}|{}|{}|:)".format(lcase_re, ucase_re, digit_re, schar_re)
39
- constant_re = r"({}{}*|{}{}|{}{}*|_{}+)".format(ucase_re, idchar_re, lcase_re, idcharstarns_re, schar2_re, symbchar_re, idchar_re)
34
+ schar_re = rf"({schar2_re}|-|\$|_)"
35
+ idchar_re = rf"({lcase_re}|{ucase_re}|{digit_re}|{schar_re})"
36
+ idcharstarns_re = rf"({idchar_re}*(\.({lcase_re}|{ucase_re}){idchar_re}*)*)"
37
+ symbchar_re = rf"({lcase_re}|{ucase_re}|{digit_re}|{schar_re}|:)"
38
+ constant_re = rf"({ucase_re}{idchar_re}*|{lcase_re}{idcharstarns_re}|{schar2_re}{symbchar_re}*|_{idchar_re}+)"
40
39
  symbol_re = r"(,|<=>|->|:-|;|\?-|->|&|=>|\bas\b|\buvar\b|<|=<|=|==|>=|>|\bi<|\bi=<|\bi>=|\bi>|\bis\b|\br<|\br=<|\br>=|\br>|\bs<|\bs=<|\bs>=|\bs>|@|::|\[\]|`->|`:|`:=|\^|-|\+|\bi-|\bi\+|r-|r\+|/|\*|\bdiv\b|\bi\*|\bmod\b|\br\*|~|\bi~|\br~)"
41
- escape_re = r"\(({}|{})\)".format(constant_re,symbol_re)
42
- const_sym_re = r"({}|{}|{})".format(constant_re,symbol_re,escape_re)
40
+ escape_re = rf"\(({constant_re}|{symbol_re})\)"
41
+ const_sym_re = rf"({constant_re}|{symbol_re}|{escape_re})"
43
42
 
44
43
  tokens = {
45
44
  'root': [
@@ -54,40 +53,41 @@ class ElpiLexer(RegexLexer):
54
53
  'elpi-string'),
55
54
  (r"(:index)(\s*\()", bygroups(Keyword.Mode, Text.Whitespace),
56
55
  'elpi-indexing-expr'),
57
- (r"\b(external pred|pred)(\s+)({})".format(const_sym_re),
56
+ (rf"\b(external pred|pred)(\s+)({const_sym_re})",
58
57
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
59
58
  'elpi-pred-item'),
60
- (r"\b(external type|type)(\s+)(({}(,\s*)?)+)".format(const_sym_re),
59
+ (rf"\b(external type|type)(\s+)(({const_sym_re}(,\s*)?)+)",
61
60
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
62
61
  'elpi-type'),
63
- (r"\b(kind)(\s+)(({}|,)+)".format(const_sym_re),
62
+ (rf"\b(kind)(\s+)(({const_sym_re}|,)+)",
64
63
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
65
64
  'elpi-type'),
66
- (r"\b(typeabbrev)(\s+)({})".format(const_sym_re),
65
+ (rf"\b(typeabbrev)(\s+)({const_sym_re})",
67
66
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
68
67
  'elpi-type'),
69
68
  (r"\b(accumulate)(\s+)(\")",
70
69
  bygroups(Keyword.Declaration, Text.Whitespace, String.Double),
71
70
  'elpi-string'),
72
- (r"\b(accumulate|namespace|local)(\s+)({})".format(constant_re),
71
+ (rf"\b(accumulate|namespace|local)(\s+)({constant_re})",
73
72
  bygroups(Keyword.Declaration, Text.Whitespace, Text)),
74
- (r"\b(shorten)(\s+)({}\.)".format(constant_re),
73
+ (rf"\b(shorten)(\s+)({constant_re}\.)",
75
74
  bygroups(Keyword.Declaration, Text.Whitespace, Text)),
76
75
  (r"\b(pi|sigma)(\s+)([a-zA-Z][A-Za-z0-9_ ]*)(\\)",
77
76
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Variable, Text)),
78
- (r"\b(constraint)(\s+)(({}(\s+)?)+)".format(const_sym_re),
77
+ (rf"\b(constraint)(\s+)(({const_sym_re}(\s+)?)+)",
79
78
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
80
79
  'elpi-chr-rule-start'),
81
80
 
82
- (r"(?=[A-Z_]){}".format(constant_re), Name.Variable),
83
- (r"(?=[a-z_]){}\\".format(constant_re), Name.Variable),
81
+ (rf"(?=[A-Z_]){constant_re}", Name.Variable),
82
+ (rf"(?=[a-z_]){constant_re}\\", Name.Variable),
84
83
  (r"_", Name.Variable),
85
- (r"({}|!|=>|;)".format(symbol_re), Keyword.Declaration),
84
+ (rf"({symbol_re}|!|=>|;)", Keyword.Declaration),
86
85
  (constant_re, Text),
87
86
  (r"\[|\]|\||=>", Keyword.Declaration),
88
87
  (r'"', String.Double, 'elpi-string'),
89
88
  (r'`', String.Double, 'elpi-btick'),
90
89
  (r'\'', String.Double, 'elpi-tick'),
90
+ (r'\{\{', Punctuation, 'elpi-quote'),
91
91
  (r'\{[^\{]', Text, 'elpi-spill'),
92
92
  (r"\(", Text, 'elpi-in-parens'),
93
93
  (r'\d[\d_]*', Number.Integer),
@@ -151,6 +151,13 @@ class ElpiLexer(RegexLexer):
151
151
  (r'[^\"]+', String.Double),
152
152
  (r'"', String.Double, '#pop'),
153
153
  ],
154
+ 'elpi-quote': [
155
+ (r'\{\{', Punctuation, '#push'),
156
+ (r'\}\}', Punctuation, '#pop'),
157
+ (rf"(lp:)((?=[A-Z_]){constant_re})", bygroups(Keyword, Name.Variable)),
158
+ (r"[^l\}]+", Text),
159
+ (r"l|\}", Text),
160
+ ],
154
161
  'elpi-spill': [
155
162
  (r'\{[^\{]', Text, '#push'),
156
163
  (r'\}[^\}]', Text, '#pop'),