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 Robot Framework.
|
|
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
|
|
|
@@ -27,7 +27,6 @@ import re
|
|
|
27
27
|
|
|
28
28
|
from pygments.lexer import Lexer
|
|
29
29
|
from pygments.token import Token
|
|
30
|
-
from pygments.util import text_type
|
|
31
30
|
|
|
32
31
|
__all__ = ['RobotFrameworkLexer']
|
|
33
32
|
|
|
@@ -64,7 +63,7 @@ class RobotFrameworkLexer(Lexer):
|
|
|
64
63
|
"""
|
|
65
64
|
name = 'RobotFramework'
|
|
66
65
|
aliases = ['robotframework']
|
|
67
|
-
filenames = ['*.
|
|
66
|
+
filenames = ['*.robot']
|
|
68
67
|
mimetypes = ['text/x-robotframework']
|
|
69
68
|
|
|
70
69
|
def __init__(self, **options):
|
|
@@ -80,11 +79,11 @@ class RobotFrameworkLexer(Lexer):
|
|
|
80
79
|
for value, token in row_tokenizer.tokenize(row):
|
|
81
80
|
for value, token in var_tokenizer.tokenize(value, token):
|
|
82
81
|
if value:
|
|
83
|
-
yield index, token,
|
|
82
|
+
yield index, token, str(value)
|
|
84
83
|
index += len(value)
|
|
85
84
|
|
|
86
85
|
|
|
87
|
-
class VariableTokenizer
|
|
86
|
+
class VariableTokenizer:
|
|
88
87
|
|
|
89
88
|
def tokenize(self, string, token):
|
|
90
89
|
var = VariableSplitter(string, identifiers='$@%&')
|
|
@@ -99,19 +98,16 @@ class VariableTokenizer(object):
|
|
|
99
98
|
before = string[:var.start]
|
|
100
99
|
yield before, orig_token
|
|
101
100
|
yield var.identifier + '{', SYNTAX
|
|
102
|
-
|
|
103
|
-
yield value, token
|
|
101
|
+
yield from self.tokenize(var.base, VARIABLE)
|
|
104
102
|
yield '}', SYNTAX
|
|
105
103
|
if var.index:
|
|
106
104
|
yield '[', SYNTAX
|
|
107
|
-
|
|
108
|
-
yield value, token
|
|
105
|
+
yield from self.tokenize(var.index, VARIABLE)
|
|
109
106
|
yield ']', SYNTAX
|
|
110
|
-
|
|
111
|
-
yield value, token
|
|
107
|
+
yield from self.tokenize(string[var.end:], orig_token)
|
|
112
108
|
|
|
113
109
|
|
|
114
|
-
class RowTokenizer
|
|
110
|
+
class RowTokenizer:
|
|
115
111
|
|
|
116
112
|
def __init__(self):
|
|
117
113
|
self._table = UnknownTable()
|
|
@@ -124,6 +120,7 @@ class RowTokenizer(object):
|
|
|
124
120
|
'metadata': settings,
|
|
125
121
|
'variables': variables, 'variable': variables,
|
|
126
122
|
'testcases': testcases, 'testcase': testcases,
|
|
123
|
+
'tasks': testcases, 'task': testcases,
|
|
127
124
|
'keywords': keywords, 'keyword': keywords,
|
|
128
125
|
'userkeywords': keywords, 'userkeyword': keywords}
|
|
129
126
|
|
|
@@ -138,9 +135,8 @@ class RowTokenizer(object):
|
|
|
138
135
|
elif index == 0 and value.startswith('*'):
|
|
139
136
|
self._table = self._start_table(value)
|
|
140
137
|
heading = True
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
yield value, token
|
|
138
|
+
yield from self._tokenize(value, index, commented,
|
|
139
|
+
separator, heading)
|
|
144
140
|
self._table.end_row()
|
|
145
141
|
|
|
146
142
|
def _start_table(self, header):
|
|
@@ -155,25 +151,22 @@ class RowTokenizer(object):
|
|
|
155
151
|
elif heading:
|
|
156
152
|
yield value, HEADING
|
|
157
153
|
else:
|
|
158
|
-
|
|
159
|
-
yield value, token
|
|
154
|
+
yield from self._table.tokenize(value, index)
|
|
160
155
|
|
|
161
156
|
|
|
162
|
-
class RowSplitter
|
|
157
|
+
class RowSplitter:
|
|
163
158
|
_space_splitter = re.compile('( {2,})')
|
|
164
|
-
_pipe_splitter = re.compile('((?:^| +)\|(?: +|$))')
|
|
159
|
+
_pipe_splitter = re.compile(r'((?:^| +)\|(?: +|$))')
|
|
165
160
|
|
|
166
161
|
def split(self, row):
|
|
167
162
|
splitter = (row.startswith('| ') and self._split_from_pipes
|
|
168
163
|
or self._split_from_spaces)
|
|
169
|
-
|
|
170
|
-
yield value
|
|
164
|
+
yield from splitter(row)
|
|
171
165
|
yield '\n'
|
|
172
166
|
|
|
173
167
|
def _split_from_spaces(self, row):
|
|
174
168
|
yield '' # Start with (pseudo)separator similarly as with pipes
|
|
175
|
-
|
|
176
|
-
yield value
|
|
169
|
+
yield from self._space_splitter.split(row)
|
|
177
170
|
|
|
178
171
|
def _split_from_pipes(self, row):
|
|
179
172
|
_, separator, rest = self._pipe_splitter.split(row, 1)
|
|
@@ -185,7 +178,7 @@ class RowSplitter(object):
|
|
|
185
178
|
yield rest
|
|
186
179
|
|
|
187
180
|
|
|
188
|
-
class Tokenizer
|
|
181
|
+
class Tokenizer:
|
|
189
182
|
_tokens = None
|
|
190
183
|
|
|
191
184
|
def __init__(self):
|
|
@@ -216,11 +209,11 @@ class Comment(Tokenizer):
|
|
|
216
209
|
class Setting(Tokenizer):
|
|
217
210
|
_tokens = (SETTING, ARGUMENT)
|
|
218
211
|
_keyword_settings = ('suitesetup', 'suiteprecondition', 'suiteteardown',
|
|
219
|
-
'suitepostcondition', 'testsetup', 'testprecondition',
|
|
220
|
-
'testteardown', 'testpostcondition', 'testtemplate')
|
|
212
|
+
'suitepostcondition', 'testsetup', 'tasksetup', 'testprecondition',
|
|
213
|
+
'testteardown','taskteardown', 'testpostcondition', 'testtemplate', 'tasktemplate')
|
|
221
214
|
_import_settings = ('library', 'resource', 'variables')
|
|
222
215
|
_other_settings = ('documentation', 'metadata', 'forcetags', 'defaulttags',
|
|
223
|
-
'testtimeout')
|
|
216
|
+
'testtimeout','tasktimeout')
|
|
224
217
|
_custom_tokenizer = None
|
|
225
218
|
|
|
226
219
|
def __init__(self, template_setter=None):
|
|
@@ -292,7 +285,7 @@ class KeywordCall(Tokenizer):
|
|
|
292
285
|
return GherkinTokenizer().tokenize(value, KEYWORD)
|
|
293
286
|
|
|
294
287
|
|
|
295
|
-
class GherkinTokenizer
|
|
288
|
+
class GherkinTokenizer:
|
|
296
289
|
_gherkin_prefix = re.compile('^(Given|When|Then|And) ', re.IGNORECASE)
|
|
297
290
|
|
|
298
291
|
def tokenize(self, value, token):
|
|
@@ -320,7 +313,7 @@ class ForLoop(Tokenizer):
|
|
|
320
313
|
return token
|
|
321
314
|
|
|
322
315
|
|
|
323
|
-
class _Table
|
|
316
|
+
class _Table:
|
|
324
317
|
_tokenizer_class = None
|
|
325
318
|
|
|
326
319
|
def __init__(self, prev_tokenizer=None):
|
|
@@ -333,8 +326,7 @@ class _Table(object):
|
|
|
333
326
|
self._tokenizer = self._prev_tokenizer
|
|
334
327
|
yield value, SYNTAX
|
|
335
328
|
else:
|
|
336
|
-
|
|
337
|
-
yield value_and_token
|
|
329
|
+
yield from self._tokenize(value, index)
|
|
338
330
|
self._prev_values_on_row.append(value)
|
|
339
331
|
|
|
340
332
|
def _continues(self, value, index):
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexers for Ruby and related 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
|
|
|
@@ -43,23 +43,22 @@ class RubyLexer(ExtendedRegexLexer):
|
|
|
43
43
|
|
|
44
44
|
def heredoc_callback(self, match, ctx):
|
|
45
45
|
# okay, this is the hardest part of parsing Ruby...
|
|
46
|
-
# match: 1 =
|
|
46
|
+
# match: 1 = <<[-~]?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
|
|
47
47
|
|
|
48
48
|
start = match.start(1)
|
|
49
|
-
yield start, Operator, match.group(1) #
|
|
49
|
+
yield start, Operator, match.group(1) # <<[-~]?
|
|
50
50
|
yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
|
|
51
51
|
yield match.start(3), String.Delimiter, match.group(3) # heredoc name
|
|
52
52
|
yield match.start(4), String.Heredoc, match.group(4) # quote again
|
|
53
53
|
|
|
54
54
|
heredocstack = ctx.__dict__.setdefault('heredocstack', [])
|
|
55
55
|
outermost = not bool(heredocstack)
|
|
56
|
-
heredocstack.append((match.group(1)
|
|
56
|
+
heredocstack.append((match.group(1) in ('<<-', '<<~'), match.group(3)))
|
|
57
57
|
|
|
58
58
|
ctx.pos = match.start(5)
|
|
59
59
|
ctx.end = match.end(5)
|
|
60
60
|
# this may find other heredocs
|
|
61
|
-
|
|
62
|
-
yield i, t, v
|
|
61
|
+
yield from self.get_tokens_unprocessed(context=ctx)
|
|
63
62
|
ctx.pos = match.end()
|
|
64
63
|
|
|
65
64
|
if outermost:
|
|
@@ -109,16 +108,17 @@ class RubyLexer(ExtendedRegexLexer):
|
|
|
109
108
|
(r'\:@{0,2}[a-zA-Z_]\w*[!?]?', String.Symbol),
|
|
110
109
|
(words(RUBY_OPERATORS, prefix=r'\:@{0,2}'), String.Symbol),
|
|
111
110
|
(r":'(\\\\|\\'|[^'])*'", String.Symbol),
|
|
112
|
-
(r"'(\\\\|\\'|[^'])*'", String.Single),
|
|
113
111
|
(r':"', String.Symbol, 'simple-sym'),
|
|
114
112
|
(r'([a-zA-Z_]\w*)(:)(?!:)',
|
|
115
113
|
bygroups(String.Symbol, Punctuation)), # Since Ruby 1.9
|
|
116
|
-
(r'"', String.Double, 'simple-string'),
|
|
114
|
+
(r'"', String.Double, 'simple-string-double'),
|
|
115
|
+
(r"'", String.Single, 'simple-string-single'),
|
|
117
116
|
(r'(?<!\.)`', String.Backtick, 'simple-backtick'),
|
|
118
117
|
]
|
|
119
118
|
|
|
120
|
-
#
|
|
121
|
-
for name, ttype, end in ('string', String.Double, '"'), \
|
|
119
|
+
# quoted string and symbol
|
|
120
|
+
for name, ttype, end in ('string-double', String.Double, '"'), \
|
|
121
|
+
('string-single', String.Single, "'"),\
|
|
122
122
|
('sym', String.Symbol, '"'), \
|
|
123
123
|
('backtick', String.Backtick, '`'):
|
|
124
124
|
states['simple-'+name] = [
|
|
@@ -247,10 +247,10 @@ class RubyLexer(ExtendedRegexLexer):
|
|
|
247
247
|
Name.Builtin),
|
|
248
248
|
(r'__(FILE|LINE)__\b', Name.Builtin.Pseudo),
|
|
249
249
|
# normal heredocs
|
|
250
|
-
(r'(?<!\w)(
|
|
250
|
+
(r'(?<!\w)(<<[-~]?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
|
|
251
251
|
heredoc_callback),
|
|
252
252
|
# empty string heredocs
|
|
253
|
-
(r'(
|
|
253
|
+
(r'(<<[-~]?)("|\')()(\2)(.*?\n)', heredoc_callback),
|
|
254
254
|
(r'__END__', Comment.Preproc, 'end-part'),
|
|
255
255
|
# multiline regex (after keywords or assignments)
|
|
256
256
|
(r'(?:^|(?<=[=<>~!:])|'
|
|
@@ -403,8 +403,8 @@ class RubyConsoleLexer(Lexer):
|
|
|
403
403
|
aliases = ['rbcon', 'irb']
|
|
404
404
|
mimetypes = ['text/x-ruby-shellsession']
|
|
405
405
|
|
|
406
|
-
_prompt_re = re.compile('irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
|
|
407
|
-
'|>> |\?> ')
|
|
406
|
+
_prompt_re = re.compile(r'irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
|
|
407
|
+
r'|>> |\?> ')
|
|
408
408
|
|
|
409
409
|
def get_tokens_unprocessed(self, text):
|
|
410
410
|
rblexer = RubyLexer(**self.options)
|
|
@@ -421,16 +421,14 @@ class RubyConsoleLexer(Lexer):
|
|
|
421
421
|
curcode += line[end:]
|
|
422
422
|
else:
|
|
423
423
|
if curcode:
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
yield item
|
|
424
|
+
yield from do_insertions(
|
|
425
|
+
insertions, rblexer.get_tokens_unprocessed(curcode))
|
|
427
426
|
curcode = ''
|
|
428
427
|
insertions = []
|
|
429
428
|
yield match.start(), Generic.Output, line
|
|
430
429
|
if curcode:
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
yield item
|
|
430
|
+
yield from do_insertions(
|
|
431
|
+
insertions, rblexer.get_tokens_unprocessed(curcode))
|
|
434
432
|
|
|
435
433
|
|
|
436
434
|
class FancyLexer(RegexLexer):
|
|
@@ -498,11 +496,11 @@ class FancyLexer(RegexLexer):
|
|
|
498
496
|
(r'[a-zA-Z](\w|[-+?!=*/^><%])*:', Name.Function),
|
|
499
497
|
# operators, must be below functions
|
|
500
498
|
(r'[-+*/~,<>=&!?%^\[\].$]+', Operator),
|
|
501
|
-
('[A-Z]\w*', Name.Constant),
|
|
502
|
-
('@[a-zA-Z_]\w*', Name.Variable.Instance),
|
|
503
|
-
('@@[a-zA-Z_]\w*', Name.Variable.Class),
|
|
499
|
+
(r'[A-Z]\w*', Name.Constant),
|
|
500
|
+
(r'@[a-zA-Z_]\w*', Name.Variable.Instance),
|
|
501
|
+
(r'@@[a-zA-Z_]\w*', Name.Variable.Class),
|
|
504
502
|
('@@?', Operator),
|
|
505
|
-
('[a-zA-Z_]\w*', Name),
|
|
503
|
+
(r'[a-zA-Z_]\w*', Name),
|
|
506
504
|
# numbers - / checks are necessary to avoid mismarking regexes,
|
|
507
505
|
# see comment in RubyLexer
|
|
508
506
|
(r'(0[oO]?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?',
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexers for the Rust language.
|
|
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
|
|
|
@@ -18,48 +18,56 @@ __all__ = ['RustLexer']
|
|
|
18
18
|
|
|
19
19
|
class RustLexer(RegexLexer):
|
|
20
20
|
"""
|
|
21
|
-
Lexer for the Rust programming language (version 1.
|
|
21
|
+
Lexer for the Rust programming language (version 1.47).
|
|
22
22
|
|
|
23
23
|
.. versionadded:: 1.6
|
|
24
24
|
"""
|
|
25
25
|
name = 'Rust'
|
|
26
26
|
filenames = ['*.rs', '*.rs.in']
|
|
27
|
-
aliases = ['rust']
|
|
28
|
-
mimetypes = ['text/rust']
|
|
29
|
-
|
|
30
|
-
keyword_types = (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
'
|
|
39
|
-
'Drop', 'Fn', 'FnMut', 'FnOnce',
|
|
40
|
-
|
|
41
|
-
# Reexported types and traits
|
|
42
|
-
'Box',
|
|
43
|
-
'ToOwned',
|
|
44
|
-
'Clone',
|
|
27
|
+
aliases = ['rust', 'rs']
|
|
28
|
+
mimetypes = ['text/rust', 'text/x-rust']
|
|
29
|
+
|
|
30
|
+
keyword_types = (words((
|
|
31
|
+
'u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128',
|
|
32
|
+
'usize', 'isize', 'f32', 'f64', 'char', 'str', 'bool',
|
|
33
|
+
), suffix=r'\b'), Keyword.Type)
|
|
34
|
+
|
|
35
|
+
builtin_funcs_types = (words((
|
|
36
|
+
'Copy', 'Send', 'Sized', 'Sync', 'Unpin',
|
|
37
|
+
'Drop', 'Fn', 'FnMut', 'FnOnce', 'drop',
|
|
38
|
+
'Box', 'ToOwned', 'Clone',
|
|
45
39
|
'PartialEq', 'PartialOrd', 'Eq', 'Ord',
|
|
46
|
-
'AsRef', 'AsMut', 'Into', 'From',
|
|
47
|
-
'
|
|
48
|
-
'
|
|
49
|
-
'
|
|
50
|
-
'
|
|
51
|
-
'
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
'
|
|
56
|
-
'
|
|
57
|
-
|
|
40
|
+
'AsRef', 'AsMut', 'Into', 'From', 'Default',
|
|
41
|
+
'Iterator', 'Extend', 'IntoIterator', 'DoubleEndedIterator',
|
|
42
|
+
'ExactSizeIterator',
|
|
43
|
+
'Option', 'Some', 'None',
|
|
44
|
+
'Result', 'Ok', 'Err',
|
|
45
|
+
'String', 'ToString', 'Vec',
|
|
46
|
+
), suffix=r'\b'), Name.Builtin)
|
|
47
|
+
|
|
48
|
+
builtin_macros = (words((
|
|
49
|
+
'asm', 'assert', 'assert_eq', 'assert_ne', 'cfg', 'column',
|
|
50
|
+
'compile_error', 'concat', 'concat_idents', 'dbg', 'debug_assert',
|
|
51
|
+
'debug_assert_eq', 'debug_assert_ne', 'env', 'eprint', 'eprintln',
|
|
52
|
+
'file', 'format', 'format_args', 'format_args_nl', 'global_asm',
|
|
53
|
+
'include', 'include_bytes', 'include_str',
|
|
54
|
+
'is_aarch64_feature_detected',
|
|
55
|
+
'is_arm_feature_detected',
|
|
56
|
+
'is_mips64_feature_detected',
|
|
57
|
+
'is_mips_feature_detected',
|
|
58
|
+
'is_powerpc64_feature_detected',
|
|
59
|
+
'is_powerpc_feature_detected',
|
|
60
|
+
'is_x86_feature_detected',
|
|
61
|
+
'line', 'llvm_asm', 'log_syntax', 'macro_rules', 'matches',
|
|
62
|
+
'module_path', 'option_env', 'panic', 'print', 'println', 'stringify',
|
|
63
|
+
'thread_local', 'todo', 'trace_macros', 'unimplemented', 'unreachable',
|
|
64
|
+
'vec', 'write', 'writeln',
|
|
65
|
+
), suffix=r'!'), Name.Function.Magic)
|
|
58
66
|
|
|
59
67
|
tokens = {
|
|
60
68
|
'root': [
|
|
61
69
|
# rust allows a file to start with a shebang, but if the first line
|
|
62
|
-
# starts with #![ then it
|
|
70
|
+
# starts with #![ then it's not a shebang but a crate attribute.
|
|
63
71
|
(r'#![^[\r\n].*$', Comment.Preproc),
|
|
64
72
|
default('base'),
|
|
65
73
|
],
|
|
@@ -77,26 +85,26 @@ class RustLexer(RegexLexer):
|
|
|
77
85
|
# Macro parameters
|
|
78
86
|
(r"""\$([a-zA-Z_]\w*|\(,?|\),?|,?)""", Comment.Preproc),
|
|
79
87
|
# Keywords
|
|
80
|
-
(words((
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
'typeof', 'unsized', 'virtual', 'yield'), suffix=r'\b'),
|
|
89
|
-
Keyword.Reserved),
|
|
88
|
+
(words(('as', 'async', 'await', 'box', 'const', 'crate', 'dyn',
|
|
89
|
+
'else', 'extern', 'for', 'if', 'impl', 'in', 'loop',
|
|
90
|
+
'match', 'move', 'mut', 'pub', 'ref', 'return', 'static',
|
|
91
|
+
'super', 'trait', 'unsafe', 'use', 'where', 'while'),
|
|
92
|
+
suffix=r'\b'), Keyword),
|
|
93
|
+
(words(('abstract', 'become', 'do', 'final', 'macro', 'override',
|
|
94
|
+
'priv', 'typeof', 'try', 'unsized', 'virtual', 'yield'),
|
|
95
|
+
suffix=r'\b'), Keyword.Reserved),
|
|
90
96
|
(r'(true|false)\b', Keyword.Constant),
|
|
97
|
+
(r'self\b', Name.Builtin.Pseudo),
|
|
91
98
|
(r'mod\b', Keyword, 'modname'),
|
|
92
99
|
(r'let\b', Keyword.Declaration),
|
|
93
100
|
(r'fn\b', Keyword, 'funcname'),
|
|
94
101
|
(r'(struct|enum|type|union)\b', Keyword, 'typename'),
|
|
95
102
|
(r'(default)(\s+)(type|fn)\b', bygroups(Keyword, Text, Keyword)),
|
|
96
103
|
keyword_types,
|
|
97
|
-
(r'
|
|
98
|
-
# Prelude (taken from Rust
|
|
99
|
-
|
|
104
|
+
(r'[sS]elf\b', Name.Builtin.Pseudo),
|
|
105
|
+
# Prelude (taken from Rust's src/libstd/prelude.rs)
|
|
106
|
+
builtin_funcs_types,
|
|
107
|
+
builtin_macros,
|
|
100
108
|
# Path seperators, so types don't catch them.
|
|
101
109
|
(r'::\b', Text),
|
|
102
110
|
# Types in positions.
|
|
@@ -104,49 +112,47 @@ class RustLexer(RegexLexer):
|
|
|
104
112
|
# Labels
|
|
105
113
|
(r'(break|continue)(\s*)(\'[A-Za-z_]\w*)?',
|
|
106
114
|
bygroups(Keyword, Text.Whitespace, Name.Label)),
|
|
107
|
-
|
|
115
|
+
|
|
116
|
+
# Character literals
|
|
108
117
|
(r"""'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
|
|
109
118
|
r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
|
|
110
119
|
String.Char),
|
|
111
120
|
(r"""b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0"""
|
|
112
121
|
r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
|
|
113
122
|
String.Char),
|
|
114
|
-
|
|
123
|
+
|
|
124
|
+
# Binary literals
|
|
115
125
|
(r'0b[01_]+', Number.Bin, 'number_lit'),
|
|
116
|
-
# Octal
|
|
126
|
+
# Octal literals
|
|
117
127
|
(r'0o[0-7_]+', Number.Oct, 'number_lit'),
|
|
118
|
-
# Hexadecimal
|
|
128
|
+
# Hexadecimal literals
|
|
119
129
|
(r'0[xX][0-9a-fA-F_]+', Number.Hex, 'number_lit'),
|
|
120
|
-
# Decimal
|
|
130
|
+
# Decimal literals
|
|
121
131
|
(r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|'
|
|
122
132
|
r'\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)', Number.Float,
|
|
123
133
|
'number_lit'),
|
|
124
134
|
(r'[0-9][0-9_]*', Number.Integer, 'number_lit'),
|
|
125
|
-
|
|
135
|
+
|
|
136
|
+
# String literals
|
|
126
137
|
(r'b"', String, 'bytestring'),
|
|
127
138
|
(r'"', String, 'string'),
|
|
128
139
|
(r'b?r(#*)".*?"\1', String),
|
|
129
140
|
|
|
130
|
-
# Lifetime
|
|
131
|
-
(r"
|
|
132
|
-
(r"""'[a-zA-Z_]\w*""", Name.Attribute),
|
|
141
|
+
# Lifetime names
|
|
142
|
+
(r"'", Operator, 'lifetime'),
|
|
133
143
|
|
|
134
144
|
# Operators and Punctuation
|
|
145
|
+
(r'\.\.=?', Operator),
|
|
135
146
|
(r'[{}()\[\],.;]', Punctuation),
|
|
136
147
|
(r'[+\-*/%&|<>^!~@=:?]', Operator),
|
|
137
148
|
|
|
138
|
-
#
|
|
149
|
+
# Identifiers
|
|
139
150
|
(r'[a-zA-Z_]\w*', Name),
|
|
151
|
+
# Raw identifiers
|
|
152
|
+
(r'r#[a-zA-Z_]\w*', Name),
|
|
140
153
|
|
|
141
154
|
# Attributes
|
|
142
155
|
(r'#!?\[', Comment.Preproc, 'attribute['),
|
|
143
|
-
# Macros
|
|
144
|
-
(r'([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\s*)(\{)',
|
|
145
|
-
bygroups(Comment.Preproc, Punctuation, Whitespace, Name,
|
|
146
|
-
Whitespace, Punctuation), 'macro{'),
|
|
147
|
-
(r'([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\()',
|
|
148
|
-
bygroups(Comment.Preproc, Punctuation, Whitespace, Name,
|
|
149
|
-
Punctuation), 'macro('),
|
|
150
156
|
],
|
|
151
157
|
'comment': [
|
|
152
158
|
(r'[^*/]+', Comment.Multiline),
|
|
@@ -173,11 +179,17 @@ class RustLexer(RegexLexer):
|
|
|
173
179
|
'typename': [
|
|
174
180
|
(r'\s+', Text),
|
|
175
181
|
(r'&', Keyword.Pseudo),
|
|
176
|
-
|
|
182
|
+
(r"'", Operator, 'lifetime'),
|
|
183
|
+
builtin_funcs_types,
|
|
177
184
|
keyword_types,
|
|
178
185
|
(r'[a-zA-Z_]\w*', Name.Class, '#pop'),
|
|
179
186
|
default('#pop'),
|
|
180
187
|
],
|
|
188
|
+
'lifetime': [
|
|
189
|
+
(r"(static|_)", Name.Builtin),
|
|
190
|
+
(r"[a-zA-Z_]+\w*", Name.Attribute),
|
|
191
|
+
default('#pop'),
|
|
192
|
+
],
|
|
181
193
|
'number_lit': [
|
|
182
194
|
(r'[ui](8|16|32|64|size)', Keyword, '#pop'),
|
|
183
195
|
(r'f(32|64)', Keyword, '#pop'),
|
|
@@ -194,14 +206,6 @@ class RustLexer(RegexLexer):
|
|
|
194
206
|
(r"""\\x[89a-fA-F][0-9a-fA-F]""", String.Escape),
|
|
195
207
|
include('string'),
|
|
196
208
|
],
|
|
197
|
-
'macro{': [
|
|
198
|
-
(r'\{', Operator, '#push'),
|
|
199
|
-
(r'\}', Operator, '#pop'),
|
|
200
|
-
],
|
|
201
|
-
'macro(': [
|
|
202
|
-
(r'\(', Operator, '#push'),
|
|
203
|
-
(r'\)', Operator, '#pop'),
|
|
204
|
-
],
|
|
205
209
|
'attribute_common': [
|
|
206
210
|
(r'"', String, 'string'),
|
|
207
211
|
(r'\[', Comment.Preproc, 'attribute['),
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
pygments.lexers.scdoc
|
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
5
|
+
|
|
6
|
+
Lexer for scdoc, a simple man page generator.
|
|
7
|
+
|
|
8
|
+
:copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
|
|
9
|
+
:license: BSD, see LICENSE for details.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import re
|
|
13
|
+
|
|
14
|
+
from pygments.lexer import RegexLexer, include, bygroups, \
|
|
15
|
+
using, this
|
|
16
|
+
from pygments.token import Text, Comment, Keyword, String, \
|
|
17
|
+
Generic
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = ['ScdocLexer']
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ScdocLexer(RegexLexer):
|
|
24
|
+
"""
|
|
25
|
+
`scdoc` is a simple man page generator for POSIX systems written in C99.
|
|
26
|
+
https://git.sr.ht/~sircmpwn/scdoc
|
|
27
|
+
|
|
28
|
+
.. versionadded:: 2.5
|
|
29
|
+
"""
|
|
30
|
+
name = 'scdoc'
|
|
31
|
+
aliases = ['scdoc', 'scd']
|
|
32
|
+
filenames = ['*.scd', '*.scdoc']
|
|
33
|
+
flags = re.MULTILINE
|
|
34
|
+
|
|
35
|
+
tokens = {
|
|
36
|
+
'root': [
|
|
37
|
+
# comment
|
|
38
|
+
(r'^(;.+\n)', bygroups(Comment)),
|
|
39
|
+
|
|
40
|
+
# heading with pound prefix
|
|
41
|
+
(r'^(#)([^#].+\n)', bygroups(Generic.Heading, Text)),
|
|
42
|
+
(r'^(#{2})(.+\n)', bygroups(Generic.Subheading, Text)),
|
|
43
|
+
# bulleted lists
|
|
44
|
+
(r'^(\s*)([*-])(\s)(.+\n)',
|
|
45
|
+
bygroups(Text, Keyword, Text, using(this, state='inline'))),
|
|
46
|
+
# numbered lists
|
|
47
|
+
(r'^(\s*)(\.+\.)( .+\n)',
|
|
48
|
+
bygroups(Text, Keyword, using(this, state='inline'))),
|
|
49
|
+
# quote
|
|
50
|
+
(r'^(\s*>\s)(.+\n)', bygroups(Keyword, Generic.Emph)),
|
|
51
|
+
# text block
|
|
52
|
+
(r'^(```\n)([\w\W]*?)(^```$)', bygroups(String, Text, String)),
|
|
53
|
+
|
|
54
|
+
include('inline'),
|
|
55
|
+
],
|
|
56
|
+
'inline': [
|
|
57
|
+
# escape
|
|
58
|
+
(r'\\.', Text),
|
|
59
|
+
# underlines
|
|
60
|
+
(r'(\s)(_[^_]+_)(\W|\n)', bygroups(Text, Generic.Emph, Text)),
|
|
61
|
+
# bold
|
|
62
|
+
(r'(\s)(\*[^*]+\*)(\W|\n)', bygroups(Text, Generic.Strong, Text)),
|
|
63
|
+
# inline code
|
|
64
|
+
(r'`[^`]+`', String.Backtick),
|
|
65
|
+
|
|
66
|
+
# general text, must come last!
|
|
67
|
+
(r'[^\\\s]+', Text),
|
|
68
|
+
(r'.', Text),
|
|
69
|
+
],
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
def analyse_text(text):
|
|
73
|
+
"""This is very similar to markdown, save for the escape characters
|
|
74
|
+
needed for * and _."""
|
|
75
|
+
result = 0
|
|
76
|
+
|
|
77
|
+
if '\\*' in text:
|
|
78
|
+
result += 0.01
|
|
79
|
+
|
|
80
|
+
if '\\_' in text:
|
|
81
|
+
result += 0.01
|
|
82
|
+
|
|
83
|
+
return result
|