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
@@ -0,0 +1,170 @@
1
+ """
2
+ pygments.formatters.groff
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Formatter for groff output.
6
+
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import math
12
+ from pygments.formatter import Formatter
13
+ from pygments.util import get_bool_opt, get_int_opt
14
+
15
+ __all__ = ['GroffFormatter']
16
+
17
+
18
+ class GroffFormatter(Formatter):
19
+ """
20
+ Format tokens with groff escapes to change their color and font style.
21
+
22
+ .. versionadded:: 2.11
23
+
24
+ Additional options accepted:
25
+
26
+ `style`
27
+ The style to use, can be a string or a Style subclass (default:
28
+ ``'default'``).
29
+
30
+ `monospaced`
31
+ If set to true, monospace font will be used (default: ``true``).
32
+
33
+ `linenos`
34
+ If set to true, print the line numbers (default: ``false``).
35
+
36
+ `wrap`
37
+ Wrap lines to the specified number of characters. Disabled if set to 0
38
+ (default: ``0``).
39
+ """
40
+
41
+ name = 'groff'
42
+ aliases = ['groff','troff','roff']
43
+ filenames = []
44
+
45
+ def __init__(self, **options):
46
+ Formatter.__init__(self, **options)
47
+
48
+ self.monospaced = get_bool_opt(options, 'monospaced', True)
49
+ self.linenos = get_bool_opt(options, 'linenos', False)
50
+ self._lineno = 0
51
+ self.wrap = get_int_opt(options, 'wrap', 0)
52
+ self._linelen = 0
53
+
54
+ self.styles = {}
55
+ self._make_styles()
56
+
57
+
58
+ def _make_styles(self):
59
+ regular = '\\f[CR]' if self.monospaced else '\\f[R]'
60
+ bold = '\\f[CB]' if self.monospaced else '\\f[B]'
61
+ italic = '\\f[CI]' if self.monospaced else '\\f[I]'
62
+
63
+ for ttype, ndef in self.style:
64
+ start = end = ''
65
+ if ndef['color']:
66
+ start += '\\m[%s]' % ndef['color']
67
+ end = '\\m[]' + end
68
+ if ndef['bold']:
69
+ start += bold
70
+ end = regular + end
71
+ if ndef['italic']:
72
+ start += italic
73
+ end = regular + end
74
+ if ndef['bgcolor']:
75
+ start += '\\M[%s]' % ndef['bgcolor']
76
+ end = '\\M[]' + end
77
+
78
+ self.styles[ttype] = start, end
79
+
80
+
81
+ def _define_colors(self, outfile):
82
+ colors = set()
83
+ for _, ndef in self.style:
84
+ if ndef['color'] is not None:
85
+ colors.add(ndef['color'])
86
+
87
+ for color in sorted(colors):
88
+ outfile.write('.defcolor ' + color + ' rgb #' + color + '\n')
89
+
90
+
91
+ def _write_lineno(self, outfile):
92
+ self._lineno += 1
93
+ outfile.write("%s% 4d " % (self._lineno != 1 and '\n' or '', self._lineno))
94
+
95
+
96
+ def _wrap_line(self, line):
97
+ length = len(line.rstrip('\n'))
98
+ space = ' ' if self.linenos else ''
99
+ newline = ''
100
+
101
+ if length > self.wrap:
102
+ for i in range(0, math.floor(length / self.wrap)):
103
+ chunk = line[i*self.wrap:i*self.wrap+self.wrap]
104
+ newline += (chunk + '\n' + space)
105
+ remainder = length % self.wrap
106
+ if remainder > 0:
107
+ newline += line[-remainder-1:]
108
+ self._linelen = remainder
109
+ elif self._linelen + length > self.wrap:
110
+ newline = ('\n' + space) + line
111
+ self._linelen = length
112
+ else:
113
+ newline = line
114
+ self._linelen += length
115
+
116
+ return newline
117
+
118
+
119
+ def _escape_chars(self, text):
120
+ text = text.replace('\\', '\\[u005C]'). \
121
+ replace('.', '\\[char46]'). \
122
+ replace('\'', '\\[u0027]'). \
123
+ replace('`', '\\[u0060]'). \
124
+ replace('~', '\\[u007E]')
125
+ copy = text
126
+
127
+ for char in copy:
128
+ if len(char) != len(char.encode()):
129
+ uni = char.encode('unicode_escape') \
130
+ .decode()[1:] \
131
+ .replace('x', 'u00') \
132
+ .upper()
133
+ text = text.replace(char, '\\[u' + uni[1:] + ']')
134
+
135
+ return text
136
+
137
+
138
+ def format_unencoded(self, tokensource, outfile):
139
+ self._define_colors(outfile)
140
+
141
+ outfile.write('.nf\n\\f[CR]\n')
142
+
143
+ if self.linenos:
144
+ self._write_lineno(outfile)
145
+
146
+ for ttype, value in tokensource:
147
+ while ttype not in self.styles:
148
+ ttype = ttype.parent
149
+ start, end = self.styles[ttype]
150
+
151
+ for line in value.splitlines(True):
152
+ if self.wrap > 0:
153
+ line = self._wrap_line(line)
154
+
155
+ if start and end:
156
+ text = self._escape_chars(line.rstrip('\n'))
157
+ if text != '':
158
+ outfile.write(''.join((start, text, end)))
159
+ else:
160
+ outfile.write(self._escape_chars(line.rstrip('\n')))
161
+
162
+ if line.endswith('\n'):
163
+ if self.linenos:
164
+ self._write_lineno(outfile)
165
+ self._linelen = 0
166
+ else:
167
+ outfile.write('\n')
168
+ self._linelen = 0
169
+
170
+ outfile.write('\n.fi')
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for HTML output.
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
 
@@ -62,7 +62,7 @@ def _get_ttype_class(ttype):
62
62
  CSSFILE_TEMPLATE = '''\
63
63
  /*
64
64
  generated by Pygments <https://pygments.org/>
65
- Copyright 2006-2021 by the Pygments team.
65
+ Copyright 2006-2023 by the Pygments team.
66
66
  Licensed under the BSD license, see LICENSE for details.
67
67
  */
68
68
  %(styledefs)s
@@ -73,7 +73,7 @@ DOC_HEADER = '''\
73
73
  "http://www.w3.org/TR/html4/strict.dtd">
74
74
  <!--
75
75
  generated by Pygments <https://pygments.org/>
76
- Copyright 2006-2021 by the Pygments team.
76
+ Copyright 2006-2023 by the Pygments team.
77
77
  Licensed under the BSD license, see LICENSE for details.
78
78
  -->
79
79
  <html>
@@ -112,9 +112,9 @@ DOC_FOOTER = '''\
112
112
 
113
113
  class HtmlFormatter(Formatter):
114
114
  r"""
115
- Format tokens as HTML 4 ``<span>`` tags within a ``<pre>`` tag, wrapped
116
- in a ``<div>`` tag. The ``<div>``'s CSS class can be set by the `cssclass`
117
- option.
115
+ Format tokens as HTML 4 ``<span>`` tags. By default, the content is enclosed
116
+ in a ``<pre>`` tag, itself wrapped in a ``<div>`` tag (but see the `nowrap` option).
117
+ The ``<div>``'s CSS class can be set by the `cssclass` option.
118
118
 
119
119
  If the `linenos` option is set to ``"table"``, the ``<pre>`` is
120
120
  additionally wrapped inside a ``<table>`` which has one row and two
@@ -140,8 +140,6 @@ class HtmlFormatter(Formatter):
140
140
 
141
141
  (whitespace added to improve clarity).
142
142
 
143
- Wrapping can be disabled using the `nowrap` option.
144
-
145
143
  A list of lines can be specified using the `hl_lines` option to make these
146
144
  lines highlighted (as of Pygments 0.11).
147
145
 
@@ -187,8 +185,8 @@ class HtmlFormatter(Formatter):
187
185
  Additional options accepted:
188
186
 
189
187
  `nowrap`
190
- If set to ``True``, don't wrap the tokens at all, not even inside a ``<pre>``
191
- tag. This disables most other options (default: ``False``).
188
+ If set to ``True``, don't add a ``<pre>`` and a ``<div>`` tag
189
+ around the tokens. This disables most other options (default: ``False``).
192
190
 
193
191
  `full`
194
192
  Tells the formatter to output a "full" document, i.e. a complete
@@ -349,6 +347,12 @@ class HtmlFormatter(Formatter):
349
347
 
350
348
  .. versionadded:: 2.4
351
349
 
350
+ `debug_token_types`
351
+ Add ``title`` attributes to all token ``<span>`` tags that show the
352
+ name of the token.
353
+
354
+ .. versionadded:: 2.10
355
+
352
356
 
353
357
  **Subclassing the HTML formatter**
354
358
 
@@ -379,7 +383,7 @@ class HtmlFormatter(Formatter):
379
383
 
380
384
  class CodeHtmlFormatter(HtmlFormatter):
381
385
 
382
- def wrap(self, source, outfile):
386
+ def wrap(self, source, *, include_div):
383
387
  return self._wrap_code(source)
384
388
 
385
389
  def _wrap_code(self, source):
@@ -419,6 +423,7 @@ class HtmlFormatter(Formatter):
419
423
  self.filename = self._decodeifneeded(options.get('filename', ''))
420
424
  self.wrapcode = get_bool_opt(options, 'wrapcode', False)
421
425
  self.span_element_openers = {}
426
+ self.debug_token_types = get_bool_opt(options, 'debug_token_types', False)
422
427
 
423
428
  if self.tagsfile:
424
429
  if not ctags:
@@ -628,7 +633,7 @@ class HtmlFormatter(Formatter):
628
633
  # write CSS file only if noclobber_cssfile isn't given as an option.
629
634
  try:
630
635
  if not os.path.exists(cssfilename) or not self.noclobber_cssfile:
631
- with open(cssfilename, "w") as cf:
636
+ with open(cssfilename, "w", encoding="utf-8") as cf:
632
637
  cf.write(CSSFILE_TEMPLATE %
633
638
  {'styledefs': self.get_style_defs('body')})
634
639
  except OSError as err:
@@ -660,7 +665,7 @@ class HtmlFormatter(Formatter):
660
665
  mw = len(str(lncount + fl - 1))
661
666
  sp = self.linenospecial
662
667
  st = self.linenostep
663
- la = self.lineanchors
668
+ anchor_name = self.lineanchors or self.linespans
664
669
  aln = self.anchorlinenos
665
670
  nocls = self.noclasses
666
671
 
@@ -673,7 +678,7 @@ class HtmlFormatter(Formatter):
673
678
  if print_line:
674
679
  line = '%*d' % (mw, i)
675
680
  if aln:
676
- line = '<a href="#%s-%d">%s</a>' % (la, i, line)
681
+ line = '<a href="#%s-%d">%s</a>' % (anchor_name, i, line)
677
682
  else:
678
683
  line = ' ' * mw
679
684
 
@@ -700,21 +705,22 @@ class HtmlFormatter(Formatter):
700
705
  filename_tr = ""
701
706
  if self.filename:
702
707
  filename_tr = (
703
- '<tr><th colspan="2" class="filename"><div class="highlight">'
704
- '<span class="filename">' + self.filename + '</span></div>'
708
+ '<tr><th colspan="2" class="filename">'
709
+ '<span class="filename">' + self.filename + '</span>'
705
710
  '</th></tr>')
706
711
 
707
712
  # in case you wonder about the seemingly redundant <div> here: since the
708
713
  # content in the other cell also is wrapped in a div, some browsers in
709
714
  # some configurations seem to mess up the formatting...
710
- yield 0, (
711
- '<table class="%stable">' % self.cssclass + filename_tr +
715
+ yield 0, (f'<table class="{self.cssclass}table">' + filename_tr +
712
716
  '<tr><td class="linenos"><div class="linenodiv"><pre>' +
713
- ls + '</pre></div></td><td class="code">'
714
- )
717
+ ls + '</pre></div></td><td class="code">')
718
+ yield 0, '<div>'
715
719
  yield 0, dummyoutfile.getvalue()
720
+ yield 0, '</div>'
716
721
  yield 0, '</td></tr></table>'
717
722
 
723
+
718
724
  def _wrap_inlinelinenos(self, inner):
719
725
  # need a list of lines since we need the width of a single number :(
720
726
  inner_lines = list(inner)
@@ -722,7 +728,7 @@ class HtmlFormatter(Formatter):
722
728
  st = self.linenostep
723
729
  num = self.linenostart
724
730
  mw = len(str(len(inner_lines) + num - 1))
725
- la = self.lineanchors
731
+ anchor_name = self.lineanchors or self.linespans
726
732
  aln = self.anchorlinenos
727
733
  nocls = self.noclasses
728
734
 
@@ -752,7 +758,7 @@ class HtmlFormatter(Formatter):
752
758
  linenos = line
753
759
 
754
760
  if aln:
755
- yield 1, ('<a href="#%s-%d">%s</a>' % (la, num, linenos) +
761
+ yield 1, ('<a href="#%s-%d">%s</a>' % (anchor_name, num, linenos) +
756
762
  inner_line)
757
763
  else:
758
764
  yield 1, linenos + inner_line
@@ -765,7 +771,8 @@ class HtmlFormatter(Formatter):
765
771
  for t, line in inner:
766
772
  if t:
767
773
  i += 1
768
- yield 1, '<a id="%s-%d" name="%s-%d"></a>' % (s, i, s, i) + line
774
+ href = "" if self.linenos else ' href="#%s-%d"' % (s, i)
775
+ yield 1, '<a id="%s-%d" name="%s-%d"%s></a>' % (s, i, s, i, href) + line
769
776
  else:
770
777
  yield 0, line
771
778
 
@@ -835,12 +842,20 @@ class HtmlFormatter(Formatter):
835
842
  try:
836
843
  cspan = self.span_element_openers[ttype]
837
844
  except KeyError:
845
+ title = ' title="%s"' % '.'.join(ttype) if self.debug_token_types else ''
838
846
  if nocls:
839
847
  css_style = self._get_css_inline_styles(ttype)
840
- cspan = css_style and '<span style="%s">' % self.class2style[css_style][0] or ''
848
+ if css_style:
849
+ css_style = self.class2style[css_style][0]
850
+ cspan = '<span style="%s"%s>' % (css_style, title)
851
+ else:
852
+ cspan = ''
841
853
  else:
842
854
  css_class = self._get_css_classes(ttype)
843
- cspan = css_class and '<span class="%s">' % css_class or ''
855
+ if css_class:
856
+ cspan = '<span class="%s"%s>' % (css_class, title)
857
+ else:
858
+ cspan = ''
844
859
  self.span_element_openers[ttype] = cspan
845
860
 
846
861
  parts = self._translate_parts(value)
@@ -861,10 +876,12 @@ class HtmlFormatter(Formatter):
861
876
  # for all but the last line
862
877
  for part in parts[:-1]:
863
878
  if line:
864
- if lspan != cspan:
879
+ # Also check for part being non-empty, so we avoid creating
880
+ # empty <span> tags
881
+ if lspan != cspan and part:
865
882
  line.extend(((lspan and '</span>'), cspan, part,
866
883
  (cspan and '</span>'), lsep))
867
- else: # both are the same
884
+ else: # both are the same, or the current part was empty
868
885
  line.extend((part, (lspan and '</span>'), lsep))
869
886
  yield 1, ''.join(line)
870
887
  line = []
@@ -917,16 +934,20 @@ class HtmlFormatter(Formatter):
917
934
  else:
918
935
  yield 1, value
919
936
 
920
- def wrap(self, source, outfile):
937
+ def wrap(self, source):
921
938
  """
922
939
  Wrap the ``source``, which is a generator yielding
923
940
  individual lines, in custom generators. See docstring
924
941
  for `format`. Can be overridden.
925
942
  """
943
+
944
+ output = source
926
945
  if self.wrapcode:
927
- return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
928
- else:
929
- return self._wrap_div(self._wrap_pre(source))
946
+ output = self._wrap_code(output)
947
+
948
+ output = self._wrap_pre(output)
949
+
950
+ return output
930
951
 
931
952
  def format_unencoded(self, tokensource, outfile):
932
953
  """
@@ -957,9 +978,10 @@ class HtmlFormatter(Formatter):
957
978
  source = self._wrap_lineanchors(source)
958
979
  if self.linespans:
959
980
  source = self._wrap_linespans(source)
960
- source = self.wrap(source, outfile)
981
+ source = self.wrap(source)
961
982
  if self.linenos == 1:
962
983
  source = self._wrap_tablelinenos(source)
984
+ source = self._wrap_div(source)
963
985
  if self.full:
964
986
  source = self._wrap_full(source, outfile)
965
987
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for Pixmap output.
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
 
@@ -206,13 +206,17 @@ class FontManager:
206
206
  """
207
207
  Get the character size.
208
208
  """
209
- return self.fonts['NORMAL'].getsize('M')
209
+ return self.get_text_size('M')
210
210
 
211
211
  def get_text_size(self, text):
212
212
  """
213
- Get the text size(width, height).
213
+ Get the text size (width, height).
214
214
  """
215
- return self.fonts['NORMAL'].getsize(text)
215
+ font = self.fonts['NORMAL']
216
+ if hasattr(font, 'getbbox'): # Pillow >= 9.2.0
217
+ return font.getbbox(text)[2:4]
218
+ else:
219
+ return font.getsize(text)
216
220
 
217
221
  def get_font(self, bold, oblique):
218
222
  """
@@ -520,7 +524,7 @@ class ImageFormatter(Formatter):
520
524
  text_fg = self._get_text_color(style),
521
525
  text_bg = self._get_text_bg_color(style),
522
526
  )
523
- temp_width, temp_hight = self.fonts.get_text_size(temp)
527
+ temp_width, _ = self.fonts.get_text_size(temp)
524
528
  linelength += temp_width
525
529
  maxlinelength = max(maxlinelength, linelength)
526
530
  charno += len(temp)
@@ -4,12 +4,10 @@
4
4
 
5
5
  Formatter for IRC output
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
 
11
- import sys
12
-
13
11
  from pygments.formatter import Formatter
14
12
  from pygments.token import Keyword, Name, Comment, String, Error, \
15
13
  Number, Operator, Generic, Token, Whitespace
@@ -130,38 +128,12 @@ class IRCFormatter(Formatter):
130
128
  self._lineno = 0
131
129
 
132
130
  def _write_lineno(self, outfile):
133
- self._lineno += 1
134
- outfile.write("\n%04d: " % self._lineno)
135
-
136
- def _format_unencoded_with_lineno(self, tokensource, outfile):
137
- self._write_lineno(outfile)
138
-
139
- for ttype, value in tokensource:
140
- if value.endswith("\n"):
141
- self._write_lineno(outfile)
142
- value = value[:-1]
143
- color = self.colorscheme.get(ttype)
144
- while color is None:
145
- ttype = ttype[:-1]
146
- color = self.colorscheme.get(ttype)
147
- if color:
148
- color = color[self.darkbg]
149
- spl = value.split('\n')
150
- for line in spl[:-1]:
151
- self._write_lineno(outfile)
152
- if line:
153
- outfile.write(ircformat(color, line[:-1]))
154
- if spl[-1]:
155
- outfile.write(ircformat(color, spl[-1]))
156
- else:
157
- outfile.write(value)
158
-
159
- outfile.write("\n")
131
+ if self.linenos:
132
+ self._lineno += 1
133
+ outfile.write("%04d: " % self._lineno)
160
134
 
161
135
  def format_unencoded(self, tokensource, outfile):
162
- if self.linenos:
163
- self._format_unencoded_with_lineno(tokensource, outfile)
164
- return
136
+ self._write_lineno(outfile)
165
137
 
166
138
  for ttype, value in tokensource:
167
139
  color = self.colorscheme.get(ttype)
@@ -175,6 +147,7 @@ class IRCFormatter(Formatter):
175
147
  if line:
176
148
  outfile.write(ircformat(color, line))
177
149
  outfile.write('\n')
150
+ self._write_lineno(outfile)
178
151
  if spl[-1]:
179
152
  outfile.write(ircformat(color, spl[-1]))
180
153
  else:
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for LaTeX fancyvrb output.
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
 
@@ -159,6 +159,8 @@ class LatexFormatter(Formatter):
159
159
  \PY{k}{pass}
160
160
  \end{Verbatim}
161
161
 
162
+ Wrapping can be disabled using the `nowrap` option.
163
+
162
164
  The special command used here (``\PY``) and all the other macros it needs
163
165
  are output by the `get_style_defs` method.
164
166
 
@@ -171,6 +173,11 @@ class LatexFormatter(Formatter):
171
173
 
172
174
  Additional options accepted:
173
175
 
176
+ `nowrap`
177
+ If set to ``True``, don't wrap the tokens at all, not even inside a
178
+ ``\begin{Verbatim}`` environment. This disables most other options
179
+ (default: ``False``).
180
+
174
181
  `style`
175
182
  The style to use, can be a string or a Style subclass (default:
176
183
  ``'default'``).
@@ -248,6 +255,7 @@ class LatexFormatter(Formatter):
248
255
 
249
256
  def __init__(self, **options):
250
257
  Formatter.__init__(self, **options)
258
+ self.nowrap = get_bool_opt(options, 'nowrap', False)
251
259
  self.docclass = options.get('docclass', 'article')
252
260
  self.preamble = options.get('preamble', '')
253
261
  self.linenos = get_bool_opt(options, 'linenos', False)
@@ -334,18 +342,19 @@ class LatexFormatter(Formatter):
334
342
  realoutfile = outfile
335
343
  outfile = StringIO()
336
344
 
337
- outfile.write('\\begin{' + self.envname + '}[commandchars=\\\\\\{\\}')
338
- if self.linenos:
339
- start, step = self.linenostart, self.linenostep
340
- outfile.write(',numbers=left' +
341
- (start and ',firstnumber=%d' % start or '') +
342
- (step and ',stepnumber=%d' % step or ''))
343
- if self.mathescape or self.texcomments or self.escapeinside:
344
- outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7'
345
- '\\catcode`\\_=8\\relax}')
346
- if self.verboptions:
347
- outfile.write(',' + self.verboptions)
348
- outfile.write(']\n')
345
+ if not self.nowrap:
346
+ outfile.write('\\begin{' + self.envname + '}[commandchars=\\\\\\{\\}')
347
+ if self.linenos:
348
+ start, step = self.linenostart, self.linenostep
349
+ outfile.write(',numbers=left' +
350
+ (start and ',firstnumber=%d' % start or '') +
351
+ (step and ',stepnumber=%d' % step or ''))
352
+ if self.mathescape or self.texcomments or self.escapeinside:
353
+ outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7'
354
+ '\\catcode`\\_=8\\relax}')
355
+ if self.verboptions:
356
+ outfile.write(',' + self.verboptions)
357
+ outfile.write(']\n')
349
358
 
350
359
  for ttype, value in tokensource:
351
360
  if ttype in Token.Comment:
@@ -408,7 +417,8 @@ class LatexFormatter(Formatter):
408
417
  else:
409
418
  outfile.write(value)
410
419
 
411
- outfile.write('\\end{' + self.envname + '}\n')
420
+ if not self.nowrap:
421
+ outfile.write('\\end{' + self.envname + '}\n')
412
422
 
413
423
  if self.full:
414
424
  encoding = self.encoding or 'utf8'
@@ -4,7 +4,7 @@
4
4
 
5
5
  Other formatters: NullFormatter, RawTokenFormatter.
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
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for Pango markup output.
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
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  A formatter that generates RTF files.
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
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Formatter for SVG output.
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
 
@@ -4,12 +4,10 @@
4
4
 
5
5
  Formatter for terminal output with ANSI sequences.
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
 
11
- import sys
12
-
13
11
  from pygments.formatter import Formatter
14
12
  from pygments.token import Keyword, Name, Comment, String, Error, \
15
13
  Number, Operator, Generic, Token, Whitespace
@@ -10,7 +10,7 @@
10
10
 
11
11
  Formatter version 1.
12
12
 
13
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
13
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
14
14
  :license: BSD, see LICENSE for details.
15
15
  """
16
16
 
@@ -23,8 +23,6 @@
23
23
  # black-on-while, so colors like "white background" need to be converted
24
24
  # to "white background, black foreground", etc...
25
25
 
26
- import sys
27
-
28
26
  from pygments.formatter import Formatter
29
27
  from pygments.console import codes
30
28
  from pygments.style import ansicolors
@@ -281,7 +279,7 @@ class Terminal256Formatter(Formatter):
281
279
 
282
280
  except KeyError:
283
281
  # ottype = ttype
284
- ttype = ttype[:-1]
282
+ ttype = ttype.parent
285
283
  # outfile.write( '!' + str(ottype) + '->' + str(ttype) + '!' )
286
284
 
287
285
  if not_found: