diff options
author | Karl Berry <karl@freefriends.org> | 2024-10-30 20:02:30 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-10-30 20:02:30 +0000 |
commit | ccb2a96d62edb0571258e006144b80d384b9ab02 (patch) | |
tree | aa49982b52430232f57543bea9dafd2a2102ae8c /Master/texmf-dist/tex/latex | |
parent | 828c32f131a2821ffbe6744f6dce6695fb910bb3 (diff) |
minted (30oct24)
git-svn-id: svn://tug.org/texlive/trunk@72709 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/minted/minted.sty | 152 |
1 files changed, 111 insertions, 41 deletions
diff --git a/Master/texmf-dist/tex/latex/minted/minted.sty b/Master/texmf-dist/tex/latex/minted/minted.sty index 276842f472c..562bae3eca8 100644 --- a/Master/texmf-dist/tex/latex/minted/minted.sty +++ b/Master/texmf-dist/tex/latex/minted/minted.sty @@ -26,11 +26,11 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{minted} - [2024/10/07 v3.1.2 Yet another Pygments shim for LaTeX] + [2024/10/29 v3.2.0 Yet another Pygments shim for LaTeX] \RequirePackage{catchfile} \RequirePackage{etoolbox} -\RequirePackage{fvextra}[2024/09/05] -\RequirePackage{latex2pydata}[2024/05/16] +\RequirePackage{fvextra}[2024/10/16] +\RequirePackage{latex2pydata}[2024/10/16] \RequirePackage{pdftexcmds} \RequirePackage{pgfkeys} \RequirePackage{pgfopts} @@ -374,7 +374,7 @@ \def\minted@ifalphanumhyphenunderscore@false#1\FV@Sentinel#2#3{#3} \let\minted@lexer\@empty \newbool{minted@isinline} -\newcounter{minted@tmpcodebufferlength} +\def\minted@tmpcodebufferlength{0} \newbool{minted@canexec} \booltrue{minted@canexec} \ifnum\csname c_sys_shell_escape_int\endcsname=0\relax @@ -384,10 +384,20 @@ \ifbool{minted@placeholder}{\boolfalse{minted@canexec}}{} \ifbool{minted@verbatim}{\boolfalse{minted@canexec}}{} \def\minted@ShellEscapeMaybeMessages#1{% + \ifbool{minted@debug}% + {\immediate\typeout{% + minted debug: shell escape at + \ifx\CurrentFile\@empty\else\CurrentFile\space\fi line \the\inputlineno: #1}}% + {}% \let\minted@exec@warning\relax \let\minted@exec@error\relax \ifbool{minted@canexec}{\ShellEscape{#1}\minted@inputexecmessages}{}} \def\minted@ShellEscapeNoMessages#1{% + \ifbool{minted@debug}% + {\immediate\typeout{% + minted debug: shell escape at + \ifx\CurrentFile\@empty\else\CurrentFile\space\fi line \the\inputlineno: #1}}% + {}% \ifbool{minted@canexec}{\ShellEscape{#1}}{}} \def\minted@execarg@debug{% \ifbool{minted@debug}{\detokenize{ --debug }}{}} @@ -457,18 +467,27 @@ \minted@ensureatletter{% \InputIfFileExists{\MintedConfigFilename}{}{}}% \ifx\minted@executable@version\relax - \expandafter\minted@detectconfig@noexecutable + \expandafter\minted@detectconfig@noexecutableorerrlog \else \expandafter\minted@detectconfig@ii \fi} -\def\minted@detectconfig@noexecutable{% +\def\minted@detectconfig@noexecutableorerrlog{% \global\boolfalse{minted@canexec}% \ifnum\csname c_sys_shell_escape_int\endcsname=1\relax - \minted@error{minted v3+ executable is not installed or is not added to PATH}% + \expandafter\@firstofttwo \else - \minted@error{minted v3+ executable is not installed, is not added to PATH, - or is not permitted with restricted shell escape}% - \fi} + \expandafter\@secondoftwo + \fi + {\IfFileExists{\MintedErrlogFilename}% + {\minted@error{minted v3+ executable is not installed or is not added to PATH, + or there was an unexpected error (check "\MintedErrlogFilename")}}% + {\minted@error{minted v3+ executable is not installed or is not added to PATH}}}% + {\IfFileExists{\MintedErrlogFilename}% + {\minted@error{minted v3+ executable is not installed, is not added to PATH, + or is not permitted with restricted shell escape; + or there was an unexpected error (check "\MintedErrlogFilename")}}% + {\minted@error{minted v3+ executable is not installed, is not added to PATH, + or is not permitted with restricted shell escape}}}} \def\minted@detectconfig@ii{% \ifx\minted@timestamp\minted@config@timestamp \expandafter\minted@detectconfig@iii @@ -483,7 +502,7 @@ upgrade to TeX distribution that supports \detokenize{TEXMF_OUTPUT_DIRECTORY} or set environment variable \detokenize{TEXMF_OUTPUT_DIRECTORY} manually)}% \else - \expandafter\minted@detectconfig@noexecutable + \expandafter\minted@detectconfig@noexecutableorerrlog \fi} \def\minted@detectconfig@iii{% \minted@exec@cleanconfig @@ -956,6 +975,13 @@ \mintedpgfkeyscreate{py}{ autogobble<true>=false, encoding=utf8, + extrakeywords=, + extrakeywordsconstant=, + extrakeywordsdeclaration=, + extrakeywordsnamespace=, + extrakeywordspseudo=, + extrakeywordsreserved=, + extrakeywordstype=, funcnamehighlighting<true>=true, gobble=0, gobblefilter=0, @@ -1018,30 +1044,70 @@ \providecommand{\minted@def@optcl}[4][]{% \minted@warning{Macro \string\minted@def@optcl\space is deprecated with minted v3 and no longer has any effect}} -\newcounter{minted@numcachefiles} +\newbool{minted@didcreatefiles} +\def\minted@numcachefiles{0} \def\minted@addcachefilename#1{% \ifbool{minted@canexec}% - {\stepcounter{minted@numcachefiles}% - \expandafter - \xdef\csname minted@cachefile\arabic{minted@numcachefiles}\endcsname{#1}}% + {\xdef\minted@numcachefiles{\the\numexpr\minted@numcachefiles+1\relax}% + \expandafter\xdef\csname minted@cachefile\minted@numcachefiles\endcsname{#1}% + \edef\minted@tmp{\pdf@mdfivesum{#1}}% + \expandafter\minted@cachechecksum@update\expandafter{\minted@tmp}}% {}} +\let\minted@cachechecksum\relax +\ifcsname mintedoldcachechecksum\endcsname +\else + \let\mintedoldcachechecksum\relax +\fi +\edef\minted@cachechecksum@files{\pdf@mdfivesum{}} +\expandafter\let\expandafter\minted@intfromhex\csname int_from_hex:n\endcsname +\expandafter\let\expandafter\minted@inttoHex\csname int_to_Hex:n\endcsname +\expandafter\let\expandafter\minted@intmod\csname int_mod:nn\endcsname +\def\minted@intmodsixteen#1{\minted@intmod{#1}{16}} +\def\minted@cachechecksum@update#1{% + \xdef\minted@cachechecksum@files{% + \expandafter\minted@cachechecksum@files@calc + \minted@cachechecksum@files\FV@Sentinel#1\FV@Sentinel}% + \xdef\minted@cachechecksum{% + \detokenize\expandafter{\minted@cachechecksum@files}% + \detokenize{:}% + \detokenize\expandafter{\minted@numcachefiles}}} +\def\minted@cachechecksum@files@calc#1#2\FV@Sentinel#3#4\FV@Sentinel{% + \minted@inttoHex{% + \the\numexpr + \minted@intmodsixteen{\minted@intfromhex{#1}+\minted@intfromhex{#3}}% + \relax}% + \if\relax\detokenize{#2}\relax + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi + {\minted@cachechecksum@files@calc#2\FV@Sentinel#4\FV@Sentinel}} \def\minted@clean{% \ifbool{minted@canexec}% - {\ifbool{minted@diddetectconfig}{\minted@clean@i}{}}% + {\ifbool{minted@didcreatefiles}% + {\minted@clean@i}% + {\ifbool{minted@fasthighlightmode}% + {\minted@clean@i}% + {\ifbool{minted@cache}% + {\ifx\minted@cachechecksum\mintedoldcachechecksum + \else + \expandafter\minted@clean@i + \fi}% + {}}}% + \ifbool{minted@fasthighlightmode}{}{\global\boolfalse{minted@canexec}}}% {}} \def\minted@clean@i{% - \ifnum\value{minted@numcachefiles}>0\relax + \ifnum\minted@numcachefiles>0\relax \expandafter\minted@savecachelist \fi \ifbool{minted@fasthighlightmode}% {}% - {\ifnum\value{minted@numcachefiles}>0\relax + {\ifnum\minted@numcachefiles>0\relax \expandafter\minted@exec@clean \else \expandafter\minted@exec@cleantemp - \fi - \global\boolfalse{minted@canexec}}% - \setcounter{minted@numcachefiles}{0}} + \fi}% + \gdef\minted@numcachefiles{0}} \def\minted@savecachelist{% \pydatasetfilename{\MintedDataFilename}% \minted@fasthighlightmode@checkstart @@ -1054,7 +1120,7 @@ \pydatawritemlvaluestart \pydatawritemlvalueline{[}% \setcounter{minted@tmpcnt}{1}% - \loop\unless\ifnum\value{minted@tmpcnt}>\value{minted@numcachefiles}\relax + \loop\unless\ifnum\value{minted@tmpcnt}>\minted@numcachefiles\relax \expandafter\minted@savecachelist@writecachefile\expandafter{% \csname minted@cachefile\arabic{minted@tmpcnt}\endcsname}% \expandafter\global\expandafter @@ -1071,9 +1137,13 @@ \gdef\minted@savecachelist@writecachefile#1{% \expandafter\pydatawritemlvalueline\expandafter{\expandafter"#1",}} \endgroup -\AfterEndDocument{% +\AddToHook{enddocument/afterlastpage}{% \minted@clean - \minted@fasthighlightmode@checkend} + \minted@fasthighlightmode@checkend + \ifbool{minted@cache}% + {\immediate\write\@auxout{% + \xdef\string\mintedoldcachechecksum{\string\detokenize{\minted@cachechecksum}}}}% + {}} \def\minted@patch@PygmentsZsq{% \ifcsname\minted@styleprefix Zsq\endcsname \ifcsstring{\minted@styleprefix Zsq}{\char`\'}{\minted@patch@PygmentsZsq@i}{}% @@ -1201,6 +1271,7 @@ {\pydataclosefilename{\MintedDataFilename}% \begingroup \minted@exec@styledef + \global\booltrue{minted@didcreatefiles}% \ifx\minted@exec@warning\relax \else \expandafter\minted@exec@warning @@ -1310,7 +1381,7 @@ \pydatabufferkey{code}% \pydatabuffermlvaluestart \setcounter{minted@tmpcnt}{1}% - \loop\unless\ifnum\value{minted@tmpcnt}>\value{minted@tmpcodebufferlength}\relax + \loop\unless\ifnum\value{minted@tmpcnt}>\minted@tmpcodebufferlength\relax \expandafter\let\expandafter \minted@tmp\csname minted@tmpcodebufferline\arabic{minted@tmpcnt}\endcsname \expandafter\pydatabuffermlvalueline\expandafter{\minted@tmp}% @@ -1396,6 +1467,7 @@ {\pydataclosefilename{\MintedDataFilename}% \begingroup \minted@exec@highlight + \global\booltrue{minted@didcreatefiles}% \IfFileExists{\minted@highlightfilepath}% {\ifx\minted@exec@warning\relax \else @@ -1482,25 +1554,23 @@ \endgroup \def\minted@iffasthighlightmode@buffertempfile@iv{% \begingroup - \setcounter{minted@tmpcodebufferlength}{0}% + \gdef\minted@tmpcodebufferlength{0}% \openin\minted@intempfile=\minted@inputfilepath \endlinechar=-1% \let\do\@makeother\FVExtraDoSpecials \loop\unless\ifeof\minted@intempfile \read\minted@intempfile to\minted@intempfileline - \stepcounter{minted@tmpcodebufferlength}% + \xdef\minted@tmpcodebufferlength{\the\numexpr\minted@tmpcodebufferlength+1\relax}% \expandafter\global\expandafter\let\csname - minted@tmpcodebufferline\arabic{minted@tmpcodebufferlength}% + minted@tmpcodebufferline\minted@tmpcodebufferlength \endcsname\minted@intempfileline \repeat \closein\minted@intempfile \expandafter\ifx\csname - minted@tmpcodebufferline\arabic{minted@tmpcodebufferlength}% - \endcsname\@empty + minted@tmpcodebufferline\minted@tmpcodebufferlength\endcsname\@empty \expandafter\global\expandafter\let\csname - minted@tmpcodebufferline\arabic{minted@tmpcodebufferlength}% - \endcsname\minted@undefined - \addtocounter{minted@tmpcodebufferlength}{-1}% + minted@tmpcodebufferline\minted@tmpcodebufferlength\endcsname\minted@undefined + \xdef\minted@tmpcodebufferlength{\the\numexpr\minted@tmpcodebufferlength-1\relax}% \fi \endgroup \edef\minted@inputfilemdfivesum@check{\pdf@filemdfivesum{\minted@inputfilepath}}% @@ -1510,7 +1580,7 @@ \expandafter\@firstofone \fi {\VerbatimClearBuffer[buffername=minted@tmpcodebuffer]}% - \ifnum\value{minted@tmpcodebufferlength}>0\relax + \ifnum\minted@tmpcodebufferlength>0\relax \expandafter\@firstofone \else \expandafter\@gobble @@ -1520,7 +1590,7 @@ \pydatabufferkey{code}% \pydatabuffermlvaluestart \setcounter{minted@tmpcnt}{1}% - \loop\unless\ifnum\value{minted@tmpcnt}>\value{minted@tmpcodebufferlength}\relax + \loop\unless\ifnum\value{minted@tmpcnt}>\minted@tmpcodebufferlength\relax \expandafter\let\expandafter \minted@tmp\csname minted@tmpcodebufferline\arabic{minted@tmpcnt}\endcsname \expandafter\pydatabuffermlvalueline\expandafter{\minted@tmp}% @@ -1564,10 +1634,10 @@ \FVExtraRetokenizeVArg{\RobustMintInlineProcess@highlight@i}{\FV@CatCodes}}{#3}} \def\RobustMintInlineProcess@highlight@i#1{% \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}% - \setcounter{minted@tmpcodebufferlength}{1}% + \gdef\minted@tmpcodebufferlength{1}% \let\minted@highlight@fallback\RobustMintInlineProcess@highlight@fallback \minted@highlight - \setcounter{minted@tmpcodebufferlength}{0}% + \gdef\minted@tmpcodebufferlength{0}% \endgroup} \def\RobustMintInlineProcess@highlight@fallback{% \minted@useadditionalfvoptsnopy @@ -1616,10 +1686,10 @@ \FVExtraRetokenizeVArg{\RobustMintProcess@highlight@i}{\FV@CatCodes}}{#3}} \def\RobustMintProcess@highlight@i#1{% \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}% - \setcounter{minted@tmpcodebufferlength}{1}% + \gdef\minted@tmpcodebufferlength{1}% \let\minted@highlight@fallback\RobustMintProcess@highlight@fallback \minted@highlight - \setcounter{minted@tmpcodebufferlength}{0}% + \gdef\minted@tmpcodebufferlength{0}% \endgroup} \def\RobustMintProcess@highlight@fallback{% \minted@useadditionalfvoptsnopy @@ -1638,10 +1708,10 @@ \FVExtraRetokenizeVArg{\RobustMintProcess@verbatim@i}{\FV@CatCodes}}{#3}} \def\RobustMintProcess@verbatim@i#1{% \expandafter\def\csname minted@tmpcodebufferline1\endcsname{#1}% - \setcounter{minted@tmpcodebufferlength}{1}% + \gdef\minted@tmpcodebufferlength{1}% \minted@codewrapper{% \VerbatimInsertBuffer[buffername=minted@tmpcodebuffer,insertenvname=\minted@envname]}% - \setcounter{minted@tmpcodebufferlength}{0}% + \gdef\minted@tmpcodebufferlength{0}% \endgroup} \ifbool{minted@placeholder}% {\let\RobustMintProcess\RobustMintProcess@placeholder}% |