Display list of available formatters with help for --format

This commit is contained in:
Albert Tugushev 2022-07-28 22:06:58 +02:00 committed by Anthony Sottile
parent fbb33430e6
commit 48b2919130
8 changed files with 35 additions and 4 deletions

View file

@ -132,6 +132,7 @@ class Application:
version=flake8.__version__,
plugin_versions=self.plugins.versions_str(),
parents=[self.prelim_arg_parser],
formatter_names=list(self.plugins.reporters),
)
options.register_default_options(self.option_manager)
self.option_manager.register_plugins(self.plugins)

View file

@ -220,7 +220,15 @@ def register_default_options(option_manager: OptionManager) -> None:
metavar="format",
default="default",
parse_from_config=True,
help="Format errors according to the chosen formatter.",
help=(
f"Format errors according to the chosen formatter "
f"({', '.join(sorted(option_manager.formatter_names))}) "
f"or a format string containing %%-style "
f"mapping keys (code, col, path, row, text). "
f"For example, "
f"``--format=pylint`` or ``--format='%%(path)s %%(code)s'``. "
f"(Default: %(default)s)"
),
)
add_option(

View file

@ -317,6 +317,7 @@ class OptionManager:
version: str,
plugin_versions: str,
parents: list[argparse.ArgumentParser],
formatter_names: list[str],
) -> None:
"""Initialize an instance of an OptionManager.
@ -330,6 +331,7 @@ class OptionManager:
A list of ArgumentParser objects whose arguments should also be
included.
"""
self.formatter_names = formatter_names
self.parser = argparse.ArgumentParser(
prog="flake8",
usage="%(prog)s [options] file file ...",