# HG changeset patch # User wenzelm # Date 1512484177 -3600 # Node ID 82283d52b4d6a77b935c351dd999acae69bb0ee7 # Parent f2384ad1dff42155151c6825204b2fc09df94878 system option for default command tags; diff -r f2384ad1dff4 -r 82283d52b4d6 etc/options --- a/etc/options Tue Dec 05 15:19:32 2017 +0100 +++ b/etc/options Tue Dec 05 15:29:37 2017 +0100 @@ -11,6 +11,8 @@ -- "document output directory (default within $ISABELLE_BROWSER_INFO tree)" option document_variants : string = "document" -- "alternative document variants (separated by colons)" +option document_tags : string = "" + -- "default command tags (separated by commas)" option thy_output_display : bool = false -- "indicate output as multi-line display-style material" diff -r f2384ad1dff4 -r 82283d52b4d6 src/Pure/ROOT.ML --- a/src/Pure/ROOT.ML Tue Dec 05 15:19:32 2017 +0100 +++ b/src/Pure/ROOT.ML Tue Dec 05 15:29:37 2017 +0100 @@ -280,6 +280,7 @@ (*theory documents*) ML_file "Thy/term_style.ML"; ML_file "Isar/outer_syntax.ML"; +ML_file "ML/ml_antiquotations.ML"; ML_file "Thy/thy_output.ML"; ML_file "Thy/document_antiquotations.ML"; ML_file "General/graph_display.ML"; @@ -311,7 +312,6 @@ subsection "Miscellaneous tools and packages for Pure Isabelle"; ML_file "ML/ml_pp.ML"; -ML_file "ML/ml_antiquotations.ML"; ML_file "ML/ml_thms.ML"; ML_file "ML/ml_file.ML"; diff -r f2384ad1dff4 -r 82283d52b4d6 src/Pure/Thy/thy_output.ML --- a/src/Pure/Thy/thy_output.ML Tue Dec 05 15:19:32 2017 +0100 +++ b/src/Pure/Thy/thy_output.ML Tue Dec 05 15:29:37 2017 +0100 @@ -314,7 +314,8 @@ in -fun present_span keywords span state state' (tag_stack, active_tag, newline, buffer, present_cont) = +fun present_span keywords document_tags span state state' + (tag_stack, active_tag, newline, buffer, present_cont) = let val present = fold (fn (tok, (flag, 0)) => Buffer.add (output_token state' tok) @@ -332,7 +333,7 @@ if is_some tag' then tag' else if cmd_name = "end" andalso not (Toplevel.is_toplevel state') then NONE else - (case Keyword.command_tags keywords cmd_name of + (case Keyword.command_tags keywords cmd_name @ document_tags of default_tag :: _ => SOME default_tag | [] => if Keyword.is_vacuous keywords cmd_name andalso Toplevel.is_proof state @@ -486,8 +487,10 @@ (* present commands *) + val document_tags = space_explode "," (Options.default_string @{system_option document_tags}); + fun present_command tr span st st' = - Toplevel.setmp_thread_position tr (present_span keywords span st st'); + Toplevel.setmp_thread_position tr (present_span keywords document_tags span st st'); fun present _ [] = I | present st (((tr, st'), span) :: rest) = present_command tr span st st' #> present st' rest;