Skip to content

Commit 0168583

Browse files
committed
cli/argumentParser: improve formatting of description
1 parent 5e1a14b commit 0168583

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

src/cli/ArgumentParser.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,12 +253,16 @@ std::string CArgumentParserImpl::getDescription(const std::string_view& header,
253253
rolling += pad(maxArgWidth - lenUsed);
254254
lenUsed = maxArgWidth;
255255

256-
rolling += " -" + v.abbrev;
257-
lenUsed += 2 + v.abbrev.size();
258-
rolling += " ";
259-
rolling += TYPE_STRS[v.argType];
260-
lenUsed += std::string_view{TYPE_STRS[v.argType]}.length() + 1;
261-
rolling += pad(maxArgWidth + maxShortWidth - lenUsed);
256+
if (!v.abbrev.empty()) {
257+
rolling += " -" + v.abbrev;
258+
lenUsed += 2 + v.abbrev.size();
259+
260+
rolling += " ";
261+
rolling += TYPE_STRS[v.argType];
262+
lenUsed += std::string_view{TYPE_STRS[v.argType]}.length() + 1;
263+
rolling += pad(maxArgWidth + maxShortWidth - lenUsed);
264+
} else
265+
rolling += pad(maxShortWidth);
262266
lenUsed = maxArgWidth + maxShortWidth;
263267

264268
rolling += " | ";
@@ -275,7 +279,7 @@ std::string CArgumentParserImpl::getDescription(const std::string_view& header,
275279

276280
for (size_t i = 1; i < ROWS.size(); ++i) {
277281
lenUsed = LEN_START_DESC;
278-
rolling += "";
282+
rolling += "";
279283
rolling += pad(LEN_START_DESC);
280284
rolling += ROWS[i];
281285
lenUsed += ROWS[i].size();

tests/cli/ArgumentParser.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ using namespace Hyprutils;
1010
constexpr const char* DESC_TEST = R"#(┏ My description
1111
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
1212
┣ --hello -h | Says hello ┃
13-
┣ --hello2 -e | Says hello 2 ┃
13+
┣ --hello2 | Says hello 2 ┃
1414
┣ --value -v [float] | Sets a valueeeeeee ┃
1515
┣ --longlonglonglongintopt -l [int] | Long long ┃
16-
maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa┃
17-
aaaaaaaaaaan maaan man maaan man maaan ┃
18-
man maaan man ┃
16+
maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa┃
17+
aaaaaaaaaaan maaan man maaan man maaan ┃
18+
man maaan man ┃
1919
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
2020
)#";
2121

@@ -25,7 +25,7 @@ TEST(CLI, ArgumentParser) {
2525
CArgumentParser parser(argv);
2626

2727
EXPECT_TRUE(parser.registerBoolOption("hello", "h", "Says hello"));
28-
EXPECT_TRUE(parser.registerBoolOption("hello2", "e", "Says hello 2"));
28+
EXPECT_TRUE(parser.registerBoolOption("hello2", "", "Says hello 2"));
2929
EXPECT_TRUE(parser.registerFloatOption("value", "v", "Sets a valueeeeeee"));
3030
EXPECT_TRUE(parser.registerIntOption("longlonglonglongintopt", "l", "Long long maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaan maaan man maaan man maaan man maaan man"));
3131

0 commit comments

Comments
 (0)