pygments.rb 2.4.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (349) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +8 -8
  3. data/.github/workflows/release.yml +5 -5
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +1 -1
  6. data/CHANGELOG.adoc +12 -0
  7. data/README.adoc +2 -2
  8. data/lib/pygments/popen.rb +2 -2
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +3 -3
  11. data/vendor/pygments-main/bin/pygmentize +1 -1
  12. data/vendor/pygments-main/pygments/__init__.py +2 -2
  13. data/vendor/pygments-main/pygments/__main__.py +1 -1
  14. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  15. data/vendor/pygments-main/pygments/console.py +5 -5
  16. data/vendor/pygments-main/pygments/filter.py +2 -3
  17. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  18. data/vendor/pygments-main/pygments/formatter.py +6 -1
  19. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  20. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  21. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  22. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  23. data/vendor/pygments-main/pygments/formatters/html.py +38 -40
  24. data/vendor/pygments-main/pygments/formatters/img.py +51 -11
  25. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  26. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  27. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  28. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  29. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  30. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  31. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  32. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  33. data/vendor/pygments-main/pygments/lexer.py +51 -33
  34. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  35. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  38. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  39. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  45. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  46. data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -11
  47. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  48. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  49. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  51. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  52. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  55. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  56. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  60. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  63. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  64. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  65. data/vendor/pygments-main/pygments/lexers/algebra.py +9 -13
  66. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  67. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  68. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  69. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  70. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  71. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  72. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  73. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  74. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  75. data/vendor/pygments-main/pygments/lexers/asm.py +28 -15
  76. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  77. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  78. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  79. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  80. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  81. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  82. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  83. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  84. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  85. data/vendor/pygments-main/pygments/lexers/bqn.py +109 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  90. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  91. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  92. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  93. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  94. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  96. data/vendor/pygments-main/pygments/lexers/configs.py +342 -108
  97. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  98. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  99. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  100. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  101. data/vendor/pygments-main/pygments/lexers/css.py +5 -5
  102. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  103. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  104. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  105. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  106. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  107. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  108. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  109. data/vendor/pygments-main/pygments/lexers/dotnet.py +19 -14
  110. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  111. data/vendor/pygments-main/pygments/lexers/dylan.py +8 -16
  112. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  113. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  114. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  115. data/vendor/pygments-main/pygments/lexers/elpi.py +28 -21
  116. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  117. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  118. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  119. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  120. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  121. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  122. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  123. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  124. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  125. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  126. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  127. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  128. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  129. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  130. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  131. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  132. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  134. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  135. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  136. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  137. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  138. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  139. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  141. data/vendor/pygments-main/pygments/lexers/haskell.py +27 -32
  142. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  143. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  144. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  145. data/vendor/pygments-main/pygments/lexers/html.py +34 -13
  146. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  147. data/vendor/pygments-main/pygments/lexers/igor.py +305 -290
  148. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  149. data/vendor/pygments-main/pygments/lexers/installers.py +7 -9
  150. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  151. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  152. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  153. data/vendor/pygments-main/pygments/lexers/javascript.py +18 -19
  154. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  155. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  156. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  157. data/vendor/pygments-main/pygments/lexers/jsx.py +75 -0
  158. data/vendor/pygments-main/pygments/lexers/julia.py +4 -5
  159. data/vendor/pygments-main/pygments/lexers/jvm.py +98 -116
  160. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  161. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  162. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  163. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  164. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  165. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  166. data/vendor/pygments-main/pygments/lexers/macaulay2.py +53 -4
  167. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  168. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  169. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  170. data/vendor/pygments-main/pygments/lexers/matlab.py +10 -12
  171. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  172. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  173. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  174. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  175. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  176. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  177. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  178. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  179. data/vendor/pygments-main/pygments/lexers/mojo.py +704 -0
  180. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  181. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  182. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  183. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  184. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  185. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  186. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  187. data/vendor/pygments-main/pygments/lexers/objective.py +14 -6
  188. data/vendor/pygments-main/pygments/lexers/ooc.py +2 -3
  189. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  190. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  191. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  192. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  193. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  194. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  195. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  196. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  197. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  198. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  199. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  200. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  201. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  202. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  203. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  205. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  206. data/vendor/pygments-main/pygments/lexers/python.py +24 -24
  207. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  208. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  209. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  210. data/vendor/pygments-main/pygments/lexers/r.py +8 -6
  211. data/vendor/pygments-main/pygments/lexers/rdf.py +19 -13
  212. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  213. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  214. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  215. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  216. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  217. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  218. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  219. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  220. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  221. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  222. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  223. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  224. data/vendor/pygments-main/pygments/lexers/scripting.py +354 -42
  225. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  226. data/vendor/pygments-main/pygments/lexers/shell.py +107 -129
  227. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  228. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  229. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  230. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  231. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  232. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  233. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  234. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  235. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  236. data/vendor/pygments-main/pygments/lexers/special.py +8 -3
  237. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  238. data/vendor/pygments-main/pygments/lexers/sql.py +24 -18
  239. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  240. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  241. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  242. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  243. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  244. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  245. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  246. data/vendor/pygments-main/pygments/lexers/templates.py +131 -72
  247. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  248. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  249. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  250. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  251. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  252. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  253. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  254. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  255. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  256. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  257. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  258. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  259. data/vendor/pygments-main/pygments/lexers/typst.py +104 -0
  260. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  261. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  262. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  263. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  264. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  265. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  266. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  267. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  268. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  269. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  270. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  271. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  272. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  273. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  274. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  275. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  276. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  277. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  278. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  279. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  280. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  281. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  282. data/vendor/pygments-main/pygments/modeline.py +4 -4
  283. data/vendor/pygments-main/pygments/plugin.py +3 -19
  284. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  285. data/vendor/pygments-main/pygments/scanner.py +1 -1
  286. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  287. data/vendor/pygments-main/pygments/style.py +8 -2
  288. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  289. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  290. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  291. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  292. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  293. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  294. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  295. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  296. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  297. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  298. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  299. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  300. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  301. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  302. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  303. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  304. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  305. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  306. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  307. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  308. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  309. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  310. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  311. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  312. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  313. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  314. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  315. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  316. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  317. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  318. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  319. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  320. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  321. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  322. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  323. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  324. data/vendor/pygments-main/pygments/styles/rrt.py +8 -2
  325. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  326. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  327. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  328. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  329. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  330. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  331. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  332. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  333. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  334. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  335. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  336. data/vendor/pygments-main/pygments/token.py +2 -1
  337. data/vendor/pygments-main/pygments/unistring.py +5 -5
  338. data/vendor/pygments-main/pygments/util.py +13 -19
  339. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/METADATA +14 -13
  340. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +663 -0
  341. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/WHEEL +1 -2
  342. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/AUTHORS +13 -0
  343. metadata +41 -17
  344. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  345. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  346. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/INSTALLER +0 -0
  347. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/REQUESTED +0 -0
  348. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/entry_points.txt +0 -0
  349. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,93 @@
1
+ """
2
+ pygments.lexers.kusto
3
+ ~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for Kusto Query Language (KQL).
6
+
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer, words
12
+ from pygments.token import (Comment, Keyword, Name, Number, Punctuation,
13
+ String, Whitespace)
14
+
15
+ __all__ = ["KustoLexer"]
16
+
17
+ # Although these all seem to be keywords
18
+ # https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Syntax/SyntaxFacts.cs
19
+ # it appears that only the ones with tags here
20
+ # https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Parser/QueryGrammar.cs
21
+ # are highlighted in the Azure portal log query editor.
22
+ KUSTO_KEYWORDS = [
23
+ 'and', 'as', 'between', 'by', 'consume', 'contains', 'containscs', 'count',
24
+ 'distinct', 'evaluate', 'extend', 'facet', 'filter', 'find', 'fork',
25
+ 'getschema', 'has', 'invoke', 'join', 'limit', 'lookup', 'make-series',
26
+ 'matches regex', 'mv-apply', 'mv-expand', 'notcontains', 'notcontainscs',
27
+ '!contains', '!has', '!startswith', 'on', 'or', 'order', 'parse', 'parse-where',
28
+ 'parse-kv', 'partition', 'print', 'project', 'project-away', 'project-keep',
29
+ 'project-rename', 'project-reorder', 'range', 'reduce', 'regex', 'render',
30
+ 'sample', 'sample-distinct', 'scan', 'search', 'serialize', 'sort', 'startswith',
31
+ 'summarize', 'take', 'top', 'top-hitters', 'top-nested', 'typeof', 'union',
32
+ 'where', 'bool', 'date', 'datetime', 'int', 'long', 'real', 'string', 'time'
33
+ ]
34
+
35
+ # From
36
+ # https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Syntax/SyntaxFacts.cs
37
+ KUSTO_PUNCTUATION = [
38
+ "(", ")", "[", "]", "{", "}", "|", "<|", "+", "-", "*", "/",
39
+ "%", ".." "!", "<", "<=", ">", ">=", "=", "==", "!=", "<>",
40
+ ":", ";", ",", "=~", "!~", "?", "=>",
41
+ ]
42
+
43
+
44
+ class KustoLexer(RegexLexer):
45
+ """For Kusto Query Language source code.
46
+ """
47
+
48
+ name = "Kusto"
49
+ aliases = ["kql", "kusto"]
50
+ filenames = ["*.kql", "*.kusto", ".csl"]
51
+ url = "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query"
52
+ version_added = '2.17'
53
+
54
+ tokens = {
55
+ "root": [
56
+ (r"\s+", Whitespace),
57
+ (words(KUSTO_KEYWORDS, suffix=r"\b"), Keyword),
58
+ (r"//.*", Comment),
59
+ (words(KUSTO_PUNCTUATION), Punctuation),
60
+ (r"[^\W\d]\w*", Name),
61
+ # Numbers can take the form 1, .1, 1., 1.1, 1.1111, etc.
62
+ (r"\d+[.]\d*|[.]\d+", Number.Float),
63
+ (r"\d+", Number.Integer),
64
+ (r"'", String, "single_string"),
65
+ (r'"', String, "double_string"),
66
+ (r"@'", String, "single_verbatim"),
67
+ (r'@"', String, "double_verbatim"),
68
+ (r"```", String, "multi_string"),
69
+ ],
70
+ "single_string": [
71
+ (r"'", String, "#pop"),
72
+ (r"\\.", String.Escape),
73
+ (r"[^'\\]+", String),
74
+ ],
75
+ "double_string": [
76
+ (r'"', String, "#pop"),
77
+ (r"\\.", String.Escape),
78
+ (r'[^"\\]+', String),
79
+ ],
80
+ "single_verbatim": [
81
+ (r"'", String, "#pop"),
82
+ (r"[^']+", String),
83
+ ],
84
+ "double_verbatim": [
85
+ (r'"', String, "#pop"),
86
+ (r'[^"]+', String),
87
+ ],
88
+ "multi_string": [
89
+ (r"[^`]+", String),
90
+ (r"```", String, "#pop"),
91
+ (r"`", String),
92
+ ],
93
+ }
@@ -0,0 +1,155 @@
1
+ """
2
+ pygments.lexers.ldap
3
+ ~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Pygments lexers for LDAP.
6
+
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import re
12
+
13
+
14
+ from pygments.lexer import RegexLexer, bygroups, default
15
+ from pygments.token import Operator, Comment, Keyword, Literal, Name, String, \
16
+ Number, Punctuation, Whitespace, Escape
17
+
18
+ __all__ = ['LdifLexer', 'LdaprcLexer']
19
+
20
+
21
+ class LdifLexer(RegexLexer):
22
+
23
+ """
24
+ Lexer for LDIF
25
+ """
26
+
27
+ name = 'LDIF'
28
+ aliases = ['ldif']
29
+ filenames = ['*.ldif']
30
+ mimetypes = ["text/x-ldif"]
31
+ url = "https://datatracker.ietf.org/doc/html/rfc2849"
32
+ version_added = '2.17'
33
+
34
+ tokens = {
35
+ 'root': [
36
+ (r'\s*\n', Whitespace),
37
+ (r'(-)(\n)', bygroups(Punctuation, Whitespace)),
38
+ (r'(#.*)(\n)', bygroups(Comment.Single, Whitespace)),
39
+ (r'(version)(:)([ \t]*)(.*)([ \t]*\n)', bygroups(Keyword,
40
+ Punctuation, Whitespace, Number.Integer, Whitespace)),
41
+ (r'(control)(:)([ \t]*)([\.0-9]+)([ \t]+)((?:true|false)?)([ \t]*)',
42
+ bygroups(Keyword, Punctuation, Whitespace, Name.Other, Whitespace, Keyword, Whitespace), "after-control"),
43
+ (r'(deleteoldrdn)(:)([ \n]*)([0-1]+)([ \t]*\n)',
44
+ bygroups(Keyword, Punctuation, Whitespace, Number, Whitespace)),
45
+ (r'(add|delete|replace)(::?)(\s*)(.*)([ \t]*\n)', bygroups(
46
+ Keyword, Punctuation, Whitespace, Name.Attribute, Whitespace)),
47
+ (r'(changetype)(:)([ \t]*)([a-z]*)([ \t]*\n)',
48
+ bygroups(Keyword, Punctuation, Whitespace, Keyword, Whitespace)),
49
+ (r'(dn|newrdn)(::)', bygroups(Keyword, Punctuation), "base64-dn"),
50
+ (r'(dn|newrdn)(:)', bygroups(Keyword, Punctuation), "dn"),
51
+ (r'(objectclass)(:)([ \t]*)([^ \t\n]*)([ \t]*\n)', bygroups(
52
+ Keyword, Punctuation, Whitespace, Name.Class, Whitespace)),
53
+ (r'([a-zA-Z]*|[0-9][0-9\.]*[0-9])(;)',
54
+ bygroups(Name.Attribute, Punctuation), "property"),
55
+ (r'([a-zA-Z]*|[0-9][0-9\.]*[0-9])(:<)',
56
+ bygroups(Name.Attribute, Punctuation), "url"),
57
+ (r'([a-zA-Z]*|[0-9][0-9\.]*[0-9])(::?)',
58
+ bygroups(Name.Attribute, Punctuation), "value"),
59
+ ],
60
+ "after-control": [
61
+ (r":<", Punctuation, ("#pop", "url")),
62
+ (r"::?", Punctuation, ("#pop", "value")),
63
+ default("#pop"),
64
+ ],
65
+ 'property': [
66
+ (r'([-a-zA-Z0-9]*)(;)', bygroups(Name.Property, Punctuation)),
67
+ (r'([-a-zA-Z0-9]*)(:<)',
68
+ bygroups(Name.Property, Punctuation), ("#pop", "url")),
69
+ (r'([-a-zA-Z0-9]*)(::?)',
70
+ bygroups(Name.Property, Punctuation), ("#pop", "value")),
71
+ ],
72
+ 'value': [
73
+ (r'(\s*)([^\n]+\S)(\n )',
74
+ bygroups(Whitespace, String, Whitespace)),
75
+ (r'(\s*)([^\n]+\S)(\n)',
76
+ bygroups(Whitespace, String, Whitespace), "#pop"),
77
+ ],
78
+ 'url': [
79
+ (r'([ \t]*)(\S*)([ \t]*\n )',
80
+ bygroups(Whitespace, Comment.PreprocFile, Whitespace)),
81
+ (r'([ \t]*)(\S*)([ \t]*\n)', bygroups(Whitespace,
82
+ Comment.PreprocFile, Whitespace), "#pop"),
83
+ ],
84
+ "dn": [
85
+ (r'([ \t]*)([-a-zA-Z0-9\.]+)(=)', bygroups(Whitespace,
86
+ Name.Attribute, Operator), ("#pop", "dn-value")),
87
+ ],
88
+ "dn-value": [
89
+ (r'\\[^\n]', Escape),
90
+ (r',', Punctuation, ("#pop", "dn")),
91
+ (r'\+', Operator, ("#pop", "dn")),
92
+ (r'[^,\+\n]+', String),
93
+ (r'\n ', Whitespace),
94
+ (r'\n', Whitespace, "#pop"),
95
+ ],
96
+ "base64-dn": [
97
+ (r'([ \t]*)([^ \t\n][^ \t\n]*[^\n])([ \t]*\n )',
98
+ bygroups(Whitespace, Name, Whitespace)),
99
+ (r'([ \t]*)([^ \t\n][^ \t\n]*[^\n])([ \t]*\n)',
100
+ bygroups(Whitespace, Name, Whitespace), "#pop"),
101
+ ]
102
+ }
103
+
104
+
105
+ class LdaprcLexer(RegexLexer):
106
+ """
107
+ Lexer for OpenLDAP configuration files.
108
+ """
109
+
110
+ name = 'LDAP configuration file'
111
+ aliases = ['ldapconf', 'ldaprc']
112
+ filenames = ['.ldaprc', 'ldaprc', 'ldap.conf']
113
+ mimetypes = ["text/x-ldapconf"]
114
+ url = 'https://www.openldap.org/software//man.cgi?query=ldap.conf&sektion=5&apropos=0&manpath=OpenLDAP+2.4-Release'
115
+ version_added = '2.17'
116
+
117
+ _sasl_keywords = r'SASL_(?:MECH|REALM|AUTHCID|AUTHZID|CBINDING)'
118
+ _tls_keywords = r'TLS_(?:CACERT|CACERTDIR|CERT|ECNAME|KEY|CIPHER_SUITE|PROTOCOL_MIN|RANDFILE|CRLFILE)'
119
+ _literal_keywords = rf'(?:URI|SOCKET_BIND_ADDRESSES|{_sasl_keywords}|{_tls_keywords})'
120
+ _boolean_keywords = r'GSSAPI_(?:ALLOW_REMOTE_PRINCIPAL|ENCRYPT|SIGN)|REFERRALS|SASL_NOCANON'
121
+ _integer_keywords = r'KEEPALIVE_(?:IDLE|PROBES|INTERVAL)|NETWORK_TIMEOUT|PORT|SIZELIMIT|TIMELIMIT|TIMEOUT'
122
+ _secprops = r'none|noanonymous|noplain|noactive|nodict|forwardsec|passcred|(?:minssf|maxssf|maxbufsize)=\d+'
123
+
124
+ flags = re.IGNORECASE | re.MULTILINE
125
+
126
+ tokens = {
127
+ 'root': [
128
+ (r'#.*', Comment.Single),
129
+ (r'\s+', Whitespace),
130
+ (rf'({_boolean_keywords})(\s+)(on|true|yes|off|false|no)$',
131
+ bygroups(Keyword, Whitespace, Keyword.Constant)),
132
+ (rf'({_integer_keywords})(\s+)(\d+)',
133
+ bygroups(Keyword, Whitespace, Number.Integer)),
134
+ (r'(VERSION)(\s+)(2|3)', bygroups(Keyword, Whitespace, Number.Integer)),
135
+ # Constants
136
+ (r'(DEREF)(\s+)(never|searching|finding|always)',
137
+ bygroups(Keyword, Whitespace, Keyword.Constant)),
138
+ (rf'(SASL_SECPROPS)(\s+)((?:{_secprops})(?:,{_secprops})*)',
139
+ bygroups(Keyword, Whitespace, Keyword.Constant)),
140
+ (r'(SASL_CBINDING)(\s+)(none|tls-unique|tls-endpoint)',
141
+ bygroups(Keyword, Whitespace, Keyword.Constant)),
142
+ (r'(TLS_REQ(?:CERT|SAN))(\s+)(allow|demand|hard|never|try)',
143
+ bygroups(Keyword, Whitespace, Keyword.Constant)),
144
+ (r'(TLS_CRLCHECK)(\s+)(none|peer|all)',
145
+ bygroups(Keyword, Whitespace, Keyword.Constant)),
146
+ # Literals
147
+ (r'(BASE|BINDDN)(\s+)(\S+)$',
148
+ bygroups(Keyword, Whitespace, Literal)),
149
+ # Accepts hostname with or without port.
150
+ (r'(HOST)(\s+)([a-z0-9]+)((?::(\d+))?)',
151
+ bygroups(Keyword, Whitespace, Literal, Number.Integer)),
152
+ (rf'({_literal_keywords})(\s+)(\S+)$',
153
+ bygroups(Keyword, Whitespace, Literal)),
154
+ ],
155
+ }
@@ -0,0 +1,241 @@
1
+ """
2
+ pygments.lexers.lean
3
+ ~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for the Lean theorem prover.
6
+
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import re
12
+
13
+ from pygments.lexer import RegexLexer, words, include
14
+ from pygments.token import Comment, Operator, Keyword, Name, String, \
15
+ Number, Generic, Whitespace
16
+
17
+ __all__ = ['Lean3Lexer', 'Lean4Lexer']
18
+
19
+ class Lean3Lexer(RegexLexer):
20
+ """
21
+ For the Lean 3 theorem prover.
22
+ """
23
+ name = 'Lean'
24
+ url = 'https://leanprover-community.github.io/lean3'
25
+ aliases = ['lean', 'lean3']
26
+ filenames = ['*.lean']
27
+ mimetypes = ['text/x-lean', 'text/x-lean3']
28
+ version_added = '2.0'
29
+
30
+ # from https://github.com/leanprover/vscode-lean/blob/1589ca3a65e394b3789409707febbd2d166c9344/syntaxes/lean.json#L186C20-L186C217
31
+ _name_segment = (
32
+ "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
33
+ "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ])*")
34
+ _name = _name_segment + r"(\." + _name_segment + r")*"
35
+
36
+ tokens = {
37
+ 'expression': [
38
+ (r'\s+', Whitespace),
39
+ (r'/--', String.Doc, 'docstring'),
40
+ (r'/-', Comment, 'comment'),
41
+ (r'--.*?$', Comment.Single),
42
+ (words((
43
+ 'forall', 'fun', 'Pi', 'from', 'have', 'show', 'assume', 'suffices',
44
+ 'let', 'if', 'else', 'then', 'in', 'with', 'calc', 'match',
45
+ 'do'
46
+ ), prefix=r'\b', suffix=r'\b'), Keyword),
47
+ (words(('sorry', 'admit'), prefix=r'\b', suffix=r'\b'), Generic.Error),
48
+ (words(('Sort', 'Prop', 'Type'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
49
+ (words((
50
+ '(', ')', ':', '{', '}', '[', ']', '⟨', '⟩', '‹', '›', '⦃', '⦄', ':=', ',',
51
+ )), Operator),
52
+ (_name, Name),
53
+ (r'``?' + _name, String.Symbol),
54
+ (r'0x[A-Za-z0-9]+', Number.Integer),
55
+ (r'0b[01]+', Number.Integer),
56
+ (r'\d+', Number.Integer),
57
+ (r'"', String.Double, 'string'),
58
+ (r"'(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4})|.)'", String.Char),
59
+ (r'[~?][a-z][\w\']*:', Name.Variable),
60
+ (r'\S', Name.Builtin.Pseudo),
61
+ ],
62
+ 'root': [
63
+ (words((
64
+ 'import', 'renaming', 'hiding',
65
+ 'namespace',
66
+ 'local',
67
+ 'private', 'protected', 'section',
68
+ 'include', 'omit', 'section',
69
+ 'protected', 'export',
70
+ 'open',
71
+ 'attribute',
72
+ ), prefix=r'\b', suffix=r'\b'), Keyword.Namespace),
73
+ (words((
74
+ 'lemma', 'theorem', 'def', 'definition', 'example',
75
+ 'axiom', 'axioms', 'constant', 'constants',
76
+ 'universe', 'universes',
77
+ 'inductive', 'coinductive', 'structure', 'extends',
78
+ 'class', 'instance',
79
+ 'abbreviation',
80
+
81
+ 'noncomputable theory',
82
+
83
+ 'noncomputable', 'mutual', 'meta',
84
+
85
+ 'attribute',
86
+
87
+ 'parameter', 'parameters',
88
+ 'variable', 'variables',
89
+
90
+ 'reserve', 'precedence',
91
+ 'postfix', 'prefix', 'notation', 'infix', 'infixl', 'infixr',
92
+
93
+ 'begin', 'by', 'end',
94
+
95
+ 'set_option',
96
+ 'run_cmd',
97
+ ), prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
98
+ (r'@\[', Keyword.Declaration, 'attribute'),
99
+ (words((
100
+ '#eval', '#check', '#reduce', '#exit',
101
+ '#print', '#help',
102
+ ), suffix=r'\b'), Keyword),
103
+ include('expression')
104
+ ],
105
+ 'attribute': [
106
+ (r'\]', Keyword.Declaration, '#pop'),
107
+ include('expression'),
108
+ ],
109
+ 'comment': [
110
+ (r'[^/-]+', Comment.Multiline),
111
+ (r'/-', Comment.Multiline, '#push'),
112
+ (r'-/', Comment.Multiline, '#pop'),
113
+ (r'[/-]', Comment.Multiline)
114
+ ],
115
+ 'docstring': [
116
+ (r'[^/-]+', String.Doc),
117
+ (r'-/', String.Doc, '#pop'),
118
+ (r'[/-]', String.Doc)
119
+ ],
120
+ 'string': [
121
+ (r'[^\\"]+', String.Double),
122
+ (r"(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4}))", String.Escape),
123
+ ('"', String.Double, '#pop'),
124
+ ],
125
+ }
126
+
127
+ def analyse_text(text):
128
+ if re.search(r'^import [a-z]', text, re.MULTILINE):
129
+ return 0.1
130
+
131
+
132
+ LeanLexer = Lean3Lexer
133
+
134
+
135
+ class Lean4Lexer(RegexLexer):
136
+ """
137
+ For the Lean 4 theorem prover.
138
+ """
139
+
140
+ name = 'Lean4'
141
+ url = 'https://github.com/leanprover/lean4'
142
+ aliases = ['lean4']
143
+ filenames = ['*.lean']
144
+ mimetypes = ['text/x-lean4']
145
+ version_added = '2.18'
146
+
147
+ # same as Lean3Lexer, with `!` and `?` allowed
148
+ _name_segment = (
149
+ "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
150
+ "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ!?])*")
151
+ _name = _name_segment + r"(\." + _name_segment + r")*"
152
+
153
+ keywords1 = (
154
+ 'import', 'unif_hint',
155
+ 'renaming', 'inline', 'hiding', 'lemma', 'variable',
156
+ 'theorem', 'axiom', 'inductive', 'structure', 'universe', 'alias',
157
+ '#help', 'precedence', 'postfix', 'prefix',
158
+ 'infix', 'infixl', 'infixr', 'notation', '#eval',
159
+ '#check', '#reduce', '#exit', 'end', 'private', 'using', 'namespace',
160
+ 'instance', 'section', 'protected',
161
+ 'export', 'set_option', 'extends', 'open', 'example',
162
+ '#print', 'opaque',
163
+ 'def', 'macro', 'elab', 'syntax', 'macro_rules', '#reduce', 'where',
164
+ 'abbrev', 'noncomputable', 'class', 'attribute', '#synth', 'mutual',
165
+ 'scoped', 'local',
166
+ )
167
+
168
+ keywords2 = (
169
+ 'forall', 'fun', 'obtain', 'from', 'have', 'show', 'assume',
170
+ 'let', 'if', 'else', 'then', 'by', 'in', 'with',
171
+ 'calc', 'match', 'nomatch', 'do', 'at',
172
+ )
173
+
174
+ keywords3 = (
175
+ # Sorts
176
+ 'Type', 'Prop', 'Sort',
177
+ )
178
+
179
+ operators = (
180
+ '!=', '#', '&', '&&', '*', '+', '-', '/', '@', '!',
181
+ '-.', '->', '.', '..', '...', '::', ':>', ';', ';;', '<',
182
+ '<-', '=', '==', '>', '_', '|', '||', '~', '=>', '<=', '>=',
183
+ '/\\', '\\/', '∀', 'Π', 'λ', '↔', '∧', '∨', '≠', '≤', '≥',
184
+ '¬', '⁻¹', '⬝', '▸', '→', '∃', '≈', '×', '⌞',
185
+ '⌟', '≡', '⟨', '⟩', "↦",
186
+ )
187
+
188
+ punctuation = ('(', ')', ':', '{', '}', '[', ']', '⦃', '⦄',
189
+ ':=', ',')
190
+
191
+ tokens = {
192
+ 'expression': [
193
+ (r'\s+', Whitespace),
194
+ (r'/--', String.Doc, 'docstring'),
195
+ (r'/-', Comment, 'comment'),
196
+ (r'--.*$', Comment.Single),
197
+ (words(keywords3, prefix=r'\b', suffix=r'\b'), Keyword.Type),
198
+ (words(('sorry', 'admit'), prefix=r'\b', suffix=r'\b'), Generic.Error),
199
+ (words(operators), Name.Builtin.Pseudo),
200
+ (words(punctuation), Operator),
201
+ (_name_segment, Name),
202
+ (r'``?' + _name, String.Symbol),
203
+ (r'(?<=\.)\d+', Number),
204
+ (r'(\d+\.\d*)([eE][+-]?[0-9]+)?', Number.Float),
205
+ (r'\d+', Number.Integer),
206
+ (r'"', String.Double, 'string'),
207
+ (r'[~?][a-z][\w\']*:', Name.Variable),
208
+ (r'\S', Name.Builtin.Pseudo),
209
+ ],
210
+ 'root': [
211
+ (words(keywords1, prefix=r'\b', suffix=r'\b'), Keyword.Namespace),
212
+ (words(keywords2, prefix=r'\b', suffix=r'\b'), Keyword),
213
+ (r'@\[', Keyword.Declaration, 'attribute'),
214
+ include('expression')
215
+ ],
216
+ 'attribute': [
217
+ (r'\]', Keyword.Declaration, '#pop'),
218
+ include('expression'),
219
+ ],
220
+ 'comment': [
221
+ # Multiline Comments
222
+ (r'[^/-]+', Comment.Multiline),
223
+ (r'/-', Comment.Multiline, '#push'),
224
+ (r'-/', Comment.Multiline, '#pop'),
225
+ (r'[/-]', Comment.Multiline)
226
+ ],
227
+ 'docstring': [
228
+ (r'[^/-]+', String.Doc),
229
+ (r'-/', String.Doc, '#pop'),
230
+ (r'[/-]', String.Doc)
231
+ ],
232
+ 'string': [
233
+ (r'[^\\"]+', String.Double),
234
+ (r'\\[n"\\\n]', String.Escape),
235
+ ('"', String.Double, '#pop'),
236
+ ],
237
+ }
238
+
239
+ def analyse_text(text):
240
+ if re.search(r'^import [A-Z]', text, re.MULTILINE):
241
+ return 0.1
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for LilyPond.
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
 
@@ -51,14 +51,13 @@ class LilyPondLexer(SchemeLexer):
51
51
  .. important::
52
52
 
53
53
  This lexer is meant to be used in conjunction with the ``lilypond`` style.
54
-
55
- .. versionadded:: 2.11
56
54
  """
57
55
  name = 'LilyPond'
58
56
  url = 'https://lilypond.org'
59
57
  aliases = ['lilypond']
60
58
  filenames = ['*.ly']
61
59
  mimetypes = []
60
+ version_added = '2.11'
62
61
 
63
62
  flags = re.DOTALL | re.MULTILINE
64
63