summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-10-30 20:02:30 +0000
committerKarl Berry <karl@freefriends.org>2024-10-30 20:02:30 +0000
commitccb2a96d62edb0571258e006144b80d384b9ab02 (patch)
treeaa49982b52430232f57543bea9dafd2a2102ae8c /Master/texmf-dist/tex/latex
parent828c32f131a2821ffbe6744f6dce6695fb910bb3 (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.sty152
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}%