summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-12-06 23:56:06 +0000
committerKarl Berry <karl@freefriends.org>2017-12-06 23:56:06 +0000
commitcc862e582aa0dd7c0dee16bb5475394338a07641 (patch)
treeb03dbc5b6657d47f5c61b8fcc26f04a564ad6afd /Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
parent7ffad570b11726b0ca150867d23878fc1a949865 (diff)
l3 (7dec17)
git-svn-id: svn://tug.org/texlive/trunk@46003 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3doc.cls')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls169
1 files changed, 103 insertions, 66 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 3b94767ca26..d03dd25b8ea 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -13,14 +13,14 @@
%% this license or (at your option) any later version. The latest
%% version of this license is in the file:
%%
-%% http://www.latex-project.org/lppl.txt
+%% https://www.latex-project.org/lppl.txt
%%
%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%%
%% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project
\RequirePackage{expl3,xparse,calc}
-\ProvidesExplClass{l3doc}{2017/11/14}{}
+\ProvidesExplClass{l3doc}{2017/12/05}{}
{L3 Experimental documentation class}
\clist_new:N \g_docinput_clist
\seq_new:N \g_doc_functions_seq
@@ -42,8 +42,8 @@
\prop_new:N \g__codedoc_missing_tests_prop
\seq_new:N \g__codedoc_not_tested_seq
\seq_new:N \g__codedoc_testfiles_seq
+\bool_new:N \l__codedoc_macro_internal_set_bool
\bool_new:N \l__codedoc_macro_internal_bool
-\bool_new:N \l__codedoc_macro_aux_bool
\bool_new:N \l__codedoc_macro_TF_bool
\bool_new:N \l__codedoc_macro_pTF_bool
\bool_new:N \l__codedoc_macro_noTF_bool
@@ -56,6 +56,7 @@
\bool_new:N \g__codedoc_lmodern_bool
\bool_new:N \g__codedoc_checkfunc_bool
\bool_new:N \g__codedoc_checktest_bool
+\bool_new:N \g__codedoc_kernel_bool
\tl_new:N \l__codedoc_tmpa_tl
\tl_new:N \l__codedoc_tmpb_tl
\int_new:N \l__codedoc_tmpa_int
@@ -100,9 +101,11 @@
\cs_new_eq:NN \__codedoc_tmpa:w ?
\cs_new_eq:NN \__codedoc_tmpb:w ?
\cs_generate_variant:Nn \seq_set_split:Nnn { NoV }
+\cs_generate_variant:Nn \seq_gput_right:Nn { Nf }
\cs_generate_variant:Nn \str_case:nn { fn }
\cs_generate_variant:Nn \tl_count:n { f }
\cs_generate_variant:Nn \tl_greplace_all:Nnn { Nx , Nno }
+\cs_generate_variant:Nn \tl_if_empty:nTF { f }
\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNTF { o }
\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNT { o }
\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNF { o }
@@ -177,10 +180,19 @@
{
\str_if_eq:NNF \l__codedoc_detect_internals_tl \g__codedoc_module_name_tl
{
- \msg_warning:nnxxx { l3doc } { foreign-internal }
- { \tl_to_str:N \l__codedoc_detect_internals_cs_tl }
- { \tl_to_str:N \l__codedoc_detect_internals_tl }
- { \tl_to_str:N \g__codedoc_module_name_tl }
+ \bool_lazy_and:nnF
+ { \g__codedoc_kernel_bool }
+ {
+ \str_if_eq_x_p:nn
+ { \tl_to_str:N \l__codedoc_detect_internals_tl }
+ { kernel }
+ }
+ {
+ \msg_warning:nnxxx { l3doc } { foreign-internal }
+ { \tl_to_str:N \l__codedoc_detect_internals_cs_tl }
+ { \tl_to_str:N \l__codedoc_detect_internals_tl }
+ { \tl_to_str:N \g__codedoc_module_name_tl }
+ }
}
}
}
@@ -355,6 +367,8 @@
The~'syntax'~environment~should~only~be~used~once~in~
a~'function'~environment.
}
+\msg_new:nnn { l3doc } { deprecated-option }
+ { The~option~'#1'~has~been~deprecated~for~'#2'. }
\msg_new:nnn { l3doc } { foreign-internal }
{
A~control~sequence~of~the~form~'...__#1'~was~used.~
@@ -380,12 +394,16 @@
{ \bool_gset_true:N \g__codedoc_checktest_bool }
\DeclareOption { nochecktest }
{ \bool_gset_false:N \g__codedoc_checktest_bool }
+\DeclareOption { kernel }
+ { \bool_gset_true:N \g__codedoc_kernel_bool }
+\DeclareOption { stdmodule }
+ { \bool_gset_false:N \g__codedoc_kernel_bool }
\DeclareOption { cm-default }
{ \bool_gset_false:N \g__codedoc_lmodern_bool }
\DeclareOption { lm-default }
{ \bool_gset_true:N \g__codedoc_lmodern_bool }
\DeclareOption* { \PassOptionsToClass { \CurrentOption } { article } }
-\ExecuteOptions { full, nocheck, nochecktest, lm-default }
+\ExecuteOptions { full, kernel, nocheck, nochecktest, lm-default }
\PassOptionsToClass { a4paper } { article }
\msg_new:nnn { l3doc } { input-cfg }
{ Local~config~file~l3doc.cfg~loaded. }
@@ -663,11 +681,16 @@
}
\tl_replace_all:Nnn \l__codedoc_cmd_tl { ~ } { \@xobeysp }
\l__codedoc_cmd_tl
+ \@
}
\bool_if:NF \l__codedoc_cmd_noindex_bool
{
\quark_if_no_value:NF \l__codedoc_cmd_index_tl
- { \tl_set_eq:NN \l__codedoc_cmd_tl \l__codedoc_cmd_index_tl }
+ {
+ \tl_set:Nx \l__codedoc_cmd_tl
+ { \c_backslash_str \exp_not:o { \l__codedoc_cmd_index_tl } }
+ }
+
\exp_args:No \__codedoc_key_get:n { \l__codedoc_cmd_tl }
\quark_if_no_value:NF \l__codedoc_cmd_module_tl
{
@@ -732,7 +755,7 @@
}
\cs_new_protected:Npn \__codedoc_typeset_aux:n #1
{
- { \color[gray]{0.7} #1 }
+ { \color[gray]{0.5} #1 }
}
\cs_new_protected:Npn \__codedoc_get_hyper_target:nN #1#2
{
@@ -848,6 +871,43 @@
{ \__codedoc_macro_typeset_block:nN }
}
\cs_generate_variant:Nn \__codedoc_names_typeset_block:nN { x }
+\prg_new_conditional:Npnn \__codedoc_if_macro_internal:n #1 { p , T , F , TF }
+ {
+ \bool_if:NTF \l__codedoc_macro_internal_set_bool
+ {
+ \bool_if:NTF \l__codedoc_macro_internal_bool
+ { \prg_return_true: } { \prg_return_false: }
+ }
+ {
+ \tl_if_empty:fTF
+ {
+ \exp_after:wN \__codedoc_if_macro_internal_aux:w
+ \tl_to_str:n { #1 ~ __ }
+ }
+ { \prg_return_false: } { \prg_return_true: }
+ }
+ }
+\exp_last_unbraced:NNNNo
+ \cs_new:Npn \__codedoc_if_macro_internal_aux:w #1 { \tl_to_str:n { __ } } { }
+\cs_new_protected:Npn \__codedoc_names_block_base_map:N #1
+ {
+ \tl_map_inline:Nn \l__codedoc_names_block_tl
+ {
+ \group_begin:
+ \seq_set_eq:NN \l__codedoc_tmpa_seq ##1
+ \seq_pop:NN \l__codedoc_tmpa_seq \l__codedoc_tmpa_tl
+ \seq_get:NN \l__codedoc_tmpa_seq \l__codedoc_tmpb_tl
+ \exp_args:NNx
+ \group_end:
+ #1
+ {
+ \l__codedoc_tmpa_tl
+ \str_if_eq_x:nnF { \l__codedoc_tmpb_tl } { \scan_stop: }
+ { : \l__codedoc_tmpb_tl }
+ \bool_if:NT \l__codedoc_macro_TF_bool { TF }
+ }
+ }
+ }
\keys_define:nn { l3doc/function }
{
TF .value_forbidden:n = true ,
@@ -915,6 +975,7 @@
{ \l__codedoc_tmpa_tl }
}
\bool_set_true:N \l__codedoc_macro_internal_bool
+ \bool_set_true:N \l__codedoc_macro_internal_set_bool
}
\cs_new_protected:Npn \__codedoc_function:nnw #1#2
{
@@ -1165,13 +1226,22 @@
{
aux .value_forbidden:n = true ,
aux .code:n =
- { \bool_set_true:N \l__codedoc_macro_aux_bool } ,
+ {
+ \msg_warning:nnnn { l3doc } { deprecated-option }
+ { aux } { function/macro }
+ } ,
internal .value_forbidden:n = true ,
internal .code:n =
- { \bool_set_true:N \l__codedoc_macro_internal_bool } ,
+ {
+ \bool_set_true:N \l__codedoc_macro_internal_bool
+ \bool_set_true:N \l__codedoc_macro_internal_set_bool
+ } ,
int .value_forbidden:n = true ,
int .code:n =
- { \bool_set_true:N \l__codedoc_macro_internal_bool } ,
+ {
+ \bool_set_true:N \l__codedoc_macro_internal_bool
+ \bool_set_true:N \l__codedoc_macro_internal_set_bool
+ } ,
var .value_forbidden:n = true ,
var .code:n =
{ \bool_set_true:N \l__codedoc_macro_var_bool } ,
@@ -1222,7 +1292,6 @@
\keys_set:nn { l3doc/macro } {#1}
\__codedoc_names_get_seq:nN {#2} \l__codedoc_names_seq
\__codedoc_names_parse:
- \__codedoc_macro_adjust_internal:
\__codedoc_macro_save_names:
\__codedoc_names_typeset:
\__codedoc_macro_dump:
@@ -1231,8 +1300,8 @@
\cs_new_protected:Npn \__codedoc_macro_init:
{
\int_incr:N \l__codedoc_nested_macro_int
- \bool_set_false:N \l__codedoc_macro_aux_bool
\bool_set_false:N \l__codedoc_macro_internal_bool
+ \bool_set_false:N \l__codedoc_macro_internal_set_bool
\bool_set_false:N \l__codedoc_macro_TF_bool
\bool_set_false:N \l__codedoc_macro_pTF_bool
\bool_set_false:N \l__codedoc_macro_noTF_bool
@@ -1260,37 +1329,17 @@
{
\tl_set:Nn \l__codedoc_override_module_tl { \q_no_value }
}
-\cs_new_protected:Npn \__codedoc_macro_adjust_internal:
- {
- \bool_if:NF \l__codedoc_macro_internal_bool
- {
- \bool_if:NF \l__codedoc_macro_aux_bool
- {
- \bool_set_true:N \l__codedoc_macro_internal_bool
- \seq_map_inline:Nn \l__codedoc_names_seq
- {
- \tl_if_in:noF {##1} { \tl_to_str:n { __ } }
- { \bool_set_false:N \l__codedoc_macro_internal_bool }
- }
- }
- }
- }
\cs_new_protected:Npn \__codedoc_macro_save_names:
{
- \tl_map_inline:Nn \l__codedoc_names_block_tl
+ \tl_if_empty:NTF \l__codedoc_macro_documented_tl
+ { \__codedoc_names_block_base_map:N \__codedoc_macro_save_names_aux:n }
{
- \seq_set_eq:NN \l__codedoc_tmpa_seq ##1
- \seq_pop:NN \l__codedoc_tmpa_seq \l__codedoc_tmpa_tl
- \seq_get:NN \l__codedoc_tmpa_seq \l__codedoc_tmpb_tl
- \seq_gput_right:Nx \g__codedoc_nested_names_seq
- {
- \l__codedoc_tmpa_tl
- \str_if_eq_x:nnF { \l__codedoc_tmpb_tl } { \scan_stop: }
- { : \l__codedoc_tmpb_tl }
- \bool_if:NT \l__codedoc_macro_TF_bool { TF }
- }
+ \seq_gput_right:Nf \g__codedoc_nested_names_seq
+ { \exp_after:wN \token_to_str:N \l__codedoc_macro_documented_tl }
}
}
+\cs_new_protected:Npn \__codedoc_macro_save_names_aux:n #1
+ { \seq_gput_right:Nn \g__codedoc_nested_names_seq {#1} }
\cs_new_protected:Npn \__codedoc_macro_dump:
{
\topsep\MacroTopsep
@@ -1339,7 +1388,7 @@
\DoNotIndex {#1}
\bool_if:NT #2
{
- \bool_if:NF \l__codedoc_macro_aux_bool
+ \__codedoc_if_macro_internal:nF {#1}
{ \seq_gput_right:Nn \g_doc_macros_seq {#1} }
\hbox_set:Nw \l__codedoc_macro_index_box
\hbox_unpack_clear:N \l__codedoc_macro_index_box
@@ -1383,7 +1432,7 @@
}
\cs_new_protected:Npn \__codedoc_macroname_prefix:n #1
{
- \bool_if:NTF \l__codedoc_macro_aux_bool
+ \__codedoc_if_macro_internal:nTF {#1}
{ \__codedoc_typeset_aux:n {#1} } {#1}
}
\cs_generate_variant:Nn \__codedoc_macroname_prefix:n { o }
@@ -1450,24 +1499,22 @@
\endtrivlist
\__codedoc_macro_end_check_tested:
\int_compare:nNnT \l__codedoc_nested_macro_int = 1
- {
- \__codedoc_macro_end_style:n { \__codedoc_print_end_definition: }
- \seq_gclear:N \g__codedoc_nested_names_seq
- }
+ { \__codedoc_macro_end_style:n { \__codedoc_print_end_definition: } }
}
\cs_new_protected:Npn \__codedoc_macro_end_check_tested:
{
\bool_lazy_all:nT
{
{ \g__codedoc_checktest_bool }
- { ! \l__codedoc_macro_aux_bool }
{ ! \l__codedoc_macro_var_bool }
{ ! \l__codedoc_macro_tested_bool }
}
{
+ \seq_set_filter:NNn \l__codedoc_tmpa_seq \l__codedoc_names_seq
+ { ! \__codedoc_if_macro_internal_p:n {##1} }
\seq_gput_right:Nx \g__codedoc_not_tested_seq
{
- \seq_use:Nn \l__codedoc_names_seq { , }
+ \seq_use:Nn \l__codedoc_tmpa_seq { , }
\bool_if:NTF \l__codedoc_macro_pTF_bool {~(pTF)}
{ \bool_if:NT \l__codedoc_macro_TF_bool {~(TF)} }
}
@@ -1502,33 +1549,23 @@
}
\cs_new_protected:Npn \__codedoc_print_documented:
{
- \bool_lazy_or:nnF
- { \l__codedoc_macro_aux_bool }
- { \l__codedoc_macro_internal_bool }
+ \seq_gset_filter:NNn \g__codedoc_nested_names_seq
+ \g__codedoc_nested_names_seq
+ { ! \__codedoc_if_macro_internal_p:n {##1} }
+ \seq_if_empty:NF \g__codedoc_nested_names_seq
{
\int_set:Nn \l__codedoc_tmpa_int
{ \seq_count:N \g__codedoc_nested_names_seq }
- \tl_if_empty:NTF \l__codedoc_macro_documented_tl
- {
- \tl_set:Nx \l__codedoc_macro_documented_tl
- { \seq_item:Nn \g__codedoc_nested_names_seq { 1 } }
- }
- {
- \tl_set:Nf \l__codedoc_macro_documented_tl
- {
- \exp_after:wN \token_to_str:N
- \l__codedoc_macro_documented_tl
- }
- }
\int_compare:nNnTF \l__codedoc_tmpa_int = 1 {~This~} {~These~}
\bool_if:NTF \l__codedoc_macro_var_bool {variable} {function}
\int_compare:nNnTF \l__codedoc_tmpa_int = 1 {~is~} {s~are~}
documented~on~page~
- \__codedoc_get_hyper_target:oN
- \l__codedoc_macro_documented_tl
+ \__codedoc_get_hyper_target:xN
+ { \seq_item:Nn \g__codedoc_nested_names_seq { 1 } }
\l__codedoc_tmpa_tl
\exp_args:Nx \pageref { \l__codedoc_tmpa_tl } .
}
+ \seq_gclear:N \g__codedoc_nested_names_seq
}
\newcommand*{\DescribeOption}
{