pygments.rb 2.3.1 → 2.4.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 (324) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.rubocop.yml +7 -0
  4. data/CHANGELOG.adoc +4 -0
  5. data/README.adoc +1 -1
  6. data/bench.rb +1 -1
  7. data/lib/pygments/popen.rb +3 -7
  8. data/lib/pygments/version.rb +1 -1
  9. data/pygments.rb.gemspec +2 -2
  10. data/test/test_pygments.rb +0 -19
  11. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/AUTHORS +21 -1
  12. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/LICENSE +1 -1
  13. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/METADATA +19 -11
  14. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +614 -0
  15. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/WHEEL +1 -1
  16. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/entry_points.txt +0 -1
  17. data/vendor/pygments-main/bin/pygmentize +1 -1
  18. data/vendor/pygments-main/pygments/__init__.py +20 -22
  19. data/vendor/pygments-main/pygments/__main__.py +1 -1
  20. data/vendor/pygments-main/pygments/cmdline.py +74 -8
  21. data/vendor/pygments-main/pygments/console.py +1 -1
  22. data/vendor/pygments-main/pygments/filter.py +1 -1
  23. data/vendor/pygments-main/pygments/filters/__init__.py +6 -3
  24. data/vendor/pygments-main/pygments/formatter.py +41 -11
  25. data/vendor/pygments-main/pygments/formatters/__init__.py +21 -16
  26. data/vendor/pygments-main/pygments/formatters/_mapping.py +5 -65
  27. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  28. data/vendor/pygments-main/pygments/formatters/groff.py +170 -0
  29. data/vendor/pygments-main/pygments/formatters/html.py +54 -32
  30. data/vendor/pygments-main/pygments/formatters/img.py +9 -5
  31. data/vendor/pygments-main/pygments/formatters/irc.py +6 -33
  32. data/vendor/pygments-main/pygments/formatters/latex.py +24 -14
  33. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  34. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
  35. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  36. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  37. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -3
  38. data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -4
  39. data/vendor/pygments-main/pygments/lexer.py +101 -32
  40. data/vendor/pygments-main/pygments/lexers/__init__.py +50 -29
  41. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +103 -0
  42. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  45. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +21 -6
  46. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +558 -0
  47. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +10 -0
  48. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +4932 -0
  50. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +11 -18
  51. data/vendor/pygments-main/pygments/lexers/_mapping.py +71 -82
  52. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +58 -4
  54. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +408 -1835
  56. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +70 -8
  57. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +666 -0
  58. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1609 -0
  59. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3 -3
  60. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +9 -18
  61. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +185 -94
  62. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  66. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  67. data/vendor/pygments-main/pygments/lexers/actionscript.py +15 -14
  68. data/vendor/pygments-main/pygments/lexers/ada.py +144 -0
  69. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  70. data/vendor/pygments-main/pygments/lexers/algebra.py +72 -9
  71. data/vendor/pygments-main/pygments/lexers/ambient.py +8 -7
  72. data/vendor/pygments-main/pygments/lexers/amdgpu.py +4 -3
  73. data/vendor/pygments-main/pygments/lexers/ampl.py +10 -8
  74. data/vendor/pygments-main/pygments/lexers/apdlexer.py +164 -20
  75. data/vendor/pygments-main/pygments/lexers/apl.py +6 -5
  76. data/vendor/pygments-main/pygments/lexers/archetype.py +23 -21
  77. data/vendor/pygments-main/pygments/lexers/arrow.py +10 -9
  78. data/vendor/pygments-main/pygments/lexers/arturo.py +250 -0
  79. data/vendor/pygments-main/pygments/lexers/asc.py +9 -5
  80. data/vendor/pygments-main/pygments/lexers/asm.py +68 -63
  81. data/vendor/pygments-main/pygments/lexers/automation.py +7 -5
  82. data/vendor/pygments-main/pygments/lexers/bare.py +20 -21
  83. data/vendor/pygments-main/pygments/lexers/basic.py +45 -41
  84. data/vendor/pygments-main/pygments/lexers/bdd.py +58 -0
  85. data/vendor/pygments-main/pygments/lexers/berry.py +99 -0
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +6 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +4 -8
  88. data/vendor/pygments-main/pygments/lexers/business.py +18 -18
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +80 -40
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +21 -19
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +6 -8
  92. data/vendor/pygments-main/pygments/lexers/carbon.py +96 -0
  93. data/vendor/pygments-main/pygments/lexers/cddl.py +16 -33
  94. data/vendor/pygments-main/pygments/lexers/chapel.py +14 -9
  95. data/vendor/pygments-main/pygments/lexers/clean.py +3 -2
  96. data/vendor/pygments-main/pygments/lexers/comal.py +80 -0
  97. data/vendor/pygments-main/pygments/lexers/compiled.py +3 -2
  98. data/vendor/pygments-main/pygments/lexers/configs.py +235 -120
  99. data/vendor/pygments-main/pygments/lexers/console.py +5 -4
  100. data/vendor/pygments-main/pygments/lexers/cplint.py +44 -0
  101. data/vendor/pygments-main/pygments/lexers/crystal.py +22 -23
  102. data/vendor/pygments-main/pygments/lexers/csound.py +19 -17
  103. data/vendor/pygments-main/pygments/lexers/css.py +67 -159
  104. data/vendor/pygments-main/pygments/lexers/d.py +15 -12
  105. data/vendor/pygments-main/pygments/lexers/dalvik.py +14 -11
  106. data/vendor/pygments-main/pygments/lexers/data.py +119 -49
  107. data/vendor/pygments-main/pygments/lexers/dax.py +136 -0
  108. data/vendor/pygments-main/pygments/lexers/devicetree.py +9 -8
  109. data/vendor/pygments-main/pygments/lexers/diff.py +23 -19
  110. data/vendor/pygments-main/pygments/lexers/dotnet.py +216 -81
  111. data/vendor/pygments-main/pygments/lexers/dsls.py +86 -64
  112. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -15
  113. data/vendor/pygments-main/pygments/lexers/ecl.py +46 -38
  114. data/vendor/pygments-main/pygments/lexers/eiffel.py +15 -10
  115. data/vendor/pygments-main/pygments/lexers/elm.py +12 -8
  116. data/vendor/pygments-main/pygments/lexers/elpi.py +165 -0
  117. data/vendor/pygments-main/pygments/lexers/email.py +21 -39
  118. data/vendor/pygments-main/pygments/lexers/erlang.py +21 -22
  119. data/vendor/pygments-main/pygments/lexers/esoteric.py +28 -30
  120. data/vendor/pygments-main/pygments/lexers/ezhil.py +10 -9
  121. data/vendor/pygments-main/pygments/lexers/factor.py +104 -83
  122. data/vendor/pygments-main/pygments/lexers/fantom.py +31 -29
  123. data/vendor/pygments-main/pygments/lexers/felix.py +18 -14
  124. data/vendor/pygments-main/pygments/lexers/fift.py +67 -0
  125. data/vendor/pygments-main/pygments/lexers/floscript.py +7 -7
  126. data/vendor/pygments-main/pygments/lexers/forth.py +8 -6
  127. data/vendor/pygments-main/pygments/lexers/fortran.py +16 -11
  128. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  129. data/vendor/pygments-main/pygments/lexers/freefem.py +7 -10
  130. data/vendor/pygments-main/pygments/lexers/func.py +108 -0
  131. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/futhark.py +12 -17
  133. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -2
  134. data/vendor/pygments-main/pygments/lexers/gdscript.py +76 -233
  135. data/vendor/pygments-main/pygments/lexers/go.py +12 -14
  136. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +22 -26
  137. data/vendor/pygments-main/pygments/lexers/graph.py +36 -15
  138. data/vendor/pygments-main/pygments/lexers/graphics.py +37 -38
  139. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -1
  140. data/vendor/pygments-main/pygments/lexers/gsql.py +39 -27
  141. data/vendor/pygments-main/pygments/lexers/haskell.py +73 -71
  142. data/vendor/pygments-main/pygments/lexers/haxe.py +13 -11
  143. data/vendor/pygments-main/pygments/lexers/hdl.py +31 -34
  144. data/vendor/pygments-main/pygments/lexers/hexdump.py +21 -21
  145. data/vendor/pygments-main/pygments/lexers/html.py +11 -19
  146. data/vendor/pygments-main/pygments/lexers/idl.py +10 -5
  147. data/vendor/pygments-main/pygments/lexers/igor.py +3 -2
  148. data/vendor/pygments-main/pygments/lexers/inferno.py +9 -8
  149. data/vendor/pygments-main/pygments/lexers/installers.py +39 -33
  150. data/vendor/pygments-main/pygments/lexers/int_fiction.py +35 -20
  151. data/vendor/pygments-main/pygments/lexers/iolang.py +9 -9
  152. data/vendor/pygments-main/pygments/lexers/j.py +20 -13
  153. data/vendor/pygments-main/pygments/lexers/javascript.py +183 -149
  154. data/vendor/pygments-main/pygments/lexers/jmespath.py +68 -0
  155. data/vendor/pygments-main/pygments/lexers/jslt.py +4 -3
  156. data/vendor/pygments-main/pygments/lexers/jsonnet.py +168 -0
  157. data/vendor/pygments-main/pygments/lexers/julia.py +44 -32
  158. data/vendor/pygments-main/pygments/lexers/jvm.py +161 -140
  159. data/vendor/pygments-main/pygments/lexers/kuin.py +93 -59
  160. data/vendor/pygments-main/pygments/lexers/lilypond.py +226 -0
  161. data/vendor/pygments-main/pygments/lexers/lisp.py +244 -107
  162. data/vendor/pygments-main/pygments/lexers/macaulay2.py +1739 -0
  163. data/vendor/pygments-main/pygments/lexers/make.py +21 -16
  164. data/vendor/pygments-main/pygments/lexers/markup.py +752 -11
  165. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  166. data/vendor/pygments-main/pygments/lexers/matlab.py +18 -3
  167. data/vendor/pygments-main/pygments/lexers/maxima.py +85 -0
  168. data/vendor/pygments-main/pygments/lexers/meson.py +10 -25
  169. data/vendor/pygments-main/pygments/lexers/mime.py +2 -2
  170. data/vendor/pygments-main/pygments/lexers/minecraft.py +394 -0
  171. data/vendor/pygments-main/pygments/lexers/mips.py +128 -0
  172. data/vendor/pygments-main/pygments/lexers/ml.py +9 -6
  173. data/vendor/pygments-main/pygments/lexers/modeling.py +12 -8
  174. data/vendor/pygments-main/pygments/lexers/modula2.py +3 -2
  175. data/vendor/pygments-main/pygments/lexers/monte.py +3 -2
  176. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
  177. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  178. data/vendor/pygments-main/pygments/lexers/nimrod.py +62 -20
  179. data/vendor/pygments-main/pygments/lexers/nit.py +3 -2
  180. data/vendor/pygments-main/pygments/lexers/nix.py +5 -5
  181. data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
  182. data/vendor/pygments-main/pygments/lexers/objective.py +6 -4
  183. data/vendor/pygments-main/pygments/lexers/ooc.py +3 -2
  184. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/parasail.py +3 -2
  186. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -21
  187. data/vendor/pygments-main/pygments/lexers/pascal.py +196 -198
  188. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  189. data/vendor/pygments-main/pygments/lexers/perl.py +17 -15
  190. data/vendor/pygments-main/pygments/lexers/phix.py +364 -0
  191. data/vendor/pygments-main/pygments/lexers/php.py +35 -20
  192. data/vendor/pygments-main/pygments/lexers/pointless.py +3 -2
  193. data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/praat.py +41 -38
  195. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  196. data/vendor/pygments-main/pygments/lexers/prolog.py +7 -8
  197. data/vendor/pygments-main/pygments/lexers/promql.py +5 -12
  198. data/vendor/pygments-main/pygments/lexers/python.py +145 -119
  199. data/vendor/pygments-main/pygments/lexers/q.py +188 -0
  200. data/vendor/pygments-main/pygments/lexers/qlik.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  202. data/vendor/pygments-main/pygments/lexers/r.py +4 -4
  203. data/vendor/pygments-main/pygments/lexers/rdf.py +3 -3
  204. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -12
  205. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  206. data/vendor/pygments-main/pygments/lexers/ride.py +3 -2
  207. data/vendor/pygments-main/pygments/lexers/rita.py +43 -0
  208. data/vendor/pygments-main/pygments/lexers/rnc.py +3 -2
  209. data/vendor/pygments-main/pygments/lexers/roboconf.py +3 -3
  210. data/vendor/pygments-main/pygments/lexers/robotframework.py +6 -5
  211. data/vendor/pygments-main/pygments/lexers/ruby.py +24 -24
  212. data/vendor/pygments-main/pygments/lexers/rust.py +3 -2
  213. data/vendor/pygments-main/pygments/lexers/sas.py +2 -2
  214. data/vendor/pygments-main/pygments/lexers/savi.py +170 -0
  215. data/vendor/pygments-main/pygments/lexers/scdoc.py +4 -7
  216. data/vendor/pygments-main/pygments/lexers/scripting.py +24 -21
  217. data/vendor/pygments-main/pygments/lexers/sgf.py +6 -6
  218. data/vendor/pygments-main/pygments/lexers/shell.py +29 -21
  219. data/vendor/pygments-main/pygments/lexers/sieve.py +14 -4
  220. data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
  221. data/vendor/pygments-main/pygments/lexers/smalltalk.py +5 -3
  222. data/vendor/pygments-main/pygments/lexers/smithy.py +5 -6
  223. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  224. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  225. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -7
  226. data/vendor/pygments-main/pygments/lexers/sophia.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/special.py +2 -5
  228. data/vendor/pygments-main/pygments/lexers/spice.py +71 -0
  229. data/vendor/pygments-main/pygments/lexers/sql.py +212 -17
  230. data/vendor/pygments-main/pygments/lexers/srcinfo.py +62 -0
  231. data/vendor/pygments-main/pygments/lexers/stata.py +4 -3
  232. data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -3
  233. data/vendor/pygments-main/pygments/lexers/tal.py +74 -0
  234. data/vendor/pygments-main/pygments/lexers/tcl.py +21 -16
  235. data/vendor/pygments-main/pygments/lexers/teal.py +9 -8
  236. data/vendor/pygments-main/pygments/lexers/templates.py +62 -29
  237. data/vendor/pygments-main/pygments/lexers/teraterm.py +12 -20
  238. data/vendor/pygments-main/pygments/lexers/testing.py +6 -2
  239. data/vendor/pygments-main/pygments/lexers/text.py +3 -2
  240. data/vendor/pygments-main/pygments/lexers/textedit.py +41 -7
  241. data/vendor/pygments-main/pygments/lexers/textfmts.py +7 -5
  242. data/vendor/pygments-main/pygments/lexers/theorem.py +42 -36
  243. data/vendor/pygments-main/pygments/lexers/thingsdb.py +2 -4
  244. data/vendor/pygments-main/pygments/lexers/tlb.py +57 -0
  245. data/vendor/pygments-main/pygments/lexers/tnt.py +3 -4
  246. data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -4
  247. data/vendor/pygments-main/pygments/lexers/typoscript.py +2 -3
  248. data/vendor/pygments-main/pygments/lexers/ul4.py +267 -0
  249. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
  250. data/vendor/pygments-main/pygments/lexers/urbi.py +4 -4
  251. data/vendor/pygments-main/pygments/lexers/usd.py +2 -1
  252. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  253. data/vendor/pygments-main/pygments/lexers/verification.py +4 -3
  254. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  255. data/vendor/pygments-main/pygments/lexers/webassembly.py +5 -5
  256. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -1
  257. data/vendor/pygments-main/pygments/lexers/webmisc.py +90 -71
  258. data/vendor/pygments-main/pygments/lexers/wgsl.py +407 -0
  259. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -1
  260. data/vendor/pygments-main/pygments/lexers/wowtoc.py +120 -0
  261. data/vendor/pygments-main/pygments/lexers/wren.py +99 -0
  262. data/vendor/pygments-main/pygments/lexers/x10.py +5 -6
  263. data/vendor/pygments-main/pygments/lexers/xorg.py +3 -2
  264. data/vendor/pygments-main/pygments/lexers/yang.py +6 -5
  265. data/vendor/pygments-main/pygments/lexers/zig.py +3 -2
  266. data/vendor/pygments-main/pygments/modeline.py +1 -1
  267. data/vendor/pygments-main/pygments/plugin.py +28 -9
  268. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  269. data/vendor/pygments-main/pygments/scanner.py +2 -2
  270. data/vendor/pygments-main/pygments/sphinxext.py +63 -1
  271. data/vendor/pygments-main/pygments/style.py +7 -1
  272. data/vendor/pygments-main/pygments/styles/__init__.py +19 -5
  273. data/vendor/pygments-main/pygments/styles/abap.py +2 -2
  274. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  275. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  276. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  277. data/vendor/pygments-main/pygments/styles/autumn.py +1 -3
  278. data/vendor/pygments-main/pygments/styles/borland.py +1 -3
  279. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  280. data/vendor/pygments-main/pygments/styles/colorful.py +1 -3
  281. data/vendor/pygments-main/pygments/styles/default.py +13 -14
  282. data/vendor/pygments-main/pygments/styles/dracula.py +102 -0
  283. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  284. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  285. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +75 -0
  286. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  287. data/vendor/pygments-main/pygments/styles/gh_dark.py +107 -0
  288. data/vendor/pygments-main/pygments/styles/gruvbox.py +4 -2
  289. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  290. data/vendor/pygments-main/pygments/styles/inkpot.py +3 -2
  291. data/vendor/pygments-main/pygments/styles/lilypond.py +56 -0
  292. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -3
  293. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  294. data/vendor/pygments-main/pygments/styles/material.py +1 -2
  295. data/vendor/pygments-main/pygments/styles/monokai.py +3 -3
  296. data/vendor/pygments-main/pygments/styles/murphy.py +1 -3
  297. data/vendor/pygments-main/pygments/styles/native.py +11 -11
  298. data/vendor/pygments-main/pygments/styles/nord.py +150 -0
  299. data/vendor/pygments-main/pygments/styles/onedark.py +59 -0
  300. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -6
  301. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -6
  302. data/vendor/pygments-main/pygments/styles/pastie.py +1 -3
  303. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  304. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +3 -3
  305. data/vendor/pygments-main/pygments/styles/rrt.py +3 -2
  306. data/vendor/pygments-main/pygments/styles/sas.py +2 -4
  307. data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
  308. data/vendor/pygments-main/pygments/styles/staroffice.py +26 -0
  309. data/vendor/pygments-main/pygments/styles/stata_dark.py +4 -6
  310. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
  311. data/vendor/pygments-main/pygments/styles/tango.py +2 -3
  312. data/vendor/pygments-main/pygments/styles/trac.py +1 -3
  313. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  314. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  315. data/vendor/pygments-main/pygments/styles/xcode.py +1 -3
  316. data/vendor/pygments-main/pygments/styles/zenburn.py +4 -6
  317. data/vendor/pygments-main/pygments/token.py +2 -1
  318. data/vendor/pygments-main/pygments/unistring.py +4 -6
  319. data/vendor/pygments-main/pygments/util.py +27 -5
  320. metadata +59 -14
  321. data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +0 -524
  322. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/INSTALLER +0 -0
  323. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/REQUESTED +0 -0
  324. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/top_level.txt +0 -0
@@ -30,10 +30,13 @@
30
30
  - highlights errors in the output and notification levels;
31
31
  - handles psql backslash commands.
32
32
 
33
+ `PostgresExplainLexer`
34
+ A lexer to highlight Postgres execution plan.
35
+
33
36
  The ``tests/examplefiles`` contains a few test files with data to be
34
37
  parsed by these lexers.
35
38
 
36
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
39
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
37
40
  :license: BSD, see LICENSE for details.
38
41
  """
39
42
 
@@ -45,7 +48,7 @@ from pygments.token import Punctuation, Whitespace, Text, Comment, Operator, \
45
48
  from pygments.lexers import get_lexer_by_name, ClassNotFound
46
49
 
47
50
  from pygments.lexers._postgres_builtins import KEYWORDS, DATATYPES, \
48
- PSEUDO_TYPES, PLPGSQL_KEYWORDS
51
+ PSEUDO_TYPES, PLPGSQL_KEYWORDS, EXPLAIN_KEYWORDS
49
52
  from pygments.lexers._mysql_builtins import \
50
53
  MYSQL_CONSTANTS, \
51
54
  MYSQL_DATATYPES, \
@@ -57,10 +60,11 @@ from pygments.lexers import _tsql_builtins
57
60
 
58
61
 
59
62
  __all__ = ['PostgresLexer', 'PlPgsqlLexer', 'PostgresConsoleLexer',
60
- 'SqlLexer', 'TransactSqlLexer', 'MySqlLexer',
61
- 'SqliteConsoleLexer', 'RqlLexer']
63
+ 'PostgresExplainLexer', 'SqlLexer', 'TransactSqlLexer',
64
+ 'MySqlLexer', 'SqliteConsoleLexer', 'RqlLexer']
62
65
 
63
66
  line_re = re.compile('.*?\n')
67
+ sqlite_prompt_re = re.compile(r'^(?:sqlite| ...)>(?= )')
64
68
 
65
69
  language_re = re.compile(r"\s+LANGUAGE\s+'?(\w+)'?", re.IGNORECASE)
66
70
 
@@ -161,7 +165,7 @@ class PostgresLexer(PostgresBase, RegexLexer):
161
165
  flags = re.IGNORECASE
162
166
  tokens = {
163
167
  'root': [
164
- (r'\s+', Text),
168
+ (r'\s+', Whitespace),
165
169
  (r'--.*\n?', Comment.Single),
166
170
  (r'/\*', Comment.Multiline, 'multiline-comments'),
167
171
  (r'(' + '|'.join(s.replace(" ", r"\s+")
@@ -254,7 +258,7 @@ class PsqlRegexLexer(PostgresBase, RegexLexer):
254
258
  (r'\\[^\s]+', Keyword.Pseudo, 'psql-command'))
255
259
  tokens['psql-command'] = [
256
260
  (r'\n', Text, 'root'),
257
- (r'\s+', Text),
261
+ (r'\s+', Whitespace),
258
262
  (r'\\[^\s]+', Keyword.Pseudo),
259
263
  (r""":(['"]?)[a-z]\w*\b\1""", Name.Variable),
260
264
  (r"'(''|[^'])*'", String.Single),
@@ -367,6 +371,192 @@ class PostgresConsoleLexer(Lexer):
367
371
  return
368
372
 
369
373
 
374
+ class PostgresExplainLexer(RegexLexer):
375
+ """
376
+ Handle PostgreSQL EXPLAIN output
377
+
378
+ .. versionadded:: 2.15
379
+ """
380
+
381
+ name = 'PostgreSQL EXPLAIN dialect'
382
+ aliases = ['postgres-explain']
383
+ filenames = ['*.explain']
384
+ mimetypes = ['text/x-postgresql-explain']
385
+
386
+ tokens = {
387
+ 'root': [
388
+ (r'(:|\(|\)|ms|kB|->|\.\.|\,)', Punctuation),
389
+ (r'(\s+)', Whitespace),
390
+
391
+ # This match estimated cost and effectively measured counters with ANALYZE
392
+ # Then, we move to instrumentation state
393
+ (r'(cost)(=?)', bygroups(Name.Class, Punctuation), 'instrumentation'),
394
+ (r'(actual)( )(=?)', bygroups(Name.Class, Whitespace, Punctuation), 'instrumentation'),
395
+
396
+ # Misc keywords
397
+ (words(('actual', 'Memory Usage', 'Memory', 'Buckets', 'Batches',
398
+ 'originally', 'row', 'rows', 'Hits', 'Misses',
399
+ 'Evictions', 'Overflows'), suffix=r'\b'),
400
+ Comment.Single),
401
+
402
+ (r'(hit|read|dirtied|written|write|time|calls)(=)', bygroups(Comment.Single, Operator)),
403
+ (r'(shared|temp|local)', Keyword.Pseudo),
404
+
405
+ # We move to sort state in order to emphasize specific keywords (especially disk access)
406
+ (r'(Sort Method)(: )', bygroups(Comment.Preproc, Punctuation), 'sort'),
407
+
408
+ # These keywords can be followed by an object, like a table
409
+ (r'(Sort Key|Group Key|Presorted Key|Hash Key)(:)( )',
410
+ bygroups(Comment.Preproc, Punctuation, Whitespace), 'object_name'),
411
+ (r'(Cache Key|Cache Mode)(:)( )', bygroups(Comment, Punctuation, Whitespace), 'object_name'),
412
+
413
+ # These keywords can be followed by a predicate
414
+ (words(('Join Filter', 'Subplans Removed', 'Filter', 'Merge Cond',
415
+ 'Hash Cond', 'Index Cond', 'Recheck Cond', 'Heap Blocks',
416
+ 'TID Cond', 'Run Condition', 'Order By', 'Function Call',
417
+ 'Table Function Call', 'Inner Unique', 'Params Evaluated',
418
+ 'Single Copy', 'Sampling', 'One-Time Filter', 'Output',
419
+ 'Relations', 'Remote SQL'), suffix=r'\b'),
420
+ Comment.Preproc, 'predicate'),
421
+
422
+ # Special keyword to handle ON CONFLICT
423
+ (r'Conflict ', Comment.Preproc, 'conflict'),
424
+
425
+ # Special keyword for InitPlan or SubPlan
426
+ (r'(InitPlan|SubPlan)( )(\d+)( )',
427
+ bygroups(Keyword, Whitespace, Number.Integer, Whitespace),
428
+ 'init_plan'),
429
+
430
+ (words(('Sort Method', 'Join Filter', 'Planning time',
431
+ 'Planning Time', 'Execution time', 'Execution Time',
432
+ 'Workers Planned', 'Workers Launched', 'Buffers',
433
+ 'Planning', 'Worker', 'Query Identifier', 'Time',
434
+ 'Full-sort Groups'), suffix=r'\b'), Comment.Preproc),
435
+
436
+ # Emphasize these keywords
437
+
438
+ (words(('Rows Removed by Join Filter', 'Rows Removed by Filter',
439
+ 'Rows Removed by Index Recheck',
440
+ 'Heap Fetches', 'never executed'),
441
+ suffix=r'\b'), Name.Exception),
442
+ (r'(I/O Timings)(:)( )', bygroups(Name.Exception, Punctuation, Whitespace)),
443
+
444
+ (words(EXPLAIN_KEYWORDS, suffix=r'\b'), Keyword),
445
+
446
+ # join keywords
447
+ (r'((Right|Left|Full|Semi|Anti) Join)', Keyword.Type),
448
+ (r'(Parallel |Async |Finalize |Partial )', Comment.Preproc),
449
+ (r'Backward', Comment.Preproc),
450
+ (r'(Intersect|Except|Hash)', Comment.Preproc),
451
+
452
+ (r'(CTE)( )(\w*)?', bygroups(Comment, Whitespace, Name.Variable)),
453
+
454
+
455
+ # Treat "on" and "using" as a punctuation
456
+ (r'(on|using)', Punctuation, 'object_name'),
457
+
458
+
459
+ # strings
460
+ (r"'(''|[^'])*'", String.Single),
461
+ # numbers
462
+ (r'\d+\.\d+', Number.Float),
463
+ (r'(\d+)', Number.Integer),
464
+
465
+ # boolean
466
+ (r'(true|false)', Name.Constant),
467
+ # explain header
468
+ (r'\s*QUERY PLAN\s*\n\s*-+', Comment.Single),
469
+ # Settings
470
+ (r'(Settings)(:)( )', bygroups(Comment.Preproc, Punctuation, Whitespace), 'setting'),
471
+
472
+ # Handle JIT counters
473
+ (r'(JIT|Functions|Options|Timing)(:)', bygroups(Comment.Preproc, Punctuation)),
474
+ (r'(Inlining|Optimization|Expressions|Deforming|Generation|Emission|Total)', Keyword.Pseudo),
475
+
476
+ # Handle Triggers counters
477
+ (r'(Trigger)( )(\S*)(:)( )',
478
+ bygroups(Comment.Preproc, Whitespace, Name.Variable, Punctuation, Whitespace)),
479
+
480
+ ],
481
+ 'expression': [
482
+ # matches any kind of parenthesized expression
483
+ # the first opening paren is matched by the 'caller'
484
+ (r'\(', Punctuation, '#push'),
485
+ (r'\)', Punctuation, '#pop'),
486
+ (r'(never executed)', Name.Exception),
487
+ (r'[^)(]+', Comment),
488
+ ],
489
+ 'object_name': [
490
+
491
+ # This is a cost or analyze measure
492
+ (r'(\(cost)(=?)', bygroups(Name.Class, Punctuation), 'instrumentation'),
493
+ (r'(\(actual)( )(=?)', bygroups(Name.Class, Whitespace, Punctuation), 'instrumentation'),
494
+
495
+ # if object_name is parenthesized, mark opening paren as
496
+ # punctuation, call 'expression', and exit state
497
+ (r'\(', Punctuation, 'expression'),
498
+ (r'(on)', Punctuation),
499
+ # matches possibly schema-qualified table and column names
500
+ (r'\w+(\.\w+)*( USING \S+| \w+ USING \S+)', Name.Variable),
501
+ (r'\"?\w+\"?(?:\.\"?\w+\"?)?', Name.Variable),
502
+ (r'\'\S*\'', Name.Variable),
503
+
504
+ # if we encounter a comma, another object is listed
505
+ (r',\n', Punctuation, 'object_name'),
506
+ (r',', Punctuation, 'object_name'),
507
+
508
+ # special case: "*SELECT*"
509
+ (r'"\*SELECT\*( \d+)?"(.\w+)?', Name.Variable),
510
+ (r'"\*VALUES\*(_\d+)?"(.\w+)?', Name.Variable),
511
+ (r'"ANY_subquery"', Name.Variable),
512
+
513
+ # Variable $1 ...
514
+ (r'\$\d+', Name.Variable),
515
+ # cast
516
+ (r'::\w+', Name.Variable),
517
+ (r' +', Whitespace),
518
+ (r'"', Punctuation),
519
+ (r'\[\.\.\.\]', Punctuation),
520
+ (r'\)', Punctuation, '#pop'),
521
+ ],
522
+ 'predicate': [
523
+ # if predicate is parenthesized, mark paren as punctuation
524
+ (r'(\()([^\n]*)(\))', bygroups(Punctuation, Name.Variable, Punctuation), '#pop'),
525
+ # otherwise color until newline
526
+ (r'[^\n]*', Name.Variable, '#pop'),
527
+ ],
528
+ 'instrumentation': [
529
+ (r'=|\.\.', Punctuation),
530
+ (r' +', Whitespace),
531
+ (r'(rows|width|time|loops)', Name.Class),
532
+ (r'\d+\.\d+', Number.Float),
533
+ (r'(\d+)', Number.Integer),
534
+ (r'\)', Punctuation, '#pop'),
535
+ ],
536
+ 'conflict': [
537
+ (r'(Resolution: )(\w+)', bygroups(Comment.Preproc, Name.Variable)),
538
+ (r'(Arbiter \w+:)', Comment.Preproc, 'object_name'),
539
+ (r'(Filter: )', Comment.Preproc, 'predicate'),
540
+ ],
541
+ 'setting': [
542
+ (r'([a-z_]*?)(\s*)(=)(\s*)(\'.*?\')', bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String)),
543
+ (r'\, ', Punctuation),
544
+ ],
545
+ 'init_plan': [
546
+ (r'\(', Punctuation),
547
+ (r'returns \$\d+(,\$\d+)?', Name.Variable),
548
+ (r'\)', Punctuation, '#pop'),
549
+ ],
550
+ 'sort': [
551
+ (r':|kB', Punctuation),
552
+ (r'(quicksort|top-N|heapsort|Average|Memory|Peak)', Comment.Prepoc),
553
+ (r'(external|merge|Disk|sort)', Name.Exception),
554
+ (r'(\d+)', Number.Integer),
555
+ (r' +', Whitespace),
556
+ ],
557
+ }
558
+
559
+
370
560
  class SqlLexer(RegexLexer):
371
561
  """
372
562
  Lexer for Structured Query Language. Currently, this lexer does
@@ -381,7 +571,7 @@ class SqlLexer(RegexLexer):
381
571
  flags = re.IGNORECASE
382
572
  tokens = {
383
573
  'root': [
384
- (r'\s+', Text),
574
+ (r'\s+', Whitespace),
385
575
  (r'--.*\n?', Comment.Single),
386
576
  (r'/\*', Comment.Multiline, 'multiline-comments'),
387
577
  (words((
@@ -495,6 +685,9 @@ class SqlLexer(RegexLexer):
495
685
  ]
496
686
  }
497
687
 
688
+ def analyse_text(self, text):
689
+ return
690
+
498
691
 
499
692
  class TransactSqlLexer(RegexLexer):
500
693
  """
@@ -509,8 +702,8 @@ class TransactSqlLexer(RegexLexer):
509
702
  filenames = ['*.sql']
510
703
  mimetypes = ['text/x-tsql']
511
704
 
512
- # Use re.UNICODE to allow non ASCII letters in names.
513
- flags = re.IGNORECASE | re.UNICODE
705
+ flags = re.IGNORECASE
706
+
514
707
  tokens = {
515
708
  'root': [
516
709
  (r'\s+', Whitespace),
@@ -596,7 +789,7 @@ class MySqlLexer(RegexLexer):
596
789
  flags = re.IGNORECASE
597
790
  tokens = {
598
791
  'root': [
599
- (r'\s+', Text),
792
+ (r'\s+', Whitespace),
600
793
 
601
794
  # Comments
602
795
  (r'(?:#|--\s+).*', Comment.Single),
@@ -652,14 +845,14 @@ class MySqlLexer(RegexLexer):
652
845
 
653
846
  # Exceptions; these words tokenize differently in different contexts.
654
847
  (r'\b(set)(?!\s*\()', Keyword),
655
- (r'\b(character)(\s+)(set)\b', bygroups(Keyword, Text, Keyword)),
848
+ (r'\b(character)(\s+)(set)\b', bygroups(Keyword, Whitespace, Keyword)),
656
849
  # In all other known cases, "SET" is tokenized by MYSQL_DATATYPES.
657
850
 
658
851
  (words(MYSQL_CONSTANTS, prefix=r'\b', suffix=r'\b'), Name.Constant),
659
852
  (words(MYSQL_DATATYPES, prefix=r'\b', suffix=r'\b'), Keyword.Type),
660
853
  (words(MYSQL_KEYWORDS, prefix=r'\b', suffix=r'\b'), Keyword),
661
854
  (words(MYSQL_FUNCTIONS, prefix=r'\b', suffix=r'\b(\s*)(\()'),
662
- bygroups(Name.Function, Text, Punctuation)),
855
+ bygroups(Name.Function, Whitespace, Punctuation)),
663
856
 
664
857
  # Schema object names
665
858
  #
@@ -782,9 +975,12 @@ class SqliteConsoleLexer(Lexer):
782
975
  insertions = []
783
976
  for match in line_re.finditer(data):
784
977
  line = match.group()
785
- if line.startswith('sqlite> ') or line.startswith(' ...> '):
978
+ prompt_match = sqlite_prompt_re.match(line)
979
+ if prompt_match is not None:
786
980
  insertions.append((len(curcode),
787
- [(0, Generic.Prompt, line[:8])]))
981
+ [(0, Generic.Prompt, line[:7])]))
982
+ insertions.append((len(curcode),
983
+ [(7, Whitespace, ' ')]))
788
984
  curcode += line[8:]
789
985
  else:
790
986
  if curcode:
@@ -805,11 +1001,10 @@ class RqlLexer(RegexLexer):
805
1001
  """
806
1002
  Lexer for Relation Query Language.
807
1003
 
808
- `RQL <http://www.logilab.org/project/rql>`_
809
-
810
1004
  .. versionadded:: 2.0
811
1005
  """
812
1006
  name = 'RQL'
1007
+ url = 'http://www.logilab.org/project/rql'
813
1008
  aliases = ['rql']
814
1009
  filenames = ['*.rql']
815
1010
  mimetypes = ['text/x-rql']
@@ -817,7 +1012,7 @@ class RqlLexer(RegexLexer):
817
1012
  flags = re.IGNORECASE
818
1013
  tokens = {
819
1014
  'root': [
820
- (r'\s+', Text),
1015
+ (r'\s+', Whitespace),
821
1016
  (r'(DELETE|SET|INSERT|UNION|DISTINCT|WITH|WHERE|BEING|OR'
822
1017
  r'|AND|NOT|GROUPBY|HAVING|ORDERBY|ASC|DESC|LIMIT|OFFSET'
823
1018
  r'|TODAY|NOW|TRUE|FALSE|NULL|EXISTS)\b', Keyword),
@@ -0,0 +1,62 @@
1
+ """
2
+ pygments.lexers.srcinfo
3
+ ~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for .SRCINFO files used by Arch Linux Packages.
6
+
7
+ The description of the format can be found in the wiki:
8
+ https://wiki.archlinux.org/title/.SRCINFO
9
+
10
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
11
+ :license: BSD, see LICENSE for details.
12
+ """
13
+
14
+ from pygments.lexer import RegexLexer, words
15
+ from pygments.token import Text, Comment, Keyword, Name, Operator, Whitespace
16
+
17
+ __all__ = ['SrcinfoLexer']
18
+
19
+ keywords = (
20
+ 'pkgbase', 'pkgname',
21
+ 'pkgver', 'pkgrel', 'epoch',
22
+ 'pkgdesc', 'url', 'install', 'changelog',
23
+ 'arch', 'groups', 'license', 'noextract', 'options', 'backup',
24
+ 'validpgpkeys',
25
+ )
26
+
27
+ architecture_dependent_keywords = (
28
+ 'source', 'depends', 'checkdepends', 'makedepends', 'optdepends',
29
+ 'provides', 'conflicts', 'replaces',
30
+ 'md5sums', 'sha1sums', 'sha224sums', 'sha256sums', 'sha384sums',
31
+ 'sha512sums',
32
+ )
33
+
34
+
35
+ class SrcinfoLexer(RegexLexer):
36
+ """Lexer for .SRCINFO files used by Arch Linux Packages.
37
+
38
+ .. versionadded:: 2.11
39
+ """
40
+
41
+ name = 'Srcinfo'
42
+ aliases = ['srcinfo']
43
+ filenames = ['.SRCINFO']
44
+
45
+ tokens = {
46
+ 'root': [
47
+ (r'\s+', Whitespace),
48
+ (r'#.*', Comment.Single),
49
+ (words(keywords), Keyword, 'assignment'),
50
+ (words(architecture_dependent_keywords, suffix=r'_\w+'),
51
+ Keyword, 'assignment'),
52
+ (r'\w+', Name.Variable, 'assignment'),
53
+ ],
54
+ 'assignment': [
55
+ (r' +', Whitespace),
56
+ (r'=', Operator, 'value'),
57
+ ],
58
+ 'value': [
59
+ (r' +', Whitespace),
60
+ (r'.*', Text, '#pop:2'),
61
+ ],
62
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for Stata
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -20,7 +20,7 @@ __all__ = ['StataLexer']
20
20
 
21
21
  class StataLexer(RegexLexer):
22
22
  """
23
- For `Stata <http://www.stata.com/>`_ do files.
23
+ For Stata do files.
24
24
 
25
25
  .. versionadded:: 2.2
26
26
  """
@@ -29,7 +29,8 @@ class StataLexer(RegexLexer):
29
29
  # - https://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
30
30
  # - https://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
31
31
 
32
- name = 'Stata'
32
+ name = 'Stata'
33
+ url = 'http://www.stata.com/'
33
34
  aliases = ['stata', 'do']
34
35
  filenames = ['*.do', '*.ado']
35
36
  mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for SuperCollider
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -19,15 +19,16 @@ __all__ = ['SuperColliderLexer']
19
19
 
20
20
  class SuperColliderLexer(RegexLexer):
21
21
  """
22
- For `SuperCollider <http://supercollider.github.io/>`_ source code.
22
+ For SuperCollider source code.
23
23
 
24
24
  .. versionadded:: 2.1
25
25
  """
26
26
 
27
27
  name = 'SuperCollider'
28
+ url = 'http://supercollider.github.io/'
28
29
  aliases = ['supercollider', 'sc']
29
30
  filenames = ['*.sc', '*.scd']
30
- mimetypes = ['application/supercollider', 'text/supercollider', ]
31
+ mimetypes = ['application/supercollider', 'text/supercollider']
31
32
 
32
33
  flags = re.DOTALL | re.MULTILINE
33
34
  tokens = {
@@ -0,0 +1,74 @@
1
+ """
2
+ pygments.lexers.tal
3
+ ~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for Uxntal
6
+
7
+ .. versionadded:: 2.12
8
+
9
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
10
+ :license: BSD, see LICENSE for details.
11
+ """
12
+
13
+ from pygments.lexer import RegexLexer, words
14
+ from pygments.token import Comment, Keyword, Name, String, Number, \
15
+ Punctuation, Whitespace, Literal
16
+
17
+ __all__ = ['TalLexer']
18
+
19
+
20
+ class TalLexer(RegexLexer):
21
+ """
22
+ For `Uxntal <https://wiki.xxiivv.com/site/uxntal.html>`_ source code.
23
+
24
+ .. versionadded:: 2.12
25
+ """
26
+
27
+ name = 'Tal'
28
+ aliases = ['tal', 'uxntal']
29
+ filenames = ['*.tal']
30
+ mimetypes = ['text/x-uxntal']
31
+
32
+ instructions = [
33
+ 'BRK', 'LIT', 'INC', 'POP', 'DUP', 'NIP', 'SWP', 'OVR', 'ROT',
34
+ 'EQU', 'NEQ', 'GTH', 'LTH', 'JMP', 'JCN', 'JSR', 'STH',
35
+ 'LDZ', 'STZ', 'LDR', 'STR', 'LDA', 'STA', 'DEI', 'DEO',
36
+ 'ADD', 'SUB', 'MUL', 'DIV', 'AND', 'ORA', 'EOR', 'SFT'
37
+ ]
38
+
39
+ tokens = {
40
+ # the comment delimiters must not be adjacent to non-space characters.
41
+ # this means ( foo ) is a valid comment but (foo) is not. this also
42
+ # applies to nested comments.
43
+ 'comment': [
44
+ (r'(?<!\S)\((?!\S)', Comment.Multiline, '#push'), # nested comments
45
+ (r'(?<!\S)\)(?!\S)', Comment.Multiline, '#pop'), # nested comments
46
+ (r'[^()]+', Comment.Multiline), # comments
47
+ (r'[()]+', Comment.Multiline), # comments
48
+ ],
49
+ 'root': [
50
+ (r'\s+', Whitespace), # spaces
51
+ (r'(?<!\S)\((?!\S)', Comment.Multiline, 'comment'), # comments
52
+ (words(instructions, prefix=r'(?<!\S)', suffix=r'2?k?r?(?!\S)'),
53
+ Keyword.Reserved), # instructions
54
+ (r'[][{}](?!\S)', Punctuation), # delimiters
55
+ (r'#([0-9a-f]{2}){1,2}(?!\S)', Number.Hex), # integer
56
+ (r'"\S+', String), # raw string
57
+ (r"'\S(?!\S)", String.Char), # raw char
58
+ (r'([0-9a-f]{2}){1,2}(?!\S)', Literal), # raw integer
59
+ (r'[|$][0-9a-f]{1,4}(?!\S)', Keyword.Declaration), # abs/rel pad
60
+ (r'%\S+', Name.Decorator), # macro
61
+ (r'@\S+', Name.Function), # label
62
+ (r'&\S+', Name.Label), # sublabel
63
+ (r'/\S+', Name.Tag), # spacer
64
+ (r'\.\S+', Name.Variable.Magic), # zero page addr
65
+ (r',\S+', Name.Variable.Instance), # rel addr
66
+ (r';\S+', Name.Variable.Global), # abs addr
67
+ (r':\S+', Literal), # raw addr
68
+ (r'~\S+', Keyword.Namespace), # include
69
+ (r'\S+', Name),
70
+ ]
71
+ }
72
+
73
+ def analyse_text(text):
74
+ return '|0100' in text[:500]
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Tcl and related languages.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -24,23 +24,27 @@ class TclLexer(RegexLexer):
24
24
  """
25
25
 
26
26
  keyword_cmds_re = words((
27
- 'after', 'apply', 'array', 'break', 'catch', 'continue', 'elseif', 'else', 'error',
28
- 'eval', 'expr', 'for', 'foreach', 'global', 'if', 'namespace', 'proc', 'rename', 'return',
29
- 'set', 'switch', 'then', 'trace', 'unset', 'update', 'uplevel', 'upvar', 'variable',
30
- 'vwait', 'while'), prefix=r'\b', suffix=r'\b')
27
+ 'after', 'apply', 'array', 'break', 'catch', 'continue', 'elseif',
28
+ 'else', 'error', 'eval', 'expr', 'for', 'foreach', 'global', 'if',
29
+ 'namespace', 'proc', 'rename', 'return', 'set', 'switch', 'then',
30
+ 'trace', 'unset', 'update', 'uplevel', 'upvar', 'variable', 'vwait',
31
+ 'while'), prefix=r'\b', suffix=r'\b')
31
32
 
32
33
  builtin_cmds_re = words((
33
- 'append', 'bgerror', 'binary', 'cd', 'chan', 'clock', 'close', 'concat', 'dde', 'dict',
34
- 'encoding', 'eof', 'exec', 'exit', 'fblocked', 'fconfigure', 'fcopy', 'file',
35
- 'fileevent', 'flush', 'format', 'gets', 'glob', 'history', 'http', 'incr', 'info', 'interp',
36
- 'join', 'lappend', 'lassign', 'lindex', 'linsert', 'list', 'llength', 'load', 'loadTk',
37
- 'lrange', 'lrepeat', 'lreplace', 'lreverse', 'lsearch', 'lset', 'lsort', 'mathfunc',
38
- 'mathop', 'memory', 'msgcat', 'open', 'package', 'pid', 'pkg::create', 'pkg_mkIndex',
39
- 'platform', 'platform::shell', 'puts', 'pwd', 're_syntax', 'read', 'refchan',
40
- 'regexp', 'registry', 'regsub', 'scan', 'seek', 'socket', 'source', 'split', 'string',
41
- 'subst', 'tell', 'time', 'tm', 'unknown', 'unload'), prefix=r'\b', suffix=r'\b')
34
+ 'append', 'bgerror', 'binary', 'cd', 'chan', 'clock', 'close',
35
+ 'concat', 'dde', 'dict', 'encoding', 'eof', 'exec', 'exit', 'fblocked',
36
+ 'fconfigure', 'fcopy', 'file', 'fileevent', 'flush', 'format', 'gets',
37
+ 'glob', 'history', 'http', 'incr', 'info', 'interp', 'join', 'lappend',
38
+ 'lassign', 'lindex', 'linsert', 'list', 'llength', 'load', 'loadTk',
39
+ 'lrange', 'lrepeat', 'lreplace', 'lreverse', 'lsearch', 'lset', 'lsort',
40
+ 'mathfunc', 'mathop', 'memory', 'msgcat', 'open', 'package', 'pid',
41
+ 'pkg::create', 'pkg_mkIndex', 'platform', 'platform::shell', 'puts',
42
+ 'pwd', 're_syntax', 'read', 'refchan', 'regexp', 'registry', 'regsub',
43
+ 'scan', 'seek', 'socket', 'source', 'split', 'string', 'subst', 'tell',
44
+ 'time', 'tm', 'unknown', 'unload'), prefix=r'\b', suffix=r'\b')
42
45
 
43
46
  name = 'Tcl'
47
+ url = 'https://www.tcl.tk/about/language.html'
44
48
  aliases = ['tcl']
45
49
  filenames = ['*.tcl', '*.rvt']
46
50
  mimetypes = ['text/x-tcl', 'text/x-script.tcl', 'application/x-tcl']
@@ -84,8 +88,9 @@ class TclLexer(RegexLexer):
84
88
  (r'0[0-7]+', Number.Oct),
85
89
  (r'\d+\.\d+', Number.Float),
86
90
  (r'\d+', Number.Integer),
87
- (r'\$([\w.:-]+)', Name.Variable),
88
- (r'([\w.,@:-]+)', Text),
91
+ (r'\$[\w.:-]+', Name.Variable),
92
+ (r'\$\{[\w.:-]+\}', Name.Variable),
93
+ (r'[\w.,@:-]+', Text),
89
94
  ],
90
95
  'params': [
91
96
  (r';', Keyword, '#pop'),
@@ -1,23 +1,23 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.teal
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for TEAL.
7
6
 
8
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
12
11
  from pygments.lexer import RegexLexer, bygroups, include, words
13
- from pygments.token import Comment, Name, Number, String, Text, Keyword
12
+ from pygments.token import Comment, Name, Number, String, Text, Keyword, \
13
+ Whitespace
14
14
 
15
15
  __all__ = ['TealLexer']
16
16
 
17
+
17
18
  class TealLexer(RegexLexer):
18
19
  """
19
- For the `Transaction Execution Approval Language (TEAL)
20
- <https://developer.algorand.org/docs/reference/teal/specification/>`
20
+ For the Transaction Execution Approval Language (TEAL)
21
21
 
22
22
  For more information about the grammar, see:
23
23
  https://github.com/algorand/go-algorand/blob/master/data/transactions/logic/assembler.go
@@ -25,6 +25,7 @@ class TealLexer(RegexLexer):
25
25
  .. versionadded:: 2.9
26
26
  """
27
27
  name = 'teal'
28
+ url = 'https://developer.algorand.org/docs/reference/teal/specification/'
28
29
  aliases = ['teal']
29
30
  filenames = ['*.teal']
30
31
 
@@ -49,7 +50,7 @@ class TealLexer(RegexLexer):
49
50
  'AssetTotal', 'AssetDecimals', 'AssetDefaultFrozen', 'AssetUnitName',
50
51
  'AssetName', 'AssetURL', 'AssetMetadataHash', 'AssetManager',
51
52
  'AssetReserve', 'AssetFreeze', 'AssetClawback',
52
- }, suffix = r'\b')
53
+ }, suffix=r'\b')
53
54
 
54
55
  identifier = r'[^ \t\n]+(?=\/\/)|[^ \t\n]+'
55
56
  newline = r'\r?\n'
@@ -69,7 +70,7 @@ class TealLexer(RegexLexer):
69
70
  (r'"', String, 'string'),
70
71
  (r'(b(?:ase)?(?:32|64) ?)(\(?[a-zA-Z0-9+/=]+\)?)',
71
72
  bygroups(String.Affix, String.Other)),
72
- (r'[A-Z2-7]{58}', Number), # address
73
+ (r'[A-Z2-7]{58}', Number), # address
73
74
  (r'0x[\da-fA-F]+', Number.Hex),
74
75
  (r'\d+', Number.Integer),
75
76
  (keywords, Keyword),
@@ -82,7 +83,7 @@ class TealLexer(RegexLexer):
82
83
  (r'"', String, '#pop'),
83
84
  ],
84
85
  'whitespace': [
85
- (r'[ \t]+', Text),
86
+ (r'[ \t]+', Whitespace),
86
87
  (r'//[^\n]+', Comment.Single),
87
88
  ],
88
89
  }