pygments.rb 2.4.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +8 -8
  3. data/.github/workflows/release.yml +5 -5
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +1 -1
  6. data/CHANGELOG.adoc +9 -1
  7. data/README.adoc +2 -2
  8. data/lib/pygments/version.rb +1 -1
  9. data/pygments.rb.gemspec +2 -2
  10. data/vendor/pygments-main/bin/pygmentize +1 -1
  11. data/vendor/pygments-main/pygments/__init__.py +2 -2
  12. data/vendor/pygments-main/pygments/__main__.py +1 -1
  13. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  14. data/vendor/pygments-main/pygments/console.py +5 -5
  15. data/vendor/pygments-main/pygments/filter.py +2 -3
  16. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  17. data/vendor/pygments-main/pygments/formatter.py +6 -1
  18. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  19. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  20. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  21. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  22. data/vendor/pygments-main/pygments/formatters/html.py +38 -40
  23. data/vendor/pygments-main/pygments/formatters/img.py +51 -11
  24. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  25. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  26. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  27. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  28. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  29. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  30. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  32. data/vendor/pygments-main/pygments/lexer.py +51 -33
  33. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  34. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  35. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  38. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  44. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  45. data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -11
  46. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  48. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  50. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  51. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  54. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  55. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  60. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  62. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  63. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  64. data/vendor/pygments-main/pygments/lexers/algebra.py +9 -13
  65. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  67. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  68. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  69. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  70. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  71. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  72. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  73. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  74. data/vendor/pygments-main/pygments/lexers/asm.py +28 -15
  75. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  76. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  77. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  78. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  79. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  80. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  81. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  82. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  83. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  84. data/vendor/pygments-main/pygments/lexers/bqn.py +109 -0
  85. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  86. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  87. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  88. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  89. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  92. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  93. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  94. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  95. data/vendor/pygments-main/pygments/lexers/configs.py +342 -108
  96. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  97. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  99. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  100. data/vendor/pygments-main/pygments/lexers/css.py +5 -5
  101. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  103. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  104. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  105. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  106. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  107. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  108. data/vendor/pygments-main/pygments/lexers/dotnet.py +19 -14
  109. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  110. data/vendor/pygments-main/pygments/lexers/dylan.py +8 -16
  111. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  112. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  113. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  114. data/vendor/pygments-main/pygments/lexers/elpi.py +28 -21
  115. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  116. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  117. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  118. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  119. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  120. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  121. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  122. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  123. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  124. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  125. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  126. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  127. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  129. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  130. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  131. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  132. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  133. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  134. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  135. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  136. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  137. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  138. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  139. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/haskell.py +27 -32
  141. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  142. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  143. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  144. data/vendor/pygments-main/pygments/lexers/html.py +34 -13
  145. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  146. data/vendor/pygments-main/pygments/lexers/igor.py +305 -290
  147. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  148. data/vendor/pygments-main/pygments/lexers/installers.py +7 -9
  149. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  150. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  151. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  152. data/vendor/pygments-main/pygments/lexers/javascript.py +18 -19
  153. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  154. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  155. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  156. data/vendor/pygments-main/pygments/lexers/jsx.py +75 -0
  157. data/vendor/pygments-main/pygments/lexers/julia.py +4 -5
  158. data/vendor/pygments-main/pygments/lexers/jvm.py +98 -116
  159. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  160. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  161. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  162. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  163. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  164. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  165. data/vendor/pygments-main/pygments/lexers/macaulay2.py +53 -4
  166. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  167. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  168. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  169. data/vendor/pygments-main/pygments/lexers/matlab.py +10 -12
  170. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  171. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  172. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  173. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  174. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  175. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  176. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  177. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  178. data/vendor/pygments-main/pygments/lexers/mojo.py +704 -0
  179. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  180. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  181. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  182. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  183. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  184. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  185. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  186. data/vendor/pygments-main/pygments/lexers/objective.py +14 -6
  187. data/vendor/pygments-main/pygments/lexers/ooc.py +2 -3
  188. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  189. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  190. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  191. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  192. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  193. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  194. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  195. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  196. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  197. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  198. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  199. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  200. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  201. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  202. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  203. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  204. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  205. data/vendor/pygments-main/pygments/lexers/python.py +24 -24
  206. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  207. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  208. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  209. data/vendor/pygments-main/pygments/lexers/r.py +8 -6
  210. data/vendor/pygments-main/pygments/lexers/rdf.py +19 -13
  211. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  212. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  213. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  214. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  215. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  216. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  217. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  218. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  219. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  220. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  221. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  222. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  223. data/vendor/pygments-main/pygments/lexers/scripting.py +354 -42
  224. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/shell.py +107 -129
  226. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  227. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  228. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  229. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  230. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  231. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  232. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  233. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  234. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  235. data/vendor/pygments-main/pygments/lexers/special.py +8 -3
  236. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  237. data/vendor/pygments-main/pygments/lexers/sql.py +24 -18
  238. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  239. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  240. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  241. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  242. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  243. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  244. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  245. data/vendor/pygments-main/pygments/lexers/templates.py +131 -72
  246. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  247. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  248. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  249. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  250. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  251. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  252. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  253. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  254. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  255. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  256. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  257. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  258. data/vendor/pygments-main/pygments/lexers/typst.py +104 -0
  259. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  260. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  261. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  262. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  263. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  264. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  265. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  266. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  267. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  268. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  269. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  270. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  271. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  272. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  273. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  274. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  275. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  276. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  277. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  278. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  279. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  280. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  281. data/vendor/pygments-main/pygments/modeline.py +4 -4
  282. data/vendor/pygments-main/pygments/plugin.py +3 -19
  283. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  284. data/vendor/pygments-main/pygments/scanner.py +1 -1
  285. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  286. data/vendor/pygments-main/pygments/style.py +8 -2
  287. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  288. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  289. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  290. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  291. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  292. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  293. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  294. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  295. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  296. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  297. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  298. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  299. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  300. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  301. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  302. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  303. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  304. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  305. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  306. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  307. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  308. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  309. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  310. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  311. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  312. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  313. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  314. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  315. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  316. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  317. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  318. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  319. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  320. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  321. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  322. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  323. data/vendor/pygments-main/pygments/styles/rrt.py +8 -2
  324. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  325. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  326. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  327. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  328. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  329. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  330. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  331. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  332. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  333. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  334. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  335. data/vendor/pygments-main/pygments/token.py +2 -1
  336. data/vendor/pygments-main/pygments/unistring.py +5 -5
  337. data/vendor/pygments-main/pygments/util.py +13 -19
  338. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/METADATA +14 -13
  339. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +663 -0
  340. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/WHEEL +1 -2
  341. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/AUTHORS +13 -0
  342. metadata +39 -15
  343. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  344. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  345. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/INSTALLER +0 -0
  346. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/REQUESTED +0 -0
  347. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/entry_points.txt +0 -0
  348. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/LICENSE +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for .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'),