pygments.rb 3.0.0 → 5.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 (360) 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/.rubocop.yml +1 -2
  5. data/CHANGELOG.adoc +13 -1
  6. data/README.adoc +3 -3
  7. data/Rakefile +1 -1
  8. data/bench.rb +3 -3
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +6 -4
  11. data/test/test_pygments.rb +0 -4
  12. data/vendor/pygments-main/bin/pygmentize +1 -1
  13. data/vendor/pygments-main/pygments/__init__.py +2 -2
  14. data/vendor/pygments-main/pygments/__main__.py +1 -1
  15. data/vendor/pygments-main/pygments/cmdline.py +2 -2
  16. data/vendor/pygments-main/pygments/console.py +1 -1
  17. data/vendor/pygments-main/pygments/filter.py +1 -1
  18. data/vendor/pygments-main/pygments/filters/__init__.py +10 -8
  19. data/vendor/pygments-main/pygments/formatter.py +1 -1
  20. data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
  21. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  22. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  23. data/vendor/pygments-main/pygments/formatters/groff.py +1 -1
  24. data/vendor/pygments-main/pygments/formatters/html.py +20 -10
  25. data/vendor/pygments-main/pygments/formatters/img.py +3 -2
  26. data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
  27. data/vendor/pygments-main/pygments/formatters/latex.py +1 -1
  28. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  29. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
  30. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  32. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  33. data/vendor/pygments-main/pygments/formatters/terminal256.py +6 -6
  34. data/vendor/pygments-main/pygments/lexer.py +7 -5
  35. data/vendor/pygments-main/pygments/lexers/__init__.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  38. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_googlesql_builtins.py +918 -0
  43. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  45. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +404 -152
  46. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +1 -1
  48. data/vendor/pygments-main/pygments/lexers/_mapping.py +24 -10
  49. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +52 -3
  51. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +7 -4
  53. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_sql_builtins.py +106 -0
  59. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +126 -13
  60. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/actionscript.py +3 -3
  66. data/vendor/pygments-main/pygments/lexers/ada.py +1 -1
  67. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  68. data/vendor/pygments-main/pygments/lexers/algebra.py +8 -6
  69. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  70. data/vendor/pygments-main/pygments/lexers/amdgpu.py +1 -1
  71. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/apdlexer.py +1 -1
  73. data/vendor/pygments-main/pygments/lexers/apl.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -4
  75. data/vendor/pygments-main/pygments/lexers/arrow.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/arturo.py +1 -1
  77. data/vendor/pygments-main/pygments/lexers/asc.py +1 -1
  78. data/vendor/pygments-main/pygments/lexers/asm.py +29 -21
  79. data/vendor/pygments-main/pygments/lexers/asn1.py +3 -3
  80. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  81. data/vendor/pygments-main/pygments/lexers/bare.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/basic.py +1 -1
  83. data/vendor/pygments-main/pygments/lexers/bdd.py +1 -1
  84. data/vendor/pygments-main/pygments/lexers/berry.py +1 -1
  85. data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -1
  86. data/vendor/pygments-main/pygments/lexers/blueprint.py +1 -1
  87. data/vendor/pygments-main/pygments/lexers/boa.py +1 -1
  88. data/vendor/pygments-main/pygments/lexers/bqn.py +18 -15
  89. data/vendor/pygments-main/pygments/lexers/business.py +1 -1
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +18 -17
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +1 -1
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/carbon.py +1 -1
  94. data/vendor/pygments-main/pygments/lexers/cddl.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/chapel.py +1 -1
  96. data/vendor/pygments-main/pygments/lexers/clean.py +1 -1
  97. data/vendor/pygments-main/pygments/lexers/codeql.py +80 -0
  98. data/vendor/pygments-main/pygments/lexers/comal.py +1 -1
  99. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/configs.py +17 -8
  101. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  102. data/vendor/pygments-main/pygments/lexers/cplint.py +1 -1
  103. data/vendor/pygments-main/pygments/lexers/crystal.py +1 -1
  104. data/vendor/pygments-main/pygments/lexers/csound.py +1 -1
  105. data/vendor/pygments-main/pygments/lexers/css.py +32 -2
  106. data/vendor/pygments-main/pygments/lexers/d.py +1 -1
  107. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/data.py +2 -2
  109. data/vendor/pygments-main/pygments/lexers/dax.py +1 -1
  110. data/vendor/pygments-main/pygments/lexers/devicetree.py +17 -5
  111. data/vendor/pygments-main/pygments/lexers/diff.py +1 -1
  112. data/vendor/pygments-main/pygments/lexers/dns.py +1 -1
  113. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -13
  114. data/vendor/pygments-main/pygments/lexers/dsls.py +2 -2
  115. data/vendor/pygments-main/pygments/lexers/dylan.py +3 -3
  116. data/vendor/pygments-main/pygments/lexers/ecl.py +1 -1
  117. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  118. data/vendor/pygments-main/pygments/lexers/elm.py +1 -1
  119. data/vendor/pygments-main/pygments/lexers/elpi.py +55 -26
  120. data/vendor/pygments-main/pygments/lexers/email.py +1 -1
  121. data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -1
  123. data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  125. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  126. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  127. data/vendor/pygments-main/pygments/lexers/fift.py +1 -1
  128. data/vendor/pygments-main/pygments/lexers/floscript.py +1 -1
  129. data/vendor/pygments-main/pygments/lexers/forth.py +1 -1
  130. data/vendor/pygments-main/pygments/lexers/fortran.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/freefem.py +1 -1
  133. data/vendor/pygments-main/pygments/lexers/func.py +1 -1
  134. data/vendor/pygments-main/pygments/lexers/functional.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/futhark.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -1
  137. data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -1
  138. data/vendor/pygments-main/pygments/lexers/gleam.py +74 -0
  139. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  140. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -1
  141. data/vendor/pygments-main/pygments/lexers/graph.py +1 -1
  142. data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
  143. data/vendor/pygments-main/pygments/lexers/graphql.py +1 -1
  144. data/vendor/pygments-main/pygments/lexers/graphviz.py +1 -1
  145. data/vendor/pygments-main/pygments/lexers/gsql.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/hare.py +73 -0
  147. data/vendor/pygments-main/pygments/lexers/haskell.py +5 -4
  148. data/vendor/pygments-main/pygments/lexers/haxe.py +9 -3
  149. data/vendor/pygments-main/pygments/lexers/hdl.py +1 -1
  150. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
  151. data/vendor/pygments-main/pygments/lexers/html.py +48 -4
  152. data/vendor/pygments-main/pygments/lexers/idl.py +1 -1
  153. data/vendor/pygments-main/pygments/lexers/igor.py +2 -2
  154. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -1
  155. data/vendor/pygments-main/pygments/lexers/installers.py +53 -26
  156. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/iolang.py +1 -1
  158. data/vendor/pygments-main/pygments/lexers/j.py +1 -1
  159. data/vendor/pygments-main/pygments/lexers/javascript.py +5 -1
  160. data/vendor/pygments-main/pygments/lexers/jmespath.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/jslt.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/json5.py +83 -0
  163. data/vendor/pygments-main/pygments/lexers/jsonnet.py +1 -1
  164. data/vendor/pygments-main/pygments/lexers/jsx.py +64 -39
  165. data/vendor/pygments-main/pygments/lexers/julia.py +2 -1
  166. data/vendor/pygments-main/pygments/lexers/jvm.py +11 -6
  167. data/vendor/pygments-main/pygments/lexers/kuin.py +1 -1
  168. data/vendor/pygments-main/pygments/lexers/kusto.py +1 -1
  169. data/vendor/pygments-main/pygments/lexers/ldap.py +1 -1
  170. data/vendor/pygments-main/pygments/lexers/lean.py +3 -3
  171. data/vendor/pygments-main/pygments/lexers/lilypond.py +1 -1
  172. data/vendor/pygments-main/pygments/lexers/lisp.py +18 -12
  173. data/vendor/pygments-main/pygments/lexers/macaulay2.py +169 -110
  174. data/vendor/pygments-main/pygments/lexers/make.py +1 -1
  175. data/vendor/pygments-main/pygments/lexers/maple.py +291 -0
  176. data/vendor/pygments-main/pygments/lexers/markup.py +11 -6
  177. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  178. data/vendor/pygments-main/pygments/lexers/matlab.py +5 -4
  179. data/vendor/pygments-main/pygments/lexers/maxima.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/meson.py +3 -3
  181. data/vendor/pygments-main/pygments/lexers/mime.py +1 -1
  182. data/vendor/pygments-main/pygments/lexers/minecraft.py +3 -2
  183. data/vendor/pygments-main/pygments/lexers/mips.py +1 -1
  184. data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/modeling.py +3 -1
  186. data/vendor/pygments-main/pygments/lexers/modula2.py +1 -1
  187. data/vendor/pygments-main/pygments/lexers/mojo.py +7 -4
  188. data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
  189. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
  190. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  191. data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
  192. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  193. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/numbair.py +63 -0
  195. data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
  196. data/vendor/pygments-main/pygments/lexers/objective.py +12 -12
  197. data/vendor/pygments-main/pygments/lexers/ooc.py +3 -3
  198. data/vendor/pygments-main/pygments/lexers/openscad.py +1 -1
  199. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  201. data/vendor/pygments-main/pygments/lexers/parsers.py +5 -5
  202. data/vendor/pygments-main/pygments/lexers/pascal.py +1 -1
  203. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  204. data/vendor/pygments-main/pygments/lexers/pddl.py +82 -0
  205. data/vendor/pygments-main/pygments/lexers/perl.py +1 -1
  206. data/vendor/pygments-main/pygments/lexers/phix.py +1 -1
  207. data/vendor/pygments-main/pygments/lexers/php.py +6 -5
  208. data/vendor/pygments-main/pygments/lexers/pointless.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
  210. data/vendor/pygments-main/pygments/lexers/praat.py +1 -1
  211. data/vendor/pygments-main/pygments/lexers/procfile.py +1 -1
  212. data/vendor/pygments-main/pygments/lexers/prolog.py +1 -1
  213. data/vendor/pygments-main/pygments/lexers/promql.py +1 -1
  214. data/vendor/pygments-main/pygments/lexers/prql.py +1 -1
  215. data/vendor/pygments-main/pygments/lexers/ptx.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/python.py +58 -52
  217. data/vendor/pygments-main/pygments/lexers/q.py +1 -1
  218. data/vendor/pygments-main/pygments/lexers/qlik.py +1 -1
  219. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/r.py +8 -4
  221. data/vendor/pygments-main/pygments/lexers/rdf.py +4 -4
  222. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -1
  223. data/vendor/pygments-main/pygments/lexers/rego.py +57 -0
  224. data/vendor/pygments-main/pygments/lexers/rell.py +68 -0
  225. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  226. data/vendor/pygments-main/pygments/lexers/ride.py +1 -1
  227. data/vendor/pygments-main/pygments/lexers/rita.py +1 -1
  228. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  229. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  230. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -1
  231. data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
  232. data/vendor/pygments-main/pygments/lexers/rust.py +1 -1
  233. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  234. data/vendor/pygments-main/pygments/lexers/savi.py +1 -1
  235. data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -1
  236. data/vendor/pygments-main/pygments/lexers/scripting.py +65 -25
  237. data/vendor/pygments-main/pygments/lexers/sgf.py +1 -1
  238. data/vendor/pygments-main/pygments/lexers/shell.py +5 -1
  239. data/vendor/pygments-main/pygments/lexers/sieve.py +1 -1
  240. data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
  241. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -1
  242. data/vendor/pygments-main/pygments/lexers/smithy.py +1 -1
  243. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  244. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  245. data/vendor/pygments-main/pygments/lexers/solidity.py +1 -1
  246. data/vendor/pygments-main/pygments/lexers/soong.py +1 -1
  247. data/vendor/pygments-main/pygments/lexers/sophia.py +1 -1
  248. data/vendor/pygments-main/pygments/lexers/special.py +2 -1
  249. data/vendor/pygments-main/pygments/lexers/spice.py +2 -2
  250. data/vendor/pygments-main/pygments/lexers/sql.py +205 -127
  251. data/vendor/pygments-main/pygments/lexers/srcinfo.py +1 -1
  252. data/vendor/pygments-main/pygments/lexers/stata.py +1 -1
  253. data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
  254. data/vendor/pygments-main/pygments/lexers/tablegen.py +177 -0
  255. data/vendor/pygments-main/pygments/lexers/tact.py +1 -1
  256. data/vendor/pygments-main/pygments/lexers/tal.py +1 -1
  257. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  258. data/vendor/pygments-main/pygments/lexers/teal.py +1 -1
  259. data/vendor/pygments-main/pygments/lexers/templates.py +3 -3
  260. data/vendor/pygments-main/pygments/lexers/teraterm.py +11 -1
  261. data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
  262. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  263. data/vendor/pygments-main/pygments/lexers/textedit.py +1 -1
  264. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -1
  265. data/vendor/pygments-main/pygments/lexers/theorem.py +8 -8
  266. data/vendor/pygments-main/pygments/lexers/thingsdb.py +8 -5
  267. data/vendor/pygments-main/pygments/lexers/tlb.py +1 -1
  268. data/vendor/pygments-main/pygments/lexers/tls.py +1 -1
  269. data/vendor/pygments-main/pygments/lexers/tnt.py +1 -1
  270. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  271. data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -1
  272. data/vendor/pygments-main/pygments/lexers/typst.py +82 -26
  273. data/vendor/pygments-main/pygments/lexers/ul4.py +1 -1
  274. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
  275. data/vendor/pygments-main/pygments/lexers/urbi.py +1 -1
  276. data/vendor/pygments-main/pygments/lexers/usd.py +1 -1
  277. data/vendor/pygments-main/pygments/lexers/varnish.py +1 -1
  278. data/vendor/pygments-main/pygments/lexers/verification.py +1 -1
  279. data/vendor/pygments-main/pygments/lexers/verifpal.py +1 -1
  280. data/vendor/pygments-main/pygments/lexers/vip.py +1 -1
  281. data/vendor/pygments-main/pygments/lexers/vyper.py +2 -2
  282. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  283. data/vendor/pygments-main/pygments/lexers/webassembly.py +1 -1
  284. data/vendor/pygments-main/pygments/lexers/webidl.py +1 -1
  285. data/vendor/pygments-main/pygments/lexers/webmisc.py +1 -1
  286. data/vendor/pygments-main/pygments/lexers/wgsl.py +1 -1
  287. data/vendor/pygments-main/pygments/lexers/whiley.py +1 -1
  288. data/vendor/pygments-main/pygments/lexers/wowtoc.py +1 -1
  289. data/vendor/pygments-main/pygments/lexers/wren.py +1 -1
  290. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  291. data/vendor/pygments-main/pygments/lexers/xorg.py +1 -1
  292. data/vendor/pygments-main/pygments/lexers/yang.py +1 -1
  293. data/vendor/pygments-main/pygments/lexers/yara.py +1 -1
  294. data/vendor/pygments-main/pygments/lexers/zig.py +2 -2
  295. data/vendor/pygments-main/pygments/modeline.py +1 -1
  296. data/vendor/pygments-main/pygments/plugin.py +3 -1
  297. data/vendor/pygments-main/pygments/regexopt.py +13 -2
  298. data/vendor/pygments-main/pygments/scanner.py +1 -1
  299. data/vendor/pygments-main/pygments/sphinxext.py +1 -1
  300. data/vendor/pygments-main/pygments/style.py +1 -1
  301. data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
  302. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  303. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  304. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  305. data/vendor/pygments-main/pygments/styles/arduino.py +1 -1
  306. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  307. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  308. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  309. data/vendor/pygments-main/pygments/styles/coffee.py +1 -1
  310. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  311. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  312. data/vendor/pygments-main/pygments/styles/dracula.py +1 -1
  313. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  314. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  315. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +1 -1
  316. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  317. data/vendor/pygments-main/pygments/styles/gh_dark.py +1 -1
  318. data/vendor/pygments-main/pygments/styles/gruvbox.py +1 -1
  319. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  320. data/vendor/pygments-main/pygments/styles/inkpot.py +1 -1
  321. data/vendor/pygments-main/pygments/styles/lightbulb.py +1 -1
  322. data/vendor/pygments-main/pygments/styles/lilypond.py +1 -1
  323. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  324. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  325. data/vendor/pygments-main/pygments/styles/material.py +1 -1
  326. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  327. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  328. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  329. data/vendor/pygments-main/pygments/styles/nord.py +1 -1
  330. data/vendor/pygments-main/pygments/styles/onedark.py +13 -3
  331. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  332. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  333. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  334. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  335. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  336. data/vendor/pygments-main/pygments/styles/rrt.py +18 -3
  337. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  338. data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
  339. data/vendor/pygments-main/pygments/styles/staroffice.py +1 -1
  340. data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -1
  341. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -1
  342. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  343. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  344. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  345. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  346. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  347. data/vendor/pygments-main/pygments/styles/zenburn.py +1 -1
  348. data/vendor/pygments-main/pygments/token.py +1 -1
  349. data/vendor/pygments-main/pygments/unistring.py +1 -1
  350. data/vendor/pygments-main/pygments/util.py +2 -2
  351. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/METADATA +7 -7
  352. data/vendor/pygments-main/pygments-2.20.0.dist-info/RECORD +687 -0
  353. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/WHEEL +1 -1
  354. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/AUTHORS +9 -0
  355. metadata +44 -21
  356. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +0 -663
  357. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/INSTALLER +0 -0
  358. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/REQUESTED +0 -0
  359. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/entry_points.txt +0 -0
  360. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/LICENSE +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for configuration file formats.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -44,15 +44,24 @@ class IniLexer(RegexLexer):
44
44
  (r'\s+', Whitespace),
45
45
  (r'[;#].*', Comment.Single),
46
46
  (r'(\[.*?\])([ \t]*)$', bygroups(Keyword, Whitespace)),
47
- (r'(.*?)([  \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)',
47
+ (r'''(.*?)([ \t]*)([=:])([ \t]*)(["'])''',
48
+ bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String),
49
+ "quoted_value"),
50
+ (r'(.*?)([ \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)',
48
51
  bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String,
49
52
  Text, Whitespace),
50
53
  "value"),
51
- (r'(.*?)([ \t]*)([=:])([  \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)',
54
+ (r'(.*?)([ \t]*)([=:])([ \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)',
52
55
  bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String)),
53
56
  # standalone option, supported by some INI parsers
54
57
  (r'(.+?)$', Name.Attribute),
55
58
  ],
59
+ 'quoted_value': [
60
+ (r'''([^"'\n]*)(["'])(\s*)''',
61
+ bygroups(String, String, Whitespace), "#pop"),
62
+ (r'[;#].*', Comment.Single),
63
+ (r'$', String, "#pop"),
64
+ ],
56
65
  'value': [ # line continuation
57
66
  (r'\s+', Whitespace),
58
67
  (r'(\s*)(.*)(\\)([ \t]*)',
@@ -1118,7 +1127,7 @@ class TOMLLexer(RegexLexer):
1118
1127
  # Based on the TOML spec: https://toml.io/en/v1.0.0
1119
1128
 
1120
1129
  # The following is adapted from CPython's tomllib:
1121
- _time = r"\d\d:\d\d:\d\d(\.\d+)?"
1130
+ _time = r"\d\d:\d\d(:\d\d(\.\d+)?)?"
1122
1131
  _datetime = rf"""(?x)
1123
1132
  \d\d\d\d-\d\d-\d\d # date, e.g., 1988-10-27
1124
1133
  (
@@ -1229,9 +1238,9 @@ class TOMLLexer(RegexLexer):
1229
1238
  default('value'),
1230
1239
  ],
1231
1240
  'inline-table': [
1232
- # Note that unlike inline arrays, inline tables do not
1233
- # allow newlines or comments.
1234
- (r'[ \t]+', Whitespace),
1241
+ # Whitespace (since TOML 1.1.0, same as in array)
1242
+ (r'\s+', Whitespace),
1243
+ (r'#.*', Comment.Single),
1235
1244
 
1236
1245
  # Keys
1237
1246
  include('key'),
@@ -1266,7 +1275,7 @@ class TOMLLexer(RegexLexer):
1266
1275
  (r"'", String.Single),
1267
1276
  ],
1268
1277
  'escapes': [
1269
- (r'\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}', String.Escape),
1278
+ (r'\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}', String.Escape),
1270
1279
  (r'\\.', String.Escape),
1271
1280
  ],
1272
1281
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for misc console output.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for the cplint language
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for Crystal.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Csound languages.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for CSS and related stylesheet formats.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -96,7 +96,7 @@ _keyword_values = (
96
96
  'padding-box', 'page', 'pan-down', 'pan-left', 'pan-right', 'pan-up',
97
97
  'pan-x', 'pan-y', 'paused', 'petite-caps', 'pixelated', 'pointer',
98
98
  'preserve-3d', 'progress', 'proximity', 'relative', 'repeat',
99
- 'repeat no-repeat', 'repeat-x', 'repeat-y', 'reverse', 'ridge', 'right',
99
+ 'repeat no-repeat', 'repeat-x', 'repeat-y', 'reverse', 'revert', 'ridge', 'right',
100
100
  'round', 'row', 'row-resize', 'row-reverse', 'rtl', 'ruby', 'ruby-base',
101
101
  'ruby-base-container', 'ruby-text', 'ruby-text-container', 'run-in',
102
102
  'running', 's-resize', 'sans-serif', 'saturation', 'scale-down', 'screen',
@@ -590,13 +590,43 @@ class LessCssLexer(CssLexer):
590
590
  version_added = '2.1'
591
591
 
592
592
  tokens = {
593
+ # FIXME: It's not currently possible to simply do the following,
594
+ # as `include('basics')` doesn't take overrides into account:
595
+ # 'basics': [
596
+ # (r'//.*\n', Comment.Single),
597
+ # (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
598
+ # inherit,
599
+ # ],
593
600
  'root': [
594
601
  (r'@\w+', Name.Variable),
602
+ (r'//.*\n', Comment.Single),
603
+ (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
604
+ inherit,
605
+ ],
606
+ 'atcontent': [
607
+ (r'//.*\n', Comment.Single),
608
+ (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
609
+ inherit,
610
+ ],
611
+ 'atrule': [
612
+ (r'//.*\n', Comment.Single),
613
+ (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
595
614
  inherit,
596
615
  ],
597
616
  'content': [
598
617
  (r'\{', Punctuation, '#push'),
599
618
  (r'//.*\n', Comment.Single),
619
+ (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
620
+ inherit,
621
+ ],
622
+ 'value-start': [
623
+ (r'//.*\n', Comment.Single),
624
+ (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
625
+ inherit,
626
+ ],
627
+ 'function-start': [
628
+ (r'//.*\n', Comment.Single),
629
+ (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
600
630
  inherit,
601
631
  ],
602
632
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for D languages.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Pygments lexers for Dalvik VM-related languages.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for data file format.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -447,7 +447,7 @@ class JsonLexer(Lexer):
447
447
  name = 'JSON'
448
448
  url = 'https://www.json.org'
449
449
  aliases = ['json', 'json-object']
450
- filenames = ['*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock']
450
+ filenames = ['*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock', '*.module', '*.xc']
451
451
  mimetypes = ['application/json', 'application/json-object', 'application/x-ndjson', 'application/jsonl', 'application/json-seq']
452
452
  version_added = '1.5'
453
453
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for LilyPond.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Devicetree language.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -63,15 +63,19 @@ class DevicetreeLexer(RegexLexer):
63
63
  '#size-cells', 'reg', 'virtual-reg', 'ranges', 'dma-ranges',
64
64
  'device_type', 'name'), suffix=r'\b'), Keyword.Reserved),
65
65
  (r'([~!%^&*+=|?:<>/#-])', Operator),
66
- (r'[()\[\]{},.]', Punctuation),
67
- (r'[a-zA-Z_][\w-]*(?=(?:\s*,\s*[a-zA-Z_][\w-]*|(?:' + _ws + r'))*\s*[=;])',
66
+ (r'[(){},.\]]', Punctuation),
67
+ (r'\[', Punctuation, 'bytestring'),
68
+ (r'[a-zA-Z_][\w-]*(?=(?:\s*,' + _ws + r'[a-zA-Z_][\w-]*)*' + _ws + r'[=;])',
68
69
  Name),
69
70
  (r'[a-zA-Z_]\w*', Name.Attribute),
70
71
  ],
71
72
  'root': [
72
73
  include('whitespace'),
73
74
  include('macro'),
74
-
75
+ # Overlay/fragment: &label { ... } or &{/path/to/node} { ... }
76
+ (r'(&)(?:([A-Za-z_]\w*)|(\{)([^}]+)(\}))(' + _ws + r')(\{)',
77
+ bygroups(Operator, Name.Function, Punctuation, Name.Namespace,
78
+ Punctuation, Comment.Multiline, Punctuation), 'node'),
75
79
  # Nodes
76
80
  (r'([^/*@\s&]+|/)(@?)((?:0x)?[0-9a-fA-F,]*)(' + _ws + r')(\{)',
77
81
  bygroups(Name.Function, Operator, Number.Integer,
@@ -87,7 +91,10 @@ class DevicetreeLexer(RegexLexer):
87
91
  'node': [
88
92
  include('whitespace'),
89
93
  include('macro'),
90
-
94
+ # Overlay/fragment: &label { ... } or &{/path/to/node} { ... }
95
+ (r'(&)(?:([A-Za-z_]\w*)|(\{)([^}]+)(\}))(' + _ws + r')(\{)',
96
+ bygroups(Operator, Name.Function, Punctuation, Name.Namespace,
97
+ Punctuation, Comment.Multiline, Punctuation), '#push'),
91
98
  (r'([^/*@\s&]+|/)(@?)((?:0x)?[0-9a-fA-F,]*)(' + _ws + r')(\{)',
92
99
  bygroups(Name.Function, Operator, Number.Integer,
93
100
  Comment.Multiline, Punctuation), '#push'),
@@ -105,4 +112,9 @@ class DevicetreeLexer(RegexLexer):
105
112
  (r'\\\n', String), # line continuation
106
113
  (r'\\', String), # stray backslash
107
114
  ],
115
+ 'bytestring': [
116
+ (r'\]', Punctuation, '#pop'),
117
+ (r'[0-9a-fA-F]{2}', Number.Hex),
118
+ (r'\s+', Whitespace),
119
+ ],
108
120
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for diff/patch formats.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Pygments lexers for DNS
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for .net languages.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
  import re
@@ -74,6 +74,7 @@ class CSharpLexer(RegexLexer):
74
74
  for levelname, cs_ident in levels.items():
75
75
  tokens[levelname] = {
76
76
  'root': [
77
+ include('numbers'),
77
78
  # method names
78
79
  (r'^([ \t]*)((?:' + cs_ident + r'(?:\[\])?\s+)+?)' # return type
79
80
  r'(' + cs_ident + ')' # method name
@@ -106,18 +107,29 @@ class CSharpLexer(RegexLexer):
106
107
  Comment.Preproc, Whitespace)),
107
108
  (r'\b(extern)(\s+)(alias)\b', bygroups(Keyword, Whitespace,
108
109
  Keyword)),
109
- (r'(abstract|as|async|await|base|break|by|case|catch|'
110
- r'checked|const|continue|default|delegate|'
111
- r'do|else|enum|event|explicit|extern|false|finally|'
112
- r'fixed|for|foreach|goto|if|implicit|in|interface|'
113
- r'internal|is|let|lock|new|null|on|operator|'
114
- r'out|override|params|private|protected|public|readonly|'
115
- r'ref|return|sealed|sizeof|stackalloc|static|'
116
- r'switch|this|throw|true|try|typeof|'
117
- r'unchecked|unsafe|virtual|void|while|'
118
- r'get|set|new|partial|yield|add|remove|value|alias|ascending|'
119
- r'descending|from|group|into|orderby|select|thenby|where|'
120
- r'join|equals)\b', Keyword),
110
+ (words((
111
+ 'abstract', 'as', 'async', 'await', 'base', 'break', 'by',
112
+ 'case', 'catch', 'checked', 'const', 'continue', 'default',
113
+ 'delegate', 'do', 'else', 'enum', 'event', 'explicit',
114
+ 'extern', 'false', 'finally', 'fixed', 'for', 'foreach',
115
+ 'goto', 'if', 'implicit', 'in', 'interface', 'internal',
116
+ 'is', 'let', 'lock', 'new', 'null', 'on', 'operator',
117
+ 'out', 'override', 'params', 'private', 'protected',
118
+ 'public', 'readonly', 'ref', 'return', 'sealed', 'sizeof',
119
+ 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
120
+ 'try', 'typeof', 'unchecked', 'unsafe', 'virtual', 'void',
121
+ 'while', 'get', 'set', 'new', 'partial', 'yield', 'add',
122
+ 'remove', 'value', 'alias', 'ascending', 'descending',
123
+ 'from', 'group', 'into', 'orderby', 'select', 'thenby',
124
+ 'where', 'join', 'equals', 'record', 'allows',
125
+ 'and', 'init', 'managed', 'nameof', 'nint', 'not',
126
+ 'notnull', 'nuint', 'or', 'scoped', 'unmanaged', 'when',
127
+ 'with'
128
+ ), suffix=r'\b'), Keyword),
129
+ # version 1: assumes that 'file' is the only contextual keyword
130
+ # that is a class modifier
131
+ (r'(file)(\s+)(record|class|abstract|enum|new|sealed|static)\b',
132
+ bygroups(Keyword, Whitespace, Keyword)),
121
133
  (r'(global)(::)', bygroups(Keyword, Punctuation)),
122
134
  (r'(bool|byte|char|decimal|double|dynamic|float|int|long|object|'
123
135
  r'sbyte|short|string|uint|ulong|ushort|var)\b\??', Keyword.Type),
@@ -125,6 +137,21 @@ class CSharpLexer(RegexLexer):
125
137
  (r'(namespace|using)(\s+)', bygroups(Keyword, Whitespace), 'namespace'),
126
138
  (cs_ident, Name),
127
139
  ],
140
+ 'numbers_int': [
141
+ (r"0[xX][0-9a-fA-F]+(([uU][lL]?)|[lL][uU]?)?", Number.Hex),
142
+ (r"0[bB][01]+(([uU][lL]?)|[lL][uU]?)?", Number.Bin),
143
+ (r"[0-9]+(([uU][lL]?)|[lL][uU]?)?", Number.Integer),
144
+ ],
145
+ 'numbers_float': [
146
+ (r"([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fFdDmM]?)|"
147
+ r"(\.[0-9]+([eE][+-]?[0-9]+)?[fFdDmM]?)|"
148
+ r"([0-9]+([eE][+-]?[0-9]+)[fFdDmM]?)|"
149
+ r"([0-9]+[fFdDmM])", Number.Float),
150
+ ],
151
+ 'numbers': [
152
+ include('numbers_float'),
153
+ include('numbers_int'),
154
+ ],
128
155
  'class': [
129
156
  (cs_ident, Name.Class, '#pop'),
130
157
  default('#pop'),
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for various domain-specific languages.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -67,7 +67,7 @@ class ProtoBufLexer(RegexLexer):
67
67
  (r'[a-zA-Z_][\w.]*', Name),
68
68
  ],
69
69
  'package': [
70
- (r'[a-zA-Z_]\w*', Name.Namespace, '#pop'),
70
+ (r'[a-zA-Z_][\w\.]*', Name.Namespace, '#pop'),
71
71
  default('#pop'),
72
72
  ],
73
73
  'message': [
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for the Dylan language.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -242,7 +242,7 @@ class DylanConsoleLexer(Lexer):
242
242
  """
243
243
  For Dylan interactive console output.
244
244
 
245
- This is based on a copy of the RubyConsoleLexer.
245
+ This is based on a copy of the ``RubyConsoleLexer``.
246
246
  """
247
247
  name = 'Dylan session'
248
248
  aliases = ['dylan-console', 'dylan-repl']
@@ -250,7 +250,7 @@ class DylanConsoleLexer(Lexer):
250
250
  mimetypes = ['text/x-dylan-console']
251
251
  url = 'http://www.opendylan.org/'
252
252
  version_added = '1.6'
253
- _example = 'dylan-console/console'
253
+ _example = 'dylan-console/console.dylan-console'
254
254
 
255
255
  _prompt_re = re.compile(r'\?| ')
256
256
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for the ECL language.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for the Eiffel language.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for the Elm programming language.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,16 +4,17 @@
4
4
 
5
5
  Lexer for the `Elpi <http://github.com/LPCIC/elpi>`_ programming language.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
11
- from pygments.lexer import RegexLexer, bygroups, include
11
+ from pygments.lexer import RegexLexer, bygroups, include, using
12
12
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
13
13
  Number, Punctuation
14
14
 
15
15
  __all__ = ['ElpiLexer']
16
16
 
17
+ from pygments.lexers.theorem import RocqLexer
17
18
 
18
19
  class ElpiLexer(RegexLexer):
19
20
  """
@@ -51,11 +52,14 @@ class ElpiLexer(RegexLexer):
51
52
  (r"(:before|:after|:if|:name)(\s*)(\")",
52
53
  bygroups(Keyword.Mode, Text.Whitespace, String.Double),
53
54
  'elpi-string'),
54
- (r"(:index)(\s*\()", bygroups(Keyword.Mode, Text.Whitespace),
55
+ (r"(:index)(\s*)(\()", bygroups(Keyword.Mode, Text.Whitespace, Punctuation),
55
56
  'elpi-indexing-expr'),
56
57
  (rf"\b(external pred|pred)(\s+)({const_sym_re})",
57
58
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
58
59
  'elpi-pred-item'),
60
+ (rf"\b(func)(\s+)({const_sym_re})",
61
+ bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
62
+ 'elpi-func-item'),
59
63
  (rf"\b(external type|type)(\s+)(({const_sym_re}(,\s*)?)+)",
60
64
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
61
65
  'elpi-type'),
@@ -65,6 +69,9 @@ class ElpiLexer(RegexLexer):
65
69
  (rf"\b(typeabbrev)(\s+)({const_sym_re})",
66
70
  bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
67
71
  'elpi-type'),
72
+ (r"\b(typeabbrev)(\s+)(\([^)]+\))",
73
+ bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
74
+ 'elpi-type'),
68
75
  (r"\b(accumulate)(\s+)(\")",
69
76
  bygroups(Keyword.Declaration, Text.Whitespace, String.Double),
70
77
  'elpi-string'),
@@ -79,7 +86,7 @@ class ElpiLexer(RegexLexer):
79
86
  'elpi-chr-rule-start'),
80
87
 
81
88
  (rf"(?=[A-Z_]){constant_re}", Name.Variable),
82
- (rf"(?=[a-z_]){constant_re}\\", Name.Variable),
89
+ (rf"(?=[a-z_])({constant_re}|_)\\", Name.Variable),
83
90
  (r"_", Name.Variable),
84
91
  (rf"({symbol_re}|!|=>|;)", Keyword.Declaration),
85
92
  (constant_re, Text),
@@ -89,56 +96,75 @@ class ElpiLexer(RegexLexer):
89
96
  (r'\'', String.Double, 'elpi-tick'),
90
97
  (r'\{\{', Punctuation, 'elpi-quote'),
91
98
  (r'\{[^\{]', Text, 'elpi-spill'),
92
- (r"\(", Text, 'elpi-in-parens'),
99
+ (r"\(", Punctuation, 'elpi-in-parens'),
93
100
  (r'\d[\d_]*', Number.Integer),
94
101
  (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
95
102
  (r"[\+\*\-/\^\.]", Operator),
96
103
  ],
97
104
  '_elpi-comment': [
98
105
  (r'%[^\n]*\n', Comment),
99
- (r'/\*', Comment, 'elpi-multiline-comment'),
106
+ (r'/(?:\\\n)?[*](?:[^*]|[*](?!(?:\\\n)?/))*[*](?:\\\n)?/', Comment),
100
107
  (r"\s+", Text.Whitespace),
101
108
  ],
102
- 'elpi-multiline-comment': [
103
- (r'\*/', Comment, '#pop'),
104
- (r'.', Comment)
105
- ],
106
109
  'elpi-indexing-expr':[
107
110
  (r'[0-9 _]+', Number.Integer),
108
- (r'\)', Text, '#pop'),
111
+ (r'\)', Punctuation, '#pop'),
109
112
  ],
110
113
  'elpi-type': [
111
114
  (r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), 'elpi-string'),
112
115
  (r'->', Keyword.Type),
116
+ (r'prop', Keyword.Mode),
113
117
  (constant_re, Keyword.Type),
114
118
  (r"\(|\)", Keyword.Type),
115
119
  (r"\.", Text, '#pop'),
116
120
  include('_elpi-comment'),
117
121
  ],
118
122
  'elpi-chr-rule-start': [
119
- (r"\{", Text, 'elpi-chr-rule'),
123
+ (r"\{", Punctuation, 'elpi-chr-rule'),
120
124
  include('_elpi-comment'),
121
125
  ],
122
126
  'elpi-chr-rule': [
123
127
  (r"\brule\b", Keyword.Declaration),
124
128
  (r"\\", Keyword.Declaration),
125
- (r"\}", Text, '#pop:2'),
129
+ (r"\}", Punctuation, '#pop:2'),
126
130
  include('elpi'),
127
131
  ],
128
132
  'elpi-pred-item': [
129
- (r"[io]:", Keyword.Mode, 'elpi-ctype'),
133
+ (r"[io]:", Keyword.Mode),
130
134
  (r"\.", Text, '#pop'),
135
+ (r",", Keyword.Mode),
136
+ include('_elpi-inner-pred-fun'),
137
+ (r"\)", Keyword.Mode, '#pop'),
138
+ (r"\(", Keyword.Type, '_elpi-type-item'),
131
139
  include('_elpi-comment'),
140
+ include('_elpi-type-item'),
132
141
  ],
133
- 'elpi-ctype': [
134
- (r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), 'elpi-string'),
142
+ 'elpi-func-item': [
143
+ (constant_re, Keyword.Type),
144
+ (r"\.", Text, '#pop'),
145
+ (r",", Keyword.Mode),
146
+ (r'->', Keyword.Mode),
147
+ include('_elpi-inner-pred-fun'),
148
+ (r"\)", Keyword.Mode, '#pop'),
149
+ (r"\(", Keyword.Type, '_elpi-type-item'),
150
+ include('_elpi-comment'),
151
+ include('_elpi-type-item'),
152
+ ],
153
+ '_elpi-inner-pred-fun': [
154
+ (r"(\()(\s*)(pred)", bygroups(Keyword.Mode,Text.Whitespace,Keyword.Declaration), 'elpi-pred-item'),
155
+ (r"(\()(\s*)(func)", bygroups(Keyword.Mode,Text.Whitespace,Keyword.Declaration), 'elpi-func-item'),
156
+ ],
157
+ '_elpi-type-item': [
135
158
  (r'->', Keyword.Type),
136
159
  (constant_re, Keyword.Type),
137
- (r"\(|\)", Keyword.Type),
138
- (r",", Text, '#pop'),
139
- (r"\.", Text, '#pop:2'),
160
+ include('_elpi-inner-pred-fun'),
161
+ (r"\(", Keyword.Type, '#push'),
162
+ (r"\)", Keyword.Type, '#pop'),
140
163
  include('_elpi-comment'),
141
164
  ],
165
+
166
+ ''
167
+
142
168
  'elpi-btick': [
143
169
  (r'[^` ]+', String.Double),
144
170
  (r'`', String.Double, '#pop'),
@@ -152,11 +178,15 @@ class ElpiLexer(RegexLexer):
152
178
  (r'"', String.Double, '#pop'),
153
179
  ],
154
180
  'elpi-quote': [
155
- (r'\{\{', Punctuation, '#push'),
156
181
  (r'\}\}', Punctuation, '#pop'),
157
- (rf"(lp:)((?=[A-Z_]){constant_re})", bygroups(Keyword, Name.Variable)),
158
- (r"[^l\}]+", Text),
159
- (r"l|\}", Text),
182
+ (r"\s+", Text.Whitespace),
183
+ (r"(lp:)(\{\{)", bygroups(Number, Punctuation), 'elpi-quote-exit'),
184
+ (rf"(lp:)((?=[A-Z_]){constant_re})", bygroups(Number, Name.Variable)),
185
+ (r"((?!lp:|\}\}).)+", using(RocqLexer)),
186
+ ],
187
+ 'elpi-quote-exit': [
188
+ include('elpi'),
189
+ (r'\}\}', Punctuation, '#pop'),
160
190
  ],
161
191
  'elpi-spill': [
162
192
  (r'\{[^\{]', Text, '#push'),
@@ -164,9 +194,8 @@ class ElpiLexer(RegexLexer):
164
194
  include('elpi'),
165
195
  ],
166
196
  'elpi-in-parens': [
167
- (r"\(", Operator, '#push'),
168
- (r"\)", Operator, '#pop'),
197
+ (r"\(", Punctuation, '#push'),
169
198
  include('elpi'),
199
+ (r"\)", Punctuation, '#pop'),
170
200
  ],
171
-
172
201
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for the raw E-mail.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Erlang.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10