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
@@ -0,0 +1,93 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.kusto
|
3
|
+
~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexers for Kusto Query Language (KQL).
|
6
|
+
|
7
|
+
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
8
|
+
:license: BSD, see LICENSE for details.
|
9
|
+
"""
|
10
|
+
|
11
|
+
from pygments.lexer import RegexLexer, words
|
12
|
+
from pygments.token import (Comment, Keyword, Name, Number, Punctuation,
|
13
|
+
String, Whitespace)
|
14
|
+
|
15
|
+
__all__ = ["KustoLexer"]
|
16
|
+
|
17
|
+
# Although these all seem to be keywords
|
18
|
+
# https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Syntax/SyntaxFacts.cs
|
19
|
+
# it appears that only the ones with tags here
|
20
|
+
# https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Parser/QueryGrammar.cs
|
21
|
+
# are highlighted in the Azure portal log query editor.
|
22
|
+
KUSTO_KEYWORDS = [
|
23
|
+
'and', 'as', 'between', 'by', 'consume', 'contains', 'containscs', 'count',
|
24
|
+
'distinct', 'evaluate', 'extend', 'facet', 'filter', 'find', 'fork',
|
25
|
+
'getschema', 'has', 'invoke', 'join', 'limit', 'lookup', 'make-series',
|
26
|
+
'matches regex', 'mv-apply', 'mv-expand', 'notcontains', 'notcontainscs',
|
27
|
+
'!contains', '!has', '!startswith', 'on', 'or', 'order', 'parse', 'parse-where',
|
28
|
+
'parse-kv', 'partition', 'print', 'project', 'project-away', 'project-keep',
|
29
|
+
'project-rename', 'project-reorder', 'range', 'reduce', 'regex', 'render',
|
30
|
+
'sample', 'sample-distinct', 'scan', 'search', 'serialize', 'sort', 'startswith',
|
31
|
+
'summarize', 'take', 'top', 'top-hitters', 'top-nested', 'typeof', 'union',
|
32
|
+
'where', 'bool', 'date', 'datetime', 'int', 'long', 'real', 'string', 'time'
|
33
|
+
]
|
34
|
+
|
35
|
+
# From
|
36
|
+
# https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Syntax/SyntaxFacts.cs
|
37
|
+
KUSTO_PUNCTUATION = [
|
38
|
+
"(", ")", "[", "]", "{", "}", "|", "<|", "+", "-", "*", "/",
|
39
|
+
"%", ".." "!", "<", "<=", ">", ">=", "=", "==", "!=", "<>",
|
40
|
+
":", ";", ",", "=~", "!~", "?", "=>",
|
41
|
+
]
|
42
|
+
|
43
|
+
|
44
|
+
class KustoLexer(RegexLexer):
|
45
|
+
"""For Kusto Query Language source code.
|
46
|
+
"""
|
47
|
+
|
48
|
+
name = "Kusto"
|
49
|
+
aliases = ["kql", "kusto"]
|
50
|
+
filenames = ["*.kql", "*.kusto", ".csl"]
|
51
|
+
url = "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query"
|
52
|
+
version_added = '2.17'
|
53
|
+
|
54
|
+
tokens = {
|
55
|
+
"root": [
|
56
|
+
(r"\s+", Whitespace),
|
57
|
+
(words(KUSTO_KEYWORDS, suffix=r"\b"), Keyword),
|
58
|
+
(r"//.*", Comment),
|
59
|
+
(words(KUSTO_PUNCTUATION), Punctuation),
|
60
|
+
(r"[^\W\d]\w*", Name),
|
61
|
+
# Numbers can take the form 1, .1, 1., 1.1, 1.1111, etc.
|
62
|
+
(r"\d+[.]\d*|[.]\d+", Number.Float),
|
63
|
+
(r"\d+", Number.Integer),
|
64
|
+
(r"'", String, "single_string"),
|
65
|
+
(r'"', String, "double_string"),
|
66
|
+
(r"@'", String, "single_verbatim"),
|
67
|
+
(r'@"', String, "double_verbatim"),
|
68
|
+
(r"```", String, "multi_string"),
|
69
|
+
],
|
70
|
+
"single_string": [
|
71
|
+
(r"'", String, "#pop"),
|
72
|
+
(r"\\.", String.Escape),
|
73
|
+
(r"[^'\\]+", String),
|
74
|
+
],
|
75
|
+
"double_string": [
|
76
|
+
(r'"', String, "#pop"),
|
77
|
+
(r"\\.", String.Escape),
|
78
|
+
(r'[^"\\]+', String),
|
79
|
+
],
|
80
|
+
"single_verbatim": [
|
81
|
+
(r"'", String, "#pop"),
|
82
|
+
(r"[^']+", String),
|
83
|
+
],
|
84
|
+
"double_verbatim": [
|
85
|
+
(r'"', String, "#pop"),
|
86
|
+
(r'[^"]+', String),
|
87
|
+
],
|
88
|
+
"multi_string": [
|
89
|
+
(r"[^`]+", String),
|
90
|
+
(r"```", String, "#pop"),
|
91
|
+
(r"`", String),
|
92
|
+
],
|
93
|
+
}
|
@@ -0,0 +1,155 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.ldap
|
3
|
+
~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Pygments lexers for LDAP.
|
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
|
+
|
14
|
+
from pygments.lexer import RegexLexer, bygroups, default
|
15
|
+
from pygments.token import Operator, Comment, Keyword, Literal, Name, String, \
|
16
|
+
Number, Punctuation, Whitespace, Escape
|
17
|
+
|
18
|
+
__all__ = ['LdifLexer', 'LdaprcLexer']
|
19
|
+
|
20
|
+
|
21
|
+
class LdifLexer(RegexLexer):
|
22
|
+
|
23
|
+
"""
|
24
|
+
Lexer for LDIF
|
25
|
+
"""
|
26
|
+
|
27
|
+
name = 'LDIF'
|
28
|
+
aliases = ['ldif']
|
29
|
+
filenames = ['*.ldif']
|
30
|
+
mimetypes = ["text/x-ldif"]
|
31
|
+
url = "https://datatracker.ietf.org/doc/html/rfc2849"
|
32
|
+
version_added = '2.17'
|
33
|
+
|
34
|
+
tokens = {
|
35
|
+
'root': [
|
36
|
+
(r'\s*\n', Whitespace),
|
37
|
+
(r'(-)(\n)', bygroups(Punctuation, Whitespace)),
|
38
|
+
(r'(#.*)(\n)', bygroups(Comment.Single, Whitespace)),
|
39
|
+
(r'(version)(:)([ \t]*)(.*)([ \t]*\n)', bygroups(Keyword,
|
40
|
+
Punctuation, Whitespace, Number.Integer, Whitespace)),
|
41
|
+
(r'(control)(:)([ \t]*)([\.0-9]+)([ \t]+)((?:true|false)?)([ \t]*)',
|
42
|
+
bygroups(Keyword, Punctuation, Whitespace, Name.Other, Whitespace, Keyword, Whitespace), "after-control"),
|
43
|
+
(r'(deleteoldrdn)(:)([ \n]*)([0-1]+)([ \t]*\n)',
|
44
|
+
bygroups(Keyword, Punctuation, Whitespace, Number, Whitespace)),
|
45
|
+
(r'(add|delete|replace)(::?)(\s*)(.*)([ \t]*\n)', bygroups(
|
46
|
+
Keyword, Punctuation, Whitespace, Name.Attribute, Whitespace)),
|
47
|
+
(r'(changetype)(:)([ \t]*)([a-z]*)([ \t]*\n)',
|
48
|
+
bygroups(Keyword, Punctuation, Whitespace, Keyword, Whitespace)),
|
49
|
+
(r'(dn|newrdn)(::)', bygroups(Keyword, Punctuation), "base64-dn"),
|
50
|
+
(r'(dn|newrdn)(:)', bygroups(Keyword, Punctuation), "dn"),
|
51
|
+
(r'(objectclass)(:)([ \t]*)([^ \t\n]*)([ \t]*\n)', bygroups(
|
52
|
+
Keyword, Punctuation, Whitespace, Name.Class, Whitespace)),
|
53
|
+
(r'([a-zA-Z]*|[0-9][0-9\.]*[0-9])(;)',
|
54
|
+
bygroups(Name.Attribute, Punctuation), "property"),
|
55
|
+
(r'([a-zA-Z]*|[0-9][0-9\.]*[0-9])(:<)',
|
56
|
+
bygroups(Name.Attribute, Punctuation), "url"),
|
57
|
+
(r'([a-zA-Z]*|[0-9][0-9\.]*[0-9])(::?)',
|
58
|
+
bygroups(Name.Attribute, Punctuation), "value"),
|
59
|
+
],
|
60
|
+
"after-control": [
|
61
|
+
(r":<", Punctuation, ("#pop", "url")),
|
62
|
+
(r"::?", Punctuation, ("#pop", "value")),
|
63
|
+
default("#pop"),
|
64
|
+
],
|
65
|
+
'property': [
|
66
|
+
(r'([-a-zA-Z0-9]*)(;)', bygroups(Name.Property, Punctuation)),
|
67
|
+
(r'([-a-zA-Z0-9]*)(:<)',
|
68
|
+
bygroups(Name.Property, Punctuation), ("#pop", "url")),
|
69
|
+
(r'([-a-zA-Z0-9]*)(::?)',
|
70
|
+
bygroups(Name.Property, Punctuation), ("#pop", "value")),
|
71
|
+
],
|
72
|
+
'value': [
|
73
|
+
(r'(\s*)([^\n]+\S)(\n )',
|
74
|
+
bygroups(Whitespace, String, Whitespace)),
|
75
|
+
(r'(\s*)([^\n]+\S)(\n)',
|
76
|
+
bygroups(Whitespace, String, Whitespace), "#pop"),
|
77
|
+
],
|
78
|
+
'url': [
|
79
|
+
(r'([ \t]*)(\S*)([ \t]*\n )',
|
80
|
+
bygroups(Whitespace, Comment.PreprocFile, Whitespace)),
|
81
|
+
(r'([ \t]*)(\S*)([ \t]*\n)', bygroups(Whitespace,
|
82
|
+
Comment.PreprocFile, Whitespace), "#pop"),
|
83
|
+
],
|
84
|
+
"dn": [
|
85
|
+
(r'([ \t]*)([-a-zA-Z0-9\.]+)(=)', bygroups(Whitespace,
|
86
|
+
Name.Attribute, Operator), ("#pop", "dn-value")),
|
87
|
+
],
|
88
|
+
"dn-value": [
|
89
|
+
(r'\\[^\n]', Escape),
|
90
|
+
(r',', Punctuation, ("#pop", "dn")),
|
91
|
+
(r'\+', Operator, ("#pop", "dn")),
|
92
|
+
(r'[^,\+\n]+', String),
|
93
|
+
(r'\n ', Whitespace),
|
94
|
+
(r'\n', Whitespace, "#pop"),
|
95
|
+
],
|
96
|
+
"base64-dn": [
|
97
|
+
(r'([ \t]*)([^ \t\n][^ \t\n]*[^\n])([ \t]*\n )',
|
98
|
+
bygroups(Whitespace, Name, Whitespace)),
|
99
|
+
(r'([ \t]*)([^ \t\n][^ \t\n]*[^\n])([ \t]*\n)',
|
100
|
+
bygroups(Whitespace, Name, Whitespace), "#pop"),
|
101
|
+
]
|
102
|
+
}
|
103
|
+
|
104
|
+
|
105
|
+
class LdaprcLexer(RegexLexer):
|
106
|
+
"""
|
107
|
+
Lexer for OpenLDAP configuration files.
|
108
|
+
"""
|
109
|
+
|
110
|
+
name = 'LDAP configuration file'
|
111
|
+
aliases = ['ldapconf', 'ldaprc']
|
112
|
+
filenames = ['.ldaprc', 'ldaprc', 'ldap.conf']
|
113
|
+
mimetypes = ["text/x-ldapconf"]
|
114
|
+
url = 'https://www.openldap.org/software//man.cgi?query=ldap.conf&sektion=5&apropos=0&manpath=OpenLDAP+2.4-Release'
|
115
|
+
version_added = '2.17'
|
116
|
+
|
117
|
+
_sasl_keywords = r'SASL_(?:MECH|REALM|AUTHCID|AUTHZID|CBINDING)'
|
118
|
+
_tls_keywords = r'TLS_(?:CACERT|CACERTDIR|CERT|ECNAME|KEY|CIPHER_SUITE|PROTOCOL_MIN|RANDFILE|CRLFILE)'
|
119
|
+
_literal_keywords = rf'(?:URI|SOCKET_BIND_ADDRESSES|{_sasl_keywords}|{_tls_keywords})'
|
120
|
+
_boolean_keywords = r'GSSAPI_(?:ALLOW_REMOTE_PRINCIPAL|ENCRYPT|SIGN)|REFERRALS|SASL_NOCANON'
|
121
|
+
_integer_keywords = r'KEEPALIVE_(?:IDLE|PROBES|INTERVAL)|NETWORK_TIMEOUT|PORT|SIZELIMIT|TIMELIMIT|TIMEOUT'
|
122
|
+
_secprops = r'none|noanonymous|noplain|noactive|nodict|forwardsec|passcred|(?:minssf|maxssf|maxbufsize)=\d+'
|
123
|
+
|
124
|
+
flags = re.IGNORECASE | re.MULTILINE
|
125
|
+
|
126
|
+
tokens = {
|
127
|
+
'root': [
|
128
|
+
(r'#.*', Comment.Single),
|
129
|
+
(r'\s+', Whitespace),
|
130
|
+
(rf'({_boolean_keywords})(\s+)(on|true|yes|off|false|no)$',
|
131
|
+
bygroups(Keyword, Whitespace, Keyword.Constant)),
|
132
|
+
(rf'({_integer_keywords})(\s+)(\d+)',
|
133
|
+
bygroups(Keyword, Whitespace, Number.Integer)),
|
134
|
+
(r'(VERSION)(\s+)(2|3)', bygroups(Keyword, Whitespace, Number.Integer)),
|
135
|
+
# Constants
|
136
|
+
(r'(DEREF)(\s+)(never|searching|finding|always)',
|
137
|
+
bygroups(Keyword, Whitespace, Keyword.Constant)),
|
138
|
+
(rf'(SASL_SECPROPS)(\s+)((?:{_secprops})(?:,{_secprops})*)',
|
139
|
+
bygroups(Keyword, Whitespace, Keyword.Constant)),
|
140
|
+
(r'(SASL_CBINDING)(\s+)(none|tls-unique|tls-endpoint)',
|
141
|
+
bygroups(Keyword, Whitespace, Keyword.Constant)),
|
142
|
+
(r'(TLS_REQ(?:CERT|SAN))(\s+)(allow|demand|hard|never|try)',
|
143
|
+
bygroups(Keyword, Whitespace, Keyword.Constant)),
|
144
|
+
(r'(TLS_CRLCHECK)(\s+)(none|peer|all)',
|
145
|
+
bygroups(Keyword, Whitespace, Keyword.Constant)),
|
146
|
+
# Literals
|
147
|
+
(r'(BASE|BINDDN)(\s+)(\S+)$',
|
148
|
+
bygroups(Keyword, Whitespace, Literal)),
|
149
|
+
# Accepts hostname with or without port.
|
150
|
+
(r'(HOST)(\s+)([a-z0-9]+)((?::(\d+))?)',
|
151
|
+
bygroups(Keyword, Whitespace, Literal, Number.Integer)),
|
152
|
+
(rf'({_literal_keywords})(\s+)(\S+)$',
|
153
|
+
bygroups(Keyword, Whitespace, Literal)),
|
154
|
+
],
|
155
|
+
}
|
@@ -0,0 +1,241 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.lean
|
3
|
+
~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexers for the Lean theorem prover.
|
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.lexer import RegexLexer, words, include
|
14
|
+
from pygments.token import Comment, Operator, Keyword, Name, String, \
|
15
|
+
Number, Generic, Whitespace
|
16
|
+
|
17
|
+
__all__ = ['Lean3Lexer', 'Lean4Lexer']
|
18
|
+
|
19
|
+
class Lean3Lexer(RegexLexer):
|
20
|
+
"""
|
21
|
+
For the Lean 3 theorem prover.
|
22
|
+
"""
|
23
|
+
name = 'Lean'
|
24
|
+
url = 'https://leanprover-community.github.io/lean3'
|
25
|
+
aliases = ['lean', 'lean3']
|
26
|
+
filenames = ['*.lean']
|
27
|
+
mimetypes = ['text/x-lean', 'text/x-lean3']
|
28
|
+
version_added = '2.0'
|
29
|
+
|
30
|
+
# from https://github.com/leanprover/vscode-lean/blob/1589ca3a65e394b3789409707febbd2d166c9344/syntaxes/lean.json#L186C20-L186C217
|
31
|
+
_name_segment = (
|
32
|
+
"(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
|
33
|
+
"(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ])*")
|
34
|
+
_name = _name_segment + r"(\." + _name_segment + r")*"
|
35
|
+
|
36
|
+
tokens = {
|
37
|
+
'expression': [
|
38
|
+
(r'\s+', Whitespace),
|
39
|
+
(r'/--', String.Doc, 'docstring'),
|
40
|
+
(r'/-', Comment, 'comment'),
|
41
|
+
(r'--.*?$', Comment.Single),
|
42
|
+
(words((
|
43
|
+
'forall', 'fun', 'Pi', 'from', 'have', 'show', 'assume', 'suffices',
|
44
|
+
'let', 'if', 'else', 'then', 'in', 'with', 'calc', 'match',
|
45
|
+
'do'
|
46
|
+
), prefix=r'\b', suffix=r'\b'), Keyword),
|
47
|
+
(words(('sorry', 'admit'), prefix=r'\b', suffix=r'\b'), Generic.Error),
|
48
|
+
(words(('Sort', 'Prop', 'Type'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
|
49
|
+
(words((
|
50
|
+
'(', ')', ':', '{', '}', '[', ']', '⟨', '⟩', '‹', '›', '⦃', '⦄', ':=', ',',
|
51
|
+
)), Operator),
|
52
|
+
(_name, Name),
|
53
|
+
(r'``?' + _name, String.Symbol),
|
54
|
+
(r'0x[A-Za-z0-9]+', Number.Integer),
|
55
|
+
(r'0b[01]+', Number.Integer),
|
56
|
+
(r'\d+', Number.Integer),
|
57
|
+
(r'"', String.Double, 'string'),
|
58
|
+
(r"'(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4})|.)'", String.Char),
|
59
|
+
(r'[~?][a-z][\w\']*:', Name.Variable),
|
60
|
+
(r'\S', Name.Builtin.Pseudo),
|
61
|
+
],
|
62
|
+
'root': [
|
63
|
+
(words((
|
64
|
+
'import', 'renaming', 'hiding',
|
65
|
+
'namespace',
|
66
|
+
'local',
|
67
|
+
'private', 'protected', 'section',
|
68
|
+
'include', 'omit', 'section',
|
69
|
+
'protected', 'export',
|
70
|
+
'open',
|
71
|
+
'attribute',
|
72
|
+
), prefix=r'\b', suffix=r'\b'), Keyword.Namespace),
|
73
|
+
(words((
|
74
|
+
'lemma', 'theorem', 'def', 'definition', 'example',
|
75
|
+
'axiom', 'axioms', 'constant', 'constants',
|
76
|
+
'universe', 'universes',
|
77
|
+
'inductive', 'coinductive', 'structure', 'extends',
|
78
|
+
'class', 'instance',
|
79
|
+
'abbreviation',
|
80
|
+
|
81
|
+
'noncomputable theory',
|
82
|
+
|
83
|
+
'noncomputable', 'mutual', 'meta',
|
84
|
+
|
85
|
+
'attribute',
|
86
|
+
|
87
|
+
'parameter', 'parameters',
|
88
|
+
'variable', 'variables',
|
89
|
+
|
90
|
+
'reserve', 'precedence',
|
91
|
+
'postfix', 'prefix', 'notation', 'infix', 'infixl', 'infixr',
|
92
|
+
|
93
|
+
'begin', 'by', 'end',
|
94
|
+
|
95
|
+
'set_option',
|
96
|
+
'run_cmd',
|
97
|
+
), prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
|
98
|
+
(r'@\[', Keyword.Declaration, 'attribute'),
|
99
|
+
(words((
|
100
|
+
'#eval', '#check', '#reduce', '#exit',
|
101
|
+
'#print', '#help',
|
102
|
+
), suffix=r'\b'), Keyword),
|
103
|
+
include('expression')
|
104
|
+
],
|
105
|
+
'attribute': [
|
106
|
+
(r'\]', Keyword.Declaration, '#pop'),
|
107
|
+
include('expression'),
|
108
|
+
],
|
109
|
+
'comment': [
|
110
|
+
(r'[^/-]+', Comment.Multiline),
|
111
|
+
(r'/-', Comment.Multiline, '#push'),
|
112
|
+
(r'-/', Comment.Multiline, '#pop'),
|
113
|
+
(r'[/-]', Comment.Multiline)
|
114
|
+
],
|
115
|
+
'docstring': [
|
116
|
+
(r'[^/-]+', String.Doc),
|
117
|
+
(r'-/', String.Doc, '#pop'),
|
118
|
+
(r'[/-]', String.Doc)
|
119
|
+
],
|
120
|
+
'string': [
|
121
|
+
(r'[^\\"]+', String.Double),
|
122
|
+
(r"(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4}))", String.Escape),
|
123
|
+
('"', String.Double, '#pop'),
|
124
|
+
],
|
125
|
+
}
|
126
|
+
|
127
|
+
def analyse_text(text):
|
128
|
+
if re.search(r'^import [a-z]', text, re.MULTILINE):
|
129
|
+
return 0.1
|
130
|
+
|
131
|
+
|
132
|
+
LeanLexer = Lean3Lexer
|
133
|
+
|
134
|
+
|
135
|
+
class Lean4Lexer(RegexLexer):
|
136
|
+
"""
|
137
|
+
For the Lean 4 theorem prover.
|
138
|
+
"""
|
139
|
+
|
140
|
+
name = 'Lean4'
|
141
|
+
url = 'https://github.com/leanprover/lean4'
|
142
|
+
aliases = ['lean4']
|
143
|
+
filenames = ['*.lean']
|
144
|
+
mimetypes = ['text/x-lean4']
|
145
|
+
version_added = '2.18'
|
146
|
+
|
147
|
+
# same as Lean3Lexer, with `!` and `?` allowed
|
148
|
+
_name_segment = (
|
149
|
+
"(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
|
150
|
+
"(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ!?])*")
|
151
|
+
_name = _name_segment + r"(\." + _name_segment + r")*"
|
152
|
+
|
153
|
+
keywords1 = (
|
154
|
+
'import', 'unif_hint',
|
155
|
+
'renaming', 'inline', 'hiding', 'lemma', 'variable',
|
156
|
+
'theorem', 'axiom', 'inductive', 'structure', 'universe', 'alias',
|
157
|
+
'#help', 'precedence', 'postfix', 'prefix',
|
158
|
+
'infix', 'infixl', 'infixr', 'notation', '#eval',
|
159
|
+
'#check', '#reduce', '#exit', 'end', 'private', 'using', 'namespace',
|
160
|
+
'instance', 'section', 'protected',
|
161
|
+
'export', 'set_option', 'extends', 'open', 'example',
|
162
|
+
'#print', 'opaque',
|
163
|
+
'def', 'macro', 'elab', 'syntax', 'macro_rules', '#reduce', 'where',
|
164
|
+
'abbrev', 'noncomputable', 'class', 'attribute', '#synth', 'mutual',
|
165
|
+
'scoped', 'local',
|
166
|
+
)
|
167
|
+
|
168
|
+
keywords2 = (
|
169
|
+
'forall', 'fun', 'obtain', 'from', 'have', 'show', 'assume',
|
170
|
+
'let', 'if', 'else', 'then', 'by', 'in', 'with',
|
171
|
+
'calc', 'match', 'nomatch', 'do', 'at',
|
172
|
+
)
|
173
|
+
|
174
|
+
keywords3 = (
|
175
|
+
# Sorts
|
176
|
+
'Type', 'Prop', 'Sort',
|
177
|
+
)
|
178
|
+
|
179
|
+
operators = (
|
180
|
+
'!=', '#', '&', '&&', '*', '+', '-', '/', '@', '!',
|
181
|
+
'-.', '->', '.', '..', '...', '::', ':>', ';', ';;', '<',
|
182
|
+
'<-', '=', '==', '>', '_', '|', '||', '~', '=>', '<=', '>=',
|
183
|
+
'/\\', '\\/', '∀', 'Π', 'λ', '↔', '∧', '∨', '≠', '≤', '≥',
|
184
|
+
'¬', '⁻¹', '⬝', '▸', '→', '∃', '≈', '×', '⌞',
|
185
|
+
'⌟', '≡', '⟨', '⟩', "↦",
|
186
|
+
)
|
187
|
+
|
188
|
+
punctuation = ('(', ')', ':', '{', '}', '[', ']', '⦃', '⦄',
|
189
|
+
':=', ',')
|
190
|
+
|
191
|
+
tokens = {
|
192
|
+
'expression': [
|
193
|
+
(r'\s+', Whitespace),
|
194
|
+
(r'/--', String.Doc, 'docstring'),
|
195
|
+
(r'/-', Comment, 'comment'),
|
196
|
+
(r'--.*$', Comment.Single),
|
197
|
+
(words(keywords3, prefix=r'\b', suffix=r'\b'), Keyword.Type),
|
198
|
+
(words(('sorry', 'admit'), prefix=r'\b', suffix=r'\b'), Generic.Error),
|
199
|
+
(words(operators), Name.Builtin.Pseudo),
|
200
|
+
(words(punctuation), Operator),
|
201
|
+
(_name_segment, Name),
|
202
|
+
(r'``?' + _name, String.Symbol),
|
203
|
+
(r'(?<=\.)\d+', Number),
|
204
|
+
(r'(\d+\.\d*)([eE][+-]?[0-9]+)?', Number.Float),
|
205
|
+
(r'\d+', Number.Integer),
|
206
|
+
(r'"', String.Double, 'string'),
|
207
|
+
(r'[~?][a-z][\w\']*:', Name.Variable),
|
208
|
+
(r'\S', Name.Builtin.Pseudo),
|
209
|
+
],
|
210
|
+
'root': [
|
211
|
+
(words(keywords1, prefix=r'\b', suffix=r'\b'), Keyword.Namespace),
|
212
|
+
(words(keywords2, prefix=r'\b', suffix=r'\b'), Keyword),
|
213
|
+
(r'@\[', Keyword.Declaration, 'attribute'),
|
214
|
+
include('expression')
|
215
|
+
],
|
216
|
+
'attribute': [
|
217
|
+
(r'\]', Keyword.Declaration, '#pop'),
|
218
|
+
include('expression'),
|
219
|
+
],
|
220
|
+
'comment': [
|
221
|
+
# Multiline Comments
|
222
|
+
(r'[^/-]+', Comment.Multiline),
|
223
|
+
(r'/-', Comment.Multiline, '#push'),
|
224
|
+
(r'-/', Comment.Multiline, '#pop'),
|
225
|
+
(r'[/-]', Comment.Multiline)
|
226
|
+
],
|
227
|
+
'docstring': [
|
228
|
+
(r'[^/-]+', String.Doc),
|
229
|
+
(r'-/', String.Doc, '#pop'),
|
230
|
+
(r'[/-]', String.Doc)
|
231
|
+
],
|
232
|
+
'string': [
|
233
|
+
(r'[^\\"]+', String.Double),
|
234
|
+
(r'\\[n"\\\n]', String.Escape),
|
235
|
+
('"', String.Double, '#pop'),
|
236
|
+
],
|
237
|
+
}
|
238
|
+
|
239
|
+
def analyse_text(text):
|
240
|
+
if re.search(r'^import [A-Z]', text, re.MULTILINE):
|
241
|
+
return 0.1
|
@@ -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
|
|
@@ -51,14 +51,13 @@ class LilyPondLexer(SchemeLexer):
|
|
51
51
|
.. important::
|
52
52
|
|
53
53
|
This lexer is meant to be used in conjunction with the ``lilypond`` style.
|
54
|
-
|
55
|
-
.. versionadded:: 2.11
|
56
54
|
"""
|
57
55
|
name = 'LilyPond'
|
58
56
|
url = 'https://lilypond.org'
|
59
57
|
aliases = ['lilypond']
|
60
58
|
filenames = ['*.ly']
|
61
59
|
mimetypes = []
|
60
|
+
version_added = '2.11'
|
62
61
|
|
63
62
|
flags = re.DOTALL | re.MULTILINE
|
64
63
|
|