pygments.rb 1.2.1 → 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 -6
- data/CHANGELOG.adoc +128 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +11 -21
- data/bench.rb +8 -7
- data/cache-lexers.rb +3 -2
- data/lexers +0 -0
- 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/lib/pygments.rb +10 -11
- data/pygments.rb.gemspec +12 -10
- data/test/test_pygments.rb +46 -104
- data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -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 +38 -29
- 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 +9 -8
- 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 +68 -41
- 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 +28 -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 +1 -1
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
- data/vendor/pygments-main/pygments/lexers/_mapping.py +74 -29
- 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 +440 -76
- data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
- 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 +5 -5
- data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
- data/vendor/pygments-main/pygments/lexers/business.py +17 -2
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
- data/vendor/pygments-main/pygments/lexers/c_like.py +67 -42
- data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -7
- data/vendor/pygments-main/pygments/lexers/chapel.py +23 -13
- 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 +187 -36
- data/vendor/pygments-main/pygments/lexers/console.py +1 -1
- data/vendor/pygments-main/pygments/lexers/crystal.py +3 -4
- 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 +144 -62
- 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 +46 -19
- data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -13
- 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 +62 -5
- 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 +48 -21
- 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 +1 -1
- data/vendor/pygments-main/pygments/lexers/html.py +31 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +19 -8
- 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 +60 -45
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -46
- 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 +1 -1
- data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
- 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 +22 -22
- data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
- data/vendor/pygments-main/pygments/lexers/perl.py +260 -148
- 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 -227
- 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 +76 -72
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
- 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 +162 -42
- 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 +3 -3
- 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 -44
- 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 +102 -121
- 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 +4 -11
- 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 +3 -3
- data/vendor/pygments-main/pygments/lexers/verification.py +13 -10
- 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 +31 -28
- data/vendor/pygments-main/pygments/lexers/whiley.py +5 -5
- data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
- data/vendor/pygments-main/pygments/lexers/xorg.py +5 -4
- 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 +1 -1
- data/vendor/pygments-main/pygments/plugin.py +4 -2
- 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 +10 -4
- data/vendor/pygments-main/pygments/styles/abap.py +1 -1
- 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 +1 -1
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/sas.py +1 -1
- 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.py → stata_light.py} +14 -15
- 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 +15 -92
- metadata +68 -136
- data/CHANGELOG.md +0 -111
- 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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexer for scripting and embedded languages.
|
|
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
|
|
|
@@ -15,11 +15,11 @@ from pygments.lexer import RegexLexer, include, bygroups, default, combined, \
|
|
|
15
15
|
words
|
|
16
16
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
|
17
17
|
Number, Punctuation, Error, Whitespace, Other
|
|
18
|
-
from pygments.util import get_bool_opt, get_list_opt
|
|
18
|
+
from pygments.util import get_bool_opt, get_list_opt
|
|
19
19
|
|
|
20
20
|
__all__ = ['LuaLexer', 'MoonScriptLexer', 'ChaiscriptLexer', 'LSLLexer',
|
|
21
21
|
'AppleScriptLexer', 'RexxLexer', 'MOOCodeLexer', 'HybrisLexer',
|
|
22
|
-
'EasytrieveLexer', 'JclLexer']
|
|
22
|
+
'EasytrieveLexer', 'JclLexer', 'MiniScriptLexer']
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class LuaLexer(RegexLexer):
|
|
@@ -104,7 +104,7 @@ class LuaLexer(RegexLexer):
|
|
|
104
104
|
(r'%s(?=%s*[.:])' % (_name, _s), Name.Class),
|
|
105
105
|
(_name, Name.Function, '#pop'),
|
|
106
106
|
# inline function
|
|
107
|
-
('\(', Punctuation, '#pop'),
|
|
107
|
+
(r'\(', Punctuation, '#pop'),
|
|
108
108
|
],
|
|
109
109
|
|
|
110
110
|
'goto': [
|
|
@@ -142,7 +142,7 @@ class LuaLexer(RegexLexer):
|
|
|
142
142
|
self._functions = set()
|
|
143
143
|
if self.func_name_highlighting:
|
|
144
144
|
from pygments.lexers._lua_builtins import MODULES
|
|
145
|
-
for mod, func in
|
|
145
|
+
for mod, func in MODULES.items():
|
|
146
146
|
if mod not in self.disabled_modules:
|
|
147
147
|
self._functions.update(func)
|
|
148
148
|
RegexLexer.__init__(self, **options)
|
|
@@ -157,12 +157,11 @@ class LuaLexer(RegexLexer):
|
|
|
157
157
|
elif '.' in value:
|
|
158
158
|
a, b = value.split('.')
|
|
159
159
|
yield index, Name, a
|
|
160
|
-
yield index + len(a), Punctuation,
|
|
160
|
+
yield index + len(a), Punctuation, '.'
|
|
161
161
|
yield index + len(a) + 1, Name, b
|
|
162
162
|
continue
|
|
163
163
|
yield index, token, value
|
|
164
164
|
|
|
165
|
-
|
|
166
165
|
class MoonScriptLexer(LuaLexer):
|
|
167
166
|
"""
|
|
168
167
|
For `MoonScript <http://moonscript.org>`_ source code.
|
|
@@ -660,18 +659,18 @@ class AppleScriptLexer(RegexLexer):
|
|
|
660
659
|
tokens = {
|
|
661
660
|
'root': [
|
|
662
661
|
(r'\s+', Text),
|
|
663
|
-
(
|
|
662
|
+
(r'¬\n', String.Escape),
|
|
664
663
|
(r"'s\s+", Text), # This is a possessive, consider moving
|
|
665
664
|
(r'(--|#).*?$', Comment),
|
|
666
665
|
(r'\(\*', Comment.Multiline, 'comment'),
|
|
667
666
|
(r'[(){}!,.:]', Punctuation),
|
|
668
|
-
(
|
|
667
|
+
(r'(«)([^»]+)(»)',
|
|
669
668
|
bygroups(Text, Name.Builtin, Text)),
|
|
670
669
|
(r'\b((?:considering|ignoring)\s*)'
|
|
671
670
|
r'(application responses|case|diacriticals|hyphens|'
|
|
672
671
|
r'numeric strings|punctuation|white space)',
|
|
673
672
|
bygroups(Keyword, Name.Builtin)),
|
|
674
|
-
(
|
|
673
|
+
(r'(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)', Operator),
|
|
675
674
|
(r"\b(%s)\b" % '|'.join(Operators), Operator.Word),
|
|
676
675
|
(r'^(\s*(?:on|end)\s+)'
|
|
677
676
|
r'(%s)' % '|'.join(StudioEvents[::-1]),
|
|
@@ -696,8 +695,8 @@ class AppleScriptLexer(RegexLexer):
|
|
|
696
695
|
(r'[-+]?\d+', Number.Integer),
|
|
697
696
|
],
|
|
698
697
|
'comment': [
|
|
699
|
-
('\(\*', Comment.Multiline, '#push'),
|
|
700
|
-
('\*\)', Comment.Multiline, '#pop'),
|
|
698
|
+
(r'\(\*', Comment.Multiline, '#push'),
|
|
699
|
+
(r'\*\)', Comment.Multiline, '#pop'),
|
|
701
700
|
('[^*(]+', Comment.Multiline),
|
|
702
701
|
('[*(]', Comment.Multiline),
|
|
703
702
|
],
|
|
@@ -945,6 +944,15 @@ class HybrisLexer(RegexLexer):
|
|
|
945
944
|
],
|
|
946
945
|
}
|
|
947
946
|
|
|
947
|
+
def analyse_text(text):
|
|
948
|
+
"""public method and private method don't seem to be quite common
|
|
949
|
+
elsewhere."""
|
|
950
|
+
result = 0
|
|
951
|
+
if re.search(r'\b(?:public|private)\s+method\b', text):
|
|
952
|
+
result += 0.01
|
|
953
|
+
return result
|
|
954
|
+
|
|
955
|
+
|
|
948
956
|
|
|
949
957
|
class EasytrieveLexer(RegexLexer):
|
|
950
958
|
"""
|
|
@@ -977,7 +985,7 @@ class EasytrieveLexer(RegexLexer):
|
|
|
977
985
|
_DELIMITER_PATTERN = '[' + _DELIMITERS + ']'
|
|
978
986
|
_DELIMITER_PATTERN_CAPTURE = '(' + _DELIMITER_PATTERN + ')'
|
|
979
987
|
_NON_DELIMITER_OR_COMMENT_PATTERN = '[^' + _DELIMITERS_OR_COMENT + ']'
|
|
980
|
-
_OPERATORS_PATTERN =
|
|
988
|
+
_OPERATORS_PATTERN = '[.+\\-/=\\[\\](){}<>;,&%¬]'
|
|
981
989
|
_KEYWORDS = [
|
|
982
990
|
'AFTER-BREAK', 'AFTER-LINE', 'AFTER-SCREEN', 'AIM', 'AND', 'ATTR',
|
|
983
991
|
'BEFORE', 'BEFORE-BREAK', 'BEFORE-LINE', 'BEFORE-SCREEN', 'BUSHU',
|
|
@@ -1220,3 +1228,57 @@ class JclLexer(RegexLexer):
|
|
|
1220
1228
|
result = 1.0
|
|
1221
1229
|
assert 0.0 <= result <= 1.0
|
|
1222
1230
|
return result
|
|
1231
|
+
|
|
1232
|
+
|
|
1233
|
+
class MiniScriptLexer(RegexLexer):
|
|
1234
|
+
"""
|
|
1235
|
+
For `MiniScript <https://miniscript.org>`_ source code.
|
|
1236
|
+
|
|
1237
|
+
.. versionadded:: 2.6
|
|
1238
|
+
"""
|
|
1239
|
+
|
|
1240
|
+
name = "MiniScript"
|
|
1241
|
+
aliases = ["ms", "miniscript"]
|
|
1242
|
+
filenames = ["*.ms"]
|
|
1243
|
+
mimetypes = ['text/x-minicript', 'application/x-miniscript']
|
|
1244
|
+
|
|
1245
|
+
tokens = {
|
|
1246
|
+
'root': [
|
|
1247
|
+
(r'#!(.*?)$', Comment.Preproc),
|
|
1248
|
+
default('base'),
|
|
1249
|
+
],
|
|
1250
|
+
'base': [
|
|
1251
|
+
('//.*$', Comment.Single),
|
|
1252
|
+
(r'(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?', Number),
|
|
1253
|
+
(r'(?i)\d+e[+-]?\d+', Number),
|
|
1254
|
+
(r'\d+', Number),
|
|
1255
|
+
(r'\n', Text),
|
|
1256
|
+
(r'[^\S\n]+', Text),
|
|
1257
|
+
(r'"', String, 'string_double'),
|
|
1258
|
+
(r'(==|!=|<=|>=|[=+\-*/%^<>.:])', Operator),
|
|
1259
|
+
(r'[;,\[\]{}()]', Punctuation),
|
|
1260
|
+
(words((
|
|
1261
|
+
'break', 'continue', 'else', 'end', 'for', 'function', 'if',
|
|
1262
|
+
'in', 'isa', 'then', 'repeat', 'return', 'while'), suffix=r'\b'),
|
|
1263
|
+
Keyword),
|
|
1264
|
+
(words((
|
|
1265
|
+
'abs', 'acos', 'asin', 'atan', 'ceil', 'char', 'cos', 'floor',
|
|
1266
|
+
'log', 'round', 'rnd', 'pi', 'sign', 'sin', 'sqrt', 'str', 'tan',
|
|
1267
|
+
'hasIndex', 'indexOf', 'len', 'val', 'code', 'remove', 'lower',
|
|
1268
|
+
'upper', 'replace', 'split', 'indexes', 'values', 'join', 'sum',
|
|
1269
|
+
'sort', 'shuffle', 'push', 'pop', 'pull', 'range',
|
|
1270
|
+
'print', 'input', 'time', 'wait', 'locals', 'globals', 'outer',
|
|
1271
|
+
'yield'), suffix=r'\b'),
|
|
1272
|
+
Name.Builtin),
|
|
1273
|
+
(r'(true|false|null)\b', Keyword.Constant),
|
|
1274
|
+
(r'(and|or|not|new)\b', Operator.Word),
|
|
1275
|
+
(r'(self|super|__isa)\b', Name.Builtin.Pseudo),
|
|
1276
|
+
(r'[a-zA-Z_]\w*', Name.Variable)
|
|
1277
|
+
],
|
|
1278
|
+
'string_double': [
|
|
1279
|
+
(r'[^"\n]+', String),
|
|
1280
|
+
(r'""', String),
|
|
1281
|
+
(r'"', String, '#pop'),
|
|
1282
|
+
(r'\n', Text, '#pop'), # Stray linefeed also terminates strings.
|
|
1283
|
+
]
|
|
1284
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
pygments.lexers.sgf
|
|
4
|
+
~~~~~~~~~~~~~~~~~~~
|
|
5
|
+
|
|
6
|
+
Lexer for Smart Game Format (sgf) file format.
|
|
7
|
+
|
|
8
|
+
:copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
|
|
9
|
+
:license: BSD, see LICENSE for details.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from pygments.lexer import RegexLexer, bygroups
|
|
13
|
+
from pygments.token import Name, Literal, String, Text, Punctuation
|
|
14
|
+
|
|
15
|
+
__all__ = ["SmartGameFormatLexer"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class SmartGameFormatLexer(RegexLexer):
|
|
19
|
+
"""
|
|
20
|
+
Lexer for Smart Game Format (sgf) file format.
|
|
21
|
+
|
|
22
|
+
The format is used to store game records of board games for two players
|
|
23
|
+
(mainly Go game).
|
|
24
|
+
For more information about the definition of the format, see:
|
|
25
|
+
https://www.red-bean.com/sgf/
|
|
26
|
+
|
|
27
|
+
.. versionadded:: 2.4
|
|
28
|
+
"""
|
|
29
|
+
name = 'SmartGameFormat'
|
|
30
|
+
aliases = ['sgf']
|
|
31
|
+
filenames = ['*.sgf']
|
|
32
|
+
|
|
33
|
+
tokens = {
|
|
34
|
+
'root': [
|
|
35
|
+
(r'[\s():;]', Punctuation),
|
|
36
|
+
# tokens:
|
|
37
|
+
(r'(A[BW]|AE|AN|AP|AR|AS|[BW]L|BM|[BW]R|[BW]S|[BW]T|CA|CH|CP|CR|'
|
|
38
|
+
r'DD|DM|DO|DT|EL|EV|EX|FF|FG|G[BW]|GC|GM|GN|HA|HO|ID|IP|IT|IY|KM|'
|
|
39
|
+
r'KO|LB|LN|LT|L|MA|MN|M|N|OB|OM|ON|OP|OT|OV|P[BW]|PC|PL|PM|RE|RG|'
|
|
40
|
+
r'RO|RU|SO|SC|SE|SI|SL|SO|SQ|ST|SU|SZ|T[BW]|TC|TE|TM|TR|UC|US|VW|'
|
|
41
|
+
r'V|[BW]|C)',
|
|
42
|
+
Name.Builtin),
|
|
43
|
+
# number:
|
|
44
|
+
(r'(\[)([0-9.]+)(\])',
|
|
45
|
+
bygroups(Punctuation, Literal.Number, Punctuation)),
|
|
46
|
+
# date:
|
|
47
|
+
(r'(\[)([0-9]{4}-[0-9]{2}-[0-9]{2})(\])',
|
|
48
|
+
bygroups(Punctuation, Literal.Date, Punctuation)),
|
|
49
|
+
# point:
|
|
50
|
+
(r'(\[)([a-z]{2})(\])',
|
|
51
|
+
bygroups(Punctuation, String, Punctuation)),
|
|
52
|
+
# double points:
|
|
53
|
+
(r'(\[)([a-z]{2})(:)([a-z]{2})(\])',
|
|
54
|
+
bygroups(Punctuation, String, Punctuation, String, Punctuation)),
|
|
55
|
+
|
|
56
|
+
(r'(\[)([\w\s#()+,\-.:?]+)(\])',
|
|
57
|
+
bygroups(Punctuation, String, Punctuation)),
|
|
58
|
+
(r'(\[)(\s.*)(\])',
|
|
59
|
+
bygroups(Punctuation, Text, Punctuation)),
|
|
60
|
+
],
|
|
61
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexers for various shells.
|
|
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
|
|
|
@@ -19,8 +19,9 @@ from pygments.util import shebang_matches
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer',
|
|
22
|
-
'MSDOSSessionLexer', 'PowerShellLexer',
|
|
23
|
-
'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'
|
|
22
|
+
'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer',
|
|
23
|
+
'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer',
|
|
24
|
+
'ExeclineLexer']
|
|
24
25
|
|
|
25
26
|
line_re = re.compile('.*?\n')
|
|
26
27
|
|
|
@@ -38,7 +39,7 @@ class BashLexer(RegexLexer):
|
|
|
38
39
|
'*.exheres-0', '*.exlib', '*.zsh',
|
|
39
40
|
'.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc',
|
|
40
41
|
'PKGBUILD']
|
|
41
|
-
mimetypes = ['application/x-sh', 'application/x-shellscript']
|
|
42
|
+
mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript']
|
|
42
43
|
|
|
43
44
|
tokens = {
|
|
44
45
|
'root': [
|
|
@@ -76,7 +77,7 @@ class BashLexer(RegexLexer):
|
|
|
76
77
|
(r'&&|\|\|', Operator),
|
|
77
78
|
],
|
|
78
79
|
'data': [
|
|
79
|
-
(r'(?s)\$?"(
|
|
80
|
+
(r'(?s)\$?"(\\.|[^"\\$])*"', String.Double),
|
|
80
81
|
(r'"', String.Double, 'string'),
|
|
81
82
|
(r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
|
|
82
83
|
(r"(?s)'.*?'", String.Single),
|
|
@@ -126,12 +127,38 @@ class BashLexer(RegexLexer):
|
|
|
126
127
|
return 0.2
|
|
127
128
|
|
|
128
129
|
|
|
130
|
+
class SlurmBashLexer(BashLexer):
|
|
131
|
+
"""
|
|
132
|
+
Lexer for (ba|k|z|)sh Slurm scripts.
|
|
133
|
+
|
|
134
|
+
.. versionadded:: 2.4
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
name = 'Slurm'
|
|
138
|
+
aliases = ['slurm', 'sbatch']
|
|
139
|
+
filenames = ['*.sl']
|
|
140
|
+
mimetypes = []
|
|
141
|
+
EXTRA_KEYWORDS = {'srun'}
|
|
142
|
+
|
|
143
|
+
def get_tokens_unprocessed(self, text):
|
|
144
|
+
for index, token, value in BashLexer.get_tokens_unprocessed(self, text):
|
|
145
|
+
if token is Text and value in self.EXTRA_KEYWORDS:
|
|
146
|
+
yield index, Name.Builtin, value
|
|
147
|
+
elif token is Comment.Single and 'SBATCH' in value:
|
|
148
|
+
yield index, Keyword.Pseudo, value
|
|
149
|
+
else:
|
|
150
|
+
yield index, token, value
|
|
151
|
+
|
|
152
|
+
|
|
129
153
|
class ShellSessionBaseLexer(Lexer):
|
|
130
154
|
"""
|
|
131
|
-
Base lexer for
|
|
155
|
+
Base lexer for shell sessions.
|
|
132
156
|
|
|
133
157
|
.. versionadded:: 2.1
|
|
134
158
|
"""
|
|
159
|
+
|
|
160
|
+
_venv = re.compile(r'^(\([^)]*\))(\s*)')
|
|
161
|
+
|
|
135
162
|
def get_tokens_unprocessed(self, text):
|
|
136
163
|
innerlexer = self._innerLexerCls(**self.options)
|
|
137
164
|
|
|
@@ -142,11 +169,24 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
142
169
|
|
|
143
170
|
for match in line_re.finditer(text):
|
|
144
171
|
line = match.group()
|
|
145
|
-
m = re.match(self._ps1rgx, line)
|
|
146
172
|
if backslash_continuation:
|
|
147
173
|
curcode += line
|
|
148
174
|
backslash_continuation = curcode.endswith('\\\n')
|
|
149
|
-
|
|
175
|
+
continue
|
|
176
|
+
|
|
177
|
+
venv_match = self._venv.match(line)
|
|
178
|
+
if venv_match:
|
|
179
|
+
venv = venv_match.group(1)
|
|
180
|
+
venv_whitespace = venv_match.group(2)
|
|
181
|
+
insertions.append((len(curcode),
|
|
182
|
+
[(0, Generic.Prompt.VirtualEnv, venv)]))
|
|
183
|
+
if venv_whitespace:
|
|
184
|
+
insertions.append((len(curcode),
|
|
185
|
+
[(0, Text, venv_whitespace)]))
|
|
186
|
+
line = line[venv_match.end():]
|
|
187
|
+
|
|
188
|
+
m = self._ps1rgx.match(line)
|
|
189
|
+
if m:
|
|
150
190
|
# To support output lexers (say diff output), the output
|
|
151
191
|
# needs to be broken by prompts whenever the output lexer
|
|
152
192
|
# changes.
|
|
@@ -178,7 +218,8 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
178
218
|
|
|
179
219
|
class BashSessionLexer(ShellSessionBaseLexer):
|
|
180
220
|
"""
|
|
181
|
-
Lexer for
|
|
221
|
+
Lexer for Bash shell sessions, i.e. command lines, including a
|
|
222
|
+
prompt, interspersed with output.
|
|
182
223
|
|
|
183
224
|
.. versionadded:: 1.1
|
|
184
225
|
"""
|
|
@@ -189,9 +230,9 @@ class BashSessionLexer(ShellSessionBaseLexer):
|
|
|
189
230
|
mimetypes = ['application/x-shell-session', 'application/x-sh-session']
|
|
190
231
|
|
|
191
232
|
_innerLexerCls = BashLexer
|
|
192
|
-
_ps1rgx =
|
|
233
|
+
_ps1rgx = re.compile(
|
|
193
234
|
r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
|
|
194
|
-
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)'
|
|
235
|
+
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)')
|
|
195
236
|
_ps2 = '>'
|
|
196
237
|
|
|
197
238
|
|
|
@@ -211,14 +252,14 @@ class BatchLexer(RegexLexer):
|
|
|
211
252
|
_nl = r'\n\x1a'
|
|
212
253
|
_punct = r'&<>|'
|
|
213
254
|
_ws = r'\t\v\f\r ,;=\xa0'
|
|
255
|
+
_nlws = r'\s\x1a\xa0,;='
|
|
214
256
|
_space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws)
|
|
215
257
|
_keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' %
|
|
216
258
|
(_nl, _ws, _nl, _punct))
|
|
217
259
|
_token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl)
|
|
218
260
|
_start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws
|
|
219
|
-
_label = r'(?:(?:[^%s%s
|
|
220
|
-
_label_compound =
|
|
221
|
-
(_nl, _punct, _ws, _nl))
|
|
261
|
+
_label = r'(?:(?:[^%s%s+:^]|\^[%s]?[\w\W])*)' % (_nlws, _punct, _nl)
|
|
262
|
+
_label_compound = r'(?:(?:[^%s%s+:^)]|\^[%s]?[^)])*)' % (_nlws, _punct, _nl)
|
|
222
263
|
_number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator
|
|
223
264
|
_opword = r'(?:equ|geq|gtr|leq|lss|neq)'
|
|
224
265
|
_string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl)
|
|
@@ -228,9 +269,8 @@ class BatchLexer(RegexLexer):
|
|
|
228
269
|
r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
|
|
229
270
|
r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' %
|
|
230
271
|
(_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl))
|
|
231
|
-
_core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s
|
|
232
|
-
_core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s
|
|
233
|
-
_punct, _ws)
|
|
272
|
+
_core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s])+)' % (_nl, _nlws, _punct)
|
|
273
|
+
_core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s)])+)' % (_nl, _nlws, _punct)
|
|
234
274
|
_token = r'(?:[%s]+|%s)' % (_punct, _core_token)
|
|
235
275
|
_token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound)
|
|
236
276
|
_stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
|
|
@@ -341,7 +381,8 @@ class BatchLexer(RegexLexer):
|
|
|
341
381
|
return state
|
|
342
382
|
|
|
343
383
|
def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct,
|
|
344
|
-
_string=_string, _variable=_variable,
|
|
384
|
+
_string=_string, _variable=_variable,
|
|
385
|
+
_ws=_ws, _nlws=_nlws):
|
|
345
386
|
op = r'=+\-*/!~'
|
|
346
387
|
state = []
|
|
347
388
|
if compound:
|
|
@@ -352,8 +393,8 @@ class BatchLexer(RegexLexer):
|
|
|
352
393
|
(r'\d+', Number.Integer),
|
|
353
394
|
(r'[(),]+', Punctuation),
|
|
354
395
|
(r'([%s]|%%|\^\^)+' % op, Operator),
|
|
355
|
-
(r'(%s|%s|(\^[%s]?)?[^()%s
|
|
356
|
-
(_string, _variable, _nl, op,
|
|
396
|
+
(r'(%s|%s|(\^[%s]?)?[^()%s%%\^"%s%s]|\^[%s]?%s)+' %
|
|
397
|
+
(_string, _variable, _nl, op, _nlws, _punct, _nlws,
|
|
357
398
|
r'[^)]' if compound else r'[\w\W]'),
|
|
358
399
|
using(this, state='variable')),
|
|
359
400
|
(r'(?=[\x00|&])', Text, '#pop'),
|
|
@@ -387,15 +428,15 @@ class BatchLexer(RegexLexer):
|
|
|
387
428
|
_core_token_compound=_core_token_compound,
|
|
388
429
|
_nl=_nl, _punct=_punct, _stoken=_stoken,
|
|
389
430
|
_string=_string, _space=_space,
|
|
390
|
-
_variable=_variable,
|
|
431
|
+
_variable=_variable, _nlws=_nlws):
|
|
391
432
|
stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
|
|
392
433
|
(_punct, _string, _variable, _core_token_compound))
|
|
393
434
|
return [
|
|
394
|
-
(r'((?:(?<=[%s
|
|
395
|
-
(
|
|
435
|
+
(r'((?:(?<=[%s])\d)?)(>>?&|<&)([%s]*)(\d)' %
|
|
436
|
+
(_nlws, _nlws),
|
|
396
437
|
bygroups(Number.Integer, Punctuation, Text, Number.Integer)),
|
|
397
|
-
(r'((?:(?<=[%s
|
|
398
|
-
(
|
|
438
|
+
(r'((?:(?<=[%s])(?<!\^[%s])\d)?)(>>?|<)(%s?%s)' %
|
|
439
|
+
(_nlws, _nl, _space, stoken_compound if compound else _stoken),
|
|
399
440
|
bygroups(Number.Integer, Punctuation, using(this, state='text')))
|
|
400
441
|
]
|
|
401
442
|
|
|
@@ -434,7 +475,7 @@ class BatchLexer(RegexLexer):
|
|
|
434
475
|
'text': [
|
|
435
476
|
(r'"', String.Double, 'string'),
|
|
436
477
|
include('variable-or-escape'),
|
|
437
|
-
(r'[^"%%^%s%s
|
|
478
|
+
(r'[^"%%^%s%s\d)]+|.' % (_nlws, _punct), Text)
|
|
438
479
|
],
|
|
439
480
|
'variable': [
|
|
440
481
|
(r'"', String.Double, 'string'),
|
|
@@ -455,13 +496,13 @@ class BatchLexer(RegexLexer):
|
|
|
455
496
|
include('follow')
|
|
456
497
|
],
|
|
457
498
|
'for/f': [
|
|
458
|
-
(r'(")((?:%s|[^"])*?")([%s
|
|
499
|
+
(r'(")((?:%s|[^"])*?")([%s]*)(\))' % (_variable, _nlws),
|
|
459
500
|
bygroups(String.Double, using(this, state='string'), Text,
|
|
460
501
|
Punctuation)),
|
|
461
502
|
(r'"', String.Double, ('#pop', 'for2', 'string')),
|
|
462
|
-
(r"('(?:%%%%|%s|[\w\W])*?')([%s
|
|
503
|
+
(r"('(?:%%%%|%s|[\w\W])*?')([%s]*)(\))" % (_variable, _nlws),
|
|
463
504
|
bygroups(using(this, state='sqstring'), Text, Punctuation)),
|
|
464
|
-
(r'(`(?:%%%%|%s|[\w\W])*?`)([%s
|
|
505
|
+
(r'(`(?:%%%%|%s|[\w\W])*?`)([%s]*)(\))' % (_variable, _nlws),
|
|
465
506
|
bygroups(using(this, state='bqstring'), Text, Punctuation)),
|
|
466
507
|
include('for2')
|
|
467
508
|
],
|
|
@@ -507,7 +548,8 @@ class BatchLexer(RegexLexer):
|
|
|
507
548
|
|
|
508
549
|
class MSDOSSessionLexer(ShellSessionBaseLexer):
|
|
509
550
|
"""
|
|
510
|
-
Lexer for
|
|
551
|
+
Lexer for MS DOS shell sessions, i.e. command lines, including a
|
|
552
|
+
prompt, interspersed with output.
|
|
511
553
|
|
|
512
554
|
.. versionadded:: 2.1
|
|
513
555
|
"""
|
|
@@ -518,7 +560,7 @@ class MSDOSSessionLexer(ShellSessionBaseLexer):
|
|
|
518
560
|
mimetypes = []
|
|
519
561
|
|
|
520
562
|
_innerLexerCls = BatchLexer
|
|
521
|
-
_ps1rgx = r'^([^>]
|
|
563
|
+
_ps1rgx = re.compile(r'^([^>]*>)(.*\n?)')
|
|
522
564
|
_ps2 = 'More? '
|
|
523
565
|
|
|
524
566
|
|
|
@@ -592,7 +634,8 @@ class TcshLexer(RegexLexer):
|
|
|
592
634
|
|
|
593
635
|
class TcshSessionLexer(ShellSessionBaseLexer):
|
|
594
636
|
"""
|
|
595
|
-
Lexer for Tcsh sessions.
|
|
637
|
+
Lexer for Tcsh sessions, i.e. command lines, including a
|
|
638
|
+
prompt, interspersed with output.
|
|
596
639
|
|
|
597
640
|
.. versionadded:: 2.1
|
|
598
641
|
"""
|
|
@@ -603,7 +646,7 @@ class TcshSessionLexer(ShellSessionBaseLexer):
|
|
|
603
646
|
mimetypes = []
|
|
604
647
|
|
|
605
648
|
_innerLexerCls = TcshLexer
|
|
606
|
-
_ps1rgx = r'^([^>]+>)(.*\n?)'
|
|
649
|
+
_ps1rgx = re.compile(r'^([^>]+>)(.*\n?)')
|
|
607
650
|
_ps2 = '? '
|
|
608
651
|
|
|
609
652
|
|
|
@@ -638,13 +681,29 @@ class PowerShellLexer(RegexLexer):
|
|
|
638
681
|
'wildcard').split()
|
|
639
682
|
|
|
640
683
|
verbs = (
|
|
641
|
-
'write where wait use update unregister
|
|
642
|
-
'
|
|
643
|
-
'
|
|
644
|
-
'
|
|
645
|
-
'
|
|
646
|
-
'
|
|
647
|
-
'
|
|
684
|
+
'write where watch wait use update unregister unpublish unprotect '
|
|
685
|
+
'unlock uninstall undo unblock trace test tee take sync switch '
|
|
686
|
+
'suspend submit stop step start split sort skip show set send select '
|
|
687
|
+
'search scroll save revoke resume restore restart resolve resize '
|
|
688
|
+
'reset request repair rename remove register redo receive read push '
|
|
689
|
+
'publish protect pop ping out optimize open new move mount merge '
|
|
690
|
+
'measure lock limit join invoke install initialize import hide group '
|
|
691
|
+
'grant get format foreach find export expand exit enter enable edit '
|
|
692
|
+
'dismount disconnect disable deny debug cxnew copy convertto '
|
|
693
|
+
'convertfrom convert connect confirm compress complete compare close '
|
|
694
|
+
'clear checkpoint block backup assert approve aggregate add').split()
|
|
695
|
+
|
|
696
|
+
aliases_ = (
|
|
697
|
+
'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn '
|
|
698
|
+
'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal '
|
|
699
|
+
'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm '
|
|
700
|
+
'gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi '
|
|
701
|
+
'h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp '
|
|
702
|
+
'ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv '
|
|
703
|
+
'oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo '
|
|
704
|
+
'rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select '
|
|
705
|
+
'set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee '
|
|
706
|
+
'trcm type wget where wjb write').split()
|
|
648
707
|
|
|
649
708
|
commenthelp = (
|
|
650
709
|
'component description example externalhelp forwardhelpcategory '
|
|
@@ -672,6 +731,7 @@ class PowerShellLexer(RegexLexer):
|
|
|
672
731
|
(r'(%s)\b' % '|'.join(keywords), Keyword),
|
|
673
732
|
(r'-(%s)\b' % '|'.join(operators), Operator),
|
|
674
733
|
(r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin),
|
|
734
|
+
(r'(%s)\s' % '|'.join(aliases_), Name.Builtin),
|
|
675
735
|
(r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s
|
|
676
736
|
(r'-[a-z_]\w*', Name),
|
|
677
737
|
(r'\w+', Name),
|
|
@@ -706,7 +766,8 @@ class PowerShellLexer(RegexLexer):
|
|
|
706
766
|
|
|
707
767
|
class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
708
768
|
"""
|
|
709
|
-
Lexer for
|
|
769
|
+
Lexer for PowerShell sessions, i.e. command lines, including a
|
|
770
|
+
prompt, interspersed with output.
|
|
710
771
|
|
|
711
772
|
.. versionadded:: 2.1
|
|
712
773
|
"""
|
|
@@ -717,7 +778,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
|
717
778
|
mimetypes = []
|
|
718
779
|
|
|
719
780
|
_innerLexerCls = PowerShellLexer
|
|
720
|
-
_ps1rgx = r'^(PS
|
|
781
|
+
_ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)')
|
|
721
782
|
_ps2 = '>> '
|
|
722
783
|
|
|
723
784
|
|
|
@@ -792,3 +853,62 @@ class FishShellLexer(RegexLexer):
|
|
|
792
853
|
include('root'),
|
|
793
854
|
],
|
|
794
855
|
}
|
|
856
|
+
|
|
857
|
+
class ExeclineLexer(RegexLexer):
|
|
858
|
+
"""
|
|
859
|
+
Lexer for Laurent Bercot's execline language
|
|
860
|
+
(https://skarnet.org/software/execline).
|
|
861
|
+
|
|
862
|
+
.. versionadded:: 2.7
|
|
863
|
+
"""
|
|
864
|
+
|
|
865
|
+
name = 'execline'
|
|
866
|
+
aliases = ['execline']
|
|
867
|
+
filenames = ['*.exec']
|
|
868
|
+
|
|
869
|
+
tokens = {
|
|
870
|
+
'root': [
|
|
871
|
+
include('basic'),
|
|
872
|
+
include('data'),
|
|
873
|
+
include('interp')
|
|
874
|
+
],
|
|
875
|
+
'interp': [
|
|
876
|
+
(r'\$\{', String.Interpol, 'curly'),
|
|
877
|
+
(r'\$[\w@#]+', Name.Variable), # user variable
|
|
878
|
+
(r'\$', Text),
|
|
879
|
+
],
|
|
880
|
+
'basic': [
|
|
881
|
+
(r'\b(background|backtick|cd|define|dollarat|elgetopt|'
|
|
882
|
+
r'elgetpositionals|elglob|emptyenv|envfile|exec|execlineb|'
|
|
883
|
+
r'exit|export|fdblock|fdclose|fdmove|fdreserve|fdswap|'
|
|
884
|
+
r'forbacktickx|foreground|forstdin|forx|getcwd|getpid|heredoc|'
|
|
885
|
+
r'homeof|if|ifelse|ifte|ifthenelse|importas|loopwhilex|'
|
|
886
|
+
r'multidefine|multisubstitute|pipeline|piperw|posix-cd|'
|
|
887
|
+
r'redirfd|runblock|shift|trap|tryexec|umask|unexport|wait|'
|
|
888
|
+
r'withstdinas)\b', Name.Builtin),
|
|
889
|
+
(r'\A#!.+\n', Comment.Hashbang),
|
|
890
|
+
(r'#.*\n', Comment.Single),
|
|
891
|
+
(r'[{}]', Operator)
|
|
892
|
+
],
|
|
893
|
+
'data': [
|
|
894
|
+
(r'(?s)"(\\.|[^"\\$])*"', String.Double),
|
|
895
|
+
(r'"', String.Double, 'string'),
|
|
896
|
+
(r'\s+', Text),
|
|
897
|
+
(r'[^\s{}$"\\]+', Text)
|
|
898
|
+
],
|
|
899
|
+
'string': [
|
|
900
|
+
(r'"', String.Double, '#pop'),
|
|
901
|
+
(r'(?s)(\\\\|\\.|[^"\\$])+', String.Double),
|
|
902
|
+
include('interp'),
|
|
903
|
+
],
|
|
904
|
+
'curly': [
|
|
905
|
+
(r'\}', String.Interpol, '#pop'),
|
|
906
|
+
(r'[\w#@]+', Name.Variable),
|
|
907
|
+
include('root')
|
|
908
|
+
]
|
|
909
|
+
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
def analyse_text(text):
|
|
913
|
+
if shebang_matches(text, r'execlineb'):
|
|
914
|
+
return 1
|