pygments.rb 2.4.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,109 @@
1
+ """
2
+ pygments.lexers.bqn
3
+ ~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for BQN.
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
12
+ from pygments.token import Comment, Operator, Keyword, Name, String, \
13
+ Number, Punctuation, Whitespace
14
+
15
+ __all__ = ['BQNLexer']
16
+
17
+
18
+ class BQNLexer(RegexLexer):
19
+ """
20
+ A simple BQN lexer.
21
+ """
22
+ name = 'BQN'
23
+ url = 'https://mlochbaum.github.io/BQN/index.html'
24
+ aliases = ['bqn']
25
+ filenames = ['*.bqn']
26
+ mimetypes = []
27
+ version_added = '2.16'
28
+
29
+ tokens = {
30
+ 'root': [
31
+ # Whitespace
32
+ # ==========
33
+ (r'\s+', Whitespace),
34
+ #
35
+ # Comment
36
+ # =======
37
+ # '#' is a comment that continues to the end of the line
38
+ (r'#.*$', Comment.Single),
39
+ #
40
+ # Strings
41
+ # =======
42
+ (r'\'((\'\')|[^\'])*\'', String.Single),
43
+ (r'"(("")|[^"])*"', String.Double),
44
+ #
45
+ # Null Character
46
+ # ==============
47
+ # Literal representation of the null character
48
+ (r'@', String.Symbol),
49
+ #
50
+ # Punctuation
51
+ # ===========
52
+ # This token type is used for diamond, commas
53
+ # and array and list brackets and strand syntax
54
+ (r'[\.⋄,\[\]⟨⟩‿]', Punctuation),
55
+ #
56
+ # Expression Grouping
57
+ # ===================
58
+ # Since this token type is important in BQN, it is not included in
59
+ # the punctuation token type but rather in the following one
60
+ (r'[\(\)]', String.Regex),
61
+ #
62
+ # Numbers
63
+ # =======
64
+ # Includes the numeric literals and the Nothing character
65
+ (r'¯?([0-9]+\.?[0-9]+|[0-9]+)([Ee][¯]?[0-9]+)?|¯|∞|π|·', Number),
66
+ #
67
+ # Variables
68
+ # =========
69
+ (r'\b[a-z]\w*\b', Name.Variable),
70
+ #
71
+ # 1-Modifiers
72
+ # ===========
73
+ (r'[˙˜˘¨⌜⁼´˝`𝕣]', Name.Attribute),
74
+ (r'\b_[a-zA-Z0-9]+\b', Name.Attribute),
75
+ #
76
+ # 2-Modifiers
77
+ # ===========
78
+ (r'[∘○⊸⟜⌾⊘◶⎉⚇⍟⎊]', Name.Property),
79
+ (r'\b_[a-zA-Z0-9]+_\b', Name.Property),
80
+ #
81
+ # Functions
82
+ # =========
83
+ # The monadic or dyadic function primitives and function
84
+ # operands and arguments, along with function self-reference
85
+ (r'[+\-×÷\*√⌊⌈∧∨¬|≤<>≥=≠≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!𝕎𝕏𝔽𝔾𝕊]',
86
+ Operator),
87
+ (r'[A-Z]\w*|•\w+\b', Operator),
88
+ #
89
+ # Constant
90
+ # ========
91
+ (r'˙', Name.Constant),
92
+ #
93
+ # Define/Export/Change
94
+ # ====================
95
+ (r'[←↩⇐]', Keyword.Declaration),
96
+ #
97
+ # Blocks
98
+ # ======
99
+ (r'[{}]', Keyword.Type),
100
+ #
101
+ # Extra characters
102
+ # ================
103
+ (r'[;:?𝕨𝕩𝕗𝕘𝕤]', Name.Entity),
104
+ #
105
+
106
+ ],
107
+ }
108
+
109
+
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for "business-oriented" languages.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -23,13 +23,14 @@ __all__ = ['CobolLexer', 'CobolFreeformatLexer', 'ABAPLexer', 'OpenEdgeLexer',
23
23
  class CobolLexer(RegexLexer):
24
24
  """
25
25
  Lexer for OpenCOBOL code.
26
-
27
- .. versionadded:: 1.6
28
26
  """
29
27
  name = 'COBOL'
30
28
  aliases = ['cobol']
31
29
  filenames = ['*.cob', '*.COB', '*.cpy', '*.CPY']
32
30
  mimetypes = ['text/x-cobol']
31
+ url = 'https://en.wikipedia.org/wiki/COBOL'
32
+ version_added = '1.6'
33
+
33
34
  flags = re.IGNORECASE | re.MULTILINE
34
35
 
35
36
  # Data Types: by PICTURE and USAGE
@@ -221,13 +222,14 @@ class CobolLexer(RegexLexer):
221
222
  class CobolFreeformatLexer(CobolLexer):
222
223
  """
223
224
  Lexer for Free format OpenCOBOL code.
224
-
225
- .. versionadded:: 1.6
226
225
  """
227
226
  name = 'COBOLFree'
228
227
  aliases = ['cobolfree']
229
228
  filenames = ['*.cbl', '*.CBL']
230
229
  mimetypes = []
230
+ url = 'https://opencobol.add1tocobol.com'
231
+ version_added = '1.6'
232
+
231
233
  flags = re.IGNORECASE | re.MULTILINE
232
234
 
233
235
  tokens = {
@@ -240,13 +242,13 @@ class CobolFreeformatLexer(CobolLexer):
240
242
  class ABAPLexer(RegexLexer):
241
243
  """
242
244
  Lexer for ABAP, SAP's integrated language.
243
-
244
- .. versionadded:: 1.1
245
245
  """
246
246
  name = 'ABAP'
247
247
  aliases = ['abap']
248
248
  filenames = ['*.abap', '*.ABAP']
249
249
  mimetypes = ['text/x-abap']
250
+ url = 'https://community.sap.com/topics/abap'
251
+ version_added = '1.1'
250
252
 
251
253
  flags = re.IGNORECASE | re.MULTILINE
252
254
 
@@ -448,15 +450,14 @@ class ABAPLexer(RegexLexer):
448
450
 
449
451
  class OpenEdgeLexer(RegexLexer):
450
452
  """
451
- Lexer for `OpenEdge ABL (formerly Progress)
452
- <http://web.progress.com/en/openedge/abl.html>`_ source code.
453
-
454
- .. versionadded:: 1.5
453
+ Lexer for OpenEdge ABL (formerly Progress) source code.
455
454
  """
456
455
  name = 'OpenEdge ABL'
457
456
  aliases = ['openedge', 'abl', 'progress']
458
457
  filenames = ['*.p', '*.cls']
459
458
  mimetypes = ['text/x-openedge', 'application/x-openedge']
459
+ url = 'https://www.progress.com/openedge/features/abl'
460
+ version_added = '1.5'
460
461
 
461
462
  types = (r'(?i)(^|(?<=[^\w\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|'
462
463
  r'COM-HANDLE|DATE|DATETIME|DATETIME-TZ|'
@@ -517,20 +518,20 @@ class OpenEdgeLexer(RegexLexer):
517
518
 
518
519
  class GoodDataCLLexer(RegexLexer):
519
520
  """
520
- Lexer for `GoodData-CL
521
- <https://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/\
522
- com/gooddata/processor/COMMANDS.txt>`_
523
- script files.
524
-
525
- .. versionadded:: 1.4
521
+ Lexer for GoodData-CL script files.
526
522
  """
527
523
 
528
524
  name = 'GoodData-CL'
529
525
  aliases = ['gooddata-cl']
530
526
  filenames = ['*.gdc']
531
527
  mimetypes = ['text/x-gooddata-cl']
528
+ url = 'https://github.com/gooddata/GoodData-CL'
529
+ version_added = '1.4'
532
530
 
533
531
  flags = re.IGNORECASE
532
+
533
+ # Syntax:
534
+ # https://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/com/gooddata/processor/COMMANDS.txt
534
535
  tokens = {
535
536
  'root': [
536
537
  # Comments
@@ -564,17 +565,15 @@ com/gooddata/processor/COMMANDS.txt>`_
564
565
 
565
566
  class MaqlLexer(RegexLexer):
566
567
  """
567
- Lexer for `GoodData MAQL
568
- <https://secure.gooddata.com/docs/html/advanced.metric.tutorial.html>`_
569
- scripts.
570
-
571
- .. versionadded:: 1.4
568
+ Lexer for GoodData MAQL scripts.
572
569
  """
573
570
 
574
571
  name = 'MAQL'
575
572
  aliases = ['maql']
576
573
  filenames = ['*.maql']
577
574
  mimetypes = ['text/x-gooddata-maql', 'application/x-gooddata-maql']
575
+ url = 'https://help.gooddata.com/doc/enterprise/en/dashboards-and-insights/maql-analytical-query-language'
576
+ version_added = '1.4'
578
577
 
579
578
  flags = re.IGNORECASE
580
579
  tokens = {
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for C/C++ languages.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -107,7 +107,8 @@ class CFamilyLexer(RegexLexer):
107
107
  (words(('int8', 'int16', 'int32', 'int64', 'wchar_t'), prefix=r'__',
108
108
  suffix=r'\b'), Keyword.Reserved),
109
109
  (words(('bool', 'int', 'long', 'float', 'short', 'double', 'char',
110
- 'unsigned', 'signed', 'void'), suffix=r'\b'), Keyword.Type)
110
+ 'unsigned', 'signed', 'void', '_BitInt',
111
+ '__int128'), suffix=r'\b'), Keyword.Type)
111
112
  ],
112
113
  'keywords': [
113
114
  (r'(struct|union)(\s+)', bygroups(Keyword, Whitespace), 'classname'),
@@ -293,6 +294,8 @@ class CLexer(CFamilyLexer):
293
294
  aliases = ['c']
294
295
  filenames = ['*.c', '*.h', '*.idc', '*.x[bp]m']
295
296
  mimetypes = ['text/x-chdr', 'text/x-csrc', 'image/x-xbitmap', 'image/x-xpixmap']
297
+ url = 'https://en.wikipedia.org/wiki/C_(programming_language)'
298
+ version_added = ''
296
299
  priority = 0.1
297
300
 
298
301
  tokens = {
@@ -346,6 +349,7 @@ class CppLexer(CFamilyLexer):
346
349
  '*.cc', '*.hh', '*.cxx', '*.hxx',
347
350
  '*.C', '*.H', '*.cp', '*.CPP', '*.tpp']
348
351
  mimetypes = ['text/x-c++hdr', 'text/x-c++src']
352
+ version_added = ''
349
353
  priority = 0.1
350
354
 
351
355
  tokens = {
@@ -380,11 +384,12 @@ class CppLexer(CFamilyLexer):
380
384
  'catch', 'const_cast', 'delete', 'dynamic_cast', 'explicit',
381
385
  'export', 'friend', 'mutable', 'new', 'operator',
382
386
  'private', 'protected', 'public', 'reinterpret_cast', 'class',
383
- 'restrict', 'static_cast', 'template', 'this', 'throw', 'throws',
387
+ '__restrict', 'static_cast', 'template', 'this', 'throw', 'throws',
384
388
  'try', 'typeid', 'using', 'virtual', 'constexpr', 'nullptr', 'concept',
385
389
  'decltype', 'noexcept', 'override', 'final', 'constinit', 'consteval',
386
390
  'co_await', 'co_return', 'co_yield', 'requires', 'import', 'module',
387
- 'typename'),
391
+ 'typename', 'and', 'and_eq', 'bitand', 'bitor', 'compl', 'not',
392
+ 'not_eq', 'or', 'or_eq', 'xor', 'xor_eq'),
388
393
  suffix=r'\b'), Keyword),
389
394
  (r'namespace\b', Keyword, 'namespace'),
390
395
  (r'(enum)(\s+)', bygroups(Keyword, Whitespace), 'enumname'),
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for other C-like languages.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -20,19 +20,18 @@ from pygments.lexers import _mql_builtins
20
20
 
21
21
  __all__ = ['PikeLexer', 'NesCLexer', 'ClayLexer', 'ECLexer', 'ValaLexer',
22
22
  'CudaLexer', 'SwigLexer', 'MqlLexer', 'ArduinoLexer', 'CharmciLexer',
23
- 'OmgIdlLexer']
23
+ 'OmgIdlLexer', 'PromelaLexer']
24
24
 
25
25
 
26
26
  class PikeLexer(CppLexer):
27
27
  """
28
28
  For `Pike <http://pike.lysator.liu.se/>`_ source code.
29
-
30
- .. versionadded:: 2.0
31
29
  """
32
30
  name = 'Pike'
33
31
  aliases = ['pike']
34
32
  filenames = ['*.pike', '*.pmod']
35
33
  mimetypes = ['text/x-pike']
34
+ version_added = '2.0'
36
35
 
37
36
  tokens = {
38
37
  'statements': [
@@ -68,13 +67,12 @@ class NesCLexer(CLexer):
68
67
  """
69
68
  For `nesC <https://github.com/tinyos/nesc>`_ source code with preprocessor
70
69
  directives.
71
-
72
- .. versionadded:: 2.0
73
70
  """
74
71
  name = 'nesC'
75
72
  aliases = ['nesc']
76
73
  filenames = ['*.nc']
77
74
  mimetypes = ['text/x-nescsrc']
75
+ version_added = '2.0'
78
76
 
79
77
  tokens = {
80
78
  'statements': [
@@ -95,14 +93,15 @@ class NesCLexer(CLexer):
95
93
 
96
94
  class ClayLexer(RegexLexer):
97
95
  """
98
- For `Clay <http://claylabs.com/clay/>`_ source.
99
-
100
- .. versionadded:: 2.0
96
+ For Clay source.
101
97
  """
102
98
  name = 'Clay'
103
99
  filenames = ['*.clay']
104
100
  aliases = ['clay']
105
101
  mimetypes = ['text/x-clay']
102
+ url = 'http://claylabs.com/clay'
103
+ version_added = '2.0'
104
+
106
105
  tokens = {
107
106
  'root': [
108
107
  (r'\s+', Whitespace),
@@ -147,13 +146,13 @@ class ClayLexer(RegexLexer):
147
146
  class ECLexer(CLexer):
148
147
  """
149
148
  For eC source code with preprocessor directives.
150
-
151
- .. versionadded:: 1.5
152
149
  """
153
150
  name = 'eC'
154
151
  aliases = ['ec']
155
152
  filenames = ['*.ec', '*.eh']
156
153
  mimetypes = ['text/x-echdr', 'text/x-ecsrc']
154
+ url = 'https://ec-lang.org'
155
+ version_added = '1.5'
157
156
 
158
157
  tokens = {
159
158
  'statements': [
@@ -180,13 +179,13 @@ class ECLexer(CLexer):
180
179
  class ValaLexer(RegexLexer):
181
180
  """
182
181
  For Vala source code with preprocessor directives.
183
-
184
- .. versionadded:: 1.1
185
182
  """
186
183
  name = 'Vala'
187
184
  aliases = ['vala', 'vapi']
188
185
  filenames = ['*.vala', '*.vapi']
189
186
  mimetypes = ['text/x-vala']
187
+ url = 'https://vala.dev'
188
+ version_added = '1.1'
190
189
 
191
190
  tokens = {
192
191
  'whitespace': [
@@ -277,15 +276,14 @@ class ValaLexer(RegexLexer):
277
276
 
278
277
  class CudaLexer(CLexer):
279
278
  """
280
- For NVIDIA `CUDA™ <http://developer.nvidia.com/category/zone/cuda-zone>`_
281
- source.
282
-
283
- .. versionadded:: 1.6
279
+ For NVIDIA CUDA™ source.
284
280
  """
285
281
  name = 'CUDA'
286
282
  filenames = ['*.cu', '*.cuh']
287
283
  aliases = ['cuda', 'cu']
288
284
  mimetypes = ['text/x-cuda']
285
+ url = 'https://developer.nvidia.com/category/zone/cuda-zone'
286
+ version_added = '1.6'
289
287
 
290
288
  function_qualifiers = {'__device__', '__global__', '__host__',
291
289
  '__noinline__', '__forceinline__'}
@@ -326,13 +324,12 @@ class CudaLexer(CLexer):
326
324
  class SwigLexer(CppLexer):
327
325
  """
328
326
  For `SWIG <http://www.swig.org/>`_ source code.
329
-
330
- .. versionadded:: 2.0
331
327
  """
332
328
  name = 'SWIG'
333
329
  aliases = ['swig']
334
330
  filenames = ['*.swg', '*.i']
335
331
  mimetypes = ['text/swig']
332
+ version_added = '2.0'
336
333
  priority = 0.04 # Lower than C/C++ and Objective C/C++
337
334
 
338
335
  tokens = {
@@ -393,13 +390,12 @@ class MqlLexer(CppLexer):
393
390
  """
394
391
  For `MQL4 <http://docs.mql4.com/>`_ and
395
392
  `MQL5 <http://www.mql5.com/en/docs>`_ source code.
396
-
397
- .. versionadded:: 2.0
398
393
  """
399
394
  name = 'MQL'
400
395
  aliases = ['mql', 'mq4', 'mq5', 'mql4', 'mql5']
401
396
  filenames = ['*.mq4', '*.mq5', '*.mqh']
402
397
  mimetypes = ['text/x-mql']
398
+ version_added = '2.0'
403
399
 
404
400
  tokens = {
405
401
  'statements': [
@@ -420,14 +416,13 @@ class ArduinoLexer(CppLexer):
420
416
 
421
417
  This is an extension of the CppLexer, as the Arduino® Language is a superset
422
418
  of C++
423
-
424
- .. versionadded:: 2.1
425
419
  """
426
420
 
427
421
  name = 'Arduino'
428
422
  aliases = ['arduino']
429
423
  filenames = ['*.ino']
430
424
  mimetypes = ['text/x-arduino']
425
+ version_added = '2.1'
431
426
 
432
427
  # Language sketch main structure functions
433
428
  structure = {'setup', 'loop'}
@@ -545,13 +540,12 @@ class ArduinoLexer(CppLexer):
545
540
  class CharmciLexer(CppLexer):
546
541
  """
547
542
  For `Charm++ <https://charm.cs.illinois.edu>`_ interface files (.ci).
548
-
549
- .. versionadded:: 2.4
550
543
  """
551
544
 
552
545
  name = 'Charmci'
553
546
  aliases = ['charmci']
554
547
  filenames = ['*.ci']
548
+ version_added = '2.4'
555
549
 
556
550
  mimetypes = []
557
551
 
@@ -575,8 +569,6 @@ class CharmciLexer(CppLexer):
575
569
  class OmgIdlLexer(CLexer):
576
570
  """
577
571
  Lexer for Object Management Group Interface Definition Language.
578
-
579
- .. versionadded:: 2.9
580
572
  """
581
573
 
582
574
  name = 'OMG Interface Definition Language'
@@ -584,6 +576,7 @@ class OmgIdlLexer(CLexer):
584
576
  aliases = ['omg-idl']
585
577
  filenames = ['*.idl', '*.pidl']
586
578
  mimetypes = []
579
+ version_added = '2.9'
587
580
 
588
581
  scoped_name = r'((::)?\w+)+'
589
582
 
@@ -664,3 +657,82 @@ class OmgIdlLexer(CLexer):
664
657
  include('annotation_appl'),
665
658
  ],
666
659
  }
660
+
661
+
662
+ class PromelaLexer(CLexer):
663
+ """
664
+ For the Promela language used with SPIN.
665
+ """
666
+
667
+ name = 'Promela'
668
+ aliases = ['promela']
669
+ filenames = ['*.pml', '*.prom', '*.prm', '*.promela', '*.pr', '*.pm']
670
+ mimetypes = ['text/x-promela']
671
+ url = 'https://spinroot.com/spin/whatispin.html'
672
+ version_added = '2.18'
673
+
674
+ # Promela's language reference:
675
+ # https://spinroot.com/spin/Man/promela.html
676
+ # Promela's grammar definition:
677
+ # https://spinroot.com/spin/Man/grammar.html
678
+
679
+ tokens = {
680
+ 'statements': [
681
+ (r'(\[\]|<>|/\\|\\/)|(U|W|V)\b', Operator), # LTL Operators
682
+ (r'@', Punctuation), #remoterefs
683
+ (r'(\.)([a-zA-Z_]\w*)', bygroups(Operator, Name.Attribute)),
684
+ inherit
685
+ ],
686
+ 'types': [
687
+ # Predefined (data types)
688
+ (words((
689
+ 'bit', 'bool', 'byte', 'pid', 'short', 'int', 'unsigned'),
690
+ suffix=r'\b'),
691
+ Keyword.Type),
692
+ ],
693
+ 'keywords': [
694
+ # ControlFlow
695
+ (words((
696
+ 'atomic', 'break', 'd_step', 'do', 'od', 'for', 'in', 'goto',
697
+ 'if', 'fi', 'unless'), suffix=r'\b'),
698
+ Keyword),
699
+ # BasicStatements
700
+ (words((
701
+ 'assert', 'get_priority', 'printf', 'printm', 'set_priority'),
702
+ suffix=r'\b'),
703
+ Name.Function),
704
+ # Embedded C Code
705
+ (words((
706
+ 'c_code', 'c_decl', 'c_expr', 'c_state', 'c_track'),
707
+ suffix=r'\b'),
708
+ Keyword),
709
+ # Predefined (local/global variables)
710
+ (words((
711
+ '_', '_last', '_nr_pr', '_pid', '_priority', 'else', 'np_',
712
+ 'STDIN'), suffix=r'\b'),
713
+ Name.Builtin),
714
+ # Predefined (functions)
715
+ (words((
716
+ 'empty', 'enabled', 'eval', 'full', 'len', 'nempty', 'nfull',
717
+ 'pc_value'), suffix=r'\b'),
718
+ Name.Function),
719
+ # Predefined (operators)
720
+ (r'run\b', Operator.Word),
721
+ # Declarators
722
+ (words((
723
+ 'active', 'chan', 'D_proctype', 'hidden', 'init', 'local',
724
+ 'mtype', 'never', 'notrace', 'proctype', 'show', 'trace',
725
+ 'typedef', 'xr', 'xs'), suffix=r'\b'),
726
+ Keyword.Declaration),
727
+ # Declarators (suffixes)
728
+ (words((
729
+ 'priority', 'provided'), suffix=r'\b'),
730
+ Keyword),
731
+ # MetaTerms (declarators)
732
+ (words((
733
+ 'inline', 'ltl', 'select'), suffix=r'\b'),
734
+ Keyword.Declaration),
735
+ # MetaTerms (keywords)
736
+ (r'skip\b', Keyword),
737
+ ],
738
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for the Cap'n Proto schema language.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -17,13 +17,12 @@ __all__ = ['CapnProtoLexer']
17
17
  class CapnProtoLexer(RegexLexer):
18
18
  """
19
19
  For Cap'n Proto source.
20
-
21
- .. versionadded:: 2.2
22
20
  """
23
21
  name = 'Cap\'n Proto'
24
22
  url = 'https://capnproto.org'
25
23
  filenames = ['*.capnp']
26
24
  aliases = ['capnp']
25
+ version_added = '2.2'
27
26
 
28
27
  tokens = {
29
28
  'root': [
@@ -4,12 +4,12 @@
4
4
 
5
5
  Lexers for the Carbon programming language.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
  import re
11
11
 
12
- from pygments.lexer import RegexLexer, bygroups, words
12
+ from pygments.lexer import RegexLexer, words
13
13
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
14
14
  Number, Punctuation, Whitespace
15
15
 
@@ -19,14 +19,13 @@ __all__ = ['CarbonLexer']
19
19
  class CarbonLexer(RegexLexer):
20
20
  """
21
21
  For Carbon source.
22
-
23
- .. versionadded:: 2.15
24
22
  """
25
23
  name = 'Carbon'
26
24
  url = 'https://github.com/carbon-language/carbon-lang'
27
25
  filenames = ['*.carbon']
28
26
  aliases = ['carbon']
29
27
  mimetypes = ['text/x-carbon']
28
+ version_added = '2.15'
30
29
 
31
30
  flags = re.MULTILINE | re.DOTALL
32
31
 
@@ -37,7 +36,7 @@ class CarbonLexer(RegexLexer):
37
36
  (r'\\\n', Text),
38
37
  # comments
39
38
  (r'//(.*?)\n', Comment.Single),
40
- (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
39
+ (r'/(\\\n)?[*].*?[*](\\\n)?/', Comment.Multiline),
41
40
  # Declaration
42
41
  (r'(package|import|api|namespace|library)\b', Keyword.Namespace),
43
42
  (r'(abstract|alias|fn|class|interface|let|var|virtual|external|'
@@ -53,11 +52,11 @@ class CarbonLexer(RegexLexer):
53
52
  (r'(auto|bool|string|i8|i16|i32|i64|u8|u16|u32|u64|'
54
53
  r'f8|f16|f32|f64)\b', Keyword.Type),
55
54
  # numeric literals
56
- (r'[0-9]*[.][0-9]+?', Number.Double),
57
- (r'0b[01]+?', Number.Bin),
58
- (r'0o[0-7]+?', Number.Oct),
59
- (r'0x[0-9a-fA-F]+?', Number.Hex),
60
- (r'[0-9]+?', Number.Integer),
55
+ (r'[0-9]*[.][0-9]+', Number.Double),
56
+ (r'0b[01]+', Number.Bin),
57
+ (r'0o[0-7]+', Number.Oct),
58
+ (r'0x[0-9a-fA-F]+', Number.Hex),
59
+ (r'[0-9]+', Number.Integer),
61
60
  # string literal
62
61
  (r'"(\\.|[^"\\])*"', String),
63
62
  # char literal
@@ -93,4 +92,4 @@ class CarbonLexer(RegexLexer):
93
92
  result += 0.1
94
93
  if 'impl' in text:
95
94
  result += 0.1
96
- return result
95
+ return result