summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/piton/piton.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/piton/piton.sty')
-rw-r--r--Master/texmf-dist/tex/lualatex/piton/piton.sty53
1 files changed, 47 insertions, 6 deletions
diff --git a/Master/texmf-dist/tex/lualatex/piton/piton.sty b/Master/texmf-dist/tex/lualatex/piton/piton.sty
index a6e37299a30..a08dfe9a85d 100644
--- a/Master/texmf-dist/tex/lualatex/piton/piton.sty
+++ b/Master/texmf-dist/tex/lualatex/piton/piton.sty
@@ -19,8 +19,8 @@
%% LaTeX version 2005/12/01 or later.
%% -------------------------------------------
%%
-\def\PitonFileVersion{2.8}
-\def\PitonFileDate{2024/04/14}
+\def\PitonFileVersion{3.0}
+\def\PitonFileDate{2024/04/29}
\NeedsTeXFormat{LaTeX2e}
@@ -723,8 +723,42 @@
{ \dim_eval:n { \g__piton_tmp_width_dim } }
}
}
-\NewDocumentCommand { \NewPitonLanguage } { m m }
- { \lua_now:e { piton.new_language("#1","\lua_escape:n{#2}") } }
+\NewDocumentCommand { \NewPitonLanguage } { O { } m ! o }
+ {
+ \tl_if_novalue:nTF { #3 }
+ { \__piton_NewPitonLanguage:nnn { #1 } { #2 } }
+ { \__piton_NewPitonLanguage:nnnnn { #1 } { #2 } { #3 } }
+ }
+\prop_new:N \g__piton_languages_prop
+\cs_new_protected:Npn \__piton_NewPitonLanguage:nnn #1 #2 #3
+ {
+ \tl_set:Nx \l_tmpa_tl
+ {
+ \tl_if_blank:nF { #1 } { [ \str_lowercase:n { #1 } ] }
+ \str_lowercase:n { #2 }
+ }
+ \prop_gput:Non \g__piton_languages_prop \l_tmpa_tl { #3 }
+ \exp_args:NV \__piton_NewPitonLanguage:nn \l_tmpa_tl { #3 }
+ }
+\cs_new_protected:Npn \__piton_NewPitonLanguage:nn #1 #2
+ {
+ \hook_gput_code:nnn { begindocument } { . }
+ { \lua_now:e { piton.new_language("#1","\lua_escape:n{#2}") } }
+ }
+\cs_new_protected:Npn \__piton_NewPitonLanguage:nnnnn #1 #2 #3 #4 #5
+ {
+ \tl_set:Nx \l_tmpa_tl
+ {
+ \tl_if_blank:nF { #3 } { [ \str_lowercase:n { #3 } ] }
+ \str_lowercase:n { #4 }
+ }
+ \prop_get:NoNTF \g__piton_languages_prop \l_tmpa_tl \l_tmpb_tl
+ { \__piton_NewPitonLanguage:nnno { #1 } { #2 } { #5 } \l_tmpb_tl }
+ { \__piton_error:n { Language~not~defined } }
+ }
+\cs_new_protected:Npn \__piton_NewPitonLanguage:nnnn #1 #2 #3 #4
+ { \__piton_NewPitonLanguage:nnn { #1 } { #2 } { #4 , #3 } }
+\cs_generate_variant:Nn \__piton_NewPitonLanguage:nnnn { n n n o }
\NewDocumentCommand { \piton } { }
{ \peek_meaning:NTF \bgroup \__piton_piton_standard \__piton_piton_verbatim }
\NewDocumentCommand { \__piton_piton_standard } { m }
@@ -1168,7 +1202,7 @@
String.Short ,
TypeParameter ,
UserFunction ,
- directive
+ Directive
}
\clist_map_inline:Nn \g__piton_styles_clist
@@ -1234,7 +1268,7 @@
TypeParameter = \color[HTML]{336666} \itshape ,
Preproc = \color[HTML]{AA6600} \slshape ,
Identifier = \__piton_identifier:n ,
- directive = \color[HTML]{AA6600} ,
+ Directive = \color[HTML]{AA6600} ,
UserFunction = ,
Prompt = ,
ParseAgain.noCR = \__piton_piton_no_cr:n ,
@@ -1323,6 +1357,13 @@
\token_to_str:N \piton\ but~there~is~no~environment~
{piton}.~This~error~is~fatal.
}
+\__piton_msg_new:nn { Language~not~defined }
+ {
+ Language~not~defined \\
+ The~language~'\l_tmpa_tl'~has~not~been~defined~previoulsy.\\
+ If~you~go~on,~your~command~\token_to_str:N \NewPitonLanguage\
+ will~be~ignored.
+ }
\__piton_msg_new:nn { bad~version~of~piton.lua }
{
Bad~number~version~of~'piton.lua'\\