pygments.rb 2.4.1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +8 -8
- data/.github/workflows/release.yml +5 -5
- data/.gitignore +2 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.adoc +9 -1
- data/README.adoc +2 -2
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -2
- data/vendor/pygments-main/bin/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +2 -2
- data/vendor/pygments-main/pygments/__main__.py +1 -1
- data/vendor/pygments-main/pygments/cmdline.py +12 -12
- data/vendor/pygments-main/pygments/console.py +5 -5
- data/vendor/pygments-main/pygments/filter.py +2 -3
- data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
- data/vendor/pygments-main/pygments/formatter.py +6 -1
- data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
- data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
- data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
- data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
- data/vendor/pygments-main/pygments/formatters/html.py +38 -40
- data/vendor/pygments-main/pygments/formatters/img.py +51 -11
- data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
- data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
- data/vendor/pygments-main/pygments/formatters/other.py +3 -4
- data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
- data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
- data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
- data/vendor/pygments-main/pygments/lexer.py +51 -33
- data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
- data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
- 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 +1 -1
- data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
- data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
- data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -11
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
- data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
- 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 +6 -8
- data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
- data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +9 -13
- data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
- data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
- data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
- data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
- data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
- data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
- data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
- data/vendor/pygments-main/pygments/lexers/asm.py +28 -15
- data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
- data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
- data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
- data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
- data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
- data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
- data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
- data/vendor/pygments-main/pygments/lexers/bqn.py +109 -0
- data/vendor/pygments-main/pygments/lexers/business.py +21 -22
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
- data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
- data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
- data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
- data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
- data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
- data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
- data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
- data/vendor/pygments-main/pygments/lexers/configs.py +342 -108
- data/vendor/pygments-main/pygments/lexers/console.py +5 -5
- data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
- data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
- data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
- data/vendor/pygments-main/pygments/lexers/css.py +5 -5
- data/vendor/pygments-main/pygments/lexers/d.py +4 -3
- data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
- data/vendor/pygments-main/pygments/lexers/data.py +8 -12
- data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
- data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
- data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
- data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +19 -14
- data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
- data/vendor/pygments-main/pygments/lexers/dylan.py +8 -16
- data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
- data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
- data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
- data/vendor/pygments-main/pygments/lexers/elpi.py +28 -21
- data/vendor/pygments-main/pygments/lexers/email.py +3 -3
- data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
- data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
- data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
- data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
- data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
- data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
- data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
- data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
- data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
- data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
- data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
- data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
- data/vendor/pygments-main/pygments/lexers/func.py +3 -1
- data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
- data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
- data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
- data/vendor/pygments-main/pygments/lexers/go.py +3 -4
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
- data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
- data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
- data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
- data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
- data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
- data/vendor/pygments-main/pygments/lexers/haskell.py +27 -32
- data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
- data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
- data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
- data/vendor/pygments-main/pygments/lexers/html.py +34 -13
- data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
- data/vendor/pygments-main/pygments/lexers/igor.py +305 -290
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
- data/vendor/pygments-main/pygments/lexers/installers.py +7 -9
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
- data/vendor/pygments-main/pygments/lexers/j.py +2 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +18 -19
- data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
- data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
- data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
- data/vendor/pygments-main/pygments/lexers/jsx.py +75 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +4 -5
- data/vendor/pygments-main/pygments/lexers/jvm.py +98 -116
- data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
- data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
- data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
- data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
- data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
- data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
- data/vendor/pygments-main/pygments/lexers/macaulay2.py +53 -4
- data/vendor/pygments-main/pygments/lexers/make.py +7 -5
- data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
- data/vendor/pygments-main/pygments/lexers/math.py +2 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +10 -12
- data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
- data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
- data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
- data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
- data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
- data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
- data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
- data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
- data/vendor/pygments-main/pygments/lexers/mojo.py +704 -0
- data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
- data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
- data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
- data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
- data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
- data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
- data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
- data/vendor/pygments-main/pygments/lexers/objective.py +14 -6
- data/vendor/pygments-main/pygments/lexers/ooc.py +2 -3
- data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
- data/vendor/pygments-main/pygments/lexers/other.py +2 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
- data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
- data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
- data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
- data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
- data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
- data/vendor/pygments-main/pygments/lexers/php.py +4 -5
- data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
- data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
- data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
- data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
- data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
- data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
- data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
- data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
- data/vendor/pygments-main/pygments/lexers/python.py +24 -24
- data/vendor/pygments-main/pygments/lexers/q.py +5 -6
- data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
- data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
- data/vendor/pygments-main/pygments/lexers/r.py +8 -6
- data/vendor/pygments-main/pygments/lexers/rdf.py +19 -13
- data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
- data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
- data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
- data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
- data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
- data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
- data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
- data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
- data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
- data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
- data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
- data/vendor/pygments-main/pygments/lexers/scripting.py +354 -42
- data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
- data/vendor/pygments-main/pygments/lexers/shell.py +107 -129
- data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
- data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
- data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
- data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
- data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
- data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
- data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
- data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
- data/vendor/pygments-main/pygments/lexers/special.py +8 -3
- data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
- data/vendor/pygments-main/pygments/lexers/sql.py +24 -18
- data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
- data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
- data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
- data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
- data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
- data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
- data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
- data/vendor/pygments-main/pygments/lexers/templates.py +131 -72
- data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
- data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
- data/vendor/pygments-main/pygments/lexers/text.py +2 -1
- data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
- data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
- data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
- data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
- data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
- data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
- data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
- data/vendor/pygments-main/pygments/lexers/typst.py +104 -0
- data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
- data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
- data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
- data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
- data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
- data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
- data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
- data/vendor/pygments-main/pygments/lexers/web.py +2 -1
- data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
- data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
- data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
- data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
- data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
- data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
- data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
- data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
- data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
- data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
- data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
- data/vendor/pygments-main/pygments/modeline.py +4 -4
- data/vendor/pygments-main/pygments/plugin.py +3 -19
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +1 -1
- data/vendor/pygments-main/pygments/sphinxext.py +38 -8
- data/vendor/pygments-main/pygments/style.py +8 -2
- data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
- data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
- data/vendor/pygments-main/pygments/styles/abap.py +5 -1
- data/vendor/pygments-main/pygments/styles/algol.py +5 -1
- data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
- data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
- data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
- data/vendor/pygments-main/pygments/styles/borland.py +6 -1
- data/vendor/pygments-main/pygments/styles/bw.py +6 -1
- data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
- data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
- data/vendor/pygments-main/pygments/styles/default.py +6 -1
- data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
- data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
- data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
- data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
- data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
- data/vendor/pygments-main/pygments/styles/igor.py +6 -1
- data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
- data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
- data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
- data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
- data/vendor/pygments-main/pygments/styles/manni.py +7 -2
- data/vendor/pygments-main/pygments/styles/material.py +21 -14
- data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
- data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
- data/vendor/pygments-main/pygments/styles/native.py +10 -5
- data/vendor/pygments-main/pygments/styles/nord.py +9 -3
- data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
- data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
- data/vendor/pygments-main/pygments/styles/rrt.py +8 -2
- data/vendor/pygments-main/pygments/styles/sas.py +6 -1
- data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
- data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
- data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
- data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
- data/vendor/pygments-main/pygments/styles/tango.py +7 -3
- data/vendor/pygments-main/pygments/styles/trac.py +7 -1
- data/vendor/pygments-main/pygments/styles/vim.py +7 -1
- data/vendor/pygments-main/pygments/styles/vs.py +7 -2
- data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
- data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
- data/vendor/pygments-main/pygments/token.py +2 -1
- data/vendor/pygments-main/pygments/unistring.py +5 -5
- data/vendor/pygments-main/pygments/util.py +13 -19
- data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/METADATA +14 -13
- data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +663 -0
- data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/WHEEL +1 -2
- data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/AUTHORS +13 -0
- metadata +39 -15
- data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
- data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
- /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/INSTALLER +0 -0
- /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/REQUESTED +0 -0
- /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info}/entry_points.txt +0 -0
- /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.18.0.dist-info/licenses}/LICENSE +0 -0
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for misc console output.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -19,13 +19,13 @@ class VCTreeStatusLexer(RegexLexer):
|
|
19
19
|
"""
|
20
20
|
For colorizing output of version control status commands, like "hg
|
21
21
|
status" or "svn status".
|
22
|
-
|
23
|
-
.. versionadded:: 2.0
|
24
22
|
"""
|
25
23
|
name = 'VCTreeStatus'
|
26
24
|
aliases = ['vctreestatus']
|
27
25
|
filenames = []
|
28
26
|
mimetypes = []
|
27
|
+
url = ""
|
28
|
+
version_added = '2.0'
|
29
29
|
|
30
30
|
tokens = {
|
31
31
|
'root': [
|
@@ -45,13 +45,13 @@ class VCTreeStatusLexer(RegexLexer):
|
|
45
45
|
class PyPyLogLexer(RegexLexer):
|
46
46
|
"""
|
47
47
|
Lexer for PyPy log files.
|
48
|
-
|
49
|
-
.. versionadded:: 1.5
|
50
48
|
"""
|
51
49
|
name = "PyPy Log"
|
52
50
|
aliases = ["pypylog", "pypy"]
|
53
51
|
filenames = ["*.pypylog"]
|
54
52
|
mimetypes = ['application/x-pypylog']
|
53
|
+
url = 'pypy.org'
|
54
|
+
version_added = '1.5'
|
55
55
|
|
56
56
|
tokens = {
|
57
57
|
"root": [
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexer for the cplint language
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -19,14 +19,13 @@ class CplintLexer(PrologLexer):
|
|
19
19
|
"""
|
20
20
|
Lexer for cplint files, including CP-logic, Logic Programs with Annotated
|
21
21
|
Disjunctions, Distributional Clauses syntax, ProbLog, DTProbLog.
|
22
|
-
|
23
|
-
.. versionadded:: 2.12
|
24
22
|
"""
|
25
23
|
name = 'cplint'
|
26
24
|
url = 'https://cplint.eu'
|
27
25
|
aliases = ['cplint']
|
28
26
|
filenames = ['*.ecl', '*.prolog', '*.pro', '*.pl', '*.P', '*.lpad', '*.cpl']
|
29
27
|
mimetypes = ['text/x-cplint']
|
28
|
+
version_added = '2.12'
|
30
29
|
|
31
30
|
tokens = {
|
32
31
|
'root': [
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexer for Crystal.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -27,15 +27,14 @@ CRYSTAL_OPERATORS = [
|
|
27
27
|
class CrystalLexer(ExtendedRegexLexer):
|
28
28
|
"""
|
29
29
|
For Crystal source code.
|
30
|
-
|
31
|
-
.. versionadded:: 2.2
|
32
30
|
"""
|
33
31
|
|
34
32
|
name = 'Crystal'
|
35
|
-
url = '
|
33
|
+
url = 'https://crystal-lang.org'
|
36
34
|
aliases = ['cr', 'crystal']
|
37
35
|
filenames = ['*.cr']
|
38
36
|
mimetypes = ['text/x-crystal']
|
37
|
+
version_added = '2.2'
|
39
38
|
|
40
39
|
flags = re.DOTALL | re.MULTILINE
|
41
40
|
|
@@ -107,7 +106,7 @@ class CrystalLexer(ExtendedRegexLexer):
|
|
107
106
|
('backtick', String.Backtick, '`'):
|
108
107
|
states['simple-'+name] = [
|
109
108
|
include('string-escaped' if name == 'sym' else 'string-intp-escaped'),
|
110
|
-
(
|
109
|
+
(rf'[^\\{end}#]+', ttype),
|
111
110
|
(r'[\\#]', ttype),
|
112
111
|
(end, ttype, '#pop'),
|
113
112
|
]
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for Csound languages.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -136,13 +136,12 @@ class CsoundLexer(RegexLexer):
|
|
136
136
|
class CsoundScoreLexer(CsoundLexer):
|
137
137
|
"""
|
138
138
|
For `Csound <https://csound.com>`_ scores.
|
139
|
-
|
140
|
-
.. versionadded:: 2.1
|
141
139
|
"""
|
142
140
|
|
143
141
|
name = 'Csound Score'
|
144
142
|
aliases = ['csound-score', 'csound-sco']
|
145
143
|
filenames = ['*.sco']
|
144
|
+
version_added = '2.1'
|
146
145
|
|
147
146
|
tokens = {
|
148
147
|
'root': [
|
@@ -202,13 +201,12 @@ class CsoundScoreLexer(CsoundLexer):
|
|
202
201
|
class CsoundOrchestraLexer(CsoundLexer):
|
203
202
|
"""
|
204
203
|
For `Csound <https://csound.com>`_ orchestras.
|
205
|
-
|
206
|
-
.. versionadded:: 2.1
|
207
204
|
"""
|
208
205
|
|
209
206
|
name = 'Csound Orchestra'
|
210
207
|
aliases = ['csound', 'csound-orc']
|
211
208
|
filenames = ['*.orc', '*.udo']
|
209
|
+
version_added = '2.1'
|
212
210
|
|
213
211
|
user_defined_opcodes = set()
|
214
212
|
|
@@ -411,14 +409,14 @@ class CsoundOrchestraLexer(CsoundLexer):
|
|
411
409
|
|
412
410
|
class CsoundDocumentLexer(RegexLexer):
|
413
411
|
"""
|
414
|
-
For
|
415
|
-
|
416
|
-
.. versionadded:: 2.1
|
412
|
+
For Csound documents.
|
417
413
|
"""
|
418
414
|
|
419
415
|
name = 'Csound Document'
|
420
416
|
aliases = ['csound-document', 'csound-csd']
|
421
417
|
filenames = ['*.csd']
|
418
|
+
url = 'https://csound.com'
|
419
|
+
version_added = '2.1'
|
422
420
|
|
423
421
|
# These tokens are based on those in XmlLexer in pygments/lexers/html.py. Making
|
424
422
|
# CsoundDocumentLexer a subclass of XmlLexer rather than RegexLexer may seem like a
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for CSS and related stylesheet formats.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -178,6 +178,7 @@ class CssLexer(RegexLexer):
|
|
178
178
|
aliases = ['css']
|
179
179
|
filenames = ['*.css']
|
180
180
|
mimetypes = ['text/css']
|
181
|
+
version_added = ''
|
181
182
|
|
182
183
|
tokens = {
|
183
184
|
'root': [
|
@@ -445,8 +446,6 @@ def _starts_block(token, state):
|
|
445
446
|
class SassLexer(ExtendedRegexLexer):
|
446
447
|
"""
|
447
448
|
For Sass stylesheets.
|
448
|
-
|
449
|
-
.. versionadded:: 1.3
|
450
449
|
"""
|
451
450
|
|
452
451
|
name = 'Sass'
|
@@ -454,6 +453,7 @@ class SassLexer(ExtendedRegexLexer):
|
|
454
453
|
aliases = ['sass']
|
455
454
|
filenames = ['*.sass']
|
456
455
|
mimetypes = ['text/x-sass']
|
456
|
+
version_added = '1.3'
|
457
457
|
|
458
458
|
flags = re.IGNORECASE | re.MULTILINE
|
459
459
|
|
@@ -535,6 +535,7 @@ class ScssLexer(RegexLexer):
|
|
535
535
|
aliases = ['scss']
|
536
536
|
filenames = ['*.scss']
|
537
537
|
mimetypes = ['text/x-scss']
|
538
|
+
version_added = ''
|
538
539
|
|
539
540
|
flags = re.IGNORECASE | re.DOTALL
|
540
541
|
tokens = {
|
@@ -579,8 +580,6 @@ class ScssLexer(RegexLexer):
|
|
579
580
|
class LessCssLexer(CssLexer):
|
580
581
|
"""
|
581
582
|
For LESS styleshets.
|
582
|
-
|
583
|
-
.. versionadded:: 2.1
|
584
583
|
"""
|
585
584
|
|
586
585
|
name = 'LessCss'
|
@@ -588,6 +587,7 @@ class LessCssLexer(CssLexer):
|
|
588
587
|
aliases = ['less']
|
589
588
|
filenames = ['*.less']
|
590
589
|
mimetypes = ['text/x-less-css']
|
590
|
+
version_added = '2.1'
|
591
591
|
|
592
592
|
tokens = {
|
593
593
|
'root': [
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for D languages.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -18,14 +18,13 @@ __all__ = ['DLexer', 'CrocLexer', 'MiniDLexer']
|
|
18
18
|
class DLexer(RegexLexer):
|
19
19
|
"""
|
20
20
|
For D source.
|
21
|
-
|
22
|
-
.. versionadded:: 1.2
|
23
21
|
"""
|
24
22
|
name = 'D'
|
25
23
|
url = 'https://dlang.org/'
|
26
24
|
filenames = ['*.d', '*.di']
|
27
25
|
aliases = ['d']
|
28
26
|
mimetypes = ['text/x-dsrc']
|
27
|
+
version_added = '1.2'
|
29
28
|
|
30
29
|
tokens = {
|
31
30
|
'root': [
|
@@ -194,6 +193,7 @@ class CrocLexer(RegexLexer):
|
|
194
193
|
filenames = ['*.croc']
|
195
194
|
aliases = ['croc']
|
196
195
|
mimetypes = ['text/x-crocsrc']
|
196
|
+
version_added = ''
|
197
197
|
|
198
198
|
tokens = {
|
199
199
|
'root': [
|
@@ -256,3 +256,4 @@ class MiniDLexer(CrocLexer):
|
|
256
256
|
filenames = [] # don't lex .md as MiniD, reserve for Markdown
|
257
257
|
aliases = ['minid']
|
258
258
|
mimetypes = ['text/x-minidsrc']
|
259
|
+
version_added = ''
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Pygments lexers for Dalvik VM-related languages.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -21,14 +21,13 @@ class SmaliLexer(RegexLexer):
|
|
21
21
|
"""
|
22
22
|
For Smali (Android/Dalvik) assembly
|
23
23
|
code.
|
24
|
-
|
25
|
-
.. versionadded:: 1.6
|
26
24
|
"""
|
27
25
|
name = 'Smali'
|
28
26
|
url = 'http://code.google.com/p/smali/'
|
29
27
|
aliases = ['smali']
|
30
28
|
filenames = ['*.smali']
|
31
29
|
mimetypes = ['text/smali']
|
30
|
+
version_added = '1.6'
|
32
31
|
|
33
32
|
tokens = {
|
34
33
|
'root': [
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for data file format.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -31,8 +31,6 @@ class YamlLexer(ExtendedRegexLexer):
|
|
31
31
|
"""
|
32
32
|
Lexer for YAML, a human-friendly data serialization
|
33
33
|
language.
|
34
|
-
|
35
|
-
.. versionadded:: 0.11
|
36
34
|
"""
|
37
35
|
|
38
36
|
name = 'YAML'
|
@@ -40,6 +38,7 @@ class YamlLexer(ExtendedRegexLexer):
|
|
40
38
|
aliases = ['yaml']
|
41
39
|
filenames = ['*.yaml', '*.yml']
|
42
40
|
mimetypes = ['text/x-yaml']
|
41
|
+
version_added = '0.11'
|
43
42
|
|
44
43
|
def something(token_class):
|
45
44
|
"""Do not produce empty tokens."""
|
@@ -443,15 +442,14 @@ class JsonLexer(Lexer):
|
|
443
442
|
This allows users to highlight JSON as it is used in the wild.
|
444
443
|
|
445
444
|
No validation is performed on the input JSON document.
|
446
|
-
|
447
|
-
.. versionadded:: 1.5
|
448
445
|
"""
|
449
446
|
|
450
447
|
name = 'JSON'
|
451
448
|
url = 'https://www.json.org'
|
452
449
|
aliases = ['json', 'json-object']
|
453
|
-
filenames = ['*.json', 'Pipfile.lock']
|
454
|
-
mimetypes = ['application/json', 'application/json-object']
|
450
|
+
filenames = ['*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock']
|
451
|
+
mimetypes = ['application/json', 'application/json-object', 'application/x-ndjson', 'application/jsonl', 'application/json-seq']
|
452
|
+
version_added = '1.5'
|
455
453
|
|
456
454
|
# No validation of integers, floats, or constants is done.
|
457
455
|
# As long as the characters are members of the following
|
@@ -704,8 +702,6 @@ class JsonBareObjectLexer(JsonLexer):
|
|
704
702
|
"""
|
705
703
|
For JSON data structures (with missing object curly braces).
|
706
704
|
|
707
|
-
.. versionadded:: 2.2
|
708
|
-
|
709
705
|
.. deprecated:: 2.8.0
|
710
706
|
|
711
707
|
Behaves the same as `JsonLexer` now.
|
@@ -715,13 +711,12 @@ class JsonBareObjectLexer(JsonLexer):
|
|
715
711
|
aliases = []
|
716
712
|
filenames = []
|
717
713
|
mimetypes = []
|
714
|
+
version_added = '2.2'
|
718
715
|
|
719
716
|
|
720
717
|
class JsonLdLexer(JsonLexer):
|
721
718
|
"""
|
722
719
|
For JSON-LD linked data.
|
723
|
-
|
724
|
-
.. versionadded:: 2.0
|
725
720
|
"""
|
726
721
|
|
727
722
|
name = 'JSON-LD'
|
@@ -729,9 +724,10 @@ class JsonLdLexer(JsonLexer):
|
|
729
724
|
aliases = ['jsonld', 'json-ld']
|
730
725
|
filenames = ['*.jsonld']
|
731
726
|
mimetypes = ['application/ld+json']
|
727
|
+
version_added = '2.0'
|
732
728
|
|
733
729
|
json_ld_keywords = {
|
734
|
-
'"
|
730
|
+
f'"@{keyword}"'
|
735
731
|
for keyword in (
|
736
732
|
'base',
|
737
733
|
'container',
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexer for LilyPond.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -19,14 +19,13 @@ class DaxLexer(RegexLexer):
|
|
19
19
|
"""
|
20
20
|
Lexer for Power BI DAX
|
21
21
|
Referenced from: https://github.com/sql-bi/SyntaxHighlighterBrushDax
|
22
|
-
|
23
|
-
.. versionadded:: 2.15
|
24
22
|
"""
|
25
23
|
name = 'Dax'
|
26
24
|
aliases = ['dax']
|
27
25
|
filenames = ['*.dax']
|
28
26
|
url = 'https://learn.microsoft.com/en-us/dax/dax-function-reference'
|
29
27
|
mimetypes = []
|
28
|
+
version_added = '2.15'
|
30
29
|
|
31
30
|
tokens = {
|
32
31
|
'root': [
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for Devicetree language.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -18,8 +18,6 @@ __all__ = ['DevicetreeLexer']
|
|
18
18
|
class DevicetreeLexer(RegexLexer):
|
19
19
|
"""
|
20
20
|
Lexer for Devicetree files.
|
21
|
-
|
22
|
-
.. versionadded:: 2.7
|
23
21
|
"""
|
24
22
|
|
25
23
|
name = 'Devicetree'
|
@@ -27,6 +25,7 @@ class DevicetreeLexer(RegexLexer):
|
|
27
25
|
aliases = ['devicetree', 'dts']
|
28
26
|
filenames = ['*.dts', '*.dtsi']
|
29
27
|
mimetypes = ['text/x-c']
|
28
|
+
version_added = '2.7'
|
30
29
|
|
31
30
|
#: optional Whitespace or /*...*/ style comment
|
32
31
|
_ws = r'\s*(?:/[*][^*/]*?[*]/\s*)*'
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for diff/patch formats.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -26,6 +26,8 @@ class DiffLexer(RegexLexer):
|
|
26
26
|
aliases = ['diff', 'udiff']
|
27
27
|
filenames = ['*.diff', '*.patch']
|
28
28
|
mimetypes = ['text/x-diff', 'text/x-patch']
|
29
|
+
url = 'https://en.wikipedia.org/wiki/Diff'
|
30
|
+
version_added = ''
|
29
31
|
|
30
32
|
tokens = {
|
31
33
|
'root': [
|
@@ -57,13 +59,13 @@ class DarcsPatchLexer(RegexLexer):
|
|
57
59
|
DarcsPatchLexer is a lexer for the various versions of the darcs patch
|
58
60
|
format. Examples of this format are derived by commands such as
|
59
61
|
``darcs annotate --patch`` and ``darcs send``.
|
60
|
-
|
61
|
-
.. versionadded:: 0.10
|
62
62
|
"""
|
63
63
|
|
64
64
|
name = 'Darcs Patch'
|
65
65
|
aliases = ['dpatch']
|
66
66
|
filenames = ['*.dpatch', '*.darcspatch']
|
67
|
+
url = 'https://darcs.net'
|
68
|
+
version_added = '0.10'
|
67
69
|
|
68
70
|
DPATCH_KEYWORDS = ('hunk', 'addfile', 'adddir', 'rmfile', 'rmdir', 'move',
|
69
71
|
'replace')
|
@@ -83,7 +85,7 @@ class DarcsPatchLexer(RegexLexer):
|
|
83
85
|
(r'New patches:', Generic.Heading),
|
84
86
|
(r'Context:', Generic.Heading),
|
85
87
|
(r'Patch bundle hash:', Generic.Heading),
|
86
|
-
(r'(\s*)(
|
88
|
+
(r'(\s*)({})(.*)(\n)'.format('|'.join(DPATCH_KEYWORDS)),
|
87
89
|
bygroups(Whitespace, Keyword, Text, Whitespace)),
|
88
90
|
(r'\+', Generic.Inserted, "insert"),
|
89
91
|
(r'-', Generic.Deleted, "delete"),
|
@@ -119,8 +121,6 @@ class WDiffLexer(RegexLexer):
|
|
119
121
|
* It only works with normal output (without options like ``-l``).
|
120
122
|
* If the target files contain "[-", "-]", "{+", or "+}",
|
121
123
|
especially they are unbalanced, the lexer will get confused.
|
122
|
-
|
123
|
-
.. versionadded:: 2.2
|
124
124
|
"""
|
125
125
|
|
126
126
|
name = 'WDiff'
|
@@ -128,6 +128,7 @@ class WDiffLexer(RegexLexer):
|
|
128
128
|
aliases = ['wdiff']
|
129
129
|
filenames = ['*.wdiff']
|
130
130
|
mimetypes = []
|
131
|
+
version_added = '2.2'
|
131
132
|
|
132
133
|
flags = re.MULTILINE | re.DOTALL
|
133
134
|
|
@@ -0,0 +1,109 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.dns
|
3
|
+
~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Pygments lexers for DNS
|
6
|
+
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
|
+
:license: BSD, see LICENSE for details.
|
9
|
+
"""
|
10
|
+
|
11
|
+
import re
|
12
|
+
|
13
|
+
from pygments.token import Comment, Operator, Keyword, Name, String, \
|
14
|
+
Number, Punctuation, Whitespace, Literal
|
15
|
+
from pygments.lexer import RegexLexer, bygroups, include
|
16
|
+
|
17
|
+
__all__ = ['DnsZoneLexer']
|
18
|
+
|
19
|
+
|
20
|
+
CLASSES = [
|
21
|
+
"IN",
|
22
|
+
"CS",
|
23
|
+
"CH",
|
24
|
+
"HS",
|
25
|
+
]
|
26
|
+
|
27
|
+
CLASSES_RE = "(" + "|".join(CLASSES) + ')'
|
28
|
+
|
29
|
+
|
30
|
+
class DnsZoneLexer(RegexLexer):
|
31
|
+
|
32
|
+
"""
|
33
|
+
Lexer for DNS zone file
|
34
|
+
"""
|
35
|
+
|
36
|
+
flags = re.MULTILINE
|
37
|
+
|
38
|
+
name = 'Zone'
|
39
|
+
aliases = ['zone']
|
40
|
+
filenames = [ "*.zone" ]
|
41
|
+
url = "https://datatracker.ietf.org/doc/html/rfc1035"
|
42
|
+
mimetypes = ['text/dns']
|
43
|
+
version_added = '2.16'
|
44
|
+
|
45
|
+
tokens = {
|
46
|
+
'root': [
|
47
|
+
# Empty/comment line:
|
48
|
+
(r'([ \t]*)(;.*)(\n)', bygroups(Whitespace, Comment.Single, Whitespace)),
|
49
|
+
# Special directives:
|
50
|
+
(r'^\$ORIGIN\b', Keyword, 'values'),
|
51
|
+
(r'^\$TTL\b', Keyword, 'values'),
|
52
|
+
(r'^\$INCLUDE\b', Comment.Preproc, 'include'),
|
53
|
+
# TODO, $GENERATE https://bind9.readthedocs.io/en/v9.18.14/chapter3.html#soa-rr
|
54
|
+
(r'^\$[A-Z]+\b', Keyword, 'values'),
|
55
|
+
# Records:
|
56
|
+
# <domain-name> [<TTL>] [<class>] <type> <RDATA> [<comment>]
|
57
|
+
(r'^(@)([ \t]+)(?:([0-9]+[smhdw]?)([ \t]+))?(?:' + CLASSES_RE + "([ \t]+))?([A-Z]+)([ \t]+)",
|
58
|
+
bygroups(Operator, Whitespace, Number.Integer, Whitespace, Name.Class, Whitespace, Keyword.Type, Whitespace),
|
59
|
+
"values"),
|
60
|
+
(r'^([^ \t\n]*)([ \t]+)(?:([0-9]+[smhdw]?)([ \t]+))?(?:' + CLASSES_RE + "([ \t]+))?([A-Z]+)([ \t]+)",
|
61
|
+
bygroups(Name, Whitespace, Number.Integer, Whitespace, Name.Class, Whitespace, Keyword.Type, Whitespace),
|
62
|
+
"values"),
|
63
|
+
# <domain-name> [<class>] [<TTL>] <type> <RDATA> [<comment>]
|
64
|
+
(r'^(Operator)([ \t]+)(?:' + CLASSES_RE + "([ \t]+))?(?:([0-9]+[smhdw]?)([ \t]+))?([A-Z]+)([ \t]+)",
|
65
|
+
bygroups(Name, Whitespace, Number.Integer, Whitespace, Name.Class, Whitespace, Keyword.Type, Whitespace),
|
66
|
+
"values"),
|
67
|
+
(r'^([^ \t\n]*)([ \t]+)(?:' + CLASSES_RE + "([ \t]+))?(?:([0-9]+[smhdw]?)([ \t]+))?([A-Z]+)([ \t]+)",
|
68
|
+
bygroups(Name, Whitespace, Number.Integer, Whitespace, Name.Class, Whitespace, Keyword.Type, Whitespace),
|
69
|
+
"values"),
|
70
|
+
],
|
71
|
+
# Parsing values:
|
72
|
+
'values': [
|
73
|
+
(r'\n', Whitespace, "#pop"),
|
74
|
+
(r'\(', Punctuation, 'nested'),
|
75
|
+
include('simple-value'),
|
76
|
+
],
|
77
|
+
# Parsing nested values (...):
|
78
|
+
'nested': [
|
79
|
+
(r'\)', Punctuation, "#pop"),
|
80
|
+
include('multiple-simple-values'),
|
81
|
+
],
|
82
|
+
# Parsing values:
|
83
|
+
'simple-value': [
|
84
|
+
(r'(;.*)', bygroups(Comment.Single)),
|
85
|
+
(r'[ \t]+', Whitespace),
|
86
|
+
(r"@\b", Operator),
|
87
|
+
('"', String, 'string'),
|
88
|
+
(r'[0-9]+[smhdw]?$', Number.Integer),
|
89
|
+
(r'([0-9]+[smhdw]?)([ \t]+)', bygroups(Number.Integer, Whitespace)),
|
90
|
+
(r'\S+', Literal),
|
91
|
+
],
|
92
|
+
'multiple-simple-values': [
|
93
|
+
include('simple-value'),
|
94
|
+
(r'[\n]+', Whitespace),
|
95
|
+
],
|
96
|
+
'include': [
|
97
|
+
(r'([ \t]+)([^ \t\n]+)([ \t]+)([-\._a-zA-Z]+)([ \t]+)(;.*)?$',
|
98
|
+
bygroups(Whitespace, Comment.PreprocFile, Whitespace, Name, Whitespace, Comment.Single), '#pop'),
|
99
|
+
(r'([ \t]+)([^ \t\n]+)([ \t\n]+)$', bygroups(Whitespace, Comment.PreprocFile, Whitespace), '#pop'),
|
100
|
+
],
|
101
|
+
"string": [
|
102
|
+
(r'\\"', String),
|
103
|
+
(r'"', String, "#pop"),
|
104
|
+
(r'[^"]+', String),
|
105
|
+
]
|
106
|
+
}
|
107
|
+
|
108
|
+
def analyse_text(text):
|
109
|
+
return text.startswith("$ORIGIN")
|