pygments.rb 2.0.0 → 2.1.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 +4 -4
- data/.github/workflows/ci.yml +12 -0
- data/.rubocop.yml +18 -0
- data/CHANGELOG.adoc +4 -0
- data/Rakefile +1 -3
- data/bench.rb +9 -4
- data/{cache-lexers.rb → cache_lexers.rb} +0 -0
- data/lib/pygments/lexer.rb +1 -1
- data/lib/pygments/popen.rb +129 -127
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +1 -1
- data/test/test_pygments.rb +6 -8
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/AUTHORS +5 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/INSTALLER +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/LICENSE +1 -1
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/METADATA +8 -9
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/REQUESTED +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/WHEEL +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/entry_points.txt +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/top_level.txt +0 -0
- data/vendor/pygments-main/pygments/__init__.py +2 -3
- data/vendor/pygments-main/pygments/__main__.py +1 -2
- data/vendor/pygments-main/pygments/cmdline.py +179 -159
- data/vendor/pygments-main/pygments/console.py +1 -2
- data/vendor/pygments-main/pygments/filter.py +1 -2
- data/vendor/pygments-main/pygments/filters/__init__.py +1 -2
- data/vendor/pygments-main/pygments/formatter.py +1 -2
- data/vendor/pygments-main/pygments/formatters/__init__.py +2 -3
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -2
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
- data/vendor/pygments-main/pygments/formatters/html.py +33 -18
- data/vendor/pygments-main/pygments/formatters/img.py +24 -10
- data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
- data/vendor/pygments-main/pygments/formatters/latex.py +8 -9
- data/vendor/pygments-main/pygments/formatters/other.py +7 -10
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -2
- data/vendor/pygments-main/pygments/formatters/svg.py +5 -4
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -2
- data/vendor/pygments-main/pygments/formatters/terminal256.py +24 -3
- data/vendor/pygments-main/pygments/lexer.py +7 -6
- data/vendor/pygments-main/pygments/lexers/__init__.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +16 -12
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_mapping.py +6 -3
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +91 -55
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/actionscript.py +7 -8
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
- data/vendor/pygments-main/pygments/lexers/algebra.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
- data/vendor/pygments-main/pygments/lexers/ampl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/apl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/archetype.py +2 -3
- data/vendor/pygments-main/pygments/lexers/arrow.py +1 -2
- data/vendor/pygments-main/pygments/lexers/asm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
- data/vendor/pygments-main/pygments/lexers/bare.py +1 -2
- data/vendor/pygments-main/pygments/lexers/basic.py +3 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -2
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -5
- data/vendor/pygments-main/pygments/lexers/business.py +3 -4
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +2 -4
- data/vendor/pygments-main/pygments/lexers/c_like.py +1 -2
- data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -2
- data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +3 -4
- data/vendor/pygments-main/pygments/lexers/clean.py +1 -2
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +6 -5
- data/vendor/pygments-main/pygments/lexers/console.py +1 -2
- data/vendor/pygments-main/pygments/lexers/crystal.py +53 -79
- data/vendor/pygments-main/pygments/lexers/csound.py +1 -2
- data/vendor/pygments-main/pygments/lexers/css.py +11 -8
- data/vendor/pygments-main/pygments/lexers/d.py +3 -4
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
- data/vendor/pygments-main/pygments/lexers/data.py +2 -3
- data/vendor/pygments-main/pygments/lexers/devicetree.py +1 -2
- data/vendor/pygments-main/pygments/lexers/diff.py +1 -2
- data/vendor/pygments-main/pygments/lexers/dotnet.py +7 -8
- data/vendor/pygments-main/pygments/lexers/dsls.py +3 -4
- data/vendor/pygments-main/pygments/lexers/dylan.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ecl.py +4 -6
- data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/elm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/email.py +1 -2
- data/vendor/pygments-main/pygments/lexers/erlang.py +1 -2
- data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -2
- data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/floscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
- data/vendor/pygments-main/pygments/lexers/fortran.py +9 -7
- data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +1 -2
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
- data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
- data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/go.py +2 -3
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -2
- data/vendor/pygments-main/pygments/lexers/graph.py +1 -2
- data/vendor/pygments-main/pygments/lexers/graphics.py +3 -4
- data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +1 -2
- data/vendor/pygments-main/pygments/lexers/haxe.py +3 -4
- data/vendor/pygments-main/pygments/lexers/hdl.py +2 -6
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
- data/vendor/pygments-main/pygments/lexers/html.py +7 -8
- data/vendor/pygments-main/pygments/lexers/idl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/igor.py +1 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +1 -2
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -2
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
- data/vendor/pygments-main/pygments/lexers/j.py +2 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +57 -61
- data/vendor/pygments-main/pygments/lexers/julia.py +1 -2
- data/vendor/pygments-main/pygments/lexers/jvm.py +174 -108
- data/vendor/pygments-main/pygments/lexers/lisp.py +7 -8
- data/vendor/pygments-main/pygments/lexers/make.py +3 -4
- data/vendor/pygments-main/pygments/lexers/markup.py +11 -14
- data/vendor/pygments-main/pygments/lexers/math.py +1 -2
- data/vendor/pygments-main/pygments/lexers/matlab.py +2644 -84
- data/vendor/pygments-main/pygments/lexers/mime.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ml.py +7 -8
- data/vendor/pygments-main/pygments/lexers/modeling.py +1 -2
- data/vendor/pygments-main/pygments/lexers/modula2.py +3 -4
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/oberon.py +1 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +3 -4
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +25 -26
- data/vendor/pygments-main/pygments/lexers/pascal.py +1 -2
- data/vendor/pygments-main/pygments/lexers/pawn.py +2 -5
- data/vendor/pygments-main/pygments/lexers/perl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/php.py +3 -4
- data/vendor/pygments-main/pygments/lexers/pointless.py +1 -2
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -2
- data/vendor/pygments-main/pygments/lexers/praat.py +1 -2
- data/vendor/pygments-main/pygments/lexers/prolog.py +3 -4
- data/vendor/pygments-main/pygments/lexers/promql.py +1 -2
- data/vendor/pygments-main/pygments/lexers/python.py +19 -12
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -2
- data/vendor/pygments-main/pygments/lexers/r.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rdf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ride.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ruby.py +30 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +1 -2
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scripting.py +5 -6
- data/vendor/pygments-main/pygments/lexers/sgf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/shell.py +5 -10
- data/vendor/pygments-main/pygments/lexers/sieve.py +1 -2
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -2
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -2
- data/vendor/pygments-main/pygments/lexers/smv.py +1 -2
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/solidity.py +1 -2
- data/vendor/pygments-main/pygments/lexers/special.py +29 -28
- data/vendor/pygments-main/pygments/lexers/sql.py +8 -13
- data/vendor/pygments-main/pygments/lexers/stata.py +1 -2
- data/vendor/pygments-main/pygments/lexers/supercollider.py +3 -4
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/templates.py +15 -16
- data/vendor/pygments-main/pygments/lexers/teraterm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/testing.py +1 -2
- data/vendor/pygments-main/pygments/lexers/text.py +1 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +3 -4
- data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -2
- data/vendor/pygments-main/pygments/lexers/theorem.py +7 -5
- data/vendor/pygments-main/pygments/lexers/tnt.py +1 -2
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -2
- data/vendor/pygments-main/pygments/lexers/urbi.py +3 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +1 -2
- data/vendor/pygments-main/pygments/lexers/varnish.py +2 -3
- data/vendor/pygments-main/pygments/lexers/verification.py +1 -2
- data/vendor/pygments-main/pygments/lexers/web.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webidl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webmisc.py +5 -5
- data/vendor/pygments-main/pygments/lexers/whiley.py +1 -2
- data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
- data/vendor/pygments-main/pygments/lexers/xorg.py +1 -2
- data/vendor/pygments-main/pygments/lexers/yang.py +1 -2
- data/vendor/pygments-main/pygments/lexers/zig.py +1 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -2
- data/vendor/pygments-main/pygments/plugin.py +2 -3
- data/vendor/pygments-main/pygments/regexopt.py +1 -2
- data/vendor/pygments-main/pygments/scanner.py +1 -2
- data/vendor/pygments-main/pygments/sphinxext.py +1 -2
- data/vendor/pygments-main/pygments/style.py +3 -4
- data/vendor/pygments-main/pygments/styles/__init__.py +3 -2
- data/vendor/pygments-main/pygments/styles/abap.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
- data/vendor/pygments-main/pygments/styles/arduino.py +1 -2
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
- data/vendor/pygments-main/pygments/styles/borland.py +1 -2
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
- data/vendor/pygments-main/pygments/styles/default.py +1 -2
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +1 -2
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
- data/vendor/pygments-main/pygments/styles/manni.py +1 -2
- data/vendor/pygments-main/pygments/styles/material.py +118 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +1 -2
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
- data/vendor/pygments-main/pygments/styles/native.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
- data/vendor/pygments-main/pygments/styles/sas.py +1 -2
- data/vendor/pygments-main/pygments/styles/solarized.py +4 -2
- data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/tango.py +1 -2
- data/vendor/pygments-main/pygments/styles/trac.py +1 -2
- data/vendor/pygments-main/pygments/styles/vim.py +1 -2
- data/vendor/pygments-main/pygments/styles/vs.py +1 -2
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
- data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
- data/vendor/pygments-main/pygments/token.py +1 -2
- data/vendor/pygments-main/pygments/unistring.py +1 -2
- data/vendor/pygments-main/pygments/util.py +2 -5
- metadata +21 -14
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +0 -482
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.console
|
4
3
|
~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Format colored console output.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.filter
|
4
3
|
~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Module that implements the default filter.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.filters
|
4
3
|
~~~~~~~~~~~~~~~~
|
@@ -6,7 +5,7 @@
|
|
6
5
|
Module containing filter lookup functions and default
|
7
6
|
filters.
|
8
7
|
|
9
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
10
9
|
:license: BSD, see LICENSE for details.
|
11
10
|
"""
|
12
11
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatter
|
4
3
|
~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Base formatter class.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Pygments formatters.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -107,7 +106,7 @@ def load_formatter_from_file(filename, formattername="CustomFormatter",
|
|
107
106
|
formatter_class = custom_namespace[formattername]
|
108
107
|
# And finally instantiate it with the options
|
109
108
|
return formatter_class(**options)
|
110
|
-
except
|
109
|
+
except OSError as err:
|
111
110
|
raise ClassNotFound('cannot read %s: %s' % (filename, err))
|
112
111
|
except ClassNotFound:
|
113
112
|
raise
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters._mapping
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
@@ -9,7 +8,7 @@
|
|
9
8
|
|
10
9
|
Do not alter the FORMATTERS dictionary by hand.
|
11
10
|
|
12
|
-
:copyright: Copyright 2006-
|
11
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
13
12
|
:license: BSD, see LICENSE for details.
|
14
13
|
"""
|
15
14
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters.bbcode
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
BBcode formatter.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters.html
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Formatter for HTML output.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -63,7 +62,7 @@ def _get_ttype_class(ttype):
|
|
63
62
|
CSSFILE_TEMPLATE = '''\
|
64
63
|
/*
|
65
64
|
generated by Pygments <https://pygments.org/>
|
66
|
-
Copyright 2006-
|
65
|
+
Copyright 2006-2021 by the Pygments team.
|
67
66
|
Licensed under the BSD license, see LICENSE for details.
|
68
67
|
*/
|
69
68
|
%(styledefs)s
|
@@ -74,7 +73,7 @@ DOC_HEADER = '''\
|
|
74
73
|
"http://www.w3.org/TR/html4/strict.dtd">
|
75
74
|
<!--
|
76
75
|
generated by Pygments <https://pygments.org/>
|
77
|
-
Copyright 2006-
|
76
|
+
Copyright 2006-2021 by the Pygments team.
|
78
77
|
Licensed under the BSD license, see LICENSE for details.
|
79
78
|
-->
|
80
79
|
<html>
|
@@ -457,20 +456,20 @@ class HtmlFormatter(Formatter):
|
|
457
456
|
return ''
|
458
457
|
|
459
458
|
def _get_css_classes(self, ttype):
|
460
|
-
"""
|
459
|
+
"""Return the CSS classes of this token type prefixed with the classprefix option."""
|
461
460
|
cls = self._get_css_class(ttype)
|
462
461
|
while ttype not in STANDARD_TYPES:
|
463
462
|
ttype = ttype.parent
|
464
463
|
cls = self._get_css_class(ttype) + ' ' + cls
|
465
|
-
return cls
|
464
|
+
return cls or ''
|
466
465
|
|
467
466
|
def _get_css_inline_styles(self, ttype):
|
468
|
-
"""
|
467
|
+
"""Return the inline CSS styles for this token type."""
|
469
468
|
cclass = self.ttype2class.get(ttype)
|
470
469
|
while cclass is None:
|
471
470
|
ttype = ttype.parent
|
472
471
|
cclass = self.ttype2class.get(ttype)
|
473
|
-
return cclass
|
472
|
+
return cclass or ''
|
474
473
|
|
475
474
|
def _create_stylesheet(self):
|
476
475
|
t2c = self.ttype2class = {Token: ''}
|
@@ -553,9 +552,9 @@ class HtmlFormatter(Formatter):
|
|
553
552
|
def get_linenos_style_defs(self):
|
554
553
|
lines = [
|
555
554
|
'pre { %s }' % self._pre_style,
|
556
|
-
'td.linenos
|
555
|
+
'td.linenos .normal { %s }' % self._linenos_style,
|
557
556
|
'span.linenos { %s }' % self._linenos_style,
|
558
|
-
'td.linenos
|
557
|
+
'td.linenos .special { %s }' % self._linenos_special_style,
|
559
558
|
'span.linenos.special { %s }' % self._linenos_special_style,
|
560
559
|
]
|
561
560
|
|
@@ -628,7 +627,7 @@ class HtmlFormatter(Formatter):
|
|
628
627
|
with open(cssfilename, "w") as cf:
|
629
628
|
cf.write(CSSFILE_TEMPLATE %
|
630
629
|
{'styledefs': self.get_style_defs('body')})
|
631
|
-
except
|
630
|
+
except OSError as err:
|
632
631
|
err.strerror = 'Error writing CSS file: ' + err.strerror
|
633
632
|
raise
|
634
633
|
|
@@ -683,7 +682,7 @@ class HtmlFormatter(Formatter):
|
|
683
682
|
if special_line:
|
684
683
|
style = ' class="special"'
|
685
684
|
else:
|
686
|
-
style = ''
|
685
|
+
style = ' class="normal"'
|
687
686
|
|
688
687
|
if style:
|
689
688
|
line = '<span%s>%s</span>' % (style, line)
|
@@ -710,6 +709,8 @@ class HtmlFormatter(Formatter):
|
|
710
709
|
st = self.linenostep
|
711
710
|
num = self.linenostart
|
712
711
|
mw = len(str(len(inner_lines) + num - 1))
|
712
|
+
la = self.lineanchors
|
713
|
+
aln = self.anchorlinenos
|
713
714
|
nocls = self.noclasses
|
714
715
|
|
715
716
|
for _, inner_line in inner_lines:
|
@@ -733,9 +734,15 @@ class HtmlFormatter(Formatter):
|
|
733
734
|
style = ' class="linenos"'
|
734
735
|
|
735
736
|
if style:
|
736
|
-
|
737
|
+
linenos = '<span%s>%s</span>' % (style, line)
|
738
|
+
else:
|
739
|
+
linenos = line
|
740
|
+
|
741
|
+
if aln:
|
742
|
+
yield 1, ('<a href="#%s-%d">%s</a>' % (la, num, linenos) +
|
743
|
+
inner_line)
|
737
744
|
else:
|
738
|
-
yield 1,
|
745
|
+
yield 1, linenos + inner_line
|
739
746
|
num += 1
|
740
747
|
|
741
748
|
def _wrap_lineanchors(self, inner):
|
@@ -816,9 +823,12 @@ class HtmlFormatter(Formatter):
|
|
816
823
|
cspan = self.span_element_openers[ttype]
|
817
824
|
except KeyError:
|
818
825
|
if nocls:
|
819
|
-
|
826
|
+
css_style = self._get_css_inline_styles(ttype)
|
827
|
+
cspan = css_style and '<span style="%s">' % self.class2style[css_style][0] or ''
|
820
828
|
else:
|
821
|
-
|
829
|
+
css_class = self._get_css_classes(ttype)
|
830
|
+
cspan = css_class and '<span class="%s">' % css_class or ''
|
831
|
+
self.span_element_openers[ttype] = cspan
|
822
832
|
|
823
833
|
parts = self._translate_parts(value)
|
824
834
|
|
@@ -920,11 +930,16 @@ class HtmlFormatter(Formatter):
|
|
920
930
|
linewise, e.g. line number generators.
|
921
931
|
"""
|
922
932
|
source = self._format_lines(tokensource)
|
933
|
+
|
934
|
+
# As a special case, we wrap line numbers before line highlighting
|
935
|
+
# so the line numbers get wrapped in the highlighting tag.
|
936
|
+
if not self.nowrap and self.linenos == 2:
|
937
|
+
source = self._wrap_inlinelinenos(source)
|
938
|
+
|
923
939
|
if self.hl_lines:
|
924
940
|
source = self._highlight_lines(source)
|
941
|
+
|
925
942
|
if not self.nowrap:
|
926
|
-
if self.linenos == 2:
|
927
|
-
source = self._wrap_inlinelinenos(source)
|
928
943
|
if self.lineanchors:
|
929
944
|
source = self._wrap_lineanchors(source)
|
930
945
|
if self.linespans:
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters.img
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Formatter for Pixmap output.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -156,7 +155,7 @@ class FontManager:
|
|
156
155
|
valname = '%s%s%s' % (basename, style and ' '+style, suffix)
|
157
156
|
val, _ = _winreg.QueryValueEx(key, valname)
|
158
157
|
return val
|
159
|
-
except
|
158
|
+
except OSError:
|
160
159
|
continue
|
161
160
|
else:
|
162
161
|
if fail:
|
@@ -190,7 +189,7 @@ class FontManager:
|
|
190
189
|
lookuperror = err
|
191
190
|
finally:
|
192
191
|
_winreg.CloseKey(key)
|
193
|
-
except
|
192
|
+
except OSError:
|
194
193
|
pass
|
195
194
|
else:
|
196
195
|
# If we get here, we checked all registry keys and had no luck
|
@@ -453,6 +452,16 @@ class ImageFormatter(Formatter):
|
|
453
452
|
fill = '#000'
|
454
453
|
return fill
|
455
454
|
|
455
|
+
def _get_text_bg_color(self, style):
|
456
|
+
"""
|
457
|
+
Get the correct background color for the token from the style.
|
458
|
+
"""
|
459
|
+
if style['bgcolor'] is not None:
|
460
|
+
bg_color = '#' + style['bgcolor']
|
461
|
+
else:
|
462
|
+
bg_color = None
|
463
|
+
return bg_color
|
464
|
+
|
456
465
|
def _get_style_font(self, style):
|
457
466
|
"""
|
458
467
|
Get the correct font for the style.
|
@@ -475,14 +484,15 @@ class ImageFormatter(Formatter):
|
|
475
484
|
str(lineno).rjust(self.line_number_chars),
|
476
485
|
font=self.fonts.get_font(self.line_number_bold,
|
477
486
|
self.line_number_italic),
|
478
|
-
|
487
|
+
text_fg=self.line_number_fg,
|
488
|
+
text_bg=None,
|
479
489
|
)
|
480
490
|
|
481
|
-
def _draw_text(self, pos, text, font,
|
491
|
+
def _draw_text(self, pos, text, font, text_fg, text_bg):
|
482
492
|
"""
|
483
493
|
Remember a single drawable tuple to paint later.
|
484
494
|
"""
|
485
|
-
self.drawables.append((pos, text, font,
|
495
|
+
self.drawables.append((pos, text, font, text_fg, text_bg))
|
486
496
|
|
487
497
|
def _create_drawables(self, tokensource):
|
488
498
|
"""
|
@@ -507,7 +517,8 @@ class ImageFormatter(Formatter):
|
|
507
517
|
self._get_text_pos(linelength, lineno),
|
508
518
|
temp,
|
509
519
|
font = self._get_style_font(style),
|
510
|
-
|
520
|
+
text_fg = self._get_text_color(style),
|
521
|
+
text_bg = self._get_text_bg_color(style),
|
511
522
|
)
|
512
523
|
temp_width, temp_hight = self.fonts.get_text_size(temp)
|
513
524
|
linelength += temp_width
|
@@ -577,8 +588,11 @@ class ImageFormatter(Formatter):
|
|
577
588
|
y = self._get_line_y(linenumber - 1)
|
578
589
|
draw.rectangle([(x, y), (x + rectw, y + recth)],
|
579
590
|
fill=self.hl_color)
|
580
|
-
for pos, value, font,
|
581
|
-
|
591
|
+
for pos, value, font, text_fg, text_bg in self.drawables:
|
592
|
+
if text_bg:
|
593
|
+
text_size = draw.textsize(text=value, font=font)
|
594
|
+
draw.rectangle([pos[0], pos[1], pos[0] + text_size[0], pos[1] + text_size[1]], fill=text_bg)
|
595
|
+
draw.text(pos, value, font=font, fill=text_fg)
|
582
596
|
im.save(outfile, self.image_format.upper())
|
583
597
|
|
584
598
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters.irc
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Formatter for IRC output
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters.latex
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Formatter for LaTeX fancyvrb output.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -300,13 +299,13 @@ class LatexFormatter(Formatter):
|
|
300
299
|
cmndef += (r'\def\$$@tc##1{\textcolor[rgb]{%s}{##1}}' %
|
301
300
|
rgbcolor(ndef['color']))
|
302
301
|
if ndef['border']:
|
303
|
-
cmndef += (r'\def\$$@bc##1{\setlength{\fboxsep}{
|
304
|
-
r'\fcolorbox[rgb]{%s}{%s}{\strut ##1}}' %
|
302
|
+
cmndef += (r'\def\$$@bc##1{{\setlength{\fboxsep}{-\fboxrule}'
|
303
|
+
r'\fcolorbox[rgb]{%s}{%s}{\strut ##1}}}' %
|
305
304
|
(rgbcolor(ndef['border']),
|
306
305
|
rgbcolor(ndef['bgcolor'])))
|
307
306
|
elif ndef['bgcolor']:
|
308
|
-
cmndef += (r'\def\$$@bc##1{\setlength{\fboxsep}{0pt}'
|
309
|
-
r'\colorbox[rgb]{%s}{\strut ##1}}' %
|
307
|
+
cmndef += (r'\def\$$@bc##1{{\setlength{\fboxsep}{0pt}'
|
308
|
+
r'\colorbox[rgb]{%s}{\strut ##1}}}' %
|
310
309
|
rgbcolor(ndef['bgcolor']))
|
311
310
|
if cmndef == '':
|
312
311
|
continue
|
@@ -322,8 +321,7 @@ class LatexFormatter(Formatter):
|
|
322
321
|
cp = self.commandprefix
|
323
322
|
styles = []
|
324
323
|
for name, definition in self.cmd2def.items():
|
325
|
-
styles.append(r'
|
326
|
-
(cp, name, definition))
|
324
|
+
styles.append(r'\@namedef{%s@tok@%s}{%s}' % (cp, name, definition))
|
327
325
|
return STYLE_TEMPLATE % {'cp': self.commandprefix,
|
328
326
|
'styles': '\n'.join(styles)}
|
329
327
|
|
@@ -343,7 +341,8 @@ class LatexFormatter(Formatter):
|
|
343
341
|
(start and ',firstnumber=%d' % start or '') +
|
344
342
|
(step and ',stepnumber=%d' % step or ''))
|
345
343
|
if self.mathescape or self.texcomments or self.escapeinside:
|
346
|
-
outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7
|
344
|
+
outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7'
|
345
|
+
'\\catcode`\\_=8\\relax}')
|
347
346
|
if self.verboptions:
|
348
347
|
outfile.write(',' + self.verboptions)
|
349
348
|
outfile.write(']\n')
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.formatters.other
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Other formatters: NullFormatter, RawTokenFormatter.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
@@ -88,34 +87,32 @@ class RawTokenFormatter(Formatter):
|
|
88
87
|
import gzip
|
89
88
|
outfile = gzip.GzipFile('', 'wb', 9, outfile)
|
90
89
|
|
91
|
-
|
92
|
-
|
93
|
-
flush = outfile.flush
|
90
|
+
write = outfile.write
|
91
|
+
flush = outfile.close
|
94
92
|
elif self.compress == 'bz2':
|
95
93
|
import bz2
|
96
94
|
compressor = bz2.BZ2Compressor(9)
|
97
95
|
|
98
96
|
def write(text):
|
99
|
-
outfile.write(compressor.compress(text
|
97
|
+
outfile.write(compressor.compress(text))
|
100
98
|
|
101
99
|
def flush():
|
102
100
|
outfile.write(compressor.flush())
|
103
101
|
outfile.flush()
|
104
102
|
else:
|
105
|
-
|
106
|
-
outfile.write(text.encode())
|
103
|
+
write = outfile.write
|
107
104
|
flush = outfile.flush
|
108
105
|
|
109
106
|
if self.error_color:
|
110
107
|
for ttype, value in tokensource:
|
111
|
-
line = "%
|
108
|
+
line = b"%r\t%r\n" % (ttype, value)
|
112
109
|
if ttype is Token.Error:
|
113
110
|
write(colorize(self.error_color, line))
|
114
111
|
else:
|
115
112
|
write(line)
|
116
113
|
else:
|
117
114
|
for ttype, value in tokensource:
|
118
|
-
write("%
|
115
|
+
write(b"%r\t%r\n" % (ttype, value))
|
119
116
|
flush()
|
120
117
|
|
121
118
|
|