From 2885fce8844772becc94390a55ec950ca0449039 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Fri, 19 Sep 2025 16:43:43 +0200 Subject: [PATCH 1/3] Cleanup: add newlines --- include/argparse.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/argparse.hpp b/include/argparse.hpp index 99240c1..14b1c3b 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -340,6 +340,7 @@ namespace argparse auto parse_args(Tokens tokens) -> Parameters { auto arguments = m_arguments | std::views::transform(cast_to_argument); + parse_optional_arguments(arguments, tokens); parse_positional_arguments(arguments, tokens); @@ -425,6 +426,7 @@ namespace argparse auto check_excluded_arguments(std::ranges::view auto arguments) const -> void { auto const filter = [](auto const & arg) { return arg.is_present() && arg.is_mutually_exclusive(); }; + for (auto const & argument1 : arguments | std::views::filter(filter)) { for (auto const & argument2 : arguments | std::views::filter(filter)) From 36ff8f3bfd3594033f58926b217d684648ee1281 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Fri, 19 Sep 2025 16:51:08 +0200 Subject: [PATCH 2/3] Cleanup: rename variables --- include/argparse.hpp | 46 ++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 14b1c3b..520292d 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1441,17 +1441,17 @@ namespace argparse { auto positionals = std::string(); - for (auto const & arg : arguments + for (auto const & argument : arguments | std::views::filter(&Formattable::is_positional)) { - if (arg.has_nargs()) + if (argument.has_nargs()) { - positionals += format_nargs(arg); + positionals += format_nargs(argument); } else { positionals += " "; - positionals += format_arg(arg); + positionals += format_arg(argument); } } @@ -1466,13 +1466,13 @@ namespace argparse for (auto it = non_positionals.begin(); it != non_positionals.end(); ++it) { - auto const & arg = *it; + auto const & argument = *it; - if (arg.is_required()) + if (argument.is_required()) { optionals += " "; } - else if (arg.is_mutually_exclusive() && it != non_positionals.begin() && arg.is_mutually_exclusive_with(*std::ranges::prev(it))) + else if (argument.is_mutually_exclusive() && it != non_positionals.begin() && argument.is_mutually_exclusive_with(*std::ranges::prev(it))) { optionals += " | "; } @@ -1481,26 +1481,26 @@ namespace argparse optionals += " ["; } - if (arg.has_nargs()) + if (argument.has_nargs()) { - optionals += arg.get_name(); - optionals += format_nargs(arg); + optionals += argument.get_name(); + optionals += format_nargs(argument); } else { - optionals += arg.get_name(); - if (arg.expects_argument()) + optionals += argument.get_name(); + if (argument.expects_argument()) { optionals += " "; - optionals += format_arg(arg); + optionals += format_arg(argument); } } - if (arg.is_required()) + if (argument.is_required()) { // skip } - else if (arg.is_mutually_exclusive() && std::ranges::next(it) != non_positionals.end() && arg.is_mutually_exclusive_with(*std::ranges::next(it))) + else if (argument.is_mutually_exclusive() && std::ranges::next(it) != non_positionals.end() && argument.is_mutually_exclusive_with(*std::ranges::next(it))) { // skip } @@ -1517,12 +1517,12 @@ namespace argparse { auto positionals = std::string(); - for (auto const & arg : arguments + for (auto const & argument : arguments | std::views::filter(&Formattable::is_positional)) { - auto arg_line = " " + format_arg(arg); + auto arg_line = " " + format_arg(argument); - if (auto const & help = arg.get_help(); !help.empty()) + if (auto const & help = argument.get_help(); !help.empty()) { arg_line += help_string_separation(arg_line.size()); arg_line += replace_prog(help, prog); @@ -1538,15 +1538,15 @@ namespace argparse { auto optionals = std::string(); - for (auto const & arg : arguments + for (auto const & argument : arguments | std::views::filter([](auto const & a) { return !a.is_positional(); })) { auto arg_line = std::string(" "); - auto const formatted_arg = format(arg); + auto const formatted_arg = format(argument); - for (auto name_it = arg.get_names().begin(); name_it != arg.get_names().end(); ++name_it) + for (auto name_it = argument.get_names().begin(); name_it != argument.get_names().end(); ++name_it) { - if (name_it != arg.get_names().begin()) + if (name_it != argument.get_names().begin()) { arg_line += ", "; } @@ -1555,7 +1555,7 @@ namespace argparse arg_line += formatted_arg; } - if (auto const & help = arg.get_help(); !help.empty()) + if (auto const & help = argument.get_help(); !help.empty()) { arg_line += help_string_separation(arg_line.size()); arg_line += replace_prog(help, prog); From 9b6c14cd112a31d5d5021b5fec20b1ac70481fe3 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Fri, 19 Sep 2025 16:59:04 +0200 Subject: [PATCH 3/3] Cleanup: rename local variables --- include/argparse.hpp | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 520292d..307755f 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1439,28 +1439,28 @@ namespace argparse private: auto format_usage_positionals(std::ranges::view auto arguments) const -> std::string { - auto positionals = std::string(); + auto usage_text = std::string(); for (auto const & argument : arguments | std::views::filter(&Formattable::is_positional)) { if (argument.has_nargs()) { - positionals += format_nargs(argument); + usage_text += format_nargs(argument); } else { - positionals += " "; - positionals += format_arg(argument); + usage_text += " "; + usage_text += format_arg(argument); } } - return positionals; + return usage_text; } auto format_usage_optionals(std::ranges::view auto arguments) const -> std::string { - auto optionals = std::string(); + auto usage_text = std::string(); auto non_positionals = arguments | std::views::filter([](auto const & arg) { return !arg.is_positional(); }); @@ -1470,29 +1470,29 @@ namespace argparse if (argument.is_required()) { - optionals += " "; + usage_text += " "; } else if (argument.is_mutually_exclusive() && it != non_positionals.begin() && argument.is_mutually_exclusive_with(*std::ranges::prev(it))) { - optionals += " | "; + usage_text += " | "; } else { - optionals += " ["; + usage_text += " ["; } if (argument.has_nargs()) { - optionals += argument.get_name(); - optionals += format_nargs(argument); + usage_text += argument.get_name(); + usage_text += format_nargs(argument); } else { - optionals += argument.get_name(); + usage_text += argument.get_name(); if (argument.expects_argument()) { - optionals += " "; - optionals += format_arg(argument); + usage_text += " "; + usage_text += format_arg(argument); } } @@ -1506,16 +1506,16 @@ namespace argparse } else { - optionals += "]"; + usage_text += "]"; } } - return optionals; + return usage_text; } auto format_help_positionals(std::ranges::view auto arguments, OptString const & prog) const -> std::string { - auto positionals = std::string(); + auto help_text = std::string(); for (auto const & argument : arguments | std::views::filter(&Formattable::is_positional)) @@ -1528,15 +1528,15 @@ namespace argparse arg_line += replace_prog(help, prog); } - positionals += '\n' + arg_line; + help_text += '\n' + arg_line; } - return positionals; + return help_text; } auto format_help_optionals(std::ranges::view auto arguments, OptString const & prog) const -> std::string { - auto optionals = std::string(); + auto help_text = std::string(); for (auto const & argument : arguments | std::views::filter([](auto const & a) { return !a.is_positional(); })) @@ -1561,10 +1561,10 @@ namespace argparse arg_line += replace_prog(help, prog); } - optionals += '\n' + arg_line; + help_text += '\n' + arg_line; } - return optionals; + return help_text; } auto format(Formattable const & argument) const -> std::string