pygments.rb 1.2.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/ci.yml +40 -0
- data/.github/workflows/release.yml +24 -0
- data/.gitignore +5 -5
- data/.rubocop.yml +18 -0
- data/CHANGELOG.adoc +132 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +12 -21
- data/bench.rb +14 -8
- data/{cache-lexers.rb → cache_lexers.rb} +3 -2
- data/lexers +0 -0
- data/lib/pygments.rb +10 -11
- data/lib/pygments/lexer.rb +6 -6
- data/lib/pygments/mentos.py +23 -110
- data/lib/pygments/popen.rb +196 -275
- data/lib/pygments/version.rb +2 -2
- data/pygments.rb.gemspec +12 -10
- data/test/test_pygments.rb +50 -110
- data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
- data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
- data/vendor/pygments-main/bin/pygmentize +8 -0
- data/vendor/pygments-main/pygments/__init__.py +6 -12
- data/vendor/pygments-main/pygments/__main__.py +17 -0
- data/vendor/pygments-main/pygments/cmdline.py +213 -184
- data/vendor/pygments-main/pygments/console.py +6 -10
- data/vendor/pygments-main/pygments/filter.py +4 -7
- data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
- data/vendor/pygments-main/pygments/formatter.py +4 -5
- data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
- data/vendor/pygments-main/pygments/formatters/html.py +242 -139
- data/vendor/pygments-main/pygments/formatters/img.py +91 -50
- data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
- data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
- data/vendor/pygments-main/pygments/formatters/other.py +18 -17
- data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
- data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
- data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
- data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
- data/vendor/pygments-main/pygments/lexer.py +47 -44
- data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
- data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
- data/vendor/pygments-main/pygments/lexers/algebra.py +20 -2
- data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
- data/vendor/pygments-main/pygments/lexers/ampl.py +3 -4
- data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
- data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
- data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
- data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
- data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
- data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
- data/vendor/pygments-main/pygments/lexers/business.py +19 -5
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
- data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
- data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
- data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
- data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
- data/vendor/pygments-main/pygments/lexers/console.py +1 -2
- data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
- data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
- data/vendor/pygments-main/pygments/lexers/css.py +28 -23
- data/vendor/pygments-main/pygments/lexers/d.py +12 -8
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
- data/vendor/pygments-main/pygments/lexers/data.py +240 -98
- data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
- data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
- data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
- data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
- data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
- data/vendor/pygments-main/pygments/lexers/email.py +150 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
- data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
- data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
- data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
- data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
- data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
- data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
- data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
- data/vendor/pygments-main/pygments/lexers/go.py +2 -3
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
- data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
- data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
- data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
- data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
- data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
- data/vendor/pygments-main/pygments/lexers/html.py +37 -26
- data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
- data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
- data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
- data/vendor/pygments-main/pygments/lexers/j.py +4 -5
- data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
- data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
- data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
- data/vendor/pygments-main/pygments/lexers/make.py +12 -9
- data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
- data/vendor/pygments-main/pygments/lexers/math.py +1 -2
- data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
- data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
- data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
- data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/oberon.py +17 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +47 -83
- data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
- data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
- data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
- data/vendor/pygments-main/pygments/lexers/php.py +66 -13
- data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
- data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
- data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
- data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
- data/vendor/pygments-main/pygments/lexers/python.py +450 -231
- data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
- data/vendor/pygments-main/pygments/lexers/r.py +13 -276
- data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
- data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -32
- data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
- data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
- data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
- data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
- data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
- data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
- data/vendor/pygments-main/pygments/lexers/special.py +31 -28
- data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
- data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
- data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
- data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
- data/vendor/pygments-main/pygments/lexers/text.py +2 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
- data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
- data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
- data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
- data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
- data/vendor/pygments-main/pygments/lexers/web.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
- data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
- data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
- data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
- data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
- data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
- data/vendor/pygments-main/pygments/modeline.py +1 -2
- data/vendor/pygments-main/pygments/plugin.py +4 -3
- data/vendor/pygments-main/pygments/regexopt.py +1 -2
- data/vendor/pygments-main/pygments/scanner.py +2 -3
- data/vendor/pygments-main/pygments/sphinxext.py +2 -5
- data/vendor/pygments-main/pygments/style.py +61 -25
- data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
- data/vendor/pygments-main/pygments/styles/abap.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
- data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
- data/vendor/pygments-main/pygments/styles/borland.py +1 -2
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
- data/vendor/pygments-main/pygments/styles/default.py +1 -2
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
- data/vendor/pygments-main/pygments/styles/manni.py +1 -2
- data/vendor/pygments-main/pygments/styles/material.py +118 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
- data/vendor/pygments-main/pygments/styles/native.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
- data/vendor/pygments-main/pygments/styles/sas.py +1 -2
- data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
- data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
- data/vendor/pygments-main/pygments/styles/tango.py +1 -2
- data/vendor/pygments-main/pygments/styles/trac.py +1 -2
- data/vendor/pygments-main/pygments/styles/vim.py +1 -2
- data/vendor/pygments-main/pygments/styles/vs.py +1 -2
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
- data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
- data/vendor/pygments-main/pygments/token.py +1 -2
- data/vendor/pygments-main/pygments/unistring.py +47 -109
- data/vendor/pygments-main/pygments/util.py +16 -96
- metadata +76 -137
- data/CHANGELOG.md +0 -105
- data/README.md +0 -121
- data/circle.yml +0 -20
- data/test/test_data.c +0 -2581
- data/test/test_data.py +0 -514
- data/test/test_data_generated +0 -2582
- data/vendor/custom_lexers/github.py +0 -565
- data/vendor/pygments-main/CHANGES +0 -1186
- data/vendor/pygments-main/MANIFEST.in +0 -6
- data/vendor/pygments-main/Makefile +0 -65
- data/vendor/pygments-main/README.rst +0 -39
- data/vendor/pygments-main/REVISION +0 -1
- data/vendor/pygments-main/TODO +0 -12
- data/vendor/pygments-main/doc/Makefile +0 -153
- data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
- data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
- data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
- data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
- data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
- data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
- data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
- data/vendor/pygments-main/doc/conf.py +0 -241
- data/vendor/pygments-main/doc/docs/api.rst +0 -354
- data/vendor/pygments-main/doc/docs/authors.rst +0 -4
- data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
- data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
- data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
- data/vendor/pygments-main/doc/docs/filters.rst +0 -41
- data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
- data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
- data/vendor/pygments-main/doc/docs/index.rst +0 -66
- data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
- data/vendor/pygments-main/doc/docs/java.rst +0 -70
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
- data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
- data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
- data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
- data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
- data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
- data/vendor/pygments-main/doc/docs/styles.rst +0 -201
- data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
- data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
- data/vendor/pygments-main/doc/download.rst +0 -41
- data/vendor/pygments-main/doc/faq.rst +0 -139
- data/vendor/pygments-main/doc/index.rst +0 -54
- data/vendor/pygments-main/doc/languages.rst +0 -154
- data/vendor/pygments-main/doc/make.bat +0 -190
- data/vendor/pygments-main/doc/pygmentize.1 +0 -94
- data/vendor/pygments-main/external/autopygmentize +0 -101
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
- data/vendor/pygments-main/external/markdown-processor.py +0 -67
- data/vendor/pygments-main/external/moin-parser.py +0 -112
- data/vendor/pygments-main/external/pygments.bashcomp +0 -38
- data/vendor/pygments-main/external/rst-directive.py +0 -82
- data/vendor/pygments-main/pygmentize +0 -8
- data/vendor/pygments-main/pygments/lexers/github.py +0 -565
- data/vendor/pygments-main/requirements.txt +0 -5
- data/vendor/pygments-main/scripts/check_sources.py +0 -211
- data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
- data/vendor/pygments-main/scripts/epydoc.css +0 -280
- data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
- data/vendor/pygments-main/scripts/pylintrc +0 -301
- data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
- data/vendor/pygments-main/setup.cfg +0 -10
- data/vendor/pygments-main/setup.py +0 -77
- data/vendor/pygments-main/tox.ini +0 -7
- data/vendor/simplejson/.gitignore +0 -10
- data/vendor/simplejson/.travis.yml +0 -5
- data/vendor/simplejson/CHANGES.txt +0 -291
- data/vendor/simplejson/LICENSE.txt +0 -19
- data/vendor/simplejson/MANIFEST.in +0 -5
- data/vendor/simplejson/README.rst +0 -19
- data/vendor/simplejson/conf.py +0 -179
- data/vendor/simplejson/index.rst +0 -628
- data/vendor/simplejson/scripts/make_docs.py +0 -18
- data/vendor/simplejson/setup.py +0 -104
- data/vendor/simplejson/simplejson/__init__.py +0 -510
- data/vendor/simplejson/simplejson/_speedups.c +0 -2745
- data/vendor/simplejson/simplejson/decoder.py +0 -425
- data/vendor/simplejson/simplejson/encoder.py +0 -567
- data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
- data/vendor/simplejson/simplejson/scanner.py +0 -77
- data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
- data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
- data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
- data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
- data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
- data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
- data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
- data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
- data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
- data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
- data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
- data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
- data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
- data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
- data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
- data/vendor/simplejson/simplejson/tool.py +0 -39
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.stata
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for Stata
|
|
7
6
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
9
8
|
:license: BSD, see LICENSE for details.
|
|
10
9
|
"""
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
import re
|
|
12
|
+
from pygments.lexer import RegexLexer, default, include, words
|
|
13
13
|
from pygments.token import Comment, Keyword, Name, Number, \
|
|
14
14
|
String, Text, Operator
|
|
15
15
|
|
|
@@ -26,63 +26,125 @@ class StataLexer(RegexLexer):
|
|
|
26
26
|
"""
|
|
27
27
|
# Syntax based on
|
|
28
28
|
# - http://fmwww.bc.edu/RePEc/bocode/s/synlightlist.ado
|
|
29
|
-
# -
|
|
30
|
-
# -
|
|
29
|
+
# - https://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
|
|
30
|
+
# - https://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
|
|
31
31
|
|
|
32
32
|
name = 'Stata'
|
|
33
33
|
aliases = ['stata', 'do']
|
|
34
34
|
filenames = ['*.do', '*.ado']
|
|
35
35
|
mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
|
|
36
|
+
flags = re.MULTILINE | re.DOTALL
|
|
36
37
|
|
|
37
38
|
tokens = {
|
|
38
39
|
'root': [
|
|
39
40
|
include('comments'),
|
|
40
|
-
include('
|
|
41
|
+
include('strings'),
|
|
42
|
+
include('macros'),
|
|
41
43
|
include('numbers'),
|
|
42
44
|
include('keywords'),
|
|
45
|
+
include('operators'),
|
|
46
|
+
include('format'),
|
|
43
47
|
(r'.', Text),
|
|
44
48
|
],
|
|
45
|
-
#
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
(r'
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
(r'
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
(r'
|
|
60
|
-
|
|
61
|
-
|
|
49
|
+
# Comments are a complicated beast in Stata because they can be
|
|
50
|
+
# nested and there are a few corner cases with that. See:
|
|
51
|
+
# - github.com/kylebarron/language-stata/issues/90
|
|
52
|
+
# - statalist.org/forums/forum/general-stata-discussion/general/1448244
|
|
53
|
+
'comments': [
|
|
54
|
+
(r'(^//|(?<=\s)//)(?!/)', Comment.Single, 'comments-double-slash'),
|
|
55
|
+
(r'^\s*\*', Comment.Single, 'comments-star'),
|
|
56
|
+
(r'/\*', Comment.Multiline, 'comments-block'),
|
|
57
|
+
(r'(^///|(?<=\s)///)', Comment.Special, 'comments-triple-slash')
|
|
58
|
+
],
|
|
59
|
+
'comments-block': [
|
|
60
|
+
(r'/\*', Comment.Multiline, '#push'),
|
|
61
|
+
# this ends and restarts a comment block. but need to catch this so
|
|
62
|
+
# that it doesn\'t start _another_ level of comment blocks
|
|
63
|
+
(r'\*/\*', Comment.Multiline),
|
|
64
|
+
(r'(\*/\s+\*(?!/)[^\n]*)|(\*/)', Comment.Multiline, '#pop'),
|
|
65
|
+
# Match anything else as a character inside the comment
|
|
66
|
+
(r'.', Comment.Multiline),
|
|
67
|
+
],
|
|
68
|
+
'comments-star': [
|
|
69
|
+
(r'///.*?\n', Comment.Single,
|
|
70
|
+
('#pop', 'comments-triple-slash')),
|
|
71
|
+
(r'(^//|(?<=\s)//)(?!/)', Comment.Single,
|
|
72
|
+
('#pop', 'comments-double-slash')),
|
|
73
|
+
(r'/\*', Comment.Multiline, 'comments-block'),
|
|
74
|
+
(r'.(?=\n)', Comment.Single, '#pop'),
|
|
75
|
+
(r'.', Comment.Single),
|
|
76
|
+
],
|
|
77
|
+
'comments-triple-slash': [
|
|
78
|
+
(r'\n', Comment.Special, '#pop'),
|
|
79
|
+
# A // breaks out of a comment for the rest of the line
|
|
80
|
+
(r'//.*?(?=\n)', Comment.Single, '#pop'),
|
|
81
|
+
(r'.', Comment.Special),
|
|
82
|
+
],
|
|
83
|
+
'comments-double-slash': [
|
|
84
|
+
(r'\n', Text, '#pop'),
|
|
85
|
+
(r'.', Comment.Single),
|
|
86
|
+
],
|
|
87
|
+
# `"compound string"' and regular "string"; note the former are
|
|
88
|
+
# nested.
|
|
89
|
+
'strings': [
|
|
90
|
+
(r'`"', String, 'string-compound'),
|
|
91
|
+
(r'(?<!`)"', String, 'string-regular'),
|
|
92
|
+
],
|
|
93
|
+
'string-compound': [
|
|
94
|
+
(r'`"', String, '#push'),
|
|
62
95
|
(r'"\'', String, '#pop'),
|
|
63
|
-
(r'\\\\|\\"
|
|
64
|
-
(
|
|
65
|
-
(r'
|
|
66
|
-
(r'[^$`"\\]+', String),
|
|
67
|
-
(r'[$"\\]', String),
|
|
68
|
-
],
|
|
69
|
-
'var_validglobal': [
|
|
70
|
-
(r'\{\w{0,32}\}', Name.Variable.Global, '#pop'),
|
|
71
|
-
(r'\w{1,32}', Name.Variable.Global, '#pop'),
|
|
96
|
+
(r'\\\\|\\"|\\\$|\\`|\\\n', String.Escape),
|
|
97
|
+
include('macros'),
|
|
98
|
+
(r'.', String)
|
|
72
99
|
],
|
|
73
|
-
'
|
|
74
|
-
(r'
|
|
100
|
+
'string-regular': [
|
|
101
|
+
(r'(")(?!\')|(?=\n)', String, '#pop'),
|
|
102
|
+
(r'\\\\|\\"|\\\$|\\`|\\\n', String.Escape),
|
|
103
|
+
include('macros'),
|
|
104
|
+
(r'.', String)
|
|
75
105
|
],
|
|
76
|
-
#
|
|
77
|
-
'
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
106
|
+
# A local is usually
|
|
107
|
+
# `\w{0,31}'
|
|
108
|
+
# `:extended macro'
|
|
109
|
+
# `=expression'
|
|
110
|
+
# `[rsen](results)'
|
|
111
|
+
# `(++--)scalar(++--)'
|
|
112
|
+
#
|
|
113
|
+
# However, there are all sorts of weird rules wrt edge
|
|
114
|
+
# cases. Instead of writing 27 exceptions, anything inside
|
|
115
|
+
# `' is a local.
|
|
116
|
+
#
|
|
117
|
+
# A global is more restricted, so we do follow rules. Note only
|
|
118
|
+
# locals explicitly enclosed ${} can be nested.
|
|
119
|
+
'macros': [
|
|
120
|
+
(r'\$(\{|(?=[$`]))', Name.Variable.Global, 'macro-global-nested'),
|
|
121
|
+
(r'\$', Name.Variable.Global, 'macro-global-name'),
|
|
122
|
+
(r'`', Name.Variable, 'macro-local'),
|
|
123
|
+
],
|
|
124
|
+
'macro-local': [
|
|
125
|
+
(r'`', Name.Variable, '#push'),
|
|
126
|
+
(r"'", Name.Variable, '#pop'),
|
|
127
|
+
(r'\$(\{|(?=[$`]))', Name.Variable.Global, 'macro-global-nested'),
|
|
128
|
+
(r'\$', Name.Variable.Global, 'macro-global-name'),
|
|
129
|
+
(r'.', Name.Variable), # fallback
|
|
130
|
+
],
|
|
131
|
+
'macro-global-nested': [
|
|
132
|
+
(r'\$(\{|(?=[$`]))', Name.Variable.Global, '#push'),
|
|
133
|
+
(r'\}', Name.Variable.Global, '#pop'),
|
|
134
|
+
(r'\$', Name.Variable.Global, 'macro-global-name'),
|
|
135
|
+
(r'`', Name.Variable, 'macro-local'),
|
|
136
|
+
(r'\w', Name.Variable.Global), # fallback
|
|
137
|
+
default('#pop'),
|
|
138
|
+
],
|
|
139
|
+
'macro-global-name': [
|
|
140
|
+
(r'\$(\{|(?=[$`]))', Name.Variable.Global, 'macro-global-nested', '#pop'),
|
|
141
|
+
(r'\$', Name.Variable.Global, 'macro-global-name', '#pop'),
|
|
142
|
+
(r'`', Name.Variable, 'macro-local', '#pop'),
|
|
143
|
+
(r'\w{1,32}', Name.Variable.Global, '#pop'),
|
|
82
144
|
],
|
|
83
145
|
# Built in functions and statements
|
|
84
146
|
'keywords': [
|
|
85
|
-
(words(builtins_functions, prefix = r'\b', suffix = r'
|
|
147
|
+
(words(builtins_functions, prefix = r'\b', suffix = r'(?=\()'),
|
|
86
148
|
Name.Function),
|
|
87
149
|
(words(builtins_base, prefix = r'(^\s*|\s)', suffix = r'\b'),
|
|
88
150
|
Keyword),
|
|
@@ -100,9 +162,9 @@ class StataLexer(RegexLexer):
|
|
|
100
162
|
],
|
|
101
163
|
# Stata formats
|
|
102
164
|
'format': [
|
|
103
|
-
(r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.
|
|
104
|
-
(r'%(21x|16H|16L|8H|8L)', Name.
|
|
105
|
-
(r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg)
|
|
106
|
-
(r'%[-~]?\d{1,4}s', Name.
|
|
165
|
+
(r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.Other),
|
|
166
|
+
(r'%(21x|16H|16L|8H|8L)', Name.Other),
|
|
167
|
+
(r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg)\S{0,32}', Name.Other),
|
|
168
|
+
(r'%[-~]?\d{1,4}s', Name.Other),
|
|
107
169
|
]
|
|
108
170
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.supercollider
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for SuperCollider
|
|
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
|
|
|
@@ -84,7 +83,12 @@ class SuperColliderLexer(RegexLexer):
|
|
|
84
83
|
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
|
|
85
84
|
(r'0x[0-9a-fA-F]+', Number.Hex),
|
|
86
85
|
(r'[0-9]+', Number.Integer),
|
|
87
|
-
(r'"(\\\\|\\
|
|
88
|
-
(r"'(\\\\|\\
|
|
86
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
87
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
89
88
|
]
|
|
90
89
|
}
|
|
90
|
+
|
|
91
|
+
def analyse_text(text):
|
|
92
|
+
"""We're searching for a common function and a unique keyword here."""
|
|
93
|
+
if 'SinOsc' in text or 'thisFunctionDef' in text:
|
|
94
|
+
return 0.1
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.tcl
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for Tcl and related languages.
|
|
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
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.templates
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for various template engines' markup.
|
|
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
|
|
|
@@ -179,21 +178,21 @@ class SmartyLexer(RegexLexer):
|
|
|
179
178
|
(r'(true|false|null)\b', Keyword.Constant),
|
|
180
179
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
|
181
180
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
|
182
|
-
(r'"(\\\\|\\
|
|
183
|
-
(r"'(\\\\|\\
|
|
181
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
182
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
184
183
|
(r'[a-zA-Z_]\w*', Name.Attribute)
|
|
185
184
|
]
|
|
186
185
|
}
|
|
187
186
|
|
|
188
187
|
def analyse_text(text):
|
|
189
188
|
rv = 0.0
|
|
190
|
-
if re.search('\{if\s+.*?\}.*?\{/if\}', text):
|
|
189
|
+
if re.search(r'\{if\s+.*?\}.*?\{/if\}', text):
|
|
191
190
|
rv += 0.15
|
|
192
|
-
if re.search('\{include\s+file=.*?\}', text):
|
|
191
|
+
if re.search(r'\{include\s+file=.*?\}', text):
|
|
193
192
|
rv += 0.15
|
|
194
|
-
if re.search('\{foreach\s+.*?\}.*?\{/foreach\}', text):
|
|
193
|
+
if re.search(r'\{foreach\s+.*?\}.*?\{/foreach\}', text):
|
|
195
194
|
rv += 0.15
|
|
196
|
-
if re.search('\{\$.*?\}', text):
|
|
195
|
+
if re.search(r'\{\$.*?\}', text):
|
|
197
196
|
rv += 0.01
|
|
198
197
|
return rv
|
|
199
198
|
|
|
@@ -226,7 +225,7 @@ class VelocityLexer(RegexLexer):
|
|
|
226
225
|
'directiveparams'),
|
|
227
226
|
(r'(#\{?)(' + identifier + r')(\}|\b)',
|
|
228
227
|
bygroups(Comment.Preproc, Name.Function, Comment.Preproc)),
|
|
229
|
-
(r'
|
|
228
|
+
(r'\$!?\{?', Punctuation, 'variable')
|
|
230
229
|
],
|
|
231
230
|
'variable': [
|
|
232
231
|
(identifier, Name.Variable),
|
|
@@ -249,11 +248,11 @@ class VelocityLexer(RegexLexer):
|
|
|
249
248
|
(r'\]', Operator, '#pop')
|
|
250
249
|
],
|
|
251
250
|
'funcparams': [
|
|
252
|
-
(r'
|
|
251
|
+
(r'\$!?\{?', Punctuation, 'variable'),
|
|
253
252
|
(r'\s+', Text),
|
|
254
253
|
(r'[,:]', Punctuation),
|
|
255
|
-
(r'"(\\\\|\\
|
|
256
|
-
(r"'(\\\\|\\
|
|
254
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
255
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
257
256
|
(r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
|
258
257
|
(r"\b[0-9]+\b", Number),
|
|
259
258
|
(r'(true|false|null)\b', Keyword.Constant),
|
|
@@ -274,7 +273,7 @@ class VelocityLexer(RegexLexer):
|
|
|
274
273
|
rv += 0.15
|
|
275
274
|
if re.search(r'#\{?foreach\}?\(.+?\).*?#\{?end\}?', text):
|
|
276
275
|
rv += 0.15
|
|
277
|
-
if re.search(r'
|
|
276
|
+
if re.search(r'\$!?\{?[a-zA-Z_]\w*(\([^)]*\))?'
|
|
278
277
|
r'(\.\w+(\([^)]*\))?)*\}?', text):
|
|
279
278
|
rv += 0.01
|
|
280
279
|
return rv
|
|
@@ -293,8 +292,7 @@ class VelocityHtmlLexer(DelegatingLexer):
|
|
|
293
292
|
mimetypes = ['text/html+velocity']
|
|
294
293
|
|
|
295
294
|
def __init__(self, **options):
|
|
296
|
-
super(
|
|
297
|
-
**options)
|
|
295
|
+
super().__init__(HtmlLexer, VelocityLexer, **options)
|
|
298
296
|
|
|
299
297
|
|
|
300
298
|
class VelocityXmlLexer(DelegatingLexer):
|
|
@@ -310,8 +308,7 @@ class VelocityXmlLexer(DelegatingLexer):
|
|
|
310
308
|
mimetypes = ['application/xml+velocity']
|
|
311
309
|
|
|
312
310
|
def __init__(self, **options):
|
|
313
|
-
super(
|
|
314
|
-
**options)
|
|
311
|
+
super().__init__(XmlLexer, VelocityLexer, **options)
|
|
315
312
|
|
|
316
313
|
def analyse_text(text):
|
|
317
314
|
rv = VelocityLexer.analyse_text(text) - 0.01
|
|
@@ -323,7 +320,7 @@ class VelocityXmlLexer(DelegatingLexer):
|
|
|
323
320
|
class DjangoLexer(RegexLexer):
|
|
324
321
|
"""
|
|
325
322
|
Generic `django <http://www.djangoproject.com/documentation/templates/>`_
|
|
326
|
-
and `jinja <
|
|
323
|
+
and `jinja <https://jinja.pocoo.org/jinja/>`_ template lexer.
|
|
327
324
|
|
|
328
325
|
It just highlights django/jinja code between the preprocessor directives,
|
|
329
326
|
other data is left untouched by the lexer.
|
|
@@ -340,7 +337,7 @@ class DjangoLexer(RegexLexer):
|
|
|
340
337
|
(r'[^{]+', Other),
|
|
341
338
|
(r'\{\{', Comment.Preproc, 'var'),
|
|
342
339
|
# jinja/django comments
|
|
343
|
-
(r'\{
|
|
340
|
+
(r'\{#.*?#\}', Comment),
|
|
344
341
|
# django comments
|
|
345
342
|
(r'(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)'
|
|
346
343
|
r'(\{%)(-?\s*)(endcomment)(\s*-?)(%\})',
|
|
@@ -373,9 +370,9 @@ class DjangoLexer(RegexLexer):
|
|
|
373
370
|
(r'(loop|block|super|forloop)\b', Name.Builtin),
|
|
374
371
|
(r'[a-zA-Z_][\w-]*', Name.Variable),
|
|
375
372
|
(r'\.\w+', Name.Variable),
|
|
376
|
-
(r':?"(\\\\|\\
|
|
377
|
-
(r":?'(\\\\|\\
|
|
378
|
-
(r'([{}()\[\]
|
|
373
|
+
(r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
374
|
+
(r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
375
|
+
(r'([{}()\[\]+\-*/%,:~]|[><=]=?|!=)', Operator),
|
|
379
376
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
|
380
377
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
|
381
378
|
],
|
|
@@ -421,18 +418,18 @@ class MyghtyLexer(RegexLexer):
|
|
|
421
418
|
tokens = {
|
|
422
419
|
'root': [
|
|
423
420
|
(r'\s+', Text),
|
|
424
|
-
(r'(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)
|
|
421
|
+
(r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
|
|
425
422
|
bygroups(Name.Tag, Text, Name.Function, Name.Tag,
|
|
426
423
|
using(this), Name.Tag)),
|
|
427
|
-
(r'(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)
|
|
424
|
+
(r'(?s)(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)',
|
|
428
425
|
bygroups(Name.Tag, Name.Function, Name.Tag,
|
|
429
426
|
using(PythonLexer), Name.Tag)),
|
|
430
427
|
(r'(<&[^|])(.*?)(,.*?)?(&>)',
|
|
431
428
|
bygroups(Name.Tag, Name.Function, using(PythonLexer), Name.Tag)),
|
|
432
|
-
(r'(<&\|)(.*?)(,.*?)?(&>)
|
|
429
|
+
(r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
|
|
433
430
|
bygroups(Name.Tag, Name.Function, using(PythonLexer), Name.Tag)),
|
|
434
431
|
(r'</&>', Name.Tag),
|
|
435
|
-
(r'(<%!?)(.*?)(%>)
|
|
432
|
+
(r'(?s)(<%!?)(.*?)(%>)',
|
|
436
433
|
bygroups(Name.Tag, using(PythonLexer), Name.Tag)),
|
|
437
434
|
(r'(?<=^)#[^\n]*(\n|\Z)', Comment),
|
|
438
435
|
(r'(?<=^)(%)([^\n]*)(\n|\Z)',
|
|
@@ -464,8 +461,7 @@ class MyghtyHtmlLexer(DelegatingLexer):
|
|
|
464
461
|
mimetypes = ['text/html+myghty']
|
|
465
462
|
|
|
466
463
|
def __init__(self, **options):
|
|
467
|
-
super(
|
|
468
|
-
**options)
|
|
464
|
+
super().__init__(HtmlLexer, MyghtyLexer, **options)
|
|
469
465
|
|
|
470
466
|
|
|
471
467
|
class MyghtyXmlLexer(DelegatingLexer):
|
|
@@ -481,8 +477,7 @@ class MyghtyXmlLexer(DelegatingLexer):
|
|
|
481
477
|
mimetypes = ['application/xml+myghty']
|
|
482
478
|
|
|
483
479
|
def __init__(self, **options):
|
|
484
|
-
super(
|
|
485
|
-
**options)
|
|
480
|
+
super().__init__(XmlLexer, MyghtyLexer, **options)
|
|
486
481
|
|
|
487
482
|
|
|
488
483
|
class MyghtyJavascriptLexer(DelegatingLexer):
|
|
@@ -500,8 +495,7 @@ class MyghtyJavascriptLexer(DelegatingLexer):
|
|
|
500
495
|
'text/javascript+mygthy']
|
|
501
496
|
|
|
502
497
|
def __init__(self, **options):
|
|
503
|
-
super(
|
|
504
|
-
MyghtyLexer, **options)
|
|
498
|
+
super().__init__(JavascriptLexer, MyghtyLexer, **options)
|
|
505
499
|
|
|
506
500
|
|
|
507
501
|
class MyghtyCssLexer(DelegatingLexer):
|
|
@@ -517,8 +511,7 @@ class MyghtyCssLexer(DelegatingLexer):
|
|
|
517
511
|
mimetypes = ['text/css+myghty']
|
|
518
512
|
|
|
519
513
|
def __init__(self, **options):
|
|
520
|
-
super(
|
|
521
|
-
**options)
|
|
514
|
+
super().__init__(CssLexer, MyghtyLexer, **options)
|
|
522
515
|
|
|
523
516
|
|
|
524
517
|
class MasonLexer(RegexLexer):
|
|
@@ -538,20 +531,19 @@ class MasonLexer(RegexLexer):
|
|
|
538
531
|
tokens = {
|
|
539
532
|
'root': [
|
|
540
533
|
(r'\s+', Text),
|
|
541
|
-
(r'(<%doc>)(.*?)(</%doc>)
|
|
534
|
+
(r'(?s)(<%doc>)(.*?)(</%doc>)',
|
|
542
535
|
bygroups(Name.Tag, Comment.Multiline, Name.Tag)),
|
|
543
|
-
(r'(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)
|
|
536
|
+
(r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
|
|
544
537
|
bygroups(Name.Tag, Text, Name.Function, Name.Tag,
|
|
545
538
|
using(this), Name.Tag)),
|
|
546
|
-
(r'(
|
|
547
|
-
bygroups(Name.Tag,
|
|
548
|
-
|
|
549
|
-
(r'(<&[^|])(.*?)(,.*?)?(&>)(?s)',
|
|
539
|
+
(r'(?s)(<%(\w+)(.*?)(>))(.*?)(</%\2\s*>)',
|
|
540
|
+
bygroups(Name.Tag, None, None, None, using(PerlLexer), Name.Tag)),
|
|
541
|
+
(r'(?s)(<&[^|])(.*?)(,.*?)?(&>)',
|
|
550
542
|
bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
|
|
551
|
-
(r'(<&\|)(.*?)(,.*?)?(&>)
|
|
543
|
+
(r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
|
|
552
544
|
bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
|
|
553
545
|
(r'</&>', Name.Tag),
|
|
554
|
-
(r'(<%!?)(.*?)(%>)
|
|
546
|
+
(r'(?s)(<%!?)(.*?)(%>)',
|
|
555
547
|
bygroups(Name.Tag, using(PerlLexer), Name.Tag)),
|
|
556
548
|
(r'(?<=^)#[^\n]*(\n|\Z)', Comment),
|
|
557
549
|
(r'(?<=^)(%)([^\n]*)(\n|\Z)',
|
|
@@ -571,7 +563,7 @@ class MasonLexer(RegexLexer):
|
|
|
571
563
|
|
|
572
564
|
def analyse_text(text):
|
|
573
565
|
result = 0.0
|
|
574
|
-
if re.search(r'</%(class|doc|init)
|
|
566
|
+
if re.search(r'</%(class|doc|init)>', text) is not None:
|
|
575
567
|
result = 1.0
|
|
576
568
|
elif re.search(r'<&.+&>', text, re.DOTALL) is not None:
|
|
577
569
|
result = 0.11
|
|
@@ -607,7 +599,7 @@ class MakoLexer(RegexLexer):
|
|
|
607
599
|
(r'(</%)([\w.:]+)(>)',
|
|
608
600
|
bygroups(Comment.Preproc, Name.Builtin, Comment.Preproc)),
|
|
609
601
|
(r'<%(?=([\w.:]+))', Comment.Preproc, 'ondeftags'),
|
|
610
|
-
(r'(<%(?:!?))(.*?)(%>)
|
|
602
|
+
(r'(?s)(<%(?:!?))(.*?)(%>)',
|
|
611
603
|
bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
|
|
612
604
|
(r'(\$\{)(.*?)(\})',
|
|
613
605
|
bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
|
|
@@ -659,8 +651,7 @@ class MakoHtmlLexer(DelegatingLexer):
|
|
|
659
651
|
mimetypes = ['text/html+mako']
|
|
660
652
|
|
|
661
653
|
def __init__(self, **options):
|
|
662
|
-
super(
|
|
663
|
-
**options)
|
|
654
|
+
super().__init__(HtmlLexer, MakoLexer, **options)
|
|
664
655
|
|
|
665
656
|
|
|
666
657
|
class MakoXmlLexer(DelegatingLexer):
|
|
@@ -676,8 +667,7 @@ class MakoXmlLexer(DelegatingLexer):
|
|
|
676
667
|
mimetypes = ['application/xml+mako']
|
|
677
668
|
|
|
678
669
|
def __init__(self, **options):
|
|
679
|
-
super(
|
|
680
|
-
**options)
|
|
670
|
+
super().__init__(XmlLexer, MakoLexer, **options)
|
|
681
671
|
|
|
682
672
|
|
|
683
673
|
class MakoJavascriptLexer(DelegatingLexer):
|
|
@@ -695,8 +685,7 @@ class MakoJavascriptLexer(DelegatingLexer):
|
|
|
695
685
|
'text/javascript+mako']
|
|
696
686
|
|
|
697
687
|
def __init__(self, **options):
|
|
698
|
-
super(
|
|
699
|
-
MakoLexer, **options)
|
|
688
|
+
super().__init__(JavascriptLexer, MakoLexer, **options)
|
|
700
689
|
|
|
701
690
|
|
|
702
691
|
class MakoCssLexer(DelegatingLexer):
|
|
@@ -712,8 +701,7 @@ class MakoCssLexer(DelegatingLexer):
|
|
|
712
701
|
mimetypes = ['text/css+mako']
|
|
713
702
|
|
|
714
703
|
def __init__(self, **options):
|
|
715
|
-
super(
|
|
716
|
-
**options)
|
|
704
|
+
super().__init__(CssLexer, MakoLexer, **options)
|
|
717
705
|
|
|
718
706
|
|
|
719
707
|
# Genshi and Cheetah lexers courtesy of Matt Good.
|
|
@@ -759,7 +747,7 @@ class CheetahLexer(RegexLexer):
|
|
|
759
747
|
# TODO support other Python syntax like $foo['bar']
|
|
760
748
|
(r'(\$)([a-zA-Z_][\w.]*\w)',
|
|
761
749
|
bygroups(Comment.Preproc, using(CheetahPythonLexer))),
|
|
762
|
-
(r'(\$\{!?)(.*?)(\})
|
|
750
|
+
(r'(?s)(\$\{!?)(.*?)(\})',
|
|
763
751
|
bygroups(Comment.Preproc, using(CheetahPythonLexer),
|
|
764
752
|
Comment.Preproc)),
|
|
765
753
|
(r'''(?sx)
|
|
@@ -786,8 +774,7 @@ class CheetahHtmlLexer(DelegatingLexer):
|
|
|
786
774
|
mimetypes = ['text/html+cheetah', 'text/html+spitfire']
|
|
787
775
|
|
|
788
776
|
def __init__(self, **options):
|
|
789
|
-
super(
|
|
790
|
-
**options)
|
|
777
|
+
super().__init__(HtmlLexer, CheetahLexer, **options)
|
|
791
778
|
|
|
792
779
|
|
|
793
780
|
class CheetahXmlLexer(DelegatingLexer):
|
|
@@ -801,8 +788,7 @@ class CheetahXmlLexer(DelegatingLexer):
|
|
|
801
788
|
mimetypes = ['application/xml+cheetah', 'application/xml+spitfire']
|
|
802
789
|
|
|
803
790
|
def __init__(self, **options):
|
|
804
|
-
super(
|
|
805
|
-
**options)
|
|
791
|
+
super().__init__(XmlLexer, CheetahLexer, **options)
|
|
806
792
|
|
|
807
793
|
|
|
808
794
|
class CheetahJavascriptLexer(DelegatingLexer):
|
|
@@ -822,8 +808,7 @@ class CheetahJavascriptLexer(DelegatingLexer):
|
|
|
822
808
|
'text/javascript+spitfire']
|
|
823
809
|
|
|
824
810
|
def __init__(self, **options):
|
|
825
|
-
super(
|
|
826
|
-
CheetahLexer, **options)
|
|
811
|
+
super().__init__(JavascriptLexer, CheetahLexer, **options)
|
|
827
812
|
|
|
828
813
|
|
|
829
814
|
class GenshiTextLexer(RegexLexer):
|
|
@@ -937,14 +922,13 @@ class HtmlGenshiLexer(DelegatingLexer):
|
|
|
937
922
|
mimetypes = ['text/html+genshi']
|
|
938
923
|
|
|
939
924
|
def __init__(self, **options):
|
|
940
|
-
super(
|
|
941
|
-
**options)
|
|
925
|
+
super().__init__(HtmlLexer, GenshiMarkupLexer, **options)
|
|
942
926
|
|
|
943
927
|
def analyse_text(text):
|
|
944
928
|
rv = 0.0
|
|
945
|
-
if re.search('\$\{.*?\}', text) is not None:
|
|
929
|
+
if re.search(r'\$\{.*?\}', text) is not None:
|
|
946
930
|
rv += 0.2
|
|
947
|
-
if re.search('py:(.*?)=["\']', text) is not None:
|
|
931
|
+
if re.search(r'py:(.*?)=["\']', text) is not None:
|
|
948
932
|
rv += 0.2
|
|
949
933
|
return rv + HtmlLexer.analyse_text(text) - 0.01
|
|
950
934
|
|
|
@@ -962,14 +946,13 @@ class GenshiLexer(DelegatingLexer):
|
|
|
962
946
|
mimetypes = ['application/x-genshi', 'application/x-kid']
|
|
963
947
|
|
|
964
948
|
def __init__(self, **options):
|
|
965
|
-
super(
|
|
966
|
-
**options)
|
|
949
|
+
super().__init__(XmlLexer, GenshiMarkupLexer, **options)
|
|
967
950
|
|
|
968
951
|
def analyse_text(text):
|
|
969
952
|
rv = 0.0
|
|
970
|
-
if re.search('\$\{.*?\}', text) is not None:
|
|
953
|
+
if re.search(r'\$\{.*?\}', text) is not None:
|
|
971
954
|
rv += 0.2
|
|
972
|
-
if re.search('py:(.*?)=["\']', text) is not None:
|
|
955
|
+
if re.search(r'py:(.*?)=["\']', text) is not None:
|
|
973
956
|
rv += 0.2
|
|
974
957
|
return rv + XmlLexer.analyse_text(text) - 0.01
|
|
975
958
|
|
|
@@ -988,9 +971,7 @@ class JavascriptGenshiLexer(DelegatingLexer):
|
|
|
988
971
|
'text/javascript+genshi']
|
|
989
972
|
|
|
990
973
|
def __init__(self, **options):
|
|
991
|
-
super(
|
|
992
|
-
GenshiTextLexer,
|
|
993
|
-
**options)
|
|
974
|
+
super().__init__(JavascriptLexer, GenshiTextLexer, **options)
|
|
994
975
|
|
|
995
976
|
def analyse_text(text):
|
|
996
977
|
return GenshiLexer.analyse_text(text) - 0.05
|
|
@@ -1007,8 +988,7 @@ class CssGenshiLexer(DelegatingLexer):
|
|
|
1007
988
|
mimetypes = ['text/css+genshi']
|
|
1008
989
|
|
|
1009
990
|
def __init__(self, **options):
|
|
1010
|
-
super(
|
|
1011
|
-
**options)
|
|
991
|
+
super().__init__(CssLexer, GenshiTextLexer, **options)
|
|
1012
992
|
|
|
1013
993
|
def analyse_text(text):
|
|
1014
994
|
return GenshiLexer.analyse_text(text) - 0.05
|
|
@@ -1029,7 +1009,7 @@ class RhtmlLexer(DelegatingLexer):
|
|
|
1029
1009
|
mimetypes = ['text/html+ruby']
|
|
1030
1010
|
|
|
1031
1011
|
def __init__(self, **options):
|
|
1032
|
-
super(
|
|
1012
|
+
super().__init__(HtmlLexer, ErbLexer, **options)
|
|
1033
1013
|
|
|
1034
1014
|
def analyse_text(text):
|
|
1035
1015
|
rv = ErbLexer.analyse_text(text) - 0.01
|
|
@@ -1051,7 +1031,7 @@ class XmlErbLexer(DelegatingLexer):
|
|
|
1051
1031
|
mimetypes = ['application/xml+ruby']
|
|
1052
1032
|
|
|
1053
1033
|
def __init__(self, **options):
|
|
1054
|
-
super(
|
|
1034
|
+
super().__init__(XmlLexer, ErbLexer, **options)
|
|
1055
1035
|
|
|
1056
1036
|
def analyse_text(text):
|
|
1057
1037
|
rv = ErbLexer.analyse_text(text) - 0.01
|
|
@@ -1071,7 +1051,7 @@ class CssErbLexer(DelegatingLexer):
|
|
|
1071
1051
|
mimetypes = ['text/css+ruby']
|
|
1072
1052
|
|
|
1073
1053
|
def __init__(self, **options):
|
|
1074
|
-
super(
|
|
1054
|
+
super().__init__(CssLexer, ErbLexer, **options)
|
|
1075
1055
|
|
|
1076
1056
|
def analyse_text(text):
|
|
1077
1057
|
return ErbLexer.analyse_text(text) - 0.05
|
|
@@ -1091,8 +1071,7 @@ class JavascriptErbLexer(DelegatingLexer):
|
|
|
1091
1071
|
'text/javascript+ruby']
|
|
1092
1072
|
|
|
1093
1073
|
def __init__(self, **options):
|
|
1094
|
-
super(
|
|
1095
|
-
**options)
|
|
1074
|
+
super().__init__(JavascriptLexer, ErbLexer, **options)
|
|
1096
1075
|
|
|
1097
1076
|
def analyse_text(text):
|
|
1098
1077
|
return ErbLexer.analyse_text(text) - 0.05
|
|
@@ -1115,7 +1094,7 @@ class HtmlPhpLexer(DelegatingLexer):
|
|
|
1115
1094
|
'application/x-httpd-php4', 'application/x-httpd-php5']
|
|
1116
1095
|
|
|
1117
1096
|
def __init__(self, **options):
|
|
1118
|
-
super(
|
|
1097
|
+
super().__init__(HtmlLexer, PhpLexer, **options)
|
|
1119
1098
|
|
|
1120
1099
|
def analyse_text(text):
|
|
1121
1100
|
rv = PhpLexer.analyse_text(text) - 0.01
|
|
@@ -1135,7 +1114,7 @@ class XmlPhpLexer(DelegatingLexer):
|
|
|
1135
1114
|
mimetypes = ['application/xml+php']
|
|
1136
1115
|
|
|
1137
1116
|
def __init__(self, **options):
|
|
1138
|
-
super(
|
|
1117
|
+
super().__init__(XmlLexer, PhpLexer, **options)
|
|
1139
1118
|
|
|
1140
1119
|
def analyse_text(text):
|
|
1141
1120
|
rv = PhpLexer.analyse_text(text) - 0.01
|
|
@@ -1155,7 +1134,7 @@ class CssPhpLexer(DelegatingLexer):
|
|
|
1155
1134
|
mimetypes = ['text/css+php']
|
|
1156
1135
|
|
|
1157
1136
|
def __init__(self, **options):
|
|
1158
|
-
super(
|
|
1137
|
+
super().__init__(CssLexer, PhpLexer, **options)
|
|
1159
1138
|
|
|
1160
1139
|
def analyse_text(text):
|
|
1161
1140
|
return PhpLexer.analyse_text(text) - 0.05
|
|
@@ -1175,8 +1154,7 @@ class JavascriptPhpLexer(DelegatingLexer):
|
|
|
1175
1154
|
'text/javascript+php']
|
|
1176
1155
|
|
|
1177
1156
|
def __init__(self, **options):
|
|
1178
|
-
super(
|
|
1179
|
-
**options)
|
|
1157
|
+
super().__init__(JavascriptLexer, PhpLexer, **options)
|
|
1180
1158
|
|
|
1181
1159
|
def analyse_text(text):
|
|
1182
1160
|
return PhpLexer.analyse_text(text)
|
|
@@ -1196,7 +1174,7 @@ class HtmlSmartyLexer(DelegatingLexer):
|
|
|
1196
1174
|
mimetypes = ['text/html+smarty']
|
|
1197
1175
|
|
|
1198
1176
|
def __init__(self, **options):
|
|
1199
|
-
super(
|
|
1177
|
+
super().__init__(HtmlLexer, SmartyLexer, **options)
|
|
1200
1178
|
|
|
1201
1179
|
def analyse_text(text):
|
|
1202
1180
|
rv = SmartyLexer.analyse_text(text) - 0.01
|
|
@@ -1217,7 +1195,7 @@ class XmlSmartyLexer(DelegatingLexer):
|
|
|
1217
1195
|
mimetypes = ['application/xml+smarty']
|
|
1218
1196
|
|
|
1219
1197
|
def __init__(self, **options):
|
|
1220
|
-
super(
|
|
1198
|
+
super().__init__(XmlLexer, SmartyLexer, **options)
|
|
1221
1199
|
|
|
1222
1200
|
def analyse_text(text):
|
|
1223
1201
|
rv = SmartyLexer.analyse_text(text) - 0.01
|
|
@@ -1238,7 +1216,7 @@ class CssSmartyLexer(DelegatingLexer):
|
|
|
1238
1216
|
mimetypes = ['text/css+smarty']
|
|
1239
1217
|
|
|
1240
1218
|
def __init__(self, **options):
|
|
1241
|
-
super(
|
|
1219
|
+
super().__init__(CssLexer, SmartyLexer, **options)
|
|
1242
1220
|
|
|
1243
1221
|
def analyse_text(text):
|
|
1244
1222
|
return SmartyLexer.analyse_text(text) - 0.05
|
|
@@ -1258,8 +1236,7 @@ class JavascriptSmartyLexer(DelegatingLexer):
|
|
|
1258
1236
|
'text/javascript+smarty']
|
|
1259
1237
|
|
|
1260
1238
|
def __init__(self, **options):
|
|
1261
|
-
super(
|
|
1262
|
-
**options)
|
|
1239
|
+
super().__init__(JavascriptLexer, SmartyLexer, **options)
|
|
1263
1240
|
|
|
1264
1241
|
def analyse_text(text):
|
|
1265
1242
|
return SmartyLexer.analyse_text(text) - 0.05
|
|
@@ -1279,7 +1256,7 @@ class HtmlDjangoLexer(DelegatingLexer):
|
|
|
1279
1256
|
mimetypes = ['text/html+django', 'text/html+jinja']
|
|
1280
1257
|
|
|
1281
1258
|
def __init__(self, **options):
|
|
1282
|
-
super(
|
|
1259
|
+
super().__init__(HtmlLexer, DjangoLexer, **options)
|
|
1283
1260
|
|
|
1284
1261
|
def analyse_text(text):
|
|
1285
1262
|
rv = DjangoLexer.analyse_text(text) - 0.01
|
|
@@ -1300,7 +1277,7 @@ class XmlDjangoLexer(DelegatingLexer):
|
|
|
1300
1277
|
mimetypes = ['application/xml+django', 'application/xml+jinja']
|
|
1301
1278
|
|
|
1302
1279
|
def __init__(self, **options):
|
|
1303
|
-
super(
|
|
1280
|
+
super().__init__(XmlLexer, DjangoLexer, **options)
|
|
1304
1281
|
|
|
1305
1282
|
def analyse_text(text):
|
|
1306
1283
|
rv = DjangoLexer.analyse_text(text) - 0.01
|
|
@@ -1321,7 +1298,7 @@ class CssDjangoLexer(DelegatingLexer):
|
|
|
1321
1298
|
mimetypes = ['text/css+django', 'text/css+jinja']
|
|
1322
1299
|
|
|
1323
1300
|
def __init__(self, **options):
|
|
1324
|
-
super(
|
|
1301
|
+
super().__init__(CssLexer, DjangoLexer, **options)
|
|
1325
1302
|
|
|
1326
1303
|
def analyse_text(text):
|
|
1327
1304
|
return DjangoLexer.analyse_text(text) - 0.05
|
|
@@ -1345,8 +1322,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
|
|
|
1345
1322
|
'text/javascript+jinja']
|
|
1346
1323
|
|
|
1347
1324
|
def __init__(self, **options):
|
|
1348
|
-
super(
|
|
1349
|
-
**options)
|
|
1325
|
+
super().__init__(JavascriptLexer, DjangoLexer, **options)
|
|
1350
1326
|
|
|
1351
1327
|
def analyse_text(text):
|
|
1352
1328
|
return DjangoLexer.analyse_text(text) - 0.05
|
|
@@ -1389,7 +1365,7 @@ class JspLexer(DelegatingLexer):
|
|
|
1389
1365
|
mimetypes = ['application/x-jsp']
|
|
1390
1366
|
|
|
1391
1367
|
def __init__(self, **options):
|
|
1392
|
-
super(
|
|
1368
|
+
super().__init__(XmlLexer, JspRootLexer, **options)
|
|
1393
1369
|
|
|
1394
1370
|
def analyse_text(text):
|
|
1395
1371
|
rv = JavaLexer.analyse_text(text) - 0.01
|
|
@@ -1428,7 +1404,7 @@ class EvoqueLexer(RegexLexer):
|
|
|
1428
1404
|
# see doc for handling first name arg: /directives/evoque/
|
|
1429
1405
|
# + minor inconsistency: the "name" in e.g. $overlay{name=site_base}
|
|
1430
1406
|
# should be using(PythonLexer), not passed out as String
|
|
1431
|
-
(r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+
|
|
1407
|
+
(r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+)?'
|
|
1432
1408
|
r'(.*?)((?(4)%)\})',
|
|
1433
1409
|
bygroups(Punctuation, Name.Builtin, Punctuation, None,
|
|
1434
1410
|
String, using(PythonLexer), Punctuation)),
|
|
@@ -1452,6 +1428,10 @@ class EvoqueLexer(RegexLexer):
|
|
|
1452
1428
|
],
|
|
1453
1429
|
}
|
|
1454
1430
|
|
|
1431
|
+
def analyse_text(text):
|
|
1432
|
+
"""Evoque templates use $evoque, which is unique."""
|
|
1433
|
+
if '$evoque' in text:
|
|
1434
|
+
return 1
|
|
1455
1435
|
|
|
1456
1436
|
class EvoqueHtmlLexer(DelegatingLexer):
|
|
1457
1437
|
"""
|
|
@@ -1466,8 +1446,10 @@ class EvoqueHtmlLexer(DelegatingLexer):
|
|
|
1466
1446
|
mimetypes = ['text/html+evoque']
|
|
1467
1447
|
|
|
1468
1448
|
def __init__(self, **options):
|
|
1469
|
-
super(
|
|
1470
|
-
|
|
1449
|
+
super().__init__(HtmlLexer, EvoqueLexer, **options)
|
|
1450
|
+
|
|
1451
|
+
def analyse_text(text):
|
|
1452
|
+
return EvoqueLexer.analyse_text(text)
|
|
1471
1453
|
|
|
1472
1454
|
|
|
1473
1455
|
class EvoqueXmlLexer(DelegatingLexer):
|
|
@@ -1483,8 +1465,10 @@ class EvoqueXmlLexer(DelegatingLexer):
|
|
|
1483
1465
|
mimetypes = ['application/xml+evoque']
|
|
1484
1466
|
|
|
1485
1467
|
def __init__(self, **options):
|
|
1486
|
-
super(
|
|
1487
|
-
|
|
1468
|
+
super().__init__(XmlLexer, EvoqueLexer, **options)
|
|
1469
|
+
|
|
1470
|
+
def analyse_text(text):
|
|
1471
|
+
return EvoqueLexer.analyse_text(text)
|
|
1488
1472
|
|
|
1489
1473
|
|
|
1490
1474
|
class ColdfusionLexer(RegexLexer):
|
|
@@ -1591,8 +1575,7 @@ class ColdfusionHtmlLexer(DelegatingLexer):
|
|
|
1591
1575
|
mimetypes = ['application/x-coldfusion']
|
|
1592
1576
|
|
|
1593
1577
|
def __init__(self, **options):
|
|
1594
|
-
super(
|
|
1595
|
-
**options)
|
|
1578
|
+
super().__init__(HtmlLexer, ColdfusionMarkupLexer, **options)
|
|
1596
1579
|
|
|
1597
1580
|
|
|
1598
1581
|
class ColdfusionCFCLexer(DelegatingLexer):
|
|
@@ -1607,8 +1590,7 @@ class ColdfusionCFCLexer(DelegatingLexer):
|
|
|
1607
1590
|
mimetypes = []
|
|
1608
1591
|
|
|
1609
1592
|
def __init__(self, **options):
|
|
1610
|
-
super(
|
|
1611
|
-
**options)
|
|
1593
|
+
super().__init__(ColdfusionHtmlLexer, ColdfusionLexer, **options)
|
|
1612
1594
|
|
|
1613
1595
|
|
|
1614
1596
|
class SspLexer(DelegatingLexer):
|
|
@@ -1623,11 +1605,11 @@ class SspLexer(DelegatingLexer):
|
|
|
1623
1605
|
mimetypes = ['application/x-ssp']
|
|
1624
1606
|
|
|
1625
1607
|
def __init__(self, **options):
|
|
1626
|
-
super(
|
|
1608
|
+
super().__init__(XmlLexer, JspRootLexer, **options)
|
|
1627
1609
|
|
|
1628
1610
|
def analyse_text(text):
|
|
1629
1611
|
rv = 0.0
|
|
1630
|
-
if re.search('val \w+\s*:', text):
|
|
1612
|
+
if re.search(r'val \w+\s*:', text):
|
|
1631
1613
|
rv += 0.6
|
|
1632
1614
|
if looks_like_xml(text):
|
|
1633
1615
|
rv += 0.2
|
|
@@ -1670,8 +1652,7 @@ class TeaTemplateLexer(DelegatingLexer):
|
|
|
1670
1652
|
mimetypes = ['text/x-tea']
|
|
1671
1653
|
|
|
1672
1654
|
def __init__(self, **options):
|
|
1673
|
-
super(
|
|
1674
|
-
TeaTemplateRootLexer, **options)
|
|
1655
|
+
super().__init__(XmlLexer, TeaTemplateRootLexer, **options)
|
|
1675
1656
|
|
|
1676
1657
|
def analyse_text(text):
|
|
1677
1658
|
rv = TeaLangLexer.analyse_text(text) - 0.01
|
|
@@ -1701,7 +1682,7 @@ class LassoHtmlLexer(DelegatingLexer):
|
|
|
1701
1682
|
'application/x-httpd-lasso[89]']
|
|
1702
1683
|
|
|
1703
1684
|
def __init__(self, **options):
|
|
1704
|
-
super(
|
|
1685
|
+
super().__init__(HtmlLexer, LassoLexer, **options)
|
|
1705
1686
|
|
|
1706
1687
|
def analyse_text(text):
|
|
1707
1688
|
rv = LassoLexer.analyse_text(text) - 0.01
|
|
@@ -1725,7 +1706,7 @@ class LassoXmlLexer(DelegatingLexer):
|
|
|
1725
1706
|
mimetypes = ['application/xml+lasso']
|
|
1726
1707
|
|
|
1727
1708
|
def __init__(self, **options):
|
|
1728
|
-
super(
|
|
1709
|
+
super().__init__(XmlLexer, LassoLexer, **options)
|
|
1729
1710
|
|
|
1730
1711
|
def analyse_text(text):
|
|
1731
1712
|
rv = LassoLexer.analyse_text(text) - 0.01
|
|
@@ -1749,11 +1730,11 @@ class LassoCssLexer(DelegatingLexer):
|
|
|
1749
1730
|
|
|
1750
1731
|
def __init__(self, **options):
|
|
1751
1732
|
options['requiredelimiters'] = True
|
|
1752
|
-
super(
|
|
1733
|
+
super().__init__(CssLexer, LassoLexer, **options)
|
|
1753
1734
|
|
|
1754
1735
|
def analyse_text(text):
|
|
1755
1736
|
rv = LassoLexer.analyse_text(text) - 0.05
|
|
1756
|
-
if re.search(r'\w
|
|
1737
|
+
if re.search(r'\w+:[^;]+;', text):
|
|
1757
1738
|
rv += 0.1
|
|
1758
1739
|
if 'padding:' in text:
|
|
1759
1740
|
rv += 0.1
|
|
@@ -1777,8 +1758,7 @@ class LassoJavascriptLexer(DelegatingLexer):
|
|
|
1777
1758
|
|
|
1778
1759
|
def __init__(self, **options):
|
|
1779
1760
|
options['requiredelimiters'] = True
|
|
1780
|
-
super(
|
|
1781
|
-
**options)
|
|
1761
|
+
super().__init__(JavascriptLexer, LassoLexer, **options)
|
|
1782
1762
|
|
|
1783
1763
|
def analyse_text(text):
|
|
1784
1764
|
rv = LassoLexer.analyse_text(text) - 0.05
|
|
@@ -1802,27 +1782,27 @@ class HandlebarsLexer(RegexLexer):
|
|
|
1802
1782
|
'root': [
|
|
1803
1783
|
(r'[^{]+', Other),
|
|
1804
1784
|
|
|
1785
|
+
# Comment start {{! }} or {{!--
|
|
1805
1786
|
(r'\{\{!.*\}\}', Comment),
|
|
1806
1787
|
|
|
1788
|
+
# HTML Escaping open {{{expression
|
|
1807
1789
|
(r'(\{\{\{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
|
|
1790
|
+
|
|
1791
|
+
# {{blockOpen {{#blockOpen {{/blockClose with optional tilde ~
|
|
1792
|
+
(r'(\{\{)([#~/]+)([^\s}]*)',
|
|
1793
|
+
bygroups(Comment.Preproc, Number.Attribute, Number.Attribute), 'tag'),
|
|
1808
1794
|
(r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
|
|
1809
1795
|
],
|
|
1810
1796
|
|
|
1811
1797
|
'tag': [
|
|
1812
1798
|
(r'\s+', Text),
|
|
1799
|
+
# HTML Escaping close }}}
|
|
1813
1800
|
(r'\}\}\}', Comment.Special, '#pop'),
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
# Handlebars
|
|
1817
|
-
(r'([#/]*)(each|if|unless|else|with|log|in(line)?)', bygroups(Keyword,
|
|
1818
|
-
Keyword)),
|
|
1819
|
-
(r'#\*inline', Keyword),
|
|
1820
|
-
|
|
1821
|
-
# General {{#block}}
|
|
1822
|
-
(r'([#/])([\w-]+)', bygroups(Name.Function, Name.Function)),
|
|
1801
|
+
# blockClose}}, includes optional tilde ~
|
|
1802
|
+
(r'(~?)(\}\})', bygroups(Number, Comment.Preproc), '#pop'),
|
|
1823
1803
|
|
|
1824
1804
|
# {{opt=something}}
|
|
1825
|
-
(r'([
|
|
1805
|
+
(r'([^\s}]+)(=)', bygroups(Name.Attribute, Operator)),
|
|
1826
1806
|
|
|
1827
1807
|
# Partials {{> ...}}
|
|
1828
1808
|
(r'(>)(\s*)(@partial-block)', bygroups(Keyword, Text, Keyword)),
|
|
@@ -1845,7 +1825,7 @@ class HandlebarsLexer(RegexLexer):
|
|
|
1845
1825
|
include('generic'),
|
|
1846
1826
|
],
|
|
1847
1827
|
'variable': [
|
|
1848
|
-
(r'[a-zA-Z][\w-]*', Name.Variable),
|
|
1828
|
+
(r'[()/@a-zA-Z][\w-]*', Name.Variable),
|
|
1849
1829
|
(r'\.[\w-]+', Name.Variable),
|
|
1850
1830
|
(r'(this\/|\.\/|(\.\.\/)+)[\w-]+', Name.Variable),
|
|
1851
1831
|
],
|
|
@@ -1853,8 +1833,8 @@ class HandlebarsLexer(RegexLexer):
|
|
|
1853
1833
|
include('variable'),
|
|
1854
1834
|
|
|
1855
1835
|
# borrowed from DjangoLexer
|
|
1856
|
-
(r':?"(\\\\|\\
|
|
1857
|
-
(r":?'(\\\\|\\
|
|
1836
|
+
(r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
1837
|
+
(r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
1858
1838
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
|
1859
1839
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
|
1860
1840
|
]
|
|
@@ -1875,7 +1855,7 @@ class HandlebarsHtmlLexer(DelegatingLexer):
|
|
|
1875
1855
|
mimetypes = ['text/html+handlebars', 'text/x-handlebars-template']
|
|
1876
1856
|
|
|
1877
1857
|
def __init__(self, **options):
|
|
1878
|
-
super(
|
|
1858
|
+
super().__init__(HtmlLexer, HandlebarsLexer, **options)
|
|
1879
1859
|
|
|
1880
1860
|
|
|
1881
1861
|
class YamlJinjaLexer(DelegatingLexer):
|
|
@@ -1894,7 +1874,7 @@ class YamlJinjaLexer(DelegatingLexer):
|
|
|
1894
1874
|
mimetypes = ['text/x-yaml+jinja', 'text/x-sls']
|
|
1895
1875
|
|
|
1896
1876
|
def __init__(self, **options):
|
|
1897
|
-
super(
|
|
1877
|
+
super().__init__(YamlLexer, DjangoLexer, **options)
|
|
1898
1878
|
|
|
1899
1879
|
|
|
1900
1880
|
class LiquidLexer(RegexLexer):
|
|
@@ -1955,7 +1935,7 @@ class LiquidLexer(RegexLexer):
|
|
|
1955
1935
|
|
|
1956
1936
|
'output': [
|
|
1957
1937
|
include('whitespace'),
|
|
1958
|
-
('\}\}', Punctuation, '#pop'), # end of output
|
|
1938
|
+
(r'\}\}', Punctuation, '#pop'), # end of output
|
|
1959
1939
|
|
|
1960
1940
|
(r'\|', Punctuation, 'filters')
|
|
1961
1941
|
],
|
|
@@ -2166,8 +2146,8 @@ class TwigLexer(RegexLexer):
|
|
|
2166
2146
|
(_ident_inner, Name.Variable),
|
|
2167
2147
|
(r'\.' + _ident_inner, Name.Variable),
|
|
2168
2148
|
(r'\.[0-9]+', Number),
|
|
2169
|
-
(r':?"(\\\\|\\
|
|
2170
|
-
(r":?'(\\\\|\\
|
|
2149
|
+
(r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
2150
|
+
(r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
2171
2151
|
(r'([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)', Operator),
|
|
2172
2152
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
|
2173
2153
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
|
@@ -2200,7 +2180,7 @@ class TwigHtmlLexer(DelegatingLexer):
|
|
|
2200
2180
|
mimetypes = ['text/html+twig']
|
|
2201
2181
|
|
|
2202
2182
|
def __init__(self, **options):
|
|
2203
|
-
super(
|
|
2183
|
+
super().__init__(HtmlLexer, TwigLexer, **options)
|
|
2204
2184
|
|
|
2205
2185
|
|
|
2206
2186
|
class Angular2Lexer(RegexLexer):
|
|
@@ -2235,9 +2215,9 @@ class Angular2Lexer(RegexLexer):
|
|
|
2235
2215
|
|
|
2236
2216
|
# *ngIf="..."; #f="ngForm"
|
|
2237
2217
|
(r'([*#])([\w:.-]+)(\s*)(=)(\s*)',
|
|
2238
|
-
bygroups(Punctuation, Name.Attribute,
|
|
2218
|
+
bygroups(Punctuation, Name.Attribute, Text, Operator, Text), 'attr'),
|
|
2239
2219
|
(r'([*#])([\w:.-]+)(\s*)',
|
|
2240
|
-
bygroups(Punctuation, Name.Attribute,
|
|
2220
|
+
bygroups(Punctuation, Name.Attribute, Text)),
|
|
2241
2221
|
],
|
|
2242
2222
|
|
|
2243
2223
|
'ngExpression': [
|
|
@@ -2246,8 +2226,8 @@ class Angular2Lexer(RegexLexer):
|
|
|
2246
2226
|
|
|
2247
2227
|
# Literals
|
|
2248
2228
|
(r':?(true|false)', String.Boolean),
|
|
2249
|
-
(r':?"(\\\\|\\
|
|
2250
|
-
(r":?'(\\\\|\\
|
|
2229
|
+
(r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
2230
|
+
(r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
2251
2231
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
|
2252
2232
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
|
2253
2233
|
|
|
@@ -2280,4 +2260,4 @@ class Angular2HtmlLexer(DelegatingLexer):
|
|
|
2280
2260
|
filenames = ['*.ng2']
|
|
2281
2261
|
|
|
2282
2262
|
def __init__(self, **options):
|
|
2283
|
-
super(
|
|
2263
|
+
super().__init__(HtmlLexer, Angular2Lexer, **options)
|