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
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pygments.lexers.sgf
|
|
3
|
+
~~~~~~~~~~~~~~~~~~~
|
|
4
|
+
|
|
5
|
+
Lexer for Smart Game Format (sgf) file format.
|
|
6
|
+
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
8
|
+
:license: BSD, see LICENSE for details.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from pygments.lexer import RegexLexer, bygroups
|
|
12
|
+
from pygments.token import Name, Literal, String, Text, Punctuation
|
|
13
|
+
|
|
14
|
+
__all__ = ["SmartGameFormatLexer"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class SmartGameFormatLexer(RegexLexer):
|
|
18
|
+
"""
|
|
19
|
+
Lexer for Smart Game Format (sgf) file format.
|
|
20
|
+
|
|
21
|
+
The format is used to store game records of board games for two players
|
|
22
|
+
(mainly Go game).
|
|
23
|
+
For more information about the definition of the format, see:
|
|
24
|
+
https://www.red-bean.com/sgf/
|
|
25
|
+
|
|
26
|
+
.. versionadded:: 2.4
|
|
27
|
+
"""
|
|
28
|
+
name = 'SmartGameFormat'
|
|
29
|
+
aliases = ['sgf']
|
|
30
|
+
filenames = ['*.sgf']
|
|
31
|
+
|
|
32
|
+
tokens = {
|
|
33
|
+
'root': [
|
|
34
|
+
(r'[\s():;]', Punctuation),
|
|
35
|
+
# tokens:
|
|
36
|
+
(r'(A[BW]|AE|AN|AP|AR|AS|[BW]L|BM|[BW]R|[BW]S|[BW]T|CA|CH|CP|CR|'
|
|
37
|
+
r'DD|DM|DO|DT|EL|EV|EX|FF|FG|G[BW]|GC|GM|GN|HA|HO|ID|IP|IT|IY|KM|'
|
|
38
|
+
r'KO|LB|LN|LT|L|MA|MN|M|N|OB|OM|ON|OP|OT|OV|P[BW]|PC|PL|PM|RE|RG|'
|
|
39
|
+
r'RO|RU|SO|SC|SE|SI|SL|SO|SQ|ST|SU|SZ|T[BW]|TC|TE|TM|TR|UC|US|VW|'
|
|
40
|
+
r'V|[BW]|C)',
|
|
41
|
+
Name.Builtin),
|
|
42
|
+
# number:
|
|
43
|
+
(r'(\[)([0-9.]+)(\])',
|
|
44
|
+
bygroups(Punctuation, Literal.Number, Punctuation)),
|
|
45
|
+
# date:
|
|
46
|
+
(r'(\[)([0-9]{4}-[0-9]{2}-[0-9]{2})(\])',
|
|
47
|
+
bygroups(Punctuation, Literal.Date, Punctuation)),
|
|
48
|
+
# point:
|
|
49
|
+
(r'(\[)([a-z]{2})(\])',
|
|
50
|
+
bygroups(Punctuation, String, Punctuation)),
|
|
51
|
+
# double points:
|
|
52
|
+
(r'(\[)([a-z]{2})(:)([a-z]{2})(\])',
|
|
53
|
+
bygroups(Punctuation, String, Punctuation, String, Punctuation)),
|
|
54
|
+
|
|
55
|
+
(r'(\[)([\w\s#()+,\-.:?]+)(\])',
|
|
56
|
+
bygroups(Punctuation, String, Punctuation)),
|
|
57
|
+
(r'(\[)(\s.*)(\])',
|
|
58
|
+
bygroups(Punctuation, Text, Punctuation)),
|
|
59
|
+
],
|
|
60
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.shell
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for various shells.
|
|
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
|
|
|
@@ -19,8 +18,9 @@ from pygments.util import shebang_matches
|
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer',
|
|
22
|
-
'MSDOSSessionLexer', 'PowerShellLexer',
|
|
23
|
-
'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'
|
|
21
|
+
'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer',
|
|
22
|
+
'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer',
|
|
23
|
+
'ExeclineLexer']
|
|
24
24
|
|
|
25
25
|
line_re = re.compile('.*?\n')
|
|
26
26
|
|
|
@@ -38,7 +38,7 @@ class BashLexer(RegexLexer):
|
|
|
38
38
|
'*.exheres-0', '*.exlib', '*.zsh',
|
|
39
39
|
'.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc',
|
|
40
40
|
'PKGBUILD']
|
|
41
|
-
mimetypes = ['application/x-sh', 'application/x-shellscript']
|
|
41
|
+
mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript']
|
|
42
42
|
|
|
43
43
|
tokens = {
|
|
44
44
|
'root': [
|
|
@@ -56,7 +56,7 @@ class BashLexer(RegexLexer):
|
|
|
56
56
|
(r'\$', Text),
|
|
57
57
|
],
|
|
58
58
|
'basic': [
|
|
59
|
-
(r'\b(if|fi|else|while|do|done|for|then|return|function|case|'
|
|
59
|
+
(r'\b(if|fi|else|while|in|do|done|for|then|return|function|case|'
|
|
60
60
|
r'select|continue|until|esac|elif)(\s*)\b',
|
|
61
61
|
bygroups(Keyword, Text)),
|
|
62
62
|
(r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|'
|
|
@@ -76,7 +76,7 @@ class BashLexer(RegexLexer):
|
|
|
76
76
|
(r'&&|\|\|', Operator),
|
|
77
77
|
],
|
|
78
78
|
'data': [
|
|
79
|
-
(r'(?s)\$?"(
|
|
79
|
+
(r'(?s)\$?"(\\.|[^"\\$])*"', String.Double),
|
|
80
80
|
(r'"', String.Double, 'string'),
|
|
81
81
|
(r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
|
|
82
82
|
(r"(?s)'.*?'", String.Single),
|
|
@@ -126,12 +126,38 @@ class BashLexer(RegexLexer):
|
|
|
126
126
|
return 0.2
|
|
127
127
|
|
|
128
128
|
|
|
129
|
+
class SlurmBashLexer(BashLexer):
|
|
130
|
+
"""
|
|
131
|
+
Lexer for (ba|k|z|)sh Slurm scripts.
|
|
132
|
+
|
|
133
|
+
.. versionadded:: 2.4
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
name = 'Slurm'
|
|
137
|
+
aliases = ['slurm', 'sbatch']
|
|
138
|
+
filenames = ['*.sl']
|
|
139
|
+
mimetypes = []
|
|
140
|
+
EXTRA_KEYWORDS = {'srun'}
|
|
141
|
+
|
|
142
|
+
def get_tokens_unprocessed(self, text):
|
|
143
|
+
for index, token, value in BashLexer.get_tokens_unprocessed(self, text):
|
|
144
|
+
if token is Text and value in self.EXTRA_KEYWORDS:
|
|
145
|
+
yield index, Name.Builtin, value
|
|
146
|
+
elif token is Comment.Single and 'SBATCH' in value:
|
|
147
|
+
yield index, Keyword.Pseudo, value
|
|
148
|
+
else:
|
|
149
|
+
yield index, token, value
|
|
150
|
+
|
|
151
|
+
|
|
129
152
|
class ShellSessionBaseLexer(Lexer):
|
|
130
153
|
"""
|
|
131
|
-
Base lexer for
|
|
154
|
+
Base lexer for shell sessions.
|
|
132
155
|
|
|
133
156
|
.. versionadded:: 2.1
|
|
134
157
|
"""
|
|
158
|
+
|
|
159
|
+
_venv = re.compile(r'^(\([^)]*\))(\s*)')
|
|
160
|
+
|
|
135
161
|
def get_tokens_unprocessed(self, text):
|
|
136
162
|
innerlexer = self._innerLexerCls(**self.options)
|
|
137
163
|
|
|
@@ -142,11 +168,20 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
142
168
|
|
|
143
169
|
for match in line_re.finditer(text):
|
|
144
170
|
line = match.group()
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
171
|
+
|
|
172
|
+
venv_match = self._venv.match(line)
|
|
173
|
+
if venv_match:
|
|
174
|
+
venv = venv_match.group(1)
|
|
175
|
+
venv_whitespace = venv_match.group(2)
|
|
176
|
+
insertions.append((len(curcode),
|
|
177
|
+
[(0, Generic.Prompt.VirtualEnv, venv)]))
|
|
178
|
+
if venv_whitespace:
|
|
179
|
+
insertions.append((len(curcode),
|
|
180
|
+
[(0, Text, venv_whitespace)]))
|
|
181
|
+
line = line[venv_match.end():]
|
|
182
|
+
|
|
183
|
+
m = self._ps1rgx.match(line)
|
|
184
|
+
if m:
|
|
150
185
|
# To support output lexers (say diff output), the output
|
|
151
186
|
# needs to be broken by prompts whenever the output lexer
|
|
152
187
|
# changes.
|
|
@@ -157,7 +192,7 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
157
192
|
[(0, Generic.Prompt, m.group(1))]))
|
|
158
193
|
curcode += m.group(2)
|
|
159
194
|
backslash_continuation = curcode.endswith('\\\n')
|
|
160
|
-
elif line.startswith(self._ps2):
|
|
195
|
+
elif line.startswith(self._ps2) and backslash_continuation:
|
|
161
196
|
insertions.append((len(curcode),
|
|
162
197
|
[(0, Generic.Prompt, line[:len(self._ps2)])]))
|
|
163
198
|
curcode += line[len(self._ps2):]
|
|
@@ -178,7 +213,8 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
178
213
|
|
|
179
214
|
class BashSessionLexer(ShellSessionBaseLexer):
|
|
180
215
|
"""
|
|
181
|
-
Lexer for
|
|
216
|
+
Lexer for Bash shell sessions, i.e. command lines, including a
|
|
217
|
+
prompt, interspersed with output.
|
|
182
218
|
|
|
183
219
|
.. versionadded:: 1.1
|
|
184
220
|
"""
|
|
@@ -189,10 +225,10 @@ class BashSessionLexer(ShellSessionBaseLexer):
|
|
|
189
225
|
mimetypes = ['application/x-shell-session', 'application/x-sh-session']
|
|
190
226
|
|
|
191
227
|
_innerLexerCls = BashLexer
|
|
192
|
-
_ps1rgx =
|
|
228
|
+
_ps1rgx = re.compile(
|
|
193
229
|
r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
|
|
194
|
-
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)'
|
|
195
|
-
_ps2 = '>'
|
|
230
|
+
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)')
|
|
231
|
+
_ps2 = '> '
|
|
196
232
|
|
|
197
233
|
|
|
198
234
|
class BatchLexer(RegexLexer):
|
|
@@ -211,14 +247,14 @@ class BatchLexer(RegexLexer):
|
|
|
211
247
|
_nl = r'\n\x1a'
|
|
212
248
|
_punct = r'&<>|'
|
|
213
249
|
_ws = r'\t\v\f\r ,;=\xa0'
|
|
250
|
+
_nlws = r'\s\x1a\xa0,;='
|
|
214
251
|
_space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws)
|
|
215
252
|
_keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' %
|
|
216
253
|
(_nl, _ws, _nl, _punct))
|
|
217
254
|
_token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl)
|
|
218
255
|
_start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws
|
|
219
|
-
_label = r'(?:(?:[^%s%s
|
|
220
|
-
_label_compound =
|
|
221
|
-
(_nl, _punct, _ws, _nl))
|
|
256
|
+
_label = r'(?:(?:[^%s%s+:^]|\^[%s]?[\w\W])*)' % (_nlws, _punct, _nl)
|
|
257
|
+
_label_compound = r'(?:(?:[^%s%s+:^)]|\^[%s]?[^)])*)' % (_nlws, _punct, _nl)
|
|
222
258
|
_number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator
|
|
223
259
|
_opword = r'(?:equ|geq|gtr|leq|lss|neq)'
|
|
224
260
|
_string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl)
|
|
@@ -228,9 +264,8 @@ class BatchLexer(RegexLexer):
|
|
|
228
264
|
r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
|
|
229
265
|
r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' %
|
|
230
266
|
(_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)
|
|
267
|
+
_core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s])+)' % (_nl, _nlws, _punct)
|
|
268
|
+
_core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s)])+)' % (_nl, _nlws, _punct)
|
|
234
269
|
_token = r'(?:[%s]+|%s)' % (_punct, _core_token)
|
|
235
270
|
_token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound)
|
|
236
271
|
_stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
|
|
@@ -341,7 +376,8 @@ class BatchLexer(RegexLexer):
|
|
|
341
376
|
return state
|
|
342
377
|
|
|
343
378
|
def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct,
|
|
344
|
-
_string=_string, _variable=_variable,
|
|
379
|
+
_string=_string, _variable=_variable,
|
|
380
|
+
_ws=_ws, _nlws=_nlws):
|
|
345
381
|
op = r'=+\-*/!~'
|
|
346
382
|
state = []
|
|
347
383
|
if compound:
|
|
@@ -352,8 +388,8 @@ class BatchLexer(RegexLexer):
|
|
|
352
388
|
(r'\d+', Number.Integer),
|
|
353
389
|
(r'[(),]+', Punctuation),
|
|
354
390
|
(r'([%s]|%%|\^\^)+' % op, Operator),
|
|
355
|
-
(r'(%s|%s|(\^[%s]?)?[^()%s
|
|
356
|
-
(_string, _variable, _nl, op,
|
|
391
|
+
(r'(%s|%s|(\^[%s]?)?[^()%s%%\^"%s%s]|\^[%s]?%s)+' %
|
|
392
|
+
(_string, _variable, _nl, op, _nlws, _punct, _nlws,
|
|
357
393
|
r'[^)]' if compound else r'[\w\W]'),
|
|
358
394
|
using(this, state='variable')),
|
|
359
395
|
(r'(?=[\x00|&])', Text, '#pop'),
|
|
@@ -387,15 +423,15 @@ class BatchLexer(RegexLexer):
|
|
|
387
423
|
_core_token_compound=_core_token_compound,
|
|
388
424
|
_nl=_nl, _punct=_punct, _stoken=_stoken,
|
|
389
425
|
_string=_string, _space=_space,
|
|
390
|
-
_variable=_variable,
|
|
426
|
+
_variable=_variable, _nlws=_nlws):
|
|
391
427
|
stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
|
|
392
428
|
(_punct, _string, _variable, _core_token_compound))
|
|
393
429
|
return [
|
|
394
|
-
(r'((?:(?<=[%s
|
|
395
|
-
(
|
|
430
|
+
(r'((?:(?<=[%s])\d)?)(>>?&|<&)([%s]*)(\d)' %
|
|
431
|
+
(_nlws, _nlws),
|
|
396
432
|
bygroups(Number.Integer, Punctuation, Text, Number.Integer)),
|
|
397
|
-
(r'((?:(?<=[%s
|
|
398
|
-
(
|
|
433
|
+
(r'((?:(?<=[%s])(?<!\^[%s])\d)?)(>>?|<)(%s?%s)' %
|
|
434
|
+
(_nlws, _nl, _space, stoken_compound if compound else _stoken),
|
|
399
435
|
bygroups(Number.Integer, Punctuation, using(this, state='text')))
|
|
400
436
|
]
|
|
401
437
|
|
|
@@ -434,7 +470,7 @@ class BatchLexer(RegexLexer):
|
|
|
434
470
|
'text': [
|
|
435
471
|
(r'"', String.Double, 'string'),
|
|
436
472
|
include('variable-or-escape'),
|
|
437
|
-
(r'[^"%%^%s%s
|
|
473
|
+
(r'[^"%%^%s%s\d)]+|.' % (_nlws, _punct), Text)
|
|
438
474
|
],
|
|
439
475
|
'variable': [
|
|
440
476
|
(r'"', String.Double, 'string'),
|
|
@@ -455,13 +491,13 @@ class BatchLexer(RegexLexer):
|
|
|
455
491
|
include('follow')
|
|
456
492
|
],
|
|
457
493
|
'for/f': [
|
|
458
|
-
(r'(")((?:%s|[^"])*?")([%s
|
|
494
|
+
(r'(")((?:%s|[^"])*?")([%s]*)(\))' % (_variable, _nlws),
|
|
459
495
|
bygroups(String.Double, using(this, state='string'), Text,
|
|
460
496
|
Punctuation)),
|
|
461
497
|
(r'"', String.Double, ('#pop', 'for2', 'string')),
|
|
462
|
-
(r"('(?:%%%%|%s|[\w\W])*?')([%s
|
|
498
|
+
(r"('(?:%%%%|%s|[\w\W])*?')([%s]*)(\))" % (_variable, _nlws),
|
|
463
499
|
bygroups(using(this, state='sqstring'), Text, Punctuation)),
|
|
464
|
-
(r'(`(?:%%%%|%s|[\w\W])*?`)([%s
|
|
500
|
+
(r'(`(?:%%%%|%s|[\w\W])*?`)([%s]*)(\))' % (_variable, _nlws),
|
|
465
501
|
bygroups(using(this, state='bqstring'), Text, Punctuation)),
|
|
466
502
|
include('for2')
|
|
467
503
|
],
|
|
@@ -507,7 +543,8 @@ class BatchLexer(RegexLexer):
|
|
|
507
543
|
|
|
508
544
|
class MSDOSSessionLexer(ShellSessionBaseLexer):
|
|
509
545
|
"""
|
|
510
|
-
Lexer for
|
|
546
|
+
Lexer for MS DOS shell sessions, i.e. command lines, including a
|
|
547
|
+
prompt, interspersed with output.
|
|
511
548
|
|
|
512
549
|
.. versionadded:: 2.1
|
|
513
550
|
"""
|
|
@@ -518,7 +555,7 @@ class MSDOSSessionLexer(ShellSessionBaseLexer):
|
|
|
518
555
|
mimetypes = []
|
|
519
556
|
|
|
520
557
|
_innerLexerCls = BatchLexer
|
|
521
|
-
_ps1rgx = r'^([^>]
|
|
558
|
+
_ps1rgx = re.compile(r'^([^>]*>)(.*\n?)')
|
|
522
559
|
_ps2 = 'More? '
|
|
523
560
|
|
|
524
561
|
|
|
@@ -592,7 +629,8 @@ class TcshLexer(RegexLexer):
|
|
|
592
629
|
|
|
593
630
|
class TcshSessionLexer(ShellSessionBaseLexer):
|
|
594
631
|
"""
|
|
595
|
-
Lexer for Tcsh sessions.
|
|
632
|
+
Lexer for Tcsh sessions, i.e. command lines, including a
|
|
633
|
+
prompt, interspersed with output.
|
|
596
634
|
|
|
597
635
|
.. versionadded:: 2.1
|
|
598
636
|
"""
|
|
@@ -603,7 +641,7 @@ class TcshSessionLexer(ShellSessionBaseLexer):
|
|
|
603
641
|
mimetypes = []
|
|
604
642
|
|
|
605
643
|
_innerLexerCls = TcshLexer
|
|
606
|
-
_ps1rgx = r'^([^>]+>)(.*\n?)'
|
|
644
|
+
_ps1rgx = re.compile(r'^([^>]+>)(.*\n?)')
|
|
607
645
|
_ps2 = '? '
|
|
608
646
|
|
|
609
647
|
|
|
@@ -638,13 +676,29 @@ class PowerShellLexer(RegexLexer):
|
|
|
638
676
|
'wildcard').split()
|
|
639
677
|
|
|
640
678
|
verbs = (
|
|
641
|
-
'write where wait use update unregister
|
|
642
|
-
'
|
|
643
|
-
'
|
|
644
|
-
'
|
|
645
|
-
'
|
|
646
|
-
'
|
|
647
|
-
'
|
|
679
|
+
'write where watch wait use update unregister unpublish unprotect '
|
|
680
|
+
'unlock uninstall undo unblock trace test tee take sync switch '
|
|
681
|
+
'suspend submit stop step start split sort skip show set send select '
|
|
682
|
+
'search scroll save revoke resume restore restart resolve resize '
|
|
683
|
+
'reset request repair rename remove register redo receive read push '
|
|
684
|
+
'publish protect pop ping out optimize open new move mount merge '
|
|
685
|
+
'measure lock limit join invoke install initialize import hide group '
|
|
686
|
+
'grant get format foreach find export expand exit enter enable edit '
|
|
687
|
+
'dismount disconnect disable deny debug cxnew copy convertto '
|
|
688
|
+
'convertfrom convert connect confirm compress complete compare close '
|
|
689
|
+
'clear checkpoint block backup assert approve aggregate add').split()
|
|
690
|
+
|
|
691
|
+
aliases_ = (
|
|
692
|
+
'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn '
|
|
693
|
+
'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal '
|
|
694
|
+
'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm '
|
|
695
|
+
'gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi '
|
|
696
|
+
'h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp '
|
|
697
|
+
'ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv '
|
|
698
|
+
'oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo '
|
|
699
|
+
'rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select '
|
|
700
|
+
'set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee '
|
|
701
|
+
'trcm type wget where wjb write').split()
|
|
648
702
|
|
|
649
703
|
commenthelp = (
|
|
650
704
|
'component description example externalhelp forwardhelpcategory '
|
|
@@ -672,6 +726,7 @@ class PowerShellLexer(RegexLexer):
|
|
|
672
726
|
(r'(%s)\b' % '|'.join(keywords), Keyword),
|
|
673
727
|
(r'-(%s)\b' % '|'.join(operators), Operator),
|
|
674
728
|
(r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin),
|
|
729
|
+
(r'(%s)\s' % '|'.join(aliases_), Name.Builtin),
|
|
675
730
|
(r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s
|
|
676
731
|
(r'-[a-z_]\w*', Name),
|
|
677
732
|
(r'\w+', Name),
|
|
@@ -706,7 +761,8 @@ class PowerShellLexer(RegexLexer):
|
|
|
706
761
|
|
|
707
762
|
class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
708
763
|
"""
|
|
709
|
-
Lexer for
|
|
764
|
+
Lexer for PowerShell sessions, i.e. command lines, including a
|
|
765
|
+
prompt, interspersed with output.
|
|
710
766
|
|
|
711
767
|
.. versionadded:: 2.1
|
|
712
768
|
"""
|
|
@@ -717,7 +773,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
|
717
773
|
mimetypes = []
|
|
718
774
|
|
|
719
775
|
_innerLexerCls = PowerShellLexer
|
|
720
|
-
_ps1rgx = r'^(PS
|
|
776
|
+
_ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)')
|
|
721
777
|
_ps2 = '>> '
|
|
722
778
|
|
|
723
779
|
|
|
@@ -792,3 +848,62 @@ class FishShellLexer(RegexLexer):
|
|
|
792
848
|
include('root'),
|
|
793
849
|
],
|
|
794
850
|
}
|
|
851
|
+
|
|
852
|
+
class ExeclineLexer(RegexLexer):
|
|
853
|
+
"""
|
|
854
|
+
Lexer for Laurent Bercot's execline language
|
|
855
|
+
(https://skarnet.org/software/execline).
|
|
856
|
+
|
|
857
|
+
.. versionadded:: 2.7
|
|
858
|
+
"""
|
|
859
|
+
|
|
860
|
+
name = 'execline'
|
|
861
|
+
aliases = ['execline']
|
|
862
|
+
filenames = ['*.exec']
|
|
863
|
+
|
|
864
|
+
tokens = {
|
|
865
|
+
'root': [
|
|
866
|
+
include('basic'),
|
|
867
|
+
include('data'),
|
|
868
|
+
include('interp')
|
|
869
|
+
],
|
|
870
|
+
'interp': [
|
|
871
|
+
(r'\$\{', String.Interpol, 'curly'),
|
|
872
|
+
(r'\$[\w@#]+', Name.Variable), # user variable
|
|
873
|
+
(r'\$', Text),
|
|
874
|
+
],
|
|
875
|
+
'basic': [
|
|
876
|
+
(r'\b(background|backtick|cd|define|dollarat|elgetopt|'
|
|
877
|
+
r'elgetpositionals|elglob|emptyenv|envfile|exec|execlineb|'
|
|
878
|
+
r'exit|export|fdblock|fdclose|fdmove|fdreserve|fdswap|'
|
|
879
|
+
r'forbacktickx|foreground|forstdin|forx|getcwd|getpid|heredoc|'
|
|
880
|
+
r'homeof|if|ifelse|ifte|ifthenelse|importas|loopwhilex|'
|
|
881
|
+
r'multidefine|multisubstitute|pipeline|piperw|posix-cd|'
|
|
882
|
+
r'redirfd|runblock|shift|trap|tryexec|umask|unexport|wait|'
|
|
883
|
+
r'withstdinas)\b', Name.Builtin),
|
|
884
|
+
(r'\A#!.+\n', Comment.Hashbang),
|
|
885
|
+
(r'#.*\n', Comment.Single),
|
|
886
|
+
(r'[{}]', Operator)
|
|
887
|
+
],
|
|
888
|
+
'data': [
|
|
889
|
+
(r'(?s)"(\\.|[^"\\$])*"', String.Double),
|
|
890
|
+
(r'"', String.Double, 'string'),
|
|
891
|
+
(r'\s+', Text),
|
|
892
|
+
(r'[^\s{}$"\\]+', Text)
|
|
893
|
+
],
|
|
894
|
+
'string': [
|
|
895
|
+
(r'"', String.Double, '#pop'),
|
|
896
|
+
(r'(?s)(\\\\|\\.|[^"\\$])+', String.Double),
|
|
897
|
+
include('interp'),
|
|
898
|
+
],
|
|
899
|
+
'curly': [
|
|
900
|
+
(r'\}', String.Interpol, '#pop'),
|
|
901
|
+
(r'[\w#@]+', Name.Variable),
|
|
902
|
+
include('root')
|
|
903
|
+
]
|
|
904
|
+
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
def analyse_text(text):
|
|
908
|
+
if shebang_matches(text, r'execlineb'):
|
|
909
|
+
return 1
|