pygments.rb 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/.rubocop.yml +7 -0
- data/CHANGELOG.adoc +4 -0
- data/README.adoc +1 -1
- data/bench.rb +1 -1
- data/lib/pygments/popen.rb +3 -7
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -2
- data/test/test_pygments.rb +0 -19
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/AUTHORS +21 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/LICENSE +1 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/METADATA +19 -11
- data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +614 -0
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/WHEEL +1 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/entry_points.txt +0 -1
- data/vendor/pygments-main/bin/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +20 -22
- data/vendor/pygments-main/pygments/__main__.py +1 -1
- data/vendor/pygments-main/pygments/cmdline.py +74 -8
- data/vendor/pygments-main/pygments/console.py +1 -1
- data/vendor/pygments-main/pygments/filter.py +1 -1
- data/vendor/pygments-main/pygments/filters/__init__.py +6 -3
- data/vendor/pygments-main/pygments/formatter.py +41 -11
- data/vendor/pygments-main/pygments/formatters/__init__.py +21 -16
- data/vendor/pygments-main/pygments/formatters/_mapping.py +5 -65
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/groff.py +170 -0
- data/vendor/pygments-main/pygments/formatters/html.py +54 -32
- data/vendor/pygments-main/pygments/formatters/img.py +9 -5
- data/vendor/pygments-main/pygments/formatters/irc.py +6 -33
- data/vendor/pygments-main/pygments/formatters/latex.py +24 -14
- data/vendor/pygments-main/pygments/formatters/other.py +1 -1
- data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
- data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -3
- data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -4
- data/vendor/pygments-main/pygments/lexer.py +101 -32
- data/vendor/pygments-main/pygments/lexers/__init__.py +50 -29
- data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +103 -0
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +21 -6
- data/vendor/pygments-main/pygments/lexers/_css_builtins.py +558 -0
- data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +10 -0
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +4932 -0
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +11 -18
- data/vendor/pygments-main/pygments/lexers/_mapping.py +71 -82
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +58 -4
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +408 -1835
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +70 -8
- data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +666 -0
- data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1609 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3 -3
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +9 -18
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +185 -94
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +15 -14
- data/vendor/pygments-main/pygments/lexers/ada.py +144 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +72 -9
- data/vendor/pygments-main/pygments/lexers/ambient.py +8 -7
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +4 -3
- data/vendor/pygments-main/pygments/lexers/ampl.py +10 -8
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +164 -20
- data/vendor/pygments-main/pygments/lexers/apl.py +6 -5
- data/vendor/pygments-main/pygments/lexers/archetype.py +23 -21
- data/vendor/pygments-main/pygments/lexers/arrow.py +10 -9
- data/vendor/pygments-main/pygments/lexers/arturo.py +250 -0
- data/vendor/pygments-main/pygments/lexers/asc.py +9 -5
- data/vendor/pygments-main/pygments/lexers/asm.py +68 -63
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -5
- data/vendor/pygments-main/pygments/lexers/bare.py +20 -21
- data/vendor/pygments-main/pygments/lexers/basic.py +45 -41
- data/vendor/pygments-main/pygments/lexers/bdd.py +58 -0
- data/vendor/pygments-main/pygments/lexers/berry.py +99 -0
- data/vendor/pygments-main/pygments/lexers/bibtex.py +6 -6
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -8
- data/vendor/pygments-main/pygments/lexers/business.py +18 -18
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +80 -40
- data/vendor/pygments-main/pygments/lexers/c_like.py +21 -19
- data/vendor/pygments-main/pygments/lexers/capnproto.py +6 -8
- data/vendor/pygments-main/pygments/lexers/carbon.py +96 -0
- data/vendor/pygments-main/pygments/lexers/cddl.py +16 -33
- data/vendor/pygments-main/pygments/lexers/chapel.py +14 -9
- data/vendor/pygments-main/pygments/lexers/clean.py +3 -2
- data/vendor/pygments-main/pygments/lexers/comal.py +80 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +3 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +235 -120
- data/vendor/pygments-main/pygments/lexers/console.py +5 -4
- data/vendor/pygments-main/pygments/lexers/cplint.py +44 -0
- data/vendor/pygments-main/pygments/lexers/crystal.py +22 -23
- data/vendor/pygments-main/pygments/lexers/csound.py +19 -17
- data/vendor/pygments-main/pygments/lexers/css.py +67 -159
- data/vendor/pygments-main/pygments/lexers/d.py +15 -12
- data/vendor/pygments-main/pygments/lexers/dalvik.py +14 -11
- data/vendor/pygments-main/pygments/lexers/data.py +119 -49
- data/vendor/pygments-main/pygments/lexers/dax.py +136 -0
- data/vendor/pygments-main/pygments/lexers/devicetree.py +9 -8
- data/vendor/pygments-main/pygments/lexers/diff.py +23 -19
- data/vendor/pygments-main/pygments/lexers/dotnet.py +216 -81
- data/vendor/pygments-main/pygments/lexers/dsls.py +86 -64
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -15
- data/vendor/pygments-main/pygments/lexers/ecl.py +46 -38
- data/vendor/pygments-main/pygments/lexers/eiffel.py +15 -10
- data/vendor/pygments-main/pygments/lexers/elm.py +12 -8
- data/vendor/pygments-main/pygments/lexers/elpi.py +165 -0
- data/vendor/pygments-main/pygments/lexers/email.py +21 -39
- data/vendor/pygments-main/pygments/lexers/erlang.py +21 -22
- data/vendor/pygments-main/pygments/lexers/esoteric.py +28 -30
- data/vendor/pygments-main/pygments/lexers/ezhil.py +10 -9
- data/vendor/pygments-main/pygments/lexers/factor.py +104 -83
- data/vendor/pygments-main/pygments/lexers/fantom.py +31 -29
- data/vendor/pygments-main/pygments/lexers/felix.py +18 -14
- data/vendor/pygments-main/pygments/lexers/fift.py +67 -0
- data/vendor/pygments-main/pygments/lexers/floscript.py +7 -7
- data/vendor/pygments-main/pygments/lexers/forth.py +8 -6
- data/vendor/pygments-main/pygments/lexers/fortran.py +16 -11
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +7 -10
- data/vendor/pygments-main/pygments/lexers/func.py +108 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/futhark.py +12 -17
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -2
- data/vendor/pygments-main/pygments/lexers/gdscript.py +76 -233
- data/vendor/pygments-main/pygments/lexers/go.py +12 -14
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +22 -26
- data/vendor/pygments-main/pygments/lexers/graph.py +36 -15
- data/vendor/pygments-main/pygments/lexers/graphics.py +37 -38
- data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -1
- data/vendor/pygments-main/pygments/lexers/gsql.py +39 -27
- data/vendor/pygments-main/pygments/lexers/haskell.py +73 -71
- data/vendor/pygments-main/pygments/lexers/haxe.py +13 -11
- data/vendor/pygments-main/pygments/lexers/hdl.py +31 -34
- data/vendor/pygments-main/pygments/lexers/hexdump.py +21 -21
- data/vendor/pygments-main/pygments/lexers/html.py +11 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +10 -5
- data/vendor/pygments-main/pygments/lexers/igor.py +3 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +9 -8
- data/vendor/pygments-main/pygments/lexers/installers.py +39 -33
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +35 -20
- data/vendor/pygments-main/pygments/lexers/iolang.py +9 -9
- data/vendor/pygments-main/pygments/lexers/j.py +20 -13
- data/vendor/pygments-main/pygments/lexers/javascript.py +183 -149
- data/vendor/pygments-main/pygments/lexers/jmespath.py +68 -0
- data/vendor/pygments-main/pygments/lexers/jslt.py +4 -3
- data/vendor/pygments-main/pygments/lexers/jsonnet.py +168 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -32
- data/vendor/pygments-main/pygments/lexers/jvm.py +161 -140
- data/vendor/pygments-main/pygments/lexers/kuin.py +93 -59
- data/vendor/pygments-main/pygments/lexers/lilypond.py +226 -0
- data/vendor/pygments-main/pygments/lexers/lisp.py +244 -107
- data/vendor/pygments-main/pygments/lexers/macaulay2.py +1739 -0
- data/vendor/pygments-main/pygments/lexers/make.py +21 -16
- data/vendor/pygments-main/pygments/lexers/markup.py +752 -11
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +18 -3
- data/vendor/pygments-main/pygments/lexers/maxima.py +85 -0
- data/vendor/pygments-main/pygments/lexers/meson.py +10 -25
- data/vendor/pygments-main/pygments/lexers/mime.py +2 -2
- data/vendor/pygments-main/pygments/lexers/minecraft.py +394 -0
- data/vendor/pygments-main/pygments/lexers/mips.py +128 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +9 -6
- data/vendor/pygments-main/pygments/lexers/modeling.py +12 -8
- data/vendor/pygments-main/pygments/lexers/modula2.py +3 -2
- data/vendor/pygments-main/pygments/lexers/monte.py +3 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nimrod.py +62 -20
- data/vendor/pygments-main/pygments/lexers/nit.py +3 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +5 -5
- data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +6 -4
- data/vendor/pygments-main/pygments/lexers/ooc.py +3 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +3 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +23 -21
- data/vendor/pygments-main/pygments/lexers/pascal.py +196 -198
- data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
- data/vendor/pygments-main/pygments/lexers/perl.py +17 -15
- data/vendor/pygments-main/pygments/lexers/phix.py +364 -0
- data/vendor/pygments-main/pygments/lexers/php.py +35 -20
- data/vendor/pygments-main/pygments/lexers/pointless.py +3 -2
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
- data/vendor/pygments-main/pygments/lexers/praat.py +41 -38
- data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
- data/vendor/pygments-main/pygments/lexers/prolog.py +7 -8
- data/vendor/pygments-main/pygments/lexers/promql.py +5 -12
- data/vendor/pygments-main/pygments/lexers/python.py +145 -119
- data/vendor/pygments-main/pygments/lexers/q.py +188 -0
- data/vendor/pygments-main/pygments/lexers/qlik.py +117 -0
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/r.py +4 -4
- data/vendor/pygments-main/pygments/lexers/rdf.py +3 -3
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -12
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ride.py +3 -2
- data/vendor/pygments-main/pygments/lexers/rita.py +43 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +3 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +3 -3
- data/vendor/pygments-main/pygments/lexers/robotframework.py +6 -5
- data/vendor/pygments-main/pygments/lexers/ruby.py +24 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +3 -2
- data/vendor/pygments-main/pygments/lexers/sas.py +2 -2
- data/vendor/pygments-main/pygments/lexers/savi.py +170 -0
- data/vendor/pygments-main/pygments/lexers/scdoc.py +4 -7
- data/vendor/pygments-main/pygments/lexers/scripting.py +24 -21
- data/vendor/pygments-main/pygments/lexers/sgf.py +6 -6
- data/vendor/pygments-main/pygments/lexers/shell.py +29 -21
- data/vendor/pygments-main/pygments/lexers/sieve.py +14 -4
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +5 -3
- data/vendor/pygments-main/pygments/lexers/smithy.py +5 -6
- data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/solidity.py +3 -7
- data/vendor/pygments-main/pygments/lexers/sophia.py +103 -0
- data/vendor/pygments-main/pygments/lexers/special.py +2 -5
- data/vendor/pygments-main/pygments/lexers/spice.py +71 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +212 -17
- data/vendor/pygments-main/pygments/lexers/srcinfo.py +62 -0
- data/vendor/pygments-main/pygments/lexers/stata.py +4 -3
- data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -3
- data/vendor/pygments-main/pygments/lexers/tal.py +74 -0
- data/vendor/pygments-main/pygments/lexers/tcl.py +21 -16
- data/vendor/pygments-main/pygments/lexers/teal.py +9 -8
- data/vendor/pygments-main/pygments/lexers/templates.py +62 -29
- data/vendor/pygments-main/pygments/lexers/teraterm.py +12 -20
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -2
- data/vendor/pygments-main/pygments/lexers/text.py +3 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +41 -7
- data/vendor/pygments-main/pygments/lexers/textfmts.py +7 -5
- data/vendor/pygments-main/pygments/lexers/theorem.py +42 -36
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +2 -4
- data/vendor/pygments-main/pygments/lexers/tlb.py +57 -0
- data/vendor/pygments-main/pygments/lexers/tnt.py +3 -4
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -4
- data/vendor/pygments-main/pygments/lexers/typoscript.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ul4.py +267 -0
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
- data/vendor/pygments-main/pygments/lexers/urbi.py +4 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +2 -1
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +4 -3
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webassembly.py +5 -5
- data/vendor/pygments-main/pygments/lexers/webidl.py +2 -1
- data/vendor/pygments-main/pygments/lexers/webmisc.py +90 -71
- data/vendor/pygments-main/pygments/lexers/wgsl.py +407 -0
- data/vendor/pygments-main/pygments/lexers/whiley.py +2 -1
- data/vendor/pygments-main/pygments/lexers/wowtoc.py +120 -0
- data/vendor/pygments-main/pygments/lexers/wren.py +99 -0
- data/vendor/pygments-main/pygments/lexers/x10.py +5 -6
- data/vendor/pygments-main/pygments/lexers/xorg.py +3 -2
- data/vendor/pygments-main/pygments/lexers/yang.py +6 -5
- data/vendor/pygments-main/pygments/lexers/zig.py +3 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -1
- data/vendor/pygments-main/pygments/plugin.py +28 -9
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +2 -2
- data/vendor/pygments-main/pygments/sphinxext.py +63 -1
- data/vendor/pygments-main/pygments/style.py +7 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +19 -5
- data/vendor/pygments-main/pygments/styles/abap.py +2 -2
- data/vendor/pygments-main/pygments/styles/algol.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
- data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -3
- data/vendor/pygments-main/pygments/styles/borland.py +1 -3
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -3
- data/vendor/pygments-main/pygments/styles/default.py +13 -14
- data/vendor/pygments-main/pygments/styles/dracula.py +102 -0
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +75 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/gh_dark.py +107 -0
- data/vendor/pygments-main/pygments/styles/gruvbox.py +4 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +3 -2
- data/vendor/pygments-main/pygments/styles/lilypond.py +56 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -3
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/material.py +1 -2
- data/vendor/pygments-main/pygments/styles/monokai.py +3 -3
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -3
- data/vendor/pygments-main/pygments/styles/native.py +11 -11
- data/vendor/pygments-main/pygments/styles/nord.py +150 -0
- data/vendor/pygments-main/pygments/styles/onedark.py +59 -0
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -6
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -6
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -3
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +3 -3
- data/vendor/pygments-main/pygments/styles/rrt.py +3 -2
- data/vendor/pygments-main/pygments/styles/sas.py +2 -4
- data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
- data/vendor/pygments-main/pygments/styles/staroffice.py +26 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +4 -6
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/tango.py +2 -3
- data/vendor/pygments-main/pygments/styles/trac.py +1 -3
- data/vendor/pygments-main/pygments/styles/vim.py +1 -2
- data/vendor/pygments-main/pygments/styles/vs.py +1 -2
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -3
- data/vendor/pygments-main/pygments/styles/zenburn.py +4 -6
- data/vendor/pygments-main/pygments/token.py +2 -1
- data/vendor/pygments-main/pygments/unistring.py +4 -6
- data/vendor/pygments-main/pygments/util.py +27 -5
- metadata +59 -14
- data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +0 -524
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/INSTALLER +0 -0
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/REQUESTED +0 -0
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/top_level.txt +0 -0
@@ -30,10 +30,13 @@
|
|
30
30
|
- highlights errors in the output and notification levels;
|
31
31
|
- handles psql backslash commands.
|
32
32
|
|
33
|
+
`PostgresExplainLexer`
|
34
|
+
A lexer to highlight Postgres execution plan.
|
35
|
+
|
33
36
|
The ``tests/examplefiles`` contains a few test files with data to be
|
34
37
|
parsed by these lexers.
|
35
38
|
|
36
|
-
:copyright: Copyright 2006-
|
39
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
37
40
|
:license: BSD, see LICENSE for details.
|
38
41
|
"""
|
39
42
|
|
@@ -45,7 +48,7 @@ from pygments.token import Punctuation, Whitespace, Text, Comment, Operator, \
|
|
45
48
|
from pygments.lexers import get_lexer_by_name, ClassNotFound
|
46
49
|
|
47
50
|
from pygments.lexers._postgres_builtins import KEYWORDS, DATATYPES, \
|
48
|
-
PSEUDO_TYPES, PLPGSQL_KEYWORDS
|
51
|
+
PSEUDO_TYPES, PLPGSQL_KEYWORDS, EXPLAIN_KEYWORDS
|
49
52
|
from pygments.lexers._mysql_builtins import \
|
50
53
|
MYSQL_CONSTANTS, \
|
51
54
|
MYSQL_DATATYPES, \
|
@@ -57,10 +60,11 @@ from pygments.lexers import _tsql_builtins
|
|
57
60
|
|
58
61
|
|
59
62
|
__all__ = ['PostgresLexer', 'PlPgsqlLexer', 'PostgresConsoleLexer',
|
60
|
-
'
|
61
|
-
'SqliteConsoleLexer', 'RqlLexer']
|
63
|
+
'PostgresExplainLexer', 'SqlLexer', 'TransactSqlLexer',
|
64
|
+
'MySqlLexer', 'SqliteConsoleLexer', 'RqlLexer']
|
62
65
|
|
63
66
|
line_re = re.compile('.*?\n')
|
67
|
+
sqlite_prompt_re = re.compile(r'^(?:sqlite| ...)>(?= )')
|
64
68
|
|
65
69
|
language_re = re.compile(r"\s+LANGUAGE\s+'?(\w+)'?", re.IGNORECASE)
|
66
70
|
|
@@ -161,7 +165,7 @@ class PostgresLexer(PostgresBase, RegexLexer):
|
|
161
165
|
flags = re.IGNORECASE
|
162
166
|
tokens = {
|
163
167
|
'root': [
|
164
|
-
(r'\s+',
|
168
|
+
(r'\s+', Whitespace),
|
165
169
|
(r'--.*\n?', Comment.Single),
|
166
170
|
(r'/\*', Comment.Multiline, 'multiline-comments'),
|
167
171
|
(r'(' + '|'.join(s.replace(" ", r"\s+")
|
@@ -254,7 +258,7 @@ class PsqlRegexLexer(PostgresBase, RegexLexer):
|
|
254
258
|
(r'\\[^\s]+', Keyword.Pseudo, 'psql-command'))
|
255
259
|
tokens['psql-command'] = [
|
256
260
|
(r'\n', Text, 'root'),
|
257
|
-
(r'\s+',
|
261
|
+
(r'\s+', Whitespace),
|
258
262
|
(r'\\[^\s]+', Keyword.Pseudo),
|
259
263
|
(r""":(['"]?)[a-z]\w*\b\1""", Name.Variable),
|
260
264
|
(r"'(''|[^'])*'", String.Single),
|
@@ -367,6 +371,192 @@ class PostgresConsoleLexer(Lexer):
|
|
367
371
|
return
|
368
372
|
|
369
373
|
|
374
|
+
class PostgresExplainLexer(RegexLexer):
|
375
|
+
"""
|
376
|
+
Handle PostgreSQL EXPLAIN output
|
377
|
+
|
378
|
+
.. versionadded:: 2.15
|
379
|
+
"""
|
380
|
+
|
381
|
+
name = 'PostgreSQL EXPLAIN dialect'
|
382
|
+
aliases = ['postgres-explain']
|
383
|
+
filenames = ['*.explain']
|
384
|
+
mimetypes = ['text/x-postgresql-explain']
|
385
|
+
|
386
|
+
tokens = {
|
387
|
+
'root': [
|
388
|
+
(r'(:|\(|\)|ms|kB|->|\.\.|\,)', Punctuation),
|
389
|
+
(r'(\s+)', Whitespace),
|
390
|
+
|
391
|
+
# This match estimated cost and effectively measured counters with ANALYZE
|
392
|
+
# Then, we move to instrumentation state
|
393
|
+
(r'(cost)(=?)', bygroups(Name.Class, Punctuation), 'instrumentation'),
|
394
|
+
(r'(actual)( )(=?)', bygroups(Name.Class, Whitespace, Punctuation), 'instrumentation'),
|
395
|
+
|
396
|
+
# Misc keywords
|
397
|
+
(words(('actual', 'Memory Usage', 'Memory', 'Buckets', 'Batches',
|
398
|
+
'originally', 'row', 'rows', 'Hits', 'Misses',
|
399
|
+
'Evictions', 'Overflows'), suffix=r'\b'),
|
400
|
+
Comment.Single),
|
401
|
+
|
402
|
+
(r'(hit|read|dirtied|written|write|time|calls)(=)', bygroups(Comment.Single, Operator)),
|
403
|
+
(r'(shared|temp|local)', Keyword.Pseudo),
|
404
|
+
|
405
|
+
# We move to sort state in order to emphasize specific keywords (especially disk access)
|
406
|
+
(r'(Sort Method)(: )', bygroups(Comment.Preproc, Punctuation), 'sort'),
|
407
|
+
|
408
|
+
# These keywords can be followed by an object, like a table
|
409
|
+
(r'(Sort Key|Group Key|Presorted Key|Hash Key)(:)( )',
|
410
|
+
bygroups(Comment.Preproc, Punctuation, Whitespace), 'object_name'),
|
411
|
+
(r'(Cache Key|Cache Mode)(:)( )', bygroups(Comment, Punctuation, Whitespace), 'object_name'),
|
412
|
+
|
413
|
+
# These keywords can be followed by a predicate
|
414
|
+
(words(('Join Filter', 'Subplans Removed', 'Filter', 'Merge Cond',
|
415
|
+
'Hash Cond', 'Index Cond', 'Recheck Cond', 'Heap Blocks',
|
416
|
+
'TID Cond', 'Run Condition', 'Order By', 'Function Call',
|
417
|
+
'Table Function Call', 'Inner Unique', 'Params Evaluated',
|
418
|
+
'Single Copy', 'Sampling', 'One-Time Filter', 'Output',
|
419
|
+
'Relations', 'Remote SQL'), suffix=r'\b'),
|
420
|
+
Comment.Preproc, 'predicate'),
|
421
|
+
|
422
|
+
# Special keyword to handle ON CONFLICT
|
423
|
+
(r'Conflict ', Comment.Preproc, 'conflict'),
|
424
|
+
|
425
|
+
# Special keyword for InitPlan or SubPlan
|
426
|
+
(r'(InitPlan|SubPlan)( )(\d+)( )',
|
427
|
+
bygroups(Keyword, Whitespace, Number.Integer, Whitespace),
|
428
|
+
'init_plan'),
|
429
|
+
|
430
|
+
(words(('Sort Method', 'Join Filter', 'Planning time',
|
431
|
+
'Planning Time', 'Execution time', 'Execution Time',
|
432
|
+
'Workers Planned', 'Workers Launched', 'Buffers',
|
433
|
+
'Planning', 'Worker', 'Query Identifier', 'Time',
|
434
|
+
'Full-sort Groups'), suffix=r'\b'), Comment.Preproc),
|
435
|
+
|
436
|
+
# Emphasize these keywords
|
437
|
+
|
438
|
+
(words(('Rows Removed by Join Filter', 'Rows Removed by Filter',
|
439
|
+
'Rows Removed by Index Recheck',
|
440
|
+
'Heap Fetches', 'never executed'),
|
441
|
+
suffix=r'\b'), Name.Exception),
|
442
|
+
(r'(I/O Timings)(:)( )', bygroups(Name.Exception, Punctuation, Whitespace)),
|
443
|
+
|
444
|
+
(words(EXPLAIN_KEYWORDS, suffix=r'\b'), Keyword),
|
445
|
+
|
446
|
+
# join keywords
|
447
|
+
(r'((Right|Left|Full|Semi|Anti) Join)', Keyword.Type),
|
448
|
+
(r'(Parallel |Async |Finalize |Partial )', Comment.Preproc),
|
449
|
+
(r'Backward', Comment.Preproc),
|
450
|
+
(r'(Intersect|Except|Hash)', Comment.Preproc),
|
451
|
+
|
452
|
+
(r'(CTE)( )(\w*)?', bygroups(Comment, Whitespace, Name.Variable)),
|
453
|
+
|
454
|
+
|
455
|
+
# Treat "on" and "using" as a punctuation
|
456
|
+
(r'(on|using)', Punctuation, 'object_name'),
|
457
|
+
|
458
|
+
|
459
|
+
# strings
|
460
|
+
(r"'(''|[^'])*'", String.Single),
|
461
|
+
# numbers
|
462
|
+
(r'\d+\.\d+', Number.Float),
|
463
|
+
(r'(\d+)', Number.Integer),
|
464
|
+
|
465
|
+
# boolean
|
466
|
+
(r'(true|false)', Name.Constant),
|
467
|
+
# explain header
|
468
|
+
(r'\s*QUERY PLAN\s*\n\s*-+', Comment.Single),
|
469
|
+
# Settings
|
470
|
+
(r'(Settings)(:)( )', bygroups(Comment.Preproc, Punctuation, Whitespace), 'setting'),
|
471
|
+
|
472
|
+
# Handle JIT counters
|
473
|
+
(r'(JIT|Functions|Options|Timing)(:)', bygroups(Comment.Preproc, Punctuation)),
|
474
|
+
(r'(Inlining|Optimization|Expressions|Deforming|Generation|Emission|Total)', Keyword.Pseudo),
|
475
|
+
|
476
|
+
# Handle Triggers counters
|
477
|
+
(r'(Trigger)( )(\S*)(:)( )',
|
478
|
+
bygroups(Comment.Preproc, Whitespace, Name.Variable, Punctuation, Whitespace)),
|
479
|
+
|
480
|
+
],
|
481
|
+
'expression': [
|
482
|
+
# matches any kind of parenthesized expression
|
483
|
+
# the first opening paren is matched by the 'caller'
|
484
|
+
(r'\(', Punctuation, '#push'),
|
485
|
+
(r'\)', Punctuation, '#pop'),
|
486
|
+
(r'(never executed)', Name.Exception),
|
487
|
+
(r'[^)(]+', Comment),
|
488
|
+
],
|
489
|
+
'object_name': [
|
490
|
+
|
491
|
+
# This is a cost or analyze measure
|
492
|
+
(r'(\(cost)(=?)', bygroups(Name.Class, Punctuation), 'instrumentation'),
|
493
|
+
(r'(\(actual)( )(=?)', bygroups(Name.Class, Whitespace, Punctuation), 'instrumentation'),
|
494
|
+
|
495
|
+
# if object_name is parenthesized, mark opening paren as
|
496
|
+
# punctuation, call 'expression', and exit state
|
497
|
+
(r'\(', Punctuation, 'expression'),
|
498
|
+
(r'(on)', Punctuation),
|
499
|
+
# matches possibly schema-qualified table and column names
|
500
|
+
(r'\w+(\.\w+)*( USING \S+| \w+ USING \S+)', Name.Variable),
|
501
|
+
(r'\"?\w+\"?(?:\.\"?\w+\"?)?', Name.Variable),
|
502
|
+
(r'\'\S*\'', Name.Variable),
|
503
|
+
|
504
|
+
# if we encounter a comma, another object is listed
|
505
|
+
(r',\n', Punctuation, 'object_name'),
|
506
|
+
(r',', Punctuation, 'object_name'),
|
507
|
+
|
508
|
+
# special case: "*SELECT*"
|
509
|
+
(r'"\*SELECT\*( \d+)?"(.\w+)?', Name.Variable),
|
510
|
+
(r'"\*VALUES\*(_\d+)?"(.\w+)?', Name.Variable),
|
511
|
+
(r'"ANY_subquery"', Name.Variable),
|
512
|
+
|
513
|
+
# Variable $1 ...
|
514
|
+
(r'\$\d+', Name.Variable),
|
515
|
+
# cast
|
516
|
+
(r'::\w+', Name.Variable),
|
517
|
+
(r' +', Whitespace),
|
518
|
+
(r'"', Punctuation),
|
519
|
+
(r'\[\.\.\.\]', Punctuation),
|
520
|
+
(r'\)', Punctuation, '#pop'),
|
521
|
+
],
|
522
|
+
'predicate': [
|
523
|
+
# if predicate is parenthesized, mark paren as punctuation
|
524
|
+
(r'(\()([^\n]*)(\))', bygroups(Punctuation, Name.Variable, Punctuation), '#pop'),
|
525
|
+
# otherwise color until newline
|
526
|
+
(r'[^\n]*', Name.Variable, '#pop'),
|
527
|
+
],
|
528
|
+
'instrumentation': [
|
529
|
+
(r'=|\.\.', Punctuation),
|
530
|
+
(r' +', Whitespace),
|
531
|
+
(r'(rows|width|time|loops)', Name.Class),
|
532
|
+
(r'\d+\.\d+', Number.Float),
|
533
|
+
(r'(\d+)', Number.Integer),
|
534
|
+
(r'\)', Punctuation, '#pop'),
|
535
|
+
],
|
536
|
+
'conflict': [
|
537
|
+
(r'(Resolution: )(\w+)', bygroups(Comment.Preproc, Name.Variable)),
|
538
|
+
(r'(Arbiter \w+:)', Comment.Preproc, 'object_name'),
|
539
|
+
(r'(Filter: )', Comment.Preproc, 'predicate'),
|
540
|
+
],
|
541
|
+
'setting': [
|
542
|
+
(r'([a-z_]*?)(\s*)(=)(\s*)(\'.*?\')', bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String)),
|
543
|
+
(r'\, ', Punctuation),
|
544
|
+
],
|
545
|
+
'init_plan': [
|
546
|
+
(r'\(', Punctuation),
|
547
|
+
(r'returns \$\d+(,\$\d+)?', Name.Variable),
|
548
|
+
(r'\)', Punctuation, '#pop'),
|
549
|
+
],
|
550
|
+
'sort': [
|
551
|
+
(r':|kB', Punctuation),
|
552
|
+
(r'(quicksort|top-N|heapsort|Average|Memory|Peak)', Comment.Prepoc),
|
553
|
+
(r'(external|merge|Disk|sort)', Name.Exception),
|
554
|
+
(r'(\d+)', Number.Integer),
|
555
|
+
(r' +', Whitespace),
|
556
|
+
],
|
557
|
+
}
|
558
|
+
|
559
|
+
|
370
560
|
class SqlLexer(RegexLexer):
|
371
561
|
"""
|
372
562
|
Lexer for Structured Query Language. Currently, this lexer does
|
@@ -381,7 +571,7 @@ class SqlLexer(RegexLexer):
|
|
381
571
|
flags = re.IGNORECASE
|
382
572
|
tokens = {
|
383
573
|
'root': [
|
384
|
-
(r'\s+',
|
574
|
+
(r'\s+', Whitespace),
|
385
575
|
(r'--.*\n?', Comment.Single),
|
386
576
|
(r'/\*', Comment.Multiline, 'multiline-comments'),
|
387
577
|
(words((
|
@@ -495,6 +685,9 @@ class SqlLexer(RegexLexer):
|
|
495
685
|
]
|
496
686
|
}
|
497
687
|
|
688
|
+
def analyse_text(self, text):
|
689
|
+
return
|
690
|
+
|
498
691
|
|
499
692
|
class TransactSqlLexer(RegexLexer):
|
500
693
|
"""
|
@@ -509,8 +702,8 @@ class TransactSqlLexer(RegexLexer):
|
|
509
702
|
filenames = ['*.sql']
|
510
703
|
mimetypes = ['text/x-tsql']
|
511
704
|
|
512
|
-
|
513
|
-
|
705
|
+
flags = re.IGNORECASE
|
706
|
+
|
514
707
|
tokens = {
|
515
708
|
'root': [
|
516
709
|
(r'\s+', Whitespace),
|
@@ -596,7 +789,7 @@ class MySqlLexer(RegexLexer):
|
|
596
789
|
flags = re.IGNORECASE
|
597
790
|
tokens = {
|
598
791
|
'root': [
|
599
|
-
(r'\s+',
|
792
|
+
(r'\s+', Whitespace),
|
600
793
|
|
601
794
|
# Comments
|
602
795
|
(r'(?:#|--\s+).*', Comment.Single),
|
@@ -652,14 +845,14 @@ class MySqlLexer(RegexLexer):
|
|
652
845
|
|
653
846
|
# Exceptions; these words tokenize differently in different contexts.
|
654
847
|
(r'\b(set)(?!\s*\()', Keyword),
|
655
|
-
(r'\b(character)(\s+)(set)\b', bygroups(Keyword,
|
848
|
+
(r'\b(character)(\s+)(set)\b', bygroups(Keyword, Whitespace, Keyword)),
|
656
849
|
# In all other known cases, "SET" is tokenized by MYSQL_DATATYPES.
|
657
850
|
|
658
851
|
(words(MYSQL_CONSTANTS, prefix=r'\b', suffix=r'\b'), Name.Constant),
|
659
852
|
(words(MYSQL_DATATYPES, prefix=r'\b', suffix=r'\b'), Keyword.Type),
|
660
853
|
(words(MYSQL_KEYWORDS, prefix=r'\b', suffix=r'\b'), Keyword),
|
661
854
|
(words(MYSQL_FUNCTIONS, prefix=r'\b', suffix=r'\b(\s*)(\()'),
|
662
|
-
bygroups(Name.Function,
|
855
|
+
bygroups(Name.Function, Whitespace, Punctuation)),
|
663
856
|
|
664
857
|
# Schema object names
|
665
858
|
#
|
@@ -782,9 +975,12 @@ class SqliteConsoleLexer(Lexer):
|
|
782
975
|
insertions = []
|
783
976
|
for match in line_re.finditer(data):
|
784
977
|
line = match.group()
|
785
|
-
|
978
|
+
prompt_match = sqlite_prompt_re.match(line)
|
979
|
+
if prompt_match is not None:
|
786
980
|
insertions.append((len(curcode),
|
787
|
-
[(0, Generic.Prompt, line[:
|
981
|
+
[(0, Generic.Prompt, line[:7])]))
|
982
|
+
insertions.append((len(curcode),
|
983
|
+
[(7, Whitespace, ' ')]))
|
788
984
|
curcode += line[8:]
|
789
985
|
else:
|
790
986
|
if curcode:
|
@@ -805,11 +1001,10 @@ class RqlLexer(RegexLexer):
|
|
805
1001
|
"""
|
806
1002
|
Lexer for Relation Query Language.
|
807
1003
|
|
808
|
-
`RQL <http://www.logilab.org/project/rql>`_
|
809
|
-
|
810
1004
|
.. versionadded:: 2.0
|
811
1005
|
"""
|
812
1006
|
name = 'RQL'
|
1007
|
+
url = 'http://www.logilab.org/project/rql'
|
813
1008
|
aliases = ['rql']
|
814
1009
|
filenames = ['*.rql']
|
815
1010
|
mimetypes = ['text/x-rql']
|
@@ -817,7 +1012,7 @@ class RqlLexer(RegexLexer):
|
|
817
1012
|
flags = re.IGNORECASE
|
818
1013
|
tokens = {
|
819
1014
|
'root': [
|
820
|
-
(r'\s+',
|
1015
|
+
(r'\s+', Whitespace),
|
821
1016
|
(r'(DELETE|SET|INSERT|UNION|DISTINCT|WITH|WHERE|BEING|OR'
|
822
1017
|
r'|AND|NOT|GROUPBY|HAVING|ORDERBY|ASC|DESC|LIMIT|OFFSET'
|
823
1018
|
r'|TODAY|NOW|TRUE|FALSE|NULL|EXISTS)\b', Keyword),
|
@@ -0,0 +1,62 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.srcinfo
|
3
|
+
~~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexers for .SRCINFO files used by Arch Linux Packages.
|
6
|
+
|
7
|
+
The description of the format can be found in the wiki:
|
8
|
+
https://wiki.archlinux.org/title/.SRCINFO
|
9
|
+
|
10
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
11
|
+
:license: BSD, see LICENSE for details.
|
12
|
+
"""
|
13
|
+
|
14
|
+
from pygments.lexer import RegexLexer, words
|
15
|
+
from pygments.token import Text, Comment, Keyword, Name, Operator, Whitespace
|
16
|
+
|
17
|
+
__all__ = ['SrcinfoLexer']
|
18
|
+
|
19
|
+
keywords = (
|
20
|
+
'pkgbase', 'pkgname',
|
21
|
+
'pkgver', 'pkgrel', 'epoch',
|
22
|
+
'pkgdesc', 'url', 'install', 'changelog',
|
23
|
+
'arch', 'groups', 'license', 'noextract', 'options', 'backup',
|
24
|
+
'validpgpkeys',
|
25
|
+
)
|
26
|
+
|
27
|
+
architecture_dependent_keywords = (
|
28
|
+
'source', 'depends', 'checkdepends', 'makedepends', 'optdepends',
|
29
|
+
'provides', 'conflicts', 'replaces',
|
30
|
+
'md5sums', 'sha1sums', 'sha224sums', 'sha256sums', 'sha384sums',
|
31
|
+
'sha512sums',
|
32
|
+
)
|
33
|
+
|
34
|
+
|
35
|
+
class SrcinfoLexer(RegexLexer):
|
36
|
+
"""Lexer for .SRCINFO files used by Arch Linux Packages.
|
37
|
+
|
38
|
+
.. versionadded:: 2.11
|
39
|
+
"""
|
40
|
+
|
41
|
+
name = 'Srcinfo'
|
42
|
+
aliases = ['srcinfo']
|
43
|
+
filenames = ['.SRCINFO']
|
44
|
+
|
45
|
+
tokens = {
|
46
|
+
'root': [
|
47
|
+
(r'\s+', Whitespace),
|
48
|
+
(r'#.*', Comment.Single),
|
49
|
+
(words(keywords), Keyword, 'assignment'),
|
50
|
+
(words(architecture_dependent_keywords, suffix=r'_\w+'),
|
51
|
+
Keyword, 'assignment'),
|
52
|
+
(r'\w+', Name.Variable, 'assignment'),
|
53
|
+
],
|
54
|
+
'assignment': [
|
55
|
+
(r' +', Whitespace),
|
56
|
+
(r'=', Operator, 'value'),
|
57
|
+
],
|
58
|
+
'value': [
|
59
|
+
(r' +', Whitespace),
|
60
|
+
(r'.*', Text, '#pop:2'),
|
61
|
+
],
|
62
|
+
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexer for Stata
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -20,7 +20,7 @@ __all__ = ['StataLexer']
|
|
20
20
|
|
21
21
|
class StataLexer(RegexLexer):
|
22
22
|
"""
|
23
|
-
For
|
23
|
+
For Stata do files.
|
24
24
|
|
25
25
|
.. versionadded:: 2.2
|
26
26
|
"""
|
@@ -29,7 +29,8 @@ class StataLexer(RegexLexer):
|
|
29
29
|
# - https://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
|
30
30
|
# - https://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
|
31
31
|
|
32
|
-
name
|
32
|
+
name = 'Stata'
|
33
|
+
url = 'http://www.stata.com/'
|
33
34
|
aliases = ['stata', 'do']
|
34
35
|
filenames = ['*.do', '*.ado']
|
35
36
|
mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexer for SuperCollider
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -19,15 +19,16 @@ __all__ = ['SuperColliderLexer']
|
|
19
19
|
|
20
20
|
class SuperColliderLexer(RegexLexer):
|
21
21
|
"""
|
22
|
-
For
|
22
|
+
For SuperCollider source code.
|
23
23
|
|
24
24
|
.. versionadded:: 2.1
|
25
25
|
"""
|
26
26
|
|
27
27
|
name = 'SuperCollider'
|
28
|
+
url = 'http://supercollider.github.io/'
|
28
29
|
aliases = ['supercollider', 'sc']
|
29
30
|
filenames = ['*.sc', '*.scd']
|
30
|
-
mimetypes = ['application/supercollider', 'text/supercollider'
|
31
|
+
mimetypes = ['application/supercollider', 'text/supercollider']
|
31
32
|
|
32
33
|
flags = re.DOTALL | re.MULTILINE
|
33
34
|
tokens = {
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.tal
|
3
|
+
~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexer for Uxntal
|
6
|
+
|
7
|
+
.. versionadded:: 2.12
|
8
|
+
|
9
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
10
|
+
:license: BSD, see LICENSE for details.
|
11
|
+
"""
|
12
|
+
|
13
|
+
from pygments.lexer import RegexLexer, words
|
14
|
+
from pygments.token import Comment, Keyword, Name, String, Number, \
|
15
|
+
Punctuation, Whitespace, Literal
|
16
|
+
|
17
|
+
__all__ = ['TalLexer']
|
18
|
+
|
19
|
+
|
20
|
+
class TalLexer(RegexLexer):
|
21
|
+
"""
|
22
|
+
For `Uxntal <https://wiki.xxiivv.com/site/uxntal.html>`_ source code.
|
23
|
+
|
24
|
+
.. versionadded:: 2.12
|
25
|
+
"""
|
26
|
+
|
27
|
+
name = 'Tal'
|
28
|
+
aliases = ['tal', 'uxntal']
|
29
|
+
filenames = ['*.tal']
|
30
|
+
mimetypes = ['text/x-uxntal']
|
31
|
+
|
32
|
+
instructions = [
|
33
|
+
'BRK', 'LIT', 'INC', 'POP', 'DUP', 'NIP', 'SWP', 'OVR', 'ROT',
|
34
|
+
'EQU', 'NEQ', 'GTH', 'LTH', 'JMP', 'JCN', 'JSR', 'STH',
|
35
|
+
'LDZ', 'STZ', 'LDR', 'STR', 'LDA', 'STA', 'DEI', 'DEO',
|
36
|
+
'ADD', 'SUB', 'MUL', 'DIV', 'AND', 'ORA', 'EOR', 'SFT'
|
37
|
+
]
|
38
|
+
|
39
|
+
tokens = {
|
40
|
+
# the comment delimiters must not be adjacent to non-space characters.
|
41
|
+
# this means ( foo ) is a valid comment but (foo) is not. this also
|
42
|
+
# applies to nested comments.
|
43
|
+
'comment': [
|
44
|
+
(r'(?<!\S)\((?!\S)', Comment.Multiline, '#push'), # nested comments
|
45
|
+
(r'(?<!\S)\)(?!\S)', Comment.Multiline, '#pop'), # nested comments
|
46
|
+
(r'[^()]+', Comment.Multiline), # comments
|
47
|
+
(r'[()]+', Comment.Multiline), # comments
|
48
|
+
],
|
49
|
+
'root': [
|
50
|
+
(r'\s+', Whitespace), # spaces
|
51
|
+
(r'(?<!\S)\((?!\S)', Comment.Multiline, 'comment'), # comments
|
52
|
+
(words(instructions, prefix=r'(?<!\S)', suffix=r'2?k?r?(?!\S)'),
|
53
|
+
Keyword.Reserved), # instructions
|
54
|
+
(r'[][{}](?!\S)', Punctuation), # delimiters
|
55
|
+
(r'#([0-9a-f]{2}){1,2}(?!\S)', Number.Hex), # integer
|
56
|
+
(r'"\S+', String), # raw string
|
57
|
+
(r"'\S(?!\S)", String.Char), # raw char
|
58
|
+
(r'([0-9a-f]{2}){1,2}(?!\S)', Literal), # raw integer
|
59
|
+
(r'[|$][0-9a-f]{1,4}(?!\S)', Keyword.Declaration), # abs/rel pad
|
60
|
+
(r'%\S+', Name.Decorator), # macro
|
61
|
+
(r'@\S+', Name.Function), # label
|
62
|
+
(r'&\S+', Name.Label), # sublabel
|
63
|
+
(r'/\S+', Name.Tag), # spacer
|
64
|
+
(r'\.\S+', Name.Variable.Magic), # zero page addr
|
65
|
+
(r',\S+', Name.Variable.Instance), # rel addr
|
66
|
+
(r';\S+', Name.Variable.Global), # abs addr
|
67
|
+
(r':\S+', Literal), # raw addr
|
68
|
+
(r'~\S+', Keyword.Namespace), # include
|
69
|
+
(r'\S+', Name),
|
70
|
+
]
|
71
|
+
}
|
72
|
+
|
73
|
+
def analyse_text(text):
|
74
|
+
return '|0100' in text[:500]
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for Tcl and related languages.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -24,23 +24,27 @@ class TclLexer(RegexLexer):
|
|
24
24
|
"""
|
25
25
|
|
26
26
|
keyword_cmds_re = words((
|
27
|
-
'after', 'apply', 'array', 'break', 'catch', 'continue', 'elseif',
|
28
|
-
'
|
29
|
-
'
|
30
|
-
'
|
27
|
+
'after', 'apply', 'array', 'break', 'catch', 'continue', 'elseif',
|
28
|
+
'else', 'error', 'eval', 'expr', 'for', 'foreach', 'global', 'if',
|
29
|
+
'namespace', 'proc', 'rename', 'return', 'set', 'switch', 'then',
|
30
|
+
'trace', 'unset', 'update', 'uplevel', 'upvar', 'variable', 'vwait',
|
31
|
+
'while'), prefix=r'\b', suffix=r'\b')
|
31
32
|
|
32
33
|
builtin_cmds_re = words((
|
33
|
-
'append', 'bgerror', 'binary', 'cd', 'chan', 'clock', 'close',
|
34
|
-
'
|
35
|
-
'
|
36
|
-
'
|
37
|
-
'
|
38
|
-
'
|
39
|
-
'
|
40
|
-
'
|
41
|
-
'
|
34
|
+
'append', 'bgerror', 'binary', 'cd', 'chan', 'clock', 'close',
|
35
|
+
'concat', 'dde', 'dict', 'encoding', 'eof', 'exec', 'exit', 'fblocked',
|
36
|
+
'fconfigure', 'fcopy', 'file', 'fileevent', 'flush', 'format', 'gets',
|
37
|
+
'glob', 'history', 'http', 'incr', 'info', 'interp', 'join', 'lappend',
|
38
|
+
'lassign', 'lindex', 'linsert', 'list', 'llength', 'load', 'loadTk',
|
39
|
+
'lrange', 'lrepeat', 'lreplace', 'lreverse', 'lsearch', 'lset', 'lsort',
|
40
|
+
'mathfunc', 'mathop', 'memory', 'msgcat', 'open', 'package', 'pid',
|
41
|
+
'pkg::create', 'pkg_mkIndex', 'platform', 'platform::shell', 'puts',
|
42
|
+
'pwd', 're_syntax', 'read', 'refchan', 'regexp', 'registry', 'regsub',
|
43
|
+
'scan', 'seek', 'socket', 'source', 'split', 'string', 'subst', 'tell',
|
44
|
+
'time', 'tm', 'unknown', 'unload'), prefix=r'\b', suffix=r'\b')
|
42
45
|
|
43
46
|
name = 'Tcl'
|
47
|
+
url = 'https://www.tcl.tk/about/language.html'
|
44
48
|
aliases = ['tcl']
|
45
49
|
filenames = ['*.tcl', '*.rvt']
|
46
50
|
mimetypes = ['text/x-tcl', 'text/x-script.tcl', 'application/x-tcl']
|
@@ -84,8 +88,9 @@ class TclLexer(RegexLexer):
|
|
84
88
|
(r'0[0-7]+', Number.Oct),
|
85
89
|
(r'\d+\.\d+', Number.Float),
|
86
90
|
(r'\d+', Number.Integer),
|
87
|
-
(r'\$
|
88
|
-
(r'
|
91
|
+
(r'\$[\w.:-]+', Name.Variable),
|
92
|
+
(r'\$\{[\w.:-]+\}', Name.Variable),
|
93
|
+
(r'[\w.,@:-]+', Text),
|
89
94
|
],
|
90
95
|
'params': [
|
91
96
|
(r';', Keyword, '#pop'),
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
"""
|
3
2
|
pygments.lexers.teal
|
4
3
|
~~~~~~~~~~~~~~~~~~~~
|
5
4
|
|
6
5
|
Lexer for TEAL.
|
7
6
|
|
8
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
9
8
|
:license: BSD, see LICENSE for details.
|
10
9
|
"""
|
11
10
|
|
12
11
|
from pygments.lexer import RegexLexer, bygroups, include, words
|
13
|
-
from pygments.token import Comment, Name, Number, String, Text, Keyword
|
12
|
+
from pygments.token import Comment, Name, Number, String, Text, Keyword, \
|
13
|
+
Whitespace
|
14
14
|
|
15
15
|
__all__ = ['TealLexer']
|
16
16
|
|
17
|
+
|
17
18
|
class TealLexer(RegexLexer):
|
18
19
|
"""
|
19
|
-
For the
|
20
|
-
<https://developer.algorand.org/docs/reference/teal/specification/>`
|
20
|
+
For the Transaction Execution Approval Language (TEAL)
|
21
21
|
|
22
22
|
For more information about the grammar, see:
|
23
23
|
https://github.com/algorand/go-algorand/blob/master/data/transactions/logic/assembler.go
|
@@ -25,6 +25,7 @@ class TealLexer(RegexLexer):
|
|
25
25
|
.. versionadded:: 2.9
|
26
26
|
"""
|
27
27
|
name = 'teal'
|
28
|
+
url = 'https://developer.algorand.org/docs/reference/teal/specification/'
|
28
29
|
aliases = ['teal']
|
29
30
|
filenames = ['*.teal']
|
30
31
|
|
@@ -49,7 +50,7 @@ class TealLexer(RegexLexer):
|
|
49
50
|
'AssetTotal', 'AssetDecimals', 'AssetDefaultFrozen', 'AssetUnitName',
|
50
51
|
'AssetName', 'AssetURL', 'AssetMetadataHash', 'AssetManager',
|
51
52
|
'AssetReserve', 'AssetFreeze', 'AssetClawback',
|
52
|
-
}, suffix
|
53
|
+
}, suffix=r'\b')
|
53
54
|
|
54
55
|
identifier = r'[^ \t\n]+(?=\/\/)|[^ \t\n]+'
|
55
56
|
newline = r'\r?\n'
|
@@ -69,7 +70,7 @@ class TealLexer(RegexLexer):
|
|
69
70
|
(r'"', String, 'string'),
|
70
71
|
(r'(b(?:ase)?(?:32|64) ?)(\(?[a-zA-Z0-9+/=]+\)?)',
|
71
72
|
bygroups(String.Affix, String.Other)),
|
72
|
-
(r'[A-Z2-7]{58}', Number),
|
73
|
+
(r'[A-Z2-7]{58}', Number), # address
|
73
74
|
(r'0x[\da-fA-F]+', Number.Hex),
|
74
75
|
(r'\d+', Number.Integer),
|
75
76
|
(keywords, Keyword),
|
@@ -82,7 +83,7 @@ class TealLexer(RegexLexer):
|
|
82
83
|
(r'"', String, '#pop'),
|
83
84
|
],
|
84
85
|
'whitespace': [
|
85
|
-
(r'[ \t]+',
|
86
|
+
(r'[ \t]+', Whitespace),
|
86
87
|
(r'//[^\n]+', Comment.Single),
|
87
88
|
],
|
88
89
|
}
|