pygments.rb 1.2.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 +5 -5
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/ci.yml +40 -0
- data/.github/workflows/release.yml +24 -0
- data/.gitignore +5 -5
- data/.rubocop.yml +18 -0
- data/CHANGELOG.adoc +132 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +12 -21
- data/bench.rb +14 -8
- data/{cache-lexers.rb → cache_lexers.rb} +3 -2
- data/lexers +0 -0
- data/lib/pygments.rb +10 -11
- data/lib/pygments/lexer.rb +6 -6
- data/lib/pygments/mentos.py +23 -110
- data/lib/pygments/popen.rb +196 -275
- data/lib/pygments/version.rb +2 -2
- data/pygments.rb.gemspec +12 -10
- data/test/test_pygments.rb +50 -110
- data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
- data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
- data/vendor/pygments-main/bin/pygmentize +8 -0
- data/vendor/pygments-main/pygments/__init__.py +6 -12
- data/vendor/pygments-main/pygments/__main__.py +17 -0
- data/vendor/pygments-main/pygments/cmdline.py +213 -184
- data/vendor/pygments-main/pygments/console.py +6 -10
- data/vendor/pygments-main/pygments/filter.py +4 -7
- data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
- data/vendor/pygments-main/pygments/formatter.py +4 -5
- data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
- data/vendor/pygments-main/pygments/formatters/html.py +242 -139
- data/vendor/pygments-main/pygments/formatters/img.py +91 -50
- data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
- data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
- data/vendor/pygments-main/pygments/formatters/other.py +18 -17
- data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
- data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
- data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
- data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
- data/vendor/pygments-main/pygments/lexer.py +47 -44
- data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
- data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
- data/vendor/pygments-main/pygments/lexers/algebra.py +20 -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 +3 -4
- data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
- data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
- data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
- data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
- data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
- data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
- data/vendor/pygments-main/pygments/lexers/business.py +19 -5
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
- data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
- data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
- data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
- data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
- data/vendor/pygments-main/pygments/lexers/console.py +1 -2
- data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
- data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
- data/vendor/pygments-main/pygments/lexers/css.py +28 -23
- data/vendor/pygments-main/pygments/lexers/d.py +12 -8
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
- data/vendor/pygments-main/pygments/lexers/data.py +240 -98
- data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
- data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
- data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
- data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
- data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
- data/vendor/pygments-main/pygments/lexers/email.py +150 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
- data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
- data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
- 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 +82 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
- data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
- data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
- 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 +345 -0
- data/vendor/pygments-main/pygments/lexers/go.py +2 -3
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
- data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
- data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
- data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
- data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
- data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
- data/vendor/pygments-main/pygments/lexers/html.py +37 -26
- data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
- data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
- data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
- data/vendor/pygments-main/pygments/lexers/j.py +4 -5
- data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
- data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
- data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
- data/vendor/pygments-main/pygments/lexers/make.py +12 -9
- data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
- data/vendor/pygments-main/pygments/lexers/math.py +1 -2
- data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
- data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
- data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
- data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
- 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 +17 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
- 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 +47 -83
- data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
- data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
- data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
- data/vendor/pygments-main/pygments/lexers/php.py +66 -13
- data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
- data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
- data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
- data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
- data/vendor/pygments-main/pygments/lexers/python.py +450 -231
- data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
- data/vendor/pygments-main/pygments/lexers/r.py +13 -276
- data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
- data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
- 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 +23 -32
- data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
- data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
- data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
- data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
- data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
- data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
- data/vendor/pygments-main/pygments/lexers/special.py +31 -28
- data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
- data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
- data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
- data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
- data/vendor/pygments-main/pygments/lexers/text.py +2 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
- data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
- data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
- data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
- data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
- data/vendor/pygments-main/pygments/lexers/web.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
- data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
- data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
- data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
- data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
- data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
- data/vendor/pygments-main/pygments/modeline.py +1 -2
- data/vendor/pygments-main/pygments/plugin.py +4 -3
- data/vendor/pygments-main/pygments/regexopt.py +1 -2
- data/vendor/pygments-main/pygments/scanner.py +2 -3
- data/vendor/pygments-main/pygments/sphinxext.py +2 -5
- data/vendor/pygments-main/pygments/style.py +61 -25
- data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
- 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 +2 -3
- 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 +66 -0
- 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 +4 -4
- 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 +136 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
- data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
- 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 +47 -109
- data/vendor/pygments-main/pygments/util.py +16 -96
- metadata +76 -137
- data/CHANGELOG.md +0 -105
- 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 -1186
- 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 -354
- 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 -166
- 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 -728
- 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 -101
- 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/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/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
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexer
|
|
4
3
|
~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Base lexer classes.
|
|
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
|
|
|
12
|
-
from __future__ import print_function
|
|
13
|
-
|
|
14
11
|
import re
|
|
15
12
|
import sys
|
|
16
13
|
import time
|
|
@@ -19,7 +16,7 @@ from pygments.filter import apply_filters, Filter
|
|
|
19
16
|
from pygments.filters import get_filter_by_name
|
|
20
17
|
from pygments.token import Error, Text, Other, _TokenType
|
|
21
18
|
from pygments.util import get_bool_opt, get_int_opt, get_list_opt, \
|
|
22
|
-
make_analysator,
|
|
19
|
+
make_analysator, Future, guess_decode
|
|
23
20
|
from pygments.regexopt import regex_opt
|
|
24
21
|
|
|
25
22
|
__all__ = ['Lexer', 'RegexLexer', 'ExtendedRegexLexer', 'DelegatingLexer',
|
|
@@ -48,8 +45,7 @@ class LexerMeta(type):
|
|
|
48
45
|
return type.__new__(mcs, name, bases, d)
|
|
49
46
|
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
class Lexer(object):
|
|
48
|
+
class Lexer(metaclass=LexerMeta):
|
|
53
49
|
"""
|
|
54
50
|
Lexer for a specific language.
|
|
55
51
|
|
|
@@ -145,16 +141,16 @@ class Lexer(object):
|
|
|
145
141
|
Also preprocess the text, i.e. expand tabs and strip it if
|
|
146
142
|
wanted and applies registered filters.
|
|
147
143
|
"""
|
|
148
|
-
if not isinstance(text,
|
|
144
|
+
if not isinstance(text, str):
|
|
149
145
|
if self.encoding == 'guess':
|
|
150
146
|
text, _ = guess_decode(text)
|
|
151
147
|
elif self.encoding == 'chardet':
|
|
152
148
|
try:
|
|
153
149
|
import chardet
|
|
154
|
-
except ImportError:
|
|
150
|
+
except ImportError as e:
|
|
155
151
|
raise ImportError('To enable chardet encoding guessing, '
|
|
156
152
|
'please install the chardet library '
|
|
157
|
-
'from http://chardet.feedparser.org/')
|
|
153
|
+
'from http://chardet.feedparser.org/') from e
|
|
158
154
|
# check for BOM first
|
|
159
155
|
decoded = None
|
|
160
156
|
for bom, encoding in _encoding_map:
|
|
@@ -169,11 +165,11 @@ class Lexer(object):
|
|
|
169
165
|
text = decoded
|
|
170
166
|
else:
|
|
171
167
|
text = text.decode(self.encoding)
|
|
172
|
-
if text.startswith(
|
|
173
|
-
text = text[len(
|
|
168
|
+
if text.startswith('\ufeff'):
|
|
169
|
+
text = text[len('\ufeff'):]
|
|
174
170
|
else:
|
|
175
|
-
if text.startswith(
|
|
176
|
-
text = text[len(
|
|
171
|
+
if text.startswith('\ufeff'):
|
|
172
|
+
text = text[len('\ufeff'):]
|
|
177
173
|
|
|
178
174
|
# text now *is* a unicode string
|
|
179
175
|
text = text.replace('\r\n', '\n')
|
|
@@ -252,7 +248,7 @@ class include(str): # pylint: disable=invalid-name
|
|
|
252
248
|
pass
|
|
253
249
|
|
|
254
250
|
|
|
255
|
-
class _inherit
|
|
251
|
+
class _inherit:
|
|
256
252
|
"""
|
|
257
253
|
Indicates the a state should inherit from its superclass.
|
|
258
254
|
"""
|
|
@@ -275,7 +271,7 @@ class combined(tuple): # pylint: disable=invalid-name
|
|
|
275
271
|
pass
|
|
276
272
|
|
|
277
273
|
|
|
278
|
-
class _PseudoMatch
|
|
274
|
+
class _PseudoMatch:
|
|
279
275
|
"""
|
|
280
276
|
A pseudo match object constructed from a string.
|
|
281
277
|
"""
|
|
@@ -328,11 +324,12 @@ def bygroups(*args):
|
|
|
328
324
|
return callback
|
|
329
325
|
|
|
330
326
|
|
|
331
|
-
class _This
|
|
327
|
+
class _This:
|
|
332
328
|
"""
|
|
333
329
|
Special singleton used for indicating the caller class.
|
|
334
330
|
Used by ``using``.
|
|
335
331
|
"""
|
|
332
|
+
|
|
336
333
|
this = _This()
|
|
337
334
|
|
|
338
335
|
|
|
@@ -498,7 +495,7 @@ class RegexLexerMeta(LexerMeta):
|
|
|
498
495
|
rex = cls._process_regex(tdef[0], rflags, state)
|
|
499
496
|
except Exception as err:
|
|
500
497
|
raise ValueError("uncompilable regex %r in state %r of %r: %s" %
|
|
501
|
-
(tdef[0], state, cls, err))
|
|
498
|
+
(tdef[0], state, cls, err)) from err
|
|
502
499
|
|
|
503
500
|
token = cls._process_token(tdef[1])
|
|
504
501
|
|
|
@@ -536,7 +533,7 @@ class RegexLexerMeta(LexerMeta):
|
|
|
536
533
|
for c in cls.__mro__:
|
|
537
534
|
toks = c.__dict__.get('tokens', {})
|
|
538
535
|
|
|
539
|
-
for state, items in
|
|
536
|
+
for state, items in toks.items():
|
|
540
537
|
curitems = tokens.get(state)
|
|
541
538
|
if curitems is None:
|
|
542
539
|
# N.b. because this is assigned by reference, sufficiently
|
|
@@ -582,8 +579,7 @@ class RegexLexerMeta(LexerMeta):
|
|
|
582
579
|
return type.__call__(cls, *args, **kwds)
|
|
583
580
|
|
|
584
581
|
|
|
585
|
-
|
|
586
|
-
class RegexLexer(Lexer):
|
|
582
|
+
class RegexLexer(Lexer, metaclass=RegexLexerMeta):
|
|
587
583
|
"""
|
|
588
584
|
Base for simple stateful regular expression-based lexers.
|
|
589
585
|
Simplifies the lexing process so that you need only
|
|
@@ -631,22 +627,27 @@ class RegexLexer(Lexer):
|
|
|
631
627
|
if type(action) is _TokenType:
|
|
632
628
|
yield pos, action, m.group()
|
|
633
629
|
else:
|
|
634
|
-
|
|
635
|
-
yield item
|
|
630
|
+
yield from action(self, m)
|
|
636
631
|
pos = m.end()
|
|
637
632
|
if new_state is not None:
|
|
638
633
|
# state transition
|
|
639
634
|
if isinstance(new_state, tuple):
|
|
640
635
|
for state in new_state:
|
|
641
636
|
if state == '#pop':
|
|
642
|
-
statestack
|
|
637
|
+
if len(statestack) > 1:
|
|
638
|
+
statestack.pop()
|
|
643
639
|
elif state == '#push':
|
|
644
640
|
statestack.append(statestack[-1])
|
|
645
641
|
else:
|
|
646
642
|
statestack.append(state)
|
|
647
643
|
elif isinstance(new_state, int):
|
|
648
|
-
# pop
|
|
649
|
-
|
|
644
|
+
# pop, but keep at least one state on the stack
|
|
645
|
+
# (random code leading to unexpected pops should
|
|
646
|
+
# not allow exceptions)
|
|
647
|
+
if abs(new_state) >= len(statestack):
|
|
648
|
+
del statestack[1:]
|
|
649
|
+
else:
|
|
650
|
+
del statestack[new_state:]
|
|
650
651
|
elif new_state == '#push':
|
|
651
652
|
statestack.append(statestack[-1])
|
|
652
653
|
else:
|
|
@@ -661,7 +662,7 @@ class RegexLexer(Lexer):
|
|
|
661
662
|
# at EOL, reset state to "root"
|
|
662
663
|
statestack = ['root']
|
|
663
664
|
statetokens = tokendefs['root']
|
|
664
|
-
yield pos, Text,
|
|
665
|
+
yield pos, Text, '\n'
|
|
665
666
|
pos += 1
|
|
666
667
|
continue
|
|
667
668
|
yield pos, Error, text[pos]
|
|
@@ -670,7 +671,7 @@ class RegexLexer(Lexer):
|
|
|
670
671
|
break
|
|
671
672
|
|
|
672
673
|
|
|
673
|
-
class LexerContext
|
|
674
|
+
class LexerContext:
|
|
674
675
|
"""
|
|
675
676
|
A helper object that holds lexer position data.
|
|
676
677
|
"""
|
|
@@ -713,8 +714,7 @@ class ExtendedRegexLexer(RegexLexer):
|
|
|
713
714
|
yield ctx.pos, action, m.group()
|
|
714
715
|
ctx.pos = m.end()
|
|
715
716
|
else:
|
|
716
|
-
|
|
717
|
-
yield item
|
|
717
|
+
yield from action(self, m, ctx)
|
|
718
718
|
if not new_state:
|
|
719
719
|
# altered the state stack?
|
|
720
720
|
statetokens = tokendefs[ctx.stack[-1]]
|
|
@@ -724,14 +724,18 @@ class ExtendedRegexLexer(RegexLexer):
|
|
|
724
724
|
if isinstance(new_state, tuple):
|
|
725
725
|
for state in new_state:
|
|
726
726
|
if state == '#pop':
|
|
727
|
-
ctx.stack
|
|
727
|
+
if len(ctx.stack) > 1:
|
|
728
|
+
ctx.stack.pop()
|
|
728
729
|
elif state == '#push':
|
|
729
730
|
ctx.stack.append(ctx.stack[-1])
|
|
730
731
|
else:
|
|
731
732
|
ctx.stack.append(state)
|
|
732
733
|
elif isinstance(new_state, int):
|
|
733
|
-
#
|
|
734
|
-
|
|
734
|
+
# see RegexLexer for why this check is made
|
|
735
|
+
if abs(new_state) >= len(ctx.stack):
|
|
736
|
+
del ctx.state[1:]
|
|
737
|
+
else:
|
|
738
|
+
del ctx.stack[new_state:]
|
|
735
739
|
elif new_state == '#push':
|
|
736
740
|
ctx.stack.append(ctx.stack[-1])
|
|
737
741
|
else:
|
|
@@ -746,7 +750,7 @@ class ExtendedRegexLexer(RegexLexer):
|
|
|
746
750
|
# at EOL, reset state to "root"
|
|
747
751
|
ctx.stack = ['root']
|
|
748
752
|
statetokens = tokendefs['root']
|
|
749
|
-
yield ctx.pos, Text,
|
|
753
|
+
yield ctx.pos, Text, '\n'
|
|
750
754
|
ctx.pos += 1
|
|
751
755
|
continue
|
|
752
756
|
yield ctx.pos, Error, text[ctx.pos]
|
|
@@ -774,8 +778,7 @@ def do_insertions(insertions, tokens):
|
|
|
774
778
|
index, itokens = next(insertions)
|
|
775
779
|
except StopIteration:
|
|
776
780
|
# no insertions
|
|
777
|
-
|
|
778
|
-
yield item
|
|
781
|
+
yield from tokens
|
|
779
782
|
return
|
|
780
783
|
|
|
781
784
|
realpos = None
|
|
@@ -790,8 +793,9 @@ def do_insertions(insertions, tokens):
|
|
|
790
793
|
oldi = 0
|
|
791
794
|
while insleft and i + len(v) >= index:
|
|
792
795
|
tmpval = v[oldi:index - i]
|
|
793
|
-
|
|
794
|
-
|
|
796
|
+
if tmpval:
|
|
797
|
+
yield realpos, t, tmpval
|
|
798
|
+
realpos += len(tmpval)
|
|
795
799
|
for it_index, it_token, it_value in itokens:
|
|
796
800
|
yield realpos, it_token, it_value
|
|
797
801
|
realpos += len(it_value)
|
|
@@ -801,8 +805,9 @@ def do_insertions(insertions, tokens):
|
|
|
801
805
|
except StopIteration:
|
|
802
806
|
insleft = False
|
|
803
807
|
break # not strictly necessary
|
|
804
|
-
|
|
805
|
-
|
|
808
|
+
if oldi < len(v):
|
|
809
|
+
yield realpos, t, v[oldi:]
|
|
810
|
+
realpos += len(v) - oldi
|
|
806
811
|
|
|
807
812
|
# leftover tokens
|
|
808
813
|
while insleft:
|
|
@@ -840,8 +845,7 @@ class ProfilingRegexLexerMeta(RegexLexerMeta):
|
|
|
840
845
|
return match_func
|
|
841
846
|
|
|
842
847
|
|
|
843
|
-
|
|
844
|
-
class ProfilingRegexLexer(RegexLexer):
|
|
848
|
+
class ProfilingRegexLexer(RegexLexer, metaclass=ProfilingRegexLexerMeta):
|
|
845
849
|
"""Drop-in replacement for RegexLexer that does profiling of its regexes."""
|
|
846
850
|
|
|
847
851
|
_prof_data = []
|
|
@@ -850,8 +854,7 @@ class ProfilingRegexLexer(RegexLexer):
|
|
|
850
854
|
def get_tokens_unprocessed(self, text, stack=('root',)):
|
|
851
855
|
# this needs to be a stack, since using(this) will produce nested calls
|
|
852
856
|
self.__class__._prof_data.append({})
|
|
853
|
-
|
|
854
|
-
yield tok
|
|
857
|
+
yield from RegexLexer.get_tokens_unprocessed(self, text, stack)
|
|
855
858
|
rawdata = self.__class__._prof_data.pop()
|
|
856
859
|
data = sorted(((s, repr(r).strip('u\'').replace('\\\\', '\\')[:65],
|
|
857
860
|
n, 1000 * t, 1000 * t / n)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers
|
|
4
3
|
~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Pygments lexers.
|
|
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
|
|
|
@@ -18,11 +17,15 @@ from os.path import basename
|
|
|
18
17
|
from pygments.lexers._mapping import LEXERS
|
|
19
18
|
from pygments.modeline import get_filetype_from_buffer
|
|
20
19
|
from pygments.plugin import find_plugin_lexers
|
|
21
|
-
from pygments.util import ClassNotFound,
|
|
20
|
+
from pygments.util import ClassNotFound, guess_decode
|
|
22
21
|
|
|
22
|
+
COMPAT = {
|
|
23
|
+
'Python3Lexer': 'PythonLexer',
|
|
24
|
+
'Python3TracebackLexer': 'PythonTracebackLexer',
|
|
25
|
+
}
|
|
23
26
|
|
|
24
27
|
__all__ = ['get_lexer_by_name', 'get_lexer_for_filename', 'find_lexer_class',
|
|
25
|
-
'guess_lexer', 'load_lexer_from_file'] + list(LEXERS)
|
|
28
|
+
'guess_lexer', 'load_lexer_from_file'] + list(LEXERS) + list(COMPAT)
|
|
26
29
|
|
|
27
30
|
_lexer_cache = {}
|
|
28
31
|
_pattern_cache = {}
|
|
@@ -48,7 +51,7 @@ def get_all_lexers():
|
|
|
48
51
|
"""Return a generator of tuples in the form ``(name, aliases,
|
|
49
52
|
filenames, mimetypes)`` of all know lexers.
|
|
50
53
|
"""
|
|
51
|
-
for item in
|
|
54
|
+
for item in LEXERS.values():
|
|
52
55
|
yield item[1:]
|
|
53
56
|
for lexer in find_plugin_lexers():
|
|
54
57
|
yield lexer.name, lexer.aliases, lexer.filenames, lexer.mimetypes
|
|
@@ -62,7 +65,7 @@ def find_lexer_class(name):
|
|
|
62
65
|
if name in _lexer_cache:
|
|
63
66
|
return _lexer_cache[name]
|
|
64
67
|
# lookup builtin lexers
|
|
65
|
-
for module_name, lname, aliases, _, _ in
|
|
68
|
+
for module_name, lname, aliases, _, _ in LEXERS.values():
|
|
66
69
|
if name == lname:
|
|
67
70
|
_load_lexers(module_name)
|
|
68
71
|
return _lexer_cache[name]
|
|
@@ -82,7 +85,7 @@ def find_lexer_class_by_name(_alias):
|
|
|
82
85
|
if not _alias:
|
|
83
86
|
raise ClassNotFound('no lexer for alias %r found' % _alias)
|
|
84
87
|
# lookup builtin lexers
|
|
85
|
-
for module_name, name, aliases, _, _ in
|
|
88
|
+
for module_name, name, aliases, _, _ in LEXERS.values():
|
|
86
89
|
if _alias.lower() in aliases:
|
|
87
90
|
if name not in _lexer_cache:
|
|
88
91
|
_load_lexers(module_name)
|
|
@@ -103,7 +106,7 @@ def get_lexer_by_name(_alias, **options):
|
|
|
103
106
|
raise ClassNotFound('no lexer for alias %r found' % _alias)
|
|
104
107
|
|
|
105
108
|
# lookup builtin lexers
|
|
106
|
-
for module_name, name, aliases, _, _ in
|
|
109
|
+
for module_name, name, aliases, _, _ in LEXERS.values():
|
|
107
110
|
if _alias.lower() in aliases:
|
|
108
111
|
if name not in _lexer_cache:
|
|
109
112
|
_load_lexers(module_name)
|
|
@@ -133,7 +136,8 @@ def load_lexer_from_file(filename, lexername="CustomLexer", **options):
|
|
|
133
136
|
try:
|
|
134
137
|
# This empty dict will contain the namespace for the exec'd file
|
|
135
138
|
custom_namespace = {}
|
|
136
|
-
|
|
139
|
+
with open(filename, 'rb') as f:
|
|
140
|
+
exec(f.read(), custom_namespace)
|
|
137
141
|
# Retrieve the class `lexername` from that namespace
|
|
138
142
|
if lexername not in custom_namespace:
|
|
139
143
|
raise ClassNotFound('no valid %s class found in %s' %
|
|
@@ -141,9 +145,9 @@ def load_lexer_from_file(filename, lexername="CustomLexer", **options):
|
|
|
141
145
|
lexer_class = custom_namespace[lexername]
|
|
142
146
|
# And finally instantiate it with the options
|
|
143
147
|
return lexer_class(**options)
|
|
144
|
-
except
|
|
145
|
-
raise ClassNotFound('cannot read %s' % filename)
|
|
146
|
-
except ClassNotFound
|
|
148
|
+
except OSError as err:
|
|
149
|
+
raise ClassNotFound('cannot read %s: %s' % (filename, err))
|
|
150
|
+
except ClassNotFound:
|
|
147
151
|
raise
|
|
148
152
|
except Exception as err:
|
|
149
153
|
raise ClassNotFound('error when loading custom lexer: %s' % err)
|
|
@@ -159,7 +163,7 @@ def find_lexer_class_for_filename(_fn, code=None):
|
|
|
159
163
|
"""
|
|
160
164
|
matches = []
|
|
161
165
|
fn = basename(_fn)
|
|
162
|
-
for modname, name, _, filenames, _ in
|
|
166
|
+
for modname, name, _, filenames, _ in LEXERS.values():
|
|
163
167
|
for filename in filenames:
|
|
164
168
|
if _fn_matches(fn, filename):
|
|
165
169
|
if name not in _lexer_cache:
|
|
@@ -170,7 +174,7 @@ def find_lexer_class_for_filename(_fn, code=None):
|
|
|
170
174
|
if _fn_matches(fn, filename):
|
|
171
175
|
matches.append((cls, filename))
|
|
172
176
|
|
|
173
|
-
if
|
|
177
|
+
if isinstance(code, bytes):
|
|
174
178
|
# decode it, since all analyse_text functions expect unicode
|
|
175
179
|
code = guess_decode(code)
|
|
176
180
|
|
|
@@ -211,7 +215,7 @@ def get_lexer_for_mimetype(_mime, **options):
|
|
|
211
215
|
|
|
212
216
|
Raises ClassNotFound if not found.
|
|
213
217
|
"""
|
|
214
|
-
for modname, name, _, _, mimetypes in
|
|
218
|
+
for modname, name, _, _, mimetypes in LEXERS.values():
|
|
215
219
|
if _mime in mimetypes:
|
|
216
220
|
if name not in _lexer_cache:
|
|
217
221
|
_load_lexers(modname)
|
|
@@ -230,8 +234,7 @@ def _iter_lexerclasses(plugins=True):
|
|
|
230
234
|
_load_lexers(module_name)
|
|
231
235
|
yield _lexer_cache[name]
|
|
232
236
|
if plugins:
|
|
233
|
-
|
|
234
|
-
yield lexer
|
|
237
|
+
yield from find_plugin_lexers()
|
|
235
238
|
|
|
236
239
|
|
|
237
240
|
def guess_lexer_for_filename(_fn, _text, **options):
|
|
@@ -288,6 +291,13 @@ def guess_lexer_for_filename(_fn, _text, **options):
|
|
|
288
291
|
def guess_lexer(_text, **options):
|
|
289
292
|
"""Guess a lexer by strong distinctions in the text (eg, shebang)."""
|
|
290
293
|
|
|
294
|
+
if not isinstance(_text, str):
|
|
295
|
+
inencoding = options.get('inencoding', options.get('encoding'))
|
|
296
|
+
if inencoding:
|
|
297
|
+
_text = _text.decode(inencoding or 'utf8')
|
|
298
|
+
else:
|
|
299
|
+
_text, _ = guess_decode(_text)
|
|
300
|
+
|
|
291
301
|
# try to get a vim modeline first
|
|
292
302
|
ft = get_filetype_from_buffer(_text)
|
|
293
303
|
|
|
@@ -319,6 +329,8 @@ class _automodule(types.ModuleType):
|
|
|
319
329
|
cls = _lexer_cache[info[1]]
|
|
320
330
|
setattr(self, name, cls)
|
|
321
331
|
return cls
|
|
332
|
+
if name in COMPAT:
|
|
333
|
+
return getattr(self, COMPAT[name])
|
|
322
334
|
raise AttributeError(name)
|
|
323
335
|
|
|
324
336
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers._asy_builtins
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
@@ -10,11 +9,11 @@
|
|
|
10
9
|
TODO: perl/python script in Asymptote SVN similar to asy-list.pl but only
|
|
11
10
|
for function and variable names.
|
|
12
11
|
|
|
13
|
-
:copyright: Copyright 2006-
|
|
12
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
14
13
|
:license: BSD, see LICENSE for details.
|
|
15
14
|
"""
|
|
16
15
|
|
|
17
|
-
ASYFUNCNAME =
|
|
16
|
+
ASYFUNCNAME = {
|
|
18
17
|
'AND',
|
|
19
18
|
'Arc',
|
|
20
19
|
'ArcArrow',
|
|
@@ -1038,9 +1037,9 @@ ASYFUNCNAME = set((
|
|
|
1038
1037
|
'ztick',
|
|
1039
1038
|
'ztick3',
|
|
1040
1039
|
'ztrans'
|
|
1041
|
-
|
|
1040
|
+
}
|
|
1042
1041
|
|
|
1043
|
-
ASYVARNAME =
|
|
1042
|
+
ASYVARNAME = {
|
|
1044
1043
|
'AliceBlue',
|
|
1045
1044
|
'Align',
|
|
1046
1045
|
'Allow',
|
|
@@ -1642,4 +1641,4 @@ ASYVARNAME = set((
|
|
|
1642
1641
|
'ylabelwidth',
|
|
1643
1642
|
'zerotickfuzz',
|
|
1644
1643
|
'zerowinding'
|
|
1645
|
-
|
|
1644
|
+
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers._cl_builtins
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
ANSI Common Lisp builtins.
|
|
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
|
|
|
12
|
-
BUILTIN_FUNCTIONS =
|
|
11
|
+
BUILTIN_FUNCTIONS = { # 638 functions
|
|
13
12
|
'<', '<=', '=', '>', '>=', '-', '/', '/=', '*', '+', '1-', '1+',
|
|
14
13
|
'abort', 'abs', 'acons', 'acos', 'acosh', 'add-method', 'adjoin',
|
|
15
14
|
'adjustable-array-p', 'adjust-array', 'allocate-instance',
|
|
@@ -157,17 +156,17 @@ BUILTIN_FUNCTIONS = set(( # 638 functions
|
|
|
157
156
|
'wild-pathname-p', 'write', 'write-byte', 'write-char', 'write-line',
|
|
158
157
|
'write-sequence', 'write-string', 'write-to-string', 'yes-or-no-p',
|
|
159
158
|
'y-or-n-p', 'zerop',
|
|
160
|
-
|
|
159
|
+
}
|
|
161
160
|
|
|
162
|
-
SPECIAL_FORMS =
|
|
161
|
+
SPECIAL_FORMS = {
|
|
163
162
|
'block', 'catch', 'declare', 'eval-when', 'flet', 'function', 'go', 'if',
|
|
164
163
|
'labels', 'lambda', 'let', 'let*', 'load-time-value', 'locally', 'macrolet',
|
|
165
164
|
'multiple-value-call', 'multiple-value-prog1', 'progn', 'progv', 'quote',
|
|
166
165
|
'return-from', 'setq', 'symbol-macrolet', 'tagbody', 'the', 'throw',
|
|
167
166
|
'unwind-protect',
|
|
168
|
-
|
|
167
|
+
}
|
|
169
168
|
|
|
170
|
-
MACROS =
|
|
169
|
+
MACROS = {
|
|
171
170
|
'and', 'assert', 'call-method', 'case', 'ccase', 'check-type', 'cond',
|
|
172
171
|
'ctypecase', 'decf', 'declaim', 'defclass', 'defconstant', 'defgeneric',
|
|
173
172
|
'define-compiler-macro', 'define-condition', 'define-method-combination',
|
|
@@ -188,19 +187,19 @@ MACROS = set((
|
|
|
188
187
|
'with-input-from-string', 'with-open-file', 'with-open-stream',
|
|
189
188
|
'with-output-to-string', 'with-package-iterator', 'with-simple-restart',
|
|
190
189
|
'with-slots', 'with-standard-io-syntax',
|
|
191
|
-
|
|
190
|
+
}
|
|
192
191
|
|
|
193
|
-
LAMBDA_LIST_KEYWORDS =
|
|
192
|
+
LAMBDA_LIST_KEYWORDS = {
|
|
194
193
|
'&allow-other-keys', '&aux', '&body', '&environment', '&key', '&optional',
|
|
195
194
|
'&rest', '&whole',
|
|
196
|
-
|
|
195
|
+
}
|
|
197
196
|
|
|
198
|
-
DECLARATIONS =
|
|
197
|
+
DECLARATIONS = {
|
|
199
198
|
'dynamic-extent', 'ignore', 'optimize', 'ftype', 'inline', 'special',
|
|
200
199
|
'ignorable', 'notinline', 'type',
|
|
201
|
-
|
|
200
|
+
}
|
|
202
201
|
|
|
203
|
-
BUILTIN_TYPES =
|
|
202
|
+
BUILTIN_TYPES = {
|
|
204
203
|
'atom', 'boolean', 'base-char', 'base-string', 'bignum', 'bit',
|
|
205
204
|
'compiled-function', 'extended-char', 'fixnum', 'keyword', 'nil',
|
|
206
205
|
'signed-byte', 'short-float', 'single-float', 'double-float', 'long-float',
|
|
@@ -217,9 +216,9 @@ BUILTIN_TYPES = set((
|
|
|
217
216
|
'simple-type-error', 'simple-warning', 'stream-error', 'storage-condition',
|
|
218
217
|
'style-warning', 'type-error', 'unbound-variable', 'unbound-slot',
|
|
219
218
|
'undefined-function', 'warning',
|
|
220
|
-
|
|
219
|
+
}
|
|
221
220
|
|
|
222
|
-
BUILTIN_CLASSES =
|
|
221
|
+
BUILTIN_CLASSES = {
|
|
223
222
|
'array', 'broadcast-stream', 'bit-vector', 'built-in-class', 'character',
|
|
224
223
|
'class', 'complex', 'concatenated-stream', 'cons', 'echo-stream',
|
|
225
224
|
'file-stream', 'float', 'function', 'generic-function', 'hash-table',
|
|
@@ -229,4 +228,4 @@ BUILTIN_CLASSES = set((
|
|
|
229
228
|
'standard-generic-function', 'standard-method', 'standard-object',
|
|
230
229
|
'string-stream', 'stream', 'string', 'structure-class', 'structure-object',
|
|
231
230
|
'symbol', 'synonym-stream', 't', 'two-way-stream', 'vector',
|
|
232
|
-
|
|
231
|
+
}
|