20#include "cli_config.h"
21#include "commands/argument.h"
22#include "commands/argument_group.h"
23#include "commands/command.h"
24#include "commands/docwriting/docformatter.h"
25#include "commands/flag_argument.h"
26#include "commands/option_argument.h"
27#include "commands/positional_argument.h"
29namespace cli::commands::docwriting
43 void setAppFormatter(std::unique_ptr<AbstractCliAppDocFormatter> formatter);
72 std::string_view fullCommandPath)
const;
79 std::string_view fullCommandPath)
const;
114 std::string
generateAppDocString(
const std::vector<const cli::commands::Command *> &commands)
const;
129 std::unique_ptr<AbstractCommandFormatter> commandFormatterPtr =
130 std::make_unique<DefaultCommandFormatter>();
131 std::unique_ptr<AbstractArgDocFormatter<FlagArgument>> flagFormatterPtr =
132 std::make_unique<DefaultFlagFormatter>();
133 std::unique_ptr<AbstractArgDocFormatter<OptionArgumentBase>> optionFormatterPtr =
134 std::make_unique<DefaultOptionFormatter>();
135 std::unique_ptr<AbstractArgDocFormatter<PositionalArgumentBase>> positionalFormatterPtr =
136 std::make_unique<DefaultPositionalFormatter>();
137 std::unique_ptr<AbstractCliAppDocFormatter> appFormatterPtr = std::make_unique<DefaultCliAppDocFormatter>();
Represents a command in the CLI application.
Definition command.h:36
Represents a flag argument in the CLI.
Definition flag_argument.h:31
Untemplated base class for option arguments in the CLI. Used to store all option arguments in a singl...
Definition option_argument.h:33
Untemplated Base class for positional arguments in the CLI. Used to store all positional arguments in...
Definition positional_argument.h:34
Documentation writer for CLI commands. Consists of formatters for commands and arguments.
Definition docwriting.h:34
void setCommandFormatter(std::unique_ptr< AbstractCommandFormatter > formatter)
Set the formatter for command arguments.
Definition docwriting.cpp:44
void setOptionFormatter(std::unique_ptr< AbstractArgDocFormatter< OptionArgumentBase > > formatter)
Set the formatter for option arguments.
Definition docwriting.cpp:27
std::string generateAppDocString(const std::vector< const cli::commands::Command * > &commands) const
Generate the documentation string for the application.
Definition docwriting.cpp:99
void setFlagFormatter(std::unique_ptr< AbstractArgDocFormatter< FlagArgument > > formatter)
Set the formatter for flag arguments.
Definition docwriting.cpp:39
std::string generateArgDocString(const FlagArgument &argument) const
Generate the argument documentation string for a flag argument.
Definition docwriting.cpp:74
std::string generateLongDocString(const Command &command, std::string_view fullCommandPath) const
Generate the long documentation string for a command.
Definition docwriting.cpp:62
std::string generateCommandDocString(const Command &command) const
Generate the documentation string for a command.
Definition docwriting.cpp:104
void setPositionalFormatter(std::unique_ptr< AbstractArgDocFormatter< PositionalArgumentBase > > formatter)
Set the formatter for positional arguments.
Definition docwriting.cpp:33
void setDocStrings(Command &command, std::string_view fullCommandPath) const
Build and set the documentation strings for a command.
Definition docwriting.cpp:49
std::string generateAppVersionString() const
Generate the version string for the application.
Definition docwriting.cpp:109
std::string generateOptionsDocString(const FlagArgument &argument) const
Generate the documentation string for a flag argument.
Definition docwriting.cpp:69
DocWriter(const CliConfig &config)
Construct a new DocWriter object.
Definition docwriting.h:39
std::string generateShortDocString(const Command &command, std::string_view fullCommandPath) const
Generate the short documentation string for a command.
Definition docwriting.cpp:55
void setAppFormatter(std::unique_ptr< AbstractCliAppDocFormatter > formatter)
Set the formatter for the application documentation.
Definition docwriting.cpp:114
Holds the configuration for the CLI application.
Definition cli_config.h:24