pygments.rb 1.1.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/ci.yml +28 -0
- data/.github/workflows/release.yml +24 -0
- data/.gitignore +5 -5
- data/CHANGELOG.adoc +128 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +13 -19
- data/bench.rb +8 -7
- data/cache-lexers.rb +3 -2
- data/lexers +0 -0
- data/lib/pygments.rb +10 -11
- data/lib/pygments/lexer.rb +5 -5
- data/lib/pygments/mentos.py +23 -110
- data/lib/pygments/popen.rb +148 -229
- data/lib/pygments/version.rb +2 -2
- data/pygments.rb.gemspec +12 -11
- data/test/test_pygments.rb +46 -104
- data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
- data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
- data/vendor/pygments-main/bin/pygmentize +8 -0
- data/vendor/pygments-main/pygments/__init__.py +6 -11
- data/vendor/pygments-main/pygments/__main__.py +18 -0
- data/vendor/pygments-main/pygments/cmdline.py +94 -41
- data/vendor/pygments-main/pygments/console.py +6 -9
- data/vendor/pygments-main/pygments/filter.py +4 -6
- data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
- data/vendor/pygments-main/pygments/formatter.py +4 -4
- data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +223 -135
- data/vendor/pygments-main/pygments/formatters/img.py +102 -38
- data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
- data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
- data/vendor/pygments-main/pygments/formatters/other.py +12 -8
- data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
- data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
- data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
- data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
- data/vendor/pygments-main/pygments/lexer.py +41 -39
- data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
- data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
- data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
- data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
- data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
- data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
- data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
- data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
- data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
- data/vendor/pygments-main/pygments/lexers/business.py +69 -36
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
- data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
- data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
- data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
- data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
- data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
- data/vendor/pygments-main/pygments/lexers/console.py +1 -1
- data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
- data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
- data/vendor/pygments-main/pygments/lexers/css.py +18 -16
- data/vendor/pygments-main/pygments/lexers/d.py +10 -5
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
- data/vendor/pygments-main/pygments/lexers/data.py +240 -97
- data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
- data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
- data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
- data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
- data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
- data/vendor/pygments-main/pygments/lexers/email.py +151 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
- data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
- data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
- data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
- data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
- data/vendor/pygments-main/pygments/lexers/go.py +1 -1
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
- data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
- data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
- data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
- data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
- data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
- data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
- data/vendor/pygments-main/pygments/lexers/html.py +31 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
- data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
- data/vendor/pygments-main/pygments/lexers/j.py +3 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
- data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
- data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
- data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
- data/vendor/pygments-main/pygments/lexers/make.py +10 -6
- data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
- data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
- data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
- data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
- data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
- data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
- data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
- data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
- data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
- data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
- data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
- data/vendor/pygments-main/pygments/lexers/php.py +64 -10
- data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
- data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
- data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
- data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
- data/vendor/pygments-main/pygments/lexers/python.py +439 -226
- data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
- data/vendor/pygments-main/pygments/lexers/r.py +13 -275
- data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
- data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
- data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
- data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
- data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
- data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
- data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
- data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
- data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
- data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
- data/vendor/pygments-main/pygments/lexers/special.py +5 -3
- data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
- data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
- data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
- data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
- data/vendor/pygments-main/pygments/lexers/text.py +2 -1
- data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
- data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
- data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
- data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
- data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
- data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
- data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
- data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
- data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
- data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
- data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
- data/vendor/pygments-main/pygments/modeline.py +6 -5
- data/vendor/pygments-main/pygments/plugin.py +14 -18
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +2 -2
- data/vendor/pygments-main/pygments/sphinxext.py +2 -4
- data/vendor/pygments-main/pygments/style.py +61 -24
- data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
- data/vendor/pygments-main/pygments/styles/abap.py +29 -0
- data/vendor/pygments-main/pygments/styles/algol.py +1 -1
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
- data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/igor.py +1 -1
- data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/sas.py +3 -0
- data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
- data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
- data/vendor/pygments-main/pygments/token.py +1 -1
- data/vendor/pygments-main/pygments/unistring.py +47 -108
- data/vendor/pygments-main/pygments/util.py +19 -95
- metadata +71 -137
- data/CHANGELOG.md +0 -98
- data/README.md +0 -121
- data/circle.yml +0 -20
- data/test/test_data.c +0 -2581
- data/test/test_data.py +0 -514
- data/test/test_data_generated +0 -2582
- data/vendor/custom_lexers/github.py +0 -565
- data/vendor/pygments-main/CHANGES +0 -1163
- data/vendor/pygments-main/MANIFEST.in +0 -6
- data/vendor/pygments-main/Makefile +0 -65
- data/vendor/pygments-main/README.rst +0 -39
- data/vendor/pygments-main/REVISION +0 -1
- data/vendor/pygments-main/TODO +0 -12
- data/vendor/pygments-main/doc/Makefile +0 -153
- data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
- data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
- data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
- data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
- data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
- data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
- data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
- data/vendor/pygments-main/doc/conf.py +0 -241
- data/vendor/pygments-main/doc/docs/api.rst +0 -331
- data/vendor/pygments-main/doc/docs/authors.rst +0 -4
- data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
- data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
- data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
- data/vendor/pygments-main/doc/docs/filters.rst +0 -41
- data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
- data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
- data/vendor/pygments-main/doc/docs/index.rst +0 -66
- data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
- data/vendor/pygments-main/doc/docs/java.rst +0 -70
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
- data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
- data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
- data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
- data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
- data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
- data/vendor/pygments-main/doc/docs/styles.rst +0 -201
- data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
- data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
- data/vendor/pygments-main/doc/download.rst +0 -41
- data/vendor/pygments-main/doc/faq.rst +0 -139
- data/vendor/pygments-main/doc/index.rst +0 -54
- data/vendor/pygments-main/doc/languages.rst +0 -154
- data/vendor/pygments-main/doc/make.bat +0 -190
- data/vendor/pygments-main/doc/pygmentize.1 +0 -94
- data/vendor/pygments-main/external/autopygmentize +0 -84
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
- data/vendor/pygments-main/external/markdown-processor.py +0 -67
- data/vendor/pygments-main/external/moin-parser.py +0 -112
- data/vendor/pygments-main/external/pygments.bashcomp +0 -38
- data/vendor/pygments-main/external/rst-directive.py +0 -82
- data/vendor/pygments-main/pygmentize +0 -8
- data/vendor/pygments-main/pygments/lexers/github.py +0 -565
- data/vendor/pygments-main/pygments/styles/stata.py +0 -37
- data/vendor/pygments-main/requirements.txt +0 -5
- data/vendor/pygments-main/scripts/check_sources.py +0 -211
- data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
- data/vendor/pygments-main/scripts/epydoc.css +0 -280
- data/vendor/pygments-main/scripts/find_error.py +0 -1
- data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
- data/vendor/pygments-main/scripts/pylintrc +0 -301
- data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
- data/vendor/pygments-main/setup.cfg +0 -10
- data/vendor/pygments-main/setup.py +0 -77
- data/vendor/pygments-main/tox.ini +0 -7
- data/vendor/simplejson/.gitignore +0 -10
- data/vendor/simplejson/.travis.yml +0 -5
- data/vendor/simplejson/CHANGES.txt +0 -291
- data/vendor/simplejson/LICENSE.txt +0 -19
- data/vendor/simplejson/MANIFEST.in +0 -5
- data/vendor/simplejson/README.rst +0 -19
- data/vendor/simplejson/conf.py +0 -179
- data/vendor/simplejson/index.rst +0 -628
- data/vendor/simplejson/scripts/make_docs.py +0 -18
- data/vendor/simplejson/setup.py +0 -104
- data/vendor/simplejson/simplejson/__init__.py +0 -510
- data/vendor/simplejson/simplejson/_speedups.c +0 -2745
- data/vendor/simplejson/simplejson/decoder.py +0 -425
- data/vendor/simplejson/simplejson/encoder.py +0 -567
- data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
- data/vendor/simplejson/simplejson/scanner.py +0 -77
- data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
- data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
- data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
- data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
- data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
- data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
- data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
- data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
- data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
- data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
- data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
- data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
- data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
- data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
- data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
- data/vendor/simplejson/simplejson/tool.py +0 -39
|
@@ -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,25 +19,27 @@ 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
|
|
|
27
28
|
|
|
28
29
|
class BashLexer(RegexLexer):
|
|
29
30
|
"""
|
|
30
|
-
Lexer for (ba|k|)sh shell scripts.
|
|
31
|
+
Lexer for (ba|k|z|)sh shell scripts.
|
|
31
32
|
|
|
32
33
|
.. versionadded:: 0.6
|
|
33
34
|
"""
|
|
34
35
|
|
|
35
36
|
name = 'Bash'
|
|
36
|
-
aliases = ['bash', 'sh', 'ksh', 'shell']
|
|
37
|
+
aliases = ['bash', 'sh', 'ksh', 'zsh', 'shell']
|
|
37
38
|
filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass',
|
|
38
|
-
'*.exheres-0', '*.exlib',
|
|
39
|
-
'.bashrc', 'bashrc', '.bash_*', 'bash_*', '
|
|
40
|
-
|
|
39
|
+
'*.exheres-0', '*.exlib', '*.zsh',
|
|
40
|
+
'.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc',
|
|
41
|
+
'PKGBUILD']
|
|
42
|
+
mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript']
|
|
41
43
|
|
|
42
44
|
tokens = {
|
|
43
45
|
'root': [
|
|
@@ -50,7 +52,7 @@ class BashLexer(RegexLexer):
|
|
|
50
52
|
(r'\$\(\(', Keyword, 'math'),
|
|
51
53
|
(r'\$\(', Keyword, 'paren'),
|
|
52
54
|
(r'\$\{#?', String.Interpol, 'curly'),
|
|
53
|
-
(r'\$[a-zA-Z_]
|
|
55
|
+
(r'\$[a-zA-Z_]\w*', Name.Variable), # user variable
|
|
54
56
|
(r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin
|
|
55
57
|
(r'\$', Text),
|
|
56
58
|
],
|
|
@@ -75,7 +77,7 @@ class BashLexer(RegexLexer):
|
|
|
75
77
|
(r'&&|\|\|', Operator),
|
|
76
78
|
],
|
|
77
79
|
'data': [
|
|
78
|
-
(r'(?s)\$?"(
|
|
80
|
+
(r'(?s)\$?"(\\.|[^"\\$])*"', String.Double),
|
|
79
81
|
(r'"', String.Double, 'string'),
|
|
80
82
|
(r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
|
|
81
83
|
(r"(?s)'.*?'", String.Single),
|
|
@@ -125,12 +127,38 @@ class BashLexer(RegexLexer):
|
|
|
125
127
|
return 0.2
|
|
126
128
|
|
|
127
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
|
+
|
|
128
153
|
class ShellSessionBaseLexer(Lexer):
|
|
129
154
|
"""
|
|
130
|
-
Base lexer for
|
|
155
|
+
Base lexer for shell sessions.
|
|
131
156
|
|
|
132
157
|
.. versionadded:: 2.1
|
|
133
158
|
"""
|
|
159
|
+
|
|
160
|
+
_venv = re.compile(r'^(\([^)]*\))(\s*)')
|
|
161
|
+
|
|
134
162
|
def get_tokens_unprocessed(self, text):
|
|
135
163
|
innerlexer = self._innerLexerCls(**self.options)
|
|
136
164
|
|
|
@@ -141,11 +169,24 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
141
169
|
|
|
142
170
|
for match in line_re.finditer(text):
|
|
143
171
|
line = match.group()
|
|
144
|
-
m = re.match(self._ps1rgx, line)
|
|
145
172
|
if backslash_continuation:
|
|
146
173
|
curcode += line
|
|
147
174
|
backslash_continuation = curcode.endswith('\\\n')
|
|
148
|
-
|
|
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:
|
|
149
190
|
# To support output lexers (say diff output), the output
|
|
150
191
|
# needs to be broken by prompts whenever the output lexer
|
|
151
192
|
# changes.
|
|
@@ -177,7 +218,8 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
177
218
|
|
|
178
219
|
class BashSessionLexer(ShellSessionBaseLexer):
|
|
179
220
|
"""
|
|
180
|
-
Lexer for
|
|
221
|
+
Lexer for Bash shell sessions, i.e. command lines, including a
|
|
222
|
+
prompt, interspersed with output.
|
|
181
223
|
|
|
182
224
|
.. versionadded:: 1.1
|
|
183
225
|
"""
|
|
@@ -188,9 +230,9 @@ class BashSessionLexer(ShellSessionBaseLexer):
|
|
|
188
230
|
mimetypes = ['application/x-shell-session', 'application/x-sh-session']
|
|
189
231
|
|
|
190
232
|
_innerLexerCls = BashLexer
|
|
191
|
-
_ps1rgx =
|
|
233
|
+
_ps1rgx = re.compile(
|
|
192
234
|
r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
|
|
193
|
-
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)'
|
|
235
|
+
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)')
|
|
194
236
|
_ps2 = '>'
|
|
195
237
|
|
|
196
238
|
|
|
@@ -210,14 +252,14 @@ class BatchLexer(RegexLexer):
|
|
|
210
252
|
_nl = r'\n\x1a'
|
|
211
253
|
_punct = r'&<>|'
|
|
212
254
|
_ws = r'\t\v\f\r ,;=\xa0'
|
|
255
|
+
_nlws = r'\s\x1a\xa0,;='
|
|
213
256
|
_space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws)
|
|
214
257
|
_keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' %
|
|
215
258
|
(_nl, _ws, _nl, _punct))
|
|
216
259
|
_token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl)
|
|
217
260
|
_start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws
|
|
218
|
-
_label = r'(?:(?:[^%s%s
|
|
219
|
-
_label_compound =
|
|
220
|
-
(_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)
|
|
221
263
|
_number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator
|
|
222
264
|
_opword = r'(?:equ|geq|gtr|leq|lss|neq)'
|
|
223
265
|
_string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl)
|
|
@@ -227,9 +269,8 @@ class BatchLexer(RegexLexer):
|
|
|
227
269
|
r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
|
|
228
270
|
r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' %
|
|
229
271
|
(_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl))
|
|
230
|
-
_core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s
|
|
231
|
-
_core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s
|
|
232
|
-
_punct, _ws)
|
|
272
|
+
_core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s])+)' % (_nl, _nlws, _punct)
|
|
273
|
+
_core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s)])+)' % (_nl, _nlws, _punct)
|
|
233
274
|
_token = r'(?:[%s]+|%s)' % (_punct, _core_token)
|
|
234
275
|
_token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound)
|
|
235
276
|
_stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
|
|
@@ -340,7 +381,8 @@ class BatchLexer(RegexLexer):
|
|
|
340
381
|
return state
|
|
341
382
|
|
|
342
383
|
def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct,
|
|
343
|
-
_string=_string, _variable=_variable,
|
|
384
|
+
_string=_string, _variable=_variable,
|
|
385
|
+
_ws=_ws, _nlws=_nlws):
|
|
344
386
|
op = r'=+\-*/!~'
|
|
345
387
|
state = []
|
|
346
388
|
if compound:
|
|
@@ -351,8 +393,8 @@ class BatchLexer(RegexLexer):
|
|
|
351
393
|
(r'\d+', Number.Integer),
|
|
352
394
|
(r'[(),]+', Punctuation),
|
|
353
395
|
(r'([%s]|%%|\^\^)+' % op, Operator),
|
|
354
|
-
(r'(%s|%s|(\^[%s]?)?[^()%s
|
|
355
|
-
(_string, _variable, _nl, op,
|
|
396
|
+
(r'(%s|%s|(\^[%s]?)?[^()%s%%\^"%s%s]|\^[%s]?%s)+' %
|
|
397
|
+
(_string, _variable, _nl, op, _nlws, _punct, _nlws,
|
|
356
398
|
r'[^)]' if compound else r'[\w\W]'),
|
|
357
399
|
using(this, state='variable')),
|
|
358
400
|
(r'(?=[\x00|&])', Text, '#pop'),
|
|
@@ -386,15 +428,15 @@ class BatchLexer(RegexLexer):
|
|
|
386
428
|
_core_token_compound=_core_token_compound,
|
|
387
429
|
_nl=_nl, _punct=_punct, _stoken=_stoken,
|
|
388
430
|
_string=_string, _space=_space,
|
|
389
|
-
_variable=_variable,
|
|
431
|
+
_variable=_variable, _nlws=_nlws):
|
|
390
432
|
stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
|
|
391
433
|
(_punct, _string, _variable, _core_token_compound))
|
|
392
434
|
return [
|
|
393
|
-
(r'((?:(?<=[%s
|
|
394
|
-
(
|
|
435
|
+
(r'((?:(?<=[%s])\d)?)(>>?&|<&)([%s]*)(\d)' %
|
|
436
|
+
(_nlws, _nlws),
|
|
395
437
|
bygroups(Number.Integer, Punctuation, Text, Number.Integer)),
|
|
396
|
-
(r'((?:(?<=[%s
|
|
397
|
-
(
|
|
438
|
+
(r'((?:(?<=[%s])(?<!\^[%s])\d)?)(>>?|<)(%s?%s)' %
|
|
439
|
+
(_nlws, _nl, _space, stoken_compound if compound else _stoken),
|
|
398
440
|
bygroups(Number.Integer, Punctuation, using(this, state='text')))
|
|
399
441
|
]
|
|
400
442
|
|
|
@@ -433,7 +475,7 @@ class BatchLexer(RegexLexer):
|
|
|
433
475
|
'text': [
|
|
434
476
|
(r'"', String.Double, 'string'),
|
|
435
477
|
include('variable-or-escape'),
|
|
436
|
-
(r'[^"%%^%s%s
|
|
478
|
+
(r'[^"%%^%s%s\d)]+|.' % (_nlws, _punct), Text)
|
|
437
479
|
],
|
|
438
480
|
'variable': [
|
|
439
481
|
(r'"', String.Double, 'string'),
|
|
@@ -454,13 +496,13 @@ class BatchLexer(RegexLexer):
|
|
|
454
496
|
include('follow')
|
|
455
497
|
],
|
|
456
498
|
'for/f': [
|
|
457
|
-
(r'(")((?:%s|[^"])*?")([%s
|
|
499
|
+
(r'(")((?:%s|[^"])*?")([%s]*)(\))' % (_variable, _nlws),
|
|
458
500
|
bygroups(String.Double, using(this, state='string'), Text,
|
|
459
501
|
Punctuation)),
|
|
460
502
|
(r'"', String.Double, ('#pop', 'for2', 'string')),
|
|
461
|
-
(r"('(?:%%%%|%s|[\w\W])*?')([%s
|
|
503
|
+
(r"('(?:%%%%|%s|[\w\W])*?')([%s]*)(\))" % (_variable, _nlws),
|
|
462
504
|
bygroups(using(this, state='sqstring'), Text, Punctuation)),
|
|
463
|
-
(r'(`(?:%%%%|%s|[\w\W])*?`)([%s
|
|
505
|
+
(r'(`(?:%%%%|%s|[\w\W])*?`)([%s]*)(\))' % (_variable, _nlws),
|
|
464
506
|
bygroups(using(this, state='bqstring'), Text, Punctuation)),
|
|
465
507
|
include('for2')
|
|
466
508
|
],
|
|
@@ -478,13 +520,16 @@ class BatchLexer(RegexLexer):
|
|
|
478
520
|
using(this, state='variable')), '#pop'),
|
|
479
521
|
(r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken),
|
|
480
522
|
bygroups(Keyword, using(this, state='text')), '#pop'),
|
|
481
|
-
(r'(%s%s?)(==)(%s?%s)' % (_stoken, _space, _space, _stoken),
|
|
482
|
-
bygroups(using(this, state='text'), Operator,
|
|
483
|
-
using(this, state='text')), '#pop'),
|
|
484
523
|
(r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number),
|
|
485
524
|
bygroups(using(this, state='arithmetic'), Operator.Word,
|
|
486
525
|
using(this, state='arithmetic')), '#pop'),
|
|
487
|
-
(
|
|
526
|
+
(_stoken, using(this, state='text'), ('#pop', 'if2')),
|
|
527
|
+
],
|
|
528
|
+
'if2': [
|
|
529
|
+
(r'(%s?)(==)(%s?%s)' % (_space, _space, _stoken),
|
|
530
|
+
bygroups(using(this, state='text'), Operator,
|
|
531
|
+
using(this, state='text')), '#pop'),
|
|
532
|
+
(r'(%s)(%s)(%s%s)' % (_space, _opword, _space, _stoken),
|
|
488
533
|
bygroups(using(this, state='text'), Operator.Word,
|
|
489
534
|
using(this, state='text')), '#pop')
|
|
490
535
|
],
|
|
@@ -503,7 +548,8 @@ class BatchLexer(RegexLexer):
|
|
|
503
548
|
|
|
504
549
|
class MSDOSSessionLexer(ShellSessionBaseLexer):
|
|
505
550
|
"""
|
|
506
|
-
Lexer for
|
|
551
|
+
Lexer for MS DOS shell sessions, i.e. command lines, including a
|
|
552
|
+
prompt, interspersed with output.
|
|
507
553
|
|
|
508
554
|
.. versionadded:: 2.1
|
|
509
555
|
"""
|
|
@@ -514,7 +560,7 @@ class MSDOSSessionLexer(ShellSessionBaseLexer):
|
|
|
514
560
|
mimetypes = []
|
|
515
561
|
|
|
516
562
|
_innerLexerCls = BatchLexer
|
|
517
|
-
_ps1rgx = r'^([^>]
|
|
563
|
+
_ps1rgx = re.compile(r'^([^>]*>)(.*\n?)')
|
|
518
564
|
_ps2 = 'More? '
|
|
519
565
|
|
|
520
566
|
|
|
@@ -588,7 +634,8 @@ class TcshLexer(RegexLexer):
|
|
|
588
634
|
|
|
589
635
|
class TcshSessionLexer(ShellSessionBaseLexer):
|
|
590
636
|
"""
|
|
591
|
-
Lexer for Tcsh sessions.
|
|
637
|
+
Lexer for Tcsh sessions, i.e. command lines, including a
|
|
638
|
+
prompt, interspersed with output.
|
|
592
639
|
|
|
593
640
|
.. versionadded:: 2.1
|
|
594
641
|
"""
|
|
@@ -599,7 +646,7 @@ class TcshSessionLexer(ShellSessionBaseLexer):
|
|
|
599
646
|
mimetypes = []
|
|
600
647
|
|
|
601
648
|
_innerLexerCls = TcshLexer
|
|
602
|
-
_ps1rgx = r'^([^>]+>)(.*\n?)'
|
|
649
|
+
_ps1rgx = re.compile(r'^([^>]+>)(.*\n?)')
|
|
603
650
|
_ps2 = '? '
|
|
604
651
|
|
|
605
652
|
|
|
@@ -634,13 +681,29 @@ class PowerShellLexer(RegexLexer):
|
|
|
634
681
|
'wildcard').split()
|
|
635
682
|
|
|
636
683
|
verbs = (
|
|
637
|
-
'write where wait use update unregister
|
|
638
|
-
'
|
|
639
|
-
'
|
|
640
|
-
'
|
|
641
|
-
'
|
|
642
|
-
'
|
|
643
|
-
'
|
|
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()
|
|
644
707
|
|
|
645
708
|
commenthelp = (
|
|
646
709
|
'component description example externalhelp forwardhelpcategory '
|
|
@@ -668,6 +731,7 @@ class PowerShellLexer(RegexLexer):
|
|
|
668
731
|
(r'(%s)\b' % '|'.join(keywords), Keyword),
|
|
669
732
|
(r'-(%s)\b' % '|'.join(operators), Operator),
|
|
670
733
|
(r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin),
|
|
734
|
+
(r'(%s)\s' % '|'.join(aliases_), Name.Builtin),
|
|
671
735
|
(r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s
|
|
672
736
|
(r'-[a-z_]\w*', Name),
|
|
673
737
|
(r'\w+', Name),
|
|
@@ -702,7 +766,8 @@ class PowerShellLexer(RegexLexer):
|
|
|
702
766
|
|
|
703
767
|
class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
704
768
|
"""
|
|
705
|
-
Lexer for
|
|
769
|
+
Lexer for PowerShell sessions, i.e. command lines, including a
|
|
770
|
+
prompt, interspersed with output.
|
|
706
771
|
|
|
707
772
|
.. versionadded:: 2.1
|
|
708
773
|
"""
|
|
@@ -713,7 +778,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
|
713
778
|
mimetypes = []
|
|
714
779
|
|
|
715
780
|
_innerLexerCls = PowerShellLexer
|
|
716
|
-
_ps1rgx = r'^(PS
|
|
781
|
+
_ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)')
|
|
717
782
|
_ps2 = '>> '
|
|
718
783
|
|
|
719
784
|
|
|
@@ -788,3 +853,62 @@ class FishShellLexer(RegexLexer):
|
|
|
788
853
|
include('root'),
|
|
789
854
|
],
|
|
790
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
|