pygments.rb 2.3.1 → 2.4.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 +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/.rubocop.yml +7 -0
- data/CHANGELOG.adoc +4 -0
- data/README.adoc +1 -1
- data/bench.rb +1 -1
- data/lib/pygments/popen.rb +3 -7
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -2
- data/test/test_pygments.rb +0 -19
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/AUTHORS +21 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/LICENSE +1 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/METADATA +19 -11
- data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +614 -0
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/WHEEL +1 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/entry_points.txt +0 -1
- data/vendor/pygments-main/bin/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +20 -22
- data/vendor/pygments-main/pygments/__main__.py +1 -1
- data/vendor/pygments-main/pygments/cmdline.py +74 -8
- data/vendor/pygments-main/pygments/console.py +1 -1
- data/vendor/pygments-main/pygments/filter.py +1 -1
- data/vendor/pygments-main/pygments/filters/__init__.py +6 -3
- data/vendor/pygments-main/pygments/formatter.py +41 -11
- data/vendor/pygments-main/pygments/formatters/__init__.py +21 -16
- data/vendor/pygments-main/pygments/formatters/_mapping.py +5 -65
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/groff.py +170 -0
- data/vendor/pygments-main/pygments/formatters/html.py +54 -32
- data/vendor/pygments-main/pygments/formatters/img.py +9 -5
- data/vendor/pygments-main/pygments/formatters/irc.py +6 -33
- data/vendor/pygments-main/pygments/formatters/latex.py +24 -14
- data/vendor/pygments-main/pygments/formatters/other.py +1 -1
- data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
- data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -3
- data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -4
- data/vendor/pygments-main/pygments/lexer.py +101 -32
- data/vendor/pygments-main/pygments/lexers/__init__.py +50 -29
- data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +103 -0
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +21 -6
- data/vendor/pygments-main/pygments/lexers/_css_builtins.py +558 -0
- data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +10 -0
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +4932 -0
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +11 -18
- data/vendor/pygments-main/pygments/lexers/_mapping.py +71 -82
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +58 -4
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +408 -1835
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +70 -8
- data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +666 -0
- data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1609 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3 -3
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +9 -18
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +185 -94
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +15 -14
- data/vendor/pygments-main/pygments/lexers/ada.py +144 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +72 -9
- data/vendor/pygments-main/pygments/lexers/ambient.py +8 -7
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +4 -3
- data/vendor/pygments-main/pygments/lexers/ampl.py +10 -8
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +164 -20
- data/vendor/pygments-main/pygments/lexers/apl.py +6 -5
- data/vendor/pygments-main/pygments/lexers/archetype.py +23 -21
- data/vendor/pygments-main/pygments/lexers/arrow.py +10 -9
- data/vendor/pygments-main/pygments/lexers/arturo.py +250 -0
- data/vendor/pygments-main/pygments/lexers/asc.py +9 -5
- data/vendor/pygments-main/pygments/lexers/asm.py +68 -63
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -5
- data/vendor/pygments-main/pygments/lexers/bare.py +20 -21
- data/vendor/pygments-main/pygments/lexers/basic.py +45 -41
- data/vendor/pygments-main/pygments/lexers/bdd.py +58 -0
- data/vendor/pygments-main/pygments/lexers/berry.py +99 -0
- data/vendor/pygments-main/pygments/lexers/bibtex.py +6 -6
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -8
- data/vendor/pygments-main/pygments/lexers/business.py +18 -18
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +80 -40
- data/vendor/pygments-main/pygments/lexers/c_like.py +21 -19
- data/vendor/pygments-main/pygments/lexers/capnproto.py +6 -8
- data/vendor/pygments-main/pygments/lexers/carbon.py +96 -0
- data/vendor/pygments-main/pygments/lexers/cddl.py +16 -33
- data/vendor/pygments-main/pygments/lexers/chapel.py +14 -9
- data/vendor/pygments-main/pygments/lexers/clean.py +3 -2
- data/vendor/pygments-main/pygments/lexers/comal.py +80 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +3 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +235 -120
- data/vendor/pygments-main/pygments/lexers/console.py +5 -4
- data/vendor/pygments-main/pygments/lexers/cplint.py +44 -0
- data/vendor/pygments-main/pygments/lexers/crystal.py +22 -23
- data/vendor/pygments-main/pygments/lexers/csound.py +19 -17
- data/vendor/pygments-main/pygments/lexers/css.py +67 -159
- data/vendor/pygments-main/pygments/lexers/d.py +15 -12
- data/vendor/pygments-main/pygments/lexers/dalvik.py +14 -11
- data/vendor/pygments-main/pygments/lexers/data.py +119 -49
- data/vendor/pygments-main/pygments/lexers/dax.py +136 -0
- data/vendor/pygments-main/pygments/lexers/devicetree.py +9 -8
- data/vendor/pygments-main/pygments/lexers/diff.py +23 -19
- data/vendor/pygments-main/pygments/lexers/dotnet.py +216 -81
- data/vendor/pygments-main/pygments/lexers/dsls.py +86 -64
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -15
- data/vendor/pygments-main/pygments/lexers/ecl.py +46 -38
- data/vendor/pygments-main/pygments/lexers/eiffel.py +15 -10
- data/vendor/pygments-main/pygments/lexers/elm.py +12 -8
- data/vendor/pygments-main/pygments/lexers/elpi.py +165 -0
- data/vendor/pygments-main/pygments/lexers/email.py +21 -39
- data/vendor/pygments-main/pygments/lexers/erlang.py +21 -22
- data/vendor/pygments-main/pygments/lexers/esoteric.py +28 -30
- data/vendor/pygments-main/pygments/lexers/ezhil.py +10 -9
- data/vendor/pygments-main/pygments/lexers/factor.py +104 -83
- data/vendor/pygments-main/pygments/lexers/fantom.py +31 -29
- data/vendor/pygments-main/pygments/lexers/felix.py +18 -14
- data/vendor/pygments-main/pygments/lexers/fift.py +67 -0
- data/vendor/pygments-main/pygments/lexers/floscript.py +7 -7
- data/vendor/pygments-main/pygments/lexers/forth.py +8 -6
- data/vendor/pygments-main/pygments/lexers/fortran.py +16 -11
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +7 -10
- data/vendor/pygments-main/pygments/lexers/func.py +108 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/futhark.py +12 -17
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -2
- data/vendor/pygments-main/pygments/lexers/gdscript.py +76 -233
- data/vendor/pygments-main/pygments/lexers/go.py +12 -14
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +22 -26
- data/vendor/pygments-main/pygments/lexers/graph.py +36 -15
- data/vendor/pygments-main/pygments/lexers/graphics.py +37 -38
- data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -1
- data/vendor/pygments-main/pygments/lexers/gsql.py +39 -27
- data/vendor/pygments-main/pygments/lexers/haskell.py +73 -71
- data/vendor/pygments-main/pygments/lexers/haxe.py +13 -11
- data/vendor/pygments-main/pygments/lexers/hdl.py +31 -34
- data/vendor/pygments-main/pygments/lexers/hexdump.py +21 -21
- data/vendor/pygments-main/pygments/lexers/html.py +11 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +10 -5
- data/vendor/pygments-main/pygments/lexers/igor.py +3 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +9 -8
- data/vendor/pygments-main/pygments/lexers/installers.py +39 -33
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +35 -20
- data/vendor/pygments-main/pygments/lexers/iolang.py +9 -9
- data/vendor/pygments-main/pygments/lexers/j.py +20 -13
- data/vendor/pygments-main/pygments/lexers/javascript.py +183 -149
- data/vendor/pygments-main/pygments/lexers/jmespath.py +68 -0
- data/vendor/pygments-main/pygments/lexers/jslt.py +4 -3
- data/vendor/pygments-main/pygments/lexers/jsonnet.py +168 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -32
- data/vendor/pygments-main/pygments/lexers/jvm.py +161 -140
- data/vendor/pygments-main/pygments/lexers/kuin.py +93 -59
- data/vendor/pygments-main/pygments/lexers/lilypond.py +226 -0
- data/vendor/pygments-main/pygments/lexers/lisp.py +244 -107
- data/vendor/pygments-main/pygments/lexers/macaulay2.py +1739 -0
- data/vendor/pygments-main/pygments/lexers/make.py +21 -16
- data/vendor/pygments-main/pygments/lexers/markup.py +752 -11
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +18 -3
- data/vendor/pygments-main/pygments/lexers/maxima.py +85 -0
- data/vendor/pygments-main/pygments/lexers/meson.py +10 -25
- data/vendor/pygments-main/pygments/lexers/mime.py +2 -2
- data/vendor/pygments-main/pygments/lexers/minecraft.py +394 -0
- data/vendor/pygments-main/pygments/lexers/mips.py +128 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +9 -6
- data/vendor/pygments-main/pygments/lexers/modeling.py +12 -8
- data/vendor/pygments-main/pygments/lexers/modula2.py +3 -2
- data/vendor/pygments-main/pygments/lexers/monte.py +3 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nimrod.py +62 -20
- data/vendor/pygments-main/pygments/lexers/nit.py +3 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +5 -5
- data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +6 -4
- data/vendor/pygments-main/pygments/lexers/ooc.py +3 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +3 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +23 -21
- data/vendor/pygments-main/pygments/lexers/pascal.py +196 -198
- data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
- data/vendor/pygments-main/pygments/lexers/perl.py +17 -15
- data/vendor/pygments-main/pygments/lexers/phix.py +364 -0
- data/vendor/pygments-main/pygments/lexers/php.py +35 -20
- data/vendor/pygments-main/pygments/lexers/pointless.py +3 -2
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
- data/vendor/pygments-main/pygments/lexers/praat.py +41 -38
- data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
- data/vendor/pygments-main/pygments/lexers/prolog.py +7 -8
- data/vendor/pygments-main/pygments/lexers/promql.py +5 -12
- data/vendor/pygments-main/pygments/lexers/python.py +145 -119
- data/vendor/pygments-main/pygments/lexers/q.py +188 -0
- data/vendor/pygments-main/pygments/lexers/qlik.py +117 -0
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/r.py +4 -4
- data/vendor/pygments-main/pygments/lexers/rdf.py +3 -3
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -12
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ride.py +3 -2
- data/vendor/pygments-main/pygments/lexers/rita.py +43 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +3 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +3 -3
- data/vendor/pygments-main/pygments/lexers/robotframework.py +6 -5
- data/vendor/pygments-main/pygments/lexers/ruby.py +24 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +3 -2
- data/vendor/pygments-main/pygments/lexers/sas.py +2 -2
- data/vendor/pygments-main/pygments/lexers/savi.py +170 -0
- data/vendor/pygments-main/pygments/lexers/scdoc.py +4 -7
- data/vendor/pygments-main/pygments/lexers/scripting.py +24 -21
- data/vendor/pygments-main/pygments/lexers/sgf.py +6 -6
- data/vendor/pygments-main/pygments/lexers/shell.py +29 -21
- data/vendor/pygments-main/pygments/lexers/sieve.py +14 -4
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +5 -3
- data/vendor/pygments-main/pygments/lexers/smithy.py +5 -6
- data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/solidity.py +3 -7
- data/vendor/pygments-main/pygments/lexers/sophia.py +103 -0
- data/vendor/pygments-main/pygments/lexers/special.py +2 -5
- data/vendor/pygments-main/pygments/lexers/spice.py +71 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +212 -17
- data/vendor/pygments-main/pygments/lexers/srcinfo.py +62 -0
- data/vendor/pygments-main/pygments/lexers/stata.py +4 -3
- data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -3
- data/vendor/pygments-main/pygments/lexers/tal.py +74 -0
- data/vendor/pygments-main/pygments/lexers/tcl.py +21 -16
- data/vendor/pygments-main/pygments/lexers/teal.py +9 -8
- data/vendor/pygments-main/pygments/lexers/templates.py +62 -29
- data/vendor/pygments-main/pygments/lexers/teraterm.py +12 -20
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -2
- data/vendor/pygments-main/pygments/lexers/text.py +3 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +41 -7
- data/vendor/pygments-main/pygments/lexers/textfmts.py +7 -5
- data/vendor/pygments-main/pygments/lexers/theorem.py +42 -36
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +2 -4
- data/vendor/pygments-main/pygments/lexers/tlb.py +57 -0
- data/vendor/pygments-main/pygments/lexers/tnt.py +3 -4
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -4
- data/vendor/pygments-main/pygments/lexers/typoscript.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ul4.py +267 -0
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
- data/vendor/pygments-main/pygments/lexers/urbi.py +4 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +2 -1
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +4 -3
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webassembly.py +5 -5
- data/vendor/pygments-main/pygments/lexers/webidl.py +2 -1
- data/vendor/pygments-main/pygments/lexers/webmisc.py +90 -71
- data/vendor/pygments-main/pygments/lexers/wgsl.py +407 -0
- data/vendor/pygments-main/pygments/lexers/whiley.py +2 -1
- data/vendor/pygments-main/pygments/lexers/wowtoc.py +120 -0
- data/vendor/pygments-main/pygments/lexers/wren.py +99 -0
- data/vendor/pygments-main/pygments/lexers/x10.py +5 -6
- data/vendor/pygments-main/pygments/lexers/xorg.py +3 -2
- data/vendor/pygments-main/pygments/lexers/yang.py +6 -5
- data/vendor/pygments-main/pygments/lexers/zig.py +3 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -1
- data/vendor/pygments-main/pygments/plugin.py +28 -9
- 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 +63 -1
- data/vendor/pygments-main/pygments/style.py +7 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +19 -5
- data/vendor/pygments-main/pygments/styles/abap.py +2 -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 -3
- data/vendor/pygments-main/pygments/styles/borland.py +1 -3
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -3
- data/vendor/pygments-main/pygments/styles/default.py +13 -14
- data/vendor/pygments-main/pygments/styles/dracula.py +102 -0
- 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/friendly_grayscale.py +75 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/gh_dark.py +107 -0
- data/vendor/pygments-main/pygments/styles/gruvbox.py +4 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +3 -2
- data/vendor/pygments-main/pygments/styles/lilypond.py +56 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -3
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/material.py +1 -2
- data/vendor/pygments-main/pygments/styles/monokai.py +3 -3
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -3
- data/vendor/pygments-main/pygments/styles/native.py +11 -11
- data/vendor/pygments-main/pygments/styles/nord.py +150 -0
- data/vendor/pygments-main/pygments/styles/onedark.py +59 -0
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -6
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -6
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -3
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +3 -3
- data/vendor/pygments-main/pygments/styles/rrt.py +3 -2
- data/vendor/pygments-main/pygments/styles/sas.py +2 -4
- data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
- data/vendor/pygments-main/pygments/styles/staroffice.py +26 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +4 -6
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/tango.py +2 -3
- data/vendor/pygments-main/pygments/styles/trac.py +1 -3
- 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 -3
- data/vendor/pygments-main/pygments/styles/zenburn.py +4 -6
- data/vendor/pygments-main/pygments/token.py +2 -1
- data/vendor/pygments-main/pygments/unistring.py +4 -6
- data/vendor/pygments-main/pygments/util.py +27 -5
- metadata +59 -14
- data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +0 -524
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/INSTALLER +0 -0
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/REQUESTED +0 -0
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for various template engines' markup.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -18,6 +18,7 @@ from pygments.lexers.python import PythonLexer
|
|
18
18
|
from pygments.lexers.perl import PerlLexer
|
19
19
|
from pygments.lexers.jvm import JavaLexer, TeaLangLexer
|
20
20
|
from pygments.lexers.data import YamlLexer
|
21
|
+
from pygments.lexers.sql import SqlLexer
|
21
22
|
from pygments.lexer import Lexer, DelegatingLexer, RegexLexer, bygroups, \
|
22
23
|
include, using, this, default, combined
|
23
24
|
from pygments.token import Error, Punctuation, Whitespace, \
|
@@ -43,13 +44,13 @@ __all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
|
|
43
44
|
'TeaTemplateLexer', 'LassoHtmlLexer', 'LassoXmlLexer',
|
44
45
|
'LassoCssLexer', 'LassoJavascriptLexer', 'HandlebarsLexer',
|
45
46
|
'HandlebarsHtmlLexer', 'YamlJinjaLexer', 'LiquidLexer',
|
46
|
-
'TwigLexer', 'TwigHtmlLexer', 'Angular2Lexer', 'Angular2HtmlLexer'
|
47
|
+
'TwigLexer', 'TwigHtmlLexer', 'Angular2Lexer', 'Angular2HtmlLexer',
|
48
|
+
'SqlJinjaLexer']
|
47
49
|
|
48
50
|
|
49
51
|
class ErbLexer(Lexer):
|
50
52
|
"""
|
51
|
-
Generic
|
52
|
-
lexer.
|
53
|
+
Generic ERB (Ruby Templating) lexer.
|
53
54
|
|
54
55
|
Just highlights ruby code between the preprocessor directives, other data
|
55
56
|
is left untouched by the lexer.
|
@@ -58,6 +59,7 @@ class ErbLexer(Lexer):
|
|
58
59
|
"""
|
59
60
|
|
60
61
|
name = 'ERB'
|
62
|
+
url = 'https://github.com/ruby/erb'
|
61
63
|
aliases = ['erb']
|
62
64
|
mimetypes = ['application/x-ruby-templating']
|
63
65
|
|
@@ -143,13 +145,14 @@ class ErbLexer(Lexer):
|
|
143
145
|
|
144
146
|
class SmartyLexer(RegexLexer):
|
145
147
|
"""
|
146
|
-
Generic
|
148
|
+
Generic Smarty template lexer.
|
147
149
|
|
148
150
|
Just highlights smarty code between the preprocessor directives, other
|
149
151
|
data is left untouched by the lexer.
|
150
152
|
"""
|
151
153
|
|
152
154
|
name = 'Smarty'
|
155
|
+
url = 'https://www.smarty.net/'
|
153
156
|
aliases = ['smarty']
|
154
157
|
filenames = ['*.tpl']
|
155
158
|
mimetypes = ['application/x-smarty']
|
@@ -199,13 +202,14 @@ class SmartyLexer(RegexLexer):
|
|
199
202
|
|
200
203
|
class VelocityLexer(RegexLexer):
|
201
204
|
"""
|
202
|
-
Generic
|
205
|
+
Generic Velocity template lexer.
|
203
206
|
|
204
207
|
Just highlights velocity directives and variable references, other
|
205
208
|
data is left untouched by the lexer.
|
206
209
|
"""
|
207
210
|
|
208
211
|
name = 'Velocity'
|
212
|
+
url = 'https://velocity.apache.org/'
|
209
213
|
aliases = ['velocity']
|
210
214
|
filenames = ['*.vm', '*.fhtml']
|
211
215
|
|
@@ -402,15 +406,14 @@ class DjangoLexer(RegexLexer):
|
|
402
406
|
|
403
407
|
class MyghtyLexer(RegexLexer):
|
404
408
|
"""
|
405
|
-
Generic
|
409
|
+
Generic myghty templates lexer. Code that isn't Myghty
|
406
410
|
markup is yielded as `Token.Other`.
|
407
411
|
|
408
412
|
.. versionadded:: 0.6
|
409
|
-
|
410
|
-
.. _myghty templates: http://www.myghty.org/
|
411
413
|
"""
|
412
414
|
|
413
415
|
name = 'Myghty'
|
416
|
+
url = 'http://www.myghty.org/'
|
414
417
|
aliases = ['myghty']
|
415
418
|
filenames = ['*.myt', 'autodelegate']
|
416
419
|
mimetypes = ['application/x-myghty']
|
@@ -516,25 +519,24 @@ class MyghtyCssLexer(DelegatingLexer):
|
|
516
519
|
|
517
520
|
class MasonLexer(RegexLexer):
|
518
521
|
"""
|
519
|
-
Generic
|
522
|
+
Generic mason templates lexer. Stolen from Myghty lexer. Code that isn't
|
520
523
|
Mason markup is HTML.
|
521
524
|
|
522
|
-
.. _mason templates: http://www.masonhq.com/
|
523
|
-
|
524
525
|
.. versionadded:: 1.4
|
525
526
|
"""
|
526
527
|
name = 'Mason'
|
528
|
+
url = 'http://www.masonhq.com/'
|
527
529
|
aliases = ['mason']
|
528
530
|
filenames = ['*.m', '*.mhtml', '*.mc', '*.mi', 'autohandler', 'dhandler']
|
529
531
|
mimetypes = ['application/x-mason']
|
530
532
|
|
531
533
|
tokens = {
|
532
534
|
'root': [
|
533
|
-
(r'\s+',
|
535
|
+
(r'\s+', Whitespace),
|
534
536
|
(r'(?s)(<%doc>)(.*?)(</%doc>)',
|
535
537
|
bygroups(Name.Tag, Comment.Multiline, Name.Tag)),
|
536
538
|
(r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
|
537
|
-
bygroups(Name.Tag,
|
539
|
+
bygroups(Name.Tag, Whitespace, Name.Function, Name.Tag,
|
538
540
|
using(this), Name.Tag)),
|
539
541
|
(r'(?s)(<%(\w+)(.*?)(>))(.*?)(</%\2\s*>)',
|
540
542
|
bygroups(Name.Tag, None, None, None, using(PerlLexer), Name.Tag)),
|
@@ -572,15 +574,14 @@ class MasonLexer(RegexLexer):
|
|
572
574
|
|
573
575
|
class MakoLexer(RegexLexer):
|
574
576
|
"""
|
575
|
-
Generic
|
577
|
+
Generic mako templates lexer. Code that isn't Mako
|
576
578
|
markup is yielded as `Token.Other`.
|
577
579
|
|
578
580
|
.. versionadded:: 0.7
|
579
|
-
|
580
|
-
.. _mako templates: http://www.makotemplates.org/
|
581
581
|
"""
|
582
582
|
|
583
583
|
name = 'Mako'
|
584
|
+
url = 'http://www.makotemplates.org/'
|
584
585
|
aliases = ['mako']
|
585
586
|
filenames = ['*.mao']
|
586
587
|
mimetypes = ['application/x-mako']
|
@@ -721,15 +722,15 @@ class CheetahPythonLexer(Lexer):
|
|
721
722
|
|
722
723
|
class CheetahLexer(RegexLexer):
|
723
724
|
"""
|
724
|
-
Generic
|
725
|
+
Generic cheetah templates lexer. Code that isn't Cheetah
|
725
726
|
markup is yielded as `Token.Other`. This also works for
|
726
727
|
`spitfire templates`_ which use the same syntax.
|
727
728
|
|
728
|
-
.. _cheetah templates: http://www.cheetahtemplate.org/
|
729
729
|
.. _spitfire templates: http://code.google.com/p/spitfire/
|
730
730
|
"""
|
731
731
|
|
732
732
|
name = 'Cheetah'
|
733
|
+
url = 'http://www.cheetahtemplate.org/'
|
733
734
|
aliases = ['cheetah', 'spitfire']
|
734
735
|
filenames = ['*.tmpl', '*.spt']
|
735
736
|
mimetypes = ['application/x-cheetah', 'application/x-spitfire']
|
@@ -813,11 +814,11 @@ class CheetahJavascriptLexer(DelegatingLexer):
|
|
813
814
|
|
814
815
|
class GenshiTextLexer(RegexLexer):
|
815
816
|
"""
|
816
|
-
A lexer that highlights
|
817
|
-
templates.
|
817
|
+
A lexer that highlights genshi text templates.
|
818
818
|
"""
|
819
819
|
|
820
820
|
name = 'Genshi Text'
|
821
|
+
url = 'http://genshi.edgewall.org/'
|
821
822
|
aliases = ['genshitext']
|
822
823
|
mimetypes = ['application/x-genshi-text', 'text/x-genshi']
|
823
824
|
|
@@ -1252,6 +1253,7 @@ class HtmlDjangoLexer(DelegatingLexer):
|
|
1252
1253
|
|
1253
1254
|
name = 'HTML+Django/Jinja'
|
1254
1255
|
aliases = ['html+django', 'html+jinja', 'htmldjango']
|
1256
|
+
filenames = ['*.html.j2', '*.htm.j2', '*.xhtml.j2', '*.html.jinja2', '*.htm.jinja2', '*.xhtml.jinja2']
|
1255
1257
|
alias_filenames = ['*.html', '*.htm', '*.xhtml']
|
1256
1258
|
mimetypes = ['text/html+django', 'text/html+jinja']
|
1257
1259
|
|
@@ -1273,6 +1275,7 @@ class XmlDjangoLexer(DelegatingLexer):
|
|
1273
1275
|
|
1274
1276
|
name = 'XML+Django/Jinja'
|
1275
1277
|
aliases = ['xml+django', 'xml+jinja']
|
1278
|
+
filenames = ['*.xml.j2', '*.xml.jinja2']
|
1276
1279
|
alias_filenames = ['*.xml']
|
1277
1280
|
mimetypes = ['application/xml+django', 'application/xml+jinja']
|
1278
1281
|
|
@@ -1294,6 +1297,7 @@ class CssDjangoLexer(DelegatingLexer):
|
|
1294
1297
|
|
1295
1298
|
name = 'CSS+Django/Jinja'
|
1296
1299
|
aliases = ['css+django', 'css+jinja']
|
1300
|
+
filenames = ['*.css.j2', '*.css.jinja2']
|
1297
1301
|
alias_filenames = ['*.css']
|
1298
1302
|
mimetypes = ['text/css+django', 'text/css+jinja']
|
1299
1303
|
|
@@ -1313,6 +1317,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
|
|
1313
1317
|
name = 'JavaScript+Django/Jinja'
|
1314
1318
|
aliases = ['javascript+django', 'js+django',
|
1315
1319
|
'javascript+jinja', 'js+jinja']
|
1320
|
+
filenames = ['*.js.j2', '*.js.jinja2']
|
1316
1321
|
alias_filenames = ['*.js']
|
1317
1322
|
mimetypes = ['application/x-javascript+django',
|
1318
1323
|
'application/x-javascript+jinja',
|
@@ -1767,7 +1772,7 @@ class LassoJavascriptLexer(DelegatingLexer):
|
|
1767
1772
|
|
1768
1773
|
class HandlebarsLexer(RegexLexer):
|
1769
1774
|
"""
|
1770
|
-
Generic
|
1775
|
+
Generic handlebars template lexer.
|
1771
1776
|
|
1772
1777
|
Highlights only the Handlebars template tags (stuff between `{{` and `}}`).
|
1773
1778
|
Everything else is left for a delegating lexer.
|
@@ -1776,6 +1781,7 @@ class HandlebarsLexer(RegexLexer):
|
|
1776
1781
|
"""
|
1777
1782
|
|
1778
1783
|
name = "Handlebars"
|
1784
|
+
url = 'https://handlebarsjs.com/'
|
1779
1785
|
aliases = ['handlebars']
|
1780
1786
|
|
1781
1787
|
tokens = {
|
@@ -1870,7 +1876,7 @@ class YamlJinjaLexer(DelegatingLexer):
|
|
1870
1876
|
|
1871
1877
|
name = 'YAML+Jinja'
|
1872
1878
|
aliases = ['yaml+jinja', 'salt', 'sls']
|
1873
|
-
filenames = ['*.sls']
|
1879
|
+
filenames = ['*.sls', '*.yaml.j2', '*.yml.j2', '*.yaml.jinja2', '*.yml.jinja2']
|
1874
1880
|
mimetypes = ['text/x-yaml+jinja', 'text/x-sls']
|
1875
1881
|
|
1876
1882
|
def __init__(self, **options):
|
@@ -1879,12 +1885,12 @@ class YamlJinjaLexer(DelegatingLexer):
|
|
1879
1885
|
|
1880
1886
|
class LiquidLexer(RegexLexer):
|
1881
1887
|
"""
|
1882
|
-
Lexer for
|
1883
|
-
<http://www.rubydoc.info/github/Shopify/liquid>`_.
|
1888
|
+
Lexer for Liquid templates.
|
1884
1889
|
|
1885
1890
|
.. versionadded:: 2.0
|
1886
1891
|
"""
|
1887
1892
|
name = 'liquid'
|
1893
|
+
url = 'https://www.rubydoc.info/github/Shopify/liquid'
|
1888
1894
|
aliases = ['liquid']
|
1889
1895
|
filenames = ['*.liquid']
|
1890
1896
|
|
@@ -2085,7 +2091,7 @@ class LiquidLexer(RegexLexer):
|
|
2085
2091
|
|
2086
2092
|
class TwigLexer(RegexLexer):
|
2087
2093
|
"""
|
2088
|
-
|
2094
|
+
Twig template lexer.
|
2089
2095
|
|
2090
2096
|
It just highlights Twig code between the preprocessor directives,
|
2091
2097
|
other data is left untouched by the lexer.
|
@@ -2185,9 +2191,7 @@ class TwigHtmlLexer(DelegatingLexer):
|
|
2185
2191
|
|
2186
2192
|
class Angular2Lexer(RegexLexer):
|
2187
2193
|
"""
|
2188
|
-
Generic
|
2189
|
-
`angular2 <http://victorsavkin.com/post/119943127151/angular-2-template-syntax>`_
|
2190
|
-
template lexer.
|
2194
|
+
Generic angular2 template lexer.
|
2191
2195
|
|
2192
2196
|
Highlights only the Angular template tags (stuff between `{{` and `}}` and
|
2193
2197
|
special attributes: '(event)=', '[property]=', '[(twoWayBinding)]=').
|
@@ -2197,6 +2201,7 @@ class Angular2Lexer(RegexLexer):
|
|
2197
2201
|
"""
|
2198
2202
|
|
2199
2203
|
name = "Angular2"
|
2204
|
+
url = 'https://angular.io/guide/template-syntax'
|
2200
2205
|
aliases = ['ng2']
|
2201
2206
|
|
2202
2207
|
tokens = {
|
@@ -2261,3 +2266,31 @@ class Angular2HtmlLexer(DelegatingLexer):
|
|
2261
2266
|
|
2262
2267
|
def __init__(self, **options):
|
2263
2268
|
super().__init__(HtmlLexer, Angular2Lexer, **options)
|
2269
|
+
|
2270
|
+
|
2271
|
+
class SqlJinjaLexer(DelegatingLexer):
|
2272
|
+
"""
|
2273
|
+
Templated SQL lexer.
|
2274
|
+
|
2275
|
+
.. versionadded:: 2.13
|
2276
|
+
"""
|
2277
|
+
|
2278
|
+
name = 'SQL+Jinja'
|
2279
|
+
aliases = ['sql+jinja']
|
2280
|
+
filenames = ['*.sql', '*.sql.j2', '*.sql.jinja2']
|
2281
|
+
|
2282
|
+
def __init__(self, **options):
|
2283
|
+
super().__init__(SqlLexer, DjangoLexer, **options)
|
2284
|
+
|
2285
|
+
def analyse_text(text):
|
2286
|
+
rv = 0.0
|
2287
|
+
# dbt's ref function
|
2288
|
+
if re.search(r'\{\{\s*ref\(.*\)\s*\}\}', text):
|
2289
|
+
rv += 0.4
|
2290
|
+
# dbt's source function
|
2291
|
+
if re.search(r'\{\{\s*source\(.*\)\s*\}\}', text):
|
2292
|
+
rv += 0.25
|
2293
|
+
# Jinja macro
|
2294
|
+
if re.search(r'\{%-?\s*macro \w+\(.*\)\s*-?%\}', text):
|
2295
|
+
rv += 0.15
|
2296
|
+
return rv
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexer for Tera Term macro files.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -12,18 +12,19 @@ import re
|
|
12
12
|
|
13
13
|
from pygments.lexer import RegexLexer, include, bygroups
|
14
14
|
from pygments.token import Text, Comment, Operator, Name, String, \
|
15
|
-
Number, Keyword
|
15
|
+
Number, Keyword, Error
|
16
16
|
|
17
17
|
__all__ = ['TeraTermLexer']
|
18
18
|
|
19
19
|
|
20
20
|
class TeraTermLexer(RegexLexer):
|
21
21
|
"""
|
22
|
-
For
|
22
|
+
For Tera Term macro source code.
|
23
23
|
|
24
24
|
.. versionadded:: 2.4
|
25
25
|
"""
|
26
26
|
name = 'Tera Term macro'
|
27
|
+
url = 'https://ttssh2.osdn.jp/'
|
27
28
|
aliases = ['teratermmacro', 'teraterm', 'ttl']
|
28
29
|
filenames = ['*.ttl']
|
29
30
|
mimetypes = ['text/x-teratermmacro']
|
@@ -51,7 +52,7 @@ class TeraTermLexer(RegexLexer):
|
|
51
52
|
(r'[*/]', Comment.Multiline)
|
52
53
|
],
|
53
54
|
'labels': [
|
54
|
-
(r'(?i)^(\s*)(:[a-z0-9_]+)', bygroups(Text, Name.Label)),
|
55
|
+
(r'(?i)^(\s*)(:[a-z0-9_]+)', bygroups(Text.Whitespace, Name.Label)),
|
55
56
|
],
|
56
57
|
'commands': [
|
57
58
|
(
|
@@ -259,7 +260,7 @@ class TeraTermLexer(RegexLexer):
|
|
259
260
|
Keyword,
|
260
261
|
),
|
261
262
|
(r'(?i)(call|goto)([ \t]+)([a-z0-9_]+)',
|
262
|
-
bygroups(Keyword, Text, Name.Label)),
|
263
|
+
bygroups(Keyword, Text.Whitespace, Name.Label)),
|
263
264
|
],
|
264
265
|
'builtin-variables': [
|
265
266
|
(
|
@@ -302,20 +303,11 @@ class TeraTermLexer(RegexLexer):
|
|
302
303
|
],
|
303
304
|
'string-literals': [
|
304
305
|
(r'(?i)#(?:[0-9]+|\$[0-9a-f]+)', String.Char),
|
305
|
-
(r"'", String.Single
|
306
|
-
(r'"', String.Double
|
307
|
-
|
308
|
-
|
309
|
-
(r'
|
310
|
-
(r'.', String),
|
311
|
-
],
|
312
|
-
'in-single-string': [
|
313
|
-
(r"'", String.Single, '#pop'),
|
314
|
-
include('in-general-string'),
|
315
|
-
],
|
316
|
-
'in-double-string': [
|
317
|
-
(r'"', String.Double, '#pop'),
|
318
|
-
include('in-general-string'),
|
306
|
+
(r"'[^'\n]*'", String.Single),
|
307
|
+
(r'"[^"\n]*"', String.Double),
|
308
|
+
# Opening quotes without a closing quote on the same line are errors.
|
309
|
+
(r"('[^']*)(\n)", bygroups(Error, Text.Whitespace)),
|
310
|
+
(r'("[^"]*)(\n)', bygroups(Error, Text.Whitespace)),
|
319
311
|
],
|
320
312
|
'operators': [
|
321
313
|
(r'and|not|or|xor', Operator.Word),
|
@@ -323,7 +315,7 @@ class TeraTermLexer(RegexLexer):
|
|
323
315
|
(r'[()]', String.Symbol),
|
324
316
|
],
|
325
317
|
'all-whitespace': [
|
326
|
-
(r'\s+', Text),
|
318
|
+
(r'\s+', Text.Whitespace),
|
327
319
|
],
|
328
320
|
}
|
329
321
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for testing languages.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -16,7 +16,7 @@ __all__ = ['GherkinLexer', 'TAPLexer']
|
|
16
16
|
|
17
17
|
class GherkinLexer(RegexLexer):
|
18
18
|
"""
|
19
|
-
For
|
19
|
+
For Gherkin syntax.
|
20
20
|
|
21
21
|
.. versionadded:: 1.2
|
22
22
|
"""
|
@@ -129,6 +129,9 @@ class GherkinLexer(RegexLexer):
|
|
129
129
|
]
|
130
130
|
}
|
131
131
|
|
132
|
+
def analyse_text(self, text):
|
133
|
+
return
|
134
|
+
|
132
135
|
|
133
136
|
class TAPLexer(RegexLexer):
|
134
137
|
"""
|
@@ -137,6 +140,7 @@ class TAPLexer(RegexLexer):
|
|
137
140
|
.. versionadded:: 2.1
|
138
141
|
"""
|
139
142
|
name = 'TAP'
|
143
|
+
url = 'https://testanything.org/'
|
140
144
|
aliases = ['tap']
|
141
145
|
filenames = ['*.tap']
|
142
146
|
|
@@ -4,12 +4,13 @@
|
|
4
4
|
|
5
5
|
Lexers for non-source code file types.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
11
11
|
from pygments.lexers.configs import ApacheConfLexer, NginxConfLexer, \
|
12
|
-
SquidConfLexer, LighttpdConfLexer, IniLexer, RegeditLexer, PropertiesLexer
|
12
|
+
SquidConfLexer, LighttpdConfLexer, IniLexer, RegeditLexer, PropertiesLexer, \
|
13
|
+
UnixConfigLexer
|
13
14
|
from pygments.lexers.console import PyPyLogLexer
|
14
15
|
from pygments.lexers.textedit import VimLexer
|
15
16
|
from pygments.lexers.markup import BBCodeLexer, MoinWikiLexer, RstLexer, \
|
@@ -4,20 +4,19 @@
|
|
4
4
|
|
5
5
|
Lexers for languages related to text processing.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
11
11
|
import re
|
12
12
|
from bisect import bisect
|
13
13
|
|
14
|
-
from pygments.lexer import RegexLexer,
|
15
|
-
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
16
|
-
Number, Punctuation
|
17
|
-
|
14
|
+
from pygments.lexer import RegexLexer, bygroups, default, include, this, using
|
18
15
|
from pygments.lexers.python import PythonLexer
|
16
|
+
from pygments.token import Comment, Keyword, Name, Number, Operator, \
|
17
|
+
Punctuation, String, Text, Whitespace
|
19
18
|
|
20
|
-
__all__ = ['AwkLexer', 'VimLexer']
|
19
|
+
__all__ = ['AwkLexer', 'SedLexer', 'VimLexer']
|
21
20
|
|
22
21
|
|
23
22
|
class AwkLexer(RegexLexer):
|
@@ -74,6 +73,41 @@ class AwkLexer(RegexLexer):
|
|
74
73
|
}
|
75
74
|
|
76
75
|
|
76
|
+
class SedLexer(RegexLexer):
|
77
|
+
"""
|
78
|
+
Lexer for Sed script files.
|
79
|
+
"""
|
80
|
+
name = 'Sed'
|
81
|
+
aliases = ['sed', 'gsed', 'ssed']
|
82
|
+
filenames = ['*.sed', '*.[gs]sed']
|
83
|
+
mimetypes = ['text/x-sed']
|
84
|
+
flags = re.MULTILINE
|
85
|
+
|
86
|
+
# Match the contents within delimiters such as /<contents>/
|
87
|
+
_inside_delims = r'((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)'
|
88
|
+
|
89
|
+
tokens = {
|
90
|
+
'root': [
|
91
|
+
(r'\s+', Whitespace),
|
92
|
+
(r'#.*$', Comment.Single),
|
93
|
+
(r'[0-9]+', Number.Integer),
|
94
|
+
(r'\$', Operator),
|
95
|
+
(r'[{};,!]', Punctuation),
|
96
|
+
(r'[dDFgGhHlnNpPqQxz=]', Keyword),
|
97
|
+
(r'([berRtTvwW:])([^;\n]*)', bygroups(Keyword, String.Single)),
|
98
|
+
(r'([aci])((?:.*?\\\n)*(?:.*?[^\\]$))', bygroups(Keyword, String.Double)),
|
99
|
+
(r'([qQ])([0-9]*)', bygroups(Keyword, Number.Integer)),
|
100
|
+
(r'(/)' + _inside_delims + r'(/)', bygroups(Punctuation, String.Regex, Punctuation)),
|
101
|
+
(r'(\\(.))' + _inside_delims + r'(\2)',
|
102
|
+
bygroups(Punctuation, None, String.Regex, Punctuation)),
|
103
|
+
(r'(y)(.)' + _inside_delims + r'(\2)' + _inside_delims + r'(\2)',
|
104
|
+
bygroups(Keyword, Punctuation, String.Single, Punctuation, String.Single, Punctuation)),
|
105
|
+
(r'(s)(.)' + _inside_delims + r'(\2)' + _inside_delims + r'(\2)((?:[gpeIiMm]|[0-9])*)',
|
106
|
+
bygroups(Keyword, Punctuation, String.Regex, Punctuation, String.Single, Punctuation,
|
107
|
+
Keyword))
|
108
|
+
]
|
109
|
+
}
|
110
|
+
|
77
111
|
class VimLexer(RegexLexer):
|
78
112
|
"""
|
79
113
|
Lexer for VimL script files.
|
@@ -120,7 +154,7 @@ class VimLexer(RegexLexer):
|
|
120
154
|
}
|
121
155
|
|
122
156
|
def __init__(self, **options):
|
123
|
-
from pygments.lexers._vim_builtins import command, option
|
157
|
+
from pygments.lexers._vim_builtins import auto, command, option
|
124
158
|
self._cmd = command
|
125
159
|
self._opt = option
|
126
160
|
self._aut = auto
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for various text formats.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -173,7 +173,7 @@ class HttpLexer(RegexLexer):
|
|
173
173
|
|
174
174
|
tokens = {
|
175
175
|
'root': [
|
176
|
-
(r'(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH)( +)([^ ]+)( +)'
|
176
|
+
(r'(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH|CONNECT)( +)([^ ]+)( +)'
|
177
177
|
r'(HTTP)(/)(1\.[01]|2(?:\.0)?|3)(\r?\n|\Z)',
|
178
178
|
bygroups(Name.Function, Text, Name.Namespace, Text,
|
179
179
|
Keyword.Reserved, Operator, Number, Text),
|
@@ -195,17 +195,18 @@ class HttpLexer(RegexLexer):
|
|
195
195
|
|
196
196
|
def analyse_text(text):
|
197
197
|
return text.startswith(('GET /', 'POST /', 'PUT /', 'DELETE /', 'HEAD /',
|
198
|
-
'OPTIONS /', 'TRACE /', 'PATCH /'))
|
198
|
+
'OPTIONS /', 'TRACE /', 'PATCH /', 'CONNECT '))
|
199
199
|
|
200
200
|
|
201
201
|
class TodotxtLexer(RegexLexer):
|
202
202
|
"""
|
203
|
-
Lexer for
|
203
|
+
Lexer for Todo.txt todo list format.
|
204
204
|
|
205
205
|
.. versionadded:: 2.0
|
206
206
|
"""
|
207
207
|
|
208
208
|
name = 'Todotxt'
|
209
|
+
url = 'http://todotxt.com/'
|
209
210
|
aliases = ['todotxt']
|
210
211
|
# *.todotxt is not a standard extension for Todo.txt files; including it
|
211
212
|
# makes testing easier, and also makes autodetecting file type easier.
|
@@ -300,7 +301,7 @@ class TodotxtLexer(RegexLexer):
|
|
300
301
|
|
301
302
|
class NotmuchLexer(RegexLexer):
|
302
303
|
"""
|
303
|
-
For
|
304
|
+
For Notmuch email text format.
|
304
305
|
|
305
306
|
.. versionadded:: 2.5
|
306
307
|
|
@@ -312,6 +313,7 @@ class NotmuchLexer(RegexLexer):
|
|
312
313
|
"""
|
313
314
|
|
314
315
|
name = 'Notmuch'
|
316
|
+
url = 'https://notmuchmail.org/'
|
315
317
|
aliases = ['notmuch']
|
316
318
|
|
317
319
|
def _highlight_code(self, match):
|