diff options
Diffstat (limited to 'macros/generic/expkv-bundle/preamble-lst.tex')
-rw-r--r-- | macros/generic/expkv-bundle/preamble-lst.tex | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/macros/generic/expkv-bundle/preamble-lst.tex b/macros/generic/expkv-bundle/preamble-lst.tex new file mode 100644 index 0000000000..a94920bfff --- /dev/null +++ b/macros/generic/expkv-bundle/preamble-lst.tex @@ -0,0 +1,218 @@ +\def\mylstwd{.55em} +\lstdefinelanguage{expkv}[primitive]{TeX} + { + ,moretexcs=[2]% e-TeX + { + expanded, + numexpr, + protected, + unexpanded, + ifdefined, + detokenize, + } + ,moretexcs=[3]% plain/LaTeX/ConTeXt + { + approx, + begin,end, + cdot, + emph,empty, + item, + LaTeX, + makeatletter,makeatother,multicolumn, + newcommand,renewcommand,newdimen,newif,newcount,NewDocumentCommand, + usepackage,RequirePackage,ProvidesPackage, + raggedright, + rule, + space,stop, + smallskip,medskip,bigskip, + TeX, + textit,texttt, + usepackage, + usemodule, + @gobble,@gobbletwo,@firstofone,@empty, + ExplSyntaxOn,ExplSyntaxOff, + } + ,moretexcs=[4]% used packages + { + % xfp + fpeval, + % keyval + setkeys, + % kvsetkeys + kvsetkeys, + % color + textcolor, + % yax + defactiveparameter,storevalue,setparameterlist, + % graphics + includegraphics, + } + ,moretexcs=[5]% expkv macros + { + ekvdef,ekvdefNoVal,% + ekvlet,ekvletNoVal,ekvletkv,ekvletkvNoVal,% + ekvdefunknown,ekvdefunknownNoVal,% + ekvletunknown,ekvletunknownNoVal,% + ekvredirectunknown,ekvredirectunknownNoVal,% + ekvset,ekvsetSneaked,% + ekvsetdef,ekvsetSneakeddef,ekvsetdefSneaked,% + ekvcompile,% + ekvparse,% + ekvVersion,ekvDate,% + ekvifdefined,ekvifdefinedNoVal,ekvifdefinedset,% + ekvbreak,ekvbreakPreSneak,ekvbreakPostSneak,% + ekvsneak,ekvsneakPre,% + ekvchangeset,% + ekvmorekv,% + ekvoptarg,ekvoptargTF,% + ekvcsvloop,% + ekverr,% + ekv@name,% + } + ,moretexcs=[6]% expkv-cs macros + { + ekvcSecondaryKeys,% + ekvcSplit,ekvcSplitAndForward,ekvcSplitAndUse,% + ekvcHash,ekvcHashAndForward,ekvcHashAndUse,% + ekvcValue,ekvcValueFast,ekvcValueSplit,ekvcValueSplitFast,% + ekvcChange,% + ekvcPass,% + } + ,moretexcs=[7]% expkv-def macros + { + ekvdefinekeys + } + ,moretexcs=[8]% expkv-pop macros + { + ekvpNewParser, + ekvpDefType, + ekvpDefPrefix,ekvpDefAutoPrefix,ekvpDefPrefixStore,ekvpDefPrefixLet, + ekvpLet, + ekvpValueAlwaysRequired,ekvpDefNoValue,ekvpUseNoValueMarker, + ekvpDefNoValuePrefix,ekvpDefNoType,ekvpDefNoValue, + ekvpEOP,ekvpGobbleP,ekvpEOT,ekvpGobbleT,ekvpEOA,ekvpGobbleA, + ekvpIfNoVal, + ekvpAssertIf,ekvpAssertIfNot,ekvpAssertTF,ekvpAssertTFNot, + ekvpAssertValue,ekvpAssertNoValue, + ekvpAssertOneValue,ekvpAssertTwoValues, + ekvpParse, + } + ,moretexcs=[9]% expkv-opt macros + { + ekvoProcessOptions,% + ekvoProcessLocalOptions,ekvoProcessGlobalOptions,% + ekvoProcessFutureOptions,ekvoProcessOptionsList,% + ekvoUseUnknownHandlers,% + ekvoVersion,ekvoDate,% + } + ,alsoletter={_:} + ,moretexcs=[10]% expl3 + { + cs_new_eq:NN, + tl_count_tokens:n, + } + } +\colorlet{codeparam}{cyan!65!black} +\lstdefinestyle{expkv} + { + texcsstyle=*[5]{\bfseries\color{ekvred}} % expkv + ,texcsstyle=*[6]{\color{ekvred}} % expkv-cs + ,texcsstyle=*[7]{\color{ekvred}} % expkv-def + ,texcsstyle=*[8]{\color{ekvred}} % expkv-pop + ,texcsstyle=*[9]{\color{ekvred}} % expkv-opt + } +\lstdefinestyle{expkv-cs} + { + texcsstyle=*[5]{\color{ekvred}} % expkv + ,texcsstyle=*[6]{\bfseries\color{ekvred}} % expkv-cs + ,texcsstyle=*[7]{\color{ekvred}} % expkv-def + ,texcsstyle=*[8]{\color{ekvred}} % expkv-pop + ,texcsstyle=*[9]{\color{ekvred}} % expkv-opt + } +\lstdefinestyle{expkv-def} + { + texcsstyle=*[5]{\color{ekvred}} % expkv + ,texcsstyle=*[6]{\color{ekvred}} % expkv-cs + ,texcsstyle=*[7]{\bfseries\color{ekvred}} % expkv-def + ,texcsstyle=*[8]{\color{ekvred}} % expkv-pop + ,texcsstyle=*[9]{\color{ekvred}} % expkv-opt + } +\lstdefinestyle{expkv-pop} + { + texcsstyle=*[5]{\color{ekvred}} % expkv + ,texcsstyle=*[6]{\color{ekvred}} % expkv-cs + ,texcsstyle=*[7]{\color{ekvred}} % expkv-def + ,texcsstyle=*[8]{\bfseries\color{ekvred}} % expkv-pop + ,texcsstyle=*[9]{\color{ekvred}} % expkv-opt + } +\lstdefinestyle{expkv-opt} + { + texcsstyle=*[5]{\color{ekvred}} % expkv + ,texcsstyle=*[6]{\color{ekvred}} % expkv-cs + ,texcsstyle=*[7]{\color{ekvred}} % expkv-def + ,texcsstyle=*[8]{\color{ekvred}} % expkv-pop + ,texcsstyle=*[9]{\bfseries\color{ekvred}} % expkv-opt + } +\lstdefinestyle{expkv-all} + { + texcsstyle=*[5]{\bfseries\color{ekvred}} % expkv + ,texcsstyle=*[6]{\bfseries\color{ekvred}} % expkv-cs + ,texcsstyle=*[7]{\bfseries\color{ekvred}} % expkv-def + ,texcsstyle=*[8]{\bfseries\color{ekvred}} % expkv-pop + ,texcsstyle=*[9]{\bfseries\color{ekvred}} % expkv-opt + } +\lstset + { + ,language=expkv + ,style=expkv + ,flexiblecolumns=false + ,basewidth=\mylstwd + %,basicstyle=\fontfamily{lmtt}\selectfont + %,basicstyle=\fontfamily{GoMono-TLF}\selectfont%\itshape + %,basicstyle=\fontfamily{jkp}\selectfont%\itshape + %,basicstyle=\fontfamily{jkptt}\selectfont%\itshape + ,basicstyle=\fontfamily{txtt}\selectfont%\itshape + ,texcsstyle=*[1]{\bfseries\color{ekvgrey}} % primitives + ,texcsstyle=*[2]{\bfseries\color{ekvgrey}} % e-TeX + ,texcsstyle=*[3]{\bfseries\color{ekvgrey}} % plain/LaTeX macros + ,texcsstyle=*[4]{\bfseries\color{ekvgrey}} % macros of other packages + ,texcsstyle=*[10]{\bfseries\color{ekvgrey}} % macros of expl3 + ,commentstyle=\color[gray]{0.4} + ,literate= + {\{} {{\CodeUpBf\{}}{1} + {\}} {{\CodeUpBf\}}}{1} + {$} {{\CodeUpBf\$}}{1} + {[} {{\CodeUp[}}{1} + {]} {{\CodeUp]}}{1} + {(} {{\CodeUp(}}{1} + {)} {{\CodeUp)}}{1} + {*} {{$*$}}{1} + {1} {{\CodeUp{1}}}{1} + {2} {{\CodeUp{2}}}{1} + {3} {{\CodeUp{3}}}{1} + {4} {{\CodeUp{4}}}{1} + {5} {{\CodeUp{5}}}{1} + {6} {{\CodeUp{6}}}{1} + {7} {{\CodeUp{7}}}{1} + {8} {{\CodeUp{8}}}{1} + {9} {{\CodeUp{9}}}{1} + {0} {{\CodeUp{0}}}{1} + {##} {{\CodeColored{codeparam}{1}{\#}}}{1} + {##1}{{\CodeColored{codeparam}{2}{\#1}}}{2} + {##2}{{\CodeColored{codeparam}{2}{\#2}}}{2} + {##3}{{\CodeColored{codeparam}{2}{\#3}}}{2} + {##4}{{\CodeColored{codeparam}{2}{\#4}}}{2} + {##5}{{\CodeColored{codeparam}{2}{\#5}}}{2} + {##6}{{\CodeColored{codeparam}{2}{\#6}}}{2} + {##7}{{\CodeColored{codeparam}{2}{\#7}}}{2} + {##8}{{\CodeColored{codeparam}{2}{\#8}}}{2} + {##9}{{\CodeColored{codeparam}{2}{\#9}}}{2} + {<key>}{{$\langle$}key{$\rangle$}}{5} + {<set>}{{$\langle$}set{$\rangle$}}{5} + {<set1>}{{$\langle$}set1{$\rangle$}}{6} + {<set2>}{{$\langle$}set2{$\rangle$}}{6} + %,literate=*{<key>}{\key}{4}{<set>}{\set}{4} + } +\newcommand*\CodeColored[3]{\textcolor{#1}{\makebox[\dimexpr\mylstwd*#2]{#3}}} +\newcommand*\CodeUpBf[1]{\makebox[\mylstwd]{\textup{\textbf{#1}}}} +\newcommand*\CodeUp[1]{\makebox[\mylstwd]{\textup{#1}}} |