1#ifndef PLUGINS_DOC_PRINTER_H
2#define PLUGINS_DOC_PRINTER_H
10namespace downward::cli::plugins {
15 virtual void print_category(
const FeatureType& type)
const;
16 virtual void print_subcategory(
17 const std::string& subcategory_name,
18 const std::vector<const Feature*>& plugins)
const;
19 virtual void print_feature(
const Feature& plugin)
const;
23 const Registry& registry;
25 virtual void print_synopsis(
const Feature& plugin)
const = 0;
26 virtual void print_usage(
const Feature& plugin)
const = 0;
27 virtual void print_arguments(
const Feature& plugin)
const = 0;
28 virtual void print_notes(
const Feature& plugin)
const = 0;
29 virtual void print_language_features(
const Feature& plugin)
const = 0;
30 virtual void print_properties(
const Feature& plugin)
const = 0;
32 print_category_header(
const std::string& category_name)
const = 0;
33 virtual void print_category_synopsis(
34 const std::string& synopsis,
35 bool supports_variable_binding)
const = 0;
36 virtual void print_category_footer()
const = 0;
39 DocPrinter(std::ostream& out, Registry& registry);
40 virtual ~DocPrinter() =
default;
42 void print_all()
const;
43 void print_feature(
const std::string& name)
const;
46class Txt2TagsPrinter :
public DocPrinter {
48 virtual void print_synopsis(
const Feature& plugin)
const override;
49 virtual void print_usage(
const Feature& plugin)
const override;
50 virtual void print_arguments(
const Feature& plugin)
const override;
51 virtual void print_notes(
const Feature& plugin)
const override;
52 virtual void print_language_features(
const Feature& plugin)
const override;
53 virtual void print_properties(
const Feature& plugin)
const override;
55 print_category_header(
const std::string& category_name)
const override;
56 virtual void print_category_synopsis(
57 const std::string& synopsis,
58 bool supports_variable_binding)
const override;
59 virtual void print_category_footer()
const override;
62 Txt2TagsPrinter(std::ostream& out, Registry& registry);
65class PlainPrinter :
public DocPrinter {
70 virtual void print_synopsis(
const Feature& plugin)
const override;
71 virtual void print_usage(
const Feature& plugin)
const override;
72 virtual void print_arguments(
const Feature& plugin)
const override;
73 virtual void print_notes(
const Feature& plugin)
const override;
74 virtual void print_language_features(
const Feature& plugin)
const override;
75 virtual void print_properties(
const Feature& plugin)
const override;
77 print_category_header(
const std::string& category_name)
const override;
78 virtual void print_category_synopsis(
79 const std::string& synopsis,
80 bool supports_variable_binding)
const override;
81 virtual void print_category_footer()
const override;
84 PlainPrinter(std::ostream& out, Registry& registry,
bool print_all =
false);