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.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/ci.yml +28 -0
- data/.github/workflows/release.yml +24 -0
- data/.gitignore +5 -5
- data/CHANGELOG.adoc +128 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +13 -19
- data/bench.rb +8 -7
- data/cache-lexers.rb +3 -2
- data/lexers +0 -0
- data/lib/pygments.rb +10 -11
- data/lib/pygments/lexer.rb +5 -5
- data/lib/pygments/mentos.py +23 -110
- data/lib/pygments/popen.rb +148 -229
- data/lib/pygments/version.rb +2 -2
- data/pygments.rb.gemspec +12 -11
- data/test/test_pygments.rb +46 -104
- data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
- data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
- data/vendor/pygments-main/bin/pygmentize +8 -0
- data/vendor/pygments-main/pygments/__init__.py +6 -11
- data/vendor/pygments-main/pygments/__main__.py +18 -0
- data/vendor/pygments-main/pygments/cmdline.py +94 -41
- data/vendor/pygments-main/pygments/console.py +6 -9
- data/vendor/pygments-main/pygments/filter.py +4 -6
- data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
- data/vendor/pygments-main/pygments/formatter.py +4 -4
- data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +223 -135
- data/vendor/pygments-main/pygments/formatters/img.py +102 -38
- data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
- data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
- data/vendor/pygments-main/pygments/formatters/other.py +12 -8
- data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
- data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
- data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
- data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
- data/vendor/pygments-main/pygments/lexer.py +41 -39
- data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
- data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
- data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
- data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
- data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
- data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
- data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
- data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
- data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
- data/vendor/pygments-main/pygments/lexers/business.py +69 -36
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
- data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
- data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
- data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
- data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
- data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
- data/vendor/pygments-main/pygments/lexers/console.py +1 -1
- data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
- data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
- data/vendor/pygments-main/pygments/lexers/css.py +18 -16
- data/vendor/pygments-main/pygments/lexers/d.py +10 -5
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
- data/vendor/pygments-main/pygments/lexers/data.py +240 -97
- data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
- data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
- data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
- data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
- data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
- data/vendor/pygments-main/pygments/lexers/email.py +151 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
- data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
- data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
- data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
- data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
- data/vendor/pygments-main/pygments/lexers/go.py +1 -1
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
- data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
- data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
- data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
- data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
- data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
- data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
- data/vendor/pygments-main/pygments/lexers/html.py +31 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
- data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
- data/vendor/pygments-main/pygments/lexers/j.py +3 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
- data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
- data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
- data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
- data/vendor/pygments-main/pygments/lexers/make.py +10 -6
- data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
- data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
- data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
- data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
- data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
- data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
- data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
- data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
- data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
- data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
- data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
- data/vendor/pygments-main/pygments/lexers/php.py +64 -10
- data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
- data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
- data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
- data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
- data/vendor/pygments-main/pygments/lexers/python.py +439 -226
- data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
- data/vendor/pygments-main/pygments/lexers/r.py +13 -275
- data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
- data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
- data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
- data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
- data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
- data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
- data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
- data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
- data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
- data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
- data/vendor/pygments-main/pygments/lexers/special.py +5 -3
- data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
- data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
- data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
- data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
- data/vendor/pygments-main/pygments/lexers/text.py +2 -1
- data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
- data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
- data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
- data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
- data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
- data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
- data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
- data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
- data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
- data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
- data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
- data/vendor/pygments-main/pygments/modeline.py +6 -5
- data/vendor/pygments-main/pygments/plugin.py +14 -18
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +2 -2
- data/vendor/pygments-main/pygments/sphinxext.py +2 -4
- data/vendor/pygments-main/pygments/style.py +61 -24
- data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
- data/vendor/pygments-main/pygments/styles/abap.py +29 -0
- data/vendor/pygments-main/pygments/styles/algol.py +1 -1
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
- data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/igor.py +1 -1
- data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/sas.py +3 -0
- data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
- data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
- data/vendor/pygments-main/pygments/token.py +1 -1
- data/vendor/pygments-main/pygments/unistring.py +47 -108
- data/vendor/pygments-main/pygments/util.py +19 -95
- metadata +71 -137
- data/CHANGELOG.md +0 -98
- data/README.md +0 -121
- data/circle.yml +0 -20
- data/test/test_data.c +0 -2581
- data/test/test_data.py +0 -514
- data/test/test_data_generated +0 -2582
- data/vendor/custom_lexers/github.py +0 -565
- data/vendor/pygments-main/CHANGES +0 -1163
- data/vendor/pygments-main/MANIFEST.in +0 -6
- data/vendor/pygments-main/Makefile +0 -65
- data/vendor/pygments-main/README.rst +0 -39
- data/vendor/pygments-main/REVISION +0 -1
- data/vendor/pygments-main/TODO +0 -12
- data/vendor/pygments-main/doc/Makefile +0 -153
- data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
- data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
- data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
- data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
- data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
- data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
- data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
- data/vendor/pygments-main/doc/conf.py +0 -241
- data/vendor/pygments-main/doc/docs/api.rst +0 -331
- data/vendor/pygments-main/doc/docs/authors.rst +0 -4
- data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
- data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
- data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
- data/vendor/pygments-main/doc/docs/filters.rst +0 -41
- data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
- data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
- data/vendor/pygments-main/doc/docs/index.rst +0 -66
- data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
- data/vendor/pygments-main/doc/docs/java.rst +0 -70
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
- data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
- data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
- data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
- data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
- data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
- data/vendor/pygments-main/doc/docs/styles.rst +0 -201
- data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
- data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
- data/vendor/pygments-main/doc/download.rst +0 -41
- data/vendor/pygments-main/doc/faq.rst +0 -139
- data/vendor/pygments-main/doc/index.rst +0 -54
- data/vendor/pygments-main/doc/languages.rst +0 -154
- data/vendor/pygments-main/doc/make.bat +0 -190
- data/vendor/pygments-main/doc/pygmentize.1 +0 -94
- data/vendor/pygments-main/external/autopygmentize +0 -84
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
- data/vendor/pygments-main/external/markdown-processor.py +0 -67
- data/vendor/pygments-main/external/moin-parser.py +0 -112
- data/vendor/pygments-main/external/pygments.bashcomp +0 -38
- data/vendor/pygments-main/external/rst-directive.py +0 -82
- data/vendor/pygments-main/pygmentize +0 -8
- data/vendor/pygments-main/pygments/lexers/github.py +0 -565
- data/vendor/pygments-main/pygments/styles/stata.py +0 -37
- data/vendor/pygments-main/requirements.txt +0 -5
- data/vendor/pygments-main/scripts/check_sources.py +0 -211
- data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
- data/vendor/pygments-main/scripts/epydoc.css +0 -280
- data/vendor/pygments-main/scripts/find_error.py +0 -1
- data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
- data/vendor/pygments-main/scripts/pylintrc +0 -301
- data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
- data/vendor/pygments-main/setup.cfg +0 -10
- data/vendor/pygments-main/setup.py +0 -77
- data/vendor/pygments-main/tox.ini +0 -7
- data/vendor/simplejson/.gitignore +0 -10
- data/vendor/simplejson/.travis.yml +0 -5
- data/vendor/simplejson/CHANGES.txt +0 -291
- data/vendor/simplejson/LICENSE.txt +0 -19
- data/vendor/simplejson/MANIFEST.in +0 -5
- data/vendor/simplejson/README.rst +0 -19
- data/vendor/simplejson/conf.py +0 -179
- data/vendor/simplejson/index.rst +0 -628
- data/vendor/simplejson/scripts/make_docs.py +0 -18
- data/vendor/simplejson/setup.py +0 -104
- data/vendor/simplejson/simplejson/__init__.py +0 -510
- data/vendor/simplejson/simplejson/_speedups.c +0 -2745
- data/vendor/simplejson/simplejson/decoder.py +0 -425
- data/vendor/simplejson/simplejson/encoder.py +0 -567
- data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
- data/vendor/simplejson/simplejson/scanner.py +0 -77
- data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
- data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
- data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
- data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
- data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
- data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
- data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
- data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
- data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
- data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
- data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
- data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
- data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
- data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
- data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
- 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-
|
|
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
|
|
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
|
-
|
|
119
|
-
|
|
121
|
+
|
|
122
|
+
TESTCASE_BEFORE = '''\
|
|
123
|
+
def testNeedsName(lexer):
|
|
120
124
|
fragment = %r
|
|
121
125
|
tokens = [
|
|
122
126
|
'''
|
|
123
|
-
TESTCASE_AFTER =
|
|
127
|
+
TESTCASE_AFTER = '''\
|
|
124
128
|
]
|
|
125
|
-
|
|
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 % (
|
|
152
|
-
during =
|
|
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-
|
|
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,
|
|
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
|
|
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(
|
|
69
|
-
.replace(
|
|
70
|
-
.replace(
|
|
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
|
|
73
|
+
# empty strings, should give a small performance improvement
|
|
74
74
|
if not text:
|
|
75
|
-
return
|
|
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(
|
|
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(
|
|
92
|
+
buf.append('{\\u%d}{\\u%d}' % surrogatepair(cn))
|
|
93
93
|
|
|
94
|
-
return
|
|
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(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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(
|
|
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(
|
|
117
|
+
outfile.write('}\\f0 ')
|
|
118
118
|
if self.fontsize:
|
|
119
|
-
outfile.write(
|
|
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(
|
|
128
|
+
buf.append('\\cb%d' % color_mapping[style['bgcolor']])
|
|
129
129
|
if style['color']:
|
|
130
|
-
buf.append(
|
|
130
|
+
buf.append('\\cf%d' % color_mapping[style['color']])
|
|
131
131
|
if style['bold']:
|
|
132
|
-
buf.append(
|
|
132
|
+
buf.append('\\b')
|
|
133
133
|
if style['italic']:
|
|
134
|
-
buf.append(
|
|
134
|
+
buf.append('\\i')
|
|
135
135
|
if style['underline']:
|
|
136
|
-
buf.append(
|
|
136
|
+
buf.append('\\ul')
|
|
137
137
|
if style['border']:
|
|
138
|
-
buf.append(
|
|
138
|
+
buf.append('\\chbrdr\\chcfpat%d' %
|
|
139
139
|
color_mapping[style['border']])
|
|
140
|
-
start =
|
|
140
|
+
start = ''.join(buf)
|
|
141
141
|
if start:
|
|
142
|
-
outfile.write(
|
|
142
|
+
outfile.write('{%s ' % start)
|
|
143
143
|
outfile.write(self._escape_text(value))
|
|
144
144
|
if start:
|
|
145
|
-
outfile.write(
|
|
145
|
+
outfile.write('}')
|
|
146
146
|
|
|
147
|
-
outfile.write(
|
|
147
|
+
outfile.write('}')
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
Formatter for SVG output.
|
|
7
7
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
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
|
-
|
|
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
|
|
131
|
-
|
|
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-
|
|
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: ('
|
|
30
|
-
Comment: ('
|
|
31
|
-
Comment.Preproc: ('
|
|
32
|
-
Keyword: ('
|
|
33
|
-
Keyword.Type: ('
|
|
34
|
-
Operator.Word: ('
|
|
35
|
-
Name.Builtin: ('
|
|
36
|
-
Name.Function: ('
|
|
37
|
-
Name.Namespace: ('
|
|
38
|
-
Name.Class: ('
|
|
39
|
-
Name.Exception: ('
|
|
40
|
-
Name.Decorator: ('
|
|
41
|
-
Name.Variable: ('
|
|
42
|
-
Name.Constant: ('
|
|
43
|
-
Name.Attribute: ('
|
|
44
|
-
Name.Tag: ('
|
|
45
|
-
String: ('
|
|
46
|
-
Number: ('
|
|
47
|
-
|
|
48
|
-
Generic.Deleted: ('
|
|
49
|
-
Generic.Inserted: ('
|
|
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: ('*
|
|
51
|
+
Generic.Subheading: ('*magenta*', '*brightmagenta*'),
|
|
52
52
|
Generic.Prompt: ('**', '**'),
|
|
53
|
-
Generic.Error: ('
|
|
53
|
+
Generic.Error: ('brightred', 'brightred'),
|
|
54
54
|
|
|
55
|
-
Error: ('
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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())
|