pygments.rb 2.4.1 → 4.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 (699) 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 -2
  6. data/CHANGELOG.adoc +15 -1
  7. data/README.adoc +2 -2
  8. data/Rakefile +1 -1
  9. data/bench.rb +3 -3
  10. data/lib/pygments/version.rb +1 -1
  11. data/pygments.rb.gemspec +3 -3
  12. data/test/test_pygments.rb +0 -4
  13. data/vendor/pygments-main/bin/pygmentize +1 -1
  14. data/vendor/pygments-main/pygments/__init__.py +2 -2
  15. data/vendor/pygments-main/pygments/__main__.py +1 -1
  16. data/vendor/pygments-main/pygments/__pycache__/__init__.cpython-313.pyc +0 -0
  17. data/vendor/pygments-main/pygments/__pycache__/__main__.cpython-313.pyc +0 -0
  18. data/vendor/pygments-main/pygments/__pycache__/cmdline.cpython-313.pyc +0 -0
  19. data/vendor/pygments-main/pygments/__pycache__/console.cpython-313.pyc +0 -0
  20. data/vendor/pygments-main/pygments/__pycache__/filter.cpython-313.pyc +0 -0
  21. data/vendor/pygments-main/pygments/__pycache__/formatter.cpython-313.pyc +0 -0
  22. data/vendor/pygments-main/pygments/__pycache__/lexer.cpython-313.pyc +0 -0
  23. data/vendor/pygments-main/pygments/__pycache__/modeline.cpython-313.pyc +0 -0
  24. data/vendor/pygments-main/pygments/__pycache__/plugin.cpython-313.pyc +0 -0
  25. data/vendor/pygments-main/pygments/__pycache__/regexopt.cpython-313.pyc +0 -0
  26. data/vendor/pygments-main/pygments/__pycache__/scanner.cpython-313.pyc +0 -0
  27. data/vendor/pygments-main/pygments/__pycache__/sphinxext.cpython-313.pyc +0 -0
  28. data/vendor/pygments-main/pygments/__pycache__/style.cpython-313.pyc +0 -0
  29. data/vendor/pygments-main/pygments/__pycache__/token.cpython-313.pyc +0 -0
  30. data/vendor/pygments-main/pygments/__pycache__/unistring.cpython-313.pyc +0 -0
  31. data/vendor/pygments-main/pygments/__pycache__/util.cpython-313.pyc +0 -0
  32. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  33. data/vendor/pygments-main/pygments/console.py +5 -5
  34. data/vendor/pygments-main/pygments/filter.py +2 -3
  35. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  36. data/vendor/pygments-main/pygments/filters/__pycache__/__init__.cpython-313.pyc +0 -0
  37. data/vendor/pygments-main/pygments/formatter.py +6 -1
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  39. data/vendor/pygments-main/pygments/formatters/__pycache__/__init__.cpython-313.pyc +0 -0
  40. data/vendor/pygments-main/pygments/formatters/__pycache__/_mapping.cpython-313.pyc +0 -0
  41. data/vendor/pygments-main/pygments/formatters/__pycache__/bbcode.cpython-313.pyc +0 -0
  42. data/vendor/pygments-main/pygments/formatters/__pycache__/groff.cpython-313.pyc +0 -0
  43. data/vendor/pygments-main/pygments/formatters/__pycache__/html.cpython-313.pyc +0 -0
  44. data/vendor/pygments-main/pygments/formatters/__pycache__/img.cpython-313.pyc +0 -0
  45. data/vendor/pygments-main/pygments/formatters/__pycache__/irc.cpython-313.pyc +0 -0
  46. data/vendor/pygments-main/pygments/formatters/__pycache__/latex.cpython-313.pyc +0 -0
  47. data/vendor/pygments-main/pygments/formatters/__pycache__/other.cpython-313.pyc +0 -0
  48. data/vendor/pygments-main/pygments/formatters/__pycache__/pangomarkup.cpython-313.pyc +0 -0
  49. data/vendor/pygments-main/pygments/formatters/__pycache__/rtf.cpython-313.pyc +0 -0
  50. data/vendor/pygments-main/pygments/formatters/__pycache__/svg.cpython-313.pyc +0 -0
  51. data/vendor/pygments-main/pygments/formatters/__pycache__/terminal.cpython-313.pyc +0 -0
  52. data/vendor/pygments-main/pygments/formatters/__pycache__/terminal256.cpython-313.pyc +0 -0
  53. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  54. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  55. data/vendor/pygments-main/pygments/formatters/html.py +47 -41
  56. data/vendor/pygments-main/pygments/formatters/img.py +53 -12
  57. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  58. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  59. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  60. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  61. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  62. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  63. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  64. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  65. data/vendor/pygments-main/pygments/lexer.py +51 -33
  66. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  67. data/vendor/pygments-main/pygments/lexers/__pycache__/__init__.cpython-313.pyc +0 -0
  68. data/vendor/pygments-main/pygments/lexers/__pycache__/_ada_builtins.cpython-313.pyc +0 -0
  69. data/vendor/pygments-main/pygments/lexers/__pycache__/_asy_builtins.cpython-313.pyc +0 -0
  70. data/vendor/pygments-main/pygments/lexers/__pycache__/_cl_builtins.cpython-313.pyc +0 -0
  71. data/vendor/pygments-main/pygments/lexers/__pycache__/_cocoa_builtins.cpython-313.pyc +0 -0
  72. data/vendor/pygments-main/pygments/lexers/__pycache__/_csound_builtins.cpython-313.pyc +0 -0
  73. data/vendor/pygments-main/pygments/lexers/__pycache__/_css_builtins.cpython-313.pyc +0 -0
  74. data/vendor/pygments-main/pygments/lexers/__pycache__/_googlesql_builtins.cpython-313.pyc +0 -0
  75. data/vendor/pygments-main/pygments/lexers/__pycache__/_julia_builtins.cpython-313.pyc +0 -0
  76. data/vendor/pygments-main/pygments/lexers/__pycache__/_lasso_builtins.cpython-313.pyc +0 -0
  77. data/vendor/pygments-main/pygments/lexers/__pycache__/_lilypond_builtins.cpython-313.pyc +0 -0
  78. data/vendor/pygments-main/pygments/lexers/__pycache__/_lua_builtins.cpython-313.pyc +0 -0
  79. data/vendor/pygments-main/pygments/lexers/__pycache__/_luau_builtins.cpython-313.pyc +0 -0
  80. data/vendor/pygments-main/pygments/lexers/__pycache__/_mapping.cpython-313.pyc +0 -0
  81. data/vendor/pygments-main/pygments/lexers/__pycache__/_mql_builtins.cpython-313.pyc +0 -0
  82. data/vendor/pygments-main/pygments/lexers/__pycache__/_mysql_builtins.cpython-313.pyc +0 -0
  83. data/vendor/pygments-main/pygments/lexers/__pycache__/_openedge_builtins.cpython-313.pyc +0 -0
  84. data/vendor/pygments-main/pygments/lexers/__pycache__/_php_builtins.cpython-313.pyc +0 -0
  85. data/vendor/pygments-main/pygments/lexers/__pycache__/_postgres_builtins.cpython-313.pyc +0 -0
  86. data/vendor/pygments-main/pygments/lexers/__pycache__/_qlik_builtins.cpython-313.pyc +0 -0
  87. data/vendor/pygments-main/pygments/lexers/__pycache__/_scheme_builtins.cpython-313.pyc +0 -0
  88. data/vendor/pygments-main/pygments/lexers/__pycache__/_scilab_builtins.cpython-313.pyc +0 -0
  89. data/vendor/pygments-main/pygments/lexers/__pycache__/_sourcemod_builtins.cpython-313.pyc +0 -0
  90. data/vendor/pygments-main/pygments/lexers/__pycache__/_sql_builtins.cpython-313.pyc +0 -0
  91. data/vendor/pygments-main/pygments/lexers/__pycache__/_stan_builtins.cpython-313.pyc +0 -0
  92. data/vendor/pygments-main/pygments/lexers/__pycache__/_stata_builtins.cpython-313.pyc +0 -0
  93. data/vendor/pygments-main/pygments/lexers/__pycache__/_tsql_builtins.cpython-313.pyc +0 -0
  94. data/vendor/pygments-main/pygments/lexers/__pycache__/_usd_builtins.cpython-313.pyc +0 -0
  95. data/vendor/pygments-main/pygments/lexers/__pycache__/_vbscript_builtins.cpython-313.pyc +0 -0
  96. data/vendor/pygments-main/pygments/lexers/__pycache__/_vim_builtins.cpython-313.pyc +0 -0
  97. data/vendor/pygments-main/pygments/lexers/__pycache__/actionscript.cpython-313.pyc +0 -0
  98. data/vendor/pygments-main/pygments/lexers/__pycache__/ada.cpython-313.pyc +0 -0
  99. data/vendor/pygments-main/pygments/lexers/__pycache__/agile.cpython-313.pyc +0 -0
  100. data/vendor/pygments-main/pygments/lexers/__pycache__/algebra.cpython-313.pyc +0 -0
  101. data/vendor/pygments-main/pygments/lexers/__pycache__/ambient.cpython-313.pyc +0 -0
  102. data/vendor/pygments-main/pygments/lexers/__pycache__/amdgpu.cpython-313.pyc +0 -0
  103. data/vendor/pygments-main/pygments/lexers/__pycache__/ampl.cpython-313.pyc +0 -0
  104. data/vendor/pygments-main/pygments/lexers/__pycache__/apdlexer.cpython-313.pyc +0 -0
  105. data/vendor/pygments-main/pygments/lexers/__pycache__/apl.cpython-313.pyc +0 -0
  106. data/vendor/pygments-main/pygments/lexers/__pycache__/archetype.cpython-313.pyc +0 -0
  107. data/vendor/pygments-main/pygments/lexers/__pycache__/arrow.cpython-313.pyc +0 -0
  108. data/vendor/pygments-main/pygments/lexers/__pycache__/arturo.cpython-313.pyc +0 -0
  109. data/vendor/pygments-main/pygments/lexers/__pycache__/asc.cpython-313.pyc +0 -0
  110. data/vendor/pygments-main/pygments/lexers/__pycache__/asm.cpython-313.pyc +0 -0
  111. data/vendor/pygments-main/pygments/lexers/__pycache__/asn1.cpython-313.pyc +0 -0
  112. data/vendor/pygments-main/pygments/lexers/__pycache__/automation.cpython-313.pyc +0 -0
  113. data/vendor/pygments-main/pygments/lexers/__pycache__/bare.cpython-313.pyc +0 -0
  114. data/vendor/pygments-main/pygments/lexers/__pycache__/basic.cpython-313.pyc +0 -0
  115. data/vendor/pygments-main/pygments/lexers/__pycache__/bdd.cpython-313.pyc +0 -0
  116. data/vendor/pygments-main/pygments/lexers/__pycache__/berry.cpython-313.pyc +0 -0
  117. data/vendor/pygments-main/pygments/lexers/__pycache__/bibtex.cpython-313.pyc +0 -0
  118. data/vendor/pygments-main/pygments/lexers/__pycache__/blueprint.cpython-313.pyc +0 -0
  119. data/vendor/pygments-main/pygments/lexers/__pycache__/boa.cpython-313.pyc +0 -0
  120. data/vendor/pygments-main/pygments/lexers/__pycache__/bqn.cpython-313.pyc +0 -0
  121. data/vendor/pygments-main/pygments/lexers/__pycache__/business.cpython-313.pyc +0 -0
  122. data/vendor/pygments-main/pygments/lexers/__pycache__/c_cpp.cpython-313.pyc +0 -0
  123. data/vendor/pygments-main/pygments/lexers/__pycache__/c_like.cpython-313.pyc +0 -0
  124. data/vendor/pygments-main/pygments/lexers/__pycache__/capnproto.cpython-313.pyc +0 -0
  125. data/vendor/pygments-main/pygments/lexers/__pycache__/carbon.cpython-313.pyc +0 -0
  126. data/vendor/pygments-main/pygments/lexers/__pycache__/cddl.cpython-313.pyc +0 -0
  127. data/vendor/pygments-main/pygments/lexers/__pycache__/chapel.cpython-313.pyc +0 -0
  128. data/vendor/pygments-main/pygments/lexers/__pycache__/clean.cpython-313.pyc +0 -0
  129. data/vendor/pygments-main/pygments/lexers/__pycache__/codeql.cpython-313.pyc +0 -0
  130. data/vendor/pygments-main/pygments/lexers/__pycache__/comal.cpython-313.pyc +0 -0
  131. data/vendor/pygments-main/pygments/lexers/__pycache__/compiled.cpython-313.pyc +0 -0
  132. data/vendor/pygments-main/pygments/lexers/__pycache__/configs.cpython-313.pyc +0 -0
  133. data/vendor/pygments-main/pygments/lexers/__pycache__/console.cpython-313.pyc +0 -0
  134. data/vendor/pygments-main/pygments/lexers/__pycache__/cplint.cpython-313.pyc +0 -0
  135. data/vendor/pygments-main/pygments/lexers/__pycache__/crystal.cpython-313.pyc +0 -0
  136. data/vendor/pygments-main/pygments/lexers/__pycache__/csound.cpython-313.pyc +0 -0
  137. data/vendor/pygments-main/pygments/lexers/__pycache__/css.cpython-313.pyc +0 -0
  138. data/vendor/pygments-main/pygments/lexers/__pycache__/d.cpython-313.pyc +0 -0
  139. data/vendor/pygments-main/pygments/lexers/__pycache__/dalvik.cpython-313.pyc +0 -0
  140. data/vendor/pygments-main/pygments/lexers/__pycache__/data.cpython-313.pyc +0 -0
  141. data/vendor/pygments-main/pygments/lexers/__pycache__/dax.cpython-313.pyc +0 -0
  142. data/vendor/pygments-main/pygments/lexers/__pycache__/devicetree.cpython-313.pyc +0 -0
  143. data/vendor/pygments-main/pygments/lexers/__pycache__/diff.cpython-313.pyc +0 -0
  144. data/vendor/pygments-main/pygments/lexers/__pycache__/dns.cpython-313.pyc +0 -0
  145. data/vendor/pygments-main/pygments/lexers/__pycache__/dotnet.cpython-313.pyc +0 -0
  146. data/vendor/pygments-main/pygments/lexers/__pycache__/dsls.cpython-313.pyc +0 -0
  147. data/vendor/pygments-main/pygments/lexers/__pycache__/dylan.cpython-313.pyc +0 -0
  148. data/vendor/pygments-main/pygments/lexers/__pycache__/ecl.cpython-313.pyc +0 -0
  149. data/vendor/pygments-main/pygments/lexers/__pycache__/eiffel.cpython-313.pyc +0 -0
  150. data/vendor/pygments-main/pygments/lexers/__pycache__/elm.cpython-313.pyc +0 -0
  151. data/vendor/pygments-main/pygments/lexers/__pycache__/elpi.cpython-313.pyc +0 -0
  152. data/vendor/pygments-main/pygments/lexers/__pycache__/email.cpython-313.pyc +0 -0
  153. data/vendor/pygments-main/pygments/lexers/__pycache__/erlang.cpython-313.pyc +0 -0
  154. data/vendor/pygments-main/pygments/lexers/__pycache__/esoteric.cpython-313.pyc +0 -0
  155. data/vendor/pygments-main/pygments/lexers/__pycache__/ezhil.cpython-313.pyc +0 -0
  156. data/vendor/pygments-main/pygments/lexers/__pycache__/factor.cpython-313.pyc +0 -0
  157. data/vendor/pygments-main/pygments/lexers/__pycache__/fantom.cpython-313.pyc +0 -0
  158. data/vendor/pygments-main/pygments/lexers/__pycache__/felix.cpython-313.pyc +0 -0
  159. data/vendor/pygments-main/pygments/lexers/__pycache__/fift.cpython-313.pyc +0 -0
  160. data/vendor/pygments-main/pygments/lexers/__pycache__/floscript.cpython-313.pyc +0 -0
  161. data/vendor/pygments-main/pygments/lexers/__pycache__/forth.cpython-313.pyc +0 -0
  162. data/vendor/pygments-main/pygments/lexers/__pycache__/fortran.cpython-313.pyc +0 -0
  163. data/vendor/pygments-main/pygments/lexers/__pycache__/foxpro.cpython-313.pyc +0 -0
  164. data/vendor/pygments-main/pygments/lexers/__pycache__/freefem.cpython-313.pyc +0 -0
  165. data/vendor/pygments-main/pygments/lexers/__pycache__/func.cpython-313.pyc +0 -0
  166. data/vendor/pygments-main/pygments/lexers/__pycache__/functional.cpython-313.pyc +0 -0
  167. data/vendor/pygments-main/pygments/lexers/__pycache__/futhark.cpython-313.pyc +0 -0
  168. data/vendor/pygments-main/pygments/lexers/__pycache__/gcodelexer.cpython-313.pyc +0 -0
  169. data/vendor/pygments-main/pygments/lexers/__pycache__/gdscript.cpython-313.pyc +0 -0
  170. data/vendor/pygments-main/pygments/lexers/__pycache__/gleam.cpython-313.pyc +0 -0
  171. data/vendor/pygments-main/pygments/lexers/__pycache__/go.cpython-313.pyc +0 -0
  172. data/vendor/pygments-main/pygments/lexers/__pycache__/grammar_notation.cpython-313.pyc +0 -0
  173. data/vendor/pygments-main/pygments/lexers/__pycache__/graph.cpython-313.pyc +0 -0
  174. data/vendor/pygments-main/pygments/lexers/__pycache__/graphics.cpython-313.pyc +0 -0
  175. data/vendor/pygments-main/pygments/lexers/__pycache__/graphql.cpython-313.pyc +0 -0
  176. data/vendor/pygments-main/pygments/lexers/__pycache__/graphviz.cpython-313.pyc +0 -0
  177. data/vendor/pygments-main/pygments/lexers/__pycache__/gsql.cpython-313.pyc +0 -0
  178. data/vendor/pygments-main/pygments/lexers/__pycache__/hare.cpython-313.pyc +0 -0
  179. data/vendor/pygments-main/pygments/lexers/__pycache__/haskell.cpython-313.pyc +0 -0
  180. data/vendor/pygments-main/pygments/lexers/__pycache__/haxe.cpython-313.pyc +0 -0
  181. data/vendor/pygments-main/pygments/lexers/__pycache__/hdl.cpython-313.pyc +0 -0
  182. data/vendor/pygments-main/pygments/lexers/__pycache__/hexdump.cpython-313.pyc +0 -0
  183. data/vendor/pygments-main/pygments/lexers/__pycache__/html.cpython-313.pyc +0 -0
  184. data/vendor/pygments-main/pygments/lexers/__pycache__/idl.cpython-313.pyc +0 -0
  185. data/vendor/pygments-main/pygments/lexers/__pycache__/igor.cpython-313.pyc +0 -0
  186. data/vendor/pygments-main/pygments/lexers/__pycache__/inferno.cpython-313.pyc +0 -0
  187. data/vendor/pygments-main/pygments/lexers/__pycache__/installers.cpython-313.pyc +0 -0
  188. data/vendor/pygments-main/pygments/lexers/__pycache__/int_fiction.cpython-313.pyc +0 -0
  189. data/vendor/pygments-main/pygments/lexers/__pycache__/iolang.cpython-313.pyc +0 -0
  190. data/vendor/pygments-main/pygments/lexers/__pycache__/j.cpython-313.pyc +0 -0
  191. data/vendor/pygments-main/pygments/lexers/__pycache__/javascript.cpython-313.pyc +0 -0
  192. data/vendor/pygments-main/pygments/lexers/__pycache__/jmespath.cpython-313.pyc +0 -0
  193. data/vendor/pygments-main/pygments/lexers/__pycache__/jslt.cpython-313.pyc +0 -0
  194. data/vendor/pygments-main/pygments/lexers/__pycache__/json5.cpython-313.pyc +0 -0
  195. data/vendor/pygments-main/pygments/lexers/__pycache__/jsonnet.cpython-313.pyc +0 -0
  196. data/vendor/pygments-main/pygments/lexers/__pycache__/jsx.cpython-313.pyc +0 -0
  197. data/vendor/pygments-main/pygments/lexers/__pycache__/julia.cpython-313.pyc +0 -0
  198. data/vendor/pygments-main/pygments/lexers/__pycache__/jvm.cpython-313.pyc +0 -0
  199. data/vendor/pygments-main/pygments/lexers/__pycache__/kuin.cpython-313.pyc +0 -0
  200. data/vendor/pygments-main/pygments/lexers/__pycache__/kusto.cpython-313.pyc +0 -0
  201. data/vendor/pygments-main/pygments/lexers/__pycache__/ldap.cpython-313.pyc +0 -0
  202. data/vendor/pygments-main/pygments/lexers/__pycache__/lean.cpython-313.pyc +0 -0
  203. data/vendor/pygments-main/pygments/lexers/__pycache__/lilypond.cpython-313.pyc +0 -0
  204. data/vendor/pygments-main/pygments/lexers/__pycache__/lisp.cpython-313.pyc +0 -0
  205. data/vendor/pygments-main/pygments/lexers/__pycache__/macaulay2.cpython-313.pyc +0 -0
  206. data/vendor/pygments-main/pygments/lexers/__pycache__/make.cpython-313.pyc +0 -0
  207. data/vendor/pygments-main/pygments/lexers/__pycache__/maple.cpython-313.pyc +0 -0
  208. data/vendor/pygments-main/pygments/lexers/__pycache__/markup.cpython-313.pyc +0 -0
  209. data/vendor/pygments-main/pygments/lexers/__pycache__/math.cpython-313.pyc +0 -0
  210. data/vendor/pygments-main/pygments/lexers/__pycache__/matlab.cpython-313.pyc +0 -0
  211. data/vendor/pygments-main/pygments/lexers/__pycache__/maxima.cpython-313.pyc +0 -0
  212. data/vendor/pygments-main/pygments/lexers/__pycache__/meson.cpython-313.pyc +0 -0
  213. data/vendor/pygments-main/pygments/lexers/__pycache__/mime.cpython-313.pyc +0 -0
  214. data/vendor/pygments-main/pygments/lexers/__pycache__/minecraft.cpython-313.pyc +0 -0
  215. data/vendor/pygments-main/pygments/lexers/__pycache__/mips.cpython-313.pyc +0 -0
  216. data/vendor/pygments-main/pygments/lexers/__pycache__/ml.cpython-313.pyc +0 -0
  217. data/vendor/pygments-main/pygments/lexers/__pycache__/modeling.cpython-313.pyc +0 -0
  218. data/vendor/pygments-main/pygments/lexers/__pycache__/modula2.cpython-313.pyc +0 -0
  219. data/vendor/pygments-main/pygments/lexers/__pycache__/mojo.cpython-313.pyc +0 -0
  220. data/vendor/pygments-main/pygments/lexers/__pycache__/monte.cpython-313.pyc +0 -0
  221. data/vendor/pygments-main/pygments/lexers/__pycache__/mosel.cpython-313.pyc +0 -0
  222. data/vendor/pygments-main/pygments/lexers/__pycache__/ncl.cpython-313.pyc +0 -0
  223. data/vendor/pygments-main/pygments/lexers/__pycache__/nimrod.cpython-313.pyc +0 -0
  224. data/vendor/pygments-main/pygments/lexers/__pycache__/nit.cpython-313.pyc +0 -0
  225. data/vendor/pygments-main/pygments/lexers/__pycache__/nix.cpython-313.pyc +0 -0
  226. data/vendor/pygments-main/pygments/lexers/__pycache__/numbair.cpython-313.pyc +0 -0
  227. data/vendor/pygments-main/pygments/lexers/__pycache__/oberon.cpython-313.pyc +0 -0
  228. data/vendor/pygments-main/pygments/lexers/__pycache__/objective.cpython-313.pyc +0 -0
  229. data/vendor/pygments-main/pygments/lexers/__pycache__/ooc.cpython-313.pyc +0 -0
  230. data/vendor/pygments-main/pygments/lexers/__pycache__/openscad.cpython-313.pyc +0 -0
  231. data/vendor/pygments-main/pygments/lexers/__pycache__/other.cpython-313.pyc +0 -0
  232. data/vendor/pygments-main/pygments/lexers/__pycache__/parasail.cpython-313.pyc +0 -0
  233. data/vendor/pygments-main/pygments/lexers/__pycache__/parsers.cpython-313.pyc +0 -0
  234. data/vendor/pygments-main/pygments/lexers/__pycache__/pascal.cpython-313.pyc +0 -0
  235. data/vendor/pygments-main/pygments/lexers/__pycache__/pawn.cpython-313.pyc +0 -0
  236. data/vendor/pygments-main/pygments/lexers/__pycache__/pddl.cpython-313.pyc +0 -0
  237. data/vendor/pygments-main/pygments/lexers/__pycache__/perl.cpython-313.pyc +0 -0
  238. data/vendor/pygments-main/pygments/lexers/__pycache__/phix.cpython-313.pyc +0 -0
  239. data/vendor/pygments-main/pygments/lexers/__pycache__/php.cpython-313.pyc +0 -0
  240. data/vendor/pygments-main/pygments/lexers/__pycache__/pointless.cpython-313.pyc +0 -0
  241. data/vendor/pygments-main/pygments/lexers/__pycache__/pony.cpython-313.pyc +0 -0
  242. data/vendor/pygments-main/pygments/lexers/__pycache__/praat.cpython-313.pyc +0 -0
  243. data/vendor/pygments-main/pygments/lexers/__pycache__/procfile.cpython-313.pyc +0 -0
  244. data/vendor/pygments-main/pygments/lexers/__pycache__/prolog.cpython-313.pyc +0 -0
  245. data/vendor/pygments-main/pygments/lexers/__pycache__/promql.cpython-313.pyc +0 -0
  246. data/vendor/pygments-main/pygments/lexers/__pycache__/prql.cpython-313.pyc +0 -0
  247. data/vendor/pygments-main/pygments/lexers/__pycache__/ptx.cpython-313.pyc +0 -0
  248. data/vendor/pygments-main/pygments/lexers/__pycache__/python.cpython-313.pyc +0 -0
  249. data/vendor/pygments-main/pygments/lexers/__pycache__/q.cpython-313.pyc +0 -0
  250. data/vendor/pygments-main/pygments/lexers/__pycache__/qlik.cpython-313.pyc +0 -0
  251. data/vendor/pygments-main/pygments/lexers/__pycache__/qvt.cpython-313.pyc +0 -0
  252. data/vendor/pygments-main/pygments/lexers/__pycache__/r.cpython-313.pyc +0 -0
  253. data/vendor/pygments-main/pygments/lexers/__pycache__/rdf.cpython-313.pyc +0 -0
  254. data/vendor/pygments-main/pygments/lexers/__pycache__/rebol.cpython-313.pyc +0 -0
  255. data/vendor/pygments-main/pygments/lexers/__pycache__/rego.cpython-313.pyc +0 -0
  256. data/vendor/pygments-main/pygments/lexers/__pycache__/resource.cpython-313.pyc +0 -0
  257. data/vendor/pygments-main/pygments/lexers/__pycache__/ride.cpython-313.pyc +0 -0
  258. data/vendor/pygments-main/pygments/lexers/__pycache__/rita.cpython-313.pyc +0 -0
  259. data/vendor/pygments-main/pygments/lexers/__pycache__/rnc.cpython-313.pyc +0 -0
  260. data/vendor/pygments-main/pygments/lexers/__pycache__/roboconf.cpython-313.pyc +0 -0
  261. data/vendor/pygments-main/pygments/lexers/__pycache__/robotframework.cpython-313.pyc +0 -0
  262. data/vendor/pygments-main/pygments/lexers/__pycache__/ruby.cpython-313.pyc +0 -0
  263. data/vendor/pygments-main/pygments/lexers/__pycache__/rust.cpython-313.pyc +0 -0
  264. data/vendor/pygments-main/pygments/lexers/__pycache__/sas.cpython-313.pyc +0 -0
  265. data/vendor/pygments-main/pygments/lexers/__pycache__/savi.cpython-313.pyc +0 -0
  266. data/vendor/pygments-main/pygments/lexers/__pycache__/scdoc.cpython-313.pyc +0 -0
  267. data/vendor/pygments-main/pygments/lexers/__pycache__/scripting.cpython-313.pyc +0 -0
  268. data/vendor/pygments-main/pygments/lexers/__pycache__/sgf.cpython-313.pyc +0 -0
  269. data/vendor/pygments-main/pygments/lexers/__pycache__/shell.cpython-313.pyc +0 -0
  270. data/vendor/pygments-main/pygments/lexers/__pycache__/sieve.cpython-313.pyc +0 -0
  271. data/vendor/pygments-main/pygments/lexers/__pycache__/slash.cpython-313.pyc +0 -0
  272. data/vendor/pygments-main/pygments/lexers/__pycache__/smalltalk.cpython-313.pyc +0 -0
  273. data/vendor/pygments-main/pygments/lexers/__pycache__/smithy.cpython-313.pyc +0 -0
  274. data/vendor/pygments-main/pygments/lexers/__pycache__/smv.cpython-313.pyc +0 -0
  275. data/vendor/pygments-main/pygments/lexers/__pycache__/snobol.cpython-313.pyc +0 -0
  276. data/vendor/pygments-main/pygments/lexers/__pycache__/solidity.cpython-313.pyc +0 -0
  277. data/vendor/pygments-main/pygments/lexers/__pycache__/soong.cpython-313.pyc +0 -0
  278. data/vendor/pygments-main/pygments/lexers/__pycache__/sophia.cpython-313.pyc +0 -0
  279. data/vendor/pygments-main/pygments/lexers/__pycache__/special.cpython-313.pyc +0 -0
  280. data/vendor/pygments-main/pygments/lexers/__pycache__/spice.cpython-313.pyc +0 -0
  281. data/vendor/pygments-main/pygments/lexers/__pycache__/sql.cpython-313.pyc +0 -0
  282. data/vendor/pygments-main/pygments/lexers/__pycache__/srcinfo.cpython-313.pyc +0 -0
  283. data/vendor/pygments-main/pygments/lexers/__pycache__/stata.cpython-313.pyc +0 -0
  284. data/vendor/pygments-main/pygments/lexers/__pycache__/supercollider.cpython-313.pyc +0 -0
  285. data/vendor/pygments-main/pygments/lexers/__pycache__/tablegen.cpython-313.pyc +0 -0
  286. data/vendor/pygments-main/pygments/lexers/__pycache__/tact.cpython-313.pyc +0 -0
  287. data/vendor/pygments-main/pygments/lexers/__pycache__/tal.cpython-313.pyc +0 -0
  288. data/vendor/pygments-main/pygments/lexers/__pycache__/tcl.cpython-313.pyc +0 -0
  289. data/vendor/pygments-main/pygments/lexers/__pycache__/teal.cpython-313.pyc +0 -0
  290. data/vendor/pygments-main/pygments/lexers/__pycache__/templates.cpython-313.pyc +0 -0
  291. data/vendor/pygments-main/pygments/lexers/__pycache__/teraterm.cpython-313.pyc +0 -0
  292. data/vendor/pygments-main/pygments/lexers/__pycache__/testing.cpython-313.pyc +0 -0
  293. data/vendor/pygments-main/pygments/lexers/__pycache__/text.cpython-313.pyc +0 -0
  294. data/vendor/pygments-main/pygments/lexers/__pycache__/textedit.cpython-313.pyc +0 -0
  295. data/vendor/pygments-main/pygments/lexers/__pycache__/textfmts.cpython-313.pyc +0 -0
  296. data/vendor/pygments-main/pygments/lexers/__pycache__/theorem.cpython-313.pyc +0 -0
  297. data/vendor/pygments-main/pygments/lexers/__pycache__/thingsdb.cpython-313.pyc +0 -0
  298. data/vendor/pygments-main/pygments/lexers/__pycache__/tlb.cpython-313.pyc +0 -0
  299. data/vendor/pygments-main/pygments/lexers/__pycache__/tls.cpython-313.pyc +0 -0
  300. data/vendor/pygments-main/pygments/lexers/__pycache__/tnt.cpython-313.pyc +0 -0
  301. data/vendor/pygments-main/pygments/lexers/__pycache__/trafficscript.cpython-313.pyc +0 -0
  302. data/vendor/pygments-main/pygments/lexers/__pycache__/typoscript.cpython-313.pyc +0 -0
  303. data/vendor/pygments-main/pygments/lexers/__pycache__/typst.cpython-313.pyc +0 -0
  304. data/vendor/pygments-main/pygments/lexers/__pycache__/ul4.cpython-313.pyc +0 -0
  305. data/vendor/pygments-main/pygments/lexers/__pycache__/unicon.cpython-313.pyc +0 -0
  306. data/vendor/pygments-main/pygments/lexers/__pycache__/urbi.cpython-313.pyc +0 -0
  307. data/vendor/pygments-main/pygments/lexers/__pycache__/usd.cpython-313.pyc +0 -0
  308. data/vendor/pygments-main/pygments/lexers/__pycache__/varnish.cpython-313.pyc +0 -0
  309. data/vendor/pygments-main/pygments/lexers/__pycache__/verification.cpython-313.pyc +0 -0
  310. data/vendor/pygments-main/pygments/lexers/__pycache__/verifpal.cpython-313.pyc +0 -0
  311. data/vendor/pygments-main/pygments/lexers/__pycache__/vip.cpython-313.pyc +0 -0
  312. data/vendor/pygments-main/pygments/lexers/__pycache__/vyper.cpython-313.pyc +0 -0
  313. data/vendor/pygments-main/pygments/lexers/__pycache__/web.cpython-313.pyc +0 -0
  314. data/vendor/pygments-main/pygments/lexers/__pycache__/webassembly.cpython-313.pyc +0 -0
  315. data/vendor/pygments-main/pygments/lexers/__pycache__/webidl.cpython-313.pyc +0 -0
  316. data/vendor/pygments-main/pygments/lexers/__pycache__/webmisc.cpython-313.pyc +0 -0
  317. data/vendor/pygments-main/pygments/lexers/__pycache__/wgsl.cpython-313.pyc +0 -0
  318. data/vendor/pygments-main/pygments/lexers/__pycache__/whiley.cpython-313.pyc +0 -0
  319. data/vendor/pygments-main/pygments/lexers/__pycache__/wowtoc.cpython-313.pyc +0 -0
  320. data/vendor/pygments-main/pygments/lexers/__pycache__/wren.cpython-313.pyc +0 -0
  321. data/vendor/pygments-main/pygments/lexers/__pycache__/x10.cpython-313.pyc +0 -0
  322. data/vendor/pygments-main/pygments/lexers/__pycache__/xorg.cpython-313.pyc +0 -0
  323. data/vendor/pygments-main/pygments/lexers/__pycache__/yang.cpython-313.pyc +0 -0
  324. data/vendor/pygments-main/pygments/lexers/__pycache__/yara.cpython-313.pyc +0 -0
  325. data/vendor/pygments-main/pygments/lexers/__pycache__/zig.cpython-313.pyc +0 -0
  326. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  327. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  328. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  329. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  330. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  331. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  332. data/vendor/pygments-main/pygments/lexers/_googlesql_builtins.py +918 -0
  333. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  334. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  335. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  336. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  337. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  338. data/vendor/pygments-main/pygments/lexers/_mapping.py +56 -13
  339. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  340. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  341. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  342. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  343. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  344. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  345. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  346. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  347. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  348. data/vendor/pygments-main/pygments/lexers/_sql_builtins.py +106 -0
  349. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  350. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  351. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  352. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  353. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  354. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  355. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  356. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  357. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  358. data/vendor/pygments-main/pygments/lexers/algebra.py +10 -13
  359. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  360. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  361. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  362. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  363. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  364. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  365. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  366. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  367. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  368. data/vendor/pygments-main/pygments/lexers/asm.py +48 -34
  369. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  370. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  371. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  372. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  373. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  374. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  375. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  376. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  377. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  378. data/vendor/pygments-main/pygments/lexers/bqn.py +112 -0
  379. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  380. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  381. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  382. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  383. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  384. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  385. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  386. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  387. data/vendor/pygments-main/pygments/lexers/codeql.py +80 -0
  388. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  389. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  390. data/vendor/pygments-main/pygments/lexers/configs.py +353 -110
  391. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  392. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  393. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  394. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  395. data/vendor/pygments-main/pygments/lexers/css.py +6 -6
  396. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  397. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  398. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  399. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  400. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  401. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  402. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  403. data/vendor/pygments-main/pygments/lexers/dotnet.py +58 -26
  404. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  405. data/vendor/pygments-main/pygments/lexers/dylan.py +9 -17
  406. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  407. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  408. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  409. data/vendor/pygments-main/pygments/lexers/elpi.py +45 -35
  410. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  411. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  412. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  413. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  414. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  415. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  416. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  417. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  418. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  419. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  420. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  421. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  422. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  423. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  424. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  425. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  426. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  427. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  428. data/vendor/pygments-main/pygments/lexers/gleam.py +74 -0
  429. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  430. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  431. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  432. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  433. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  434. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  435. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  436. data/vendor/pygments-main/pygments/lexers/hare.py +73 -0
  437. data/vendor/pygments-main/pygments/lexers/haskell.py +29 -34
  438. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  439. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  440. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  441. data/vendor/pygments-main/pygments/lexers/html.py +79 -14
  442. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  443. data/vendor/pygments-main/pygments/lexers/igor.py +306 -291
  444. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  445. data/vendor/pygments-main/pygments/lexers/installers.py +58 -33
  446. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  447. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  448. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  449. data/vendor/pygments-main/pygments/lexers/javascript.py +22 -19
  450. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  451. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  452. data/vendor/pygments-main/pygments/lexers/json5.py +83 -0
  453. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  454. data/vendor/pygments-main/pygments/lexers/jsx.py +100 -0
  455. data/vendor/pygments-main/pygments/lexers/julia.py +5 -5
  456. data/vendor/pygments-main/pygments/lexers/jvm.py +99 -117
  457. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  458. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  459. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  460. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  461. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  462. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  463. data/vendor/pygments-main/pygments/lexers/macaulay2.py +175 -100
  464. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  465. data/vendor/pygments-main/pygments/lexers/maple.py +291 -0
  466. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  467. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  468. data/vendor/pygments-main/pygments/lexers/matlab.py +14 -15
  469. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  470. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  471. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  472. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  473. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  474. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  475. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  476. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  477. data/vendor/pygments-main/pygments/lexers/mojo.py +707 -0
  478. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  479. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  480. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  481. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  482. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  483. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  484. data/vendor/pygments-main/pygments/lexers/numbair.py +63 -0
  485. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  486. data/vendor/pygments-main/pygments/lexers/objective.py +25 -17
  487. data/vendor/pygments-main/pygments/lexers/ooc.py +4 -5
  488. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  489. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  490. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  491. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  492. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  493. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  494. data/vendor/pygments-main/pygments/lexers/pddl.py +82 -0
  495. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  496. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  497. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  498. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  499. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  500. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  501. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  502. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  503. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  504. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  505. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  506. data/vendor/pygments-main/pygments/lexers/python.py +49 -46
  507. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  508. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  509. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  510. data/vendor/pygments-main/pygments/lexers/r.py +14 -8
  511. data/vendor/pygments-main/pygments/lexers/rdf.py +21 -15
  512. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  513. data/vendor/pygments-main/pygments/lexers/rego.py +57 -0
  514. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  515. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  516. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  517. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  518. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  519. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  520. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  521. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  522. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  523. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  524. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  525. data/vendor/pygments-main/pygments/lexers/scripting.py +385 -55
  526. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  527. data/vendor/pygments-main/pygments/lexers/shell.py +111 -129
  528. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  529. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  530. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  531. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  532. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  533. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  534. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  535. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  536. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  537. data/vendor/pygments-main/pygments/lexers/special.py +9 -3
  538. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  539. data/vendor/pygments-main/pygments/lexers/sql.py +224 -142
  540. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  541. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  542. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  543. data/vendor/pygments-main/pygments/lexers/tablegen.py +177 -0
  544. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  545. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  546. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  547. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  548. data/vendor/pygments-main/pygments/lexers/templates.py +133 -74
  549. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  550. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  551. data/vendor/pygments-main/pygments/lexers/text.py +3 -2
  552. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  553. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  554. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  555. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  556. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  557. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  558. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  559. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  560. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  561. data/vendor/pygments-main/pygments/lexers/typst.py +160 -0
  562. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  563. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  564. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  565. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  566. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  567. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  568. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  569. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  570. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  571. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  572. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  573. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  574. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  575. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  576. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  577. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  578. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  579. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  580. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  581. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  582. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  583. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  584. data/vendor/pygments-main/pygments/modeline.py +4 -4
  585. data/vendor/pygments-main/pygments/plugin.py +3 -19
  586. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  587. data/vendor/pygments-main/pygments/scanner.py +1 -1
  588. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  589. data/vendor/pygments-main/pygments/style.py +8 -2
  590. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  591. data/vendor/pygments-main/pygments/styles/__pycache__/__init__.cpython-313.pyc +0 -0
  592. data/vendor/pygments-main/pygments/styles/__pycache__/_mapping.cpython-313.pyc +0 -0
  593. data/vendor/pygments-main/pygments/styles/__pycache__/abap.cpython-313.pyc +0 -0
  594. data/vendor/pygments-main/pygments/styles/__pycache__/algol.cpython-313.pyc +0 -0
  595. data/vendor/pygments-main/pygments/styles/__pycache__/algol_nu.cpython-313.pyc +0 -0
  596. data/vendor/pygments-main/pygments/styles/__pycache__/arduino.cpython-313.pyc +0 -0
  597. data/vendor/pygments-main/pygments/styles/__pycache__/autumn.cpython-313.pyc +0 -0
  598. data/vendor/pygments-main/pygments/styles/__pycache__/borland.cpython-313.pyc +0 -0
  599. data/vendor/pygments-main/pygments/styles/__pycache__/bw.cpython-313.pyc +0 -0
  600. data/vendor/pygments-main/pygments/styles/__pycache__/coffee.cpython-313.pyc +0 -0
  601. data/vendor/pygments-main/pygments/styles/__pycache__/colorful.cpython-313.pyc +0 -0
  602. data/vendor/pygments-main/pygments/styles/__pycache__/default.cpython-313.pyc +0 -0
  603. data/vendor/pygments-main/pygments/styles/__pycache__/dracula.cpython-313.pyc +0 -0
  604. data/vendor/pygments-main/pygments/styles/__pycache__/emacs.cpython-313.pyc +0 -0
  605. data/vendor/pygments-main/pygments/styles/__pycache__/friendly.cpython-313.pyc +0 -0
  606. data/vendor/pygments-main/pygments/styles/__pycache__/friendly_grayscale.cpython-313.pyc +0 -0
  607. data/vendor/pygments-main/pygments/styles/__pycache__/fruity.cpython-313.pyc +0 -0
  608. data/vendor/pygments-main/pygments/styles/__pycache__/gh_dark.cpython-313.pyc +0 -0
  609. data/vendor/pygments-main/pygments/styles/__pycache__/gruvbox.cpython-313.pyc +0 -0
  610. data/vendor/pygments-main/pygments/styles/__pycache__/igor.cpython-313.pyc +0 -0
  611. data/vendor/pygments-main/pygments/styles/__pycache__/inkpot.cpython-313.pyc +0 -0
  612. data/vendor/pygments-main/pygments/styles/__pycache__/lightbulb.cpython-313.pyc +0 -0
  613. data/vendor/pygments-main/pygments/styles/__pycache__/lilypond.cpython-313.pyc +0 -0
  614. data/vendor/pygments-main/pygments/styles/__pycache__/lovelace.cpython-313.pyc +0 -0
  615. data/vendor/pygments-main/pygments/styles/__pycache__/manni.cpython-313.pyc +0 -0
  616. data/vendor/pygments-main/pygments/styles/__pycache__/material.cpython-313.pyc +0 -0
  617. data/vendor/pygments-main/pygments/styles/__pycache__/monokai.cpython-313.pyc +0 -0
  618. data/vendor/pygments-main/pygments/styles/__pycache__/murphy.cpython-313.pyc +0 -0
  619. data/vendor/pygments-main/pygments/styles/__pycache__/native.cpython-313.pyc +0 -0
  620. data/vendor/pygments-main/pygments/styles/__pycache__/nord.cpython-313.pyc +0 -0
  621. data/vendor/pygments-main/pygments/styles/__pycache__/onedark.cpython-313.pyc +0 -0
  622. data/vendor/pygments-main/pygments/styles/__pycache__/paraiso_dark.cpython-313.pyc +0 -0
  623. data/vendor/pygments-main/pygments/styles/__pycache__/paraiso_light.cpython-313.pyc +0 -0
  624. data/vendor/pygments-main/pygments/styles/__pycache__/pastie.cpython-313.pyc +0 -0
  625. data/vendor/pygments-main/pygments/styles/__pycache__/perldoc.cpython-313.pyc +0 -0
  626. data/vendor/pygments-main/pygments/styles/__pycache__/rainbow_dash.cpython-313.pyc +0 -0
  627. data/vendor/pygments-main/pygments/styles/__pycache__/rrt.cpython-313.pyc +0 -0
  628. data/vendor/pygments-main/pygments/styles/__pycache__/sas.cpython-313.pyc +0 -0
  629. data/vendor/pygments-main/pygments/styles/__pycache__/solarized.cpython-313.pyc +0 -0
  630. data/vendor/pygments-main/pygments/styles/__pycache__/staroffice.cpython-313.pyc +0 -0
  631. data/vendor/pygments-main/pygments/styles/__pycache__/stata_dark.cpython-313.pyc +0 -0
  632. data/vendor/pygments-main/pygments/styles/__pycache__/stata_light.cpython-313.pyc +0 -0
  633. data/vendor/pygments-main/pygments/styles/__pycache__/tango.cpython-313.pyc +0 -0
  634. data/vendor/pygments-main/pygments/styles/__pycache__/trac.cpython-313.pyc +0 -0
  635. data/vendor/pygments-main/pygments/styles/__pycache__/vim.cpython-313.pyc +0 -0
  636. data/vendor/pygments-main/pygments/styles/__pycache__/vs.cpython-313.pyc +0 -0
  637. data/vendor/pygments-main/pygments/styles/__pycache__/xcode.cpython-313.pyc +0 -0
  638. data/vendor/pygments-main/pygments/styles/__pycache__/zenburn.cpython-313.pyc +0 -0
  639. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  640. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  641. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  642. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  643. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  644. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  645. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  646. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  647. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  648. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  649. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  650. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  651. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  652. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  653. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  654. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  655. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  656. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  657. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  658. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  659. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  660. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  661. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  662. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  663. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  664. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  665. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  666. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  667. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  668. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  669. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  670. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  671. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  672. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  673. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  674. data/vendor/pygments-main/pygments/styles/rrt.py +9 -2
  675. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  676. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  677. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  678. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  679. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  680. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  681. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  682. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  683. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  684. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  685. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  686. data/vendor/pygments-main/pygments/token.py +2 -1
  687. data/vendor/pygments-main/pygments/unistring.py +5 -5
  688. data/vendor/pygments-main/pygments/util.py +13 -19
  689. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/METADATA +15 -13
  690. data/vendor/pygments-main/pygments-2.19.2.dist-info/RECORD +685 -0
  691. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/WHEEL +1 -2
  692. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info/licenses}/AUTHORS +21 -0
  693. metadata +390 -20
  694. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  695. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  696. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/INSTALLER +0 -0
  697. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/REQUESTED +0 -0
  698. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/entry_points.txt +0 -0
  699. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info/licenses}/LICENSE +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for scripting and embedded languages.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -16,11 +16,15 @@ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
16
  Number, Punctuation, Error, Whitespace, Other
17
17
  from pygments.util import get_bool_opt, get_list_opt
18
18
 
19
- __all__ = ['LuaLexer', 'MoonScriptLexer', 'ChaiscriptLexer', 'LSLLexer',
19
+ __all__ = ['LuaLexer', 'LuauLexer', 'MoonScriptLexer', 'ChaiscriptLexer', 'LSLLexer',
20
20
  'AppleScriptLexer', 'RexxLexer', 'MOOCodeLexer', 'HybrisLexer',
21
21
  'EasytrieveLexer', 'JclLexer', 'MiniScriptLexer']
22
22
 
23
23
 
24
+ def all_lua_builtins():
25
+ from pygments.lexers._lua_builtins import MODULES
26
+ return [w for values in MODULES.values() for w in values]
27
+
24
28
  class LuaLexer(RegexLexer):
25
29
  """
26
30
  For Lua source code.
@@ -49,11 +53,12 @@ class LuaLexer(RegexLexer):
49
53
  aliases = ['lua']
50
54
  filenames = ['*.lua', '*.wlua']
51
55
  mimetypes = ['text/x-lua', 'application/x-lua']
56
+ version_added = ''
52
57
 
53
58
  _comment_multiline = r'(?:--\[(?P<level>=*)\[[\w\W]*?\](?P=level)\])'
54
59
  _comment_single = r'(?:--.*$)'
55
- _space = r'(?:\s+)'
56
- _s = r'(?:%s|%s|%s)' % (_comment_multiline, _comment_single, _space)
60
+ _space = r'(?:\s+(?!\s))'
61
+ _s = rf'(?:{_comment_multiline}|{_comment_single}|{_space})'
57
62
  _name = r'(?:[^\W\d]\w*)'
58
63
 
59
64
  tokens = {
@@ -65,7 +70,7 @@ class LuaLexer(RegexLexer):
65
70
  'ws': [
66
71
  (_comment_multiline, Comment.Multiline),
67
72
  (_comment_single, Comment.Single),
68
- (_space, Text),
73
+ (_space, Whitespace),
69
74
  ],
70
75
  'base': [
71
76
  include('ws'),
@@ -81,27 +86,41 @@ class LuaLexer(RegexLexer):
81
86
  (r'::', Punctuation, 'label'),
82
87
  (r'\.{3}', Punctuation),
83
88
  (r'[=<>|~&+\-*/%#^]+|\.\.', Operator),
84
- (r'[\[\]{}().,:;]', Punctuation),
89
+ (r'[\[\]{}().,:;]+', Punctuation),
85
90
  (r'(and|or|not)\b', Operator.Word),
86
91
 
87
- ('(break|do|else|elseif|end|for|if|in|repeat|return|then|until|'
88
- r'while)\b', Keyword.Reserved),
92
+ (words([
93
+ 'break', 'do', 'else', 'elseif', 'end', 'for', 'if', 'in',
94
+ 'repeat', 'return', 'then', 'until', 'while'
95
+ ], suffix=r'\b'), Keyword.Reserved),
89
96
  (r'goto\b', Keyword.Reserved, 'goto'),
90
97
  (r'(local)\b', Keyword.Declaration),
91
98
  (r'(true|false|nil)\b', Keyword.Constant),
92
99
 
93
100
  (r'(function)\b', Keyword.Reserved, 'funcname'),
94
101
 
95
- (r'[A-Za-z_]\w*(\.[A-Za-z_]\w*)?', Name),
102
+ (words(all_lua_builtins(), suffix=r"\b"), Name.Builtin),
103
+ (fr'[A-Za-z_]\w*(?={_s}*[.:])', Name.Variable, 'varname'),
104
+ (fr'[A-Za-z_]\w*(?={_s}*\()', Name.Function),
105
+ (r'[A-Za-z_]\w*', Name.Variable),
96
106
 
97
107
  ("'", String.Single, combined('stringescape', 'sqs')),
98
108
  ('"', String.Double, combined('stringescape', 'dqs'))
99
109
  ],
100
110
 
111
+ 'varname': [
112
+ include('ws'),
113
+ (r'\.\.', Operator, '#pop'),
114
+ (r'[.:]', Punctuation),
115
+ (rf'{_name}(?={_s}*[.:])', Name.Property),
116
+ (rf'{_name}(?={_s}*\()', Name.Function, '#pop'),
117
+ (_name, Name.Property, '#pop'),
118
+ ],
119
+
101
120
  'funcname': [
102
121
  include('ws'),
103
122
  (r'[.:]', Punctuation),
104
- (r'%s(?=%s*[.:])' % (_name, _s), Name.Class),
123
+ (rf'{_name}(?={_s}*[.:])', Name.Class),
105
124
  (_name, Name.Function, '#pop'),
106
125
  # inline function
107
126
  (r'\(', Punctuation, '#pop'),
@@ -150,23 +169,335 @@ class LuaLexer(RegexLexer):
150
169
  def get_tokens_unprocessed(self, text):
151
170
  for index, token, value in \
152
171
  RegexLexer.get_tokens_unprocessed(self, text):
153
- if token is Name:
154
- if value in self._functions:
155
- yield index, Name.Builtin, value
156
- continue
157
- elif '.' in value:
172
+ if token is Name.Builtin and value not in self._functions:
173
+ if '.' in value:
158
174
  a, b = value.split('.')
159
175
  yield index, Name, a
160
176
  yield index + len(a), Punctuation, '.'
161
177
  yield index + len(a) + 1, Name, b
162
- continue
178
+ else:
179
+ yield index, Name, value
180
+ continue
181
+ yield index, token, value
182
+
183
+ def _luau_make_expression(should_pop, _s):
184
+ temp_list = [
185
+ (r'0[xX][\da-fA-F_]*', Number.Hex, '#pop'),
186
+ (r'0[bB][\d_]*', Number.Bin, '#pop'),
187
+ (r'\.?\d[\d_]*(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?', Number.Float, '#pop'),
188
+
189
+ (words((
190
+ 'true', 'false', 'nil'
191
+ ), suffix=r'\b'), Keyword.Constant, '#pop'),
192
+
193
+ (r'\[(=*)\[[.\n]*?\]\1\]', String, '#pop'),
194
+
195
+ (r'(\.)([a-zA-Z_]\w*)(?=%s*[({"\'])', bygroups(Punctuation, Name.Function), '#pop'),
196
+ (r'(\.)([a-zA-Z_]\w*)', bygroups(Punctuation, Name.Variable), '#pop'),
197
+
198
+ (rf'[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*(?={_s}*[({{"\'])', Name.Other, '#pop'),
199
+ (r'[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*', Name, '#pop'),
200
+ ]
201
+ if should_pop:
202
+ return temp_list
203
+ return [entry[:2] for entry in temp_list]
204
+
205
+ def _luau_make_expression_special(should_pop):
206
+ temp_list = [
207
+ (r'\{', Punctuation, ('#pop', 'closing_brace_base', 'expression')),
208
+ (r'\(', Punctuation, ('#pop', 'closing_parenthesis_base', 'expression')),
209
+
210
+ (r'::?', Punctuation, ('#pop', 'type_end', 'type_start')),
211
+
212
+ (r"'", String.Single, ('#pop', 'string_single')),
213
+ (r'"', String.Double, ('#pop', 'string_double')),
214
+ (r'`', String.Backtick, ('#pop', 'string_interpolated')),
215
+ ]
216
+ if should_pop:
217
+ return temp_list
218
+ return [(entry[0], entry[1], entry[2][1:]) for entry in temp_list]
219
+
220
+ class LuauLexer(RegexLexer):
221
+ """
222
+ For Luau source code.
223
+
224
+ Additional options accepted:
225
+
226
+ `include_luau_builtins`
227
+ If given and ``True``, automatically highlight Luau builtins
228
+ (default: ``True``).
229
+ `include_roblox_builtins`
230
+ If given and ``True``, automatically highlight Roblox-specific builtins
231
+ (default: ``False``).
232
+ `additional_builtins`
233
+ If given, must be a list of additional builtins to highlight.
234
+ `disabled_builtins`
235
+ If given, must be a list of builtins that will not be highlighted.
236
+ """
237
+
238
+ name = 'Luau'
239
+ url = 'https://luau-lang.org/'
240
+ aliases = ['luau']
241
+ filenames = ['*.luau']
242
+ version_added = '2.18'
243
+
244
+ _comment_multiline = r'(?:--\[(?P<level>=*)\[[\w\W]*?\](?P=level)\])'
245
+ _comment_single = r'(?:--.*$)'
246
+ _s = r'(?:{}|{}|{})'.format(_comment_multiline, _comment_single, r'\s+')
247
+
248
+ tokens = {
249
+ 'root': [
250
+ (r'#!.*', Comment.Hashbang, 'base'),
251
+ default('base'),
252
+ ],
253
+
254
+ 'ws': [
255
+ (_comment_multiline, Comment.Multiline),
256
+ (_comment_single, Comment.Single),
257
+ (r'\s+', Whitespace),
258
+ ],
259
+
260
+ 'base': [
261
+ include('ws'),
262
+
263
+ *_luau_make_expression_special(False),
264
+ (r'\.\.\.', Punctuation),
265
+
266
+ (rf'type\b(?={_s}+[a-zA-Z_])', Keyword.Reserved, 'type_declaration'),
267
+ (rf'export\b(?={_s}+[a-zA-Z_])', Keyword.Reserved),
268
+
269
+ (r'(?:\.\.|//|[+\-*\/%^<>=])=?', Operator, 'expression'),
270
+ (r'~=', Operator, 'expression'),
271
+
272
+ (words((
273
+ 'and', 'or', 'not'
274
+ ), suffix=r'\b'), Operator.Word, 'expression'),
275
+
276
+ (words((
277
+ 'elseif', 'for', 'if', 'in', 'repeat', 'return', 'until',
278
+ 'while'), suffix=r'\b'), Keyword.Reserved, 'expression'),
279
+ (r'local\b', Keyword.Declaration, 'expression'),
280
+
281
+ (r'function\b', Keyword.Reserved, ('expression', 'func_name')),
282
+
283
+ (r'[\])};]+', Punctuation),
284
+
285
+ include('expression_static'),
286
+ *_luau_make_expression(False, _s),
287
+
288
+ (r'[\[.,]', Punctuation, 'expression'),
289
+ ],
290
+ 'expression_static': [
291
+ (words((
292
+ 'break', 'continue', 'do', 'else', 'elseif', 'end', 'for',
293
+ 'if', 'in', 'repeat', 'return', 'then', 'until', 'while'),
294
+ suffix=r'\b'), Keyword.Reserved),
295
+ ],
296
+ 'expression': [
297
+ include('ws'),
298
+
299
+ (r'if\b', Keyword.Reserved, ('ternary', 'expression')),
300
+
301
+ (r'local\b', Keyword.Declaration),
302
+ *_luau_make_expression_special(True),
303
+ (r'\.\.\.', Punctuation, '#pop'),
304
+
305
+ (r'function\b', Keyword.Reserved, 'func_name'),
306
+
307
+ include('expression_static'),
308
+ *_luau_make_expression(True, _s),
309
+
310
+ default('#pop'),
311
+ ],
312
+ 'ternary': [
313
+ include('ws'),
314
+
315
+ (r'else\b', Keyword.Reserved, '#pop'),
316
+ (words((
317
+ 'then', 'elseif',
318
+ ), suffix=r'\b'), Operator.Reserved, 'expression'),
319
+
320
+ default('#pop'),
321
+ ],
322
+
323
+ 'closing_brace_pop': [
324
+ (r'\}', Punctuation, '#pop'),
325
+ ],
326
+ 'closing_parenthesis_pop': [
327
+ (r'\)', Punctuation, '#pop'),
328
+ ],
329
+ 'closing_gt_pop': [
330
+ (r'>', Punctuation, '#pop'),
331
+ ],
332
+
333
+ 'closing_parenthesis_base': [
334
+ include('closing_parenthesis_pop'),
335
+ include('base'),
336
+ ],
337
+ 'closing_parenthesis_type': [
338
+ include('closing_parenthesis_pop'),
339
+ include('type'),
340
+ ],
341
+ 'closing_brace_base': [
342
+ include('closing_brace_pop'),
343
+ include('base'),
344
+ ],
345
+ 'closing_brace_type': [
346
+ include('closing_brace_pop'),
347
+ include('type'),
348
+ ],
349
+ 'closing_gt_type': [
350
+ include('closing_gt_pop'),
351
+ include('type'),
352
+ ],
353
+
354
+ 'string_escape': [
355
+ (r'\\z\s*', String.Escape),
356
+ (r'\\(?:[abfnrtvz\\"\'`\{\n])|[\r\n]{1,2}|x[\da-fA-F]{2}|\d{1,3}|'
357
+ r'u\{\}[\da-fA-F]*\}', String.Escape),
358
+ ],
359
+ 'string_single': [
360
+ include('string_escape'),
361
+
362
+ (r"'", String.Single, "#pop"),
363
+ (r"[^\\']+", String.Single),
364
+ ],
365
+ 'string_double': [
366
+ include('string_escape'),
367
+
368
+ (r'"', String.Double, "#pop"),
369
+ (r'[^\\"]+', String.Double),
370
+ ],
371
+ 'string_interpolated': [
372
+ include('string_escape'),
373
+
374
+ (r'\{', Punctuation, ('closing_brace_base', 'expression')),
375
+
376
+ (r'`', String.Backtick, "#pop"),
377
+ (r'[^\\`\{]+', String.Backtick),
378
+ ],
379
+
380
+ 'func_name': [
381
+ include('ws'),
382
+
383
+ (r'[.:]', Punctuation),
384
+ (rf'[a-zA-Z_]\w*(?={_s}*[.:])', Name.Class),
385
+ (r'[a-zA-Z_]\w*', Name.Function),
386
+
387
+ (r'<', Punctuation, 'closing_gt_type'),
388
+
389
+ (r'\(', Punctuation, '#pop'),
390
+ ],
391
+
392
+ 'type': [
393
+ include('ws'),
394
+
395
+ (r'\(', Punctuation, 'closing_parenthesis_type'),
396
+ (r'\{', Punctuation, 'closing_brace_type'),
397
+ (r'<', Punctuation, 'closing_gt_type'),
398
+
399
+ (r"'", String.Single, 'string_single'),
400
+ (r'"', String.Double, 'string_double'),
401
+
402
+ (r'[|&\.,\[\]:=]+', Punctuation),
403
+ (r'->', Punctuation),
404
+
405
+ (r'typeof\(', Name.Builtin, ('closing_parenthesis_base',
406
+ 'expression')),
407
+ (r'[a-zA-Z_]\w*', Name.Class),
408
+ ],
409
+ 'type_start': [
410
+ include('ws'),
411
+
412
+ (r'\(', Punctuation, ('#pop', 'closing_parenthesis_type')),
413
+ (r'\{', Punctuation, ('#pop', 'closing_brace_type')),
414
+ (r'<', Punctuation, ('#pop', 'closing_gt_type')),
415
+
416
+ (r"'", String.Single, ('#pop', 'string_single')),
417
+ (r'"', String.Double, ('#pop', 'string_double')),
418
+
419
+ (r'typeof\(', Name.Builtin, ('#pop', 'closing_parenthesis_base',
420
+ 'expression')),
421
+ (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
422
+ ],
423
+ 'type_end': [
424
+ include('ws'),
425
+
426
+ (r'[|&\.]', Punctuation, 'type_start'),
427
+ (r'->', Punctuation, 'type_start'),
428
+
429
+ (r'<', Punctuation, 'closing_gt_type'),
430
+
431
+ default('#pop'),
432
+ ],
433
+ 'type_declaration': [
434
+ include('ws'),
435
+
436
+ (r'[a-zA-Z_]\w*', Name.Class),
437
+ (r'<', Punctuation, 'closing_gt_type'),
438
+
439
+ (r'=', Punctuation, ('#pop', 'type_end', 'type_start')),
440
+ ],
441
+ }
442
+
443
+ def __init__(self, **options):
444
+ self.include_luau_builtins = get_bool_opt(
445
+ options, 'include_luau_builtins', True)
446
+ self.include_roblox_builtins = get_bool_opt(
447
+ options, 'include_roblox_builtins', False)
448
+ self.additional_builtins = get_list_opt(options, 'additional_builtins', [])
449
+ self.disabled_builtins = get_list_opt(options, 'disabled_builtins', [])
450
+
451
+ self._builtins = set(self.additional_builtins)
452
+ if self.include_luau_builtins:
453
+ from pygments.lexers._luau_builtins import LUAU_BUILTINS
454
+ self._builtins.update(LUAU_BUILTINS)
455
+ if self.include_roblox_builtins:
456
+ from pygments.lexers._luau_builtins import ROBLOX_BUILTINS
457
+ self._builtins.update(ROBLOX_BUILTINS)
458
+ if self.additional_builtins:
459
+ self._builtins.update(self.additional_builtins)
460
+ self._builtins.difference_update(self.disabled_builtins)
461
+
462
+ RegexLexer.__init__(self, **options)
463
+
464
+ def get_tokens_unprocessed(self, text):
465
+ for index, token, value in \
466
+ RegexLexer.get_tokens_unprocessed(self, text):
467
+ if token is Name or token is Name.Other:
468
+ split_value = value.split('.')
469
+ complete_value = []
470
+ new_index = index
471
+ for position in range(len(split_value), 0, -1):
472
+ potential_string = '.'.join(split_value[:position])
473
+ if potential_string in self._builtins:
474
+ yield index, Name.Builtin, potential_string
475
+ new_index += len(potential_string)
476
+
477
+ if complete_value:
478
+ yield new_index, Punctuation, '.'
479
+ new_index += 1
480
+ break
481
+ complete_value.insert(0, split_value[position - 1])
482
+
483
+ for position, substring in enumerate(complete_value):
484
+ if position + 1 == len(complete_value):
485
+ if token is Name:
486
+ yield new_index, Name.Variable, substring
487
+ continue
488
+ yield new_index, Name.Function, substring
489
+ continue
490
+ yield new_index, Name.Variable, substring
491
+ new_index += len(substring)
492
+ yield new_index, Punctuation, '.'
493
+ new_index += 1
494
+
495
+ continue
163
496
  yield index, token, value
164
497
 
165
498
  class MoonScriptLexer(LuaLexer):
166
499
  """
167
500
  For MoonScript source code.
168
-
169
- .. versionadded:: 1.5
170
501
  """
171
502
 
172
503
  name = 'MoonScript'
@@ -174,6 +505,7 @@ class MoonScriptLexer(LuaLexer):
174
505
  aliases = ['moonscript', 'moon']
175
506
  filenames = ['*.moon']
176
507
  mimetypes = ['text/x-moonscript', 'application/x-moonscript']
508
+ version_added = '1.5'
177
509
 
178
510
  tokens = {
179
511
  'root': [
@@ -206,7 +538,8 @@ class MoonScriptLexer(LuaLexer):
206
538
  (r'(self)\b', Name.Builtin.Pseudo),
207
539
  (r'@@?([a-zA-Z_]\w*)?', Name.Variable.Class),
208
540
  (r'[A-Z]\w*', Name.Class), # proper name
209
- (r'[A-Za-z_]\w*(\.[A-Za-z_]\w*)?', Name),
541
+ (words(all_lua_builtins(), suffix=r"\b"), Name.Builtin),
542
+ (r'[A-Za-z_]\w*', Name),
210
543
  ("'", String.Single, combined('stringescape', 'sqs')),
211
544
  ('"', String.Double, combined('stringescape', 'dqs'))
212
545
  ],
@@ -234,8 +567,6 @@ class MoonScriptLexer(LuaLexer):
234
567
  class ChaiscriptLexer(RegexLexer):
235
568
  """
236
569
  For ChaiScript source code.
237
-
238
- .. versionadded:: 2.0
239
570
  """
240
571
 
241
572
  name = 'ChaiScript'
@@ -243,6 +574,7 @@ class ChaiscriptLexer(RegexLexer):
243
574
  aliases = ['chaiscript', 'chai']
244
575
  filenames = ['*.chai']
245
576
  mimetypes = ['text/x-chaiscript', 'application/x-chaiscript']
577
+ version_added = '2.0'
246
578
 
247
579
  flags = re.DOTALL | re.MULTILINE
248
580
 
@@ -301,14 +633,14 @@ class ChaiscriptLexer(RegexLexer):
301
633
  class LSLLexer(RegexLexer):
302
634
  """
303
635
  For Second Life's Linden Scripting Language source code.
304
-
305
- .. versionadded:: 2.0
306
636
  """
307
637
 
308
638
  name = 'LSL'
309
639
  aliases = ['lsl']
310
640
  filenames = ['*.lsl']
311
641
  mimetypes = ['text/x-lsl']
642
+ url = 'https://wiki.secondlife.com/wiki/Linden_Scripting_Language'
643
+ version_added = '2.0'
312
644
 
313
645
  flags = re.MULTILINE
314
646
 
@@ -389,14 +721,13 @@ class AppleScriptLexer(RegexLexer):
389
721
  <http://developer.apple.com/documentation/AppleScript/
390
722
  Reference/StudioReference>`_.
391
723
  Contributed by Andreas Amann <aamann@mac.com>.
392
-
393
- .. versionadded:: 1.0
394
724
  """
395
725
 
396
726
  name = 'AppleScript'
397
727
  url = 'https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html'
398
728
  aliases = ['applescript']
399
729
  filenames = ['*.applescript']
730
+ version_added = '1.0'
400
731
 
401
732
  flags = re.MULTILINE | re.DOTALL
402
733
 
@@ -672,26 +1003,26 @@ class AppleScriptLexer(RegexLexer):
672
1003
  r'numeric strings|punctuation|white space)',
673
1004
  bygroups(Keyword, Name.Builtin)),
674
1005
  (r'(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)', Operator),
675
- (r"\b(%s)\b" % '|'.join(Operators), Operator.Word),
1006
+ (r"\b({})\b".format('|'.join(Operators)), Operator.Word),
676
1007
  (r'^(\s*(?:on|end)\s+)'
677
- r'(%s)' % '|'.join(StudioEvents[::-1]),
1008
+ r'({})'.format('|'.join(StudioEvents[::-1])),
678
1009
  bygroups(Keyword, Name.Function)),
679
1010
  (r'^(\s*)(in|on|script|to)(\s+)', bygroups(Text, Keyword, Text)),
680
- (r'\b(as )(%s)\b' % '|'.join(Classes),
1011
+ (r'\b(as )({})\b'.format('|'.join(Classes)),
681
1012
  bygroups(Keyword, Name.Class)),
682
- (r'\b(%s)\b' % '|'.join(Literals), Name.Constant),
683
- (r'\b(%s)\b' % '|'.join(Commands), Name.Builtin),
684
- (r'\b(%s)\b' % '|'.join(Control), Keyword),
685
- (r'\b(%s)\b' % '|'.join(Declarations), Keyword),
686
- (r'\b(%s)\b' % '|'.join(Reserved), Name.Builtin),
687
- (r'\b(%s)s?\b' % '|'.join(BuiltIn), Name.Builtin),
688
- (r'\b(%s)\b' % '|'.join(HandlerParams), Name.Builtin),
689
- (r'\b(%s)\b' % '|'.join(StudioProperties), Name.Attribute),
690
- (r'\b(%s)s?\b' % '|'.join(StudioClasses), Name.Builtin),
691
- (r'\b(%s)\b' % '|'.join(StudioCommands), Name.Builtin),
692
- (r'\b(%s)\b' % '|'.join(References), Name.Builtin),
1013
+ (r'\b({})\b'.format('|'.join(Literals)), Name.Constant),
1014
+ (r'\b({})\b'.format('|'.join(Commands)), Name.Builtin),
1015
+ (r'\b({})\b'.format('|'.join(Control)), Keyword),
1016
+ (r'\b({})\b'.format('|'.join(Declarations)), Keyword),
1017
+ (r'\b({})\b'.format('|'.join(Reserved)), Name.Builtin),
1018
+ (r'\b({})s?\b'.format('|'.join(BuiltIn)), Name.Builtin),
1019
+ (r'\b({})\b'.format('|'.join(HandlerParams)), Name.Builtin),
1020
+ (r'\b({})\b'.format('|'.join(StudioProperties)), Name.Attribute),
1021
+ (r'\b({})s?\b'.format('|'.join(StudioClasses)), Name.Builtin),
1022
+ (r'\b({})\b'.format('|'.join(StudioCommands)), Name.Builtin),
1023
+ (r'\b({})\b'.format('|'.join(References)), Name.Builtin),
693
1024
  (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
694
- (r'\b(%s)\b' % Identifiers, Name.Variable),
1025
+ (rf'\b({Identifiers})\b', Name.Variable),
695
1026
  (r'[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?', Number.Float),
696
1027
  (r'[-+]?\d+', Number.Integer),
697
1028
  ],
@@ -710,14 +1041,13 @@ class RexxLexer(RegexLexer):
710
1041
  a wide range of different platforms with its roots found on mainframe
711
1042
  systems. It is popular for I/O- and data based tasks and can act as glue
712
1043
  language to bind different applications together.
713
-
714
- .. versionadded:: 2.0
715
1044
  """
716
1045
  name = 'Rexx'
717
1046
  url = 'http://www.rexxinfo.org/'
718
1047
  aliases = ['rexx', 'arexx']
719
1048
  filenames = ['*.rexx', '*.rex', '*.rx', '*.arexx']
720
1049
  mimetypes = ['text/x-rexx']
1050
+ version_added = '2.0'
721
1051
  flags = re.IGNORECASE
722
1052
 
723
1053
  tokens = {
@@ -781,7 +1111,8 @@ class RexxLexer(RegexLexer):
781
1111
  ]
782
1112
  }
783
1113
 
784
- _c = lambda s: re.compile(s, re.MULTILINE)
1114
+ def _c(s):
1115
+ return re.compile(s, re.MULTILINE)
785
1116
  _ADDRESS_COMMAND_PATTERN = _c(r'^\s*address\s+command\b')
786
1117
  _ADDRESS_PATTERN = _c(r'^\s*address\s+')
787
1118
  _DO_WHILE_PATTERN = _c(r'^\s*do\s+while\b')
@@ -821,14 +1152,13 @@ class RexxLexer(RegexLexer):
821
1152
  class MOOCodeLexer(RegexLexer):
822
1153
  """
823
1154
  For MOOCode (the MOO scripting language).
824
-
825
- .. versionadded:: 0.9
826
1155
  """
827
1156
  name = 'MOOCode'
828
1157
  url = 'http://www.moo.mud.org/'
829
1158
  filenames = ['*.moo']
830
1159
  aliases = ['moocode', 'moo']
831
1160
  mimetypes = ['text/x-moocode']
1161
+ version_added = '0.9'
832
1162
 
833
1163
  tokens = {
834
1164
  'root': [
@@ -864,14 +1194,14 @@ class MOOCodeLexer(RegexLexer):
864
1194
  class HybrisLexer(RegexLexer):
865
1195
  """
866
1196
  For Hybris source code.
867
-
868
- .. versionadded:: 1.4
869
1197
  """
870
1198
 
871
1199
  name = 'Hybris'
872
- aliases = ['hybris', 'hy']
873
- filenames = ['*.hy', '*.hyb']
1200
+ aliases = ['hybris']
1201
+ filenames = ['*.hyb']
874
1202
  mimetypes = ['text/x-hybris', 'application/x-hybris']
1203
+ url = 'https://github.com/evilsocket/hybris'
1204
+ version_added = '1.4'
875
1205
 
876
1206
  flags = re.MULTILINE | re.DOTALL
877
1207
 
@@ -962,13 +1292,13 @@ class EasytrieveLexer(RegexLexer):
962
1292
  converting sequential data. Furthermore it can layout data for reports.
963
1293
  It is mainly used on mainframe platforms and can access several of the
964
1294
  mainframe's native file formats. It is somewhat comparable to awk.
965
-
966
- .. versionadded:: 2.1
967
1295
  """
968
1296
  name = 'Easytrieve'
969
1297
  aliases = ['easytrieve']
970
1298
  filenames = ['*.ezt', '*.mac']
971
1299
  mimetypes = ['text/x-easytrieve']
1300
+ url = 'https://www.broadcom.com/products/mainframe/application-development/easytrieve-report-generator'
1301
+ version_added = '2.1'
972
1302
  flags = 0
973
1303
 
974
1304
  # Note: We cannot use r'\b' at the start and end of keywords because
@@ -1154,13 +1484,14 @@ class JclLexer(RegexLexer):
1154
1484
  is a scripting language used on mainframe platforms to instruct the system
1155
1485
  on how to run a batch job or start a subsystem. It is somewhat
1156
1486
  comparable to MS DOS batch and Unix shell scripts.
1157
-
1158
- .. versionadded:: 2.1
1159
1487
  """
1160
1488
  name = 'JCL'
1161
1489
  aliases = ['jcl']
1162
1490
  filenames = ['*.jcl']
1163
1491
  mimetypes = ['text/x-jcl']
1492
+ url = 'https://en.wikipedia.org/wiki/Job_Control_Language'
1493
+ version_added = '2.1'
1494
+
1164
1495
  flags = re.IGNORECASE
1165
1496
 
1166
1497
  tokens = {
@@ -1234,8 +1565,6 @@ class JclLexer(RegexLexer):
1234
1565
  class MiniScriptLexer(RegexLexer):
1235
1566
  """
1236
1567
  For MiniScript source code.
1237
-
1238
- .. versionadded:: 2.6
1239
1568
  """
1240
1569
 
1241
1570
  name = 'MiniScript'
@@ -1243,6 +1572,7 @@ class MiniScriptLexer(RegexLexer):
1243
1572
  aliases = ['miniscript', 'ms']
1244
1573
  filenames = ['*.ms']
1245
1574
  mimetypes = ['text/x-minicript', 'application/x-miniscript']
1575
+ version_added = '2.6'
1246
1576
 
1247
1577
  tokens = {
1248
1578
  'root': [
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for Smart Game Format (sgf) file format.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -20,13 +20,12 @@ class SmartGameFormatLexer(RegexLexer):
20
20
 
21
21
  The format is used to store game records of board games for two players
22
22
  (mainly Go game).
23
-
24
- .. versionadded:: 2.4
25
23
  """
26
24
  name = 'SmartGameFormat'
27
25
  url = 'https://www.red-bean.com/sgf/'
28
26
  aliases = ['sgf']
29
27
  filenames = ['*.sgf']
28
+ version_added = '2.4'
30
29
 
31
30
  tokens = {
32
31
  'root': [