summaryrefslogtreecommitdiff
path: root/macros/generic/expkv-bundle/preamble-lst.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/expkv-bundle/preamble-lst.tex')
-rw-r--r--macros/generic/expkv-bundle/preamble-lst.tex218
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}}}