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 various template engines' markup.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -62,6 +62,7 @@ class ErbLexer(Lexer):
62
62
  url = 'https://github.com/ruby/erb'
63
63
  aliases = ['erb']
64
64
  mimetypes = ['application/x-ruby-templating']
65
+ version_added = ''
65
66
 
66
67
  _block_re = re.compile(r'(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)', re.M)
67
68
 
@@ -156,6 +157,7 @@ class SmartyLexer(RegexLexer):
156
157
  aliases = ['smarty']
157
158
  filenames = ['*.tpl']
158
159
  mimetypes = ['application/x-smarty']
160
+ version_added = ''
159
161
 
160
162
  flags = re.MULTILINE | re.DOTALL
161
163
 
@@ -212,6 +214,7 @@ class VelocityLexer(RegexLexer):
212
214
  url = 'https://velocity.apache.org/'
213
215
  aliases = ['velocity']
214
216
  filenames = ['*.vm', '*.fhtml']
217
+ version_added = ''
215
218
 
216
219
  flags = re.MULTILINE | re.DOTALL
217
220
 
@@ -292,8 +295,10 @@ class VelocityHtmlLexer(DelegatingLexer):
292
295
 
293
296
  name = 'HTML+Velocity'
294
297
  aliases = ['html+velocity']
298
+ version_added = ''
295
299
  alias_filenames = ['*.html', '*.fhtml']
296
300
  mimetypes = ['text/html+velocity']
301
+ url = 'https://velocity.apache.org/'
297
302
 
298
303
  def __init__(self, **options):
299
304
  super().__init__(HtmlLexer, VelocityLexer, **options)
@@ -308,8 +313,10 @@ class VelocityXmlLexer(DelegatingLexer):
308
313
 
309
314
  name = 'XML+Velocity'
310
315
  aliases = ['xml+velocity']
316
+ version_added = ''
311
317
  alias_filenames = ['*.xml', '*.vm']
312
318
  mimetypes = ['application/xml+velocity']
319
+ url = 'https://velocity.apache.org/'
313
320
 
314
321
  def __init__(self, **options):
315
322
  super().__init__(XmlLexer, VelocityLexer, **options)
@@ -323,8 +330,8 @@ class VelocityXmlLexer(DelegatingLexer):
323
330
 
324
331
  class DjangoLexer(RegexLexer):
325
332
  """
326
- Generic `django <http://www.djangoproject.com/documentation/templates/>`_
327
- and `jinja <https://jinja.pocoo.org/jinja/>`_ template lexer.
333
+ Generic `Django <https://www.djangoproject.com/documentation/templates/>`_
334
+ and `Jinja <https://jinja.palletsprojects.com>`_ template lexer.
328
335
 
329
336
  It just highlights django/jinja code between the preprocessor directives,
330
337
  other data is left untouched by the lexer.
@@ -333,6 +340,8 @@ class DjangoLexer(RegexLexer):
333
340
  name = 'Django/Jinja'
334
341
  aliases = ['django', 'jinja']
335
342
  mimetypes = ['application/x-django-templating', 'application/x-jinja']
343
+ url = 'https://www.djangoproject.com/documentation/templates'
344
+ version_added = ''
336
345
 
337
346
  flags = re.M | re.S
338
347
 
@@ -408,8 +417,6 @@ class MyghtyLexer(RegexLexer):
408
417
  """
409
418
  Generic myghty templates lexer. Code that isn't Myghty
410
419
  markup is yielded as `Token.Other`.
411
-
412
- .. versionadded:: 0.6
413
420
  """
414
421
 
415
422
  name = 'Myghty'
@@ -417,6 +424,7 @@ class MyghtyLexer(RegexLexer):
417
424
  aliases = ['myghty']
418
425
  filenames = ['*.myt', 'autodelegate']
419
426
  mimetypes = ['application/x-myghty']
427
+ version_added = '0.6'
420
428
 
421
429
  tokens = {
422
430
  'root': [
@@ -455,13 +463,13 @@ class MyghtyHtmlLexer(DelegatingLexer):
455
463
  """
456
464
  Subclass of the `MyghtyLexer` that highlights unlexed data
457
465
  with the `HtmlLexer`.
458
-
459
- .. versionadded:: 0.6
460
466
  """
461
467
 
462
468
  name = 'HTML+Myghty'
463
469
  aliases = ['html+myghty']
464
470
  mimetypes = ['text/html+myghty']
471
+ url = 'http://www.myghty.org/'
472
+ version_added = '0.6'
465
473
 
466
474
  def __init__(self, **options):
467
475
  super().__init__(HtmlLexer, MyghtyLexer, **options)
@@ -471,13 +479,13 @@ class MyghtyXmlLexer(DelegatingLexer):
471
479
  """
472
480
  Subclass of the `MyghtyLexer` that highlights unlexed data
473
481
  with the `XmlLexer`.
474
-
475
- .. versionadded:: 0.6
476
482
  """
477
483
 
478
484
  name = 'XML+Myghty'
479
485
  aliases = ['xml+myghty']
480
486
  mimetypes = ['application/xml+myghty']
487
+ url = 'http://www.myghty.org/'
488
+ version_added = '0.6'
481
489
 
482
490
  def __init__(self, **options):
483
491
  super().__init__(XmlLexer, MyghtyLexer, **options)
@@ -487,8 +495,6 @@ class MyghtyJavascriptLexer(DelegatingLexer):
487
495
  """
488
496
  Subclass of the `MyghtyLexer` that highlights unlexed data
489
497
  with the `JavascriptLexer`.
490
-
491
- .. versionadded:: 0.6
492
498
  """
493
499
 
494
500
  name = 'JavaScript+Myghty'
@@ -496,6 +502,8 @@ class MyghtyJavascriptLexer(DelegatingLexer):
496
502
  mimetypes = ['application/x-javascript+myghty',
497
503
  'text/x-javascript+myghty',
498
504
  'text/javascript+mygthy']
505
+ url = 'http://www.myghty.org/'
506
+ version_added = '0.6'
499
507
 
500
508
  def __init__(self, **options):
501
509
  super().__init__(JavascriptLexer, MyghtyLexer, **options)
@@ -505,13 +513,13 @@ class MyghtyCssLexer(DelegatingLexer):
505
513
  """
506
514
  Subclass of the `MyghtyLexer` that highlights unlexed data
507
515
  with the `CssLexer`.
508
-
509
- .. versionadded:: 0.6
510
516
  """
511
517
 
512
518
  name = 'CSS+Myghty'
513
519
  aliases = ['css+myghty']
514
520
  mimetypes = ['text/css+myghty']
521
+ url = 'http://www.myghty.org/'
522
+ version_added = '0.6'
515
523
 
516
524
  def __init__(self, **options):
517
525
  super().__init__(CssLexer, MyghtyLexer, **options)
@@ -521,14 +529,13 @@ class MasonLexer(RegexLexer):
521
529
  """
522
530
  Generic mason templates lexer. Stolen from Myghty lexer. Code that isn't
523
531
  Mason markup is HTML.
524
-
525
- .. versionadded:: 1.4
526
532
  """
527
533
  name = 'Mason'
528
534
  url = 'http://www.masonhq.com/'
529
535
  aliases = ['mason']
530
536
  filenames = ['*.m', '*.mhtml', '*.mc', '*.mi', 'autohandler', 'dhandler']
531
537
  mimetypes = ['application/x-mason']
538
+ version_added = '1.4'
532
539
 
533
540
  tokens = {
534
541
  'root': [
@@ -576,8 +583,6 @@ class MakoLexer(RegexLexer):
576
583
  """
577
584
  Generic mako templates lexer. Code that isn't Mako
578
585
  markup is yielded as `Token.Other`.
579
-
580
- .. versionadded:: 0.7
581
586
  """
582
587
 
583
588
  name = 'Mako'
@@ -585,6 +590,7 @@ class MakoLexer(RegexLexer):
585
590
  aliases = ['mako']
586
591
  filenames = ['*.mao']
587
592
  mimetypes = ['application/x-mako']
593
+ version_added = '0.7'
588
594
 
589
595
  tokens = {
590
596
  'root': [
@@ -643,13 +649,13 @@ class MakoHtmlLexer(DelegatingLexer):
643
649
  """
644
650
  Subclass of the `MakoLexer` that highlights unlexed data
645
651
  with the `HtmlLexer`.
646
-
647
- .. versionadded:: 0.7
648
652
  """
649
653
 
650
654
  name = 'HTML+Mako'
651
655
  aliases = ['html+mako']
652
656
  mimetypes = ['text/html+mako']
657
+ url = 'http://www.makotemplates.org/'
658
+ version_added = '0.7'
653
659
 
654
660
  def __init__(self, **options):
655
661
  super().__init__(HtmlLexer, MakoLexer, **options)
@@ -659,13 +665,13 @@ class MakoXmlLexer(DelegatingLexer):
659
665
  """
660
666
  Subclass of the `MakoLexer` that highlights unlexed data
661
667
  with the `XmlLexer`.
662
-
663
- .. versionadded:: 0.7
664
668
  """
665
669
 
666
670
  name = 'XML+Mako'
667
671
  aliases = ['xml+mako']
668
672
  mimetypes = ['application/xml+mako']
673
+ url = 'http://www.makotemplates.org/'
674
+ version_added = '0.7'
669
675
 
670
676
  def __init__(self, **options):
671
677
  super().__init__(XmlLexer, MakoLexer, **options)
@@ -675,8 +681,6 @@ class MakoJavascriptLexer(DelegatingLexer):
675
681
  """
676
682
  Subclass of the `MakoLexer` that highlights unlexed data
677
683
  with the `JavascriptLexer`.
678
-
679
- .. versionadded:: 0.7
680
684
  """
681
685
 
682
686
  name = 'JavaScript+Mako'
@@ -684,6 +688,8 @@ class MakoJavascriptLexer(DelegatingLexer):
684
688
  mimetypes = ['application/x-javascript+mako',
685
689
  'text/x-javascript+mako',
686
690
  'text/javascript+mako']
691
+ url = 'http://www.makotemplates.org/'
692
+ version_added = '0.7'
687
693
 
688
694
  def __init__(self, **options):
689
695
  super().__init__(JavascriptLexer, MakoLexer, **options)
@@ -693,13 +699,13 @@ class MakoCssLexer(DelegatingLexer):
693
699
  """
694
700
  Subclass of the `MakoLexer` that highlights unlexed data
695
701
  with the `CssLexer`.
696
-
697
- .. versionadded:: 0.7
698
702
  """
699
703
 
700
704
  name = 'CSS+Mako'
701
705
  aliases = ['css+mako']
702
706
  mimetypes = ['text/css+mako']
707
+ url = 'http://www.makotemplates.org/'
708
+ version_added = '0.7'
703
709
 
704
710
  def __init__(self, **options):
705
711
  super().__init__(CssLexer, MakoLexer, **options)
@@ -734,6 +740,7 @@ class CheetahLexer(RegexLexer):
734
740
  aliases = ['cheetah', 'spitfire']
735
741
  filenames = ['*.tmpl', '*.spt']
736
742
  mimetypes = ['application/x-cheetah', 'application/x-spitfire']
743
+ version_added = ''
737
744
 
738
745
  tokens = {
739
746
  'root': [
@@ -773,6 +780,8 @@ class CheetahHtmlLexer(DelegatingLexer):
773
780
  name = 'HTML+Cheetah'
774
781
  aliases = ['html+cheetah', 'html+spitfire', 'htmlcheetah']
775
782
  mimetypes = ['text/html+cheetah', 'text/html+spitfire']
783
+ url = 'http://www.cheetahtemplate.org/'
784
+ version_added = ''
776
785
 
777
786
  def __init__(self, **options):
778
787
  super().__init__(HtmlLexer, CheetahLexer, **options)
@@ -787,6 +796,8 @@ class CheetahXmlLexer(DelegatingLexer):
787
796
  name = 'XML+Cheetah'
788
797
  aliases = ['xml+cheetah', 'xml+spitfire']
789
798
  mimetypes = ['application/xml+cheetah', 'application/xml+spitfire']
799
+ url = 'http://www.cheetahtemplate.org/'
800
+ version_added = ''
790
801
 
791
802
  def __init__(self, **options):
792
803
  super().__init__(XmlLexer, CheetahLexer, **options)
@@ -807,6 +818,8 @@ class CheetahJavascriptLexer(DelegatingLexer):
807
818
  'application/x-javascript+spitfire',
808
819
  'text/x-javascript+spitfire',
809
820
  'text/javascript+spitfire']
821
+ url = 'http://www.cheetahtemplate.org/'
822
+ version_added = ''
810
823
 
811
824
  def __init__(self, **options):
812
825
  super().__init__(JavascriptLexer, CheetahLexer, **options)
@@ -818,9 +831,10 @@ class GenshiTextLexer(RegexLexer):
818
831
  """
819
832
 
820
833
  name = 'Genshi Text'
821
- url = 'http://genshi.edgewall.org/'
834
+ url = 'https://genshi.edgewall.org/'
822
835
  aliases = ['genshitext']
823
836
  mimetypes = ['application/x-genshi-text', 'text/x-genshi']
837
+ version_added = ''
824
838
 
825
839
  tokens = {
826
840
  'root': [
@@ -913,14 +927,16 @@ class GenshiMarkupLexer(RegexLexer):
913
927
 
914
928
  class HtmlGenshiLexer(DelegatingLexer):
915
929
  """
916
- A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ and
930
+ A lexer that highlights `genshi <https://genshi.edgewall.org/>`_ and
917
931
  `kid <http://kid-templating.org/>`_ kid HTML templates.
918
932
  """
919
933
 
920
934
  name = 'HTML+Genshi'
921
935
  aliases = ['html+genshi', 'html+kid']
936
+ version_added = ''
922
937
  alias_filenames = ['*.html', '*.htm', '*.xhtml']
923
938
  mimetypes = ['text/html+genshi']
939
+ url = 'https://genshi.edgewall.org/'
924
940
 
925
941
  def __init__(self, **options):
926
942
  super().__init__(HtmlLexer, GenshiMarkupLexer, **options)
@@ -936,15 +952,17 @@ class HtmlGenshiLexer(DelegatingLexer):
936
952
 
937
953
  class GenshiLexer(DelegatingLexer):
938
954
  """
939
- A lexer that highlights `genshi <http://genshi.edgewall.org/>`_ and
955
+ A lexer that highlights `genshi <https://genshi.edgewall.org/>`_ and
940
956
  `kid <http://kid-templating.org/>`_ kid XML templates.
941
957
  """
942
958
 
943
959
  name = 'Genshi'
944
960
  aliases = ['genshi', 'kid', 'xml+genshi', 'xml+kid']
945
961
  filenames = ['*.kid']
962
+ version_added = ''
946
963
  alias_filenames = ['*.xml']
947
964
  mimetypes = ['application/x-genshi', 'application/x-kid']
965
+ url = 'https://genshi.edgewall.org/'
948
966
 
949
967
  def __init__(self, **options):
950
968
  super().__init__(XmlLexer, GenshiMarkupLexer, **options)
@@ -966,10 +984,12 @@ class JavascriptGenshiLexer(DelegatingLexer):
966
984
  name = 'JavaScript+Genshi Text'
967
985
  aliases = ['js+genshitext', 'js+genshi', 'javascript+genshitext',
968
986
  'javascript+genshi']
987
+ version_added = ''
969
988
  alias_filenames = ['*.js']
970
989
  mimetypes = ['application/x-javascript+genshi',
971
990
  'text/x-javascript+genshi',
972
991
  'text/javascript+genshi']
992
+ url = 'https://genshi.edgewall.org'
973
993
 
974
994
  def __init__(self, **options):
975
995
  super().__init__(JavascriptLexer, GenshiTextLexer, **options)
@@ -985,8 +1005,10 @@ class CssGenshiLexer(DelegatingLexer):
985
1005
 
986
1006
  name = 'CSS+Genshi Text'
987
1007
  aliases = ['css+genshitext', 'css+genshi']
1008
+ version_added = ''
988
1009
  alias_filenames = ['*.css']
989
1010
  mimetypes = ['text/css+genshi']
1011
+ url = 'https://genshi.edgewall.org'
990
1012
 
991
1013
  def __init__(self, **options):
992
1014
  super().__init__(CssLexer, GenshiTextLexer, **options)
@@ -1006,8 +1028,11 @@ class RhtmlLexer(DelegatingLexer):
1006
1028
  name = 'RHTML'
1007
1029
  aliases = ['rhtml', 'html+erb', 'html+ruby']
1008
1030
  filenames = ['*.rhtml']
1031
+ version_added = ''
1009
1032
  alias_filenames = ['*.html', '*.htm', '*.xhtml']
1010
1033
  mimetypes = ['text/html+ruby']
1034
+ url = 'https://github.com/ruby/erb'
1035
+
1011
1036
 
1012
1037
  def __init__(self, **options):
1013
1038
  super().__init__(HtmlLexer, ErbLexer, **options)
@@ -1028,8 +1053,10 @@ class XmlErbLexer(DelegatingLexer):
1028
1053
 
1029
1054
  name = 'XML+Ruby'
1030
1055
  aliases = ['xml+ruby', 'xml+erb']
1056
+ version_added = ''
1031
1057
  alias_filenames = ['*.xml']
1032
1058
  mimetypes = ['application/xml+ruby']
1059
+ url = 'https://github.com/ruby/erb'
1033
1060
 
1034
1061
  def __init__(self, **options):
1035
1062
  super().__init__(XmlLexer, ErbLexer, **options)
@@ -1048,8 +1075,10 @@ class CssErbLexer(DelegatingLexer):
1048
1075
 
1049
1076
  name = 'CSS+Ruby'
1050
1077
  aliases = ['css+ruby', 'css+erb']
1078
+ version_added = ''
1051
1079
  alias_filenames = ['*.css']
1052
1080
  mimetypes = ['text/css+ruby']
1081
+ url = 'https://github.com/ruby/erb'
1053
1082
 
1054
1083
  def __init__(self, **options):
1055
1084
  super().__init__(CssLexer, ErbLexer, **options)
@@ -1066,10 +1095,12 @@ class JavascriptErbLexer(DelegatingLexer):
1066
1095
 
1067
1096
  name = 'JavaScript+Ruby'
1068
1097
  aliases = ['javascript+ruby', 'js+ruby', 'javascript+erb', 'js+erb']
1098
+ version_added = ''
1069
1099
  alias_filenames = ['*.js']
1070
1100
  mimetypes = ['application/x-javascript+ruby',
1071
1101
  'text/x-javascript+ruby',
1072
1102
  'text/javascript+ruby']
1103
+ url = 'https://github.com/ruby/erb'
1073
1104
 
1074
1105
  def __init__(self, **options):
1075
1106
  super().__init__(JavascriptLexer, ErbLexer, **options)
@@ -1088,11 +1119,14 @@ class HtmlPhpLexer(DelegatingLexer):
1088
1119
  name = 'HTML+PHP'
1089
1120
  aliases = ['html+php']
1090
1121
  filenames = ['*.phtml']
1122
+ version_added = ''
1091
1123
  alias_filenames = ['*.php', '*.html', '*.htm', '*.xhtml',
1092
1124
  '*.php[345]']
1093
1125
  mimetypes = ['application/x-php',
1094
1126
  'application/x-httpd-php', 'application/x-httpd-php3',
1095
1127
  'application/x-httpd-php4', 'application/x-httpd-php5']
1128
+ url = 'https://www.php.net'
1129
+
1096
1130
 
1097
1131
  def __init__(self, **options):
1098
1132
  super().__init__(HtmlLexer, PhpLexer, **options)
@@ -1111,8 +1145,10 @@ class XmlPhpLexer(DelegatingLexer):
1111
1145
 
1112
1146
  name = 'XML+PHP'
1113
1147
  aliases = ['xml+php']
1148
+ version_added = ''
1114
1149
  alias_filenames = ['*.xml', '*.php', '*.php[345]']
1115
1150
  mimetypes = ['application/xml+php']
1151
+ url = 'https://www.php.net'
1116
1152
 
1117
1153
  def __init__(self, **options):
1118
1154
  super().__init__(XmlLexer, PhpLexer, **options)
@@ -1131,8 +1167,10 @@ class CssPhpLexer(DelegatingLexer):
1131
1167
 
1132
1168
  name = 'CSS+PHP'
1133
1169
  aliases = ['css+php']
1170
+ version_added = ''
1134
1171
  alias_filenames = ['*.css']
1135
1172
  mimetypes = ['text/css+php']
1173
+ url = 'https://www.php.net'
1136
1174
 
1137
1175
  def __init__(self, **options):
1138
1176
  super().__init__(CssLexer, PhpLexer, **options)
@@ -1149,10 +1187,12 @@ class JavascriptPhpLexer(DelegatingLexer):
1149
1187
 
1150
1188
  name = 'JavaScript+PHP'
1151
1189
  aliases = ['javascript+php', 'js+php']
1190
+ version_added = ''
1152
1191
  alias_filenames = ['*.js']
1153
1192
  mimetypes = ['application/x-javascript+php',
1154
1193
  'text/x-javascript+php',
1155
1194
  'text/javascript+php']
1195
+ url = 'https://www.php.net'
1156
1196
 
1157
1197
  def __init__(self, **options):
1158
1198
  super().__init__(JavascriptLexer, PhpLexer, **options)
@@ -1171,8 +1211,10 @@ class HtmlSmartyLexer(DelegatingLexer):
1171
1211
 
1172
1212
  name = 'HTML+Smarty'
1173
1213
  aliases = ['html+smarty']
1214
+ version_added = ''
1174
1215
  alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.tpl']
1175
1216
  mimetypes = ['text/html+smarty']
1217
+ url = 'https://www.smarty.net/'
1176
1218
 
1177
1219
  def __init__(self, **options):
1178
1220
  super().__init__(HtmlLexer, SmartyLexer, **options)
@@ -1192,8 +1234,10 @@ class XmlSmartyLexer(DelegatingLexer):
1192
1234
 
1193
1235
  name = 'XML+Smarty'
1194
1236
  aliases = ['xml+smarty']
1237
+ version_added = ''
1195
1238
  alias_filenames = ['*.xml', '*.tpl']
1196
1239
  mimetypes = ['application/xml+smarty']
1240
+ url = 'https://www.smarty.net/'
1197
1241
 
1198
1242
  def __init__(self, **options):
1199
1243
  super().__init__(XmlLexer, SmartyLexer, **options)
@@ -1213,8 +1257,10 @@ class CssSmartyLexer(DelegatingLexer):
1213
1257
 
1214
1258
  name = 'CSS+Smarty'
1215
1259
  aliases = ['css+smarty']
1260
+ version_added = ''
1216
1261
  alias_filenames = ['*.css', '*.tpl']
1217
1262
  mimetypes = ['text/css+smarty']
1263
+ url = 'https://www.smarty.net/'
1218
1264
 
1219
1265
  def __init__(self, **options):
1220
1266
  super().__init__(CssLexer, SmartyLexer, **options)
@@ -1231,10 +1277,12 @@ class JavascriptSmartyLexer(DelegatingLexer):
1231
1277
 
1232
1278
  name = 'JavaScript+Smarty'
1233
1279
  aliases = ['javascript+smarty', 'js+smarty']
1280
+ version_added = ''
1234
1281
  alias_filenames = ['*.js', '*.tpl']
1235
1282
  mimetypes = ['application/x-javascript+smarty',
1236
1283
  'text/x-javascript+smarty',
1237
1284
  'text/javascript+smarty']
1285
+ url = 'https://www.smarty.net/'
1238
1286
 
1239
1287
  def __init__(self, **options):
1240
1288
  super().__init__(JavascriptLexer, SmartyLexer, **options)
@@ -1254,8 +1302,10 @@ class HtmlDjangoLexer(DelegatingLexer):
1254
1302
  name = 'HTML+Django/Jinja'
1255
1303
  aliases = ['html+django', 'html+jinja', 'htmldjango']
1256
1304
  filenames = ['*.html.j2', '*.htm.j2', '*.xhtml.j2', '*.html.jinja2', '*.htm.jinja2', '*.xhtml.jinja2']
1305
+ version_added = ''
1257
1306
  alias_filenames = ['*.html', '*.htm', '*.xhtml']
1258
1307
  mimetypes = ['text/html+django', 'text/html+jinja']
1308
+ url = 'https://www.djangoproject.com/documentation/templates'
1259
1309
 
1260
1310
  def __init__(self, **options):
1261
1311
  super().__init__(HtmlLexer, DjangoLexer, **options)
@@ -1276,8 +1326,10 @@ class XmlDjangoLexer(DelegatingLexer):
1276
1326
  name = 'XML+Django/Jinja'
1277
1327
  aliases = ['xml+django', 'xml+jinja']
1278
1328
  filenames = ['*.xml.j2', '*.xml.jinja2']
1329
+ version_added = ''
1279
1330
  alias_filenames = ['*.xml']
1280
1331
  mimetypes = ['application/xml+django', 'application/xml+jinja']
1332
+ url = 'https://www.djangoproject.com/documentation/templates'
1281
1333
 
1282
1334
  def __init__(self, **options):
1283
1335
  super().__init__(XmlLexer, DjangoLexer, **options)
@@ -1298,8 +1350,10 @@ class CssDjangoLexer(DelegatingLexer):
1298
1350
  name = 'CSS+Django/Jinja'
1299
1351
  aliases = ['css+django', 'css+jinja']
1300
1352
  filenames = ['*.css.j2', '*.css.jinja2']
1353
+ version_added = ''
1301
1354
  alias_filenames = ['*.css']
1302
1355
  mimetypes = ['text/css+django', 'text/css+jinja']
1356
+ url = 'https://www.djangoproject.com/documentation/templates'
1303
1357
 
1304
1358
  def __init__(self, **options):
1305
1359
  super().__init__(CssLexer, DjangoLexer, **options)
@@ -1318,6 +1372,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
1318
1372
  aliases = ['javascript+django', 'js+django',
1319
1373
  'javascript+jinja', 'js+jinja']
1320
1374
  filenames = ['*.js.j2', '*.js.jinja2']
1375
+ version_added = ''
1321
1376
  alias_filenames = ['*.js']
1322
1377
  mimetypes = ['application/x-javascript+django',
1323
1378
  'application/x-javascript+jinja',
@@ -1325,6 +1380,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
1325
1380
  'text/x-javascript+jinja',
1326
1381
  'text/javascript+django',
1327
1382
  'text/javascript+jinja']
1383
+ url = 'https://www.djangoproject.com/documentation/templates'
1328
1384
 
1329
1385
  def __init__(self, **options):
1330
1386
  super().__init__(JavascriptLexer, DjangoLexer, **options)
@@ -1361,13 +1417,13 @@ class JspRootLexer(RegexLexer):
1361
1417
  class JspLexer(DelegatingLexer):
1362
1418
  """
1363
1419
  Lexer for Java Server Pages.
1364
-
1365
- .. versionadded:: 0.7
1366
1420
  """
1367
1421
  name = 'Java Server Page'
1368
1422
  aliases = ['jsp']
1369
1423
  filenames = ['*.jsp']
1370
1424
  mimetypes = ['application/x-jsp']
1425
+ url = 'https://projects.eclipse.org/projects/ee4j.jsp'
1426
+ version_added = '0.7'
1371
1427
 
1372
1428
  def __init__(self, **options):
1373
1429
  super().__init__(XmlLexer, JspRootLexer, **options)
@@ -1384,13 +1440,13 @@ class JspLexer(DelegatingLexer):
1384
1440
  class EvoqueLexer(RegexLexer):
1385
1441
  """
1386
1442
  For files using the Evoque templating system.
1387
-
1388
- .. versionadded:: 1.1
1389
1443
  """
1390
1444
  name = 'Evoque'
1391
1445
  aliases = ['evoque']
1392
1446
  filenames = ['*.evoque']
1393
1447
  mimetypes = ['application/x-evoque']
1448
+ url = 'https://gizmojo.org/templating'
1449
+ version_added = '1.1'
1394
1450
 
1395
1451
  flags = re.DOTALL
1396
1452
 
@@ -1442,13 +1498,13 @@ class EvoqueHtmlLexer(DelegatingLexer):
1442
1498
  """
1443
1499
  Subclass of the `EvoqueLexer` that highlights unlexed data with the
1444
1500
  `HtmlLexer`.
1445
-
1446
- .. versionadded:: 1.1
1447
1501
  """
1448
1502
  name = 'HTML+Evoque'
1449
1503
  aliases = ['html+evoque']
1450
1504
  filenames = ['*.html']
1451
1505
  mimetypes = ['text/html+evoque']
1506
+ url = 'https://gizmojo.org/templating'
1507
+ version_added = '1.1'
1452
1508
 
1453
1509
  def __init__(self, **options):
1454
1510
  super().__init__(HtmlLexer, EvoqueLexer, **options)
@@ -1461,13 +1517,13 @@ class EvoqueXmlLexer(DelegatingLexer):
1461
1517
  """
1462
1518
  Subclass of the `EvoqueLexer` that highlights unlexed data with the
1463
1519
  `XmlLexer`.
1464
-
1465
- .. versionadded:: 1.1
1466
1520
  """
1467
1521
  name = 'XML+Evoque'
1468
1522
  aliases = ['xml+evoque']
1469
1523
  filenames = ['*.xml']
1470
1524
  mimetypes = ['application/xml+evoque']
1525
+ url = 'https://gizmojo.org/templating'
1526
+ version_added = '1.1'
1471
1527
 
1472
1528
  def __init__(self, **options):
1473
1529
  super().__init__(XmlLexer, EvoqueLexer, **options)
@@ -1484,6 +1540,9 @@ class ColdfusionLexer(RegexLexer):
1484
1540
  aliases = ['cfs']
1485
1541
  filenames = []
1486
1542
  mimetypes = []
1543
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1544
+ version_added = ''
1545
+
1487
1546
  flags = re.IGNORECASE
1488
1547
 
1489
1548
  tokens = {
@@ -1532,6 +1591,7 @@ class ColdfusionMarkupLexer(RegexLexer):
1532
1591
  aliases = ['cf']
1533
1592
  filenames = []
1534
1593
  mimetypes = []
1594
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1535
1595
 
1536
1596
  tokens = {
1537
1597
  'root': [
@@ -1578,6 +1638,8 @@ class ColdfusionHtmlLexer(DelegatingLexer):
1578
1638
  aliases = ['cfm']
1579
1639
  filenames = ['*.cfm', '*.cfml']
1580
1640
  mimetypes = ['application/x-coldfusion']
1641
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1642
+ version_added = ''
1581
1643
 
1582
1644
  def __init__(self, **options):
1583
1645
  super().__init__(HtmlLexer, ColdfusionMarkupLexer, **options)
@@ -1586,13 +1648,13 @@ class ColdfusionHtmlLexer(DelegatingLexer):
1586
1648
  class ColdfusionCFCLexer(DelegatingLexer):
1587
1649
  """
1588
1650
  Coldfusion markup/script components
1589
-
1590
- .. versionadded:: 2.0
1591
1651
  """
1592
1652
  name = 'Coldfusion CFC'
1593
1653
  aliases = ['cfc']
1594
1654
  filenames = ['*.cfc']
1595
1655
  mimetypes = []
1656
+ url = 'https://www.adobe.com/products/coldfusion-family.html'
1657
+ version_added = '2.0'
1596
1658
 
1597
1659
  def __init__(self, **options):
1598
1660
  super().__init__(ColdfusionHtmlLexer, ColdfusionLexer, **options)
@@ -1601,13 +1663,13 @@ class ColdfusionCFCLexer(DelegatingLexer):
1601
1663
  class SspLexer(DelegatingLexer):
1602
1664
  """
1603
1665
  Lexer for Scalate Server Pages.
1604
-
1605
- .. versionadded:: 1.4
1606
1666
  """
1607
1667
  name = 'Scalate Server Page'
1608
1668
  aliases = ['ssp']
1609
1669
  filenames = ['*.ssp']
1610
1670
  mimetypes = ['application/x-ssp']
1671
+ url = 'https://scalate.github.io/scalate/'
1672
+ version_added = '1.4'
1611
1673
 
1612
1674
  def __init__(self, **options):
1613
1675
  super().__init__(XmlLexer, JspRootLexer, **options)
@@ -1647,14 +1709,14 @@ class TeaTemplateRootLexer(RegexLexer):
1647
1709
 
1648
1710
  class TeaTemplateLexer(DelegatingLexer):
1649
1711
  """
1650
- Lexer for `Tea Templates <http://teatrove.org/>`_.
1651
-
1652
- .. versionadded:: 1.5
1712
+ Lexer for Tea Templates.
1653
1713
  """
1654
1714
  name = 'Tea'
1655
1715
  aliases = ['tea']
1656
1716
  filenames = ['*.tea']
1657
1717
  mimetypes = ['text/x-tea']
1718
+ url = 'https://github.com/teatrove/teatrove'
1719
+ version_added = '1.5'
1658
1720
 
1659
1721
  def __init__(self, **options):
1660
1722
  super().__init__(XmlLexer, TeaTemplateRootLexer, **options)
@@ -1674,17 +1736,17 @@ class LassoHtmlLexer(DelegatingLexer):
1674
1736
  `HtmlLexer`.
1675
1737
 
1676
1738
  Nested JavaScript and CSS is also highlighted.
1677
-
1678
- .. versionadded:: 1.6
1679
1739
  """
1680
1740
 
1681
1741
  name = 'HTML+Lasso'
1682
1742
  aliases = ['html+lasso']
1743
+ version_added = '1.6'
1683
1744
  alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.lasso', '*.lasso[89]',
1684
1745
  '*.incl', '*.inc', '*.las']
1685
1746
  mimetypes = ['text/html+lasso',
1686
1747
  'application/x-httpd-lasso',
1687
1748
  'application/x-httpd-lasso[89]']
1749
+ url = 'https://www.lassosoft.com'
1688
1750
 
1689
1751
  def __init__(self, **options):
1690
1752
  super().__init__(HtmlLexer, LassoLexer, **options)
@@ -1700,15 +1762,15 @@ class LassoXmlLexer(DelegatingLexer):
1700
1762
  """
1701
1763
  Subclass of the `LassoLexer` which highlights unhandled data with the
1702
1764
  `XmlLexer`.
1703
-
1704
- .. versionadded:: 1.6
1705
1765
  """
1706
1766
 
1707
1767
  name = 'XML+Lasso'
1708
1768
  aliases = ['xml+lasso']
1769
+ version_added = '1.6'
1709
1770
  alias_filenames = ['*.xml', '*.lasso', '*.lasso[89]',
1710
1771
  '*.incl', '*.inc', '*.las']
1711
1772
  mimetypes = ['application/xml+lasso']
1773
+ url = 'https://www.lassosoft.com'
1712
1774
 
1713
1775
  def __init__(self, **options):
1714
1776
  super().__init__(XmlLexer, LassoLexer, **options)
@@ -1724,14 +1786,14 @@ class LassoCssLexer(DelegatingLexer):
1724
1786
  """
1725
1787
  Subclass of the `LassoLexer` which highlights unhandled data with the
1726
1788
  `CssLexer`.
1727
-
1728
- .. versionadded:: 1.6
1729
1789
  """
1730
1790
 
1731
1791
  name = 'CSS+Lasso'
1732
1792
  aliases = ['css+lasso']
1793
+ version_added = '1.6'
1733
1794
  alias_filenames = ['*.css']
1734
1795
  mimetypes = ['text/css+lasso']
1796
+ url = 'https://www.lassosoft.com'
1735
1797
 
1736
1798
  def __init__(self, **options):
1737
1799
  options['requiredelimiters'] = True
@@ -1750,16 +1812,16 @@ class LassoJavascriptLexer(DelegatingLexer):
1750
1812
  """
1751
1813
  Subclass of the `LassoLexer` which highlights unhandled data with the
1752
1814
  `JavascriptLexer`.
1753
-
1754
- .. versionadded:: 1.6
1755
1815
  """
1756
1816
 
1757
1817
  name = 'JavaScript+Lasso'
1758
1818
  aliases = ['javascript+lasso', 'js+lasso']
1819
+ version_added = '1.6'
1759
1820
  alias_filenames = ['*.js']
1760
1821
  mimetypes = ['application/x-javascript+lasso',
1761
1822
  'text/x-javascript+lasso',
1762
1823
  'text/javascript+lasso']
1824
+ url = 'https://www.lassosoft.com'
1763
1825
 
1764
1826
  def __init__(self, **options):
1765
1827
  options['requiredelimiters'] = True
@@ -1776,13 +1838,12 @@ class HandlebarsLexer(RegexLexer):
1776
1838
 
1777
1839
  Highlights only the Handlebars template tags (stuff between `{{` and `}}`).
1778
1840
  Everything else is left for a delegating lexer.
1779
-
1780
- .. versionadded:: 2.0
1781
1841
  """
1782
1842
 
1783
1843
  name = "Handlebars"
1784
1844
  url = 'https://handlebarsjs.com/'
1785
1845
  aliases = ['handlebars']
1846
+ version_added = '2.0'
1786
1847
 
1787
1848
  tokens = {
1788
1849
  'root': [
@@ -1851,14 +1912,14 @@ class HandlebarsHtmlLexer(DelegatingLexer):
1851
1912
  """
1852
1913
  Subclass of the `HandlebarsLexer` that highlights unlexed data with the
1853
1914
  `HtmlLexer`.
1854
-
1855
- .. versionadded:: 2.0
1856
1915
  """
1857
1916
 
1858
1917
  name = "HTML+Handlebars"
1859
1918
  aliases = ["html+handlebars"]
1860
1919
  filenames = ['*.handlebars', '*.hbs']
1861
1920
  mimetypes = ['text/html+handlebars', 'text/x-handlebars-template']
1921
+ url = 'https://handlebarsjs.com/'
1922
+ version_added = '2.0'
1862
1923
 
1863
1924
  def __init__(self, **options):
1864
1925
  super().__init__(HtmlLexer, HandlebarsLexer, **options)
@@ -1870,14 +1931,14 @@ class YamlJinjaLexer(DelegatingLexer):
1870
1931
  `YamlLexer`.
1871
1932
 
1872
1933
  Commonly used in Saltstack salt states.
1873
-
1874
- .. versionadded:: 2.0
1875
1934
  """
1876
1935
 
1877
1936
  name = 'YAML+Jinja'
1878
1937
  aliases = ['yaml+jinja', 'salt', 'sls']
1879
1938
  filenames = ['*.sls', '*.yaml.j2', '*.yml.j2', '*.yaml.jinja2', '*.yml.jinja2']
1880
1939
  mimetypes = ['text/x-yaml+jinja', 'text/x-sls']
1940
+ url = 'https://jinja.palletsprojects.com'
1941
+ version_added = '2.0'
1881
1942
 
1882
1943
  def __init__(self, **options):
1883
1944
  super().__init__(YamlLexer, DjangoLexer, **options)
@@ -1886,13 +1947,12 @@ class YamlJinjaLexer(DelegatingLexer):
1886
1947
  class LiquidLexer(RegexLexer):
1887
1948
  """
1888
1949
  Lexer for Liquid templates.
1889
-
1890
- .. versionadded:: 2.0
1891
1950
  """
1892
1951
  name = 'liquid'
1893
1952
  url = 'https://www.rubydoc.info/github/Shopify/liquid'
1894
1953
  aliases = ['liquid']
1895
1954
  filenames = ['*.liquid']
1955
+ version_added = '2.0'
1896
1956
 
1897
1957
  tokens = {
1898
1958
  'root': [
@@ -2095,13 +2155,13 @@ class TwigLexer(RegexLexer):
2095
2155
 
2096
2156
  It just highlights Twig code between the preprocessor directives,
2097
2157
  other data is left untouched by the lexer.
2098
-
2099
- .. versionadded:: 2.0
2100
2158
  """
2101
2159
 
2102
2160
  name = 'Twig'
2103
2161
  aliases = ['twig']
2104
2162
  mimetypes = ['application/x-twig']
2163
+ url = 'https://twig.symfony.com'
2164
+ version_added = '2.0'
2105
2165
 
2106
2166
  flags = re.M | re.S
2107
2167
 
@@ -2130,7 +2190,7 @@ class TwigLexer(RegexLexer):
2130
2190
  Other, Comment.Preproc, Text, Keyword, Text,
2131
2191
  Comment.Preproc)),
2132
2192
  # filter blocks
2133
- (r'(\{%%)(-?\s*)(filter)(\s+)(%s)' % _ident_inner,
2193
+ (rf'(\{{%)(-?\s*)(filter)(\s+)({_ident_inner})',
2134
2194
  bygroups(Comment.Preproc, Text, Keyword, Text, Name.Function),
2135
2195
  'tag'),
2136
2196
  (r'(\{%)(-?\s*)([a-zA-Z_]\w*)',
@@ -2138,9 +2198,9 @@ class TwigLexer(RegexLexer):
2138
2198
  (r'\{', Other),
2139
2199
  ],
2140
2200
  'varnames': [
2141
- (r'(\|)(\s*)(%s)' % _ident_inner,
2201
+ (rf'(\|)(\s*)({_ident_inner})',
2142
2202
  bygroups(Operator, Text, Name.Function)),
2143
- (r'(is)(\s+)(not)?(\s*)(%s)' % _ident_inner,
2203
+ (rf'(is)(\s+)(not)?(\s*)({_ident_inner})',
2144
2204
  bygroups(Keyword, Text, Keyword, Text, Name.Function)),
2145
2205
  (r'(?i)(true|false|none|null)\b', Keyword.Pseudo),
2146
2206
  (r'(in|not|and|b-and|or|b-or|b-xor|is'
@@ -2176,14 +2236,14 @@ class TwigHtmlLexer(DelegatingLexer):
2176
2236
  """
2177
2237
  Subclass of the `TwigLexer` that highlights unlexed data with the
2178
2238
  `HtmlLexer`.
2179
-
2180
- .. versionadded:: 2.0
2181
2239
  """
2182
2240
 
2183
2241
  name = "HTML+Twig"
2184
2242
  aliases = ["html+twig"]
2185
2243
  filenames = ['*.twig']
2186
2244
  mimetypes = ['text/html+twig']
2245
+ url = 'https://twig.symfony.com'
2246
+ version_added = '2.0'
2187
2247
 
2188
2248
  def __init__(self, **options):
2189
2249
  super().__init__(HtmlLexer, TwigLexer, **options)
@@ -2196,13 +2256,12 @@ class Angular2Lexer(RegexLexer):
2196
2256
  Highlights only the Angular template tags (stuff between `{{` and `}}` and
2197
2257
  special attributes: '(event)=', '[property]=', '[(twoWayBinding)]=').
2198
2258
  Everything else is left for a delegating lexer.
2199
-
2200
- .. versionadded:: 2.1
2201
2259
  """
2202
2260
 
2203
2261
  name = "Angular2"
2204
2262
  url = 'https://angular.io/guide/template-syntax'
2205
2263
  aliases = ['ng2']
2264
+ version_added = '2.1'
2206
2265
 
2207
2266
  tokens = {
2208
2267
  'root': [
@@ -2256,13 +2315,13 @@ class Angular2HtmlLexer(DelegatingLexer):
2256
2315
  """
2257
2316
  Subclass of the `Angular2Lexer` that highlights unlexed data with the
2258
2317
  `HtmlLexer`.
2259
-
2260
- .. versionadded:: 2.0
2261
2318
  """
2262
2319
 
2263
2320
  name = "HTML + Angular2"
2264
2321
  aliases = ["html+ng2"]
2265
2322
  filenames = ['*.ng2']
2323
+ url = 'https://angular.io/guide/template-syntax'
2324
+ version_added = '2.0'
2266
2325
 
2267
2326
  def __init__(self, **options):
2268
2327
  super().__init__(HtmlLexer, Angular2Lexer, **options)
@@ -2271,13 +2330,13 @@ class Angular2HtmlLexer(DelegatingLexer):
2271
2330
  class SqlJinjaLexer(DelegatingLexer):
2272
2331
  """
2273
2332
  Templated SQL lexer.
2274
-
2275
- .. versionadded:: 2.13
2276
2333
  """
2277
2334
 
2278
2335
  name = 'SQL+Jinja'
2279
2336
  aliases = ['sql+jinja']
2280
2337
  filenames = ['*.sql', '*.sql.j2', '*.sql.jinja2']
2338
+ url = 'https://jinja.palletsprojects.com'
2339
+ version_added = '2.13'
2281
2340
 
2282
2341
  def __init__(self, **options):
2283
2342
  super().__init__(SqlLexer, DjangoLexer, **options)