diff --git a/aider/args.py b/aider/args.py index 3b3e85b52..794c1627b 100644 --- a/aider/args.py +++ b/aider/args.py @@ -7,11 +7,13 @@ import sys import configargparse from aider import __version__, models +from aider.args_formatter import CustomHelpFormatter def get_parser(default_config_files, git_root): parser = configargparse.ArgumentParser( description="aider is GPT powered coding in your terminal", + formatter_class=CustomHelpFormatter, add_config_file_help=True, default_config_files=default_config_files, auto_env_var_prefix="AIDER_", @@ -455,6 +457,7 @@ def get_help(): os.environ["COLUMNS"] = "100" sys.argv[0] = "aider" parser = get_parser([], None) + parser.formatter_class = CustomHelpFormatter return parser.format_help() diff --git a/aider/args_formatter.py b/aider/args_formatter.py new file mode 100644 index 000000000..fc5991f84 --- /dev/null +++ b/aider/args_formatter.py @@ -0,0 +1,20 @@ +import argparse + +class CustomHelpFormatter(argparse.HelpFormatter): + def start_section(self, heading): + super().start_section(f"## {heading}:") + + def _format_action(self, action): + parts = [] + if action.help: + parts.append(f"### --{action.dest}") + parts.append(action.help) + if action.default is not argparse.SUPPRESS: + parts.append(f"Default: {action.default}") + return "\n".join(parts) + + def _format_action_invocation(self, action): + return "" + + def _format_args(self, action, default_metavar): + return ""