diff --git a/src/cli/ArgumentParser.cpp b/src/cli/ArgumentParser.cpp index 358f129..333d93e 100644 --- a/src/cli/ArgumentParser.cpp +++ b/src/cli/ArgumentParser.cpp @@ -253,12 +253,16 @@ std::string CArgumentParserImpl::getDescription(const std::string_view& header, rolling += pad(maxArgWidth - lenUsed); lenUsed = maxArgWidth; - rolling += " -" + v.abbrev; - lenUsed += 2 + v.abbrev.size(); - rolling += " "; - rolling += TYPE_STRS[v.argType]; - lenUsed += std::string_view{TYPE_STRS[v.argType]}.length() + 1; - rolling += pad(maxArgWidth + maxShortWidth - lenUsed); + if (!v.abbrev.empty()) { + rolling += " -" + v.abbrev; + lenUsed += 2 + v.abbrev.size(); + + rolling += " "; + rolling += TYPE_STRS[v.argType]; + lenUsed += std::string_view{TYPE_STRS[v.argType]}.length() + 1; + rolling += pad(maxArgWidth + maxShortWidth - lenUsed); + } else + rolling += pad(maxShortWidth); lenUsed = maxArgWidth + maxShortWidth; rolling += " | "; @@ -275,7 +279,7 @@ std::string CArgumentParserImpl::getDescription(const std::string_view& header, for (size_t i = 1; i < ROWS.size(); ++i) { lenUsed = LEN_START_DESC; - rolling += "┣"; + rolling += "┃"; rolling += pad(LEN_START_DESC); rolling += ROWS[i]; lenUsed += ROWS[i].size(); diff --git a/tests/cli/ArgumentParser.cpp b/tests/cli/ArgumentParser.cpp index c5ed600..7e64ebf 100644 --- a/tests/cli/ArgumentParser.cpp +++ b/tests/cli/ArgumentParser.cpp @@ -10,12 +10,12 @@ using namespace Hyprutils; constexpr const char* DESC_TEST = R"#(┏ My description ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┣ --hello -h | Says hello ┃ -┣ --hello2 -e | Says hello 2 ┃ +┣ --hello2 | Says hello 2 ┃ ┣ --value -v [float] | Sets a valueeeeeee ┃ ┣ --longlonglonglongintopt -l [int] | Long long ┃ -┣ maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa┃ -┣ aaaaaaaaaaan maaan man maaan man maaan ┃ -┣ man maaan man ┃ +┃ maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa┃ +┃ aaaaaaaaaaan maaan man maaan man maaan ┃ +┃ man maaan man ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ )#"; @@ -25,7 +25,7 @@ TEST(CLI, ArgumentParser) { CArgumentParser parser(argv); EXPECT_TRUE(parser.registerBoolOption("hello", "h", "Says hello")); - EXPECT_TRUE(parser.registerBoolOption("hello2", "e", "Says hello 2")); + EXPECT_TRUE(parser.registerBoolOption("hello2", "", "Says hello 2")); EXPECT_TRUE(parser.registerFloatOption("value", "v", "Sets a valueeeeeee")); EXPECT_TRUE(parser.registerIntOption("longlonglonglongintopt", "l", "Long long maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaan maaan man maaan man maaan man maaan man"));