pygments.rb 2.3.1 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }