pygments.rb 3.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +8 -8
- data/.github/workflows/release.yml +5 -5
- data/.rubocop.yml +1 -2
- data/CHANGELOG.adoc +13 -1
- data/README.adoc +3 -3
- data/Rakefile +1 -1
- data/bench.rb +3 -3
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +6 -4
- data/test/test_pygments.rb +0 -4
- 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 +2 -2
- 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 +10 -8
- data/vendor/pygments-main/pygments/formatter.py +1 -1
- data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
- data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/groff.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +20 -10
- data/vendor/pygments-main/pygments/formatters/img.py +3 -2
- data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
- data/vendor/pygments-main/pygments/formatters/latex.py +1 -1
- 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 -1
- data/vendor/pygments-main/pygments/formatters/terminal256.py +6 -6
- data/vendor/pygments-main/pygments/lexer.py +7 -5
- data/vendor/pygments-main/pygments/lexers/__init__.py +1 -1
- 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 +1 -1
- 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/_googlesql_builtins.py +918 -0
- 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 +404 -152
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mapping.py +24 -10
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +52 -3
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +7 -4
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
- 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 +1 -1
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_sql_builtins.py +106 -0
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +126 -13
- 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 +3 -3
- data/vendor/pygments-main/pygments/lexers/ada.py +1 -1
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +8 -6
- data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ampl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +1 -1
- data/vendor/pygments-main/pygments/lexers/apl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/archetype.py +4 -4
- data/vendor/pygments-main/pygments/lexers/arrow.py +1 -1
- data/vendor/pygments-main/pygments/lexers/arturo.py +1 -1
- data/vendor/pygments-main/pygments/lexers/asc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/asm.py +29 -21
- data/vendor/pygments-main/pygments/lexers/asn1.py +3 -3
- data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
- data/vendor/pygments-main/pygments/lexers/bare.py +1 -1
- data/vendor/pygments-main/pygments/lexers/basic.py +1 -1
- data/vendor/pygments-main/pygments/lexers/bdd.py +1 -1
- data/vendor/pygments-main/pygments/lexers/berry.py +1 -1
- data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -1
- data/vendor/pygments-main/pygments/lexers/blueprint.py +1 -1
- data/vendor/pygments-main/pygments/lexers/boa.py +1 -1
- data/vendor/pygments-main/pygments/lexers/bqn.py +18 -15
- data/vendor/pygments-main/pygments/lexers/business.py +1 -1
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +18 -17
- data/vendor/pygments-main/pygments/lexers/c_like.py +1 -1
- data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -1
- data/vendor/pygments-main/pygments/lexers/carbon.py +1 -1
- data/vendor/pygments-main/pygments/lexers/cddl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/chapel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/clean.py +1 -1
- data/vendor/pygments-main/pygments/lexers/codeql.py +80 -0
- data/vendor/pygments-main/pygments/lexers/comal.py +1 -1
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
- data/vendor/pygments-main/pygments/lexers/configs.py +17 -8
- data/vendor/pygments-main/pygments/lexers/console.py +1 -1
- data/vendor/pygments-main/pygments/lexers/cplint.py +1 -1
- data/vendor/pygments-main/pygments/lexers/crystal.py +1 -1
- data/vendor/pygments-main/pygments/lexers/csound.py +1 -1
- data/vendor/pygments-main/pygments/lexers/css.py +32 -2
- data/vendor/pygments-main/pygments/lexers/d.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
- data/vendor/pygments-main/pygments/lexers/data.py +2 -2
- data/vendor/pygments-main/pygments/lexers/dax.py +1 -1
- data/vendor/pygments-main/pygments/lexers/devicetree.py +17 -5
- data/vendor/pygments-main/pygments/lexers/diff.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dns.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -13
- data/vendor/pygments-main/pygments/lexers/dsls.py +2 -2
- data/vendor/pygments-main/pygments/lexers/dylan.py +3 -3
- data/vendor/pygments-main/pygments/lexers/ecl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/elm.py +1 -1
- data/vendor/pygments-main/pygments/lexers/elpi.py +55 -26
- data/vendor/pygments-main/pygments/lexers/email.py +1 -1
- data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
- data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -1
- data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fift.py +1 -1
- data/vendor/pygments-main/pygments/lexers/floscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/forth.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fortran.py +1 -1
- data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
- data/vendor/pygments-main/pygments/lexers/freefem.py +1 -1
- data/vendor/pygments-main/pygments/lexers/func.py +1 -1
- data/vendor/pygments-main/pygments/lexers/functional.py +2 -2
- data/vendor/pygments-main/pygments/lexers/futhark.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gleam.py +74 -0
- data/vendor/pygments-main/pygments/lexers/go.py +1 -1
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graph.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graphql.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graphviz.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gsql.py +1 -1
- data/vendor/pygments-main/pygments/lexers/hare.py +73 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +5 -4
- data/vendor/pygments-main/pygments/lexers/haxe.py +9 -3
- data/vendor/pygments-main/pygments/lexers/hdl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
- data/vendor/pygments-main/pygments/lexers/html.py +48 -4
- data/vendor/pygments-main/pygments/lexers/idl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/igor.py +2 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +1 -1
- data/vendor/pygments-main/pygments/lexers/installers.py +53 -26
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -1
- data/vendor/pygments-main/pygments/lexers/iolang.py +1 -1
- data/vendor/pygments-main/pygments/lexers/j.py +1 -1
- data/vendor/pygments-main/pygments/lexers/javascript.py +5 -1
- data/vendor/pygments-main/pygments/lexers/jmespath.py +1 -1
- data/vendor/pygments-main/pygments/lexers/jslt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/json5.py +83 -0
- data/vendor/pygments-main/pygments/lexers/jsonnet.py +1 -1
- data/vendor/pygments-main/pygments/lexers/jsx.py +64 -39
- data/vendor/pygments-main/pygments/lexers/julia.py +2 -1
- data/vendor/pygments-main/pygments/lexers/jvm.py +11 -6
- data/vendor/pygments-main/pygments/lexers/kuin.py +1 -1
- data/vendor/pygments-main/pygments/lexers/kusto.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ldap.py +1 -1
- data/vendor/pygments-main/pygments/lexers/lean.py +3 -3
- data/vendor/pygments-main/pygments/lexers/lilypond.py +1 -1
- data/vendor/pygments-main/pygments/lexers/lisp.py +18 -12
- data/vendor/pygments-main/pygments/lexers/macaulay2.py +169 -110
- data/vendor/pygments-main/pygments/lexers/make.py +1 -1
- data/vendor/pygments-main/pygments/lexers/maple.py +291 -0
- data/vendor/pygments-main/pygments/lexers/markup.py +11 -6
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +5 -4
- data/vendor/pygments-main/pygments/lexers/maxima.py +1 -1
- data/vendor/pygments-main/pygments/lexers/meson.py +3 -3
- data/vendor/pygments-main/pygments/lexers/mime.py +1 -1
- data/vendor/pygments-main/pygments/lexers/minecraft.py +3 -2
- data/vendor/pygments-main/pygments/lexers/mips.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
- data/vendor/pygments-main/pygments/lexers/modeling.py +3 -1
- data/vendor/pygments-main/pygments/lexers/modula2.py +1 -1
- data/vendor/pygments-main/pygments/lexers/mojo.py +7 -4
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
- 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 +1 -1
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/numbair.py +63 -0
- data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +12 -12
- data/vendor/pygments-main/pygments/lexers/ooc.py +3 -3
- data/vendor/pygments-main/pygments/lexers/openscad.py +1 -1
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parsers.py +5 -5
- data/vendor/pygments-main/pygments/lexers/pascal.py +1 -1
- data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
- data/vendor/pygments-main/pygments/lexers/pddl.py +82 -0
- data/vendor/pygments-main/pygments/lexers/perl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/phix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/php.py +6 -5
- data/vendor/pygments-main/pygments/lexers/pointless.py +1 -1
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
- data/vendor/pygments-main/pygments/lexers/praat.py +1 -1
- data/vendor/pygments-main/pygments/lexers/procfile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/prolog.py +1 -1
- data/vendor/pygments-main/pygments/lexers/promql.py +1 -1
- data/vendor/pygments-main/pygments/lexers/prql.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ptx.py +1 -1
- data/vendor/pygments-main/pygments/lexers/python.py +58 -52
- data/vendor/pygments-main/pygments/lexers/q.py +1 -1
- data/vendor/pygments-main/pygments/lexers/qlik.py +1 -1
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/r.py +8 -4
- data/vendor/pygments-main/pygments/lexers/rdf.py +4 -4
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rego.py +57 -0
- data/vendor/pygments-main/pygments/lexers/rell.py +68 -0
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ride.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rita.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rust.py +1 -1
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
- data/vendor/pygments-main/pygments/lexers/savi.py +1 -1
- data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/scripting.py +65 -25
- data/vendor/pygments-main/pygments/lexers/sgf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/shell.py +5 -1
- data/vendor/pygments-main/pygments/lexers/sieve.py +1 -1
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -1
- data/vendor/pygments-main/pygments/lexers/smithy.py +1 -1
- 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 +1 -1
- data/vendor/pygments-main/pygments/lexers/soong.py +1 -1
- data/vendor/pygments-main/pygments/lexers/sophia.py +1 -1
- data/vendor/pygments-main/pygments/lexers/special.py +2 -1
- data/vendor/pygments-main/pygments/lexers/spice.py +2 -2
- data/vendor/pygments-main/pygments/lexers/sql.py +205 -127
- data/vendor/pygments-main/pygments/lexers/srcinfo.py +1 -1
- data/vendor/pygments-main/pygments/lexers/stata.py +1 -1
- data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tablegen.py +177 -0
- data/vendor/pygments-main/pygments/lexers/tact.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tal.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/teal.py +1 -1
- data/vendor/pygments-main/pygments/lexers/templates.py +3 -3
- data/vendor/pygments-main/pygments/lexers/teraterm.py +11 -1
- data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
- data/vendor/pygments-main/pygments/lexers/text.py +2 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -1
- data/vendor/pygments-main/pygments/lexers/theorem.py +8 -8
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +8 -5
- data/vendor/pygments-main/pygments/lexers/tlb.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tls.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tnt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/typst.py +82 -26
- data/vendor/pygments-main/pygments/lexers/ul4.py +1 -1
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
- data/vendor/pygments-main/pygments/lexers/urbi.py +1 -1
- data/vendor/pygments-main/pygments/lexers/usd.py +1 -1
- data/vendor/pygments-main/pygments/lexers/varnish.py +1 -1
- data/vendor/pygments-main/pygments/lexers/verification.py +1 -1
- data/vendor/pygments-main/pygments/lexers/verifpal.py +1 -1
- data/vendor/pygments-main/pygments/lexers/vip.py +1 -1
- data/vendor/pygments-main/pygments/lexers/vyper.py +2 -2
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webassembly.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webidl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webmisc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/wgsl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/whiley.py +1 -1
- data/vendor/pygments-main/pygments/lexers/wowtoc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/wren.py +1 -1
- data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
- data/vendor/pygments-main/pygments/lexers/xorg.py +1 -1
- data/vendor/pygments-main/pygments/lexers/yang.py +1 -1
- data/vendor/pygments-main/pygments/lexers/yara.py +1 -1
- data/vendor/pygments-main/pygments/lexers/zig.py +2 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -1
- data/vendor/pygments-main/pygments/plugin.py +3 -1
- data/vendor/pygments-main/pygments/regexopt.py +13 -2
- data/vendor/pygments-main/pygments/scanner.py +1 -1
- data/vendor/pygments-main/pygments/sphinxext.py +1 -1
- data/vendor/pygments-main/pygments/style.py +1 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
- data/vendor/pygments-main/pygments/styles/abap.py +1 -1
- data/vendor/pygments-main/pygments/styles/algol.py +1 -1
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
- data/vendor/pygments-main/pygments/styles/arduino.py +1 -1
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/coffee.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/dracula.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/gh_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/gruvbox.py +1 -1
- data/vendor/pygments-main/pygments/styles/igor.py +1 -1
- data/vendor/pygments-main/pygments/styles/inkpot.py +1 -1
- data/vendor/pygments-main/pygments/styles/lightbulb.py +1 -1
- data/vendor/pygments-main/pygments/styles/lilypond.py +1 -1
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/material.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/nord.py +1 -1
- data/vendor/pygments-main/pygments/styles/onedark.py +13 -3
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
- data/vendor/pygments-main/pygments/styles/rrt.py +18 -3
- data/vendor/pygments-main/pygments/styles/sas.py +1 -1
- data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
- data/vendor/pygments-main/pygments/styles/staroffice.py +1 -1
- data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
- data/vendor/pygments-main/pygments/styles/zenburn.py +1 -1
- data/vendor/pygments-main/pygments/token.py +1 -1
- data/vendor/pygments-main/pygments/unistring.py +1 -1
- data/vendor/pygments-main/pygments/util.py +2 -2
- data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/METADATA +7 -7
- data/vendor/pygments-main/pygments-2.20.0.dist-info/RECORD +687 -0
- data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/WHEEL +1 -1
- data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/AUTHORS +9 -0
- metadata +44 -21
- data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +0 -663
- /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/INSTALLER +0 -0
- /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/REQUESTED +0 -0
- /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/entry_points.txt +0 -0
- /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Lexers for configuration file formats.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -44,15 +44,24 @@ class IniLexer(RegexLexer):
|
|
|
44
44
|
(r'\s+', Whitespace),
|
|
45
45
|
(r'[;#].*', Comment.Single),
|
|
46
46
|
(r'(\[.*?\])([ \t]*)$', bygroups(Keyword, Whitespace)),
|
|
47
|
-
(r'(.*?)([
|
|
47
|
+
(r'''(.*?)([ \t]*)([=:])([ \t]*)(["'])''',
|
|
48
|
+
bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String),
|
|
49
|
+
"quoted_value"),
|
|
50
|
+
(r'(.*?)([ \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)',
|
|
48
51
|
bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String,
|
|
49
52
|
Text, Whitespace),
|
|
50
53
|
"value"),
|
|
51
|
-
(r'(.*?)([ \t]*)([=:])([
|
|
54
|
+
(r'(.*?)([ \t]*)([=:])([ \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)',
|
|
52
55
|
bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String)),
|
|
53
56
|
# standalone option, supported by some INI parsers
|
|
54
57
|
(r'(.+?)$', Name.Attribute),
|
|
55
58
|
],
|
|
59
|
+
'quoted_value': [
|
|
60
|
+
(r'''([^"'\n]*)(["'])(\s*)''',
|
|
61
|
+
bygroups(String, String, Whitespace), "#pop"),
|
|
62
|
+
(r'[;#].*', Comment.Single),
|
|
63
|
+
(r'$', String, "#pop"),
|
|
64
|
+
],
|
|
56
65
|
'value': [ # line continuation
|
|
57
66
|
(r'\s+', Whitespace),
|
|
58
67
|
(r'(\s*)(.*)(\\)([ \t]*)',
|
|
@@ -1118,7 +1127,7 @@ class TOMLLexer(RegexLexer):
|
|
|
1118
1127
|
# Based on the TOML spec: https://toml.io/en/v1.0.0
|
|
1119
1128
|
|
|
1120
1129
|
# The following is adapted from CPython's tomllib:
|
|
1121
|
-
_time = r"\d\d:\d\d:\d\d(\.\d+)?"
|
|
1130
|
+
_time = r"\d\d:\d\d(:\d\d(\.\d+)?)?"
|
|
1122
1131
|
_datetime = rf"""(?x)
|
|
1123
1132
|
\d\d\d\d-\d\d-\d\d # date, e.g., 1988-10-27
|
|
1124
1133
|
(
|
|
@@ -1229,9 +1238,9 @@ class TOMLLexer(RegexLexer):
|
|
|
1229
1238
|
default('value'),
|
|
1230
1239
|
],
|
|
1231
1240
|
'inline-table': [
|
|
1232
|
-
#
|
|
1233
|
-
|
|
1234
|
-
(r'
|
|
1241
|
+
# Whitespace (since TOML 1.1.0, same as in array)
|
|
1242
|
+
(r'\s+', Whitespace),
|
|
1243
|
+
(r'#.*', Comment.Single),
|
|
1235
1244
|
|
|
1236
1245
|
# Keys
|
|
1237
1246
|
include('key'),
|
|
@@ -1266,7 +1275,7 @@ class TOMLLexer(RegexLexer):
|
|
|
1266
1275
|
(r"'", String.Single),
|
|
1267
1276
|
],
|
|
1268
1277
|
'escapes': [
|
|
1269
|
-
(r'\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}', String.Escape),
|
|
1278
|
+
(r'\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}', String.Escape),
|
|
1270
1279
|
(r'\\.', String.Escape),
|
|
1271
1280
|
],
|
|
1272
1281
|
}
|
|
@@ -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-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -96,7 +96,7 @@ _keyword_values = (
|
|
|
96
96
|
'padding-box', 'page', 'pan-down', 'pan-left', 'pan-right', 'pan-up',
|
|
97
97
|
'pan-x', 'pan-y', 'paused', 'petite-caps', 'pixelated', 'pointer',
|
|
98
98
|
'preserve-3d', 'progress', 'proximity', 'relative', 'repeat',
|
|
99
|
-
'repeat no-repeat', 'repeat-x', 'repeat-y', 'reverse', 'ridge', 'right',
|
|
99
|
+
'repeat no-repeat', 'repeat-x', 'repeat-y', 'reverse', 'revert', 'ridge', 'right',
|
|
100
100
|
'round', 'row', 'row-resize', 'row-reverse', 'rtl', 'ruby', 'ruby-base',
|
|
101
101
|
'ruby-base-container', 'ruby-text', 'ruby-text-container', 'run-in',
|
|
102
102
|
'running', 's-resize', 'sans-serif', 'saturation', 'scale-down', 'screen',
|
|
@@ -590,13 +590,43 @@ class LessCssLexer(CssLexer):
|
|
|
590
590
|
version_added = '2.1'
|
|
591
591
|
|
|
592
592
|
tokens = {
|
|
593
|
+
# FIXME: It's not currently possible to simply do the following,
|
|
594
|
+
# as `include('basics')` doesn't take overrides into account:
|
|
595
|
+
# 'basics': [
|
|
596
|
+
# (r'//.*\n', Comment.Single),
|
|
597
|
+
# (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
598
|
+
# inherit,
|
|
599
|
+
# ],
|
|
593
600
|
'root': [
|
|
594
601
|
(r'@\w+', Name.Variable),
|
|
602
|
+
(r'//.*\n', Comment.Single),
|
|
603
|
+
(r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
604
|
+
inherit,
|
|
605
|
+
],
|
|
606
|
+
'atcontent': [
|
|
607
|
+
(r'//.*\n', Comment.Single),
|
|
608
|
+
(r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
609
|
+
inherit,
|
|
610
|
+
],
|
|
611
|
+
'atrule': [
|
|
612
|
+
(r'//.*\n', Comment.Single),
|
|
613
|
+
(r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
595
614
|
inherit,
|
|
596
615
|
],
|
|
597
616
|
'content': [
|
|
598
617
|
(r'\{', Punctuation, '#push'),
|
|
599
618
|
(r'//.*\n', Comment.Single),
|
|
619
|
+
(r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
620
|
+
inherit,
|
|
621
|
+
],
|
|
622
|
+
'value-start': [
|
|
623
|
+
(r'//.*\n', Comment.Single),
|
|
624
|
+
(r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
625
|
+
inherit,
|
|
626
|
+
],
|
|
627
|
+
'function-start': [
|
|
628
|
+
(r'//.*\n', Comment.Single),
|
|
629
|
+
(r'/\*(?:.|\n)*?\*/', Comment.Multiline),
|
|
600
630
|
inherit,
|
|
601
631
|
],
|
|
602
632
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Lexers for data file format.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -447,7 +447,7 @@ class JsonLexer(Lexer):
|
|
|
447
447
|
name = 'JSON'
|
|
448
448
|
url = 'https://www.json.org'
|
|
449
449
|
aliases = ['json', 'json-object']
|
|
450
|
-
filenames = ['*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock']
|
|
450
|
+
filenames = ['*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock', '*.module', '*.xc']
|
|
451
451
|
mimetypes = ['application/json', 'application/json-object', 'application/x-ndjson', 'application/jsonl', 'application/json-seq']
|
|
452
452
|
version_added = '1.5'
|
|
453
453
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Lexers for Devicetree language.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -63,15 +63,19 @@ class DevicetreeLexer(RegexLexer):
|
|
|
63
63
|
'#size-cells', 'reg', 'virtual-reg', 'ranges', 'dma-ranges',
|
|
64
64
|
'device_type', 'name'), suffix=r'\b'), Keyword.Reserved),
|
|
65
65
|
(r'([~!%^&*+=|?:<>/#-])', Operator),
|
|
66
|
-
(r'[()
|
|
67
|
-
(r'
|
|
66
|
+
(r'[(){},.\]]', Punctuation),
|
|
67
|
+
(r'\[', Punctuation, 'bytestring'),
|
|
68
|
+
(r'[a-zA-Z_][\w-]*(?=(?:\s*,' + _ws + r'[a-zA-Z_][\w-]*)*' + _ws + r'[=;])',
|
|
68
69
|
Name),
|
|
69
70
|
(r'[a-zA-Z_]\w*', Name.Attribute),
|
|
70
71
|
],
|
|
71
72
|
'root': [
|
|
72
73
|
include('whitespace'),
|
|
73
74
|
include('macro'),
|
|
74
|
-
|
|
75
|
+
# Overlay/fragment: &label { ... } or &{/path/to/node} { ... }
|
|
76
|
+
(r'(&)(?:([A-Za-z_]\w*)|(\{)([^}]+)(\}))(' + _ws + r')(\{)',
|
|
77
|
+
bygroups(Operator, Name.Function, Punctuation, Name.Namespace,
|
|
78
|
+
Punctuation, Comment.Multiline, Punctuation), 'node'),
|
|
75
79
|
# Nodes
|
|
76
80
|
(r'([^/*@\s&]+|/)(@?)((?:0x)?[0-9a-fA-F,]*)(' + _ws + r')(\{)',
|
|
77
81
|
bygroups(Name.Function, Operator, Number.Integer,
|
|
@@ -87,7 +91,10 @@ class DevicetreeLexer(RegexLexer):
|
|
|
87
91
|
'node': [
|
|
88
92
|
include('whitespace'),
|
|
89
93
|
include('macro'),
|
|
90
|
-
|
|
94
|
+
# Overlay/fragment: &label { ... } or &{/path/to/node} { ... }
|
|
95
|
+
(r'(&)(?:([A-Za-z_]\w*)|(\{)([^}]+)(\}))(' + _ws + r')(\{)',
|
|
96
|
+
bygroups(Operator, Name.Function, Punctuation, Name.Namespace,
|
|
97
|
+
Punctuation, Comment.Multiline, Punctuation), '#push'),
|
|
91
98
|
(r'([^/*@\s&]+|/)(@?)((?:0x)?[0-9a-fA-F,]*)(' + _ws + r')(\{)',
|
|
92
99
|
bygroups(Name.Function, Operator, Number.Integer,
|
|
93
100
|
Comment.Multiline, Punctuation), '#push'),
|
|
@@ -105,4 +112,9 @@ class DevicetreeLexer(RegexLexer):
|
|
|
105
112
|
(r'\\\n', String), # line continuation
|
|
106
113
|
(r'\\', String), # stray backslash
|
|
107
114
|
],
|
|
115
|
+
'bytestring': [
|
|
116
|
+
(r'\]', Punctuation, '#pop'),
|
|
117
|
+
(r'[0-9a-fA-F]{2}', Number.Hex),
|
|
118
|
+
(r'\s+', Whitespace),
|
|
119
|
+
],
|
|
108
120
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Lexers for .net languages.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
import re
|
|
@@ -74,6 +74,7 @@ class CSharpLexer(RegexLexer):
|
|
|
74
74
|
for levelname, cs_ident in levels.items():
|
|
75
75
|
tokens[levelname] = {
|
|
76
76
|
'root': [
|
|
77
|
+
include('numbers'),
|
|
77
78
|
# method names
|
|
78
79
|
(r'^([ \t]*)((?:' + cs_ident + r'(?:\[\])?\s+)+?)' # return type
|
|
79
80
|
r'(' + cs_ident + ')' # method name
|
|
@@ -106,18 +107,29 @@ class CSharpLexer(RegexLexer):
|
|
|
106
107
|
Comment.Preproc, Whitespace)),
|
|
107
108
|
(r'\b(extern)(\s+)(alias)\b', bygroups(Keyword, Whitespace,
|
|
108
109
|
Keyword)),
|
|
109
|
-
(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
110
|
+
(words((
|
|
111
|
+
'abstract', 'as', 'async', 'await', 'base', 'break', 'by',
|
|
112
|
+
'case', 'catch', 'checked', 'const', 'continue', 'default',
|
|
113
|
+
'delegate', 'do', 'else', 'enum', 'event', 'explicit',
|
|
114
|
+
'extern', 'false', 'finally', 'fixed', 'for', 'foreach',
|
|
115
|
+
'goto', 'if', 'implicit', 'in', 'interface', 'internal',
|
|
116
|
+
'is', 'let', 'lock', 'new', 'null', 'on', 'operator',
|
|
117
|
+
'out', 'override', 'params', 'private', 'protected',
|
|
118
|
+
'public', 'readonly', 'ref', 'return', 'sealed', 'sizeof',
|
|
119
|
+
'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
|
|
120
|
+
'try', 'typeof', 'unchecked', 'unsafe', 'virtual', 'void',
|
|
121
|
+
'while', 'get', 'set', 'new', 'partial', 'yield', 'add',
|
|
122
|
+
'remove', 'value', 'alias', 'ascending', 'descending',
|
|
123
|
+
'from', 'group', 'into', 'orderby', 'select', 'thenby',
|
|
124
|
+
'where', 'join', 'equals', 'record', 'allows',
|
|
125
|
+
'and', 'init', 'managed', 'nameof', 'nint', 'not',
|
|
126
|
+
'notnull', 'nuint', 'or', 'scoped', 'unmanaged', 'when',
|
|
127
|
+
'with'
|
|
128
|
+
), suffix=r'\b'), Keyword),
|
|
129
|
+
# version 1: assumes that 'file' is the only contextual keyword
|
|
130
|
+
# that is a class modifier
|
|
131
|
+
(r'(file)(\s+)(record|class|abstract|enum|new|sealed|static)\b',
|
|
132
|
+
bygroups(Keyword, Whitespace, Keyword)),
|
|
121
133
|
(r'(global)(::)', bygroups(Keyword, Punctuation)),
|
|
122
134
|
(r'(bool|byte|char|decimal|double|dynamic|float|int|long|object|'
|
|
123
135
|
r'sbyte|short|string|uint|ulong|ushort|var)\b\??', Keyword.Type),
|
|
@@ -125,6 +137,21 @@ class CSharpLexer(RegexLexer):
|
|
|
125
137
|
(r'(namespace|using)(\s+)', bygroups(Keyword, Whitespace), 'namespace'),
|
|
126
138
|
(cs_ident, Name),
|
|
127
139
|
],
|
|
140
|
+
'numbers_int': [
|
|
141
|
+
(r"0[xX][0-9a-fA-F]+(([uU][lL]?)|[lL][uU]?)?", Number.Hex),
|
|
142
|
+
(r"0[bB][01]+(([uU][lL]?)|[lL][uU]?)?", Number.Bin),
|
|
143
|
+
(r"[0-9]+(([uU][lL]?)|[lL][uU]?)?", Number.Integer),
|
|
144
|
+
],
|
|
145
|
+
'numbers_float': [
|
|
146
|
+
(r"([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fFdDmM]?)|"
|
|
147
|
+
r"(\.[0-9]+([eE][+-]?[0-9]+)?[fFdDmM]?)|"
|
|
148
|
+
r"([0-9]+([eE][+-]?[0-9]+)[fFdDmM]?)|"
|
|
149
|
+
r"([0-9]+[fFdDmM])", Number.Float),
|
|
150
|
+
],
|
|
151
|
+
'numbers': [
|
|
152
|
+
include('numbers_float'),
|
|
153
|
+
include('numbers_int'),
|
|
154
|
+
],
|
|
128
155
|
'class': [
|
|
129
156
|
(cs_ident, Name.Class, '#pop'),
|
|
130
157
|
default('#pop'),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Lexers for various domain-specific languages.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -67,7 +67,7 @@ class ProtoBufLexer(RegexLexer):
|
|
|
67
67
|
(r'[a-zA-Z_][\w.]*', Name),
|
|
68
68
|
],
|
|
69
69
|
'package': [
|
|
70
|
-
(r'[a-zA-Z_]\w*', Name.Namespace, '#pop'),
|
|
70
|
+
(r'[a-zA-Z_][\w\.]*', Name.Namespace, '#pop'),
|
|
71
71
|
default('#pop'),
|
|
72
72
|
],
|
|
73
73
|
'message': [
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Lexers for the Dylan language.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -242,7 +242,7 @@ class DylanConsoleLexer(Lexer):
|
|
|
242
242
|
"""
|
|
243
243
|
For Dylan interactive console output.
|
|
244
244
|
|
|
245
|
-
This is based on a copy of the RubyConsoleLexer
|
|
245
|
+
This is based on a copy of the ``RubyConsoleLexer``.
|
|
246
246
|
"""
|
|
247
247
|
name = 'Dylan session'
|
|
248
248
|
aliases = ['dylan-console', 'dylan-repl']
|
|
@@ -250,7 +250,7 @@ class DylanConsoleLexer(Lexer):
|
|
|
250
250
|
mimetypes = ['text/x-dylan-console']
|
|
251
251
|
url = 'http://www.opendylan.org/'
|
|
252
252
|
version_added = '1.6'
|
|
253
|
-
_example = 'dylan-console/console'
|
|
253
|
+
_example = 'dylan-console/console.dylan-console'
|
|
254
254
|
|
|
255
255
|
_prompt_re = re.compile(r'\?| ')
|
|
256
256
|
|
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
Lexer for the `Elpi <http://github.com/LPCIC/elpi>`_ programming language.
|
|
6
6
|
|
|
7
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
|
|
8
8
|
:license: BSD, see LICENSE for details.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
from pygments.lexer import RegexLexer, bygroups, include
|
|
11
|
+
from pygments.lexer import RegexLexer, bygroups, include, using
|
|
12
12
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
|
13
13
|
Number, Punctuation
|
|
14
14
|
|
|
15
15
|
__all__ = ['ElpiLexer']
|
|
16
16
|
|
|
17
|
+
from pygments.lexers.theorem import RocqLexer
|
|
17
18
|
|
|
18
19
|
class ElpiLexer(RegexLexer):
|
|
19
20
|
"""
|
|
@@ -51,11 +52,14 @@ class ElpiLexer(RegexLexer):
|
|
|
51
52
|
(r"(:before|:after|:if|:name)(\s*)(\")",
|
|
52
53
|
bygroups(Keyword.Mode, Text.Whitespace, String.Double),
|
|
53
54
|
'elpi-string'),
|
|
54
|
-
(r"(:index)(\s
|
|
55
|
+
(r"(:index)(\s*)(\()", bygroups(Keyword.Mode, Text.Whitespace, Punctuation),
|
|
55
56
|
'elpi-indexing-expr'),
|
|
56
57
|
(rf"\b(external pred|pred)(\s+)({const_sym_re})",
|
|
57
58
|
bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
|
|
58
59
|
'elpi-pred-item'),
|
|
60
|
+
(rf"\b(func)(\s+)({const_sym_re})",
|
|
61
|
+
bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
|
|
62
|
+
'elpi-func-item'),
|
|
59
63
|
(rf"\b(external type|type)(\s+)(({const_sym_re}(,\s*)?)+)",
|
|
60
64
|
bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
|
|
61
65
|
'elpi-type'),
|
|
@@ -65,6 +69,9 @@ class ElpiLexer(RegexLexer):
|
|
|
65
69
|
(rf"\b(typeabbrev)(\s+)({const_sym_re})",
|
|
66
70
|
bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
|
|
67
71
|
'elpi-type'),
|
|
72
|
+
(r"\b(typeabbrev)(\s+)(\([^)]+\))",
|
|
73
|
+
bygroups(Keyword.Declaration, Text.Whitespace, Name.Function),
|
|
74
|
+
'elpi-type'),
|
|
68
75
|
(r"\b(accumulate)(\s+)(\")",
|
|
69
76
|
bygroups(Keyword.Declaration, Text.Whitespace, String.Double),
|
|
70
77
|
'elpi-string'),
|
|
@@ -79,7 +86,7 @@ class ElpiLexer(RegexLexer):
|
|
|
79
86
|
'elpi-chr-rule-start'),
|
|
80
87
|
|
|
81
88
|
(rf"(?=[A-Z_]){constant_re}", Name.Variable),
|
|
82
|
-
(rf"(?=[a-z_]){constant_re}\\", Name.Variable),
|
|
89
|
+
(rf"(?=[a-z_])({constant_re}|_)\\", Name.Variable),
|
|
83
90
|
(r"_", Name.Variable),
|
|
84
91
|
(rf"({symbol_re}|!|=>|;)", Keyword.Declaration),
|
|
85
92
|
(constant_re, Text),
|
|
@@ -89,56 +96,75 @@ class ElpiLexer(RegexLexer):
|
|
|
89
96
|
(r'\'', String.Double, 'elpi-tick'),
|
|
90
97
|
(r'\{\{', Punctuation, 'elpi-quote'),
|
|
91
98
|
(r'\{[^\{]', Text, 'elpi-spill'),
|
|
92
|
-
(r"\(",
|
|
99
|
+
(r"\(", Punctuation, 'elpi-in-parens'),
|
|
93
100
|
(r'\d[\d_]*', Number.Integer),
|
|
94
101
|
(r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
|
|
95
102
|
(r"[\+\*\-/\^\.]", Operator),
|
|
96
103
|
],
|
|
97
104
|
'_elpi-comment': [
|
|
98
105
|
(r'%[^\n]*\n', Comment),
|
|
99
|
-
(r'
|
|
106
|
+
(r'/(?:\\\n)?[*](?:[^*]|[*](?!(?:\\\n)?/))*[*](?:\\\n)?/', Comment),
|
|
100
107
|
(r"\s+", Text.Whitespace),
|
|
101
108
|
],
|
|
102
|
-
'elpi-multiline-comment': [
|
|
103
|
-
(r'\*/', Comment, '#pop'),
|
|
104
|
-
(r'.', Comment)
|
|
105
|
-
],
|
|
106
109
|
'elpi-indexing-expr':[
|
|
107
110
|
(r'[0-9 _]+', Number.Integer),
|
|
108
|
-
(r'\)',
|
|
111
|
+
(r'\)', Punctuation, '#pop'),
|
|
109
112
|
],
|
|
110
113
|
'elpi-type': [
|
|
111
114
|
(r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), 'elpi-string'),
|
|
112
115
|
(r'->', Keyword.Type),
|
|
116
|
+
(r'prop', Keyword.Mode),
|
|
113
117
|
(constant_re, Keyword.Type),
|
|
114
118
|
(r"\(|\)", Keyword.Type),
|
|
115
119
|
(r"\.", Text, '#pop'),
|
|
116
120
|
include('_elpi-comment'),
|
|
117
121
|
],
|
|
118
122
|
'elpi-chr-rule-start': [
|
|
119
|
-
(r"\{",
|
|
123
|
+
(r"\{", Punctuation, 'elpi-chr-rule'),
|
|
120
124
|
include('_elpi-comment'),
|
|
121
125
|
],
|
|
122
126
|
'elpi-chr-rule': [
|
|
123
127
|
(r"\brule\b", Keyword.Declaration),
|
|
124
128
|
(r"\\", Keyword.Declaration),
|
|
125
|
-
(r"\}",
|
|
129
|
+
(r"\}", Punctuation, '#pop:2'),
|
|
126
130
|
include('elpi'),
|
|
127
131
|
],
|
|
128
132
|
'elpi-pred-item': [
|
|
129
|
-
(r"[io]:", Keyword.Mode
|
|
133
|
+
(r"[io]:", Keyword.Mode),
|
|
130
134
|
(r"\.", Text, '#pop'),
|
|
135
|
+
(r",", Keyword.Mode),
|
|
136
|
+
include('_elpi-inner-pred-fun'),
|
|
137
|
+
(r"\)", Keyword.Mode, '#pop'),
|
|
138
|
+
(r"\(", Keyword.Type, '_elpi-type-item'),
|
|
131
139
|
include('_elpi-comment'),
|
|
140
|
+
include('_elpi-type-item'),
|
|
132
141
|
],
|
|
133
|
-
'elpi-
|
|
134
|
-
(
|
|
142
|
+
'elpi-func-item': [
|
|
143
|
+
(constant_re, Keyword.Type),
|
|
144
|
+
(r"\.", Text, '#pop'),
|
|
145
|
+
(r",", Keyword.Mode),
|
|
146
|
+
(r'->', Keyword.Mode),
|
|
147
|
+
include('_elpi-inner-pred-fun'),
|
|
148
|
+
(r"\)", Keyword.Mode, '#pop'),
|
|
149
|
+
(r"\(", Keyword.Type, '_elpi-type-item'),
|
|
150
|
+
include('_elpi-comment'),
|
|
151
|
+
include('_elpi-type-item'),
|
|
152
|
+
],
|
|
153
|
+
'_elpi-inner-pred-fun': [
|
|
154
|
+
(r"(\()(\s*)(pred)", bygroups(Keyword.Mode,Text.Whitespace,Keyword.Declaration), 'elpi-pred-item'),
|
|
155
|
+
(r"(\()(\s*)(func)", bygroups(Keyword.Mode,Text.Whitespace,Keyword.Declaration), 'elpi-func-item'),
|
|
156
|
+
],
|
|
157
|
+
'_elpi-type-item': [
|
|
135
158
|
(r'->', Keyword.Type),
|
|
136
159
|
(constant_re, Keyword.Type),
|
|
137
|
-
(
|
|
138
|
-
(r"
|
|
139
|
-
(r"
|
|
160
|
+
include('_elpi-inner-pred-fun'),
|
|
161
|
+
(r"\(", Keyword.Type, '#push'),
|
|
162
|
+
(r"\)", Keyword.Type, '#pop'),
|
|
140
163
|
include('_elpi-comment'),
|
|
141
164
|
],
|
|
165
|
+
|
|
166
|
+
''
|
|
167
|
+
|
|
142
168
|
'elpi-btick': [
|
|
143
169
|
(r'[^` ]+', String.Double),
|
|
144
170
|
(r'`', String.Double, '#pop'),
|
|
@@ -152,11 +178,15 @@ class ElpiLexer(RegexLexer):
|
|
|
152
178
|
(r'"', String.Double, '#pop'),
|
|
153
179
|
],
|
|
154
180
|
'elpi-quote': [
|
|
155
|
-
(r'\{\{', Punctuation, '#push'),
|
|
156
181
|
(r'\}\}', Punctuation, '#pop'),
|
|
157
|
-
(
|
|
158
|
-
(r"
|
|
159
|
-
(
|
|
182
|
+
(r"\s+", Text.Whitespace),
|
|
183
|
+
(r"(lp:)(\{\{)", bygroups(Number, Punctuation), 'elpi-quote-exit'),
|
|
184
|
+
(rf"(lp:)((?=[A-Z_]){constant_re})", bygroups(Number, Name.Variable)),
|
|
185
|
+
(r"((?!lp:|\}\}).)+", using(RocqLexer)),
|
|
186
|
+
],
|
|
187
|
+
'elpi-quote-exit': [
|
|
188
|
+
include('elpi'),
|
|
189
|
+
(r'\}\}', Punctuation, '#pop'),
|
|
160
190
|
],
|
|
161
191
|
'elpi-spill': [
|
|
162
192
|
(r'\{[^\{]', Text, '#push'),
|
|
@@ -164,9 +194,8 @@ class ElpiLexer(RegexLexer):
|
|
|
164
194
|
include('elpi'),
|
|
165
195
|
],
|
|
166
196
|
'elpi-in-parens': [
|
|
167
|
-
(r"\(",
|
|
168
|
-
(r"\)", Operator, '#pop'),
|
|
197
|
+
(r"\(", Punctuation, '#push'),
|
|
169
198
|
include('elpi'),
|
|
199
|
+
(r"\)", Punctuation, '#pop'),
|
|
170
200
|
],
|
|
171
|
-
|
|
172
201
|
}
|