pygments.rb 2.4.1 → 3.0.0

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