pygments.rb 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +13 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +10 -11
  15. data/lib/pygments/lexer.rb +5 -5
  16. data/lib/pygments/mentos.py +23 -110
  17. data/lib/pygments/popen.rb +148 -229
  18. data/lib/pygments/version.rb +2 -2
  19. data/pygments.rb.gemspec +12 -11
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +94 -41
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +102 -38
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
  81. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +69 -36
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
  140. data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -226
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
  184. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  214. data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +6 -5
  224. data/vendor/pygments-main/pygments/plugin.py +14 -18
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
  230. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +19 -95
  267. metadata +71 -137
  268. data/CHANGELOG.md +0 -98
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1163
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -331
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -84
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/pygments/styles/stata.py +0 -37
  331. data/vendor/pygments-main/requirements.txt +0 -5
  332. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  333. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  334. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  335. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  336. data/vendor/pygments-main/scripts/find_error.py +0 -1
  337. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  338. data/vendor/pygments-main/scripts/pylintrc +0 -301
  339. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  340. data/vendor/pygments-main/setup.cfg +0 -10
  341. data/vendor/pygments-main/setup.py +0 -77
  342. data/vendor/pygments-main/tox.ini +0 -7
  343. data/vendor/simplejson/.gitignore +0 -10
  344. data/vendor/simplejson/.travis.yml +0 -5
  345. data/vendor/simplejson/CHANGES.txt +0 -291
  346. data/vendor/simplejson/LICENSE.txt +0 -19
  347. data/vendor/simplejson/MANIFEST.in +0 -5
  348. data/vendor/simplejson/README.rst +0 -19
  349. data/vendor/simplejson/conf.py +0 -179
  350. data/vendor/simplejson/index.rst +0 -628
  351. data/vendor/simplejson/scripts/make_docs.py +0 -18
  352. data/vendor/simplejson/setup.py +0 -104
  353. data/vendor/simplejson/simplejson/__init__.py +0 -510
  354. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  355. data/vendor/simplejson/simplejson/decoder.py +0 -425
  356. data/vendor/simplejson/simplejson/encoder.py +0 -567
  357. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  358. data/vendor/simplejson/simplejson/scanner.py +0 -77
  359. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  360. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  361. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  362. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  363. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  364. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  365. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  366. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  367. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  368. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  369. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  370. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  371. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  372. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  373. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  374. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  375. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  376. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  377. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  378. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  379. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  380. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  381. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  382. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  383. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,12 +5,12 @@
5
5
 
6
6
  Other formatters: NullFormatter, RawTokenFormatter.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  from pygments.formatter import Formatter
13
- from pygments.util import OptionError, get_choice_opt
13
+ from pygments.util import get_choice_opt
14
14
  from pygments.token import Token
15
15
  from pygments.console import colorize
16
16
 
@@ -87,14 +87,17 @@ class RawTokenFormatter(Formatter):
87
87
  if self.compress == 'gz':
88
88
  import gzip
89
89
  outfile = gzip.GzipFile('', 'wb', 9, outfile)
90
+
90
91
  def write(text):
91
92
  outfile.write(text.encode())
92
93
  flush = outfile.flush
93
94
  elif self.compress == 'bz2':
94
95
  import bz2
95
96
  compressor = bz2.BZ2Compressor(9)
97
+
96
98
  def write(text):
97
99
  outfile.write(compressor.compress(text.encode()))
100
+
98
101
  def flush():
99
102
  outfile.write(compressor.flush())
100
103
  outfile.flush()
@@ -115,14 +118,15 @@ class RawTokenFormatter(Formatter):
115
118
  write("%s\t%r\n" % (ttype, value))
116
119
  flush()
117
120
 
118
- TESTCASE_BEFORE = u'''\
119
- def testNeedsName(self):
121
+
122
+ TESTCASE_BEFORE = '''\
123
+ def testNeedsName(lexer):
120
124
  fragment = %r
121
125
  tokens = [
122
126
  '''
123
- TESTCASE_AFTER = u'''\
127
+ TESTCASE_AFTER = '''\
124
128
  ]
125
- self.assertEqual(tokens, list(self.lexer.get_tokens(fragment)))
129
+ assert list(lexer.get_tokens(fragment)) == tokens
126
130
  '''
127
131
 
128
132
 
@@ -148,8 +152,8 @@ class TestcaseFormatter(Formatter):
148
152
  rawbuf.append(value)
149
153
  outbuf.append('%s(%s, %r),\n' % (indentation, ttype, value))
150
154
 
151
- before = TESTCASE_BEFORE % (u''.join(rawbuf),)
152
- during = u''.join(outbuf)
155
+ before = TESTCASE_BEFORE % (''.join(rawbuf),)
156
+ during = ''.join(outbuf)
153
157
  after = TESTCASE_AFTER
154
158
  if self.encoding is None:
155
159
  outfile.write(before + during + after)
@@ -5,12 +5,12 @@
5
5
 
6
6
  A formatter that generates RTF files.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  from pygments.formatter import Formatter
13
- from pygments.util import get_int_opt, _surrogatepair
13
+ from pygments.util import get_int_opt, surrogatepair
14
14
 
15
15
 
16
16
  __all__ = ['RtfFormatter']
@@ -35,7 +35,7 @@ class RtfFormatter(Formatter):
35
35
  ``'default'``).
36
36
 
37
37
  `fontface`
38
- The used font famliy, for example ``Bitstream Vera Sans``. Defaults to
38
+ The used font family, for example ``Bitstream Vera Sans``. Defaults to
39
39
  some generic font which is supposed to have fixed width.
40
40
 
41
41
  `fontsize`
@@ -65,14 +65,14 @@ class RtfFormatter(Formatter):
65
65
  self.fontsize = get_int_opt(options, 'fontsize', 0)
66
66
 
67
67
  def _escape(self, text):
68
- return text.replace(u'\\', u'\\\\') \
69
- .replace(u'{', u'\\{') \
70
- .replace(u'}', u'\\}')
68
+ return text.replace('\\', '\\\\') \
69
+ .replace('{', '\\{') \
70
+ .replace('}', '\\}')
71
71
 
72
72
  def _escape_text(self, text):
73
- # empty strings, should give a small performance improvment
73
+ # empty strings, should give a small performance improvement
74
74
  if not text:
75
- return u''
75
+ return ''
76
76
 
77
77
  # escape text
78
78
  text = self._escape(text)
@@ -85,21 +85,21 @@ class RtfFormatter(Formatter):
85
85
  buf.append(str(c))
86
86
  elif (2**7) <= cn < (2**16):
87
87
  # single unicode escape sequence
88
- buf.append(u'{\\u%d}' % cn)
88
+ buf.append('{\\u%d}' % cn)
89
89
  elif (2**16) <= cn:
90
90
  # RTF limits unicode to 16 bits.
91
91
  # Force surrogate pairs
92
- buf.append(u'{\\u%d}{\\u%d}' % _surrogatepair(cn))
92
+ buf.append('{\\u%d}{\\u%d}' % surrogatepair(cn))
93
93
 
94
- return u''.join(buf).replace(u'\n', u'\\par\n')
94
+ return ''.join(buf).replace('\n', '\\par\n')
95
95
 
96
96
  def format_unencoded(self, tokensource, outfile):
97
97
  # rtf 1.8 header
98
- outfile.write(u'{\\rtf1\\ansi\\uc0\\deff0'
99
- u'{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0%s;}}'
100
- u'{\\colortbl;' % (self.fontface and
101
- u' ' + self._escape(self.fontface) or
102
- u''))
98
+ outfile.write('{\\rtf1\\ansi\\uc0\\deff0'
99
+ '{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0%s;}}'
100
+ '{\\colortbl;' % (self.fontface and
101
+ ' ' + self._escape(self.fontface) or
102
+ ''))
103
103
 
104
104
  # convert colors and save them in a mapping to access them later.
105
105
  color_mapping = {}
@@ -108,15 +108,15 @@ class RtfFormatter(Formatter):
108
108
  for color in style['color'], style['bgcolor'], style['border']:
109
109
  if color and color not in color_mapping:
110
110
  color_mapping[color] = offset
111
- outfile.write(u'\\red%d\\green%d\\blue%d;' % (
111
+ outfile.write('\\red%d\\green%d\\blue%d;' % (
112
112
  int(color[0:2], 16),
113
113
  int(color[2:4], 16),
114
114
  int(color[4:6], 16)
115
115
  ))
116
116
  offset += 1
117
- outfile.write(u'}\\f0 ')
117
+ outfile.write('}\\f0 ')
118
118
  if self.fontsize:
119
- outfile.write(u'\\fs%d' % (self.fontsize))
119
+ outfile.write('\\fs%d' % self.fontsize)
120
120
 
121
121
  # highlight stream
122
122
  for ttype, value in tokensource:
@@ -125,23 +125,23 @@ class RtfFormatter(Formatter):
125
125
  style = self.style.style_for_token(ttype)
126
126
  buf = []
127
127
  if style['bgcolor']:
128
- buf.append(u'\\cb%d' % color_mapping[style['bgcolor']])
128
+ buf.append('\\cb%d' % color_mapping[style['bgcolor']])
129
129
  if style['color']:
130
- buf.append(u'\\cf%d' % color_mapping[style['color']])
130
+ buf.append('\\cf%d' % color_mapping[style['color']])
131
131
  if style['bold']:
132
- buf.append(u'\\b')
132
+ buf.append('\\b')
133
133
  if style['italic']:
134
- buf.append(u'\\i')
134
+ buf.append('\\i')
135
135
  if style['underline']:
136
- buf.append(u'\\ul')
136
+ buf.append('\\ul')
137
137
  if style['border']:
138
- buf.append(u'\\chbrdr\\chcfpat%d' %
138
+ buf.append('\\chbrdr\\chcfpat%d' %
139
139
  color_mapping[style['border']])
140
- start = u''.join(buf)
140
+ start = ''.join(buf)
141
141
  if start:
142
- outfile.write(u'{%s ' % start)
142
+ outfile.write('{%s ' % start)
143
143
  outfile.write(self._escape_text(value))
144
144
  if start:
145
- outfile.write(u'}')
145
+ outfile.write('}')
146
146
 
147
- outfile.write(u'}')
147
+ outfile.write('}')
@@ -5,11 +5,12 @@
5
5
 
6
6
  Formatter for SVG output.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  from pygments.formatter import Formatter
13
+ from pygments.token import Comment
13
14
  from pygments.util import get_bool_opt, get_int_opt
14
15
 
15
16
  __all__ = ['SvgFormatter']
@@ -52,6 +53,19 @@ class SvgFormatter(Formatter):
52
53
  The value to give the wrapping ``<g>`` element's ``font-size``
53
54
  attribute, defaults to ``"14px"``.
54
55
 
56
+ `linenos`
57
+ If ``True``, add line numbers (default: ``False``).
58
+
59
+ `linenostart`
60
+ The line number for the first line (default: ``1``).
61
+
62
+ `linenostep`
63
+ If set to a number n > 1, only every nth line number is printed.
64
+
65
+ `linenowidth`
66
+ Maximum width devoted to line numbers (default: ``3*ystep``, sufficient
67
+ for up to 4-digit line numbers. Increase width for longer code blocks).
68
+
55
69
  `xoffset`
56
70
  Starting offset in X direction, defaults to ``0``.
57
71
 
@@ -92,6 +106,10 @@ class SvgFormatter(Formatter):
92
106
  self.yoffset = get_int_opt(options, 'yoffset', int_fs)
93
107
  self.ystep = get_int_opt(options, 'ystep', int_fs + 5)
94
108
  self.spacehack = get_bool_opt(options, 'spacehack', True)
109
+ self.linenos = get_bool_opt(options,'linenos',False)
110
+ self.linenostart = get_int_opt(options,'linenostart',1)
111
+ self.linenostep = get_int_opt(options,'linenostep',1)
112
+ self.linenowidth = get_int_opt(options,'linenowidth', 3*self.ystep)
95
113
  self._stylecache = {}
96
114
 
97
115
  def format_unencoded(self, tokensource, outfile):
@@ -115,7 +133,19 @@ class SvgFormatter(Formatter):
115
133
  outfile.write('<svg xmlns="http://www.w3.org/2000/svg">\n')
116
134
  outfile.write('<g font-family="%s" font-size="%s">\n' %
117
135
  (self.fontfamily, self.fontsize))
118
- outfile.write('<text x="%s" y="%s" xml:space="preserve">' % (x, y))
136
+
137
+ counter = self.linenostart
138
+ counter_step = self.linenostep
139
+ counter_style = self._get_style(Comment)
140
+ line_x = x
141
+
142
+ if self.linenos:
143
+ if counter % counter_step == 0:
144
+ outfile.write('<text x="%s" y="%s" %s text-anchor="end">%s</text>' % (x+self.linenowidth,y,counter_style,counter))
145
+ line_x += self.linenowidth + self.ystep
146
+ counter += 1
147
+
148
+ outfile.write('<text x="%s" y="%s" xml:space="preserve">' % (line_x, y))
119
149
  for ttype, value in tokensource:
120
150
  style = self._get_style(ttype)
121
151
  tspan = style and '<tspan' + style + '>' or ''
@@ -127,8 +157,12 @@ class SvgFormatter(Formatter):
127
157
  for part in parts[:-1]:
128
158
  outfile.write(tspan + part + tspanend)
129
159
  y += self.ystep
130
- outfile.write('</text>\n<text x="%s" y="%s" '
131
- 'xml:space="preserve">' % (x, y))
160
+ outfile.write('</text>\n')
161
+ if self.linenos and counter % counter_step == 0:
162
+ outfile.write('<text x="%s" y="%s" text-anchor="end" %s>%s</text>' % (x+self.linenowidth,y,counter_style,counter))
163
+
164
+ counter += 1
165
+ outfile.write('<text x="%s" y="%s" ' 'xml:space="preserve">' % (line_x,y))
132
166
  outfile.write(tspan + parts[-1] + tspanend)
133
167
  outfile.write('</text>')
134
168
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Formatter for terminal output with ANSI sequences.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -26,33 +26,33 @@ __all__ = ['TerminalFormatter']
26
26
  TERMINAL_COLORS = {
27
27
  Token: ('', ''),
28
28
 
29
- Whitespace: ('lightgray', 'darkgray'),
30
- Comment: ('lightgray', 'darkgray'),
31
- Comment.Preproc: ('teal', 'turquoise'),
32
- Keyword: ('darkblue', 'blue'),
33
- Keyword.Type: ('teal', 'turquoise'),
34
- Operator.Word: ('purple', 'fuchsia'),
35
- Name.Builtin: ('teal', 'turquoise'),
36
- Name.Function: ('darkgreen', 'green'),
37
- Name.Namespace: ('_teal_', '_turquoise_'),
38
- Name.Class: ('_darkgreen_', '_green_'),
39
- Name.Exception: ('teal', 'turquoise'),
40
- Name.Decorator: ('darkgray', 'lightgray'),
41
- Name.Variable: ('darkred', 'red'),
42
- Name.Constant: ('darkred', 'red'),
43
- Name.Attribute: ('teal', 'turquoise'),
44
- Name.Tag: ('blue', 'blue'),
45
- String: ('brown', 'brown'),
46
- Number: ('darkblue', 'blue'),
47
-
48
- Generic.Deleted: ('red', 'red'),
49
- Generic.Inserted: ('darkgreen', 'green'),
29
+ Whitespace: ('gray', 'brightblack'),
30
+ Comment: ('gray', 'brightblack'),
31
+ Comment.Preproc: ('cyan', 'brightcyan'),
32
+ Keyword: ('blue', 'brightblue'),
33
+ Keyword.Type: ('cyan', 'brightcyan'),
34
+ Operator.Word: ('magenta', 'brightmagenta'),
35
+ Name.Builtin: ('cyan', 'brightcyan'),
36
+ Name.Function: ('green', 'brightgreen'),
37
+ Name.Namespace: ('_cyan_', '_brightcyan_'),
38
+ Name.Class: ('_green_', '_brightgreen_'),
39
+ Name.Exception: ('cyan', 'brightcyan'),
40
+ Name.Decorator: ('brightblack', 'gray'),
41
+ Name.Variable: ('red', 'brightred'),
42
+ Name.Constant: ('red', 'brightred'),
43
+ Name.Attribute: ('cyan', 'brightcyan'),
44
+ Name.Tag: ('brightblue', 'brightblue'),
45
+ String: ('yellow', 'yellow'),
46
+ Number: ('blue', 'brightblue'),
47
+
48
+ Generic.Deleted: ('brightred', 'brightred'),
49
+ Generic.Inserted: ('green', 'brightgreen'),
50
50
  Generic.Heading: ('**', '**'),
51
- Generic.Subheading: ('*purple*', '*fuchsia*'),
51
+ Generic.Subheading: ('*magenta*', '*brightmagenta*'),
52
52
  Generic.Prompt: ('**', '**'),
53
- Generic.Error: ('red', 'red'),
53
+ Generic.Error: ('brightred', 'brightred'),
54
54
 
55
- Error: ('_red_', '_red_'),
55
+ Error: ('_brightred_', '_brightred_'),
56
56
  }
57
57
 
58
58
 
@@ -92,12 +92,6 @@ class TerminalFormatter(Formatter):
92
92
  self._lineno = 0
93
93
 
94
94
  def format(self, tokensource, outfile):
95
- # hack: if the output is a terminal and has an encoding set,
96
- # use that to avoid unicode encode problems
97
- if not self.encoding and hasattr(outfile, "encoding") and \
98
- hasattr(outfile, "isatty") and outfile.isatty() and \
99
- sys.version_info < (3,):
100
- self.encoding = outfile.encoding
101
95
  return Formatter.format(self, tokensource, outfile)
102
96
 
103
97
  def _write_lineno(self, outfile):
@@ -11,7 +11,7 @@
11
11
 
12
12
  Formatter version 1.
13
13
 
14
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
14
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
15
15
  :license: BSD, see LICENSE for details.
16
16
  """
17
17
 
@@ -35,11 +35,12 @@ __all__ = ['Terminal256Formatter', 'TerminalTrueColorFormatter']
35
35
 
36
36
 
37
37
  class EscapeSequence:
38
- def __init__(self, fg=None, bg=None, bold=False, underline=False):
38
+ def __init__(self, fg=None, bg=None, bold=False, underline=False, italic=False):
39
39
  self.fg = fg
40
40
  self.bg = bg
41
41
  self.bold = bold
42
42
  self.underline = underline
43
+ self.italic = italic
43
44
 
44
45
  def escape(self, attrs):
45
46
  if len(attrs):
@@ -50,7 +51,7 @@ class EscapeSequence:
50
51
  attrs = []
51
52
  if self.fg is not None:
52
53
  if self.fg in ansicolors:
53
- esc = codes[self.fg[5:]]
54
+ esc = codes[self.fg.replace('ansi','')]
54
55
  if ';01m' in esc:
55
56
  self.bold = True
56
57
  # extract fg color code.
@@ -59,7 +60,7 @@ class EscapeSequence:
59
60
  attrs.extend(("38", "5", "%i" % self.fg))
60
61
  if self.bg is not None:
61
62
  if self.bg in ansicolors:
62
- esc = codes[self.bg[5:]]
63
+ esc = codes[self.bg.replace('ansi','')]
63
64
  # extract fg color code, add 10 for bg.
64
65
  attrs.append(str(int(esc[2:4])+10))
65
66
  else:
@@ -68,6 +69,8 @@ class EscapeSequence:
68
69
  attrs.append("01")
69
70
  if self.underline:
70
71
  attrs.append("04")
72
+ if self.italic:
73
+ attrs.append("03")
71
74
  return self.escape(attrs)
72
75
 
73
76
  def true_color_string(self):
@@ -80,6 +83,8 @@ class EscapeSequence:
80
83
  attrs.append("01")
81
84
  if self.underline:
82
85
  attrs.append("04")
86
+ if self.italic:
87
+ attrs.append("03")
83
88
  return self.escape(attrs)
84
89
 
85
90
  def reset_string(self):
@@ -88,7 +93,7 @@ class EscapeSequence:
88
93
  attrs.append("39")
89
94
  if self.bg is not None:
90
95
  attrs.append("49")
91
- if self.bold or self.underline:
96
+ if self.bold or self.underline or self.italic:
92
97
  attrs.append("00")
93
98
  return self.escape(attrs)
94
99
 
@@ -110,6 +115,12 @@ class Terminal256Formatter(Formatter):
110
115
  `Terminal256Formatter` will map these to non extended foreground color.
111
116
  See :ref:`AnsiTerminalStyle` for more information.
112
117
 
118
+ .. versionchanged:: 2.4
119
+ The ANSI color names have been updated with names that are easier to
120
+ understand and align with colornames of other projects and terminals.
121
+ See :ref:`this table <new-ansi-color-names>` for more information.
122
+
123
+
113
124
  Options accepted:
114
125
 
115
126
  `style`
@@ -129,6 +140,7 @@ class Terminal256Formatter(Formatter):
129
140
 
130
141
  self.usebold = 'nobold' not in options
131
142
  self.useunderline = 'nounderline' not in options
143
+ self.useitalic = 'noitalic' not in options
132
144
 
133
145
  self._build_color_table() # build an RGB-to-256 color conversion table
134
146
  self._setup_styles() # convert selected style's colors to term. colors
@@ -189,7 +201,7 @@ class Terminal256Formatter(Formatter):
189
201
  def _color_index(self, color):
190
202
  index = self.best_match.get(color, None)
191
203
  if color in ansicolors:
192
- # strip the `#ansi` part and look up code
204
+ # strip the `ansi/#ansi` part and look up code
193
205
  index = color
194
206
  self.best_match[color] = index
195
207
  if index is None:
@@ -221,16 +233,12 @@ class Terminal256Formatter(Formatter):
221
233
  escape.bold = True
222
234
  if self.useunderline and ndef['underline']:
223
235
  escape.underline = True
236
+ if self.useitalic and ndef['italic']:
237
+ escape.italic = True
224
238
  self.style_string[str(ttype)] = (escape.color_string(),
225
239
  escape.reset_string())
226
240
 
227
241
  def format(self, tokensource, outfile):
228
- # hack: if the output is a terminal and has an encoding set,
229
- # use that to avoid unicode encode problems
230
- if not self.encoding and hasattr(outfile, "encoding") and \
231
- hasattr(outfile, "isatty") and outfile.isatty() and \
232
- sys.version_info < (3,):
233
- self.encoding = outfile.encoding
234
242
  return Formatter.format(self, tokensource, outfile)
235
243
 
236
244
  def format_unencoded(self, tokensource, outfile):
@@ -305,5 +313,7 @@ class TerminalTrueColorFormatter(Terminal256Formatter):
305
313
  escape.bold = True
306
314
  if self.useunderline and ndef['underline']:
307
315
  escape.underline = True
316
+ if self.useitalic and ndef['italic']:
317
+ escape.italic = True
308
318
  self.style_string[str(ttype)] = (escape.true_color_string(),
309
319
  escape.reset_string())